���� JFIF  XX �� �� �     $.' ",#(7),01444'9=82<.342  2!!22222222222222222222222222222222222222222222222222�� ��" �� 4     ��   �� �,�PG"Z_�4�˷����kjز�Z�,F+��_z�,�© �����zh6�٨�ic�fu��� #ډb���_�N� ?� �wQ���5-�~�I���8��� �TK<5o�Iv-� ����k�_U_����� ~b�M��d��� �Ӝ�U�Hh��?]��E�w��Q���k�{��_}qFW7HTՑ��Y��F� ?_�'ϔ��_�Ջt� �=||I �� 6�έ"�����D���/[�k�9�� �Y�8 ds|\���Ҿp6�Ҵ���]��.����6� z<�v��@]�i% �� $j��~ �g��J>��no����pM[me�i$[�� �� s�o�ᘨ�˸ nɜG-�ĨU�ycP� 3.DB�li�;� �hj���x 7Z^�N�h��� ���N3u{�:j �x�힞��#M &��jL P@ _���� P�� &��o8 ������9 �����@Sz 6�t7#O�ߋ � s}Yf�T� ��lmr����Z)'N��k�۞p ����w\�T ȯ?�8` �O��i{wﭹW�[�r�� ��Q4F�׊�� �3m&L�=��h3� ���z~��#� \�l :�F,j@�� ʱ�wQT����8�"kJO��� 6�֚l���� }��� R�>ډK���]��y����&����p�}b�� ;N�1�m�r$� |��7�>e�@ B�TM*-i H��g�D�)� E�m�|�ؘbҗ�a ��Ҿ���� t4��� o���G��*oCN�rP���Q��@z,|?W[0 �����:�n,j WiE��W� �$~/�hp\��?��{(�0���+�Y8rΟ�+����>S-S�� ��VN;� }�s?.����� w �9��˟<���Mq4�Wv' ��{)0�1mB ��V����W[� ����8�/<� �%���wT^�5���b��)iM� p g�N�&ݝ� �VO~� q���u���9� ����!��J27��� �$ O-���! �: �%H��� ـ ����y�ΠM=t{!S�� oK8������ t<����è :a�� ����[���� �ա�H���~��w��Qz`�p o�^ �� ��Q��n�  �,uu�C� $ ^���,� �����8�#��:�6��e�|~� ��!�3� 3.�\0�� q��o�4`.|� ����y�Q�`~;�d�ׯ,��O�Zw�������`73�v�܋�< ���Ȏ�� ـ4k��5�K�a�u�=9Yd��$>x�A�&�� j0� ���vF��� Y� |�y��� ~�6�@c��1vOp �Ig�� ��4��l�OD� ��L����� R���c���j�_�uX 6��3?nk��Wy�f;^*B� ��@ �~a�`��Eu������ +� �� 6�L��.ü>��}y���}_�O�6�͐�:�Yr G�X��kG�� ���l^w�� �~㒶sy� �Iu�!� W ��X��N�7BV��O��!X�2����wvG�R�f�T#�����t�/?���%8�^�W�aT ��G�cL�M���I��(J����1~�8�?aT ���]����AS�E��(��*E}� 2�� #I/�׍qz��^t�̔��� b�Yz4x ���t�){ OH� �+(E��A&�N�������XT��o��"�XC�� '���)}�J�z�p� ��~5�}�^����+�6����w��c��Q�| Lp�d�H��}�(�.|����k��c4^� "�����Z?ȕ ��a< �L�!0 39C� �Eu� C�F�Ew�ç ;�n?�*o���B�8�bʝ���'#Rqf�� �M}7����]��� �s2tcS{�\icTx;�\��7K���P ���ʇ Z O-��~�� c>"��?�� �����P ��E��O�8��@�8��G��Q�g�a�Վ���󁶠 �䧘��_%#r�>� 1�z�a�� eb��qcP ѵ��n���#L��� =��׀t� L�7�` ��V��� A{�C:�g���e@ �w1 Xp 3�c3�ġ���� p��M"'-�@n4���fG� �B3�DJ�8[Jo�ߐ���gK)ƛ��$���� � ��8�3�����+���� �����6�ʻ���� ���S�kI�*KZlT _`�� �?��K� ���QK�d ����B`�s}�>���` ��*�>��,*@J�d�oF*� ���弝��O}�k��s��]��y�ߘ ��c1G�V���<=�7��7����6 �q�PT��tXԀ�!9*4�4Tހ 3XΛex�46�� �Y��D ����� �BdemDa����\�_l,� �G�/���֌7���Y�](�xTt^%�GE�����4�}bT ���ڹ�����; Y)���B�Q��u��>J/J � ⮶.�XԄ��j�ݳ� +E��d ��r�5�_D �1 �� o�� �B�x�΢�#� ��<��W�����8���R6�@ g�M�.��� dr�D��>(otU��@ x=��~v���2� ӣ�d�oBd ��3�eO�6�㣷�� ���ݜ 6��6Y��Qz`�� S��{���\P �~z m5{J/L��1������<�e�ͅPu� b�]�ϔ ���'�� ����f�b� Zpw��c`"��i���BD@:)ִ�:�]��h v�E� w���T�l ��P� ��"Ju�}��وV J��G6��. J/�Qgl߭�e�����@�z�Zev2u� )]կ��� ��7x�� �s�M�-<ɯ�c��r� v�����@��$�ޮ}lk���a�� �'����>x��O\�Z Fu>��� ��ck#��&:��`�$ �ai�>2Δ����l���oF[h� �lE�ܺ�Π k:)���` �� $[6�����9�����kOw�\|��� 8}������ބ:��񶐕� �I�A1/� =�2[�,�!��.}gN#�u����b ��� ~� �݊��}34q��� �d�E��L c��$ ��"�[q�U�硬g^��%B � z���r�p J�ru%v\h 1Y�ne` ǥ:g�� �pQM~�^� Xi� ��`S�:V2 9.�P���V� ?B�k�� AEvw%�_�9C�Q����wKekP ؠ�\� ;Io d�{ ߞo�c1eP��� �\� `����E=���@K<�Y�� �eڼ�J ���w����{av�F�'�M�@ /J��+9p ���|]���� �Iw &` ��8���& M�hg ��[�{ ��Xj�� %��Ӓ� $��(��� �ʹN��� <>�I���RY� ��K2�NPlL�ɀ )��&e� ���B+ь����( � �JTx ���_?EZ� }@ 6�U���뙢ط�z��dWI� n` D����噥�[��uV��"�G& Ú����2 g�}&m� �?ċ �"����Om#� ������� � ��{� ON��"S�X ��Ne��ysQ���@ Fn��Vg��� dX�~nj� ]J�<�K]: ��FW�� b�������62 �=��5f����JKw� �bf�X� 55��~J �%^� ���:�-�QIE��P��v�nZum� z � ~ə ���� ���ة����;�f��\v��� g�8�1��f2 4;�V���ǔ�)��� �9���1\�� c��v�/'Ƞ�w����� ��$�4�R-��t�� �� e�6�/�ġ �̕Ecy�J���u�B���<�W�ַ~�w[B1L۲�-JS΂�{���΃���� ��A��20�c# �� @    0!1@AP"#2Q`$3V�%45a6�FRUq���   � ���^7ׅ,$n� ������+��F�`��2X'��0vM��p�L=������ 5��8������u�p~���.�`r�����\��� O��,ư�0oS ��_�M�����l���4�kv\JSd���x���SW�<��Ae�IX����������$I���w�:S���y���›R��9�Q[���,�5�;�@]�%���u�@ *ro�lbI �� ��+���%m:�͇ZV�����u�̉����θau<�fc�.����{�4Ա� �Q����*�Sm��8\ujqs]{kN���)qO�y�_*dJ�b�7���yQqI&9�ԌK!�M}�R�;�� ����S�T���1���i[U�ɵz�]��U)V�S6���3$K{� ߊ<�(� E]Զ[ǼENg�����'�\?#)Dkf��J���o��v���'�%ƞ�&K�u� !��b�35LX�Ϸ��63$K�a�;�9>,R��W��3�3� d�JeTYE.Mϧ��-�o�j3+y��y^�c�������VO�9NV\nd�1 ��!͕_)a�v;����թ�M�lWR1��)El��P;��yوÏ�u 3�k�5Pr6<�⒲l�!˞*��u־�n�!�l:����UNW ��%��Chx8vL'��X�@��*��)���̮��ˍ��� � ��D-M�+J�U�kvK����+�x8��cY������?�Ԡ��~3mo��|�u@[XeY�C�\Kp�x8�oC�C�&����N�~3-H���� ��MX�s�u<`���~"WL��$8ξ��3���a�)|:@�m�\���^�`�@ҷ)�5p+��6���p�%i)P M���ngc�����#0Aruz���RL+xSS?���ʮ}()#�t��mˇ!��0}}y����<�e� �-ή�Ԩ��X������ MF���ԙ~l L.3���}�V뽺�v��� ��멬��Nl�)�2����^�Iq��a��M��qG��T�����c3#������3U�Ǎ���}��לS�|qa��ڃ�+���-��2�f����/��bz��ڐ�� �ݼ[2�ç����k�X�2�* �Z�d���J�G����M*9W���s{��w���T��x��y,�in�O�v��]���n����P�$� JB@=4�OTI�n��e�22a\����q�d���%�$��(���:���: /*�K[PR�fr\nڙdN���F�n�$�4� [�� U�zƶ����� �mʋ���,�ao�u 3�z� �x��Kn����\[��VFmbE;�_U��&V�Gg�]L�۪&#n%�$ɯ� dG���D�TI=�%+AB�Ru#��b4�1�»x�cs�YzڙJG��f��Il� �d�eF'T� iA��T���uC�$����Y��H?����[!G`}���ͪ� �纤Hv\������j�Ex�K���!���OiƸ�Yj�+u-<���'q����uN�*�r\��+�]���<�wOZ.fp�ێ��,-*)V?j-kÊ#�`�r��dV����(�ݽBk�����G�ƛk�QmUڗe��Z���f}|����8�8��a���i��3'J�����~G_�^���d�8w������ R�`(�~�.��u���l�s+g�bv���W���lGc}��u���afE~1�Ue������Z�0�8�=e�� f@/�jqEKQQ�J� �oN��J���W5~M>$6�Lt�;$ʳ{���^��6�{����v6���ķܰg�V�cnn �~z�x�«�,2�u�?cE+Ș�H؎�%�Za�)���X>uW�Tz�Nyo����s���FQƤ��$��*�&�LLXL)�1�" L��eO��ɟ�9=���:t��Z���c��Ž���Y?�ӭV�wv�~,Y��r�ۗ�|�y��GaF�����C�����.�+� ���v1���fήJ�����]�S��T��B��n5sW}y�$��~z�'�c ��8 ��� ,! �p��VN�S��N�N�q��y8z˱�A��4��*��'������2n<�s���^ǧ˭P�Jޮɏ�U�G�L�J�*#��<�V��t7�8����TĜ>��i}K%,���)[��z�21z ?�N�i�n1?T�I�R#��m-�����������������1����lA�`��fT5+��ܐ�c�q՝��ʐ��,���3�f2U�եmab��#ŠdQ�y>\��)�SLY����w#��.���ʑ�f��� ,"+�w�~�N�'�c�O�3F�������N<���)j��&��,-� �љ���֊�_�zS���TǦ����w�>��?�������n��U仆�V���e�����0���$�C�d���rP �m�׈e�Xm�Vu� �L��.�bֹ��� �[Դaզ���*��\y�8�Է:�Ez\�0�Kq�C b��̘��cө���Q��=0Y��s�N��S.��� 3.���O�o:���#���v7�[#߫ ��5�܎�L���Er4���9n��COWlG�^��0k�%<���ZB���aB_���������'=��{i�v�l�$�uC���mƎҝ{�c㱼�y]���W�i ��ߧc��m�H� m�"�"�����;Y�ߝ�Z�Ǔ�����:S#��|}�y�,/k�Ld� TA�(�AI$+I3��;Y*���Z��}|��ӧO��d�v��..#:n��f>�>���ȶI�TX��� 8��y����"d�R�|�)0���=���n4��6ⲑ�+��r<�O�܂~zh�z����7ܓ�HH�Ga롏���nCo�>������a ���~]���R���̲c?�6(�q�;5%� |�uj�~z8R =X��I�V=�|{v�Gj\gc��q����z�؋%M�ߍ����1y��#��@f^���^�>N��� ��#x#۹��6�Y~�?�dfPO��{��P�4��V��u1E1J �*|���%�� �JN��`eWu�zk M6���q t[�� ��g�G���v��WIG��u_ft����5�j�"�Y�:T��ɐ���*�;� e5���4����q$C��2d�}���� _S�L#m�Yp��O�.�C�;��c����Hi#֩%+) �Ӎ��ƲV���SYź��g |���tj��3�8���r|���V��1#;.SQ�A[���S������#���`n�+���$��$ I �P\[�@�s��(�ED�z���P��])8�G#��0B��[ى��X�II�q<��9�~[Z멜�Z�⊔IWU&A>�P~�#��dp<�?����7���c��'~���5 ��+$���lx@�M�dm��n<=e�dyX��?{�|Aef ,|n3�<~z�ƃ�uۧ�����P��Y,�ӥQ�*g�#먙R�\���;T��i,��[9Qi歉����c>]9�� ��"�c��P�� �Md?٥��If�ت�u��k��/����F��9�c*9��Ǎ:�ØF���z�n*�@|I�ށ9����N3{'��[�'ͬ�Ҳ4��#}��!�V� Fu��,�,mTIk���v C�7v���B�6k�T9��1�*l� '~��ƞF��lU��'�M ����][ΩũJ_�{�i�I�n��$�� �L�� j��O�dx�����kza۪��#�E��Cl����x˘�o�����V���ɞ�ljr��)�/,�߬h�L��#��^��L�ф�,íMƁe�̩�NB�L�����iL����q�}��(��q��6IçJ$�W�E$��:������=#����(�K�B����zђ <��K(�N�۫K�w��^O{!����) �H���>x�������lx�?>Պ�+�>�W���,Ly!_�D���Ō�l���Q�!�[ �S����J��1��Ɛ�Y}��b,+�Lo�x�ɓ)����=�y�oh�@�꥟/��I��ѭ=��P�y9��� �ۍYӘ�e+�p�Jnϱ?V\SO%�(�t� ���=?MR�[Ș�����d�/ ��n�l��B�7j� ��!�;ӥ�/�[-���A�>� dN�sLj ��,ɪv��=1c�.SQ�O3�U���ƀ�ܽ�E����������̻��9G�ϷD�7(�}��Ävӌ\� y�_0[w ���<΍>����a_��[0+�L��F.�޺��f�>oN�T����q;���y\��bՃ��y�jH�<|q-eɏ�_?_9+P���Hp$�����[ux�K w�Mw��N�ی'$Y2�=��q���KB��P��~�� ����Yul:�[<����F1�2�O���5=d����]Y�sw:���Ϯ���E��j,_Q��X��z`H1,#II ��d�wr��P˂@�ZJV����y$�\y�{}��^~���[:N����ߌ�U�������O��d�����ؾe��${p>G��3c���Ė�lʌ�� ת��[��`ϱ�-W����dg�I��ig2��� ��}s ��ؤ(%#sS@���~���3�X�nRG�~\jc3�v��ӍL��M[JB�T��s3}��j�Nʖ��W����;7� �ç?=X�F=-�=����q�ߚ���#���='�c��7���ڑW�I(O+=:uxq�������������e2�zi+�kuG�R��������0�&e�n���iT^J����~\jy���p'dtG��s����O��3����9* �b#Ɋ�� p������[Bws�T�>d4�ۧs���nv�n���U���_�~,�v����ƜJ1��s�� �QIz�� )�(lv8M���U=�;����56��G���s#�K���MP�=��LvyGd��}�VwWBF�'�à �?MH�U�g2�� ����!�p�7Q��j��ڴ����=��j�u��� Jn�A s���uM������e��Ɔ�Ҕ�!) '��8Ϣ�ٔ� �ޝ(��Vp���צ֖d=�IC�J�Ǡ{q������kԭ�߸���i��@K����u�|�p=..�*+����x�����z[Aqġ#s2a�Ɗ���RR�)*HRsi�~�a &f��M��P����-K�L@��Z��Xy�'x�{}��Zm+���:�)�) IJ�-i�u���� ���ܒH��'� L(7�y�GӜq���� j��� 6ߌg1�g�o���,kر���tY�?W,���p���e���f�OQS��!K�۟cҒA�|ս�j�>��=⬒��˧L[�� �߿2JaB~R��u�:��Q�] �0H~���]�7��Ƽ�I���( }��cq '�ήET���q�?f�ab���ӥvr� �)o��-Q��_'����ᴎo��K������;��V���o��%���~OK ����*��b�f:���-ťIR��`B�5!RB@���ï�� �u �̯e\�_U�_������� g�ES��3������� QT��a�� ��x����U<~�c?�*�#]�MW,[8O�a�x��]�1bC|踤�P��lw5V%�)�{t�<��d��5���0i�XSU��m:��Z�┵�i�"��1�^B�-��P�hJ��&)O��*�D��c�W��vM��)����}���P��ܗ-q����\mmζZ-l@�}��a��E�6��F�@��&Sg@���ݚ�M����� ȹ 4����#p�\H����dYDo�H���"��\��..R�B�H�z_�/5˘����6��KhJR��P�mƶi�m���3� ,#c�co��q�a)*P t����R�m�k�7x�D�E�\Y�閣_X�<���~�)���c[[�BP����6�Yq���S��0����%_����;��Àv�~�| VS؇ ��'O0��F0��\���U�-�d@�����7�SJ*z��3n��y��P����O��������� m�~�P�3|Y��ʉr#�C�<�G~�.,! ���bqx���h~0=��!ǫ�jy����l� O,�[B��~��|9��ٱ����Xly�#�i�B��g%�S��������tˋ���e���ې��\[d�t)��.+u�|1 ������#�~Oj����hS�%��i.�~X���I�H�m��0n���c�1uE�q��cF�RF�o���7� �O�ꮧ� ���ۛ{��ʛi5�rw?׌#Qn�TW��~?y$��m\�\o����%W� ?=>S�N@�� �Ʈ���R����N�)�r"C�:��:����� �����#��qb��Y�. �6[��2K����2u�Ǧ�HYR��Q�MV��� �G�$��Q+.>�����nNH��q�^��� ����q��mM��V��D�+�-�#*�U�̒ ���p욳��u:�������IB���m� ��PV@O���r[b= �� ��1U�E��_Nm�yKbN�O���U�}�the�`�|6֮P>�\2�P�V���I�D�i�P�O;�9�r�mAHG�W�S]��J*�_�G��+kP�2����Ka�Z���H�'K�x�W�MZ%�O�YD�Rc+o��?�q��Ghm��d�S�oh�\�D�|:W������UA�Qc yT�q� �����~^�H��/��#p�CZ���T�I�1�ӏT����4��"�ČZ�����}��`w�#�*,ʹ�� ��0�i��課�Om�*�da��^gJ݅{���l�e9uF#T�ֲ��̲�ٞC"�q���ߍ ոޑ�o#�XZTp����@ o�8��(jd��xw�]�,f���`~� |,s��^����f�1���t��|��m�򸄭/ctr��5s��7�9Q�4�H1꠲BB@ l9@���C�����+�wp�xu�£Yc�9��?`@#�o�mH�s2��)�=��2�.�l����jg�9$�Y�S�%*L������R�Y������7Z���,*=�䷘$�������arm�o�ϰ���UW.|�r�uf����IGw�t����Zwo��~5 ��YյhO+=8fF�)�W�7�L9lM�̘·Y���֘YLf�큹�pRF���99.A �"wz��=E\Z���'a� 2��Ǚ�#;�'}�G���*��l��^"q��+2FQ� hj��kŦ��${���ޮ-�T�٭cf�|�3#~�RJ����t��$b�(R��(����r���dx� >U b�&9,>���%E\� Ά�e�$��'�q't��*�א���ެ�b��-|d���SB�O�O��$�R+�H�)�܎�K��1m`;�J�2�Y~9��O�g8=vqD`K[�F)k�[���1m޼c��n���]s�k�z$@��)!I �x՝"v��9=�ZA=`Ɠi �:�E��)` 7��vI��}d�YI�_ �o�:ob���o ���3Q��&D&�2=�� �Ά��;>�h����y.*ⅥS������Ӭ�+q&����j|UƧ��� �}���J0��WW< ۋS�)jQR�j���Ư��rN)�Gű�4Ѷ(�S)Ǣ�8��i��W52���No˓� ۍ%�5brOn�L�;�n��\G����=�^U�dI���8$�&���h��'���+�(������cȁ߫k�l��S^���cƗjԌE�ꭔ��gF���Ȓ��@���}O���*;e�v�WV���YJ\�]X'5��ղ�k�F��b 6R�o՜m��i N�i���� >J����?��lPm�U��}>_Z&�KK��q�r��I�D�Չ~�q�3fL�:S�e>���E���-G���{L�6p�e,8��������QI��h��a�Xa��U�A'���ʂ���s�+טIjP�-��y�8ۈZ?J$��W�P� ��R�s�]��|�l(�ԓ��sƊi��o(��S0 ��Y� 8�T97.�����WiL��c�~�dxc�E|�2!�X�K�Ƙਫ਼�$((�6�~|d9u+�qd�^3�89��Y�6L�.I�����?���iI�q���9�)O/뚅����O���X��X�V��ZF[�یgQ�L��K1���RҖr@v�#��X�l��F���Нy�S�8�7�kF!A��sM���^rkp�jP�DyS$N���q�� nxҍ!U�f�!eh�i�2�m ���`�Y�I�9r�6� �TF���C}/�y�^���Η���5d�'��9A-��J��>{�_l+�`��A���[�'��յ�ϛ#w:݅�%��X�}�&�PSt�Q�"�-��\縵�/����$Ɨh�Xb�*�y��BS����;W�ջ_mc�����vt?2}1�;qS�d�d~u:2k5�2�R�~�z+|HE!)�Ǟl��7`��0�<�,�2*���Hl-��x�^����'_TV�gZA�'j� ^�2Ϊ��N7t�����?w�� �x1��f��Iz�C-Ȗ��K�^q�;���-W�DvT�7��8�Z�������� hK�(P:��Q- �8�n�Z���܃e貾�<�1�YT<�,�����"�6{ / �?�͟��|1�:�#g��W�>$����d��J��d�B�� =��jf[��%rE^��il:��B���x���Sּ�1հ��,�=��*�7 fcG��#q� �eh?��2�7�����,�!7x��6�n�LC�4x��},Geǝ�tC.��vS �F�43��zz\��;QYC,6����~;RYS/6���|2���5���v��T��i����������mlv��������&� �nRh^ejR�LG�f���? �ۉҬܦƩ��|��Ȱ����>3����!v��i�ʯ�>�v��オ�X3e���_1z�Kȗ\<������!�8���V��]��?b�k41�Re��T�q��mz��TiOʦ�Z��Xq���L������q"+���2ۨ��8}�&N7XU7Ap�d�X��~�׿��&4e�o�F��� �H�� ��O���č�c�� 懴�6���͉��+)��v;j��ݷ�� �UV�� i��� j���Y9GdÒJ1��詞�����V?h��l�� ��l�cGs�ځ�������y�Ac���� �\V3�? �� ܙg�>qH�S,�E�W�[�㺨�uch�⍸�O�}���a��>�q�6�n6� ���N6�q�� ���� N    ! 1AQaq�0@����"2BRb�#Pr���3C`��Scst���$4D���%Td��  ? � ��N����a��3��m���C���w��������xA�m�q�m��� m������$����4n淿t'��C"w��zU=D�\R+w�p+Y�T�&�պ@��ƃ��3ޯ?�Aﶂ��aŘ���@-�����Q�=���9D��ռ�ѻ@��M�V��P��܅�G5�f�Y<�u=,EC)�<�Fy'�"�&�չ�X~f��l�KԆV��?�� �W�N����=(� �;���{�r����ٌ�Y���h{�١������jW����P���Tc�����X�K�r��}���w�R��%��?���E��m�� �Y�q|����\lEE4� ��r���}�lsI�Y������f�$�=�d�yO����p�����yBj8jU�o�/�S��?�U��*������ˍ�0����� �u�q�m [�?f����a�� )Q�>����6#������� ?����0UQ����,IX���(6ڵ[�DI�MNލ�c&���υ�j\��X�R|,4��� j������T�hA�e��^���d���b<����n�� �즇�=!���3�^�`j�h�ȓr��jẕ�c�,ٞX����-����a�ﶔ���#�$��]w�O��Ӫ�1y%��L�Y<�wg#�ǝ�̗`�x�xa�t�w��»1���o7o5��>�m뭛C���Uƃߜ}�C���y1Xνm�F8�jI���]����H���ۺиE@I�i;r�8ӭ���� V�F�Շ| ��&?�3|x�B�MuS�Ge�=Ӕ�#BE5G�� ���Y!z��_e��q�р/W>|-�Ci߇�t�1ޯќd�R3�u��g�=0 5��[?�#͏��q�cf���H��{ ?u�=?�?ǯ���}Z��z���hmΔ�BFTW�����<�q� (v� ��!��z���iW]*�J�V�z��gX֧A�q�&��/w���u�gYӘa���; �i=����g:��?2�dž6�ى�k�4�>�Pxs����}������G�9� �3 ���)gG�R<>r h�$��'nc�h�P��Bj��J�ҧH� -��N1���N��?��~��}-q!=��_2hc�M��l�vY%UE�@|�v����M2�.Y[|y�"Eï��K�ZF,�ɯ?,q�?v�M 80jx�"�;�9vk�����+ ֧�� �ȺU��?�%�vcV��mA�6��Qg^M��� �A}�3�nl� QRN�l8�kkn�'�����(��M�7m9و�q���%ޟ���*h$Zk"��$�9��: �?U8�Sl��,,|ɒ��xH(ѷ����Gn�/Q�4�P��G�%��Ա8�N��!� �&�7�;���eKM7�4��9R/%����l�c>�x;������>��C�:�����t��h?aKX�bhe�ᜋ^�$�Iհ �hr7%F$�E��Fd���t��5���+�(M6�t����Ü�UU|zW�=a�Ts�Tg������dqP�Q����b'�m���1{|Y����X�N��b �P~��F^F:����k6�"�j!�� �I�r�`��1&�-$�Bevk:y���#y w��I0��x��=D�4��tU���P�ZH��ڠ底taP��6����b>�xa� ���Q�#� WeF��ŮNj�p�J* mQ�N��� �*I�-*�ȩ�F�g�3 �5��V�ʊ�ɮ�a��5F���O@{���NX��?����H�]3��1�Ri_u��������ѕ�� ����0��� F��~��:60�p�͈�S��qX#a�5>���`�o&+�<2�D����: �������ڝ�$�nP���*)�N�|y�Ej�F�5ټ�e���ihy�Z �>���k�bH�a�v��h�-#���!�Po=@k̆IEN��@��}Ll?j�O������߭�ʞ���Q|A07x���wt!xf���I2?Z��<ץ�T���cU�j��]�� 陎Ltl �}5�ϓ��$�,��O�mˊ�;�@O��jE��j(�ا,��LX���LO���Ц�90�O �.����a��nA���7������j4 ��W��_ٓ���zW�jcB������y՗+EM�)d���N�g6�y1_x��p�$Lv :��9�"z��p���ʙ$��^��JԼ*�ϭ����o���=x�Lj�6�J��u82�A�H�3$�ٕ@�=Vv�]�'�qEz�;I˼��)��=��ɯ���x �/�W(V���p�����$ �m�������u�����񶤑Oqˎ�T����r��㠚x�sr�GC��byp�G��1ߠ�w e�8�$⿄����/�M{*}��W�]˷.�CK\�ުx���/$�WP w���r� |i���&�}�{�X� �>��$-��l���?-z���g����lΆ���(F���h�vS*���b���߲ڡn,|)mrH[���a�3�ר�[1��3o_�U�3�TC�$��(�=�)0�kgP���� ��u�^=��4 �WYCҸ:��vQ�ר�X�à��tk�m,�t*��^�,�}D*� �"(�I��9R����>`�`��[~Q]�#af��i6l��8���6�:,s�s�N6�j"�A4���IuQ��6E,�GnH��zS�HO�uk�5$�I�4��ؤ�Q9�@��C����wp �BGv[]�u�Ov��� 0I4���\��y�����Q�Ѹ��~>Z��8�T��a��q�ޣ;z��a���/��S��I:�ܫ_�|������>=Z����8:�S��U�I�J��"IY���8%b8���H��:�QO�6�;7�I�S��J��ҌAά3��>c���E+&jf$eC+�z�;��V����� �r���ʺ������my�e���aQ�f&��6�ND ��.:��NT�vm�<- u���ǝ\MvZY�N�NT��-A�>jr!S��n�O 1�3�Ns�%�3D@���`������ܟ 1�^c<���� �a�ɽ�̲�Xë#�w�|y�cW�=�9I*H8�p�^(4���՗�k��arOcW�tO�\�ƍR��8����'�K���I�Q�����?5�>[�}��yU�ײ -h��=��% q�ThG�2�)���"ו3]�!kB��*p�FDl�A���,�eEi�H�f�Ps�����5�H:�Փ~�H�0Dت�D�I����h�F3�������c��2���E��9�H��5�zԑ�ʚ�i�X�=:m�xg�hd(�v����׊�9iS��O��d@0ڽ���:�p�5�h-��t�&���X�q�ӕ,��ie�|���7A�2���O%P��E��htj��Y1��w�Ѓ!����  ���� ࢽ��My�7�\�a�@�ţ�J �4�Ȼ�F�@o�̒?4�wx��)��]�P��~�����u�����5�����7X ��9��^ܩ�U;Iꭆ 5 �������eK2�7(�{|��Y׎ �V��\"���Z�1� Z�����}��(�Ǝ"�1S���_�vE30>���p;� ΝD��%x�W�?W?v����o�^V�i�d��r[��/&>�~`�9Wh��y�;���R�� � ;;ɮT��?����r$�g1�K����A��C��c��K��l:�'��3 c�ﳯ*"t8�~l��)���m��+U,z��`( �>yJ�?����h>��]��v��ЍG*�{`��;y]��I�T� ;c��NU�fo¾h���/$���|NS���1�S�"�H��V���T���4��uhǜ�]�v;���5�͠x��'C\�SBpl���h}�N����� A�Bx���%��ޭ�l��/����T��w�ʽ]D�=����K���ž�r㻠l4�S�O?=�k �M:� ��c�C�a�#ha���)�ѐxc�s���gP�iG�� {+���x���Q���I= �� z��ԫ+ �8"�k�ñ�j=|����c ��y��CF��/ ��*9ж�h{ �?4�o� ��k�m�Q�N�x��;�Y��4膚�a�w?�6�> e]�����Q�r�:����g�,i"�����ԩA� *M�<�G��b�if��l^M��5� �Ҩ�{����6J��ZJ�����P�*�����Y���ݛu�_4�9�I8�7���������,^ToR���m4�H��?�N�S�ѕw��/S��甍�@�9H�S�T��t�ƻ���ʒU��*{Xs�@����f��� ��֒Li�K{H�w^���������Ϥm�tq���s� ���ք��f:��o~s��g�r��ט� �S�ѱC�e]�x���a��) ���(b-$(�j>�7q�B?ӕ�F��hV25r[7 Y� }L�R��}����*sg+��x�r�2�U=�*'WS��ZDW]�WǞ�<��叓���{�$�9Ou4��y�90-�1�'*D`�c�^o?(�9��u���ݐ��'PI&� f�Jݮ�������:wS����jfP1F:X �H�9dԯ�� �˝[�_54 �}*;@�ܨ�� ð�yn�T���?�ןd�#���4rG�ͨ��H�1�|-#���Mr�S3��G�3�����)�.᧏3v�z֑��r����$G"�`j �1t��x0<Ɔ�Wh6�y�6��,œ�Ga��gA����y��b��)� �h�D��ß�_�m��ü �gG;��e�v��ݝ�nQ� ��C����-�*��o���y�a��M��I�>�<���]obD��"�:���G�A��-\%LT�8���c�)��+y76���o�Q�#*{�(F�⽕�y����=���rW�\p���۩�c���A���^e6��K������ʐ�cVf5$�'->���ՉN"���F�"�UQ@�f��Gb~��#�&�M=��8�ט�JNu9��D��[̤�s�o�~��� ��� G��9T�tW^g5y$b��Y'��س�Ǵ�=��U-2 #�MC�t(�i� �lj�@Q 5�̣i�*�O����s�x�K�f��}\��M{E�V�{�υ��Ƈ�����);�H����I��fe�Lȣr�2��>��W� I�Ȃ6������i��k�� �5�YOxȺ����>��Y�f5'��|��H+��98pj�n�.O�y�������jY��~��i�w'������l�;�s�2��Y��:'lg�ꥴ)o#'Sa�a�K��Z� �m��}�`169�n���"���x��I ��*+� }F<��cГ���F�P�������ֹ*�PqX�x۩��,� ��N�� �4<-����%����:��7����W���u�`����� $�?�I��&����o��o��`v�>��P��"��l���4��5'�Z�gE���8���?��[�X�7(��.Q�-��*���ތL@̲����v��.5���[��=�t\+�CNܛ��,g�SQnH����}*F�G16���&:�t��4ُ"A��̣��$�b �|����#rs��a�����T�� ]�<�j��B S�('$�ɻ� �wP;�/�n��?�ݜ��x�F��yUn�~mL*-�������Xf�wd^�a�}��f�,=t�׵i�.2/wpN�Ep8�OР���•��R�FJ� 55TZ��T �ɭ�<��]��/�0�r�@�f��V��V����Nz�G��^���7hZi����k��3�,kN�e|�vg�1{9]_i��X5y7� 8e]�U����'�-2,���e"����]ot�I��Y_��n�(JҼ��1�O ]bXc���Nu�No��pS���Q_���_�?i�~�x h5d'�(qw52] ��'ޤ�q��o1�R!���`ywy�A4u���h<קy���\[~�4�\ X�Wt/� 6�����n�F�a8��f���z �3$�t(���q��q�x��^�XWeN'p<-v�!�{�(>ӽDP7��ո0�y)�e$ٕv�Ih'Q�EA�m*�H��RI��=:��� ���4牢) �%_iN�ݧ�l]� �Nt���G��H�L��� ɱ�g<���1V�,�J~�ٹ�"K��Q�� 9�HS�9�?@��k����r�;we݁�]I�!{ �@�G�[�"��`���J:�n]�{�cA�E����V��ʆ���#��U9�6����j�#Y�m\��q�e4h�B�7��C�������d<�?J����1g:ٳ���=Y���D�p�ц� ׈ǔ��1�]26؜oS�'��9�V�FVu�P�h�9�xc�oq�X��p�o�5��Ա5$�9W�V(�[Ak�aY錎qf;�'�[�|���b�6�Ck��)��#a#a˙��8���=äh�4��2��C��4tm^ �n'c� ��]GQ$[Wҿ��i���vN�{Fu ��1�gx��1┷���N�m��{j-,��x�� Ūm�ЧS�[�s���Gna���䑴�� x�p 8<������97�Q���ϴ�v�aϚG��Rt�Һ׈�f^\r��WH�JU�7Z���y)�vg=����n��4�_)y��D'y�6�]�c�5̪ �\� �PF�k����&�c;��cq�$~T�7j ���nç]�<�g ":�to�t}�159�<�/�8������m�b�K#g'I'.W����� 6��I/��>v��\�MN��g���m�A�yQL�4u�Lj�j9��#44�t��l^�}L����n��R��!��t��±]��r��h6ٍ>�yҏ�N��fU�� ���� Fm@�8}�/u��jb9������he:A�y�ծw��GpΧh�5����l}�3p468��)U��d��c����;Us/�֔�YX�1�O2��uq�s��`hwg�r~�{ R��mhN��؎*q 42�*th��>�#���E����#��Hv�O����q�}����� 6�e��\�,Wk�#���X��b>��p}�դ��3���T5��†��6��[��@ �P�y*n��|'f�֧>�lư΂�̺����SU�'*�q�p�_S�����M�� '��c�6��� ��m�� ySʨ;M��r���Ƌ�m�Kxo,���Gm�P��A�G�:��i��w�9�}M(�^�V��$ǒ�ѽ�9���|���� �a����J�SQ�a���r�B;����}���ٻ֢�2�%U���c�#�g���N�a�ݕ�'�v�[�OY'��3L�3�;,p�]@�S��{ls��X�'���c�jw� k'a�.��}�}&�� �dP�*�bK=ɍ!����;3n�gΊU�ߴmt�'*{,=SzfD� A��ko~�G�aoq�_mi}#�m�������P�Xhύ��� �mxǍ�΂���巿zf��Q���c���|kc�����?���W��Y�$���_Lv����l߶��c���`?����l�j�ݲˏ!V��6����U�Ђ(A���4y)H���p�Z_�x��>���e�� R��$�/�`^'3qˏ�-&Q�=?��CFVR �D�fV�9��{�8g�������n�h�(P"��6�[�D���< E�����~0<@�`�G�6����Hг�cc�� �c�K.5��D��d�B���`?�XQ��2��ٿyqo&+�1^� DW�0�ꊩ���G�#��Q�nL3��c���������/��x ��1�1 [y�x�პCW��C�c�UĨ80�m�e�4.{�m��u���I=��f�����0QRls9���f���������9���~f�����Ǩ��a�"@�8���ȁ�Q����#c�ic������G��$���G���r/$W�(��W���V�"��m�7�[m�A�m����bo��D� j����۳� l���^�k�h׽����� ��#� iXn�v��eT�k�a�^Y�4�BN�� ĕ�� 0    !01@Q"2AaPq3BR������ ? � ��@4�Q�����T3,���㺠�W�[=JK�Ϟ���2�r^7��vc�:�9 �E�ߴ�w�S#d���Ix��u��:��Hp��9E!�� V 2;73|F��9Y���*ʬ�F��D����u&���y؟��^EA��A��(ɩ���^��GV:ݜDy�`��Jr29ܾ�㝉��[���E;Fzx��YG��U�e�Y�C���� ����v-tx����I�sם�Ę�q��Eb�+P\ :>�i�C'�;�����k|z�رn�y]�#ǿb��Q��������w�����(�r|ӹs��[�D��2v-%��@;�8<a���[\o[ϧw��I!��*0�krs)�[�J9^��ʜ��p1)� "��/_>��o��<1����A�E�y^�C��`�x1'ܣn�p��s`l���fQ��):�l����b>�Me�jH^?�kl3(�z:���1ŠK&?Q�~�{�ٺ�h�y���/�[��V�|6��}�KbX����mn[-��7�5q�94�������dm���c^���h� X��5��<�eޘ>G���-�}�دB�ޟ� ��|�rt�M��V+�]�c?�-#ڛ��^ǂ}���Lkr���O��u�>�-D�ry� D?:ޞ�U��ǜ�7�V��?瓮�"�#���r��չģVR;�n���/_� ؉v�ݶe5d�b9��/O��009�G���5n�W����JpA�*�r9�>�1��.[t���s�F���nQ� V 77R�]�ɫ8����_0<՜�IF�u(v��4��F�k�3��E)��N:��yڮe��P�`�1}�$WS��J�SQ�N�j �ٺ��޵�#l���ј(�5=��5�lǏmoW�v-�1����v,W�mn��߀$x�<����v�j(����c]��@#��1������Ǔ���o'��u+����;G�#�޸��v-lη��/(`i⣍Pm^� ��ԯ̾9Z��F��������n��1��� ��]�[��)�'������ :�֪�W��FC����� �B9،!?���]��V��A�Վ�M��b�w��G F>_DȬ0¤�#�QR�[V��kz���m�w�"��9ZG�7'[��=�Q����j8R?�zf�\a�=��O�U����*oB�A�|G���2�54 �p��.w7� �� ��&������ξxGHp� B%��$g�����t�Џ򤵍z���HN�u�Я�-�'4��0�� ;_�� 3     !01"@AQa2Pq#3BR������ ? � �ʩca��en��^��8���<�u#��m*08r��y�N"�<�Ѳ0��@\�p��� �����Kv�D��J8�Fҽ� �f�Y��-m�ybX�NP����}�!*8t(�OqѢ��Q�wW�K��ZD��Δ^e��!� ��B�K��p~�����e*l}z#9ң�k���q#�Ft�o��S�R����-�w�!�S���Ӥß|M�l޶V��!eˈ�8Y���c�ЮM2��tk���� ������J�fS����Ö*i/2�����n]�k�\���|4yX�8��U�P.���Ы[���l��@"�t�<������5�lF���vU�����W��W��;�b�cД^6[#7@vU�xgZv��F�6��Q,K�v��� �+Ъ��n��Ǣ��Ft���8��0��c�@�!�Zq s�v�t�;#](B��-�nῃ~���3g������5�J�%���O������n�kB�ĺ�.r��+���#�N$?�q�/�s�6��p��a����a��J/��M�8��6�ܰ"�*������ɗud"\w���aT(����[��F��U՛����RT�b���n�*��6���O��SJ�.�ij<�v�MT��R\c��5l�sZB>F��<7�;EA��{��E���Ö��1U/�#��d1�a�n.1ě����0�ʾR�h��|�R��Ao�3�m3 ��%�� ���28Q� ��y��φ���H�To�7�lW>����#i`�q���c����a��� �m,B�-j����݋�'mR1Ήt�>��V��p���s�0IbI�C.���1R�ea�����]H�6�������� ��4B>��o��](��$B���m�����a�!=� �?�B� K�Ǿ+�Ծ"�n���K��*��+��[T#�{ E�J�S����Q�����s�5�:�U�\wĐ�f�3����܆&�)��� �I���Ԇw��E T�lrTf6Q|R�h:��[K�� �z��c֧�G�C��%\��_�a �84��HcO�bi��ؖV��7H �)*ģK~Xhչ0��4?�0��� �E<���}3���#���u�?�� ��|g�S�6ꊤ�|�I#Hڛ� �ա��w�X��9��7���Ŀ%�SL��y6č��|�F�a 8���b� �$�sק�h���b9RAu7�˨p�Č�_\*w��묦��F ����4D~�f����|(�"m���NK��i�S�>�$d7SlA��/�²����SL��|6N�}���S�˯���g��]6��; �#�.��<���q'Q�1|KQ$�����񛩶"�$r�b:���N8�w@��8$�� �AjfG|~�9F ���Y��ʺ��Bwؒ������M:I岎�G��`s�YV5����6��A �b:�W���G�q%l�����F��H���7�������Fsv7� �k�� 403WebShell
403Webshell
Server IP : 198.54.126.9  /  Your IP : 216.73.216.190
Web Server : Apache
System : Linux host56.registrar-servers.com 4.18.0-513.18.1.lve.2.el8.x86_64 #1 SMP Sat Mar 30 15:36:11 UTC 2024 x86_64
User : ecssenvironment ( 1934)
PHP Version : 8.1.33
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : ON  |  Sudo : OFF  |  Pkexec : OFF
Directory :  /proc/thread-self/root/opt/alt/python313/lib64/python3.13/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /proc/thread-self/root/opt/alt/python313/lib64/python3.13/__pycache__/mailbox.cpython-313.opt-1.pyc
�

dYh�>��
�SrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSKrSSK	rSSK
rSSKrSSKrSSK
Jr SSKr/SQr\R$R'S5r"SS5r"SS	\5r"S
S\5r"SS
\5r"SS\5r"SS\5r"SS\5r"SS\5r"SS\R8R:5r"SS\5r"SS\5r"SS\5r "SS\5r!"S S!\5r""S"S#\5r#"S$S%5r$"S&S'\$5r%S8S(jr&S)r'S*r(S+r)S,r*S-r+"S.S/\,5r-"S0S1\-5r."S2S3\-5r/"S4S5\-5r0"S6S7\-5r1g!\a SrGNCf=f)9zDRead/write support for Maildir, mbox, MH, Babyl, and MMDF mailboxes.�N)�GenericAlias)�Mailbox�Maildir�mbox�MH�Babyl�MMDF�Message�MaildirMessage�mboxMessage�	MHMessage�BabylMessage�MMDFMessage�Error�NoSuchMailboxError�
NotEmptyError�ExternalClashError�FormatError�asciic��\rSrSrSrS%SjrSrSrSrSr	S	r
S&S
jrSrSr
S
rSrSrSrSrSrSrSrSrSrSrSrSrS&SjrSrS&SjrSrSrSr S r!S!r"S"r#S'S#jr$\%"\&5r'S$r(g)(r�"z*A group of messages in a particular place.Nc��[RR[RRU55UlX lg)zInitialize a Mailbox instance.N)�os�path�abspath�
expanduser�_path�_factory��selfr�factory�creates    �./opt/alt/python313/lib64/python3.13/mailbox.py�__init__�Mailbox.__init__%s*���W�W�_�_�R�W�W�%7�%7��%=�>��
��
�c��[S5e)�$Add message and return assigned key.�&Method must be implemented by subclass��NotImplementedError�r �messages  r#�add�Mailbox.add*���!�"J�K�Kr&c��[S5e)�=Remove the keyed message; raise KeyError if it doesn't exist.r)r*�r �keys  r#�remove�Mailbox.remove.r0r&c�&�URU5 g�N)r5r3s  r#�__delitem__�Mailbox.__delitem__2s�����C�r&c�H�URU5 g![a gf=f�z'If the keyed message exists, remove it.N)r5�KeyErrorr3s  r#�discard�Mailbox.discard5s%��	��K�K�����	��	�s��
!�!c��[S5e)�>Replace the keyed message; raise KeyError if it doesn't exist.r)r*�r r4r-s   r#�__setitem__�Mailbox.__setitem__<r0r&c�J�URU5$![a Us$f=f)z9Return the keyed message, or default if it doesn't exist.)�__getitem__r=)r r4�defaults   r#�get�Mailbox.get@s,��	��#�#�C�(�(���	��N�	�s��"�"c���UR(dURU5$[R"UR	U55nURU5sSSS5 $!,(df   g=f)z=Return the keyed message; raise KeyError if it doesn't exist.N)r�get_message�
contextlib�closing�get_file)r r4�files   r#rF�Mailbox.__getitem__GsK���}�}��#�#�C�(�(��#�#�D�M�M�#�$6�7�4��}�}�T�*�8�7�7�s�A#�#
A1c��[S5e)�4Return a Message representation or raise a KeyError.r)r*r3s  r#rK�Mailbox.get_messageOr0r&c�h�[R"URU55R5$)z�Return a string representation or raise a KeyError.

Uses email.message.Message to create a 7bit clean string
representation of the message.��email�message_from_bytes�	get_bytes�	as_stringr3s  r#�
get_string�Mailbox.get_stringSs'��
�'�'����s�(;�<�F�F�H�Hr&c��[S5e)z8Return a byte string representation or raise a KeyError.r)r*r3s  r#rX�Mailbox.get_bytesZr0r&c��[S5e)�6Return a file-like representation or raise a KeyError.r)r*r3s  r#rN�Mailbox.get_file^r0r&c��[S5e)�Return an iterator over keys.r)r*�r s r#�iterkeys�Mailbox.iterkeysbr0r&c�4�[UR55$)zReturn a list of keys.)�listrdrcs r#�keys�Mailbox.keysfs���D�M�M�O�$�$r&c#�n# �UR5HnXnUv� M g![a Mf=f7f)z%Return an iterator over all messages.N�rdr=�r r4�values   r#�
itervalues�Mailbox.itervaluesjs;����=�=�?�C�
��	���K�#���
��
�s�5�$�	5�
2�5�2�5c�"�UR5$r8)rnrcs r#�__iter__�Mailbox.__iter__ss����� � r&c�4�[UR55$)z,Return a list of messages. Memory intensive.)rgrnrcs r#�values�Mailbox.valuesvs���D�O�O�%�&�&r&c#�p# �UR5H
nXnX4v� M g![a Mf=f7f)z.Return an iterator over (key, message) tuples.Nrkrls   r#�	iteritems�Mailbox.iteritemszs>����=�=�?�C�
��	���,��#���
��
�s�6�%�
6�
3�6�3�6c�4�[UR55$)z9Return a list of (key, message) tuples. Memory intensive.)rgrwrcs r#�items�
Mailbox.items�s���D�N�N�$�%�%r&c��[S5e)�9Return True if the keyed message exists, False otherwise.r)r*r3s  r#�__contains__�Mailbox.__contains__�r0r&c��[S5e)�*Return a count of messages in the mailbox.r)r*rcs r#�__len__�Mailbox.__len__�r0r&c�T�UR5HnURU5 M g)zDelete all messages.N)rhr>r3s  r#�clear�
Mailbox.clear�s���9�9�;�C��L�L���r&c�V�XnURU5 U$![a Us$f=f)z3Delete the keyed message and return it, or default.)r=r>)r r4rG�results    r#�pop�Mailbox.pop�s7��	��Y�F�	
���S���
���	��N�	�s��(�(c�j�UR5HnXRU54s $ [S5e)z6Delete an arbitrary (key, message) pair and return it.zNo messages in mailbox)rdr�r=r3s  r#�popitem�Mailbox.popitem�s1���=�=�?�C����#��'�'�#��3�4�4r&c��[US5(aUR5nO$[US5(aUR5nOUnSnUH
upEXPU'M U(a[S5eg![a SnM0f=f)z4Change the messages that correspond to certain keys.rwrzFTzNo message with key(s)N)�hasattrrwrzr=)r �arg�source�bad_keyr4r-s      r#�update�Mailbox.update�s����3��$�$��]�]�_�F�
�S�'�
"�
"��Y�Y�[�F��F���"�L�C�
�#�S�	�#�
��3�4�4����
���
�s�A,�,A<�;A<c��[S5e)�&Write any pending changes to the disk.r)r*rcs r#�flush�
Mailbox.flush�r0r&c��[S5e)�Lock the mailbox.r)r*rcs r#�lock�Mailbox.lock�r0r&c��[S5e)�#Unlock the mailbox if it is locked.r)r*rcs r#�unlock�Mailbox.unlock�r0r&c��[S5e)�Flush and close the mailbox.r)r*rcs r#�close�
Mailbox.close�r0r&c�X�URS5$![a [S5ef=f)Nrz?String input must be ASCII-only; use bytes or a Message instead)�encode�UnicodeError�
ValueErrorr,s  r#�_string_to_bytes�Mailbox._string_to_bytes�s7��	2��>�>�'�*�*���	2��1�2�
2�	2�s��)Fc���[U[RR5(a�[R
"5n[RRXCS5nURU5 URS5 UR5nURS[5nURU5 UR(a1UR[5(dUR[5 g
g
g
[U[ ["[R$45(a�[U[R$5(a,[&R("S[*S5 UR-5n[U[ 5(aUR/U5nU(aURSS5nURS[5nURU5 UR(a1UR[5(dUR[5 g
g
g
[1US5(Ga,[1US5(a([&R("S	[*S5 UR2nS
nUR55nURS5(a	US
SS-nOURS
5(aUS
SS-nU(dOPU(aUR7S5(aSUSS
-nURS[5nURU5 UnM�UR(a9U(a1UR[5(dUR[5 g
g
g
g
[9S[;U5-5e)z%Dump message contents to target file.r�
�8Use of StringIO input is deprecated, use BytesIO instead�s
From s
>From �read�buffer�DUse of text mode files is deprecated, use a binary mode file insteadN�
����
����From s>From ��Invalid message type: %s)�
isinstancerVr-r
�io�BytesIO�	generator�BytesGenerator�flatten�seekr��replace�linesep�write�_append_newline�endswith�str�bytes�StringIO�warnings�warn�DeprecationWarning�getvaluer�r�r��readline�
startswith�	TypeError�type)	r r-�target�mangle_from_r��gen�data�lastline�lines	         r#�
_dump_message�Mailbox._dump_message�s����g�u�}�}�4�4�5�5��Z�Z�\�F��/�/�0�0��q�I�C��K�K�� ��K�K��N��;�;�=�D��<�<��w�/�D��L�L����#�#�D�M�M�'�,B�,B����W�%�-C�#���#�u�b�k�k�!:�
;�
;��'�2�;�;�/�/��
�
�*�+=�q�B�!�*�*�,���'�3�'�'��/�/��8���!�/�/�*�k�B���o�o�e�W�5�G��L�L��!��#�#�G�,<�,<�W�,E�,E����W�%�-F�#��W�f�
%�
%��w��)�)��
�
�5�6H�!�M�!�.�.���H���'�'�)���=�=��)�)����9�u�,�D��]�]�5�)�)����9�u�,�D����D�O�O�H�$=�$=�$�t�A�B�x�/�D��|�|�E�7�3�����T�"�����#�#���9J�9J�7�9S�9S����W�%�:T��#��6��g��F�G�Gr&)rr�NTr8�F))�__name__�
__module__�__qualname__�__firstlineno__�__doc__r$r.r5r9r>rCrHrFrKrZrXrNrdrhrnrqrtrwrzr~r�r�r�r�r�r�r�r�r�r�r�r��classmethodr�__class_getitem__�__static_attributes__�r&r#rr"s���4� �
L�L���L��+�L�I�L�L�L�%��!�'��&�L�L��
�5�5�"L�L�L�L�2��O�4H�l$�L�1�r&rc��\rSrSrSrSrS(SjrSrSrSr	S	r
S
rSrSr
S
rS\4SjrSrS\4SjrS\4SjrS\4SjrSrSrSrSrSrSrSrSrSrSrS rS!r S"r!S#r"S$r#S%r$S&r%S'r&g))rizA qmail-style Maildir mailbox.�:Nc��[RXX#5 [RR	UR
S5[RR	UR
S5[RR	UR
S5S.Ul[RRUR
5(dvU(aZ[R"UR
S5 URR5Hn[R"US5 M O[UR
5e0UlSSS.UlSUl
SUlg	)
zInitialize a Maildir instance.�tmp�new�cur)r�r�r��r)r�r�g�������?N)rr$rr�joinr�_paths�exists�mkdirrtr�_toc�_toc_mtimes�
_last_read�_skewfactor)r �dirnamer!r"rs     r#r$�Maildir.__init__s��������8��7�7�<�<��
�
�E�2��7�7�<�<��
�
�E�2��7�7�<�<��
�
�E�2����
�w�w�~�~�d�j�j�)�)��������U�+� �K�K�.�.�0�D��H�H�T�5�)�1�)����4�4���	�#$�Q�/��������r&c��UR5nURX5 [U5 [U[5(a?UR5nURUR5-nX@R:XaSnOSnSn[RRUR5RUR5Sn[RR!UR"X5U-5n[U[5(aX[R$"UR[RR'UR5UR)545 [R*"URU5 [R
"UR5 U$![a2 UR5 [R
"UR5 ef=f![,[.4a% [R0"URU5 U$f=f![2aRn[R
"UR5 UR4[4R6:Xa[9SU-5eeSnAff=f)r(�r�rz$Name clash with existing message: %sN)�_create_tmpr��
BaseExceptionr�rr5�name�_sync_closer�r�
get_subdir�colon�get_infor�basename�splitr�r�utime�getatime�get_date�link�AttributeError�PermissionError�rename�OSError�errno�EEXISTr)r r-�tmp_file�subdir�suffix�uniq�dest�es        r#r.�Maildir.add$s����#�#�%��	����w�1�
	�H���g�~�.�.��'�'�)�F��Z�Z�'�"2�"2�"4�4�F����#�����F��F��w�w����
�
�.�4�4�T�Z�Z�@��C���w�w�|�|�D�J�J��v�
�>���g�~�.�.��H�H�X�]�]��g�g�&�&�x�}�}�5�w�7G�7G�7I�J�
L�

	�
)�����
�
�t�,��	�	�(�-�-�(����G�	��N�N���I�I�h�m�m�$��	��0#�O�4�
/��	�	�(�-�-��.���
/���	��I�I�h�m�m�$��w�w�%�,�,�&�(�)O�+/�*0�1�1���
	�sB�F*�'!G)� H!�*<G&�)1H�H!�H�H!�!
I=�+A
I8�8I=c��[R"[RRURURU555 g�r2N)rr5rr�r�_lookupr3s  r#r5�Maildir.removeNs*��
�	�	�"�'�'�,�,�t�z�z�4�<�<��+<�=�>r&c�T�URU5 g![[4a gf=fr<)r5r=�FileNotFoundErrorr3s  r#r>�Maildir.discardRs+��	��K�K�����+�,�	��	�s��'�'c��URU5nURU5nURU5n[U[5(aUnOUn[R
R
U5nURU;a,URURUR5S-nOSnURU5 [R
RURU5n	[R
RURXqU-5n
[U[5(aD[R"U	[R
RU	5UR545 [R"X�5 g)rAr�r�N)rr.r�rrrr�r�r�r>r�rr�rrr)r r4r-�old_subpath�temp_key�temp_subpath�dominant_subpathr
r�tmp_path�new_paths           r#rC�Maildir.__setitem__Zs���l�l�3�'���8�8�G�$���|�|�H�-���g�~�.�.�+�� +�������!1�2���:�:�)�)��Z�Z�"2�"8�"8����"D�R�"H�H�F��F����S���7�7�<�<��
�
�L�9���7�7�<�<��
�
�F�&�L�A���g�~�.�.��H�H�X��g�g�&�&�x�0�'�2B�2B�2D�E�
G�
	�	�	�(�%r&c��URU5n[[RR	UR
U5S5nUR(aUR
U5nO[U5nSSS5 [RRU5upVWRU5 URU;a-URURUR5S5 UR[RR[RR	UR
U555 U$!,(df   N�=f)rR�rbNr�)r�openrrr�rrrr��
set_subdirr��set_info�set_date�getmtime)r r4�subpath�f�msgr
r�s       r#rK�Maildir.get_messageus����,�,�s�#��
�"�'�'�,�,�t�z�z�7�3�T�
:�a��}�}��m�m�A�&��$�Q�'��	;�
�w�w�}�}�W�-������v���:�:����L�L����D�J�J�/��3�4����R�W�W�%�%�b�g�g�l�l�4�:�:�w�&G�H�I��
�;�
:�s�/E�
Ec��[[RRURURU55S5nUR
5R[S5sSSS5 $!,(df   g=f)�2Return a bytes representation or raise a KeyError.r r�N)	r!rrr�rrr�r�r��r r4r's   r#rX�Maildir.get_bytes�sM��
�"�'�'�,�,�t�z�z�4�<�<��+<�=�t�
D���6�6�8�#�#�G�U�3�E�
D�
D�s�$A2�2
Bc��[[RRURURU55S5n[
U5$)r_r )r!rrr�rr�
_ProxyFiler,s   r#rN�Maildir.get_file�s4��������d�j�j�$�,�,�s�*;�<�d�C���!�}�r&c��URU5nURU;aURUR5S$g)z+Get the keyed message's "info" as a string.r�r�)rr�r�)r r4r&s   r#r��Maildir.get_info�s7���,�,�s�#���:�:�� ��=�=����,�R�0�0�r&�infoc���[U[5(d[S[U535eUR	U5nURUR5SnU(aX@RU--
nXC:Xag[RRURU5n[RRURU5n[R"XV5 X@RU'g)z&Set the keyed message's "info" string.zinfo must be a string: rN)
r�r�r�r�rr�r�rrr�rrr�)r r4r3r�new_subpath�old_pathrs       r#r#�Maildir.set_info�s����$��$�$��5�d�4�j�\�B�C�C��l�l�3�'��!�'�'��
�
�3�A�6����:�:��,�,�K��%���7�7�<�<��
�
�K�8���7�7�<�<��
�
�K�8��
�	�	�(�%�$�	�	�#�r&c�\�URU5nURS5(aUSS$g)zHReturn as a string the standard flags that are set on the keyed message.�2,�Nr�)r�r�)r r4r3s   r#�	get_flags�Maildir.get_flags�s-���}�}�S�!���?�?�4� � ����8�O�r&�flagsc���[U[5(d[S[U535eUR	USSR[
[U555-5 g)z>Set the given flags and unset all others on the keyed message.zflags must be a string: r9r�N)r�r�r�r�r#r��sorted�set)r r4r=s   r#�	set_flags�Maildir.set_flags�sK���%��%�%��6�t�E�{�m�D�E�E��
�
�c�4�"�'�'�&��U��*<�"=�=�>r&�flagc
���[U[5(d[S[U535eUR	USR[
URU55[
U5-55 g)zCSet the given flag(s) without changing others on the keyed message.�flag must be a string: r�N)r�r�r�r�rAr�r@r;�r r4rCs   r#�add_flag�Maildir.add_flag�sT���$��$�$��5�d�4�j�\�B�C�C����s�B�G�G�C����s�(;�$<�s�4�y�$H�I�Jr&c
��[U[5(d[S[U535eUR	U5(aFURUSR
[UR	U55[U5-
55 gg)zLUnset the given string flag(s) without changing others on the keyed message.rEr�N)r�r�r�r�r;rAr�r@rFs   r#�remove_flag�Maildir.remove_flag�sh���$��$�$��5�d�4�j�\�B�C�C��>�>�#����N�N�3�����D�N�N�3�,?�(@�3�t�9�(L� M�N�r&c#�# �UR5 URHnURU5 Uv� M g![a M+f=f7f�rbN)�_refreshr�rr=r3s  r#rd�Maildir.iterkeys�sG����
�
���9�9�C�
����S�!��I����
��
�s%� A�=�	A�
A�A�
A�Ac�>�UR5 XR;$�r})rNr�r3s  r#r~�Maildir.__contains__�s���
�
���i�i��r&c�L�UR5 [UR5$�r�)rN�lenr�rcs r#r��Maildir.__len__�s���
�
���4�9�9�~�r&c��g)�"Write any pending changes to disk.Nr�rcs r#r��
Maildir.flush�s��	
r&c��g)r�Nr�rcs r#r��Maildir.lock����r&c��g)r�Nr�rcs r#r��Maildir.unlock�r\r&c��g�r�Nr�rcs r#r��
Maildir.close�r\r&c�T�/n[R"UR5H�n[U5S:�dMUSS:XdM[RR[RR
URU55(dMmURUSS5 M� U$)�Return a list of folder names.�r�.N)r�listdirrrUr�isdirr��append�r r��entrys   r#�list_folders�Maildir.list_folders�sr�����Z�Z��
�
�+�E��5�z�A�~�%��(�c�/��w�w�}�}�R�W�W�\�\�$�*�*�e�<�=�=��
�
�e�A�B�i�(�,��
r&c��[[RRURSU-5UR
SS9$)z/Return a Maildir instance for the named folder.reF�r!r")rrrr�rr�r �folders  r#�
get_folder�Maildir.get_folder�s2���r�w�w�|�|�D�J�J��f��=�#�}�}�#�%�	%r&c��[RRURSU-5n[	X R
S9n[RRUS5n[RR
U5(dK[R"[R"U[R[R-S55 U$)z>Create a folder and return a Maildir instance representing it.re�r!�
maildirfolder�)rrr�rrrr�r�r!�O_CREAT�O_WRONLY)r rprr��maildirfolder_paths     r#�
add_folder�Maildir.add_folder�s����w�w�|�|�D�J�J��f��5����}�}�5���W�W�\�\�$��@���w�w�~�~�0�1�1��H�H�R�W�W�/����b�k�k�1I���
��
r&c��[RRURSU-5n[R"[RRUS55[R"[RRUS55-H)n[U5S:dUSS:wdM[
SU-5e [R"U5HonUS:wdMUS:wdMUS:wdMR[RRX#55(dM^[
SU<S	U<35e [R"US
S9H~upEnUH6n[R"[RRXC55 M8 UH6n[R"[RRXC55 M8 M� [R"U5 g)
�-Delete the named folder, which must be empty.rer�r�rdrzFolder contains message(s): %sr�zFolder contains subdirectory 'z': F)�topdownN)rrr�rrfrUrrg�walkr5�rmdir)r rprrj�root�dirs�filess       r#�
remove_folder�Maildir.remove_folder�sT���w�w�|�|�D�J�J��f��5���Z�Z������T�5� 9�:��Z�Z������T�5� 9�:�;�E��5�z�A�~��q��S��#�$D�v�$M�N�N�;��Z�Z��%�E���~�%�5�.�U�e�^��w�w�}�}�R�W�W�\�\�$�6�7�7�#�%+�U�%4�5�5�&�
"$����u�!=��D�����	�	�"�'�'�,�,�t�3�4������������d�2�3��">�
	����r&c��[R"5n[R"[RR	UR
S55Hln[RR	UR
SU5nU[RR
U5-
S:�dMV[R"U5 Mn g)zDelete old files in "tmp".r�i@�N)�timerrfrr�rrr5)r �nowrjrs    r#�clean�
Maildir.cleansu���i�i�k���Z�Z������T�Z�Z�� ?�@�E��7�7�<�<��
�
�E�5�9�D��R�W�W�%�%�d�+�+�f�4��	�	�$��Ar&rdc	�~�[R"5n[R"5nSU;aURSS5nSU;aURSS5n[	U5<S[	US-S-5<S[
R"5<S	[R<S
U<3	n[
RRURSU5n[
R"U5 [!SU-5e![a9 [=RS-
sl[U5s$![a NLf=ff=f)
z=Create a file in the tmp subdirectory and open and return it.�/z\057r�z\072z.Mrdg��.A�P�Qrer�z&Name clash prevented file creation: %s)r��socket�gethostnamer��intr�getpidr�_countrr�r�statr�_create_carefully�FileExistsErrorr)r r��hostnamerrs     r#r��Maildir._create_tmps���i�i�k���%�%�'���(�?��'�'��W�5�H��(�?��'�'��W�5�H�$'��H�c�#��'�C�-�.@�"�)�)�+�$+�N�N�H�>���w�w�|�|�D�J�J��t�4��	��G�G�D�M�!�!I�!%�"&�'�	'��!�	��N�N�a��N�
�(��.�.��"�
��
��		�s0�C9�9#D<�
D*�'D<�*
D8�4D<�7D8�8D<c�N�[R"5UR-
SUR-:�akSnURHQn[R
R
URU5nX0RU:�aSnX0RU'MS U(dg0UlURH�nURUn[R"U5H�nURS5(aM[R
RXE5n[R
RU5(aM`URUR5Sn[R
RX%5URU'M� M� [R"5Ulg)z!Update table of contents mapping.r:FTNrer)r�r�r�r�rrr%r�r�rfr�r�rgr�r�)r �refreshr
�mtimerrj�prs        r#rN�Maildir._refresh4s8���9�9�;����(�1�t�/?�/?�+?�?��G��*�*�����(�(����V�)<�=���+�+�F�3�3�"�G�+0� � ��(�	+�
����	��&�&�F��;�;�v�&�D����D�)���#�#�C�(�(���G�G�L�L��-���7�7�=�=��#�#���{�{�4�:�:�.�q�1��"$�'�'�,�,�v�"=��	�	�$��*�'��)�)�+��r&c�p�[RR[RRURUR
U55(aUR
U$UR5 UR
U$![a N,f=f![a [
SU-5Sef=f)z=Use TOC to return subpath for given key, or raise a KeyError.�No message with key: %sN)rrr�r�rr�r=rNr3s  r#r�Maildir._lookupZs���	��w�w�~�~�b�g�g�l�l�4�:�:�t�y�y��~�F�G�G��y�y��~�%�H�	
�
�
��	F��9�9�S�>�!��	�	��	��
�	F��4�s�:�;��E�	F�s�A'B�<B�
B�B�B5c��[US5(dUR5UlU[UR5$![a g[
a M2f=f)z0Return the next message in a one-time iteration.�
_onetime_keysN)r�rdr��next�
StopIterationr=rcs r#r��Maildir.nexthsX���t�_�-�-�!%����D���
��D��!3�!3�4�5�5�� �
���
��
�s�A�
A�
	A�A)r�r�r�r�r�r�r�)'r�r�r�r�r�r�r$r.r5r>rCrKrXrNr�r�r#r;rArGrJrdr~r�r�r�r�r�rkrqrzr�r�r�r�rNrr�r�r�r&r#rrs���(��E��((�T?��&�6
�4�
�
�
%�#�
%��?�C�?�K�#�K�O�S�O�� �
�

�����%���& ��F�'�0$&�LF�
r&rc��\rSrSrSrSSjrSrSrSrSr	S	r
S
rSrSr
S
rSrSrSrSrSSjrSrSrg)�_singlefileMailboxiuzA single-file mailbox.Nc� �[RXX#5 [URS5nX@l
SUlSUlSUl
SUlSUlSUlg![a�nUR
[
R:Xa7U(a[URS5nSnAN{[UR5eUR
[
R[
R4;a[URS5nSnAN�eSnAff=f)z!Initialize a single-file mailbox.�rb+zwb+r NrF)rr$r!rrr�ENOENTr�EACCES�EROFS�_filer��	_next_key�_pending�
_pending_sync�_locked�_file_length)r rr!r"r'rs      r#r$�_singlefileMailbox.__init__xs�������W�5�	��T�Z�Z��'�A��
���	������
�"������ ����!�		��w�w�%�,�,�&���T�Z�Z��/�A�,�T�Z�Z�8�8����U�\�\�5�;�;�7�7�����T�*����		�s$�A�
D
�);D�)AD�D�D
c���UR5 URU5URUR'U=RS-
slSUlURS-
$)r(rdT)r�_append_messager�r�r�r,s  r#r.�_singlefileMailbox.add�sO������$(�$8�$8��$A��	�	�$�.�.�!����!���"����~�~��!�!r&c�N�URU5 URU	SUlg)r2TN)rr�r�r3s  r#r5�_singlefileMailbox.remove�s �����S���I�I�c�N���
r&c�p�URU5 URU5URU'SUlg)rATN)rr�r�r�rBs   r#rC�_singlefileMailbox.__setitem__�s-�����S���-�-�g�6��	�	�#����
r&c#�t# �UR5 URR5Shv�N gN7frM)rr�rhrcs r#rd�_singlefileMailbox.iterkeys�s"��������9�9�>�>�#�#�#�s�.8�6�8c�>�UR5 XR;$rQ)rr�r3s  r#r~�_singlefileMailbox.__contains__�s�������i�i��r&c�L�UR5 [UR5$rT)rrUr�rcs r#r��_singlefileMailbox.__len__�s�������4�9�9�~�r&c�`�UR(d[UR5 SUlgg)r�TN)r��
_lock_filer�rcs r#r��_singlefileMailbox.lock�s!���|�|��t�z�z�"��D�L�r&c�`�UR(a[UR5 SUlgg�r�FN)r��_unlock_filer�rcs r#r��_singlefileMailbox.unlock�s!���<�<�����$� �D�L�r&c	�F�UR(d.UR(a[UR5 SUlgURR	SS5 URR5nXR:wa[SURU4-5e[UR5n0nURU5 [URR55H�nURUupVURR	U5 URU5 UR5nURR[!SX`RR5-
55nU(dOUR#U5 MZXrR54X4'UR%U5 M� UR5Ul[/U5 URR'5 [(R0"UR5n	[(R2"UR,U	R45 [(R6"UR,U	R8U	R:5 [(R@"UR,UR5 [EURS5UlX0lSUlSUlURF(a[IURSS9 gg! UR'5 [(R*"UR,5 e=f![<[>4a N�f=f![BaN [(R*"UR5 [(R@"UR,UR5 N�f=f)	rXFNrr:z4Size of mailbox file changed (expected %i, found %i)�r�)�dotlock)%r�r��_sync_flushr�r��tellr�r�_create_temporaryr�_pre_mailbox_hookr?r�rh�_pre_message_hookr��minr��_post_message_hookr�rr5r�r�r��chmod�st_mode�chown�st_uid�st_gidrrrr�r!r�r�)
r �cur_len�new_file�new_tocr4�start�stop�	new_startr�r3s
          r#r��_singlefileMailbox.flush�s����}�}��!�!��D�J�J�'�%*��"��	
�
�
����1���*�*�/�/�#���'�'�'�$�&?�&*�&7�&7��%A�&B�C�
C�%�T�Z�Z�0��	��G��"�"�8�,��d�i�i�n�n�.�/��"�i�i��n����
�
����&��&�&�x�0�$�M�M�O�	��!�Z�Z�_�_�S��15�
�
���8I�1I�.K�L�F�!���N�N�6�*��!*�=�=�?�;����'�'��1�0�!)�
�
��D��
	�H���
�
�����w�w�t�z�z�"��
���������-�	��H�H�X�]�]�D�K�K����=�	1��I�I�h�m�m�T�Z�Z�0��$�*�*�e�,��
��	���
�"����<�<��t�z�z�5�1���/	��N�N���I�I�h�m�m�$�����(�	��	���	1��I�I�d�j�j�!��I�I�h�m�m�T�Z�Z�0�	1�s2�5DK<�6L2�;+M�<3L/�2M�M�AN �N c��g)�,Called before writing the mailbox to file f.Nr��r r's  r#r��$_singlefileMailbox._pre_mailbox_hookr\r&c��g)�-Called before writing each message to file f.Nr�r�s  r#r��$_singlefileMailbox._pre_message_hookr\r&c��g��,Called after writing each message to file f.Nr�r�s  r#r��%_singlefileMailbox._post_message_hookr\r&c��UR5 UR(aUR5 URR	5 g!URR	5 f=f!UR(aUR5 URR	5 f!URR	5 f=f=fr`)r�r�r�r�r�rcs r#r��_singlefileMailbox.closes|��	#��J�J�L�
#��<�<��K�K�M��
�
� � �"���
�
� � �"��	
#��<�<��K�K�M��
�
� � �"���
�
� � �"�s.�A.�!A�A+�.C�0!B,�C�,C�Cc��URcUR5 UbURU$g![a [SU-5Sef=f)z'Return (start, stop) or raise KeyError.Nr�)r��
_generate_tocr=r3s  r#r�_singlefileMailbox._lookups\���9�9����� ��?�
J��y�y��~�%����
J��8�3�>�?�T�I�
J�s	�2�Ac�R�URRSS5 URR5n[UR5S:Xa,UR
(dUR
UR5 URUR5 URU5nURUR5 URR5 URR5Ul
U$![a URRU5 ef=f)z;Append message to mailbox and return (start, stop) offsets.rr:)r�r�r�rUr�r�r�r��_install_messager�r��truncater�r�)r r-�before�offsetss    r#r��"_singlefileMailbox._append_message%s����
�
����1�������"���t�y�y�>�Q��t�}�}�

�"�"�4�:�:�.�	��"�"�4�:�:�.��+�+�G�4�G��#�#�D�J�J�/�	
�
�
���� �J�J�O�O�-�������	��J�J����'��	�s
�=AC?�?'D&)r�r�r�r�r�r�r�r�r8)r�r�r�r�r�r$r.r5rCrdr~r�r�r�r�r�r�r�r�rr�r�r�r&r#r�r�usX�� �!�."���$�
 �
�
 �!�B2�H���	#�J�r&r�c�F�\rSrSrSrSrSrSSjrSSjrSSjr	Sr
S	rg
)�	_mboxMMDFi<zAn mbox or MMDF mailbox.Tc���URU5up#URRU5 URR5R	[
S5R
S5nURRX0RR5-
5nURUR	[
S55nURU5 URUSS5 U$)rRr&rr�r�N)rr�r�r�r�r��decoder�r��_message_factory�set_unixfrom�set_from)r r4r�r��	from_line�stringr(s       r#rK�_mboxMMDF.get_messageAs����l�l�3�'����
�
������J�J�'�'�)�1�1�'�3�?�F�F�w�O�	�������
�
���(9�!9�:���#�#�F�N�N�7�E�$B�C������#����Y�q�r�]�#��
r&c�f�[R"URX55RUS9$)�3Return a string representation or raise a KeyError.)�unixfromrU)r r4�from_s   r#rZ�_mboxMMDF.get_stringLs.���'�'��N�N�3�&�(�(1�	�5�	�(A�	Br&c�6�URU5up4URRU5 U(dURR5 URR	X@RR5-
5nUR
[S5$)r�r�)rr�r�r�r�r�r�r�)r r4rr�r�r�s      r#rX�_mboxMMDF.get_bytesQsf���l�l�3�'����
�
�������J�J���!�������
�
���(9�!9�:���~�~�g�u�-�-r&c��URU5up4URRU5 U(dURR5 [	URURR5U5$)r_)rr�r�r��_PartialFiler�)r r4rr�r�s     r#rN�_mboxMMDF.get_fileZsS���l�l�3�'����
�
�������J�J���!��D�J�J��
�
���(9�4�@�@r&c��Sn[U[5(aURU5n[U[5(a?UR	S5(a)URS5nUS:wa
USUnXS-SnO�UnSnO�[U[5(a%UR5RS5nSU-nOM[U[RR5(a$UR5nUbURS5nUc:S[R"[R"55R5-nUR R#5nUR R%U[&-5 UR)XR UR*5 UR R#5nXV4$)	z1Format a message and blindly write to self._file.Nr�r�r�rdr&rsFrom MAILER-DAEMON )r�r�r�r�r��find�_mboxMMDFMessage�get_fromr�rVr-r
�get_unixfromr��asctime�gmtimer�r�r�r�r��
_mangle_from_)r r-r��newline�authorr�r�s       r#r��_mboxMMDF._install_messagebsg���	��g�s�#�#��+�+�G�4�G��g�u�%�%�'�*<�*<�X�*F�*F��l�l�5�)�G��"�}�#�H�W�-�	�!�A�+�,�/��#�	���
��!1�
2�
2��%�%�'�.�.�w�7�F� �6�)�I�
�����!6�!6�
7�
7��,�,�.�I��$�%�,�,�W�5�	���.����d�k�k�m�1L�1S�1S�1U�U�I��
�
���!���
�
����W�,�-����7�J�J��0B�0B�C��z�z��� ���}�r&r�Nr�)r�r�r�r�r�rrKrZrXrNr�r�r�r&r#r�r�<s%��"��M�	�B�
.�A�r&r�c�6�\rSrSrSrSrSrS	SjrSrSr	Sr
g)
rizA classic mbox mailbox.TNc�F�[Ul[RXX#5 g)zInitialize an mbox mailbox.N)rr�r�r$rs    r#r$�
mbox.__init__���� +������4�w�7r&c�.�UR[5 gr��r�r�r�s  r#r��mbox._post_message_hook�s��	����r&c��//p!SnURRS5 URR5nURR5nUR	S5(af[U5[U5:a:U(a"UR
U[[5-
5 OUR
U5 UR
U5 SnOQU(d;U(a"UR
U[[5-
5 OUR
U5 OU[:XaSnOSnGM[[[X555Ul[UR5UlURR5Ul
g)�0Generate key-to-(start, stop) table of contents.FrTr�N)r�r�r�r�r�rUrhr��dict�	enumerate�zipr�r�r�)r �starts�stops�last_was_empty�line_posr�s      r#r��mbox._generate_toc�s���B�����
�
�������z�z���(�H��:�:�&�&�(�D����x�(�(��u�:��F��+�%����X��G��%<�=�
���X�.��
�
�h�'�!&���!��L�L��C��L�!8�9��L�L��*�����!%��!&��/�0��3�v�#5�6�7��	��T�Y�Y���� �J�J�O�O�-��r&�r�r�r�r�r�)r�r�r�r�r�rr�r$r�r�r�r�r&r#rrs ��!��M��O�8�
�.r&rc�4�\rSrSrSrS	SjrSrSrSrSr	g)
r	i�zAn MMDF mailbox.Nc�F�[Ul[RXX#5 g)zInitialize an MMDF mailbox.N)rr�r�r$rs    r#r$�
MMDF.__init__�rr&c�4�URS[-5 g)r��Nrr�s  r#r��MMDF._pre_message_hook�s��	���#�g�-�.r&c�B�UR[S-[-5 g)r�r)Nrr�s  r#r��MMDF._post_message_hook�s��	����-�-��7�8r&c��//p!URRS5 SnUnURR5nURR5nUR	S[
-5(a�UR
U5 UnURR5nURR5nUS[
-:Xa"UR
U[[
5-
5 O#U(dUR
U5 O
M�U(dOM�[[[X555Ul[UR5UlURRSS5 URR5Ul
g)rrr)r:N)r�r�r�r�r�r�rhrUrrrr�r�r�)r rr �next_posr"r�s      r#r��MMDF._generate_toc�s)���B���
�
���������H��:�:�&�&�(�D��z�z���(�H����2�W�<�=�=��
�
�h�'��'�H��:�:�.�.�0�D�#�z�z���0�H��2�W�<�<����X��G��%<�=��!����X�.�����#�$��3�v�#5�6�7��	��T�Y�Y�����
�
����1�� �J�J�O�O�-��r&r$r�)
r�r�r�r�r�r$r�r�r�r�r�r&r#r	r	�s���8�
/�9�.r&r	c��\rSrSrSrSSjrSrSrSrSr	S	r
S
rSrSr
S
rSrSrSrSrSrSrSrSrSrSrSrSrSrSrg)ri�zAn MH mailbox.Nc��[RXX#5 [RR	UR
5(d�U(a�[R"UR
S5 [R"[R"[RRUR
S5[R[R-[R-S55 O[UR
5eSUlg)zInitialize an MH instance.r��
.mh_sequencesi�FN)rr$rrr�rr�r�r!r�rw�O_EXCLrxrr�rs    r#r$�MH.__init__�s�������W�5��w�w�~�~�d�j�j�)�)��������U�+������������d�j�j�/�!J�!#���b�i�i�!7�"�+�+�!E�u�N�O�)����4�4���r&c��UR5n[U5S:XaSnO[U5S-n[RRUR[U55n[U5nSnUR(a[U5 URX5 [!U["5(aUR%X5 UR(a[U5 U(d[U5 U$![aA UR(a[U5 [U5 Sn[R"U5 ef=f!UR(a[U5 ff=f!U(d[U5 ff=f)r(rrdFT)rhrU�maxrrr�rr�r�r�r�r�r�r�r�r5r�r
�_dump_sequences)r r-rh�new_keyrr'�closeds       r#r.�MH.add�s���y�y�{���t�9��>��G��$�i�!�m�G��7�7�<�<��
�
�C��L�9���h�'����	��|�|��1�
�
$�	��&�&�w�2��g�y�1�1��(�(��:��<�<� ��O���A�����!%���|�|�$�Q����N�!�F��I�I�h�'�����<�<� ��O� ����A���s7�2E'�C7�!&E�E'�7AE�E�E$�$E'�'E<c�N�[RRUR[	U55n[US5nUR
5 [R"U5 g![a2nUR[R:Xa[SU-5eeSnAff=f)r2r�r�N)rrr�rr�r!r�r5rrr�r=)r r4rr'rs     r#r5�	MH.removes{���w�w�|�|�D�J�J��C��1��		��T�5�!�A�
�G�G�I��I�I�d�O���	��w�w�%�,�,�&��8�3�>�?�?���		�s�A(�(
B$�2-B�B$c���[RRUR[	U55n[US5nUR(a[U5 [R"[R
"U[R[R-55 URX$5 [!U["5(aUR%X!5 UR(a['U5 [)U5 g![a2nUR[R:Xa[SU-5eeSnAff=f!UR(a['U5 ff=f![)U5 f=f)rAr�r�N)rrr�rr�r!rrr�r=r�r�r�rx�O_TRUNCr�r�r
r7r�r�)r r4r-rr'rs      r#rC�MH.__setitem__s����w�w�|�|�D�J�J��C��1��	��T�5�!�A�	��|�|��1�
�
$��������r�{�{�R�Z�Z�'?�@�A��"�"�7�.��g�y�1�1��(�(��6��<�<� ��O���N��#�	��w�w�%�,�,�&��8�3�>�?�?���		���<�<� ��O� ��
��N�s<�D�E)�BE� E)�
E�-D?�?E�E&�&E)�)
E6c�"�UR(a>[[RR	UR
[
U55S5nO>[[RR	UR
[
U55S5nU UR(a[U5 [U5nUR(a[U5 SSS5 UR5R5HupVX;dMWR!U5 M W$![a2nUR[R:Xa[SU-5eeSnAff=f!UR(a[U5 ff=f!,(df   N�=f)rRr�r r�N)r�r!rrr�rr�rrr�r=r�r
r��
get_sequencesrz�add_sequence)r r4r'rr(r��key_lists       r#rK�MH.get_message7s��		��|�|�������d�j�j�#�c�(�;�U�C��������d�j�j�#�c�(�;�T�B����|�|��1�
�
$���l���<�<� ��O��#�0�0�2�8�8�:�N�D���� � ��&�;��
��!�	��w�w�%�,�,�&��8�3�>�?�?���		���<�<� ��O� ��
�Q�sB�AD�=D�F�/E�:F�
E�)-E�E�E=�=F�
Fc���UR(a>[[RR	UR
[
U55S5nO>[[RR	UR
[
U55S5nU UR(a[U5 UR5R[S5UR(a[U5 sSSS5 $![a2nUR[R:Xa[SU-5eeSnAff=f!UR(a[U5 ff=f!,(df   g=f)r+r�r r�Nr�)r�r!rrr�rr�rrr�r=r�r�r�r�r��r r4r'rs    r#rX�MH.get_bytesPs���		��|�|�������d�j�j�#�c�(�;�U�C��������d�j�j�#�c�(�;�T�B����|�|��1�
�
$��v�v�x�'�'���7��<�<� ��O��Q���	��w�w�%�,�,�&��8�3�>�?�?���		���<�<� ��O� ��
�Q�sB�AC8�=C8�E�/#D7�E�8
D4�-D/�/D4�7E�E�
E'c��[[RRUR[U55S5n[U5$![a2nUR[R:Xa[SU-5eeSnAff=f)r_r r�N)r!rrr�rr�rrr�r=r/rFs    r#rN�MH.get_fileesl��	��R�W�W�\�\�$�*�*�c�#�h�7��>�A��!�}����	��w�w�%�,�,�&��8�3�>�?�?���		�s�=A
�

B�-B�Bc�t�[[S[R"UR5555$)rbc3�f# �UH'nUR5(dM[U5v� M) g7fr8)�isdigitr�)�.0rjs  r#�	<genexpr>�MH.iterkeys.<locals>.<genexpr>rs(���:�3I�%�).����&�3�u�:�:�3I�s�1�1)�iterr?rrfrrcs r#rd�MH.iterkeysps/���F�:�2�:�:�d�j�j�3I�:�:�;�	;r&c��[RR[RRUR[U555$rQ)rrr�r�rr�r3s  r#r~�MH.__contains__us,���w�w�~�~�b�g�g�l�l�4�:�:�s�3�x�@�A�Ar&c�F�[[UR555$rT)rUrgrdrcs r#r��
MH.__len__ys���4��
�
��(�)�)r&c��U(aSOSnU(aSS0O0n[RRURS5n[	USU-40UD6$![
a Of=f[	USU-40UD6$![a Of=fMD)Nr��b�encoding�ASCIIr2zr+zx+)rrr�rr!rr�)r �text�mode�kwargsrs     r#�_open_mh_sequences_file�MH._open_mh_sequences_file}s����r�s��*.�*�g�&�B���w�w�|�|�D�J�J��8���
��D�$��+�8��8�8��$�
��
��
��D�$��+�8��8�8��"�
��
��s$�A�
A"�!A"�&A6�6
B�Bc��UR(d1URSS9Ul[UR5 SUlgg)r�F�rZTN)r�r]r�r�rcs r#r��MH.lock�s6���|�|��5�5�5�5�A�D�J��t�z�z�"��D�L�r&c��UR(a4[UR5 [UR5 U?SUlggr�)r�r�r�r�rcs r#r��	MH.unlock�s2���<�<�����$���
�
�#��
� �D�L�	r&c��g)r�Nr�rcs r#r��MH.flush�r\r&c�H�UR(aUR5 ggr`)r�r�rcs r#r��MH.close�s���<�<��K�K�M�r&c��/n[R"UR5Hbn[RR	[RRURU55(dMQUR
U5 Md U$)rc)rrfrrrgr�rhris   r#rk�MH.list_folders�sW�����Z�Z��
�
�+�E��w�w�}�}�R�W�W�\�\�$�*�*�e�<�=�=��
�
�e�$�,��
r&c�|�[[RRURU5UR
SS9$)z+Return an MH instance for the named folder.Frn�rrrr�rrros  r#rq�
MH.get_folder�s-���"�'�'�,�,�t�z�z�6�2��-�-��7�	7r&c�z�[[RRURU5UR
S9$)z:Create a folder and return an MH instance representing it.rtrkros  r#rz�
MH.add_folder�s+���"�'�'�,�,�t�z�z�6�2��-�-�)�	)r&c�f�[RRURU5n[R"U5nUS/:Xa5[R
"[RRUS55 OU/:XaO[
SUR-5e[R"U5 g)r}r2zFolder not empty: %sN)rrr�rrfr5rr�)r rpr�entriess    r#r��MH.remove_folder�sx���w�w�|�|�D�J�J��/���*�*�T�"����'�'��I�I�b�g�g�l�l�4��9�:�
��]��� 6���� C�D�D�
����r&c
� �0n[[RRURS5SSS9nU [
UR55nUH�nURS5upV[
5nUR5HknUR5(aUR[U55 M4SURS55up�UR[X�S-55 Mm [U5Vs/sHnX�;dM
UPM snX'[X5S	:XaX	M�M� SSS5 U$![
a Us$f=fs snf![ a [#S
UR%5-5ef=f!,(df   U$=f)z=Return a name-to-key-list dictionary to define each sequence.r2�rrY)rXr�c3�8# �UHn[U5v� M g7fr8)r�)rM�xs  r#rN�#MH.get_sequences.<locals>.<genexpr>�s���*K�?�a�3�q�6�6�?�s��-rdrz"Invalid sequence specification: %sN)r!rrr�rrr@rhr�rLr.r�r��ranger?rUr�r�rstrip)r �resultsr'�all_keysr�r��contentsrh�specr�r�r4s            r#rA�MH.get_sequences�sa����	��R�W�W�\�\�$�*�*�o�>��g�V�A���4�9�9�;�'�H���5�%)�Z�Z��_�N�D��5�D� (��� 0���<�<�>�>� �H�H�S��Y�/�*K�4�:�:�c�?�*K�K�E� �K�K��e�A�X�(>�?�!1�5;�4�L�%=�L�S�,/�O�&)�L�%=�G�M��7�=�)�Q�.�#�M�/���&���+!�	��N�	��%=��"�5�%�&J�&*�k�k�m�'4�5�5�5��!�Q�&��sM�3D=�E>�B)E�	E�E�E�-E>�=E�E�E�'E;�;E>�>
F
c���URSS9n[R"[R"UR[R
[R-55 UR5H�up4[U5S:XaMURUS-5 SnSn[[U55H_nUS-
U:XaU(dSnURS5 O6U(aSnURU<S	U<35 OURS
U-5 UnMa U(aUR[U5S-5 M�URS5 M� [U5 g![U5 f=f)z:Set sequences using the given name-to-key-list dictionary.Tr`rr�NFrdrw� z %s�
)r]rr�r!r�rxr>rzrUr�r?r@r�r�)r �	sequencesr'r�rh�prev�
completingr4s        r#�
set_sequences�MH.set_sequences�s���(�(�d�(�3��	��H�H�R�W�W�Q�V�V�R�[�[�2�:�:�%=�>�?�'�o�o�/�
���t�9��>������s�
�#���"�
�!�#�d�)�,�C��Q�w�$��)�)-�J��G�G�C�L��#�%*�
����4�� 5�6�������,��D�-���G�G�C��I��,�-��G�G�D�M�)0�,
��N��K��N�s�EE!�!
E.c� �UR5nSn/nUR5H�nUS-
U:wa�URXBS-45 [R"[R
R
UR[U55[R
R
UR[US-555 [R"[R
R
UR[U555 US-
nM� US-Ul
[U5S:XagUR5H*upVUHupxXv;dMX�UR!U5'M! M, UR#U5 g![[4a� [R"[R
R
UR[U55[R
R
UR[US-555 GNf=f)z?Re-name messages to eliminate numbering gaps. Invalidates keys.rrdN)rArdrhrrrr�rr��unlinkrrrr�rUrz�indexr�)	r r�r��changesr4r�rC�oldr�s	         r#�pack�MH.pack�s|���&�&�(�	������=�=�?�C��Q�w�$������A�X��/�B��G�G�B�G�G�L�L����S��X�>��G�G�L�L����S����]�C�E��I�I�b�g�g�l�l�4�:�:�s�3�x�@�A��A�I�D�#�������w�<�1���'�o�o�/�N�D�#����?�47�X�^�^�C�0�1�$�0�	
���9�%��'��8�G��I�I�b�g�g�l�l�4�:�:�s�3�x�@� �g�g�l�l�4�:�:�s�4�!�8�}�E�G�G�s�A<E=�=BH
�H
c�"�UR5nUR5nUR5H5upVXS;aURU5 MX&;dM$XfRU5	M7 UHnXt;dM
U/XG'M UR	U5 g)z;Inspect a new MHMessage and update sequences appropriately.N)rArzrhr�r�)r r-r4�pending_sequences�
all_sequencesr�rC�sequences        r#r7�MH._dump_sequencess���#�1�1�3���*�*�,�
�+�1�1�3�N�D��(�����$����^�^�C�0�1�	4�
*�H��,�+.�%�
�'�*�	
���=�)r&)r�r�r�r�)r�r�r�r�r�r$r.r5rCrKrXrNrdr~r�r]r�r�r�r�rkrqrzr�rAr�r�r7r�r�r&r#rr�sz���
� �D��0�2$�*	�;�
B�*�� �!���
�7�
)�

��8�:&�4*r&rc�~�\rSrSrSr\"1Sk5rSSjrSrSr	Sr
S	rS
rSr
SrS
rSrSrSrSrSrg)ri#zAn Rmail-style Babyl mailbox.>�filed�edited�resent�unseen�deleted�answered�	forwardedNc�>�[RXX#5 0Ulg)zInitialize a Babyl mailbox.N)r�r$�_labelsrs    r#r$�Babyl.__init__)s���#�#�D��@���r&c��[RX5n[U[5(aUR	5UR
U'U$)r()r�r.r�r�
get_labelsr�)r r-r4s   r#r.�	Babyl.add.s;�� �$�$�T�3���g�|�,�,� '� 2� 2� 4�D�L�L����
r&c�h�[RX5 XR;aURU	ggr)r�r5r�r3s  r#r5�Babyl.remove5s+���!�!�$�,��,�,�����S�!�r&c��[RXU5 [U[5(aUR	5UR
U'gg)rAN)r�rCr�rr�r�rBs   r#rC�Babyl.__setitem__;s;���&�&�t�'�:��g�|�,�,� '� 2� 2� 4�D�L�L���-r&c��URU5up#URRU5 URR5 [R
"5nURR5nUS[-:XdU(dO'URUR[S55 MV[R
"5nURR5nU[:XdU(dO'URUR[S55 MSX0RR5-
nURRU5nUR[S5n[UR5U-5n	U	RUR55 XR;aU	RURU5 U	$)rR�*** EOOH ***r�)rr�r�r�r�r�r�r�r�r�r�rr��set_visibler��
set_labels)
r r4r�r��original_headersr��visible_headers�n�bodyr(s
          r#rK�Babyl.get_messageAsX���l�l�3�'����
�
������
�
�����:�:�<����:�:�&�&�(�D����0�0����"�"�4�<�<���#?�@�	�
�*�*�,����:�:�&�&�(�D��w��d���!�!�$�,�,�w��">�?�	�
�:�:�?�?�$�$���z�z���q�!���|�|�G�U�+���+�4�4�6��=�>������0�0�2�3��,�,���N�N�4�<�<��,�-��
r&c��URU5up#URRU5 URR5 [R
"5nURR5nUS[-:XdU(dO'URUR[S55 MVURR5nU[:XdU(dOM.UR5nX0RR5-
nURRU5nUR[S5nXh-$)r�r�r�)rr�r�r�r�r�r�r�r�r�r�r�)	r r4r�r�r�r��headersr�r�s	         r#rX�Babyl.get_bytes]s����l�l�3�'����
�
������
�
�����:�:�<����:�:�&�&�(�D����0�0����"�"�4�<�<���#?�@�	�
��:�:�&�&�(�D��w��d���#�+�+�-���:�:�?�?�$�$���z�z���q�!���|�|�G�U�+���~�r&c�t�[R"URU5RS[55$)r_r�)r�r�rXr�r�r3s  r#rN�Babyl.get_filess'���z�z�$�.�.��-�5�5�e�W�E�F�Fr&c���UR5 [5nURR5HnUR	U5 M URUR5 [U5$)z4Return a list of user-defined labels in the mailbox.)rr@r�rtr��difference_update�_special_labelsrg)r �labels�
label_lists   r#r��Babyl.get_labelswsS����������,�,�-�-�/�J��M�M�*�%�0�� � ��!5�!5�6��F�|�r&c�f�//p!URRS5 Sn/nUnURR5nURR5nUS[-:Xa�[U5[U5:a!UR
U[[5-
5 UR
U5 URR5SSRS5Vs/sH*nUR5(dMUR5PM, nnUR
U5 OvUS:Xd
US[-:Xa:[U5[U5:a!UR
U[[5-
5 O)U(d"UR
U[[5-
5 OGMy[[[X555Ul[[U55Ul
[UR5UlURRSS5 URR5Ulgs snf)rrsrdN�,�r:)r�r�r�r�r�rUrhr��striprrrr�r�r�r�)	r rr r.�label_listsr"r��labelr�s	         r#r��Babyl._generate_toc�s����B���
�
�����������H��:�:�&�&�(�D��z�z���(�H��{�W�,�,��u�:��F��+��L�L��C��L�!8�9��
�
�h�'�+/�:�:�+>�+>�+@���+D�+J�+J�4�+P�:�+P�-2�+0�;�;�=�(�%�+�+�-�+P��:��"�"�6�*����D�G�g�,=�$=��u�:��F��+��L�L��C��L�!8�9������X��G��4�5��#�$��3�v�#5�6�7��	��I�k�2�3����T�Y�Y�����
�
����1�� �J�J�O�O�-����:s�H.�<H.c���S[-nUS[--
nUR5nSU5nUSSRU5-[--
nUS-
nURU5 g)r�sBABYL OPTIONS:s
Version: 5c3�@# �UHoR5v� M g7fr8)r�)rMr�s  r#rN�*Babyl._pre_mailbox_hook.<locals>.<genexpr>�s���5�f�U�,�,�.�.�f�s�sLabels:r�r�N)r�r�r�r�)r r'�babylr�s    r#r��Babyl._pre_mailbox_hook�sc��!�G�+��
���(�(�����"��5�f�5��
��d�i�i��/�/�'�9�9��
����	����r&c�4�URS[-5 g)r��Nrr�s  r#r��Babyl._pre_message_hook�s��	����'�!�"r&c�4�UR[S-5 g)r�r�Nrr�s  r#r��Babyl._post_message_hook�s��	����'�!�"r&c��URR5n[U[5(Ga/n/nUR	5H6nXPR
;aUR
U5 M%UR
U5 M8 URRS5 UH/nURRSUR5-5 M1 URRS5 UH2nURRSUR5-S-5 M4 URR[5 O"URRS[-5 [U[RR5(Ga1[R"5n[RR!USS5nUR#U5 UR%S5 UR'5nURRUR)S
[55 US
:XdU(dOMOURRS[-5 [U[5(a�[R"5n	[RR!U	SS5n
U
R#UR+55 U	R'5nURRUR)S
[55 US
:XdU(dOcMOUR%S5 UR'5nURRUR)S
[55 US
:XdU(dOMOUR-S5nU(dGO�URRUR)S
[55 MK[U[.[0[R245(Ga�[U[R25(a,[4R6"S
[8S5 UR;5n[U[05(aUR=U5nUR?S5S-nUS-
S:wa�URRUSUR)S
[55 URRS[-5 URRUSUR)S
[55 URRXSR)S
[55 GO6URRS[-[-5 URRUR)S
[55 GO�[AUS5(Ga�[AUS5(a([4R6"S[8S5 URBnUR5n
S	nUR'5nURES5(a	USSS
-nOURES5(aUSSS
-nURRUR)S
[55 US
:XdU(d>U(a6SnURRS[-5 UR%U
5 OOM�UR'5nU(dO�URES5(a
USS[-nOEURES5(a
USS[-nO"URES
5(aUSS[-nURRU5 M�[GS[IU5-5eURR5nX/4$)z0Write message contents and return (start, stop).�1s, s,,� r�s1,,FrTr�r�r�r�r�s

r:r�Nr�r�r�r�r�r�r�)%r�r�r�rr�r�rhr�r�r�rVr-r
r�r�r�r�r�r�r�r��get_visibler�r�r�r�r�r�r�r�r�r	r�r�r�r�r�)r r-r��special_labelsr�r��orig_buffer�orig_generatorr��
vis_buffer�
vis_generatorr��
body_start�original_pos�
first_passr�s                r#r��Babyl._install_message�s����
�
���!���g�|�,�,��N��F� �+�+�-���0�0�0�"�)�)�%�0��M�M�%�(�	.�

�J�J���T�"�'���
�
� � ������!7�8�(��J�J���U�#����
�
� � ������!6��!=�>� ��J�J���W�%��J�J���V�g�-�.��g�u�}�}�4�4�5�5��*�*�,�K�"�_�_�;�;�K��PQ�R�N��"�"�7�+����Q���"�+�+�-���
�
� � ����e�W�!=�>��5�=���	�

�J�J���_�w�6�7��'�<�0�0��Z�Z�\�
� %��� >� >�z�5�RS� T�
��%�%�g�&9�&9�&;�<��%�.�.�0�D��J�J�$�$�T�\�\�%��%A�B��u�}�D��	�� � ��#��&�/�/�1�D��J�J�$�$�T�\�\�%��%A�B��u�}�D��	�
�$�)�)�$�/�����
�
� � �����w�!?�@�	�
��%��b�k�k�!:�
;�
;��'�2�;�;�/�/��
�
�*�+=�q�B�!�*�*�,���'�3�'�'��/�/��8�� ���g�.��2�J��A�~��#��
�
� � ���*�!5�!=�!=�e�W�!M�N��
�
� � ��7�!:�;��
�
� � ���*�!5�!=�!=�e�W�!M�N��
�
� � ���!5�!=�!=�e�W�!M�N��
�
� � ��7�!:�W�!D�E��
�
� � ������!@�A�
�W�j�
)�
)��w��)�)��
�
�5�6H�!�M�!�.�.��"�<�<�>�L��J���'�'�)���=�=��)�)����9�u�,�D��]�]�5�)�)����9�u�,�D��
�
� � ����e�W�!=�>��5�=��!�%*�
��
�
�(�(��7�)B�C����\�2�����'�'�)�����=�=��)�)����9�w�.�D��]�]�5�)�)����9�w�.�D��]�]�5�)�)����9�w�.�D��
�
� � ��&���6��g��F�G�G��z�z��� ���}�r&)r�r�r�r�r�)r�r�r�r�r��	frozensetr�r$r.r5rCrKrXrNr�r�r�r�r�r�r�r�r&r#rr#sY��'��!B�C�O��
�"�5��8�,G��.�<�#�#�ir&rc�.�\rSrSrSrSSjrSrSrSrg)	r
iz0Message with mailbox-format-specific properties.Nc�Z�[U[RR5(aMUR	[
R"U55 [U[5(aURU5 gg[U[5(a&UR	[R"U55 g[U[5(a&UR	[R"U55 g[U[R5(a&UR	[R"U55 g[US5(a&UR	[R "U55 gUc*[RRR#U5 g[%S['U5-5e)zInitialize a Message instance.r�Nr�)r�rVr-r
�_become_message�copy�deepcopy�_explain_tor�rWr��message_from_stringr��
TextIOWrapper�message_from_filer��message_from_binary_filer$r�r�r,s  r#r$�Message.__init__s ���g�u�}�}�4�4�5�5�� � ����w�!7�8��'�7�+�+��#�#�D�)�,�
���
'�
'�� � ��!9�!9�'�!B�C�
���
%�
%�� � ��!:�!:�7�!C�D�
���!1�!1�
2�
2�� � ��!8�!8��!A�B�
�W�f�
%�
%�� � ��!?�!?��!H�I�
�_��M�M�!�!�*�*�4�0��6��g��F�G�Gr&c��[US/5nURH&nX2;dM
URUURU'M( g)z0Assume the non-format-specific state of message.�_type_specific_attributesN)�getattr�__dict__)r r-�
type_specificr�s    r#r��Message._become_message2s@����)D�b�I�
��$�$�D��(�&-�&6�&6�t�&<��
�
�d�#�%r&c�D�[U[5(ag[S5e)z:Copy format-specific state to message insofar as possible.Nz Cannot convert to specified type)r�r
r�r,s  r#r��Message._explain_to9s���g�w�'�'���>�?�?r&r�r8)	r�r�r�r�r�r$r�r�r�r�r&r#r
r
s��:�H�&=�@r&r
c�l�\rSrSrSr/SQrSSjrSrSrSr	S	r
S
rSrSr
S
rSrSrSrSrg)riAz)Message with Maildir-specific properties.)�_subdir�_info�_dateNc�~�SUlSUl[R"5Ul[RX5 g)z%Initialize a MaildirMessage instance.r�r�N)r�r�r�r�r
r$r,s  r#r$�MaildirMessage.__init__Fs+�������
��Y�Y�[��
�����'r&c��UR$)zReturn 'new' or 'cur'.)r�rcs r#r��MaildirMessage.get_subdirMs���|�|�r&c�D�US:XdUS:XaXlg[SU-5e)zSet subdir to 'new' or 'cur'.r�r�z!subdir must be 'new' or 'cur': %sN)r�r�)r r
s  r#r"�MaildirMessage.set_subdirQs%���U�?�f��o�!�L��@�6�I�J�Jr&c�b�URRS5(aURSS$g)�*Return as a string the flags that are set.r9r:Nr�)r�r�rcs r#r;�MaildirMessage.get_flagsXs*���:�:� � ��&�&��:�:�a�b�>�!�r&c�H�SSR[U55-Ulg)�)Set the given flags and unset all others.r9r�N)r�r?r�)r r=s  r#rA�MaildirMessage.set_flags_s���B�G�G�F�5�M�2�2��
r&c��URSR[UR55[U5-55 g�z.Set the given flag(s) without changing others.r�N�rAr�r@r;�r rCs  r#rG�MaildirMessage.add_flagc�,�����r�w�w�s�4�>�>�#3�4�s�4�y�@�A�Br&c��UR5(aDURSR[UR55[U5-
55 gg)�7Unset the given string flag(s) without changing others.r�N)r;rAr�r@r�s  r#rJ�MaildirMessage.remove_flaggs>���>�>����N�N�2�7�7�3�t�~�~�'7�#8�3�t�9�#D�E�F�r&c��UR$)z<Return delivery date of message, in seconds since the epoch.)r�rcs r#r�MaildirMessage.get_datel����z�z�r&c�`�[U5Ulg![a [SU-5Sef=f)z9Set delivery date of message, in seconds since the epoch.zcan't convert to float: %sN)�floatr�r�r�)r �dates  r#r$�MaildirMessage.set_dateps7��	K��t��D�J���	K��8�4�?�@�d�J�	K�s��-c��UR$)z%Get the message's "info" as a string.)r�rcs r#r��MaildirMessage.get_infowrr&c�h�[U[5(aXlg[S[	U5-5e)z Set the message's "info" string.zinfo must be a string: %sN)r�r�r�r�r�)r r3s  r#r#�MaildirMessage.set_info{s)���d�C� � ��J��7�$�t�*�D�E�Er&c��[U[5(a^URUR55 UR	UR55 UR
UR55 g[U[5(a�[UR55nSU;aURS5 UR5S:XaURS5 SU;aURS5 SU;aURS5 SU;aURS5 URS	[R"UR555 g[U[5(a`[UR55nSU;aURS
5 SU;aURS5 SU;aURS5 gg[U[ 5(aw[UR55nSU;aUR#S
5 SU;aUR#S
5 SU;aUR#S5 SU;aUR#S5 gg[U[$5(ag['S[)U5-5e)z;Copy Maildir-specific state to message insofar as possible.�S�Rr��O�T�D�F�A�
MAILER-DAEMONr��replied�flaggedr�r�r�r��$Cannot convert to specified type: %sN)r�rrAr;r"r�r$rr
r@rGr�r�rr
rBr�	add_labelr
r�r�)r r-r=s   r#r��MaildirMessage._explain_to�s���g�~�.�.����d�n�n�.�/����t���0�1����T�]�]�_�-�
��!1�
2�
2�����(�)�E��e�|�� � ��%���� �E�)�� � ��%��e�|�� � ��%��e�|�� � ��%��e�|�� � ��%����_�d�k�k�$�-�-�/�.J�K�
���
+�
+�����(�)�E��%���$�$�X�.��e�|��$�$�Y�/��e�|��$�$�Y�/��
���
.�
.�����(�)�E��%���!�!�(�+��e�|��!�!�)�,��e�|��!�!�*�-��e�|��!�!�+�.��
���
)�
)���B� ��M�*�+�
+r&)r�r�r�r8)r�r�r�r�r�r�r$r�r"r;rArGrJrr$r�r#r�r�r�r&r#rrAsL��3� =��(��K��3�C�G�
�K��F�)+r&rc�V�\rSrSrSrS/rSSjrSrSSjrSr	S	r
S
rSrSr
S
rg)r
i�z/Message with mbox- or MMDF-specific properties.�_fromNc��URSS5 [U[RR5(a=UR5nUb*UR
S5(aURUSS5 [RX5 g)z'Initialize an mboxMMDFMessage instance.rTNzFrom r�)r�r�rVr-r
rr�r$)r r-rs   r#r$�_mboxMMDFMessage.__init__�sk���
�
�o�t�,��g�u�}�}�4�4�5�5��+�+�-�H��#��(;�(;�G�(D�(D��
�
�h�q�r�l�+�����'r&c��UR$)z Return contents of "From " line.�rrcs r#r�_mboxMMDFMessage.get_from�rr&c��Ub6USLa[R"5nUS[R"U5--
nXlg)z>Set "From " line, formatting and appending time_ if specified.NTr�)r�rr
r)r r�time_s   r#r��_mboxMMDFMessage.set_from�s7������}����
���S�4�<�<��.�.�.�E��
r&c�L�URSS5URSS5-$)r��Statusr��X-Status)rHrcs r#r;�_mboxMMDFMessage.get_flags�s#���x�x��"�%�����R�(@�@�@r&c���[U5nSup#SHnXA;dM
X$-
nURU5 M! SHnXA;dM
X4-
nURU5 M! USR[U55-
nUR	SU5 UR	SU5 g![
a UR
SU5 N2f=f![
a UR
SU5 gf=f)r�)r�r�)rr)rrrr�r(r)N)r@r5r�r?�replace_headerr=�
add_header)r r=�status_flags�
xstatus_flagsrCs     r#rA�_mboxMMDFMessage.set_flags�s����E�
��&,�#���D��}��$�����T�"��$�D��}��%�
����T�"�$�	�������/�/�
�	4�����,�7�	7����
�M�:���	4��O�O�H�l�3�	4���	7��O�O�J�
�6�	7�s$�8B�C�B=�<B=�C�Cc��URSR[UR55[U5-55 gr�r�r�s  r#rG�_mboxMMDFMessage.add_flag�rr&c��SU;dSU;aDURSR[UR55[U5-
55 gg)rr(r)r�Nr�r�s  r#rJ�_mboxMMDFMessage.remove_flag�s@���t��z�T�1��N�N�2�7�7�3�t�~�~�'7�#8�3�t�9�#D�E�F� 2r&c�>�[U[5(a�[UR55nSU;aUR	S5 SU;aURS5 SU;aURS5 SU;aURS5 SU;aURS5 US		US
	SR
UR5R5SS
5nUR[R"[R"US555 g
[U[ 5(a?UR#UR55 UR%UR55 g
[U[&5(ae[UR55nSU;aUR)S5 SU;aUR)S5 SU;aUR)S5 US		US
	g
[U[*5(ae[UR55nSU;aUR-S5 SU;aUR-S5 SU;aUR-S5 US		US
	g
[U[.5(ag
[1S[3U5-5e![[4a g
f=f)zACopy mbox- or MMDF-specific state to message insofar as possible.rr�rrrrrr�statuszx-statusr����Nz%a %b %d %H:%M:%S %Yr�rrr�r�r)r�rr@r;r"rGr�rr�r$�calendar�timegmr��strptimer��
OverflowErrorr
rAr�r
rBrrr
r�r�)r r-r=�
maybe_dates    r#r��_mboxMMDFMessage._explain_to�sH���g�~�.�.�����(�)�E��e�|��"�"�5�)��e�|�� � ��%��e�|�� � ��%��e�|�� � ��%��e�|�� � ��%���!��
�#����$�-�-�/�"7�"7�"9�"�#�">�?�J�
�� � �������z�6L�2N�"O�P���!1�
2�
2����d�n�n�.�/����T�]�]�_�-�
���
+�
+�����(�)�E��%���$�$�X�.��e�|��$�$�Y�/��e�|��$�$�Y�/���!��
�#�
���
.�
.�����(�)�E��%���!�!�(�+��e�|��!�!�)�,��e�|��!�!�*�-���!��
�#�
���
)�
)���B� ��M�*�+�
+��9�
�.�
��
�s�:J	�	J�Jr"r8)r�r�r�r�r�r�r$rr�r;rArGrJr�r�r�r&r#r
r
�s8��9�!(�	��(���A�7�,C�G�
1+r&r
c��\rSrSrSrSrg)riz&Message with mbox-specific properties.r�N�r�r�r�r�r�r�r�r&r#rr���0r&rc�F�\rSrSrSrS/rSSjrSrSrSr	S	r
S
rSrg)
r
i#z$Message with MH-specific properties.�
_sequencesNc�<�/Ul[RX5 g)z!Initialize an MHMessage instance.N)rBr
r$r,s  r#r$�MHMessage.__init__(s���������'r&c� �URSS$)z4Return a list of sequences that include the message.N�rBrcs r#rA�MHMessage.get_sequences-s�����q�!�!r&c�$�[U5Ulg)z3Set the list of sequences that include the message.N)rgrB)r r�s  r#r��MHMessage.set_sequences1s
���y�/��r&c��[U[5(a,XR;aURRU5 gg[	S[U5-5e)z8Add sequence to list of sequences including the message.zsequence type must be str: %sN)r�r�rBrhr�r��r r�s  r#rB�MHMessage.add_sequence5sG���h��$�$����.����&�&�x�0�/��;�d�8�n�L�M�Mr&c�\�URRU5 g![a gf=f)zARemove sequence from the list of sequences including the message.N)rBr5r�rKs  r#�remove_sequence�MHMessage.remove_sequence=s+��	��O�O�"�"�8�,���	��	����
+�+c���[U[5(a�[UR55nSU;aUR	S5 O"UR	S5 URS5 SU;aURS5 SU;aURS5 g
g
[U[5(ar[UR55nSU;aURS5 OURS	5 SU;aURS5 SU;aURS
5 g
g
[U[5(a)UR5HnURU5 M g
[U[5(aI[UR55nSU;aURS5 SU;aURS5 g
g
[U[5(ag
[S[U5-5e)z6Copy MH-specific state to message insofar as possible.r�r�rrrrr�ROrrr�rN)r�rr@rAr"rGr
r
rBrrr
r�r�)r r-r�r�s    r#r��MHMessage._explain_toDs����g�~�.�.��D�.�.�0�1�I��9�$��"�"�5�)��"�"�5�)�� � ��%��I�%�� � ��%��I�%�� � ��%�&�
��!1�
2�
2��D�.�.�0�1�I��y�(�� � ��&�� � ��%��I�%�� � ��%��I�%�� � ��%�&�
���
+�
+� �.�.�0���$�$�X�.�1�
���
.�
.��D�.�.�0�1�I��9�$��!�!�(�+��I�%��!�!�*�-�&�
���
)�
)���B� ��M�*�+�
+r&rFr8)
r�r�r�r�r�r�r$rAr�rBrNr�r�r�r&r#r
r
#s,��.�!-���(�
"�*�N��$+r&r
c�Z�\rSrSrSrSS/rSSjrSrSrS	r	S
r
SrSrS
r
SrSrg)rikz'Message with Babyl-specific properties.r��_visibleNc�Z�/Ul[5Ul[RX5 g)z#Initialize a BabylMessage instance.N)r�r
rUr$r,s  r#r$�BabylMessage.__init__ps ������	��
�����'r&c� �URSS$)z'Return a list of labels on the message.N)r�rcs r#r��BabylMessage.get_labelsvs���|�|�A��r&c�$�[U5Ulg)z&Set the list of labels on the message.N)rgr�)r r�s  r#r��BabylMessage.set_labelszs
���F�|��r&c��[U[5(a,XR;aURRU5 gg[	S[U5-5e)z+Add label to list of labels on the message.zlabel must be a string: %sN)r�r�r�rhr�r��r r�s  r#r�BabylMessage.add_label~sG���e�S�!�!��L�L�(����#�#�E�*�)��8�4��;�F�G�Gr&c�\�URRU5 g![a gf=f)z4Remove label from the list of labels on the message.N)r�r5r�r]s  r#�remove_label�BabylMessage.remove_label�s+��	��L�L����&���	��	�rPc�,�[UR5$)z3Return a Message representation of visible headers.�r
rUrcs r#r��BabylMessage.get_visible�s���t�}�}�%�%r&c�$�[U5Ulg)z2Set the Message representation of visible headers.Nrc)r �visibles  r#r��BabylMessage.set_visible�s����(��
r&c��URR5H5nX;a URRXU5 M(URU	M7 SH,nX;dM
XR;dMXURU'M. g)z9Update and/or sensibly generate a set of visible headers.)�Date�FromzReply-To�To�CC�SubjectN)rUrhr,)r �headers  r#�update_visible�BabylMessage.update_visible�sl���m�m�(�(�*�F��~��
�
�,�,�V�&�\�B��M�M�&�)�	+�
J�F��~�&�
�
�"=�(,���
�
�f�%�Jr&c�J�[U[5(a�[UR55nSU;aUR	S5 O"UR	S5 URS5 SU;dSU;aURS5 SU;aURS5 S	U;aURS
5 gg[U[5(ar[UR55nSU;aURS5 OURS5 S	U;aURS
5 SU;aURS5 gg[U[5(aI[UR55nSU;aURS5 SU;aURS5 gg[U[5(aHURUR55 UR5HnURU5 M g[U[5(ag[S[U5-5e)z9Copy Babyl-specific state to message insofar as possible.r�r�rr�r�r�r�rr�rrRrrrrrN)r�rr@r�r"rGr
r
rBrr�r�rr
r�r�)r r-r�r�s    r#r��BabylMessage._explain_to�s����g�~�.�.�����*�+�F��6�!��"�"�5�)��"�"�5�)�� � ��%��f�$��F�(:�� � ��%��V�#�� � ��%��F�"�� � ��%�#�
��!1�
2�
2�����*�+�F��v�%�� � ��&�� � ��%��F�"�� � ��%��V�#�� � ��%�$�
���
+�
+�����*�+�F��6�!��$�$�X�.��V�#��$�$�Y�/�$�
���
.�
.����� 0� 0� 2�3����*���!�!�%�(�+�
���
)�
)���B� ��M�*�+�
+r&)r�rUr8)r�r�r�r�r�r�r$r�r�rr`r�r�ror�r�r�r&r#rrks>��1�!*�J� 7��(��$�H��&�)�	5�'+r&rc��\rSrSrSrSrg)ri�z&Message with MMDF-specific properties.r�Nr?r�r&r#rr�r@r&rc��\rSrSrSrSSjrSSjrSSjrSSjrSSjr	S	r
S
rSSjrSr
S
rSrSrSrSrSrSr\S5r\"\5rSrg)r/i�zA read-only wrapper of a file.Nc�N�XlUcUR5UlgX lg)zInitialize a _ProxyFile.N)r�r��_pos)r r'�poss   r#r$�_ProxyFile.__init__�s���
��;�����D�I��Ir&c�L�URXRR5$�zRead bytes.)�_readr�r��r �sizes  r#r��_ProxyFile.read�s���z�z�$�
�
���0�0r&c�L�URXRR5$rz)r{r��read1r|s  r#r��_ProxyFile.read1�s���z�z�$�
�
� 0� 0�1�1r&c�L�URXRR5$)zRead a line.)r{r�r�r|s  r#r��_ProxyFile.readline�s���z�z�$�
�
� 3� 3�4�4r&c�v�/nUH0nURU5 UcMU[U5-nUS::dM/ U$ U$)zRead multiple lines.r)rhrU)r �sizehintr�r�s    r#�	readlines�_ProxyFile.readlines�sG�����D��M�M�$���#��C��I�%���q�=���
�
��
r&c#�v# �UR5=n(aUv� UR5=n(aMgg7f)zIterate over lines.N)r�)r r�s  r#rq�_ProxyFile.__iter__�s1����m�m�o�%�d�%��J��m�m�o�%�d�%�%�s�39�9c��UR$)zReturn the position.)rvrcs r#r��_ProxyFile.tell�s���y�y�r&c���US:Xa%URRUR5 URRX5 URR5Ulg)zChange position.rdN�r�r�rvr��r �offset�whences   r#r��_ProxyFile.seek�s?���Q�;��J�J�O�O�D�I�I�&��
�
����'��J�J�O�O�%��	r&c��[US5(a9[URS5(aURR5 U?gg!U?f=f)zClose the file.r�r�N)r�r�r�rcs r#r��_ProxyFile.closesH���4��!�!�
��4�:�:�w�/�/��J�J�$�$�&��J�"��
�J�s�5A�Ac��UcSnURRUR5 U"U5nURR5UlU$)z"Read size bytes using read_method.r�r�)r r}�read_methodr�s    r#r{�_ProxyFile._read	sA���<��D��
�
����	�	�"��T�"���J�J�O�O�%��	��
r&c��U$)z$Context management protocol support.r�rcs r#�	__enter__�_ProxyFile.__enter__s���r&c�$�UR5 gr8)r�)r �excs  r#�__exit__�_ProxyFile.__exit__s���
�
�r&c�6�URR5$r8)r��readablercs r#r��_ProxyFile.readable����z�z�"�"�$�$r&c�6�URR5$r8)r��writablercs r#r��_ProxyFile.writabler�r&c�6�URR5$r8)r��seekablercs r#r��_ProxyFile.seekabler�r&c�6�URR5$r8)r�r�rcs r#r��_ProxyFile.flush"s���z�z���!�!r&c��[US5(dg[URS5(dgURR$)Nr�Tr9F)r�r�r9rcs r#r9�_ProxyFile.closed%s6���t�W�%�%���t�z�z�8�,�,���z�z� � � r&)r�rvr8�r)r�r�r�r�r�r$r�r�r�r�rqr�r�r�r{r�r�r�r�r�r��propertyr9r�rr�r�r�r&r#r/r/�sv��(��1�2�5�	��
�&�����%�%�%�"��!��!�$�L�1�r&r/c�>�\rSrSrSrS
SjrSrSSjrSrSr	S	r
g)ri0z&A read-only wrapper of part of a file.Nc�H�[RXU5 X lX0lg)zInitialize a _PartialFile.N)r/r$�_start�_stop)r r'r�r�s    r#r$�_PartialFile.__init__3s�����D�U�+����
r&c�F�[RU5UR-
$)z*Return the position with respect to start.)r/r�r�rcs r#r��_PartialFile.tell9s�����t�$�t�{�{�2�2r&c��US:XaURUlSnOUS:XaURUlSn[R	XU5 g)z8Change position, possibly with respect to start or stop.rrdr:N)r�rvr�r/r�r�s   r#r��_PartialFile.seek=s>���Q�;����D�I��F�
�q�[��
�
�D�I��F�����f�-r&c��URUR-
nUS::agUbUS:dX:�aUn[RXU5$)z;Read size bytes using read_method, honoring start and stop.rr&)r�rvr/r{)r r}r��	remainings    r#r{�_PartialFile._readGsF���J�J����*�	���>���<�4�!�8�t�'7��D�����K�8�8r&c�,�[US5(aU?gg)Nr�)r�r�rcs r#r��_PartialFile.closePs���4��!�!��
�"r&)rvr�r�)NNr�)r�r�r�r�r�r$r�r�r{r�r�r�r&r#rr0s��0��3�.�9�r&rc���Sn[(a7[R"U[R[R-5 U(a|[URS-5nUR5 [R"URURS-5 Sn[R"UR5 gg![a[nUR
[
R[
R[
R4;a[SUR-5eeSnAff=f![a9nUR
[
R[
R4;aSnAgeSnAff=f![ ["4a3 [R$"URURS-5 Sngf=f![&a9 [R("UR5 [SUR-5ef=f! [(a%[R"U[R*5 U(a#[R("URS-5 e=f)z(Lock file f using lockf and dot locking.Fzlockf: lock unavailable: %sN�.lockTzdot lock unavailable: %s)�fcntl�lockf�LOCK_EX�LOCK_NBrr�EAGAINr�r�rr�r�r�rrr�rrrr�r5�LOCK_UN)r'r��dotlock_doner�pre_locks     r#r�r�Ws����L�%��5�
����A�u�}�}�u�}�}�<�=��
�,�Q�V�V�g�-=�>����� �
1�-��G�G�H�M�M�1�6�6�G�+;�<�#'�L�
�I�I�h�m�m�,�#��
�
��7�7�u�|�|�U�\�\�5�;�;�G�G�,�-J�-.�V�V�.4�5�5���
���
��7�7�u�|�|�U�[�[�9�9����	
��'��8�(��I�I�h�m�m�Q�V�V�g�-=�>�#'�L�(��
#�
1��	�	�(�-�-�(�(�)C�)*���*0�1�1�
1����5��K�K��5�=�=�)���I�I�a�f�f�w�&�'�
�s��H�6C
�H�(D2�80E8�( F>�

D/�AD*�*D/�/H�2
E5�<.E0�*H�/E0�0E5�5H�8AF;�8F>�:F;�;F>�>AH�H�AI!c��[(a%[R"U[R5 [RRURS-5(a$[R"URS-5 gg)z*Unlock file f using lockf and dot locking.r�N)r�r�r�rrr�r�r5�r's r#r�r��sO���u�
���A�u�}�}�%�	�w�w�~�~�a�f�f�w�&�'�'�
�	�	�!�&�&�7�"�#�(r&c��[R"U[R[R-[R-S5n[US5[R
"U5 $![R
"U5 f=f)zCCreate a file if it doesn't exist and open for reading and writing.rvr�)rr!rwr3�O_RDWRr�)r�fds  r#r�r��sP��	����r�z�z�B�I�I�-��	�	�9�5�	A�B���D�%� �
�����������s�
A,�,Bc
��[U<S[[R"55<S[R"5<S[
R"5<35$)zBCreate a temp file based on path and open for reading and writing.re)r�r�r�r�r�rr�)rs r#r�r��s8���d�C��	�	��4D�.4�.@�.@�.B�.0�i�i�k�;�<�<r&c��UR5 [[S5(a%[R"UR	55 gg)z0Ensure changes to file f are physically on disk.�fsyncN)r�r�rr��filenor�s r#r�r��s/���G�G�I��r�7���
��������r&c�:�[U5 UR5 g)z:Close file f, ensuring all changes are physically on disk.N)r�r�r�s r#r�r��s����N��G�G�Ir&c��\rSrSrSrSrg)ri�z"Raised for module-specific errors.r�Nr?r�r&r#rr�s��,r&rc��\rSrSrSrSrg)ri�z:The specified mailbox does not exist and won't be created.r�Nr?r�r&r#rr�s��Dr&rc��\rSrSrSrSrg)ri�z>The specified mailbox is not empty and deletion was requested.r�Nr?r�r&r#rr�s��Hr&rc��\rSrSrSrSrg)ri�z)Another process caused an action to fail.r�Nr?r�r&r#rr����3r&rc��\rSrSrSrSrg)ri�z)A file appears to have an invalid format.r�Nr?r�r&r#rr�r�r&r)T)2r�rr�r8r�rr�r�rV�
email.message�email.generatorr�rL�typesrr��ImportError�__all__r�r�rrr�r�rr	rrr-r
rr
rr
rrr/rr�r�r�r�r�r��	Exceptionrrrrrr�r&r#�<module>r�s���J�
���
�������	�����A��

�*�*�
�
�G�
$��f2�f2�Rg�g�g�TC��C�N@�"�@�F1.�9�1.�h*.�9�*.�Z@*��@*�F
v��v�r"@�e�m�m�#�#�"@�Jj+�W�j+�Zn+�w�n+�b1�"�1�E+��E+�P\+�7�\+�~1�"�1�_2�_2�D$�:�$�N(�T$��<���-�I�-�E��E�I�E�I�4��4�4�%�4��mD���E��s�E6�6F�F

Youez - 2016 - github.com/yon3zu
LinuXploit