403Webshell
Server IP : 178.105.222.151  /  Your IP : 216.73.216.38
Web Server : nginx/1.28.3
System : Linux MNK 7.0.0-15-generic #15-Ubuntu SMP PREEMPT_DYNAMIC Wed Apr 22 16:06:43 UTC 2026 x86_64
User : www-data ( 33)
PHP Version : 8.5.4
Disable Function : NONE
MySQL : OFF  |  cURL : ON  |  WGET : ON  |  Perl : ON  |  Python : OFF  |  Sudo : ON  |  Pkexec : OFF
Directory :  /usr/lib/python3/dist-packages/packaging/__pycache__/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Command :


[ Back ]     

Current File : /usr/lib/python3/dist-packages/packaging/__pycache__/metadata.cpython-314.pyc
+
Z��i�����^RIHt^RIt^RIt^RIt^RIt^RIt^RIt^RI	t	^RI
t
^RIt^RIHtH
t
HtHtHtHt^RIHtHtHtHt^RIHt]P2'd^RIHt]P6!R4t]
P:RT8�d]tM!RR	]4t!R
R] 4t!!RR
]RR7t"0RUmt#0RVmt$R.0t%R/R0lt&R1R2lt'R3R4lt(/RRbR5RbR6RbRRbR7RbR8RbR R bR9RbR:R,bR;R-bR<R<bRRbR=RbR>R!bRRbR?RbR@RbRRR"R"RAR#RBR$RCR.R%R%RDR&RER'R(R(RFR)RGR*RHRRRRIR+RR/Ct)])PU4UUu/uFwrWbK		uppt+!RJRK]PXPZ4t.!RLRM]P^P`4t1RNROlt2]3!4t4.RWOt5]RW,t6]7!.RXO4t8!RPRQ]],4t9!RRRS4t:R#uuppi)Y�)�annotationsN)�Any�Callable�Generic�Literal�	TypedDict�cast)�licenses�requirements�
specifiers�utils)�version)�NormalizedLicenseExpression�Tc�H�]tRt^"t$RtR]R&R]R&RRltRR	ltR
tR#)�ExceptionGroupz�A minimal implementation of :external:exc:`ExceptionGroup` from Python 3.11.

If :external:exc:`ExceptionGroup` is already defined by Python itself,
that version is used instead.
�str�message�list[Exception]�
exceptionsc�$�V^8�dQhRRRRRR/#)�rrrr�return�None�)�formats"�4/usr/lib/python3/dist-packages/packaging/metadata.py�__annotate__�ExceptionGroup.__annotate__,s!��	)�	)�C�	)�_�	)��	)�c	��WnW nR#�N)rr)�selfrrs&&&r�__init__�ExceptionGroup.__init__,s��"�L�(�Or c��V^8�dQhRR/#)rrrr)rs"rrr0s��	W�	W�c�	Wr c	�l�VPPRVP:RVP:R2#)�(�, �))�	__class__�__name__rr)r#s&r�__repr__�ExceptionGroup.__repr__0s1���n�n�-�-�.�a����/?�r�$�/�/�AT�TU�V�Vr )rrN)	r,�
__module__�__qualname__�__firstlineno__�__doc__�__annotations__r$r-�__static_attributes__rr rrr"s%��	���#�#�	)�	W�	Wr rc�@a�]tRt^4t$RtR]R&RV3RlltRtV;t#)�InvalidMetadataz'A metadata field contains invalid data.r�fieldc�$�V^8�dQhRRRRRR/#)rr7rrrrr)rs"rr�InvalidMetadata.__annotate__:s!��"�"�c�"�C�"�D�"r c	�2<�Wn\SV`	V4R#r")r7�superr$)r#r7rr+s&&&�rr$�InvalidMetadata.__init__:s����
�
����!r �r7)	r,r/r0r1r2r3r$r4�
__classcell__�r+s@rr6r64s���1��J�;�"�"r r6c�\�]tRt^Ct$RtR]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&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%tR&#)'�RawMetadataa�A dictionary of raw core metadata.

Each field in core metadata maps to a key of this dictionary (when data is
provided). The key is lower-case and underscores are used instead of dashes
compared to the equivalent core metadata field. Any core metadata field that
can be specified multiple times or can hold multiple values in a single
field have a key with a plural name. See :class:`Metadata` whose attributes
match the keys of this dictionary.

Core metadata fields that can be specified multiple times are stored as a
list or dict depending on which is appropriate for the field. Any fields
which hold multiple values in a single field are stored as a list.

r�metadata_version�namer�	list[str]�	platforms�summary�description�keywords�	home_page�author�author_email�license�supported_platforms�download_url�classifiers�requires�provides�	obsoletes�
maintainer�maintainer_email�
requires_dist�
provides_dist�obsoletes_dist�requires_python�requires_external�dict[str, str]�project_urls�description_content_type�provides_extra�dynamic�license_expression�
license_files�import_names�import_namespacesrN)r,r/r0r1r2r3r4rr rrArACs���
� ��

�I�
�L���
�L������N��K���
�L�#�"������������O����������� � � � �"�!����������� � r rAF)�totalrJrKrGr\rNrIrLr_rSrTrBrCrXrFrrOr^r`rRrWrErQrVr]rPrUrYrMrarbr[c� �V^8�dQhRRRR/#)r�datarrrDr)rs"rrr�s��0�0�#�0�)�0r c�h�VPR4Uu.uFqP4NK	up#uupi)zCSplit a string of comma-separated keywords into a list of keywords.�,)�split�strip)re�ks& r�_parse_keywordsrk�s&��#�z�z�#��/��!�G�G�I��/�/��/s�/c� �V^8�dQhRRRR/#)rrerDrrZr)rs"rrr�s��$�$�i�$�N�$r c�|�/pVF3pRVPR44wr4pW19d\R4hWQV&K5	V#)z?Parse a list of label/URL string pairings separated by a comma.c3�@"�TFqP4x�K	R#5ir")ri)�.0�ss& r�	<genexpr>�&_parse_project_urls.<locals>.<genexpr>�s���@�,?�q�����,?�s�rgz duplicate labels in project urls)�	partition�KeyError)re�urls�pair�label�_�urls&     r�_parse_project_urlsrz�sM��
�D���0A�D�N�N�3�,?�@�
��#��=��=�>�>��U��?�B�Kr c�$�V^8�dQhRRRRRR/#)r�msgzemail.message.Message�source�bytes | strrrr)rs"rrr�s'��H�H�+�H�[�H�S�Hr c�:�\V\4'd+VP4p\V\4'gQhV#VPRR7p\V\4'gQhVP	RR4# \
dp\
R4ThRp?ii;i)zGet the body of the message.T��decode�utf8�strictzpayload in an invalid encodingN)�
isinstancer�get_payload�bytesr��UnicodeDecodeError�
ValueError)r|r}�payload�bpayload�excs&&   r�_get_payloadr��s����&�#����/�/�#���'�3�'�'�'�'����?�?�$�?�/���(�E�*�*�*�*�	H��?�?�6�8�4�4��!�	H��=�>�C�G��	H�s�,A>�>B�	B�Bzauthor-email�
classifierzdescription-content-typezdownload-urlz	home-page�import-namezimport-namespacerHzlicense-expressionzlicense-filezmaintainer-email�metadata-versionzobsoletes-dist�platform�project-urlz
provides-distzprovides-extraz
requires-distzrequires-externalzrequires-pythonzsupported-platformc�2�]tRtRtRtRtRt^tRRltRt	R#)	�RFC822Policyi+z�
This is :class:`email.policy.EmailPolicy`, but with a simple ``header_store_parse``
implementation that handles multi-line values, and some nice defaults.
TFc�$�V^8�dQhRRRRRR/#)rrCr�valuerztuple[str, str]r)rs"rr�RFC822Policy.__annotate__5s!����s��3��?�r c	�l�\V4^,pVPRRRV,,4pW3#)r�
� )�len�replace)r#rCr��sizes&&& r�header_store_parse�RFC822Policy.header_store_parse5s0���4�y�1�}���
�
�d�D�3��:�$5�6���}�r rN)
r,r/r0r1r2r��mangle_from_�max_line_lengthr�r4rr rr�r�+s"���
�D��L��O��r r�c�Ba�]tRtRtRtRV3RlltRRRlltRtV;t#)	�
RFC822Messagei<z�
This is :class:`email.message.EmailMessage` with two small changes: it defaults to
our `RFC822Policy`, and it correctly writes unicode when being called
with `bytes()`.
c��V^8�dQhRR/#)rrrr)rs"rr�RFC822Message.__annotate__Cs��0�0�$�0r c	�8<�\SV`\4R7R#)��policyN)r;r$r�)r#r+s&�rr$�RFC822Message.__init__Cs���
������/r c�$�V^8�dQhRRRRRR/#)r�unixfrom�boolr�zemail.policy.Policy | Nonerr�r)rs"rrr�Fs)��G�G��G�.H�G�	�Gr c
�D�VPWR7PR4#)zQ
Return the bytes representation of the message.

This handles unicode encoding.
r�zutf-8)�	as_string�encode)r#r�r�s&&&r�as_bytes�RFC822Message.as_bytesFs ���~�~�h�~�6�=�=�g�F�Fr r)FN)	r,r/r0r1r2r$r�r4r>r?s@rr�r�<s����0�0�G�Gr r�c� �V^8�dQhRRRR/#)rrer~rz(tuple[RawMetadata, dict[str, list[str]]]r)rs"rrrQs��r.�r.�k�r.�&N�r.r c	��/p/p\V\4'dI\PP	\P
PR7PV4pMG\PP\P
PR7PV4p\VP44EF�pVP4pVPV4;'g.p.pRpVF�p	\V	\PP\34'gQh\V	\PP4'd�.p
\PP!V	4F,wr�VP#RR4Rp
V
P'W�34K.	VP'\\PP)V
444K�VP'V	4K�	V'gWrV&EKB\*P-V4pVfWrV&EKbV\.9d\1V4^8XdV^,W&EK�VR8XdVR.8Xd.W&EK�V\29dWqV&EK�VR	8Xd(\1V4^8Xd\5V^,4W&EK�VR
8Xd\7V4W&EK�WrV&EK	\;W04pV'dkRV9d@\=RVP?R44pVPAR.4PCVV.4M$RV9dVR,P'V4MW�R&\=RV4V3# \$d	Rp
RpEL�i;i \8d
YrT&EK�i;i \DdCTPAR.4P'TPG\T\H4R
74L�i;i)a�Parse a distribution's metadata stored as email headers (e.g. from ``METADATA``).

This function returns a two-item tuple of dicts. The first dict is of
recognized fields from the core metadata specification. Fields that can be
parsed and translated into Python's built-in types are converted
appropriately. All other fields are left as-is. Fields that are allowed to
appear multiple times are stored as lists.

The second dict contains all other fields from the metadata. This includes
any unrecognized fields. It also includes any fields which are expected to
be parsed into a built-in type but were not formatted appropriately. Finally,
any fields that are expected to appear only once but are repeated are
included in this dict.

r�Tr�r��latin1Fra�rHr[rGrr�rA)%r�r�email�parser�Parserr��compat32�parsestr�BytesParser�
parsebytes�	frozenset�keys�lower�get_all�header�Header�
decode_headerr�r��append�make_header�_EMAIL_TO_RAW_MAPPING�get�_STRING_FIELDSr��_LIST_FIELDSrkrzrtr�r	�pop�
setdefault�extendr�r�r�)re�raw�unparsed�parsed�name_with_caserC�headersr��valid_encoding�h�chunks�binary�	_encoding�encoding�raw_namer��description_headers&                r�parse_emailr�QsQ�� 8:�C�%'�H��$�������$�$�E�L�L�,A�,A�$�B�K�K�D�Q�����)�)����1F�1F�)�G�R�R�SW�X��
$�F�K�K�M�2���#�#�%��
�.�.��&�,�,�"�������A��a�%�,�,�"5�"5�s�!;�<�<�<�<��!�U�\�\�0�0�1�1�:<��).���)C�)C�A�)F�%�F�*��
�
�f�h�7�$*���M�M�6�"4�5�*G����S����!9�!9�&�!A�B�C����Q��G�P�"�T�N��(�,�,�T�2����#�T�N���~�%�#�e�*��/�!�!�H�C�M���
'�E�b�T�M��C�M���
%�!��M���
#��E�
�a��+�E�!�H�5�C�M���
'�
'� 3�E� :��
�#�T�N�s3�~-��v�,�����#�%)�%�����1G�%H�"��#�#�M�2�6�=�=�'��1���(�*���'�.�.�w�7�%,�M�"��
�s�#�X�-�-��[.�/�#+��).��/��T�
'�!&���
'���
����M�2�.�5�5����j��u�&=��>�	
�
�s7�>M�,
M'�M>�M$	�#M$	�'M;�:M;�>A
O�
Oc�
�]tRtRt$RtR]R&R]R&R]R&RR/R	R
lltRRltR
RltR+RRllt	RRlt
RRltRRltRRlt
RRltRRltRRltR R!ltR"R#ltR$R%ltR&R'ltR(R)lt]tR*tR#),�
_Validatoria^Validate a metadata field.

All _process_*() methods correspond to a core metadata field. The method is
called with the field's raw value. If the raw value is valid it is returned
in its "enriched" form (e.g. ``version.Version`` for the ``Version`` field).
If the raw value is invalid, :exc:`InvalidMetadata` is raised (with a cause
as appropriate).
rrCr��_MetadataVersion�added�1.0c� �V^8�dQhRRRR/#)rr�r�rrr)rs"rr�_Validator.__annotate__s ���� ��
�	r c	��WnR#r"�r�)r#r�s&$rr$�_Validator.__init__s	��
�
r c�$�V^8�dQhRRRRRR/#)r�_owner�MetadatarCrrrr)rs"rrr�%s!��4�4�8�4�3�4�4�4r c	�6�W n\V,VnR#r")rC�_RAW_TO_EMAIL_MAPPINGr�)r#r�rCs&&&r�__set_name__�_Validator.__set_name__%s���	�-�d�3��
r c�$�V^8�dQhRRRRRR/#)r�instancer�r�ztype[Metadata]rrr)rs"rrr�)s!�� � �� �.� �Q� r c	��VPpVPPVP4pVP\9gVe#\VRVP24pV!V4pWCVP&VPVP\RV4# \dL?i;i \dL*i;i)N�	_process_r)	�__dict__�_rawr�rC�_REQUIRED_ATTRS�getattr�AttributeErrorrtr	)r#r�r��cacher��	converters&&&   r�__get__�_Validator.__get__)s����!�!���
�
�!�!�$�)�)�,���9�9��'�5�+<�
)�07��	�$�)�)��>U�0V�	�"�%�(�� �d�i�i��	��
�
�d�i�i�(��C�����"�
��
���	��	�s$�B�<B0�B-�,B-�0B>�=B>Nc�$�V^8�dQhRRRRRR/#)rr|r�causezException | Nonerr6r)rs"rrr�Ds$������/��	�r c		��\VPVPR\VP4/44pW#nV#r=)r6r��
format_map�repr�	__cause__)r#r|r�r�s&&& r�_invalid_metadata�_Validator._invalid_metadataDs:����M�M�3�>�>�7�D����4G�*H�I�
���
��
r c� �V^8�dQhRRRR/#)rr�rrr�r)rs"rrr�Ms��/�/�s�/�7G�/r c	�Z�V\9dVPV:R24h\RV4#)z  is not a valid metadata versionr�)�_VALID_METADATA_VERSIONSr�r	�r#r�s&&r�_process_metadata_version�$_Validator._process_metadata_versionMs2���0�0��(�(�E�9�4T�)U�V�V��&��.�.r c� �V^8�dQhRRRR/#�rr�rrr)rs"rrr�Ss����3��3�r c	���V'gVPR4h\P!VRR7V# \PdpTPT:R2TR7ThRp?ii;i)�{field} is a required fieldT��validate� is invalid for {field}�r�N)r�r
�canonicalize_name�InvalidName�r#r�r�s&& r�
_process_name�_Validator._process_nameSss����(�(�)F�G�G�	��#�#�E�D�9��L��� � �	��(�(��)�4�5�S�)���
��	�s�5�A'�
A"�"A'c� �V^8�dQhRRRR/#)rr�rrzversion_module.Versionr)rs"rrr�`s����c��.D�r c	���V'gVPR4h\P!V4# \PdpTPT:R2TR7ThRp?ii;i)r	rr
N)r��version_module�parse�InvalidVersionrs&& r�_process_version�_Validator._process_version`sk����(�(�)F�G�G�	�!�'�'��.�.���,�,�	��(�(��)�4�5�S�)���
��	�s�1�A#�A�A#c� �V^8�dQhRRRR/#rr)rs"rrr�js����c��c�r c
�6�RV9dVPR4hV#)z%Check the field contains no newlines.r�z{field} must be a single line)r�rs&&r�_process_summary�_Validator._process_summaryjs ���5�=��(�(�)H�I�I��r c� �V^8�dQhRRRR/#rr)rs"rrr�ps����s��s�r c	��0Rmp\PP4pWR&VP4P	4VR,P
rTWB9gWAP	49d"VP
R\V4RV:24hVPRR4pVR8wdVP
R\V424hRR	0pVPR
R4pVR8Xd(W�9d"VP
R\V4RV:24hV#)
�
text/plain�
text/markdownzcontent-typez{field} must be one of �, not �charsetzUTF-8z0{field} can only specify the UTF-8 charset, not �GFM�
CommonMark�variantz(valid Markdown variants for {field} are >r �
text/x-rstr!)	r�r�EmailMessage�get_content_typer��paramsr��listr�)	r#r��
content_typesr�content_type�
parametersr#�markdown_variantsr&s	&&       r�!_process_description_content_type�,_Validator._process_description_content_typeps$��E�
��-�-�,�,�.��"'���
�$�$�&�,�,�.��N�#�*�*�!��,��K�K�M�0Q��(�(�+�D��,?�+@��u�i�P��
��.�.��G�4���g���(�(�D�T�'�]�O�T��
�#�L�1���.�.��E�2���?�*�w�/O��(�(�<�T�BS�=T�<U�V��k�#��
��r c� �V^8�dQhRRRR/#�rr�rDrr)rs"rrr��s��
+�
+�i�
+�I�
+r c	��\\PV4F?pVR9dVPV:R24hV\9gK,VPV:R24h	\\\PV44#)rCz" is not allowed as a dynamic fieldz is not a valid dynamic field>rCrr�)�maprr�r�r�r+)r#r��
dynamic_fields&& r�_process_dynamic�_Validator._process_dynamic�s��� ����E�2�M�� G�G��,�,�$�'�'I�J����&;�;��,�,�$�'�'D�E���
3��C��	�	�5�)�*�*r c� �V^8�dQhRRRR/#)rr�rDrzlist[utils.NormalizedName]r)rs"rrr��s��
$�
$��
$�
$�
$r c	���.pVF*pVP\P!VRR74K,	V# \PdpTP	X:R2TR7ThRp?ii;i)Tr
rr
N)r�r
rrr�)r#r��normalized_namesrCr�s&&   r�_process_provides_extra�"_Validator._process_provides_extra�s|����	$��� �'�'��(?�(?��t�(T�U��$�#��� � �	��(�(��(�3�4�C�)���
��	�s�06�A(�A#�#A(c� �V^8�dQhRRRR/#)rr�rrzspecifiers.SpecifierSetr)rs"rrr��s����c��6M�r c	��\P!V4# \PdpTPT:R2TR7ThRp?ii;i�rr
N)r�SpecifierSet�InvalidSpecifierr�rs&& r�_process_requires_python�#_Validator._process_requires_python�sV��	��*�*�5�1�1���*�*�	��(�(��)�4�5�S�)���
��	�s��A
�A�A
c� �V^8�dQhRRRR/#)rr�rDrzlist[requirements.Requirement]r)rs"rrr��s��
�
��
�
(�
r c	���.pVF(pVP\P!V44K*	V# \PdpTP	X:R2TR7ThRp?ii;ir@)r�r�Requirement�InvalidRequirementr�)r#r��reqs�reqr�s&&   r�_process_requires_dist�!_Validator._process_requires_dist�sv����	������L�4�4�S�9�:���K���.�.�	��(�(��'�2�3�3�)���
��	�s�.4�A&�	A!�!A&c� �V^8�dQhRRRR/#)rr�rrrr)rs"rrr��s������9T�r c	��\P!V4# \dpTPT:R2TR7ThRp?ii;ir@)r
�canonicalize_license_expressionr�r�rs&& r�_process_license_expression�&_Validator._process_license_expression�sP��	��;�;�E�B�B���	��(�(��)�4�5�S�)���
��	�s��A�;�Ac� �V^8�dQhRRRR/#r3r)rs"rrr��s����I��)�r c	��.pVF�pRV9dVPV:R24hRV9dVPV:R24h\P!V4P4'g+\P!V4P4'dVPV:R24h\P!V4P4V8wdVPV:R24hVP
V4K�	V#)z..zD is invalid for {field}, parent directory indicators are not allowed�*z/ is invalid for {field}, paths must be resolvedz/ is invalid for {field}, paths must be relativez5 is invalid for {field}, paths must use '/' delimiter)r��pathlib�
PurePosixPath�is_absolute�PureWindowsPath�as_posixr�)r#r��paths�paths&&  r�_process_license_files�!_Validator._process_license_files�s�����D��t�|��,�,��h�B�B����d�{��,�,��h�O�P����%�%�d�+�7�7�9�9��*�*�4�0�<�<�>�>��,�,��h�O�P����&�&�t�,�5�5�7�4�?��,�,��h�U�V���
�L�L���+�,�r c� �V^8�dQhRRRR/#r3r)rs"rrr��s����9���r c	��VF�pVPR4wr4pVP4pVPR4FgpVP4'gVP	V:RV:R24h\
P!V4'gKPVP	V:RV:R24h	V'gK�VP4R8wgK�VP	V:R24h	V#)�;�.z is invalid for {field}; z is not a valid identifierz
 is a keyword�privatez; is invalid for {field}; the only valid option is 'private')rs�rstriprh�isidentifierr��keyword�	iskeyword�lstrip)r#r��import_namerC�	semicolonrb�
identifiers&&     r�_process_import_names� _Validator._process_import_names�s��� �K�'2�'<�'<�S�'A�$�D�W��;�;�=�D�"�j�j��o�
�!�.�.�0�0��0�0��(�"=�%�.�(B�D����&�&�z�2�2��0�0��(�"=�%�.�
�7���.��y�W�^�^�-��:��,�,�"�o�&9�9���!�&�r )r�rCr�r")r,r/r0r1r2r3r$r�r�r�rrrrr0r7r<rCrKrPr\rk�_process_import_namespacesr4rr rr�r�s|����I��M����#(��4� �6�/�����@
+�
$��
���4�,"7�r r�c��]tRtRt$RtR]R&]RR/RRll4t]RR/R	R
ll4t]	!4t
R]R&]	!4tR
]R&]	!4tR]R&]	!RR7t
R]R&]	!4tR]R&]	!RR7tR]R&]	!4tR]R&]	!4tR]R&]	!RR7tR]R&]	!4tR]R&]	!4tR]R&]	!RR7tR]R&]	!4tR]R &]	!4tR]R!&]	!R"R7tR]R#&]	!R"R7tR]R$&]	!4tR]R%&]	!R&R7tR']R(&]	!R&R7tR]R)&]	!RR7tR]R*&]	!R"R7tR+]R,&]	!R"R7tR-]R.&]	!R"R7t R]R/&]	!R"R7t!R0]R1&]	!RR7t"R2]R3&]	!R"R7t#R]R4&]	!R"R7t$R]R5&]	!R6R7t%R]R7&]	!R6R7t&R]R8&]	!RR7t'R]R9&]	!RR7t(R]R:&]	!RR7t)R]R;&R<R=lt*R>R?lt+R@t,RA#)Br�i�a6Representation of distribution metadata.

Compared to :class:`RawMetadata`, this class provides objects representing
metadata fields instead of only using built-in types. Any invalid metadata
will cause :exc:`InvalidMetadata` to be raised (with a
:py:attr:`~BaseException.__cause__` attribute as appropriate).
rAr�rTc�$�V^8�dQhRRRRRR/#)rrerArr�rr�r)rs"rr�Metadata.__annotate__	s!��6�6�K�6�d�6�h�6r c	
�:�V!4pVP4VnV'd�.pVPp\P	V4p\VP4\,pVR0,pVF�p	V'doVPV	,Pp
\P	T
4pTX8�d5\T	,p
\T
T
RT
RT24pTP
T4Kz\W94K�	V'd
\RV4hV# \
dpTP
T4RpRp?L�Rp?ii;i \d&\T	RT	:24pTP
T4K�i;i \
dpTP
T4Rp?EK Rp?ii;i)z�Create an instance from :class:`RawMetadata`.

If *validate* is true, all metadata will be validated. All exceptions
related to validation will be gathered and raised as an :class:`ExceptionGroup`.
NrB�unrecognized field: z  introduced in metadata version r"zinvalid metadata)�copyr�rBr�indexr6r�r�r�r�r�rtr�r�r)�clsrer�insrrB�metadata_age�metadata_version_exc�fields_to_check�key�field_metadata_versionr��	field_ager7s&&$           r�from_raw�Metadata.from_raws����e���9�9�;����*,�J�
(�#&�#7�#7� �7�=�=�>N�O��(����1�O�C�O�� 2�3�3�O�&��+�'�%�58�\�\�#�5F�5L�5L�2�
%=�$B�$B�2�%�	�%�|�3�$9�#�$>�E�"1� %�#(�'�)I�#9�":�&�AQ�@R�!T�#�C�
'�-�-�c�2�$��C�%�/'�6�$�%7��D�D��
��Q#�
(��!�!�"6�7�#'� ��
(��" (�%�"1�#�9M�c�W�7U�"V�C�&�-�-�c�2�$�%��"'�+��%�%�c�*�*��+�sZ�!D�9E2�D?�AE2�/E2�D<�D7�7D<�?,E/�+E2�.E/�/E2�2F�=F�Fc�$�V^8�dQhRRRRRR/#)rrer~rr�rr�r)rs"rrrpBs!����k�����r c
�H�\V4wr4V'dR.pVF5pV\9dV:R2pMRV:2pVP\Wg44K7	V'd
\	RV4hVPW2R7# \dp\	RTP4RhRp?ii;i)z�Parse metadata from email headers.

If *validate* is true, the metadata will be validated. All exceptions
related to validation will be gathered and raised as an :class:`ExceptionGroup`.
z has invalid datarrr�r
zinvalid or unparsed metadataN)r�r�r�r6rr}r)	rurerr�r�r�unparsed_keyr�	exc_groups	&&$      r�
from_email�Metadata.from_emailAs���$�D�)�
���*,�J� (���#8�8�!-� 0�0A�B�G� 4�\�4D�E�G��!�!�/�,�"H�I�!)��$�Z��<�<�	��<�<��<�7�7���	� �.�	�0D�0D���
��	�s�(A:�:B!�B�B!z_Validator[_MetadataVersion]rBz_Validator[str]rCz"_Validator[version_module.Version]r�2.2r�z_Validator[list[str] | None]r^rE�1.1rMz_Validator[str | None]rFrG�2.1r\rHrIrNrJrK�1.2rSrTrL�2.4z._Validator[NormalizedLicenseExpression | None]r_r`rOz1_Validator[list[requirements.Requirement] | None]rUz*_Validator[specifiers.SpecifierSet | None]rXrYz!_Validator[dict[str, str] | None]r[z-_Validator[list[utils.NormalizedName] | None]r]rVrW�2.5rarbrPrQrRc��V^8�dQhRR/#)rrr�r)rs"rrrp�s����=�r c
�<�\4pVPV4V#)�-
Return an RFC822 message with the metadata.
)r��_write_metadata)r#rs& r�	as_rfc822�Metadata.as_rfc822�s�� �/�����W�%��r c� �V^8�dQhRRRR/#)rrr�rrr)rs"rrrp�s��2�2�}�2��2r c
�`�VPPP4F�wr#\V\4'gKVR8wgK&\W4p\V,pVfKDVR8Xd%VP4FwrgVRV2W&K	KoVR8XdRPV4W&K�VR8XdV.8XdRW&K�\V\4'dVFp\V4W&K	K�\V4W&K�	VPeVPVP4R#R#)	r�rGNr�r)rHrgr�r�)r+r��itemsr�r�r�r��joinr+rrG�set_payload)	r#rrC�	validatorr��
email_namerwry�items	&&       rr��Metadata._write_metadata�s�� $�~�~�6�6�<�<�>�O�D��)�Z�0�0�T�]�5J���+��2�4�8�
��$�!�]�2�*/�+�+�-�J�E�5:�G�2�c�U�2C�G�/�+8�#�z�1�.1�h�h�u�o��+�#�}�4��"��.0��+�#�E�4�0�0�$)�D�25�d�)�G�/�%*�/2�%�j��+�! ?�&���'����� 0� 0�1�(r rN)-r,r/r0r1r2r3�classmethodr}r�r�rBrCrr^rErMrFrGr\rHrIrNrJrKrSrTrLr_r`rOrUrXrYr[r]rVrWrarbrPrQrRr�r�r4rr rr�r��s�������6�T�6��6�p��t����66@�\��2�A�<�'�L�D�/�(��3=�,�G�
/�>�:�,6��-�G�
)��D�.8�l�I�+�:�0�8B��8O��5�O�:�&0�l�G�
#�2�R�*4�,�K�'�6�3�7A��7N��4�N�L�-7�\�H�*�9�0�(2��I�%�4�1�+5�E�+B�L�(�B�4�%/�\�F�"�1�.�+5�<�L�(�7�4�)3�%�)@�J�&�@�2�/9��/F��,�F�8�&0�l�G�
#�2�/�IS��J��F��;�2<�5�2I�M�/�I�4�0:��0G�K�-�G�2�GQ��H�M�D��6�BL��C�O�?��8�7A�u�6M��3�M�9�6@�u�6M�L�3�M�3�EO��E�N�A��7�2<�5�2I�M�/�I�5�3=�E�3J�N�0�J�6�1;�%�1H�L�.�H�3�6@�u�6M��3�M�8�-7�e�-D�H�*�D�#�-7�e�-D�H�*�D�#�.8�u�.E�I�+�E�$��2�2r r�)��>rCrJrLrFrrIrSrGrKrNrXrTrBr_r\>r^rQrPrRrErOrar`rVrUrWr]rbrYrM)r�r�r�r�r�z2.3r�r�)rBrCr);�
__future__r�email.feedparserr��email.header�
email.message�email.parser�email.policyrerU�sys�typingrrrrrr	r�r
rrr
rr�
TYPE_CHECKINGr�TypeVarr�version_infor�	Exceptionr�r6rAr�r��_DICT_FIELDSrkrzr�r�r�r�r��EmailPolicyr�rr(r�r��object�
_NOT_FOUNDrr�r�r�r�r�)r�r�s00r�<module>r�s���"��������
�
���8�7�'�	����5�
�N�N�3������w��#�N�W��W�$"�j�"�I!�)�5�I!�\��$��&���
0�
$�NH�>!��h�!��N�!��-�!��=�	!�
� :�!��N�
!��y�!���!��>�!��+�!��
�!��y�!��.�!��O�!��,�!� �*�!!�"�*�#!�$�F����&����>��
��_��&��
��_��,��(�
�y��/�
�y�A!��D7L�6Q�6Q�6S�T�6S�
����6S�T��
�5�<�<�+�+�
�"G�E�M�M�.�.�G�*r.�j�X�
�T���Q�R���C�D��j7����j7�ZU2�U2��mUs�3
G

Youez - 2016 - github.com/yon3zu
LinuXploit