403Webshell
Server IP : 121.121.20.254  /  Your IP : 216.73.216.144
Web Server : Microsoft-IIS/10.0
System : Windows NT WEB-SERVER 10.0 build 20348 (Windows Server 2022) AMD64
User : IUSR ( 0)
PHP Version : 8.3.28
Disable Function : NONE
MySQL : ON  |  cURL : ON  |  WGET : OFF  |  Perl : OFF  |  Python : OFF  |  Sudo : OFF  |  Pkexec : OFF
Directory :  C:/Python315/Lib/email/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : C:/Python315/Lib/email/__pycache__/_header_value_parser.cpython-315.opt-2.pyc
R
>lqje�c	�n�]PHs]PHs]PHs]QHGs]QHGs]QHGs	]QHG
s
]QHGsQs\
\2s\\
Q2*s\
Q2s\\*s\\
Q	2*
s\\
Q
2*
s\\
Q2*\
Q	2*
s\\*s\\
Q2*s\\*s\\
Q
2*
sQQ.s\\*sQsQsQs\O<Q\O>\O@*2s!QQ\"2s#QQ\#2s$QQ\#2s%QQ\#2s&QQ\#2s'QQ\$2s(Q Q!\#2s)Q"Q#\#2s*Q$Q%\#2s+Q&Q'\#2s,Q(Q)\,2s-Q*Q+\$2s.Q,Q-\#2s/Q.Q/\#2s0Q0Q1\#2s1Q2Q3\#2s2Q4Q5\#2s3Q6Q7\#2s4Q8Q9\#2s5Q:Q;\#2s6Q<Q=\#2s7Q>Q?\#2s8Q@QA\#2s9QBQC\#2s:QDQE\#2s;QFQG\#2s<QHQI\#2s=QJQK\#2s>QLQM\&2s?QNQO\#2s@QPQQ\#2sAQRQS\#2sBQTQU\#2sCQVQW\C2sDQXQY\#2sEQZQ[\#2sFQ\Q]\#2sGQ^Q_\#2sHQ`Qa\#2sIQbQc\I2sJQdQe\I2sKQfQg\#2sLQhQi\#2sMQjQk\#2sNQlQm\N2sOQnQo\O2sPQpQq\#2sQQrQs\#2sRQtQu\S2sTQvQw\T2sUQxQy\T2sVQzQ{\U2sWQ|Q}\
O�2sY\VQ	Q~2sZ\VQQ�2s[P
\[m\P
\[m]\VQ�Q�2s^\O<Q�O�PO�\222O�sb\O<Q�O�\O�PO�\2222O�se\O<Q�2O�sg\O<Q�O�\O�PO�\2222O�sh\O<Q�O�\O�PO�\2222O�si\O<Q�O�\O�PO�\2222O�sjQ�skQ�slQ�smQ�Q�ksnQ�soQ�spQ�sqQ�srQ�ssQ�stQ�suQ�svQ�swQ�sxQ�syQ�szQ�s{Q�s|Q�s}Q�s~Q�sQ�s�Q�s�Q�s�Q�s�Q�s�Q�s�Q�s�Q�s�Q�s�Q�s�Q�s�Q�s�Q�s�Q�s�Q�s�Q�s�Q�s�Q�s�Q�s�Q�s�Q�s�Q�s�Q�s�Q�s�Q�s�Q�s�Q�s�Q�s�Q�s�Q�s�Q�s�Q�s�Q�s�Q�s�Q�s�Q�s�Q�s�Q�s�Q�s�Q�s�P!)��)�	hexdigits)�
itemgetter)�_encoded_words)�errors)�utilsz 	�(z
()<>@,:;.\"[]�.z."(z/?=z*'%�%�
�
c�Z�[U2OQQ2OQQ2!)�\�\\�"z\"��str�replace��values&�/C:\Python315\\Lib\email\_header_value_parser.py�make_quoted_pairsrds&���u�:���d�F�+�3�3�C��?�?�c�z�[U2OQQ2OQQ2OQQ2!)r
rr�\(�)�\)rrs&r�make_parenthesis_pairsris2���u�:���d�F�+�	���e�	�W�W�S�%�0�1rc�&�[U2oQUQ0!)r)r)r�escapeds& r�quote_stringros����&�G�
�w�i�q�>�rz�
   =\?            # literal =?
   [^?]*          # charset
   \?             # literal ?
   [qQbB]         # literal 'q' or 'b', case insensitive
   \?             # literal ?
  .*?             # encoded word
  \?=             # literal ?=
c�``�\sQs]�snPsP	sP	sU1QksQsU1Qks	\
Q2s\
Q2sQs
P	s\
Q2sQsQ
Q	ksQ
Q
ksQ
QksQsUsU9s!)�	TokenListc�::�[RU_U-U@,UmP!�N)�super�__init__�defects)�self�args�kw�	__class__s&*,�rr%�TokenList.__init__�s���
���$�%�"�%���rc�2�POQU22!)�c3�D�SF �Do[U2w�	J	P!3hr#�r��.0�xs& r�	<genexpr>�$TokenList.__str__.<locals>.<genexpr>����t���t�!�s�1�v�v�t��� ��join�r's&r�__str__�TokenList.__str__�s���w�w�,�t�,�,�,rc�j:�QOUOO[RU_22!�z{}({})��formatr*�__name__r$�__repr__�r'r*s&�rrA�TokenList.__repr__�s+������t�~�~�6�6�"�W�-�/�1�	1rc�2�POQU22!)r-c3�l�SF �D%pO%fJUOw�	J'	P!3hr#rr0s& rr3�"TokenList.value.<locals>.<genexpr>�s������1���w�q�w�w��s�4�4r7r9s&rr�TokenList.value�s���w�w�8��8�8�8rc�<�[QU2UO2!)c3�D�SF �DpOw�	J	P!3hr#)�all_defectsr0s& rr3�(TokenList.all_defects.<locals>.<genexpr>�s��4���4�a�M�M�4�r6)�sumr&r9s&rrJ�TokenList.all_defects�s���0�4�0�$�,�,�?�?rc�2�U]*O2!�r)�startswith_fwsr9s&rrP�TokenList.startswith_fws�s���A�w�%�%�'�'rc�V�,oSFDoUOUO2J 	U!r#)�extend�comments)r'rT�tokens&  rrT�TokenList.comments�s&�����E��O�O�E�N�N�+���rc��[VQ5!)��policy)�_refold_parse_tree�r'rYs&$r�fold�TokenList.fold�s
��!�$�6�6rc�>�[UOUQ52P!)��indent)�print�ppstr�r'r`s&&r�pprint�TokenList.pprint�s��
�d�j�j��j�'�(rc�F�QOUOUQ52!)r
r_)r8�_pprcs&&rrb�TokenList.ppstr�s���y�y������0�1�1rc#� �QOUUOOUO2w�	SFDTo[	UQ2%fUQOU2*w�	J2UOUQ*2FPiw�K
JV	UO%cQOUO2oLPoQOV2w�	P!KN3h)z{}{}/{}(rgz*    !! invalid element in token list: {!r}z    z Defects: {}z{}){})r?r*r@�
token_type�hasattrrgr&)r'r`rU�extras&&  rrg�
TokenList._pp�s���������N�N�#�#��O�O��	��E��5�%�(�(��!5�5;�V�E�]�C�D�!�9�9�V�F�]�3�3�3���<�<�<�"�)�)�$�,�,�7�E��E��n�n�V�+�+�4�s�A
C�9C�	C
�
C�%5C)r&�r-)r@�
__module__�__qualname__�__firstlineno__rj�syntactic_break�ew_combine_allowedr%r:rA�propertyrrJrP�
as_ew_allowedrTr\rdrbrg�__static_attributes__�__classdictcell__�
__classcell__�r*�
__classdict__s@@rr!r!�s������J��O����-�1��9��9��@��@�(��M�
����7�)�2�,�,rr!c�B`�\sQs]�sn\Q2s\Q2sQsUsP!)�WhiteSpaceTokenListc��Q!�� �r9s&rr�WhiteSpaceTokenList.value����rc�l�STt,tFD!pOQ6XfJUOMJ#	to!ttoh)�comment)rj�content�r'r2s& rrT�WhiteSpaceTokenList.comments�s)��#'�C�4�a�<�<��+B�	��	�	�4�C�C��C��1�1r�)	r@rorprqrtrrTrvrw�rzs@rr|r|�s-����
�����D��Drr|c��\sQs]�sQsQsP!)�UnstructuredTokenList�unstructuredr��r@rorprqrjrvr�rrr�r������Jrr�c��\sQs]�sQsQsP!)�Phrase�phraser�r�r�rrr�r������Jrr�c��\sQs]�sQsQsP!)�Word�wordr�r�r�rrr�r������Jrr�c��\sQs]�sQsQsP!)�CFWSList�cfwsr�r�r�rrr�r��r�rr�c��\sQs]�sQsQsP!)�Atom�atomr�r�r�rrr�r��r�rr�c� �\sQs]�sQsP
sQsP!)�TokenrUr�)r@rorprqrj�encode_as_ewrvr�rrr�r��s���J��Lrr�c�(�\sQs]�sQsPsPsPsQsP!)�EncodedWord�encoded-wordr�)	r@rorprqrj�cte�charset�langrvr�rrr�r��s���J�
�C��G��Drr�c�V`�\sQs]�snQs\Q2s\Q2s\Q2sQs	Us
P!)�QuotedString�
quoted-stringc�\�SFD#oUOQ6XfJUOt!	P!��bare-quoted-string�rjrr�s& rr��QuotedString.content�s"���A��|�|�3�3��w�w��rc���,oSFDKoUOQ6XcUO[U22J0UOUO2JM	PO	U2!r�)rj�appendrrr8)r'�resr2s&  r�quoted_value�QuotedString.quoted_value�sN�����A��|�|�3�3��
�
�3�q�6�"��
�
�1�7�7�#�	�
�w�w�s�|�rc�\�SFD#oUOQ6XfJUOt!	P!r�r��r'rUs& r�stripped_value�QuotedString.stripped_values%���E����#7�7��{�{�"�rr�)r@rorprqrjrtr�r�r�rvrwr�s@rr�r��sD���� �J�
����
�����#��#rr�c�<`�\sQsQsnQsQs\Q2sQsUs	P!)�BareQuotedString�	r�c�D�[POQU222!)r-c3�D�SF �Do[U2w�	J	P!3hr#r/r0s& rr3�+BareQuotedString.__str__.<locals>.<genexpr>s��D���D�q�C��F�F�D�r6)rr8r9s&rr:�BareQuotedString.__str__
s���B�G�G�#9�D�#9�9�:�:rc�2�POQU22!)r-c3�D�SF �Do[U2w�	J	P!3hr#r/r0s& rr3�)BareQuotedString.value.<locals>.<genexpr>r5r6r7r9s&rr�BareQuotedString.value����w�w�,�t�,�,�,rr�)
r@rorprqrjr:rtrrvrwr�s@rr�r�	s#����%�J�;��-��-rr�c�R`�\sQsQsnQsQsQs\Q2s\Q2s	Qs
UsP!)�Comment�r�c��PO[Q,STt,tFDpOU2MJ	toQ,,,22!ttoh)r-rr)r8rL�quoter�s& rr:�Comment.__str__sI���w�w�s� �E�48�9�D�q�Z�Z��]�D�9� �E�� "�	#�$�	$��9s�Ac��UOQ6Xc[U2![U2OQQ2OQQ2OQQ2!)r�r
rrrrr)rjrr)r'rs&&rr��
Comment.quote sR�����y�(��u�:���5�z�!�!�$��/�7�7�"%�u�.�.5�g�"%�u�/.�	.rc�2�POQU22!)r-c3�D�SF �Do[U2w�	J	P!3hr#r/r0s& rr3�"Comment.content.<locals>.<genexpr>)r5r6r7r9s&rr��Comment.content'r�rc��UO,!r#)r�r9s&rrT�Comment.comments+s�����~�rr�)r@rorprqrjr:r�rtr�rTrvrwr�s@rr�r�s<�����J�$�.��-��-����rr�c�V`�\sQsQsnQs\Q2s\Q2s\Q2sQs	Us
P!)�AddressList�/zaddress-listc�X�STt,tFDpOQ6XfJUMJ	to!ttoh��address�rjr�s& r�	addresses�AddressList.addresses3�%���;�4�a�<�<��#:���4�;�;��;��'�'c�(�[QU2,2!)c3�j�SF �D$pOQ6XfJUOw�	J&	P!3hr��rj�	mailboxesr0s& rr3�(AddressList.mailboxes.<locals>.<genexpr>9s%��!���!��\�\�9�%<� �A�K�K�!���3�3�rLr9s&rr��AddressList.mailboxes7�!���>�!�>�?A�C�	Crc�(�[QU2,2!)c3�j�SF �D$pOQ6XfJUOw�	J&	P!3hr��rj�
all_mailboxesr0s& rr3�,AddressList.all_mailboxes.<locals>.<genexpr>>s%��!���!��\�\�9�%<�$�A�O�O�!�r�r�r9s&rr��AddressList.all_mailboxes<r�rr�)r@rorprqrjrtr�r�r�rvrwr�s@rr�r�/sH�����J�
�<��<��C��C��C��Crr�c�V`�\sQsQsnQs\Q2s\Q2s\Q2sQs	Us
P!)�Address�Br�c�^�U]*OQ6XcU]*O!P!)r�group�rj�display_namer9s&rr��Address.display_nameFs)����7����(���7�'�'�'�)rc��U]*OQ6XcU]*,!U]*OQ6Xc,!U]*O!�r�mailbox�invalid-mailboxr�r9s&rr��Address.mailboxesKsH����7����*���G�9��
�!�W�
�
�#4�
4��I��A�w� � � rc��U]*OQ6XcU]*,!U]*OQ6XcU]*,!U]*O!r�r�r9s&rr��Address.all_mailboxesSsO����7����*���G�9��
�!�W�
�
�#4�
4���G�9���A�w�$�$�$rr�)r@rorprqrjrtr�r�r�rvrwr�s@rr�r�BsD�����J�
�(��(��!��!��%��%rr�c�F`�\sQsQsnQs\Q2s\Q2sQsUs	P!)�MailboxList�[�mailbox-listc�X�STt,tFDpOQ6XfJUMJ	to!ttoh)r�r�r�s& rr��MailboxList.mailboxes_r�r�c�Z�STt,tFDoUOQ7fJUMJ	to!ttoh)r�)r�r�r�r�s& rr��MailboxList.all_mailboxescs4���?�4�a��|�|�=�=���4�?�	?��?s�(�(r��
r@rorprqrjrtr�r�rvrwr�s@rr�r�[s0�����J�
�<��<��?��?rr�c�F`�\sQsQsnQs\Q2s\Q2sQsUs	P!)�	GroupList�i�
group-listc�n�U%cU]*OQ6wc,!U]*O!�rr�r�r9s&rr��GroupList.mailboxesms+���t�A�w�)�)�^�;��I��A�w� � � rc�n�U%cU]*OQ6wc,!U]*O!rr�r9s&rr��GroupList.all_mailboxesss+���t�A�w�)�)�^�;��I��A�w�$�$�$rr�rr�s@rrris0�����J�
�!��!�
�%��%rrc�V`�\sQsQsnQs\Q2s\Q2s\Q2sQs	Us
P!)�Group�zr�c�^�U]*OQ6wc,!U]*O!��rr�r9s&rr��Group.mailboxes~s)����7����-��I��A�w� � � rc�^�U]*OQ6wc,!U]*O!rr�r9s&rr��Group.all_mailboxes�s)����7����-��I��A�w�$�$�$rc�*�U]*O!rO)r�r9s&rr��Group.display_name�s���A�w�#�#�#rr�)r@rorprqrjrtr�r�r�rvrwr�s@rr
r
zsD�����J�
�!��!�
�%��%�
�$��$rr
c�v`�\sQsQsnQs\Q2s\Q2s\Q2s\Q2s	\Q2s
QsUsP!)	�NameAddr��	name-addrc�N�[U2]6XcP!U]*O!��)�lenr�r9s&rr��NameAddr.display_name�s ���t�9��>���A�w�#�#�#rc�*�UP*O!r��
local_partr9s&rr"�NameAddr.local_part�s���B�x�"�"�"rc�*�UP*O!r��domainr9s&rr&�NameAddr.domain�s���B�x���rc�*�UP*O!r)�router9s&rr)�NameAddr.route�s���B�x�~�~�rc�*�UP*O!r��	addr_specr9s&rr-�NameAddr.addr_spec�s���B�x�!�!�!rr��
r@rorprqrjrtr�r"r&r)r-rvrwr�s@rrr�sl�����J�
�$��$�
�#��#����������"��"rrc�j`�\sQsQsnQsP
s\Q2s\Q2s\Q2s	\Q2s
QsUsP!)�	AngleAddr�z
angle-addrc�\�SFD#oUOQ6XfJUOt!	P!��	addr-spec)rjr"r�s& rr"�AngleAddr.local_part�s"���A��|�|�{�*��|�|�#�rc�\�SFD#oUOQ6XfJUOt!	P!r4�rjr&r�s& rr&�AngleAddr.domain�s!���A��|�|�{�*��x�x��rc�\�SFD#oUOQ6XfJUOt!	P!)�	obs-route)rj�domainsr�s& rr)�AngleAddr.route�s"���A��|�|�{�*��y�y� �rc���SFD^oUOQ6XfJUO%cUOt![UO2UO*t!	Q!)r5z<>)rjr"r-rr�s& rr-�AngleAddr.addr_spec�sH���A��|�|�{�*��<�<�<��;�;�&�'����5����C�C��rr�)
r@rorprqrjrurtr"r&r)r-rvrwr�s@rr1r1�s]�����J��M�
�$��$�
� �� �
�!��!�
���rr1c�6`�\sQsQsnQs\Q2sQsUsP!)�ObsRoute��r;c�l�STt,tFD!pOQ6XfJUOMJ#	to!ttohr%r8r�s& rr<�ObsRoute.domains�s)��"&�C�$�Q�,�,�(�*B�����$�C�C��Cr�r�)	r@rorprqrjrtr<rvrwr�s@rrArA�s�����J�
�D��DrrAc�v`�\sQsQsnQs\Q2s\Q2s\Q2s\Q2s	\Q2s
QsUsP!)	�Mailbox��r�c�^�U]*OQ6XcU]*O!P!�rrr�r9s&rr��Mailbox.display_name�s)����7����,���7�'�'�'�-rc�*�U]*O!rOr!r9s&rr"�Mailbox.local_part�����A�w�!�!�!rc�*�U]*O!rOr%r9s&rr&�Mailbox.domain�s���A�w�~�~�rc�^�U]*OQ6XcU]*O!P!rI)rjr)r9s&rr)�
Mailbox.route�s'����7����,���7�=�=� �-rc�*�U]*O!rOr,r9s&rr-�Mailbox.addr_spec�s���A�w� � � rr�r/r�s@rrFrF�sl�����J�
�(��(��"��"������!��!��!��!rrFc�F`�\sQsQsnQs\Q2s\9s9s9s	s
QsUsP!)�InvalidMailbox��r�c��P!r#r�r9s&rr��InvalidMailbox.display_name����rr�r/r�s@rrUrU�s2����"�J�
����/;�:�J�:��:�%�)rrUc�F``�\sQsQsnQsP
s\U1Qk2sQsUs	U9s
!)�Domain�r&c�T:�PO[RU_O22!rn�r8r$r�splitrBs&�rr&�
Domain.domain�����w�w�u�w�}�*�*�,�-�-rr�)r@rorprqrjrurtr&rvrwrxrys@@rr[r[�s&�����J��M�
�.��.�.rr[c��\sQsQsQsQsP!)�DotAtom��dot-atomr�r�r�rrrcrcs���Jrrcc� �\sQsQsQsP	sQsP!)�DotAtomText�
z
dot-atom-textr��r@rorprqrjrurvr�rrrgrg
s�� �J��Mrrgc� �\sQsQsQsP
sQsP!)�
NoFoldLiteral�zno-fold-literalr�rir�rrrkrks��"�J��Mrrkc�j`�\sQsQsnQsP
s\Q2s\Q2s\Q2s	\Q2s
QsUsP!)�AddrSpec�r5c�*�U]*O!rOr!r9s&rr"�AddrSpec.local_partrMrc�N�[U2]6cP!UP*O!��)rr&r9s&rr&�AddrSpec.domains���t�9�q�=���B�x���rc��[U2]6cU]*O!U]*OO2U]*O*U]*OO2*!rs)rr�rstrip�lstripr9s&rr�AddrSpec.value#sU���t�9�q�=���7�=�=� ��A�w�}�}�#�#�%�d�1�g�m�m�3�D��G�M�M�4H�4H�4J�J�Jrc��[UO2o[U2[U[*
26�c[	UO2oLUOoUO
dUQ*UO
*!U!)N�@)�setr"r�
DOT_ATOM_ENDSrr&)r'�nameset�lps&  rr-�AddrSpec.addr_spec)s_���d�o�o�&���w�<�#�g�m�3�4�4��d�o�o�.�B����B��;�;�"���8�d�k�k�)�)��	rr�)
r@rorprqrjrurtr"r&rr-rvrwr�s@rrnrns_�����J��M�
�"��"�����
�K��K�
���rrnc� �\sQsQsQsP
sQsP!)�ObsLocalPart�5zobs-local-partr�rir�rrr�r�5s��!�J��Mrr�c�V``�\sQsQsnQsP
s\Q2s\U1Qk2sQs	Us
U9s!)�DisplayName�;zdisplay-namec�~�[U2o[U2]6Xc
UO!U]*OQ6XcUO	]2LX[U]*[2%c<U]*]*OQ6Xc[U]*Q*2U]$UP*OQ6XcUO	2UO![UP*[2%c8UP*P*OQ6Xc[UP*PP2UP$UO!)rr��rNN)r!rrrj�pop�
isinstance)r'r�s& rr��DisplayName.display_name@s�����o���s�8�q�=��9�9���q�6����&��G�G�A�J��3�q�6�9�-�-���F�1�I�(�(�F�2�"�3�q�6�"�:�.��A���r�7����'��G�G�I�
�y�y���3�r�7�I�.�.���G�B�K�*�*�f�4�#�C��G�C�R�L�1��B���y�y�rc�Z:�P
oUO%cP	oLSFDoUOQ6XfJP	oJ	[U2]6wc�U%c�P9q4U]*OQ6Xf=[U]*[2%c"U]*]*OQ6XcQoUP*OQ6Xf=[UP*[2%c"UP*P*OQ6XcQoU[UO2*U*![RU_ !)Fr�r�r)	r&rjrr�r!rr�r$r)r'r�r2�pre�postr*s&    �rr�DisplayName.valueSs�������<�<�<��E����<�<�?�2� �E���t�9��>�e��O�C��Q��"�"�f�,��4��7�I�.�.��Q���
�%�%��/����R��#�#�v�-��4��8�Y�/�/��R����'�'�6�1����|�D�$5�$5�6�6�t�;�;��7�=� rr�)r@rorprqrjrsrtr�rrvrwrxrys@@rr�r�;s;�����J���
����$�!��!�!rr�c�J`�\sQsQsnQsP
s\Q2s\Q2sQs	Us
P!)�	LocalPart�kz
local-partc��U]*OQ6XcU]*O!U]*O!)rr�)rjr�rr9s&rr�LocalPart.valueps2����7����0���7�'�'�'���7�=�=� rc�X�[,o[oP
oU]*[,*FD�oUOQ6XcJU%cCUOQ6Xc2U%c*UP*OQ6Xc[UPP2UP$[U[2oU%cTUOQ6XcCU%c;U]*OQ6Xc#UO	[UQ*22LUO	U2UP*oSoJ�	[U]P2oUO
!)Fr��dotr�)�DOTrjr!r�r�r)r'r��last�
last_is_tl�tok�is_tls&     rr"�LocalPart.local_partws����e�����
���7�c�U�?�?�C��~�~��'���s�~�~��6�4���H�'�'�6�1�#�D��"�I�.��B���s�I�.�E��$�/�/�U�2�s���F�%�%��/��
�
�9�S��W�-�.��
�
�3���r�7�D��J�#���A�b�	�"���y�y�rr�)r@rorprqrjrurtrr"rvrwr�s@rr�r�ks5�����J��M�
�!��!����rr�c�V``�\sQsQsnQsP
s\U1Qk2s\Q2sQs	Us
U9s!)�
DomainLiteral�zdomain-literalc�T:�PO[RU_O22!rnr^rBs&�rr&�DomainLiteral.domain�rarc�\�SFD#oUOQ6XfJUOt!	P!)�ptextr�r�s& r�ip�DomainLiteral.ip�s!���A��|�|�w�&��w�w��rr�)r@rorprqrjrurtr&r�rvrwrxrys@@rr�r��s:����!�J��M�
�.��.�����rr�c�$�\sQsQsQsPsPsQsP!)�MIMEVersion�zmime-versionr�)r@rorprqrj�major�minorrvr�rrr�r��s���J��E��Err�c�R`�\sQsQsnQsP
sP
sQs\Q2s	\Q2s
QsUsP!)�	Parameter��	parameter�us-asciic�R�UO%cU]*O!]!r)�	sectioned�numberr9s&r�section_number�Parameter.section_number�s��"&����t�A�w�~�~�6�Q�6rc��SFD�oUOQ6XcUOt!UOQ6XfJ6SFDFoUOQ6XfJSFD)oUOQ6XfJUOttt!	JH	J�	P!)rr�r�)rjr�r�s& r�param_value�Parameter.param_value�s{���E����7�*��+�+�+����?�2�"�E��'�'�+?�?�%*�E�$�/�/�7�:�',�';�';� ;� ;�&+�#�	�rr�)
r@rorprqrjr��extendedr�rtr�r�rvrwr�s@rr�r��s?�����J��I��H��G�
�7��7�
���rr�c��\sQsQsQsQsP!)�InvalidParameter���invalid-parameterr�r�r�rrr�r��s��$�Jrr�c�6`�\sQsQsnQs\Q2sQsUsP!)�	Attribute���	attributec�|�SFD3oUOOQ2%fJ&UOt!	P!)�attrtext)rj�endswithrr�s& rr��Attribute.stripped_value�s-���E����(�(��4�4��{�{�"�rr��	r@rorprqrjrtr�rvrwr�s@rr�r��s�����J�
�#��#rr�c� �\sQsQsQsPsQsP!)�Section���sectionr�)r@rorprqrjr�rvr�rrr�r��s���J�
�Frr�c�6`�\sQsQsnQs\Q2sQsUsP!)�Value��rc��U]*oUOQ6Xc
U]*oUOOQ2%c
UO!UO!)rr�)r�r�zextended-attribute)rjr�r�rr�s& rr��Value.stripped_value�sV���Q������v�%���G�E����$�$�D�F�F��'�'�'��z�z�rr�r�r�s@rr�r��s�����J�
���rr�c�@`�\sQsQsnQsP
s\Q2sQsQs	Us
P!)�MimeParameters���mime-parametersc
#�` �-oSFD�oUOOQ2%fJ&U]*OQ6wcJ@U]*OO2oV17c,V$V*O	UO
U12J�	UO
2FCD vq4[U[]2Q5oU]*]*oUOoUO%fl[U2]6�c\U]*]*]6XcGU]*]*OO	[OQ22UQ*o,o]oSFCDHvq�V�6wcsU
O%f2U
OO	[OQ22JOU
OO	[OQ22U]*
oU
OoU
O%c�[ O"O%U2o]PHNoUO)U2UO+UQ2o[0O2U2%c/U
OO	[O422UO	U2CJK	PO9U2oV;1w�	CJ#	P![,[.1cSO+QQ2oK�h9h[.c%[ O"O7SQ	Q
5oK�h9h3h)r�r�)�keyz.duplicate parameter name; duplicate(s) ignored:NrNz+duplicate parameter name; duplicate ignoredz(inconsistent RFC2231 parameter numbering�surrogateescaper�zlatin-1)�encoding)rjr�r�stripr�r��items�sortedrr�r�rr&r�InvalidHeaderDefectr��urllib�parse�unquote_to_bytes�codecs�lookup�decode�LookupError�UnicodeEncodeErrorr�_has_surrogates�UndecodableBytesDefect�unquoter8)
r'�paramsrU�name�parts�first_paramr��value_parts�ir��paramrr�s
&            rr��MimeParameters.params�s�������E��#�#�,�,�[�9�9���Q�x�"�"�k�1����8�>�>�'�'�)�D��!�!����L����!5�!5�u� =�>��"�<�<�>�>�K�D��5�j��m�4�E���(�1�+�K�!�)�)�G��'�'�'�C��J��N���8�A�;�!�#��!�H�Q�K�'�'�.�.�v�/I�/I�H�0J�K�!�"�I�E��K��A�).�%��!�&�!�>�>�>��
�
�,�,�V�-G�-G�I�.K�L� ��
�
�,�,�V�-G�-G�F�.H�I��Q����)�)���>�>�>�R� &��� =� =�e� D��P�*�"�M�M�'�2�$)�L�L��:K�$L�E�!�0�0��7�7�!�M�M�0�0��1N�1N�1P�Q��"�"�5�)�K*/�L�G�G�K�(�E��+��o*��Z!,�-?�@�P�
%*�L�L��=N�$O�E�P��.�P�!'��� 4� 4�U�Y� 4� O��	P�s��*L.�L.�(L.�0BL.�6L.�L.�AL.�4L.�BL.�K<�.'K�L.�1A"L.�K9�#K9�6L.�8K9�9L.�<	L+�"L+�(L.�*L+�+L.c
��,oUOFDJvq#U%c-UOQOU[U222J9UOU2JL	QO	U2oU%c
QU*!P!)�{}={}z; r)r�r�r?rr8)r'r�r�rs&   rr:�MimeParameters.__str__5sc�����;�;�K�D���
�
�g�n�n�T�<��3F�G�H��
�
�d�#�	'�
���6�"��%�s�V�|�-�2�-rr�)r@rorprqrjrrrtr�r:rvrwr�s@rr�r��s.����"�J��O�
�G��G�R.�.rr�c�6`�\sQsQsnP
s\Q2sQsUsP!)�ParameterizedHeaderValue�@c�n�[U2FD#oUOQ6XfJUOt!	-!)r�)�reversedrjr�r�s& rr��ParameterizedHeaderValue.paramsFs0���d�^�E����#4�4��|�|�#�$��	rr�)	r@rorprqrrrtr�rvrwr�s@rr�r�@s�����O�
���rr�c�$�\sQsQsQsQsQsQsP!)�ContentType�Nzcontent-type�text�plainr�)r@rorprqrj�maintype�subtypervr�rrr�r�Ns���J��H��Grr�c� �\sQsQsQsPsQsP!)�ContentDisposition�Tzcontent-dispositionr�)r@rorprqrj�content_dispositionrvr�rrr�r�Ts
��&�J��rr�c� �\sQsQsQsQsQsP!)�ContentTransferEncoding�Yzcontent-transfer-encoding�7bitr�)r@rorprqrjr�rvr�rrrrYs��,�J�
�Crrc��\sQsQsQsQsP!)�HeaderLabel�^zheader-labelr�r�r�rrrr^r�rrc�0`�\sQsQsnQsP
sQsQsUsP!)�MsgID�b�msg-idc�<�[U2UO*!r#)r�linesepr[s&&rr\�
MsgID.foldfs���4�y�6�>�>�)�)rr�)	r@rorprqrjrur\rvrwr�s@rr
r
bs�����J��M�*�*rr
c��\sQsQsQsQsP!)�	MessageID�kz
message-idr�r�r�rrrrks���Jrrc��\sQsQsQsQsP!)�InvalidMessageID�ozinvalid-message-idr�r�r�rrrros��%�Jrrc�6`�\sQsQsnQs\Q2sQsUsP!)�
MessageIDList�rzmessage-id-listc�X�STt,tFDpOQ6XfJUMJ	to!ttoh)rr�r�s& r�message_ids�MessageIDList.message_idsus%���:�4�a�<�<��#9���4�:�:��:r�r�)	r@rorprqrjrtrrvrwr�s@rrrrs����"�J�
�;��;rrc��\sQsQsQsQsP!)�Header�y�headerr�r�r�rrrryr�rrc�``�\sQsQsnP	sP	sP	sU1QksU1QksQs	\
Q2sQU1QkksQs
\
Q2sQ	sQ
sUsU9s!)�Terminal�c�B:�[RU_V2oV#m,UmU!r#)r$�__new__rjr&)�clsrrjr'r*s&&& �rr$�Terminal.__new__�s"����w��s�*��$������rc�j:�QOUOO[RU_22!r=r>rBs&�rrA�Terminal.__repr__�s&������t�~�~�6�6���8H�8J�K�Krc�v�[UOOQ*UO*2P!)�/)rar*r@rjr9s&rrd�Terminal.pprint�s"��
�d�n�n�%�%��+�d�o�o�=�>rc�.�[UO2!r#)�listr&r9s&rrJ�Terminal.all_defects�s���D�L�L�!�!rc	��:�QOSUOOUO[RU_2UO%fP2,!QOUO22,!)z
{}{}/{}({}){}z {})r?r*r@rjr$rAr&)r'r`r*s&&�rrg�Terminal._pp�si����&�&���N�N�#�#��O�O��G����l�l�l�B���	�
).���T�\�\�(B���	rc��P!r#r�r9s&r�pop_trailing_ws�Terminal.pop_trailing_ws�rYrc��,!r#r�r9s&rrT�Terminal.comments�s���	rc�2�[U2UO1!r#)rrjr9s&r�__getnewargs__�Terminal.__getnewargs__�s���4�y�$�/�/�*�*r)r&rjrn)r@rorprqrursrrr$rArdrtrJrgr2rTr7rvrwrxrys@@rr!r!�sa�����M����O��L�?��"��"�������+�+rr!c�8`�\sQsQsn\Q2sQsQsUsP!)�WhiteSpaceTerminal�c��Q!r~r�r9s&rr�WhiteSpaceTerminal.value�r�rc�8�S9%cU]*[7!rO)�WSPr9s&rrP�!WhiteSpaceTerminal.startswith_fws�s���&�&��Q��3��&rr��	r@rorprqrtrrPrvrwr�s@rr:r:�s!����
����'�'rr:c�8`�\sQsQsn\Q2sQsQsUsP!)�
ValueTerminal�c��U!r#r�r9s&rr�ValueTerminal.value�s���rc��P
!)Fr�r9s&rrP�ValueTerminal.startswith_fws�s��rr�rAr�s@rrCrC�s!����
�����rrCc�8`�\sQsQsn\Q2sQsQsUsP!)�EWWhiteSpaceTerminal�c��P!rnr�r9s&rr�EWWhiteSpaceTerminal.value�s��rc��P!rnr�r9s&rr:�EWWhiteSpaceTerminal.__str__�s��rr�)	r@rorprqrtrr:rvrwr�s@rrJrJ�s!����
�����rrJc��\sQsQsQsP!)�_InvalidEwError��r�)r@rorprqrvr�rrrQrQ�s��rrQr��,zlist-separatorr{zroute-component-markerz([{}]+)z[^{}]+z[\x00-\x20\x7F]c�&�[U2oU%c0UOO[OU22[
OU2%c2UOO[OQ22P!P!)z*Non-ASCII characters found in header token)�_non_printable_finderr&r�r�NonPrintableDefectrr�r�)�xtext�non_printabless& r�_validate_xtextrY�sf��+�5�1�N��
�
�
���V�6�6�~�F�G����U�#�#�
�
�
���V�:�:�8�:�	;�$rc��U%fQ![U]2uq#,oP
oP
o[[U22FDSoV'*Q6XcU%cP
oP	oLP	oJ!U%cP
oLV'*U7cL$UOV'*2JU	W]*oPO	U2PO	V'P,U*2U1!)r-r
)r-r-F)�
_wsp_splitter�rangerr�r8)r�endchars�fragment�	remainder�vchars�escape�had_qp�poss&&      r�_get_ptext_to_endcharsrds������(���2��H�
�F�
�F�
�F��S��]�#���=�D� �����������F�
�]�h�
&���
�
�h�m�$�$��A�g��
�7�7�6�?�B�G�G�X�d�^�$4�y�$@�A�6�I�Irc�z�UO2o[UP[U2[U2*
Q2oV!1!)N�fws)rxr:r)r�newvaluerfs&  r�get_fwsrh!s8���|�|�~�H�
�U�#<�C��J�s�8�}�$<�=�u�
E�C��=�rc��[2oUOQ2%f&[OQO	U22gUQ*OQ]2uq4V0Q*6Xc&[OQO	U22gPO
U2o[U2]6�c^U]*[7cLU]*[7c:UOQ2]6c$UOQ]2uqdUQ*U*o[UO22]6�c0UOO[OQ22Vm
PO
U2o[OQU*Q*2vqxq�V�mV�mUOO+U
2U%czU]*[,7c![/U2vq�UOU2J:[1U]2uq�[3V�2o
[5U
2UOU
2PO
U2oJ�U%cBU]*[,7c0UOO[OQ22V 1![ ["1c&[%QO	SO22gh9h)�=?z"expected encoded word but found {}:rNNz?=�?zwhitespace inside encoded wordz!encoded word format invalid: '{}'z.missing trailing whitespace after encoded-word)r��
startswithr�HeaderParseErrorr?r_r8rr�countr&r�r�r��_ewr��
ValueError�KeyErrorrQr�r�rSr?rhr[rCrY)r�
terminal_type�ewr�r_�remstr�restr�r�r�r&rU�chars�vtexts&&            r�get_encoded_wordrx-s@��
��B����D�!�!��%�%�0�7�7��>�@�	@��B�i�o�o�d�A�.�O�C�
�B�i���%�%�0�7�7��>�@�	@�
�W�W�Y�
�F��F��a���q�	�Y���q�	�Y���	�	�#����!�<�<��a�0����D�j�4���
�3�9�9�;��!��
�
�
���&�4�4�,�.�	/�
�F��G�G�I��E�@�'*�z�z�$��*�t�2C�'D�$��t��J��G��J�J���g��
���7�c�>�!�$�-�K�E��I�I�e���)�$��2����e�3�����
�	�	�%���w�w�y�!����q���$�
�
�
���&�4�4�<�>�	?�
�9���)
��!�@��/�6�6�r�v�v�>�@�	@�@�s�7'J�K�"&Kc��[2oU%Cc�U]*[7c![U2vq UOU2J;P	oUO	Q2%c�[UQ2vq P	o[
U2]6�cJUP*OQ6wc2UOO[OQ22P
oU%c?[
U2]6�c/UQ*OQ6Xc[UP*Q2UP$UOU2CJ[U]2uqVU%c.[O!U2%cUO#Q2uqV[%UQ2o['U2UOU2PO)U2oCJ�U![cP
oK�[OcK�h9h)rrj�utextrfz&missing whitespace before encoded wordr����)r�r?rhr�rlrxrrjr&rr�rJrQrmr[�rfc2047_matcher�search�	partitionrCrYr8)rr�rU�valid_ew�have_wsr�r_rws&       r�get_unstructuredr�^s���.)�*�L�
�%���8�s�?�"�5�>�L�E�����&�������D�!�!�
�/��w�?������|�$�q�(�#�B�'�2�2�e�;�$�,�,�3�3�F�4N�4N�D�5F�G�"'���s�<�0�1�4�#�B�'�2�2�n�D�+?�(��,�e�,5��R�(��#�#�E�*��'��q�1�����.�.�s�3�3�#�o�o�d�3�O�C��c�7�+��������E�"����	�"�����A#�
!� ���*�*�
��
�s$�!F$�$	G
�.G
�3G
�G
�	G
c�V�[UQ2vqo[UQ2o[U2V1!)z()r�)rdr:rY�rr��_s&  r�get_qp_ctextr��s0��-�U�D�9�O�E�!��u�g�.�E��E���<�rc�V�[UQ2vqo[UQ2o[U2V1!)rr�)rdrCrYr�s&  r�get_qcontentr��s0��-�U�C�8�O�E�!��%��)�E��E���<�rc���[U2oU%f&[OQOU22gUO	2oU[U2Po[
UQ2o[U2V 1!)zexpected atext but found '{}'�atext)�_non_atom_end_matcherrrmr?r�rrCrY)r�mr�s&  r�	get_atextr��si��	�e�$�A���%�%�+�2�2�5�9�;�	;�
�G�G�I�E��#�e�*�+��E��%��)�E��E���<�rc���U%cU]*Q6wc&[OQOU22g[2oUQ*oU%cU]*Q6XcVQ*1!U%c�U]*Q6wc�U]*[7c[U2vq L�UQ*Q6Xc�P
o[
U2vq UOO[OQ22P	oU%cW[U2]6�cGUP*OQ6Xc/UQ
*OQ6Xc[UP*Q2UP$L
[U2vq UOU2CJU%f3UOO[OQ	22V1!VQ*1![Oc[S2vq K�h9h)rrzexpected '"' but found '{}'r�:NrNrjz!encoded word inside quoted stringrfr�z"end of header inside quoted stringr{)rrmr?r�r?rhrxr&r�r�r�rrjrJ)r�bare_quoted_stringrUrs&   r�get_bare_quoted_stringr��s����E�!�H��O��%�%�*�1�1�%�8�:�	:�)�+���"�I�E���q��S��!��9�,�,�
�E�!�H��O���8�s�?�"�5�>�L�E�5�
�2�Y�$�
��H�
3�/��6���"�*�*�1�1�&�2L�2L�7�39�:���
�C� 2�3�a�7�&�r�*�5�5��>�*�2�.�9�9�^�K�-A�*�2�.��.7�&�r�*��(��.�L�E��!�!�%�(���"�"�)�)�&�*D�*D�0�+2�	3�!�(�(��R�y�(�(��!�*�*�
3�+�E�2���u�
3�s�7>F9�9G�
G�Gc��U%c4U]*Q6wc&[OQOU22g[2oUQ*oU%ckU]*Q6wc]U]*[7c[U2vq L)U]*Q6Xc[
U2vq L
[U2vq UOU2JrU%f3UOO[OQ22V1!VQ*1!)rrzexpected '(' but found '{}'r�rzend of header inside comment)rrmr?r�r?rh�get_commentr�r�r&r�)rr�rUs&  rr�r��s���
��q��S���%�%�)�0�0��7�9�	9��i�G��"�I�E�
�E�!�H��O���8�s�?�"�5�>�L�E�5�
�1�X��_�&�u�-�L�E�5�'��.�L�E����u��������v�9�9�*� ,�	-��~���"�I��rc���[2oU%cSU]*[7cAU]*[7c[U2vq L
[	U2vq UOU2JZV1!rO)r��CFWS_LEADERr?rhr�r�)rr�rUs&  r�get_cfwsr�sQ���:�D�
�E�!�H��+���8�s�?�"�5�>�L�E�5�&�u�-�L�E����E���;�rc�:�[2oU%c1U]*[7c[U2vq UOU2[	U2vq UOU2U%c1U]*[7c[U2vq UOU2V1!rO)r�r�r�r�r�)r�
quoted_stringrUs&  r�get_quoted_stringr�!s|��!�N�M���q��[�(���������U�#�)�%�0�L�E��������q��[�(���������U�#���rc�T�[2oU%c1U]*[7c[U2vq UOU2U%c8U]*[7c&[
OQOU22gUOQ2%c[U2vq L
[U2vq UOU2U%c1U]*[7c[U2vq UOU2V1![
Oc[S2vq Kph9h)rzexpected atom but found '{}'rj)r�r�r�r��	ATOM_ENDSrrmr?rlrxr�)rr�rUs&  r�get_atomr�3s���
�6�D���q��[�(���������E����q��Y�&��%�%�*�1�1�%�8�:�	:�������	,�+�E�2�L�E�5�!��'����K�K�����q��[�(���������E���;����&�&�	,�%�U�+�L�E�5�	,�s�
D�D'�D'�&D'c��[2oU%cU]*[7c&[OQO	U22gU%ckU]*[7cY[U2vq UO
U2U%fJBU]*Q6XfJRUO
[2UQ*oJrUP*[Ic-[OQO	QU*22gV1!)rz8expected atom at a start of dot-atom-text but found '{}'rr�z4expected atom at end of dot-atom-text but found '{}')rgr�rrmr?r�r�r�)r�
dot_atom_textrUs&  r�get_dot_atom_textr�Ns��� �M�M��E�!�H�	�)��%�%�'+�+1�6�%�=�:�	:�
�E�!�H�I�-� ��'������U�#��5�U�1�X��_�� � ��%��"�I�E��R��C���%�%�'�#�V�C��I�.�0�	0���rc���[2oU]*[7c[U2vq UOU2UO	Q2%c[U2vq L
[U2vq UOU2U%c1U]*[7c[U2vq UOU2V1![Oc[S2vq Kph9h)rrj)	rcr�r�r�rlrxrrmr�)r�dot_atomrUs&  r�get_dot_atomr�as����y�H��Q�x�;������������������	4�+�E�2�L�E�5�)��/����O�O�E����q��[�(������������?����&�&�	4�-�U�3�L�E�5�	4�s�
B;�;C �C �C c�^�U]*[7c[U2vqLPoU%f[OQ2gU]*Q6Xc[	U2vq LDU]*[
7c&[OQO
U22g[U2vq UdU,UQ$V 1!)rz5Expected 'atom' or 'quoted-string' but found nothing.rz1Expected 'atom' or 'quoted-string' but found '{}'�NrN)r�r�rrmr��SPECIALSr?r�)r�leaderrUs&  r�get_wordr�zs��� 
�Q�x�;�� ���
�������%�%�C�E�	E��Q�x��}�(��/���u�	�q��X�	��%�%�'7�7=�v�e�}�F�	F� �����
���H��b�	��<�rc��[2o[U2vq UOU2U%Cc]U]*[7CcJU]*Q6XcPUO[2UO
O[OQ22UQ*oJy[U2vq U]*OQ6Xc�U%c�UP*OQ6Xc�[UP*2]6�c|UP*Q	*OQ6Xc]UP*P*OQ6Xc>UP*P*O%f[UP*Q2UP*P$UOU2CJeV1![Oc4SO
O[OQ22CK�h9h[OcSS]*[7c?[S2vq SO
O[OQ22K�gh9h)
zphrase does not start with wordrzperiod in 'phrase'r�r�r�r�rfzcomment found without atomr{)r�r�r�rrmr&r��PHRASE_ENDSr��ObsoleteHeaderDefectrjrrTrJr�r�)rr�rUs&  r�
get_phraser��s����X�F�0�������
�
�e���%�E�!�H�K�/���8�S�=��M�M�#���N�N�!�!�&�"=�"=�$�#&�
'��"�I�E�
�'������!�H�'�'�>�9���r�
�-�-��7��F�2�J��!�+��r�
�2��1�1�^�C��r�
�2��1�1�V�;�"�2�J�r�N�3�3�3�&:�&��*�e�%L�F�2�J�r�N�
�M�M�%� ��=���=�"�"�0������f�8�8�-�/�	0�0��,�*�*�
���8�{�*�#+�E�?�L�E��N�N�)�)�&�*E�*E�4�+6�7��

�s_�F�%$G�
G�G�*G�G� G�?G�G�G�'0G�G�I�2I�<I�Ic�p�[2oPoU%c U]*[7c[U2vq U%f&[OQOU22g[
U2vq0UdU,UQ$UOU2U%c�U]*Q6XfU]*[7c�[[U2U*2vq@UOQ6Xc1UOO[OQ22L/UOO[O Q22VA]$V1![OcZ[S2vq0K�[Oc1S]*Q6wcS]*[7cg[2oCK@h9hh9h)Nz"expected local-part but found '{}'r
r��invalid-obs-local-partz<local-part is not dot-atom, quoted-string, or obs-local-partz,local-part is not a dot-atom (contains CFWS))r�r�r�rrmr?r�r�r�r!r��get_obs_local_partrrjr&r�r�)rr"r�rU�obs_local_parts&    r�get_local_partr��s{����J�
�F���q��[�(� ���
����%�%�0�7�7��>�@�	@� �#�E�*������H��b�	����e���%��(�D�.�E�!�H�K�$?� 2�3�z�?�U�3J� K����$�$�(@�@����%�%�f�&@�&@�N�'P�
Q�
���%�%�f�&A�&A�>�'@�
A�&�1�
�����'�"�"� �	 �#�E�?�L�E�5���&�&�	 ��Q�x�4��E�!�H��$;���K�E�	 �� �sB�#
E�F5�F5�
E,�,F1�F1�F1�!F1�,F5�0F1�1F5c�"�[2oP
oU%CchU]*Q6XfU]*[7CcGU]*Q6XcZU%c0UOO[O
Q22UO[2P	oUQ*oJ�U]*Q6Xc_UO[U]*Q22UQ*oUOO[O
Q22P
oJ�U%cHUP*OQ6wc0UOO[O
Q22[U2vq0P
oUOU2CJpU%f&[OQ	OU22gU]*OQ6XfAU]*OQ
6XcX[U2]6�cHU]*OQ6Xc0UOO[O
Q22UP*OQ6XfAUP*OQ
6XcX[U2]6�cHUQ*OQ6Xc0UOO[O
Q22UO%cQ
UmV1![Oc%S]*[7cg[S2vq0CK�h9h)Fr
rzinvalid repeated '.'r��misplaced-specialz/'\' character outside of quoted-string/ccontentr�zmissing '.' between wordsz&expected obs-local-part but found '{}'r�z!Invalid leading '.' in local partz"Invalid trailing '.' in local partr�r{)r�r�r&r�rr�r�rCrjr�rmr�r�r?r)rr��last_non_ws_was_dotrUs&   rr�r��s���"�^�N���
�%�U�1�X�t�^�u�Q�x�{�'B���8�s�?�"��&�&�-�-�f�.H�.H�*�/,�-��!�!�#�&�"&���"�I�E��
�1�X�t�^��!�!�-��a��0C�#E�
F��"�I�E��"�"�)�)�&�*D�*D�B�+D�
E�"'����n�R�0�;�;�u�D��"�"�)�)�&�*D�*D�+�+-�
.�	+�#�E�?�L�E�"'��
	���e�$���%�%�4�;�;�E�B�D�	D��q��$�$��-��1��(�(�&�0����!�#��1��(�(�%�/����%�%�f�&@�&@�/�'1�	2��r��%�%��.��2��)�)�6�1����!�#��2��)�)�5�0����%�%�f�&@�&@�0�'2�	3�����$<��!�� � ��-�&�&�	+��Q�x�{�*��#�E�?�L�E�5�	+�s�K�L�)L�<L�
Lc���[UQ2vqo[UQ2oU%c0UOO[O
Q22[
U2V1!)z[]r�z(quoted printable found in domain-literal)rdrCr&r�rr�rY)rr�rbs&  r�	get_dtextr�"sV��2�%��>��E�&��%��)�E�
�
�
�
���V�8�8�6�8�	9��E���<�rc��U%cP
!UOO[OQ22UO[	QQ22P	!)Fz"end of input inside domain-literal�]�domain-literal-end)r&r�rr�rC)r�domain_literals&&r�_check_for_early_dl_endr�6sE�������!�!�&�"<�"<�,�#.�/����-��-A�B�C�rc��[2oU]*[7c[U2vq UOU2U%f[O
Q2gU]*Q6wc&[O
QO
U22gUQ*oUO[QQ22[V2%cV1!U]*[7c[U2vq UOU2[U2vq UOU2[V2%cV1!U]*[7c[U2vq UOU2[V2%cV1!U]*Q6wc&[O
QO
U22gUO[QQ22UQ*oU%c1U]*[7c[U2vq UOU2V1!)	rzexpected domain-literal�[z6expected '[' at start of domain-literal but found '{}'r�zdomain-literal-startr�z4expected ']' at end of domain-literal but found '{}'r�)r�r�r�r�rrmr?rCr�r?rhr�)rr�rUs&  r�get_domain_literalr�>s���#�_�N��Q�x�;����������e�$���%�%�&?�@�@��Q�x�3���%�%�'!�!'����0�	0��"�I�E����-��-C�D�E��u�5�5��$�$��Q�x�3���u�~������e�$��U�#�L�E����%� ��u�5�5��$�$��Q�x�3���u�~������e�$��u�5�5��$�$��Q�x�3���%�%�'!�!'����0�	0����-��-A�B�C��"�I�E���q��[�(���������e�$�� � rc��[2oPoU%c U]*[7c[U2vq U%f&[OQOU22gU]*Q6Xc,[
U2vq0UdU,UQ$UOU2V1![U2vq0U%c%U]*Q6Xc[OQ2gUdU,UQ$UOU2U%c�U]*Q6Xc�UOO[OQ22U]*OQ6Xc
U]*UQ	$U%cKU]*Q6Xc=UO[2[UQ
*2vq0UOU2JRV1![Oc[S2vq0CK*h9h)Nzexpected domain but found '{}'r�r�r{zInvalid Domainrz(domain is not a dot-atom (contains CFWS)re�NNNr�)r[r�r�rrmr?r�r�r�r�r&r�rjr�)rr&r�rUs&   r�
get_domainr�es���
�X�F�
�F���q��[�(� ���
����%�%�,�3�3�E�:�<�	<��Q�x�3��)�%�0�������E�"�I��
�
�e���}��'�#�E�*���
��q��S���%�%�&6�7�7�
���H��b�	�
�M�M�%����q��S�������f�9�9�6�8�	9��!�9���:�-��q�	�F�1�I���a��C���M�M�#��#�E�"�I�.�L�E��M�M�%� ��=���!�"�"�'������u�'�s�
F.�.G�G�Gc�j�[2o[U2vq UOU2U%cU]*Q6wc3UOO[O
Q22V1!UO[
QQ22[UQ*2vq UOU2V1!)rr{z#addr-spec local part with no domain�address-at-symbolr�)rnr�r�r&rr�rCr�)rr-rUs&  r�
get_addr_specr��s����
�I�!�%�(�L�E�
���U���E�!�H��O���� � ��!;�!;�1�"3�	4����
���]�3�(;�<�=��e�B�i�(�L�E�
���U����rc��[2oU%c�U]*Q6XfU]*[7ccU]*[7c![U2vq UOU2JZU]*Q6XfJjUO[2UQ*oJ�U%cU]*Q6wc&[
OQOU22gUO[2[UQ*2vq UOU2U%c�U]*Q6Xc�UO[2UQ*oU%fL�U]*[7c[U2vq UOU2U%fLLU]*Q6XfJ�UO[2[UQ*2vq UOU2J�U%f[
OQ2gU]*Q6wc&[
OQOU22gUO[QQ22VQ*1!)	rrSr�r{z(expected obs-route domain but found '{}'z%end of header while parsing obs-route�:z4expected ':' marking end of obs-route but found '{}'zend-of-obs-route-marker)rAr�r�r��
ListSeparatorrrmr?�RouteComponentMarkerr�rC)r�	obs_routerUs&  r�
get_obs_router��s����
�I�
�U�1�X�s�]�e�A�h�+�&=���8�{�"�#�E�?�L�E����U�#�
�1�X��_����]�+��"�I�E��E�!�H��O��%�%�6�=�=�e�D�F�	F�
���)�*��e�B�i�(�L�E�
���U��
�E�!�H�c�M�����'��b�	������8�{�"�#�E�?�L�E����U�#�����8�s�?����1�2�%�e�B�i�0�L�E����U�#���%�%�&M�N�N��Q�x�3���%�%�('�'-�v�e�}�6�	6�
���]�3�(A�B�C��B�i��rc��[2oU%c1U]*[7c[U2vq UOU2U%cU]*Q6wc&[O
QO
U22gUO[QQ22UQ*oU%ceU]*Q6XcWUO[QQ22UOO[OQ22UQ*oV1![U2vq UOU2U%cU]*Q6XcUQ*oL/UOO[OQ
22UO[QQ22U%c1U]*[7c[U2vq UOU2V1![O
c�[S2vq SOO[OQ22L>[O
c'[O
Q	O
S22gh9hSOS2[S2vq CKhh9h)r�<z"expected angle-addr but found '{}'zangle-addr-startr��>zangle-addr-endznull addr-spec in angle-addrz*obsolete route specification in angle-addrz.expected addr-spec or obs-route but found '{}'z"missing trailing '>' on angle-addr)
r1r�r�r�rrmr?rCr&r�r�r�r�)r�
angle_addrrUs&  r�get_angle_addrr��s"��
��J���q��[�(���������%� ��E�!�H��O��%�%�0�7�7��>�@�	@����m�C�);�<�=��"�I�E�
��q��S�����-��-=�>�?����!�!�&�"<�"<�*�#,�	-��b�	��� � �,�$�U�+������e����q��S���b�	�����!�!�&�"<�"<�0�#2�	3����m�C�)9�:�;���q��[�(���������%� �����)�"�"�	,�	P�(��/�L�E����%�%�f�&A�&A�<�'>�
?���&�&�	P��)�)�@�G�G��N�P�
P�	P��	���%� �$�U�+���u�	,�s6�
G�J�'J�)<H&�%J�&I!�:'I!�!!J�Jc��[2o[U2vq UOUQ*2UOQ*UmV1!)r�)r�r�rSr&)rr�rUs&  r�get_display_namer��sC���=�L��e�$�L�E�����a��!� �=�=��+�L����rc���[2oPoU%f&[OQOU22gU]*[7c;[U2vq U%f&[OQOU22gU]*Q6wc�U]*[7c&[OQOU22g[U2vq0U%f&[OQOU22gUd4[U]*[2%cU,U]*Q$LU,UQ$PoUOU2[U2vq0UdU,UQ$UOU2V1!)Nz!expected name-addr but found '{}'r�r�)rrrmr?r�r�r�r�r�r!r�r�)r�	name_addrr�rUs&   r�
get_name_addrr�sU���
�I�
�F���%�%�/�6�6�u�=�?�	?��Q�x�;�� ���
����)�)�3�:�:�6�B�D�
D��Q�x�3����8�{�"��)�)�3�:�:�5�A�C�
C�'��.�����)�)�3�:�:�5�A�C�
C����%��(�I�.�.� &�x��a����#�H��b�	��F������!�%�(�L�E�
���H��b�	�
���U����rc���[2o[U2vq [9PIc&QUO2D%fJP	L	P
LQUO22%cQUmUOU2V1![OcP[	S2vq K�[Oc'[OQOS22gh9hh9h)zexpected mailbox but found '{}'c3�b�SF �D o[U[O2w�	J"	P!3hr#)r�rr�r0s& rr3�get_mailbox.<locals>.<genexpr>6s&�� 1��� 1�1��a��3�3�4�4� 1���(/r�)
rFr�rrmr�r?�anyrJrjr�)rr�rUs&  r�get_mailboxr�'s����i�G�A�$�U�+����s�3� %� 1� 1�3�s�s�s�3� %� 1� 1�3�3�3�.����N�N�5���>����"�"�A�	A�(��/�L�E�5���&�&�	A��)�)�1�8�8��?�A�
A�	A��A�s)�
B�C&�C&�
B'�'C"�;'C"�"C&c��[2oU%cnU]*U7c`U]*[7c.UO[U]*Q22UQ*oJU[	U2vq0UOU2JuV 1!)rr�r�)rUr�r�rCr�)rr]�invalid_mailboxrUs&&  r�get_invalid_mailboxr�<sr��%�&�O�
�E�!�H�H�,���8�{�"��"�"�=��q��1D�$F�
G��"�I�E�%�e�,�L�E��"�"�5�)��!�!rc��[2oU%c�U]*Q6wc�[U2vq UOU2U%cmU]*Q7c_UP*oQUm[UQ2vq UOU2UOO[OQ22U%fJ�U]*Q6XfJ�UO[2UQ*oJ�V1![OCcrPoS]*[
7c�[
S2vq0S%cS]*Q7cDSOS2SOO[OQ22CKA[SQ2vq SdS,SQ$SOS2SOO[OQ22CK�S]*Q6Xc3SOO[OQ22CK�[SQ2vq SdS,SQ$SOS2SOO[OQ22CK7h9h)	r�;z,;zempty element in mailbox-listr�zinvalid mailbox in mailbox-listrSr�r�)r�r�r�rrmr�r�r&r�r�r�rjrSr�)r�mailbox_listrUr�r�s&    r�get_mailbox_listr�Ns���=�L�
�E�!�H��O�	8�&�u�-�L�E�����&�4�U�1�X�T�)�#�2�&�G�!2�G��.�u�d�;�L�E��N�N�5�!�� � �'�'��(B�(B�1�)3�
4��5�U�1�X��_����
�.��"�I�E�����K�&�&�	8��F��Q�x�;�&� (���
����a��D� 0� �'�'��/� �(�(�/�/��0K�0K�7�19�:�$7�u�d�#C�L�E��)�%+�H��b�	� �'�'��.� �(�(�/�/��0J�0J�9�1;�<��q��S���$�$�+�+�F�,G�,G�3�-5�6� 3�5�$�?����%�!'��E�"�I��#�#�E�*��$�$�+�+�F�,F�,F�5�-7�8�/	8�sP�C2�2I9�I9�I9�1
I9�?AI9�I9�AI9�
I9�+/I9�I9�/AI9�8I9c���[2oU%f3UOO[OQ22V1!PoU%c�U]*[
7c{[
U2vq U%fDUOO[OQ22UOU2V1!U]*Q6XcUOU2V1![U2vq0[UO2]6XcYUdUOU2UOU2UOO[OQ22V1!UdU,UQ$UOU2V1!)zend of header before group-listzend of header in group-listr�zgroup-list with empty entriesr�)rr&r�rr�r�r�r�rr�rSr�)r�
group_listr�rUs&   r�get_group_listr��sQ��
��J�����!�!�&�"<�"<�-�#/�	0�� � �
�F���q��[�(� ���
���
���%�%�f�&@�&@�-�'/�
0����f�%��$�$���8�s�?����f�%��$�$�#�E�*�L�E�
�5�����"������f�%����%� ����!�!�&�"=�"=�+�#-�	.�� � �
���H��b�	����e����rc�X�[2o[U2vq U%cU]*Q6wc&[OQO	U22gUOU2UO[
QQ22UQ*oU%c4U]*Q6Xc&UO[
QQ22VQ*1![U2vq UOU2U%f1UOO[OQ22L3U]*Q6wc&[OQO	U22gUO[
QQ22UQ*oU%c1U]*[7c[U2vq UOU2V1!)	rr�z8expected ':' at end of group display name but found '{}'zgroup-display-name-terminatorr�r�zgroup-terminatorzend of header in groupz)expected ';' at end of group but found {})r
r�rrmr?r�rCr�r&r�r�r�)rr�rUs&  r�	get_groupr��sQ��
�G�E�#�E�*�L�E��E�!�H��O��%�%�'*�*0�&��-�9�	9�	�L�L���	�L�L��s�$C�D�E��"�I�E���q��S��
���]�3�(:�;�<��B�i���!�%�(�L�E�	�L�L����
�
�
���V�7�7�$�&�	'�	�q��S���%�%�7�>�>�u�E�G�	G�	�L�L��s�$6�7�8��"�I�E���q��[�(������
���U���<�rc�*�[2o[U2vq UO
U2V1![OcP[	S2vq K9[Oc'[OQOS22gh9hh9h)zexpected address but found '{}')r�r�rrmr�r?r�)rr�rUs&  r�get_addressr��s���"�i�G�A� ��'����N�N�5���>����"�"�A�	A�&�u�-�L�E�5���&�&�	A��)�)�1�8�8��?�A�
A�	A��A�s'�
.�B�B�
A�B�''B�Bc���[2oU%c�[U2vq UOU2U%cgU]*Q6wcY[UQ2vq UO[U,22UOO[OQ22U%fJ�UO[2UQ*oJ�V1![OCc�PoS]*[
7c�[
S2vq0S%cS]*Q6XcDSOS2SOO[OQ22CK+[SQ2vq SdS,SQ$SO[S,22SOO[OQ22CK�S]*Q6Xc3SOO[OQ22CK�[SQ2vq SdS,SQ$SO[S,22SOO[OQ22CK5h9h)NrSz"address-list entry with no contentr�zinvalid address in address-listzempty element in address-listr�)
r�r�r�rrmr�r�r&r�r�r�r�r�)r�address_listrUr�s&   r�get_address_listr��s���=�L�
�	8�&�u�-�L�E�����&�4�U�1�X��_�/�u�c�:�L�E������� 0�1�� � �'�'��(B�(B�1�)3�
4��5����
�.��"�I�E�����G�&�&�	8��F��Q�x�;�&� (���
����a��C�� �'�'��/� �(�(�/�/��0K�0K�<�1>�?�$7�u�c�#B�L�E��)�%+�H��b�	� �'�'����(8�9� �(�(�/�/��0J�0J�9�1;�<��q��S���$�$�+�+�F�,G�,G�3�-5�6� 3�5�#�>����%�!'��E�"�I��#�#�G�U�G�$4�5��$�$�+�+�F�,F�,F�5�-7�8�/	8�sP�C�I)�#I)�8I)�

I)�AI)�I)�0AI)�
I)�/I)�I)�AI)�(I)c��[2oU%f&[OQOU22gU]*Q6wc&[OQOU22gUO	[QQ22UQ*o[
U2vq UO	U2U%cU]*Q6wc&[OQOU22gUO	[QQ22VQ*1!)z'expected no-fold-literal but found '{}'r�z;expected '[' at the start of no-fold-literal but found '{}'zno-fold-literal-startr�r�z9expected ']' at the end of no-fold-literal but found '{}'zno-fold-literal-end)rkrrmr?r�rCr�)r�no_fold_literalrUs&  r�get_no_fold_literalr�s���$�o�O���%�%�5�<�<�U�C�E�	E��Q�x�3���%�%�
�#�V�E�]�,�	,����=��.E�F�G��"�I�E��U�#�L�E����5�!��E�!�H��O��%�%�
�#�V�E�]�,�	,����=��.C�D�E��"�I�%�%rc�
�[2oU%c1U]*[7c[U2vq UOU2U%cU]*Q6wc&[O
QO
U22gUO[QQ22UQ*o[U2vq UOU2U%cU]*Q6wcmUOO[OQ22U%c3U]*Q	6Xc%UO[Q	Q
22UQ*oV1!UO[QQ22UQ*o[U2vq UOU2U%cU]*Q	6XcUQ*oL/UOO[OQ22UO[Q	Q
22U%c1U]*[7c[U2vq UOU2V1![O
c�[S2vq SOO[OQ22CK�[O
c'[O
QO
S22gh9hh9h[O
c�[S2vq CKs[O
c�[S2vq SOO[OQ22CK�[O
c'[O
Q
O
S22gh9hh9hh9h)rr�zexpected msg-id but found '{}'zmsg-id-startr�zobsolete id-left in msg-idz4expected dot-atom-text or obs-id-left but found '{}'r{zmsg-id with no id-rightr�z
msg-id-endr�zobsolete id-right in msg-idzFexpected dot-atom-text, no-fold-literal or obs-id-right but found '{}'zmissing trailing '>' on msg-id)r
r�r�r�rrmr?rCr�r�r&r�r�r�r�)r�msg_idrUs&  r�
get_msg_idr�2s����W�F���q��[�(�������
�
�e���E�!�H��O��%�%�,�3�3�E�:�<�	<�
�M�M�-��^�4�5��"�I�E�1�(��/����M�M�%���E�!�H��O������f�8�8�%�'�	(�
�U�1�X��_��M�M�-��\�:�;��"�I�E��}��
�M�M�-��%8�9�:��"�I�E�
5�(��/����M�M�%����q��S���b�	�������f�8�8�,�.�	/�
�M�M�-��\�2�3���q��[�(�������
�
�e���=���a�"�"�	1�	1�-�e�4�L�E��N�N�!�!�&�"=�"=�,�#.�
/���&�&�	1��)�)�"�"(�&��-�1�
1�	1��
	1��4�"�"�5�
	5�.�u�5�L�E�5���&�&�	5�
5�)�%�0������%�%�f�&A�&A�1�'3�4�4���*�*�
5��-�-�&�&,�f�U�m�5�5�
5��	5��5�sr�$
H,�)
K�,K�K�<J�J<�'J<�<K�N�N�
K)�)M>�=M>�?<L?�;N�?M:�'M:�:M>�>Nc���[2o[U2vq UOU2U%c?UOO[O
QO
U222U![Oc`o[S2o[S2oSOO[O
QO
S222Po=S!Po=hh9h)zUnexpected {!r}�Invalid msg-id: {!r})
rr�r�r&rr�r?rmr�r)r�
message_idrU�exs&   r�parse_message_idr�ws�����J�2�!�%�(������%� �����%�%�f�&@�&@�!�(�(��/�'1�
2�����"�"�K� ��'��%�e�,�
����!�!��&�&�'=�'D�'D�R�'H�I�	K�	K����K�s�A3�3C'�C'�AC"�"C'c�@�[2oU%c�U]*Q6XcVUOO[OQ22UO[QQ22UQ*oJk[
U2vq UOU2J�U![Ocoo[S2oSO[S22SOO[OQOS222Po=S!Po=hh9h)rrSzcomma in msg-id listrzinvalid-comma-replacementr�r�)rr&r�rr�r:r�rmr�rr?)r�message_id_listrUr�s&   r�parse_message_idsr��s���$�o�O�
���8�s�?�
�#�#�*�*��*�*�+A�B�
D��"�"�"�3�(C�D�
F��"�I�E��	�%�e�,�L�E��"�"�5�)����
�&�&�	�$�U�+�E��"�"�#3�E�#:�;��#�#�*�*��*�*�+A�+H�+H��+L�M�
O�����
	�s�8B�D�.D�/A#D�Dc�v�[2oU%f2UOO[OQ22U!U]*[
7cV[
U2vq UOU2U%f0UOO[OQ22PoU%c;U]*Q6wc-U]*[
7cV0]**
oUQ*oJBUO2%f[UOO[OQOU222UO[UQ22L+[U2UmUO[UQ22U%c1U]*[
7c[
U2vq UOU2U%cU]*Q6wccUOd0UOO[OQ22U%cUO[UQ22U!UO[QQ22UQ*oU%c1U]*[
7c[
U2vq UOU2U%f@UOd0UOO[OQ22U!PoU%c-U]*[
7cV0]**
oUQ*oJ4UO2%f[UOO[OQ	OU222UO[UQ22L+[U2Um
UO[UQ22U%c1U]*[
7c[
U2vq UOU2U%cKUOO[OQ
22UO[UQ22U!)z%Missing MIME version number (eg: 1.0)z0Expected MIME version number but found only CFWSrr�z1Expected MIME major version number but found {!r}rW�digitsz0Incomplete MIME version; found only major numberzversion-separatorz1Expected MIME minor version number but found {!r}z'Excess non-CFWS text after MIME version)r�r&r�r�HeaderMissingRequiredValuer�r��isdigitr�r?rC�intr�r�)r�mime_versionrUr�s&   r�parse_mime_versionr��s6���=�L�����#�#�F�$E�$E�3�%5�	6����Q�x�;����������E�"��� � �'�'��(I�(I�B�)D�
E�
�F�
�E�!�H��O��a���(C���(����b�	���>�>������#�#�F�$>�$>�?�F�F�v�N�%P�	Q����M�&�'�:�;� ��[������M�&�(�;�<���q��[�(���������E�"��E�!�H��O����)�� � �'�'��(B�(B�B�)D�
E�����
�e�W� =�>������
�c�+>�?�@��"�I�E���q��[�(���������E�"�����)�� � �'�'��(B�(B�B�)D�
E���
�F�
�E�!�H�K�/���(����b�	���>�>������#�#�F�$>�$>�?�F�F�v�N�%P�	Q����M�&�'�:�;� ��[������M�&�(�;�<���q��[�(���������E�"�����#�#�F�$>�$>�5�%7�	8����M�%��9�:��rc��[2oU%cnU]*Q6wc`U]*[7c.UO[U]*Q22UQ*oJU[	U2vq UOU2JuV1!)rr�r�r�)r�r�r�rCr�)r�invalid_parameterrUs&  r�get_invalid_parameterr�sr��)�*��
�E�!�H��O���8�{�"��$�$�]�5��8�3F�&H�
I��"�I�E�%�e�,�L�E��$�$�U�+��#�#rc���[U2oU%f&[OQOU22gUO	2oU[U2Po[
UQ2o[U2V 1!)zexpected ttext but found '{}'�ttext)�_non_token_end_matcherrrmr?r�rrCrY)rr�rs&  r�	get_ttextr	si��	�u�%�A���%�%�+�2�2�5�9�;�	;�
�G�G�I�E��#�e�*�+��E��%��)�E��E���<�rc��[2oU%c1U]*[7c[U2vq UOU2U%c8U]*[7c&[
OQOU22g[U2vq UOU2U%c1U]*[7c[U2vq UOU2V1!�rzexpected token but found '{}')	r�r�r�r��
TOKEN_ENDSrrmr?r)r�mtokenrUs&  r�	get_tokenr		s����W�F���q��[�(�������
�
�e����q��Z�'��%�%�+�2�2�5�9�;�	;��U�#�L�E�
�M�M�%����q��[�(�������
�
�e���=�rc���[U2oU%f&[OQOU22gUO	2oU[U2Po[
UQ2o[U2V 1!)z expected attrtext but found {!r}r�)�_non_attribute_end_matcherrrmr?r�rrCrY�rr�r�s&  r�get_attrtextr
-	si��	#�5�)�A���%�%�.�5�5�e�<�>�	>��w�w�y�H��#�h�-�.�!�E��X�z�2�H��H���?�rc��[2oU%c1U]*[7c[U2vq UOU2U%c8U]*[7c&[
OQOU22g[U2vq UOU2U%c1U]*[7c[U2vq UOU2V1!r)	r�r�r�r��ATTRIBUTE_ENDSrrmr?r
�rr�rUs&  r�
get_attributer@	s�����I���q��[�(�������������q��^�+��%�%�+�2�2�5�9�;�	;���&�L�E�
���U����q��[�(�������������rc���[U2oU%f&[OQOU22gUO	2oU[U2Po[
UQ2o[U2V 1!)z)expected extended attrtext but found {!r}�extended-attrtext)�#_non_extended_attribute_end_matcherrrmr?r�rrCrYrs&  r�get_extended_attrtextrW	sl��	,�E�2�A���%�%�7�>�>�u�E�G�	G��w�w�y�H��#�h�-�.�!�E��X�':�;�H��H���?�rc��[2oU%c1U]*[7c[U2vq UOU2U%c8U]*[7c&[
OQOU22g[U2vq UOU2U%c1U]*[7c[U2vq UOU2V1!r)	r�r�r�r��EXTENDED_ATTRIBUTE_ENDSrrmr?rrs&  r�get_extended_attributeri	s�����I���q��[�(�������������q��4�4��%�%�+�2�2�5�9�;�	;�(��/�L�E�
���U����q��[�(�������������rc���[2oU%cU]*Q6wc&[OQOU22gUO	[QQ22UQ*oU%cU]*O
2%f&[OQOU22gPoU%c8U]*O
2%cV ]**
oUQ*oJ?U]*Q6Xc7UQ6wc0UOO	[OQ22[U2Um
UO	[UQ22V1!)	r�*zExpected section but found {}zsection-markerr�z$Expected section number but found {}�0z'section number has an invalid leading 0r�)r�rrmr?r�rCr�r&r�r�r�)rr�r�s&  r�get_sectionr	s���i�G��E�!�H��O��%�%�&E�&L�&L�(-�'/�0�	0��N�N�=��&6�7�8��"�I�E���a��(�(�*�*��%�%�'1�17����@�	@�
�F�
�E�!�H�$�$�&�&���(����b�	��
�a�y�C��F�c�M������v�9�9�9� ;�	<���[�G�N��N�N�=���2�3��>�rc�~�[2oU%f[OQ2gPoU]*[7c[	U2vq U%f&[OQOU22gU]*Q6Xc[
U2vq0L
[U2vq0UdU,UQ$UOU2V1!)z&Expected value but found end of stringz Expected value but found only {}rr�)	r�rrmr�r�r?r�rr�)r�vr�rUs&   r�	get_valuer�	s���	��A���%�%�&N�O�O�
�F��Q�x�;�� ���
����%�%�'0�06��v��@�	@��Q�x�3��(��/���u�-�e�4���
���H��b�	��H�H�U�O��8�Orc���[2o[U2vq UOU2U%cU]*Q6XcBUOO[O
QO
U222V1!U]*Q6Xc~[U2vq P	UmUOU2U%f[OQ2gU]*Q6Xc,UO[QQ22UQ*oP	UmU]*Q6wc[OQ2gUO[QQ	22UQ*oU%c1U]*[7c[U2vq UOU2PoSoUO%Cc=U%Cc4U]*Q
6XCc%[U2vqSUOoP
oUO ]6Xc@U%cU]*Q6XcP	oL>[#U2vq(U%cU]*Q6XcP	oL[%U2vq(U%fP	oU%ciUOO[O
Q22UOU2SFDo	U	O&Q
6XfJ,U	Q$S	oL	SoL1PoUOO[O
Q22U%cU]*Q6XcPoL
[)U2vq UO%cUO ]6�c`U%cU]*Q6wcUOU2UdSoV1!UOO[O
Q22U%fJUOO[O
Q22UOU2UeV1!CLNUdPSFDo	U	O&Q6XfJL	W	O&Q6HUOU	2U	O*UmU]*Q6wc&[OQO
U22gUO[QQ22UQ*oU%cyU]*Q6wck[#U2vq UOU2UO*UmU%cU]*Q6wc&[OQO
U22gUO[QQ22UQ*oUdz[12o
U%ceU]*[27c[5U2vq L1U]*Q
6Xc[Q
Q2oUQ*oL
[7U2vq U
OU2JlS
oL
[)U2vq UOU2UdSoV1![OcCK-h9hCK�9h)rr�z)Parameter contains name ({}) but no valuerzIncomplete parameterzextended-parameter-markerr��=zParameter not followed by '='�parameter-separatorr�'z5Quoted string value for extended parameter is invalidr�r�zZParameter marked as extended but appears to have a quoted string value that is non-encodedzcApparent initial-extended-value but attribute was not marked as extended or was not initial sectionz(Missing required charset/lang delimitersrr�z=Expected RFC2231 char/lang encoding delimiter, but found {!r}zRFC2231-delimiterz;Expected RFC2231 char/lang encoding delimiter, but found {}�DQUOTE)r�rr�r&rr�r?rr�rmrCr�r�r�r�r�r�r
rrjrrr�r�r�r?rhr�)rr�rUr_�appendto�qstring�inner_value�
semi_validru�trs&          r�
get_parameterr*�	s���
�K�E� ��'�L�E�	�L�L����E�!�H��O�
�
�
���V�7�7�9%�%+�V�E�]�4�	5��|���Q�x�3��	�&�u�-�L�E�"�E�O��L�L�����)�)�*@�A�A���8�s�?��L�L��s�,G�H�I��"�I�E�!�E�N��Q�x�3���%�%�&E�F�F�	�L�L��s�$9�:�;��"�I�E���q��[�(������
���U���I��H��~�~�~�%�%�E�!�H��O�/�u�5����,�,���
����1�$��{�1�~��4�!�
�*�;�7����D��G�s�N�!%�J��
&�3�K�@����!%�J���M�M� � ��!;�!;�G�"I�
J��L�L��!����<�<�#7�7��A�a�D� �H��	�
 �E��I��M�M� � ��!;�!;�:�";�
<�
��q��S���� ��'����>�>�>�U�1�1�A�5���a��C���O�O�E�"��$�!���<��
�
�
���V�7�7�
D�E�	F��
�
�
���V�7�7�6�8�	9���������<��������<�<�#6�6���
�L�L�J�&��O�O�A���G�G�E�M���8�s�?��)�)�+F�FL�f�U�m�U�
U����
�c�+>�?�@��b�	���U�1�X��_�'��.�L�E��O�O�E�"����E�J��E�!�H��O��-�-�/<�<B�F�5�M�K�K����
�c�+>�?�@��b�	�����G����Q�x�3��&�u�~���u��q��S��%�c�8�4���b�	��+�E�2���
�H�H�U�O��� ��'����O�O�E�������<���i�&�&�	��	��D
��s$�%W
�'
W&�
W#�W#�"W#�&W+c��[2oU%c�[U2vq UOU2U%c{U]*Q6wcmUP*oQUm[U2vq UOU2UOO[OQOU222U%fJ�UO[QQ22UQ*oJ�U![OCcPoS]*[
7c[
S2vq0S%fSOS2St!S]*Q6XcHSdSOS2SOO[OQ22CK][S2vq S%cS,SQ$SOS2SOO[OQOS222CK�h9h)	Nr�zparameter entry with no contentr�zinvalid parameter {!r}r�z)parameter with invalid trailing text {!r}r"r�)r�r*r�rrmr�r�r&r�rr?rjrSrC)r�mime_parametersrUr�r�s&    r�parse_mime_parametersr-@
s���%�&�O�
�	=�(��/�L�E��"�"�5�)�(�U�1�X��_�$�B�'�E�2�E��0��7�L�E��L�L����#�#�*�*�6�+E�+E�;�B�B�5�I�,K�
L��5��"�"�=��6K�#L�M��"�I�E����A�&�&�	=��F��Q�x�;�&� (���
����&�&�v�.�&�&��Q�x�3���%�#�*�*�6�2��'�'�.�.�v�/I�/I�5�07�8� 5�U�;����!'��E�"�I��&�&�u�-��'�'�.�.�v�/I�/I�,�3�3�E�:�0<�=�#	=�sC�C'�'G>�<G>�G>�&G>�;
G>�	G>�
AG>�G>�%AG>�=G>c�~�U%cnU]*Q6wc`U]*[7c.UO[U]*Q22UQ*oJU[U2vq!UOU2JuU%fP!UO[QQ22UO[	UQ*22P!)rr�r�r�r")r�r�rCr�r-)�	tokenlistrrUs&& r�_find_mime_parametersr0t
s����E�!�H��O���8�{�"����]�5��8�5H�I�J��"�I�E�%�e�,�L�E����U�#���
���]�3�(=�>�?�
���*�5��9�5�6rc��[2oU%f2UOO[OQ22U![U2vq UOU2U%cU]*Q6wcEUOO[OQ22U%c[V2U!UOO2O2Um
UO[QQ22UQ*o[U2vq UOU2UOO2O2UmU%fU!U]*Q6wcPUOO[OQOU222U;
U;[V2U!UO[QQ	22UO[!UQ*22U![OcOSOO[OQOS222[X2St!h9h[OcOSOO[OQOS222[X2St!h9h)
z"Missing content type specificationz(Expected content maintype but found {!r}r*zInvalid content typezcontent-type-separatorr�z'Expected content subtype but found {!r}r�z<Only parameters are valid after content type, but found {!r}r")r�r&r�rr�r	rmr�r?r0rr��lowerr�rCr�r-)r�ctyperUs&  r�parse_content_type_headerr4�
s8��
�M�E��
�
�
���V�>�>�0�2�	3���� ��'���
�L�L����E�!�H��O�
�
�
���V�7�7�"�$�	%��!�%�/����[�[�&�&�(�.�.�0�E�N�	�L�L��s�$<�=�>��"�I�E�� ��'���
�L�L����K�K�%�%�'�-�-�/�E�M�����Q�x�3��
�
�
���V�7�7�
�����(�	)�
�N�E�M��e�+���	�L�L��s�$9�:�;�	�L�L�&�u�R�y�1�2��L��Q�"�"��
�
�
���V�7�7�6�=�=�e�D�F�	G��e�+���	��&�"�"��
�
�
���V�7�7�5�<�<�U�C�E�	F��e�+���	�s2�
H�
I&�I#�AI#�"I#�&K	�:AK	�K	c�0�[2oU%f2UOO[OQ22U![U2vq UOU2UOO2O2Um
U%fU!U]*Q6wcLUOO[OQOU222[V2U!UO[QQ22UO[UQ*22U![OcOSOO[OQOS222[X2St!h9h)zMissing content dispositionz+Expected content disposition but found {!r}r�zCOnly parameters are valid after content disposition, but found {!r}r"r�)r�r&r�rr�r	rmr�r?r0rr�r2rrCr-)r�disp_headerrUs&  r� parse_content_disposition_headerr7�
sU��%�&�K�����"�"�6�#D�#D�)�$+�	,���� ��'������u��&+�k�k�&7�&7�&9�&?�&?�&A�K�#�����Q�x�3�����"�"�6�#=�#=�
�����$(�	)�	�k�1������}�S�*?�@�A����,�U�2�Y�7�8����#�"�"�����"�"�6�#=�#=�9�@�@��G�$I�	J��k�1���	�s�
D2�2F�AF�Fc��[2oU%f2UOO[OQ22U![U2vq UOU2UOO2O2Um	U%fU!U%c�UOO[OQ22U]*[7c.UO[U]*Q22UQ*oJv[U2vq UOU2J�U![OcBSOO[OQOS222K�h9h)z!Missing content transfer encodingz1Expected content transfer encoding but found {!r}z*Extra text after content transfer encodingr�r�)rr&r�rr�r	rr�r2r�rmr�r?r�rCr�)r�
cte_headerrUs&  r�&parse_content_transfer_encoding_headerr:�
s@��
)�*�J�����!�!�&�"C�"C�/�#1�	2���5� ��'���
	���%� ����*�*�,�2�2�4�
�����
����!�!�&�"<�"<�8�#:�	;���8�{�"����m�E�!�H�6I�J�K��"�I�E�%�e�,�L�E����e�$����#�"�"�P����!�!�&�"<�"<�?�F�F�u�M�#O�	P�P�s�
D3�3F	�?F	�F	c���PoU%cgUP*%cXUP*P*[7c?UP*P*oUP*PPUP$UP*%fUO2U!rn)r?r�)�lines�wsps& r�_steal_trailing_WSP_if_existsr>	sX��
�C���r���u�R�y��}��3��B�i��m���"�I�c�r�N��b�	��R�y�y��I�I�K��Jrc�4�UO9%f[OoUO%cQLQoP,oUO%c[VV#UQ5L[
VV#UQ5UOOU2UO*!)�utf-8r�rX)	�max_line_length�sys�maxsize�utf8ru�_refold_with_ew�_refold_without_ewrr8)�
parse_treerY�maxlenr�r<s&$   rrZrZsq��
�
#�
#�
2�
2�s�{�{�F� �+�+�+�w�:�H�
�D�E������
�6�F�K��:�f�v�N��>�>���u�%����6�6rc��[U2oU%Cc[UO]2o[U2oUOU2[U2U[UP*2*
6:cUP99*U*
tt$JuUO%cZ[U2]*U6:cC[U2oU%fUO2%cUOV�*2J�[!UQ2%f[U2o	V�*oCJ[U2oU%fUO2%cUOV�*2CJKUP99*U*
tt$CJcP![c�[
9PIc&QSO2D%fJP	L	P
LQSO22%cCK�SO%cg[OQSOQSQ02gh9h)rc3�b�SF �D o[U[O2w�	J"	P!3hr#�r�rr�r0s& rr3�%_refold_without_ew.<locals>.<genexpr>'�&��,���,�q��a��!>�!>�?�?�,�r�z
Non-ASCII z 'z6' is invalid under current policy setting (utf8=False)�encode)r-r�rrNr�r�rJrDr�HeaderWriteErrorrjrrrr>rPr�rk)
rGr<rHr�rYr��part�tstr�newline�newpartss
&&&&$     rrFrFs������E�
�%��y�y��|���4�y��	��K�K��!��t�9���U�2�Y��/�/��"�I���I��
� � � ��D�	�A�
��'�3�E�:�G��$�-�-�/�/����W�^�,���t�X�&�&��D�z�H��$�E��/��6���d�)�)�+�+��L�L���(�
�"�I���I�
��M"�
	��s�.� �,�,�.�s�s�s�.� �,�,�.�.�.��������-�-� ���� 1��D�6�:A�A���
	�s)�E2�2	H�<H�H�&#H�
H�)Hc
��P
oPoPo]oP
o	[PQ2o
[U2oU%Cc#UO]2oV�IcU]*oJ*UOQ6Xc[	V�V#2P
oJK[U2o
U	%fGUOQ7c[OU
2%(o	L[OU
2%(o	U
OU2SoU	%CctU%Cfk[9PIcQU2D%fJP	L	P
LQU22%c�P
o	PoUO%c�UOUQ5P[UO 2'oUO U7c^[U2U[UP*2*
6�c[#U2oUO%U2UP99*U*
tt$P
oCJ�['UQ	2%f[U2U*oP
o	CJ�UO(%cFUdV�6wcUQ6XfUQ6Xc
UQ
6wcPo[+U
UUUUO,UU2oP	oSoP
o	CJ0PoP
o	[U
2U[UP*2*
6:cFUP99*U
*
tt$S9%c$[/U
O1[222%(oCJ�UO%c�[U
2]*U6:c{[#U2oU%fUO52%cRUO%UU
*2S9%c+[/UP*O1[222%(oPoCJC['UQ	2%Cf[U2oUOQ6Xc\[7QQ2,STt,tFDo[7[9U2Q2MJ	to*[7QQ2,*o[;UVV4Q5CJ�UOQ
6Xc^[7QQ2,STt,tFD+oUOQ6Xc[7[=U2Q2LSMJ-	to*[7QQ2,*oUO(%fU]*
oUO%U
2UU*oCJsUO(%c U%fUO?]U2P	o	CJ�[#U2oU%fUO52%cUO%UU
*2LUP99*U
*
tt$S9%c$[/U
O1[222%(oCJ+P![cY[9PIc&QSO2D%fJP	L	P
LQSO22%cQoLQoP	o	CK�h9httohttoh)F�wrap_as_ew_blockedr�r�c3�b�SF �D o[U[O2w�	J"	P!3hr#rKr0s& rr3�"_refold_with_ew.<locals>.<genexpr>qrMr��unknown-8bitr@c3�x�SF �D+o[UQ2%fJUO%(w�	J-	P!3h)ru)rkrur0s& rr3rW{s+��15���15�A��q�/�2�(����'�'��s�:�:rXrNr�r�rr�rr)r�rw) r!r-r�rj�_fold_mime_parametersr�
SPECIALSNL�
isdisjoint�NLSETrNr�r�rJrrr\rrr>r�rkru�_fold_as_ewrs�boolr��_WSPrPrCrrFr�insert)rGr<rHr�rY�last_word_is_ew�last_ew�last_charsetrU�
want_encoding�end_ew_not_allowedr�rPrQr��encoded_partrRrS�ps&&&&$              rrErEOs!���O��G��L����M�!�"�&:�;�����E�
�%��y�y��|���%��!�#����?�?�/�/�!�$�v�@�#�O���4�y������"4�4�$.�$9�$9�$�$?� ?�
�%*�$4�$4�T�$:� :�
�	!��K�K��!��G��=�!3�!3��s��15��s�s�s��15����!&�
����'�'�'�#'�9�9�F�9�#;�<Q�c�&�.�.�>Q�=Q�#R�L��~�~�\�9��|�,�v��E�"�I��/F�F�&C�E�&J�G�!�L�L��1��b�	�\�1�	�*/�� �
�4��*�*��T�
�U�*�� %�
���#�#�#��'��+�!�^�3�!�W�,��J�1F�"�G�%������+�+��#���#'��&�� %�
���� %�
��t�9���U�2�Y��/�/��"�I���I�-�L�L�d�4�:�:�d�;K�6L�2L�O��

� � � ��D�	�A�
��'�3�E�:�G��$�-�-�/�/����W�t�^�,�#2�$G�$G�+/��b�	����0E�+F�'F� �����t�X�&�&��D�z�H����"6�6�
#�3��0�1�&�(�&��#�#4�Q�#7��A�&�(�(�#�3��0�1�2��
#�8�U�H�T�����)�+�"�3��0�1�'�(�&������/�#�#9�!�#<�g�F�56�7�&�(�(�#�3��0�1�	2���%�%�%�"�a�'�"���� 2�3��u�$�E������&8�
�L�L��D�!� �M��/��6���d�)�)�+�+��L�L��4��(�
�"�I���I�)�H�H�$�t�z�z�$�7G�2H�.H��
��y"�	!��s�.� �,�,�.�s�s�s�.� �,�,�.�.�.�(��"�� �M�	!��x(��(s<�U�$ V6�V;�(V;�	V3�V3�&V3�#V3�(V3�2V3c��Ud>U%c6[[UP*UPU*22oUP*PUUP$L�U%c[[UP*O[22oUP*UPoUP*PUU%cQLP*UP$V�*oLjU]*[
7cYU]*o	UQ*o[UP*2U6XcUO
[U22UP99*U	*
tt$Po
UP*[
7cUP*o
UPPoUe[UP*2LSoUQ6XcQLSo[U2]*o
U
]*U6�c[OQ2gU%CcU[UP*2*
oV�*
oU]6:c;[U2oSO
S9%fQ2[UP*2oJkUPUo[OUUQ5o[U2U*
oU]6�c2UPPo[OUUQ5o[U2U*
oJ8UP99*U*
tt$U[U2PoU%fCJUO
Q2[UP*2oCJ&UP99*U
*
tt$U%cU!P!)Nrr�r�r@z3max_line_length is too small to fit an encoded word)r�)rr�rrwr`r?r�r>rrmrorN)�	to_encoder<rHrcrsr�rb�len_without_wsp�leading_whitespace�leading_wsp�trailing_wsp�new_last_ew�	encode_as�
chrome_len�remaining_space�
text_spacerR�to_encode_word�encoded_word�excesss&&&&&&&             rr^r^�sr����1���U�2�Y�w�x�0�9�<�=�?�	��"�I�h�w�'��b�	�	�
�e�B�i�.�.�t�4�5��"�2�Y��'7�8���2�Y�/��0�1��r�;��b�	�&�2�	�	�1���	� ��l���b�M�	���b�	�N�f�$��L�L�6�u�=�>�
�b�	�[� �	��L���}��� ��}���c�r�N�	�$+�O�#�e�B�i�.��K�"�j�0��g�I��Y��!�#�J��Q��6�!��%�%�A�C�	C��)� �3�u�R�y�>�1��$�1�
���?�3�E�:�G��L�L����C�(��e�B�i�.�K��"�;�J�/���z�z�.�)�D���\�"�_�4���q�j�,�C�R�0�N��:�:�n�i�H�L���&��8�F�
�b�	�\�!�	��c�.�1�2�3�	��9��L�L����e�B�i�.�K�	�"�I���I�,�;�6�$�6rc
�
�UOFCD6vqEUP*O2OQ2%fUP99*Q*
tt$SoQoUOU2P
oU%c6[OOUPUQ5o	QOVFU	2o
LQOU[U22o
[UP*2[U
2*]*U6cUP*Q	*U
*UP$CJ[U
2]*U6:cUOQ	U
*2CJ4]oUQ
*oU%fCJJ[U2[[U22*]*[U2*o
V-]*6:c]NoV-*
]*
9q�UPUo[OOUPUQ5o	[U	2U6:cLU]*oJDUOQOVKV�22PoU]*
oV^PoU%fJ�UP99*Q*
tt$J�	P![c,P	o[
OS2%cQoQoCKQoCKh9h)rr��strictrXr�r@)�saferz
{}*={}''{}r�rz''z {}*{}*={}{})r�rwr�rNr�rr�r�r�r�r?rrr�r)rPr<rHr�r�rr��
error_handler�encoding_required�
encoded_valuerQr��extra_chromerq�
splitpoint�maxchars�partials&&&&             rrZrZ<s.���{�{����R�y���!�*�*�3�/�/��"�I���I��� �
�		"��L�L��"� %���"�L�L�.�.��B�}�/�6�M��&�&�t�m�D�D��>�>�$��U�(;�<�D��u�R�y�>�C��I�%��)�F�2��b�	�C��$�.�E�"�I��
��Y��]�f�
$��L�L��t��$������~���e��T��S��W��%6�6��:�S��=N�N�J��a��'�
��$*�$7�!�$;�;�J�����,�� &��� 2� 2��"�]�!3�!<�
��}�%��1���a��
��L�L��.�.��|�<�
=��L��q�L�G��+�&�E��u��b�	�S� �	�u#��"�	"� $���$�$�U�+�+�(�� 1�
�!��
	"�s$�I�	J�J�5J�<J�J)rw)��rerBr��stringr�operatorr�emailrrorrr`r|r?r�r�r�r}r��	TSPECIALSr�	ASPECIALSrrr]r[rrr�compile�VERBOSE�	MULTILINEr|r-r!r|r�r�r�r�r�r�r�r�r�r�r�r�r�rr
rr1rArFrUr[rcrgrkrnr�r�r�r�r�r�r�r�r�r�r�r�r�r�rrr
rrrrrr!r:rCrJrmrQr�r�rurrr�r?r8r_r[ra�matchr��findallrUrrrrYrdrhrxr�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rrr	r
rrrrrr*r-r0r4r7r:r>rZrFrEr^rZr�rr�<module>r�s?��L
�
�
���'���
��	�$�i���C��H�n���� ���s�N�	��C��H�$�
���U��#��
��E�
�
"�c�#�h�.�	�
��_�
���E�
�"�	��S���(�3�s�8�3��	
�t���
��
�
�@�
1���*�*���Z�Z�"�,�,�� ��=,��=,�@D�)�D� �I� ��Y���9���"���9���I��
�)��#�9�#�6	-�|�	-��!��4C�)�C�&%�i�%�2?�)�?�%�	�%�"$�I�$�*"�y�"�6 �	� �FD�y�D�!�i�!�6;�Y�;�.�Y�.��i���)��
�I��
�y��B�9��-!�&�-!�`!�	�!�H
�I�
� �)���	��8%�y�%�
#�	�#��i���I��W.�Y�W.�t�y���*���1��
�i��
 �)� �*�I�*����&�y�&�;�I�;��Y��(+�s�(+�V'��'��H���-��<�f�-�-�<��C�����c�#3�4�
�#�
�� %�
��$�S�*B�C��.�
�
�:�,�,�R�W�W�S�\�:�;�A�A�
��
�
�9�#3�#3��I�I�b�g�g�i� �!�$#�$�$)�E���
�
�#5�6�>�>�����I�$4�$4��I�I�b�g�g�j�!�"�%$�%�%*�U���Z�Z�	�(8�(8��I�I�b�g�g�n�%�&�)(�)�).���&(�j�j��1A�1A��I�I�b�g�g�-�.�/�21�'2�27�%�$�;�J�@
�/�bA�F�"
�� ()�T�2� �$�6 �&�2 �D.�` �D2!�h�(�%!�N$�L� ) �V,�\�"�H�*"�$6�r#�J�<�:2�j&�,B�J�(�DB�H$�$�&�.�&�.�$�,�<�,K�Z2�h7� 6�p�<�^�	7�-�`]�~L7�\I!r

Youez - 2016 - github.com/yon3zu
LinuXploit