Your IP : 3.15.2.239


Current Path : /opt/alt/python312/lib64/python3.12/urllib/__pycache__/
Upload File :
Current File : //opt/alt/python312/lib64/python3.12/urllib/__pycache__/parse.cpython-312.opt-2.pyc

�

�Q�f����	ddlmZddlZddlZddlZddlZddlZddlZgd�Zgd�Z	gd�Z
gd�Zgd�Zgd�Z
gd	�Zd
ZdZgd�Zd
�ZdZdZd�Zeefd�Zeefd�Zd�ZGd�de�ZGd�de�ZGd�de�ZGd�dee�ZGd�dee�Zedd�Zed d!�Z ed"d#�Z!d$e_"d%ejF_"d&ejH_"d'e _"d(e jJ_"d)e jL_"d*e jN_"d+e jP_"d,e jH_"d-e!_"e jJjDe!jJ_"e jLjDe!jL_"e jNjDe!jN_"d.e!jR_"e jPjDe!jP_"e jHjDe!jH_"eZ*Gd/�dee�Z+Gd0�d e e�Z,Gd1�d"e!e�Z-Gd2�d3ee�Z.Gd4�d5e e�Z/Gd6�d7e!e�Z0d8�Z1e1�[1drd;�Z2d<�Z3dsd=�Z4d>�Z5d?�Z6ejnd:�@�drdA��Z8dB�Z9dC�Z:dtdD�Z;dE�Z<dFZ=da>dG�Z?dHe@eAzeBzdIe@eAzfdJ�ZCej�dK�ZEdL�ZFdudM�ZG		dvdO�ZH		dvdP�ZIdudQ�ZJeKdR�ZLe@eL�ZMdS�ZNGdT�dUeO�ZPdwdV�ZQdxdW�ZRejndX��ZSdydY�ZTdNd9ddeRfdZ�ZUd[�ZVd\�ZWd]�ZXd^�ZYdaZd_�Z[d`�Z\da]da�Z^db�Z_dc�Z`dd�Zade�Zbdf�Zcdaddg�Zedzdh�Zfdzdi�Zgdj�Zhdk�Zidl�Zjdm�Zkdn�Zldo�Zmdp�Zndq�Zoy){�)�
namedtupleN)�urlparse�
urlunparse�urljoin�	urldefrag�urlsplit�
urlunsplit�	urlencode�parse_qs�	parse_qsl�quote�
quote_plus�quote_from_bytes�unquote�unquote_plus�unquote_to_bytes�DefragResult�ParseResult�SplitResult�DefragResultBytes�ParseResultBytes�SplitResultBytes)��ftp�http�gopher�nntp�imap�wais�file�https�shttp�mms�prospero�rtsp�rtsps�rtspu�sftp�svn�svn+ssh�ws�wss)rrrrr�telnetrrr r#r!r"�snewsr$r%r&r'�rsyncr)r*r(�nfs�gitzgit+sshr+r,z
itms-services)rr�hdlr$rrr!r"r%r&r'�sip�sipsr#r(�tel)
rr2�mailto�newsr-rrr.r3r4)
rrrrr!r"r#rr%r&r'r3r4)
rrr2rrr7rrr!r"r.r r$zAabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+-.z!	

 )�	�
�
c�V�	tj�tj�y�N)r�cache_clear�_byte_quoter_factory���3/opt/alt/python312/lib64/python3.12/urllib/parse.py�clear_cacherB^s��N������$�$�&r@�ascii�strictc��|Sr<r?)�objs rA�_nooprGls���Jr@c�&�|j||�Sr<��encode)rF�encoding�errorss   rA�_encode_resultrMos���:�:�h��'�'r@c�0���t��fd�|D��S)Nc3�J�K�|]}|r|j���nd���y�w)rN��decode��.0�xrKrLs  ��rA�	<genexpr>z_decode_args.<locals>.<genexpr>us$�����G�$�Q�q����(�F�+�b�8�$�s� #)�tuple)�argsrKrLs ``rA�_decode_argsrXss����G�$�G�G�Gr@c��t|dt�}|ddD]#}|s�t|t�|k7s�td��|r
|tfzSt	|�t
fzS)Nr�z$Cannot mix str and non-str arguments)�
isinstance�str�	TypeErrorrGrXrM)rW�	str_input�args   rA�_coerce_argsr`wsg���4��7�C�(�I��A�B�x���:�c�3�'�9�4��B�C�C�	�
��u�h������� 1�1�1r@c��eZdZ	dZdd�Zy)�_ResultMixinStrr?c�8���|j��fd�|D��S)Nc3�B�K�|]}|j������y�wr<rIrRs  ��rArUz)_ResultMixinStr.encode.<locals>.<genexpr>�������*T�t�!�1�8�8�H�f�+E�t���)�_encoded_counterpart��selfrKrLs ``rArJz_ResultMixinStr.encode�����(�t�(�(�*T�t�*T�U�Ur@N�rCrD)�__name__�
__module__�__qualname__�	__slots__rJr?r@rArbrb����H��I�Vr@rbc��eZdZ	dZdd�Zy)�_ResultMixinBytesr?c�8���|j��fd�|D��S)Nc3�B�K�|]}|j������y�wr<rPrRs  ��rArUz+_ResultMixinBytes.decode.<locals>.<genexpr>�rerf)�_decoded_counterpartrhs ``rArQz_ResultMixinBytes.decode�rjr@Nrk)rlrmrnrorQr?r@rArrrr�rpr@rrc�v�eZdZ	dZed��Zed��Zed��Zed��Ze	e
j�Zy)�_NetlocResultMixinBaser?c� �|jdS)Nr��	_userinfo�ris rA�usernamez_NetlocResultMixinBase.username�����~�~�a� � r@c� �|jdS)NrZryr{s rA�passwordz_NetlocResultMixinBase.password�r}r@c��|jd}|syt|t�rdnd}|j|�\}}}|j	�|z|zS)Nr�%�%)�	_hostinfor[r\�	partition�lower)ri�hostname�	separator�percent�zones     rAr�z_NetlocResultMixinBase.hostname�sV���>�>�!�$����&�h��4�C�$�	�"*�"4�"4�Y�"?���'�4��~�~��'�)�D�0�0r@c���|jd}|�\|j�r|j�rt|�}nt	d|����d|cxkrdkst	d��t	d��|S)NrZz+Port could not be cast to integer value as ri��zPort out of range 0-65535)r��isdigit�isascii�int�
ValueError)ri�ports  rAr�z_NetlocResultMixinBase.port�sr���~�~�a� �����|�|�~�$�,�,�.��4�y�� �#N�t�h�!W�X�X���&��&� �!<�=�=�'� �!<�=�=��r@N)
rlrmrnro�propertyr|rr�r��classmethod�types�GenericAlias�__class_getitem__r?r@rArwrw�sk��R��I�
�!��!��!��!��1��1��	��	�$�E�$6�$6�7�r@rwc�0�eZdZdZed��Zed��Zy)�_NetlocResultMixinStrr?c��|j}|jd�\}}}|r|jd�\}}}|sd}||fSdx}}||fS)N�@�:��netloc�
rpartitionr��rir��userinfo�	have_info�hostinfor|�
have_passwordrs        rArzz_NetlocResultMixinStr._userinfo�sh������(.�(9�(9�#�(>�%��)�X��08�0B�0B�3�0G�-�H�m�X� �����!�!�#'�&�H�x���!�!r@c��|j}|jd�\}}}|jd�\}}}|r+|jd�\}}}|jd�\}}}n|jd�\}}}|sd}||fS)Nr��[�]r�r��rir��_r��have_open_br�	bracketedr�r�s        rAr�z_NetlocResultMixinStr._hostinfo�s��������*�*�3�/���1�h�%-�%7�%7��%<�"��<��� )� 3� 3�C� 8��H�a������,�J�A�q�$� (� 2� 2�3� 7��H�a����D���~�r@N�rlrmrnror�rzr�r?r@rAr�r���-���I�
�	"��	"����r@r�c�0�eZdZdZed��Zed��Zy)�_NetlocResultMixinBytesr?c��|j}|jd�\}}}|r|jd�\}}}|sd}||fSdx}}||fS)N�@�:r�r�s        rArzz!_NetlocResultMixinBytes._userinfo�sh������(.�(9�(9�$�(?�%��)�X��08�0B�0B�4�0H�-�H�m�X� �����!�!�#'�&�H�x���!�!r@c��|j}|jd�\}}}|jd�\}}}|r+|jd�\}}}|jd�\}}}n|jd�\}}}|sd}||fS)Nr��[�]r�r�r�s        rAr�z!_NetlocResultMixinBytes._hostinfo�s��������*�*�4�0���1�h�%-�%7�%7��%=�"��<��� )� 3� 3�D� 9��H�a������-�J�A�q�$� (� 2� 2�4� 8��H�a����D���~�r@Nr�r?r@rAr�r��r�r@r�rzurl fragmentrz!scheme netloc path query fragmentrz(scheme netloc path params query fragmentz�
DefragResult(url, fragment)

A 2-tuple that contains the url without fragment identifier and the fragment
identifier as a separate argument.
z$The URL with no fragment identifier.z�
Fragment identifier separated from URL, that allows indirect identification of a
secondary resource by reference to a primary resource and additional identifying
information.
z�
SplitResult(scheme, netloc, path, query, fragment)

A 5-tuple that contains the different components of a URL. Similar to
ParseResult, but does not split params.
z%Specifies URL scheme for the request.z0
Network location where the request is made to.
z@
The hierarchical path, such as the path to a file to download.
z�
The query component, that contains non-hierarchical data, that along with data
in path component, identifies a resource in the scope of URI's scheme and
network location.
z�
Fragment identifier, that allows indirect identification of a secondary resource
by reference to a primary resource and additional identifying information.
zq
ParseResult(scheme, netloc, path, params, query, fragment)

A 6-tuple that contains components of a parsed URL.
z�
Parameters for last path element used to dereference the URI in order to provide
access to perform some operation on the resource.
c��eZdZdZd�Zy)rr?c�j�|jr|jdz|jzS|jS�N�#��fragment�urlr{s rA�geturlzDefragResult.geturlEs)���=�=��8�8�c�>�D�M�M�1�1��8�8�Or@N�rlrmrnror�r?r@rArrC����I�r@c��eZdZdZd�Zy)rr?c��t|�Sr<�r	r{s rAr�zSplitResult.geturlM�
���$��r@Nr�r?r@rArrK����I� r@c��eZdZdZd�Zy)rr?c��t|�Sr<�rr{s rAr�zParseResult.geturlRr�r@Nr�r?r@rArrPr�r@c��eZdZdZd�Zy)rr?c�j�|jr|jdz|jzS|jS)N�#r�r{s rAr�zDefragResultBytes.geturlXs)���=�=��8�8�d�?�T�]�]�2�2��8�8�Or@Nr�r?r@rArrVr�r@rc��eZdZdZd�Zy)rr?c��t|�Sr<r�r{s rAr�zSplitResultBytes.geturl`r�r@Nr�r?r@rArr^r�r@rc��eZdZdZd�Zy)rr?c��t|�Sr<r�r{s rAr�zParseResultBytes.geturler�r@Nr�r?r@rArrcr�r@rc�z�ttfttftt
ff}|D]\}}||_||_�yr<)rrrrrrrgru)�
_result_pairs�_decoded�_encodeds   rA�_fix_result_transcodingr�isE��	�(�)�	�&�'�	�&�'��M�
,���(�(0��%�(0��%�,r@rTc��	t||�\}}}t|||�}|\}}}}}|tvrd|vrt|�\}}nd}t	||||||�}	||	�S)N�;r)r`r�uses_params�_splitparamsr)
r��scheme�allow_fragments�_coerce_result�splitresultr��queryr��params�results
          rArrvsz���&#/�s�F�";��C����3���8�K�+6�(�F�F�C���
������"�3�'���V���
����f�e�X�
F�F��&�!�!r@c��d|vr*|jd|jd��}|dkr|dfS|jd�}|d|||dzdfS)N�/r�rrrZ)�find�rfind)r��is  rAr�r��sY��
�s�{��H�H�S�#�)�)�C�.�)���q�5���7�N��H�H�S�M���r��7�C��!���I��r@c��t|�}dD]&}|j||�}|dk\s�t||�}�(|||||dfS)Nz/?#r)�lenr��min)r��start�delim�c�wdelims     rA�_splitnetlocr��sR����H�E�
�����!�U�#���Q�;���v�&�E���u�U��S���[�(�(r@c�0�|r|j�ryddl}|jdd�}|jdd�}|jdd�}|jdd�}|jd|�}||k(rydD]}||vs�t	d	|zd
zdz��y)Nrr�rr�r��?�NFKCz/?#@:znetloc 'z' contains invalid z#characters under NFKC normalization)r��unicodedata�replace�	normalizer�)r�r��n�netloc2r�s     rA�_checknetlocr��s����V�^�^�%������s�B��A�	�	�	�#�r��A�	�	�	�#�r��A�	�	�	�#�r��A��#�#�F�A�.�G��G�|��
����<��Z�&�0�3H�H�B�C�D�
D�r@c���|jd�r"tjd|�std��yt	j
|�}t
|tj�rtd��y)N�vz\Av[a-fA-F0-9]+\..+\ZzIPvFuture address is invalidz%An IPv4 address cannot be in brackets)�
startswith�re�matchr��	ipaddress�
ip_addressr[�IPv4Address)r��ips  rA�_check_bracketed_hostr��sc�����3���x�x�0�(�;��;�=�=�<��
!�
!�(�
+���b�)�/�/�0��D�F�F�1r@)�typedc�P�	t||�\}}}|jt�}|jt�}tD]&}|j|d�}|j|d�}�(t
|�}dx}x}}|jd�}|dkDrU|dj�rB|dj�r/|d|D]}	|	tvs�n|d|j�||dzd}}|dddk(rct|d�\}}d|vrd|vsd|vrd|vrtd	��d|vr5d|vr1|jd�djd�d}
t|
�|rd
|vr|j!d
d�\}}d|vr|j!dd�\}}t#|�t%|||||�}||�S)Nrr�rrZ��//r�r�zInvalid IPv6 URLr�r�)r`�lstrip�_WHATWG_C0_CONTROL_OR_SPACE�strip�_UNSAFE_URL_BYTES_TO_REMOVEr��boolr�r��isalpha�scheme_charsr�r�r�r�r��splitr�r)r�r�r�r��br�r�r�r�r��bracketed_hostr�s            rArr�s����(#/�s�F�";��C����*�*�0�
1�C�
�\�\�5�
6�F�
(���k�k�!�R� ������2�&��)��?�+�O� "�"�F�"�U�X�����
�A��1�u��Q����!�c�!�f�n�n�&6��R�a��A���$����b�q�'�-�-�/�3�q��s�t�9�C�F�
�2�A�w�$��"�3��*����
�F�]�s�&�0����3�f�#4��/�0�0��&�=�S�F�]�#�-�-�c�2�1�5�?�?��D�Q�G�N�!�.�1��3�#�:��	�	�#�q�)�
��X�
�c�z��Y�Y�s�A�&�
��U�����F�F�C���9�A��!��r@c	�b�	t|�\}}}}}}}|r|�d|��}|t|||||f��S)Nr�)r`r	)�
componentsr�r�r�r�r�r�r�s        rArr�sM��5�
3?�
�2K�A�F�F�C����.�
��f�%���*�f�f�c�5�(�%K�L�M�Mr@c���	t|�\}}}}}}|r|r
|dddk7rd|z}d|z|z}n'|dddk(rd|z}n|r|tvr|r|dddk(rd|z}|r|dz|z}|r|dz|z}|r|dz|z}||�S)NrZr�r�r�r�r�r�)r`�uses_netloc)rr�r�r�r�r�r�s       rAr	r	s���?�+7�
�*C�9�F�F�C���.�
��3�r��7�c�>��s��3��V�m�c�!��	�R�a��D���S�j��	�F�k�)�3�#�b�q�'�S�.��S�j��
��s�l�S� ����C�i�%�����C�i�(�"���#��r@c
��	|s|S|s|St||�\}}}t|d|�\}}}}}}	t|||�\}
}}}
}}|
|k7s|
tvr||�S|
tvr|r|t	|
|||
||f��S|}|s!|
s|}|}
|s|}|t	|
|||
||f��S|jd�}|ddk7r|d=|dddk(r|jd�}n&||jd�z}t
d|dd�|ddg}|D]0}|dk(r	|j��|dk(r� |j|��2|ddvr|jd�|t	|
|dj|�xsd|
||f��S#t$rY��wxYw)Nrr����rZ�..�.)rr)r`r�
uses_relativer
rr�filter�pop�
IndexError�append�join)�baser�r�r��bscheme�bnetloc�bpath�bparams�bquery�	bfragmentr�r��pathr�r�r��
base_parts�segments�
resolved_path�segs                    rArrs��%���
���� ,�T�3� 7��D�#�~��T�2��/�8�G�W�e�W�f�i�
�S�'�?�3�2�F�F�D�&�%�����F�-�7��c�"�"�
����!�*�f�f�d�.4�e�X�.G�#H�I�
I�����������E��j�&�&�$�*0�%��*C�D�E�	E����S�!�J��"�~���
�r�N��B�Q�x�3���:�:�c�?����
�
�3��/�� ��h�q��n�5���2���M����$�;�
��!�!�#�
�C�Z��� � ��%����|�{�"�	���R� ��*�f�f�c�h�h��7�7��v�u�h�&8�9�:�:���
��
�s�E2�2	E>�=E>c��	t|�\}}d|vr$t|�\}}}}}}t|||||df�}nd}|}|t||��S)Nr�r)r`rrr)	r�r��sr��p�a�q�frag�defrags	         rArrdsh���'�s�+��C��
�c�z�&�s�m���1�a��A�t��Q��1�a��B�/�0�������,�v�t�4�5�5r@�0123456789ABCDEFabcdefc�,�	tt|��Sr<)�bytes�
_unquote_impl)�strings rArrws��6���v�&�'�'r@r/�returnc
��|s
|jyt|t�r|jd�}|jd�}t	|�dk(r|St|d�}|j}t�ItD��cic]7}tD],}||zj�tj||z���.�9c}}a|ddD] }	|t|dd�||dd��"|Scc}}w#t$r|d�||�Y�FwxYw)Nr@�utf-8r�rZrr�)rr[r\rJr��	bytearray�extend�
_hextobyte�_hexdigr-�fromhex�KeyError)r/�bits�resrr'r�items       rAr.r.{s
��������&�#�����w�'���<�<���D�
�4�y�A�~��
�
�D��G�
�C�
�Z�Z�F���&�9�&�!��1��1�u�n�n�&��
�
�a�!�e�(<�<�07�'�&�9�
��Q�R���	��:�d�2�A�h�'�(��4���8����J��9���	��4�L��4�L�	�s�;<C%�C+�+D�Dz([-]+)c#��K�d}tj|�D]>}|j�\}}|||��t|d�j	||���|}�@||d��y�w)NrrZ)�_asciire�finditer�spanr.rQ)r/rKrL�previous_match_end�ascii_matchr��ends       rA�_generate_unquoted_partsrC�st�������(�(��0�� �%�%�'�
��s��'��.�.��K��N�+�2�2�8�V�D�D� ��1��#�$�
%�%�s�A!A#c���	t|t�rt|�j||�Sd|vr|j|S|�d}|�d}djt
|||��S)Nr�r2r�r)r[r-r.rQrrrC�r/rKrLs   rArr�sm����&�%� ��V�$�+�+�H�f�=�=�
�&������
�����
�~���
�7�7�+�F�H�f�E�F�Fr@Fc	��	i}t|||||||��}|D]$\}	}
|	|vr||	j|
��|
g||	<�&|S)N)rKrL�max_num_fieldsr�)rr)�qs�keep_blank_values�strict_parsingrKrLrGr��
parsed_result�pairs�name�values           rArr�si���8�M��b�+�^�'��%3�y�
J�E����e��=� ��$��&�&�u�-�#(�'�M�$��	�
�r@c�Z���	|rt|ttf�std��t|t�r%t|t�st|d�}d}��fd�}n9|sgStt	|��}t|t�rt|d�}d}d�}|sgS|�$d|j|�z}	||	krtd��g}
|j
|�D]V}|s|s�|j|�\}}
}|
s|rtd	|����|s|s�4||�}||�}|
j||f��X|
S)
Nz*Separator must be of type string or bytes.rC�=c� ��t|����S)N)rKrL)r)r%rKrLs ��rA�_unquotezparse_qsl.<locals>._unquote	s�����H�V�D�Dr@�=c�8�t|jdd��S)N�+� )rr�)r%s rArRzparse_qsl.<locals>._unquotes��#�A�I�I�d�D�$9�:�:r@rZzMax number of fields exceededzbad query field: )	r[r\r-r��
memoryview�countrr�r)rHrIrJrKrLrGr��eqrR�
num_fields�r�
name_valuerM�has_eqrNs   ``          rArr�s:����8�J�y�3��,�?��E�F�F��"�c���)�S�)��I�w�/�I�
��	E���I��:�b�>�
"���i��%��i��1�I�
��	;���	�
�!�����)�,�,�
��J�&��<�=�=�
�A��h�h�y�)�
���",�"6�"6�r�":��D�&�%��n� �*�!F�G�G��)���~�� �������$���'�*�
�Hr@c�B�	|jdd�}t|||�S)N�+� )r�rrEs   rArr.s(���
�^�^�C��
%�F��6�8�V�,�,r@sBABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_.-~c�z�|dk(r"tjdtd��tSt	dt
�d|����)N�QuoterzoDeprecated in 3.11. urllib.parse.Quoter will be removed in Python 3.14. It was not intended to be a public API.r���
stacklevelzmodule z has no attribute )�warnings�warn�DeprecationWarning�_Quoter�AttributeErrorrl)rMs rA�__getattr__rj=sC���x���
�
�@�)�Q�	8���
�7�8�,�.@���I�
J�Jr@c� �eZdZ	d�Zd�Zd�Zy)rhc�:�	tj|�|_yr<)�_ALWAYS_SAFE�union�safe)riros  rA�__init__z_Quoter.__init__Ns��!� �&�&�t�,��	r@c� �dt|��d�S)Nz<Quoter �>)�dictr{s rA�__repr__z_Quoter.__repr__Rs���$�t�*��q�)�)r@c�d�||jvrt|�ndj|�}|||<|S)Nz%{:02X})ro�chr�format)rirr:s   rA�__missing__z_Quoter.__missing__Us0���T�Y�Y��c�!�f�I�,<�,<�Q�,?����Q���
r@N)rlrmrnrprtrxr?r@rArhrhFs���-�*�r@rhc��	t|t�r|s|S|�d}|�d}|j||�}n|�td��|�td��t	||�S)Nr2rDz,quote() doesn't support 'encoding' for bytesz*quote() doesn't support 'errors' for bytes)r[r\rJr]r)r/rorKrLs    rAr
r
[sr��%�L�&�#����M����H��>��F����x��0�����J�K�K����H�I�I��F�D�)�)r@c���	t|t�rd|vst|t�rd|vrt||||�St|t�rd}nd}t|||z||�}|j	dd�S)Nr`rVr_)r[r\r-r
r�)r/rorKrL�spaces     rArr�su���
�F�C�	 �S��%6�	�F�E�	"�t�6�'9��V�T�8�V�4�4��$�������
�6�4�%�<��6�
:�F��>�>�#�s�#�#r@c�,�t|�jSr<)rh�__getitem__)ros rAr>r>�s���4�=�$�$�$r@c�^�	t|ttf�std��|syt|t�r|jdd�}nt|D�cgc]
}|dks�	|��c}�}|j
t|z�s|j�St|�}t|�x}dkrdjt||��Stj|�}td||�D�cgc]#}djt|||||z����%}}dj|�Scc}wcc}w)Nz!quote_from_bytes() expected bytesrrC�ignore�i@
r)r[r-r3r]r\rJ�rstrip�_ALWAYS_SAFE_BYTESrQr>r�r�map�math�isqrt�range)�bsror��quoter�bs_len�
chunk_sizer��chunkss        rArr�s����b�5�)�,�-��;�<�<�
���$����{�{�7�H�-����1��A��S��a��1�2��
�9�9�'�$�.�/��y�y�{��
!�$�
'�F��b�'���W�$��w�w�s�6�2��'�'��Z�Z��'�
� ��F�J�7�9�7�a��'�'�#�f�b��1�Z�<�&8�9�:�7�	�9��w�w�v����2��9s�
D%�D%�*(D*c�F�	t|d�r|j�}n%	t|�rt|dt�st
�g}|s~|D]x\}}	t|t�r
|||�}n|t|�|||�}t|	t�r
||	|�}	n|t|	�|||�}	|j|dz|	z��zn�|D]�\}}	t|t�r
|||�}n|t|�|||�}t|	t�r!||	|�}	|j|dz|	z��et|	t�r#||	|||�}	|j|dz|	z���	t|	�}
|	D]G}t|t�r
|||�}n|t|�|||�}|j|dz|z��I��dj|�S#t
$r}td�|�d}~wwxYw#t
$r/|t|	�|||�}	|j|dz|	z�Y��WwxYw)N�itemsrz1not a valid non-string sequence or mapping objectrP�&)
�hasattrr�r�r[rVr]r-r\rr)r��doseqrorKrL�	quote_via�err�l�kr�rT�elts            rAr
r
�s��
��u�g�����
��	:��5�z�*�U�1�X�u�"=���	�A���D�A�q��!�U�#��a��&���c�!�f�d�H�f�=���!�U�#��a��&���c�!�f�d�H�f�=��
�H�H�Q��W�q�[�!���D�A�q��!�U�#��a��&���c�!�f�d�H�f�=���!�U�#��a��&������S��1��%��A�s�#��a��x��8������S��1��%�0��A��A� !��%�c�5�1�"+�C��"6�C�"+�C��H�d�H�f�"M�C�����S��3��/� !�-�8�8�8�A�;���]�	:��0�1�69�
:��	:��D!�*�!�#�a�&�$��&�A�A��H�H�Q��W�q�[�)�*�s)�$G�!G(�	G%�G � G%�(4H �H c�P�tjdtd��t|�S)Nz/urllib.parse.to_bytes() is deprecated as of 3.8r�rc)rerfrg�	_to_bytes�r�s rA�to_bytesr�s ���M�M�C�$��4��S�>�r@c��	t|t�r"	|jd�j�}|S|S#t$rt	dt|�zdz��wxYw)N�ASCIIzURL z contains non-ASCII characters)r[r\rJrQ�UnicodeError�reprr�s rAr�r�so��%��#�s��	A��*�*�W�%�,�,�.�C��J�3�J���	A��v��S�	�1�?� @�A�
A�	A�s	�6�$Ac��	t|�j�}|dddk(r|dddk(r|ddj�}|dddk(r|ddj�}|S)NrZ�<rrr�zURL:)r\rr�s rA�unwrapr�&sh����c�(�.�.�
�C�
�2�A�w�#�~�#�b�c�(�c�/��!�B�i�o�o���
�2�A�w�&���!�"�g�m�m�o���Jr@c�P�tjdtd��t|�S)NzUurllib.parse.splittype() is deprecated as of 3.8, use urllib.parse.urlparse() insteadr�rc)rerfrg�
_splittyper�s rA�	splittyper�3�$���M�M�8�$��4��c�?�r@c���	t�$tjdtj�atj	|�}|r%|j�\}}|j
�|fSd|fS)Nz
([^/:]+):(.*))�	_typeprogr��compile�DOTALLr��groupsr�)r�r�r��datas    rAr�r�;sZ��D����J�J���	�	�:�	��O�O�C� �E���|�|�~�����|�|�~�t�#�#���9�r@c�P�tjdtd��t|�S)NzUurllib.parse.splithost() is deprecated as of 3.8, use urllib.parse.urlparse() insteadr�rc)rerfrg�
_splithostr�s rA�	splithostr�Hr�r@c���	t�$tjdtj�atj	|�}|r&|j�\}}|r
|ddk7rd|z}||fSd|fS)Nz//([^/#?]*)(.*)rr�)�	_hostprogr�r�r�r�r�)r�r��	host_portrs    rAr�r�Psj��E����J�J�0�"�)�)�<�	��O�O�C� �E���,�,�.��	�4��D��G�s�N���:�D��$�����9�r@c�P�tjdtd��t|�S)NzUurllib.parse.splituser() is deprecated as of 3.8, use urllib.parse.urlparse() insteadr�rc)rerfrg�
_splituser��hosts rA�	splituserr�_�%���M�M�8�$��4��d��r@c�B�	|jd�\}}}|r||fSd|fS)Nr��r�)r��userr�s   rAr�r�fs1��T�����,��D�%���D�d�*�*�t�d�*�*r@c�P�tjdtd��t|�S)NzWurllib.parse.splitpasswd() is deprecated as of 3.8, use urllib.parse.urlparse() insteadr�rc)rerfrg�_splitpasswd)r�s rA�splitpasswdr�ls%���M�M�8�$��4����r@c�@�	|jd�\}}}||r|fSdfS�Nr��r�)r�r��passwds   rAr�r�ss/��9��.�.��-��D�%���E�&�,�,�t�,�,r@c�P�tjdtd��t|�S)NzUurllib.parse.splitport() is deprecated as of 3.8, use urllib.parse.urlparse() insteadr�rc)rerfrg�
_splitportr�s rA�	splitportr�yr�r@c��	t�$tjdtj�atj	|�}|r|j�\}}|r||fS|dfS)Nz
(.*):([0-9]*))�	_portprogr�r�r��	fullmatchr�)r�r�r�s   rAr�r��sX��4����J�J���	�	�:�	�����%�E���\�\�^�
��d����:����:�r@c�R�tjdtd��t||�S)NzVurllib.parse.splitnport() is deprecated as of 3.8, use urllib.parse.urlparse() insteadr�rc)rerfrg�_splitnport)r��defports  rA�
splitnportr��s'���M�M�8�$��4��t�W�%�%r@c��	|jd�\}}}|s|}||fS|r5|j�r|j�rt|�}||fSd}||fS||fSr�)r�r�r�r�)r�r�r�r��nports     rAr�r��sx��2�����,��D�%�������=��

��<�<�>�d�l�l�n���I�E��U�{���E��U�{����=�r@c�P�tjdtd��t|�S)NzVurllib.parse.splitquery() is deprecated as of 3.8, use urllib.parse.urlparse() insteadr�rc)rerfrg�_splitqueryr�s rA�
splitqueryr��s%���M�M�8�$��4��s��r@c�B�	|jd�\}}}|r||fS|dfS)Nr�r�)r�rr�r�s    rAr�r��s1��9�����,��D�%����U�{����9�r@c�P�tjdtd��t|�S)NzTurllib.parse.splittag() is deprecated as of 3.8, use urllib.parse.urlparse() insteadr�rc)rerfrg�	_splittagr�s rA�splittagr��s$���M�M�8�$��4��S�>�r@c�B�	|jd�\}}}|r||fS|dfSr�r�)r�rr��tags    rAr�r��s1��3��~�~�c�*��D�%����S�y����9�r@c�P�tjdtd��t|�S)NzUurllib.parse.splitattr() is deprecated as of 3.8, use urllib.parse.urlparse() insteadr�rc)rerfrg�
_splitattrr�s rA�	splitattrr��r�r@c�:�	|jd�}|d|ddfS)Nr�rrZ)r)r��wordss  rAr�r��s)��;��I�I�c�N�E���8�U�1�2�Y��r@c�P�tjdtd��t|�S)NzWurllib.parse.splitvalue() is deprecated as of 3.8, use urllib.parse.parse_qsl() insteadr�rc)rerfrg�_splitvalue)�attrs rA�
splitvaluer��s%���M�M�9�$��4��t��r@c�@�	|jd�\}}}||r|fSdfS)NrPr�)r�r�rNs   rAr�r��s/��7�����,��D�%���5�%�+�+�d�+�+r@)rT)r)T)r2r�)FFr2r�Nr�)r�NN)rNN)r�)r)p�collectionsr�	functoolsr�r�r�rer��__all__rr
r��non_hierarchical�
uses_query�
uses_fragmentrrrrB�_implicit_encoding�_implicit_errorsrGrMrXr`�objectrbrrrwr�r��_DefragResultBase�_SplitResultBase�_ParseResultBase�__doc__r�r�r�r�rr�r��
ResultBaserrrrrrr�rr�r�r�r��	lru_cacherrr	rrr6r5rr-r3r\r.r�r=rCrrrr�	frozensetrmr�rjrsrhr
rr>rr
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@rA�<module>r�s����B#���	����H��0�
�
-��-��F��A�
�%�
�
��\��1��'������"4�/�(�!3�.�H�2�"V�f�V�V��V�#8�V�#8�L�2�O��<�4�6G��<�~�~�>����6�8����=�?�����!K�����&����"����#N�����#�����!�����"�����%����!�
���#3�"9�"9�"A�"A�����"2�"9�"9�"A�"A����� 0� 5� 5� =� =�����#�����
"2�!7�!7�!?�!?�����$4�$=�$=�$E�$E����!�#�
��$�o�� �"�$9� �
 �"�$9� ��)�+<�� �'�)@� �
 �'�)@� �1����"�<�)�D�(G�����4� �6�!�6�p	N��.B:�J6� #��
�
�(��%�)�+�c�1��e�i�6G��:�2�:�:�&�'��&�G�.:?�PS�'�T;@�QT�G
�R-��!�"���<�(��K��d��*4*�l$�$���%��%��6!�r�D��"�M�`��
��
�	�
��
�	���+��-��
�	��&��"�������,r@

?>