
    4\h$                     0   	 d dl mZ d dlZd dlZd dlZd dlZd dlZd dlZg dZg dZ	g dZ
g dZg dZg dZg d	Zd
ZdZg dZd ZdZdZd ZeefdZeefdZd Z G d de          Z G d de          Z G d de          Z G d dee          Z G d dee          Z edd          Z ed d!          Z  ed"d#          Z!d$e_"        d%ej#        _"        d&ej$        _"        d'e _"        d(e j%        _"        d)e j&        _"        d*e j'        _"        d+e j(        _"        d,e j$        _"        d-e!_"        e j%        j"        e!j%        _"        e j&        j"        e!j&        _"        e j'        j"        e!j'        _"        d.e!j)        _"        e j(        j"        e!j(        _"        e j$        j"        e!j$        _"        eZ* G d/ dee          Z+ G d0 d e e          Z, G d1 d"e!e          Z- G d2 d3ee          Z. G d4 d5e e          Z/ G d6 d7e!e          Z0d8 Z1 e1             [1dtd;Z2d< Z3dud=Z4d> Z5d? Z6d@ Z7 ej8        d:A          dtdB            Z9dC Z:dD Z;dvdEZ<dF Z=dGZ>da?dH Z@ ejA        dI          ZBdwdLZC	 	 dxdOZD	 	 dxdPZEdwdQZF eGdR          ZH eIeH          ZJdS ZK G dT dUeL          ZMdydWZNdzdXZOej8        dY             ZPd{dZZQdMd9ddeOfd[ZRd\ ZSd] ZTd^ ZUd_ ZVdaWd` ZXda ZYdaZdb Z[dc Z\dd Z]de Z^df Z_dg Z`daadh Zbd|djZcd|dkZddl Zedm Zfdn Zgdo Zhdp Zidq Zjdr Zkds ZldS )}    )
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)r   r   r   r   r   telnetr   r   r    r#   r!   r"   snewsr$   r%   r&   r'   rsyncr)   r*   r(   nfsgitzgit+sshr+   r,   )r   r   hdlr$   r   r   r!   r"   r%   r&   r'   sipsipsr#   r(   tel)
r   r2   mailtonewsr-   r   r   r.   r3   r4   )r   r   r   r   r!   r"   r#   r   r%   r&   r'   r3   r4   )r   r   r2   r   r   r7   r   r   r!   r"   r.   r    r$   zAabcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789+-.z! 	
 )	
c                  l    	 t                                            t                                           d S N)r   cache_clear_byte_quoter_factory     6/opt/python-3.11.14/usr/lib/python3.11/urllib/parse.pyclear_cacherB   ^   s/    N$$&&&&&r@   asciistrictc                     | S r<   r?   )objs    rA   _nooprG   l   s    Jr@   c                 .    |                      ||          S r<   encode)rF   encodingerrorss      rA   _encode_resultrM   o   s    ::h'''r@   c                 >    t          fd| D                       S )Nc              3   L   K   | ]}|r|                               nd V  dS )r   Ndecode.0xrK   rL   s     rA   	<genexpr>z_decode_args.<locals>.<genexpr>u   s;      GGQq8(F+++bGGGGGGr@   )tuple)argsrK   rL   s    ``rA   _decode_argsrX   s   s*    GGGGG$GGGGGGr@   c                      t          | d         t                    }| dd          D ],}|r(t          |t                    |k    rt          d          -|r| t          fz   S t	          |           t
          fz   S )Nr      z$Cannot mix str and non-str arguments)
isinstancestr	TypeErrorrG   rX   rM   )rW   	str_inputargs      rA   _coerce_argsr`   w   s     47C((IABBx D D  	D:c3''944BCCC uh 111r@   c                       e Zd Z	 dZddZdS )_ResultMixinStrr?   rC   rD   c                 4     | j         fd| D              S )Nc              3   D   K   | ]}|                               V  d S r<   rI   rR   s     rA   rU   z)_ResultMixinStr.encode.<locals>.<genexpr>   1      *T*T!188Hf+E+E*T*T*T*T*T*Tr@   )_encoded_counterpartselfrK   rL   s    ``rA   rJ   z_ResultMixinStr.encode   ,    (t(*T*T*T*T*Tt*T*T*TUUr@   NrC   rD   )__name__
__module____qualname__	__slots__rJ   r?   r@   rA   rb   rb      6        HIV V V V V Vr@   rb   c                       e Zd Z	 dZddZdS )_ResultMixinBytesr?   rC   rD   c                 4     | j         fd| D              S )Nc              3   D   K   | ]}|                               V  d S r<   rP   rR   s     rA   rU   z+_ResultMixinBytes.decode.<locals>.<genexpr>   re   r@   )_decoded_counterpartrg   s    ``rA   rQ   z_ResultMixinBytes.decode   ri   r@   Nrj   )rk   rl   rm   rn   rQ   r?   r@   rA   rq   rq      ro   r@   rq   c                       e Zd Z	 dZed             Zed             Zed             Zed             Z e	e
j                  ZdS )_NetlocResultMixinBaser?   c                     | j         d         S )Nr   	_userinforh   s    rA   usernamez_NetlocResultMixinBase.username       ~a  r@   c                     | j         d         S )NrZ   rx   rz   s    rA   passwordz_NetlocResultMixinBase.password   r|   r@   c                     | j         d         }|sd S t          |t                    rdnd}|                    |          \  }}}|                                |z   |z   S )Nr   %   %)	_hostinfor[   r\   	partitionlower)rh   hostname	separatorpercentzones        rA   r   z_NetlocResultMixinBase.hostname   si    >!$ 	4 &h44>CC$	"*"4"4Y"?"?'4~~')D00r@   c                     | j         d         }|h|                                r$|                                rt          |          }nt	          d|          d|cxk    rdk    sn t	          d          |S )NrZ   z+Port could not be cast to integer value as r   i  zPort out of range 0-65535)r   isdigitisasciiint
ValueError)rh   ports     rA   r   z_NetlocResultMixinBase.port   s    ~a ||~~ Y$,,.. Y4yy !Wt!W!WXXX&&&&&&&& !<===r@   N)rk   rl   rm   rn   propertyr{   r~   r   r   classmethodtypesGenericAlias__class_getitem__r?   r@   rA   rv   rv      s        RI! ! X! ! ! X! 1 1 X1 	 	 X	 $E$677r@   rv   c                   >    e Zd ZdZed             Zed             ZdS )_NetlocResultMixinStrr?   c                     | j         }|                    d          \  }}}|r|                    d          \  }}}|sd }nd x}}||fS )N@:netloc
rpartitionr   rh   r   userinfo	have_infohostinfor{   have_passwordr~   s           rA   ry   z_NetlocResultMixinStr._userinfo   sh    (.(9(9#(>(>%)X 	'080B0B30G0G-HmX   "&&Hx!!r@   c                     | j         }|                    d          \  }}}|                    d          \  }}}|r3|                    d          \  }}}|                    d          \  }}}n|                    d          \  }}}|sd }||fS )Nr   []r   r   rh   r   _r   have_open_br	bracketedr   r   s           rA   r   z_NetlocResultMixinStr._hostinfo   s    **3//1h%-%7%7%<%<"< 	8 ) 3 3C 8 8Ha,,JAq$$ ( 2 23 7 7Ha 	D~r@   Nrk   rl   rm   rn   r   ry   r   r?   r@   rA   r   r      M        I	" 	" X	"   X  r@   r   c                   >    e Zd ZdZed             Zed             ZdS )_NetlocResultMixinBytesr?   c                     | j         }|                    d          \  }}}|r|                    d          \  }}}|sd }nd x}}||fS )N   @   :r   r   s           rA   ry   z!_NetlocResultMixinBytes._userinfo   sh    (.(9(9$(?(?%)X 	'080B0B40H0H-HmX   "&&Hx!!r@   c                     | j         }|                    d          \  }}}|                    d          \  }}}|r3|                    d          \  }}}|                    d          \  }}}n|                    d          \  }}}|sd }||fS )Nr      [   ]r   r   r   s           rA   r   z!_NetlocResultMixinBytes._hostinfo   s    **4001h%-%7%7%=%="< 	9 ) 3 3D 9 9Ha--JAq$$ ( 2 24 8 8Ha 	D~r@   Nr   r?   r@   rA   r   r      r   r@   r   r   zurl fragmentr   z!scheme netloc path query fragmentr   z(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                       e Zd ZdZd ZdS )r   r?   c                 B    | j         r| j        dz   | j         z   S | j        S N#fragmenturlrz   s    rA   geturlzDefragResult.geturlE  s&    = 	8c>DM118Or@   Nrk   rl   rm   rn   r   r?   r@   rA   r   r   C  (        I    r@   c                       e Zd ZdZd ZdS )r   r?   c                      t          |           S r<   r	   rz   s    rA   r   zSplitResult.geturlM      $r@   Nr   r?   r@   rA   r   r   K  (        I         r@   c                       e Zd ZdZd ZdS )r   r?   c                      t          |           S r<   r   rz   s    rA   r   zParseResult.geturlR  r   r@   Nr   r?   r@   rA   r   r   P  r   r@   c                       e Zd ZdZd ZdS )r   r?   c                 B    | j         r| j        dz   | j         z   S | j        S )N   #r   rz   s    rA   r   zDefragResultBytes.geturlX  s&    = 	8d?T]228Or@   Nr   r?   r@   rA   r   r   V  r   r@   r   c                       e Zd ZdZd ZdS )r   r?   c                      t          |           S r<   r   rz   s    rA   r   zSplitResultBytes.geturl`  r   r@   Nr   r?   r@   rA   r   r   ^  r   r@   r   c                       e Zd ZdZd ZdS )r   r?   c                      t          |           S r<   r   rz   s    rA   r   zParseResultBytes.geturle  r   r@   Nr   r?   r@   rA   r   r   c  r   r@   r   c                      t           t          ft          t          ft          t
          ff} | D ]\  }}||_        ||_        d S r<   )r   r   r   r   r   r   rf   rt   )_result_pairs_decoded_encodeds      rA   _fix_result_transcodingr   i  sW    	()	&'	&'M
 , 1 1((0%(0%%1 1r@   r   Tc                     	 t          | |          \  } }}t          | ||          }|\  }}} }}|t          v rd| v rt          |           \  } }nd}t	          ||| |||          }	 ||	          S )N;r   )r`   r   uses_params_splitparamsr   )
r   schemeallow_fragments_coerce_resultsplitresultr   queryr   paramsresults
             rA   r   r   v  s    & #/sF";";C388K+6(FFC"3''VVfeXFFF>&!!!r@   c                     d| v r4|                      d|                     d                    }|dk     r| dfS n|                      d          }| d |         | |dz   d          fS )N/r   r   r   rZ   )findrfind)r   is     rA   r   r     so    
s{{HHS#))C..))q557N  HHSMMrr7C!Ir@   c                     t          |           }dD ].}|                     ||          }|dk    rt          ||          }/| ||         | |d          fS )Nz/?#r   )lenr   min)r   startdelimcwdelims        rA   _splitnetlocr     sd    HHE ' '!U##Q;;v&&EuU{S[((r@   c                 l   | r|                                  rd S dd l}|                     dd          }|                    dd          }|                    dd          }|                    dd          }|                    d|          }||k    rd S dD ]}||v rt	          d	| z   d
z   dz             d S )Nr   r   r   r   r   ?NFKCz/?#@:znetloc 'z' contains invalid z#characters under NFKC normalization)r   unicodedatareplace	normalizer   )r   r   nnetloc2r   s        rA   _checknetlocr     s     V^^%%  sBA			#rA			#rA			#rA##FA..GG|| D D<<Z&03HHBC D D D D Dr@   c                 d   |                      d          d         }|                    d          \  }}}|rQ|rt          d          |                    d          \  }}}|r$|                    d          st          d          n|                    d          \  }}}t	          |           d S )Nr      r   Invalid IPv6 URLr   r   )r   r   r   
startswith_check_bracketed_host)r   hostname_and_portbefore_bracketr   r   r   r   r   s           rA   _check_bracketed_netlocr     s     ))#..q1.?.I.I#.N.N+NL) 	= 	1/000%//44!T 	1,, 	1/000-77<<!T(#####r@   c                     |                      d          r&t          j        d|           st          d          d S t	          j        |           }t          |t          j                  rt          d          d S )Nvz\Av[a-fA-F0-9]+\..+\ZzIPvFuture address is invalidz%An IPv4 address cannot be in brackets)r   rematchr   	ipaddress
ip_addressr[   IPv4Address)r   ips     rA   r   r     s    3 Gx0(;; 	><===	> 	> !(++b)/00 	GEFFF	G 	Gr@   )typedc                    	 t          | |          \  } }}|                     t                    } |                    t                    }t          D ].}|                     |d          } |                    |d          }/t          |          }dx}x}}|                     d          }|dk    ru| d                                         r[| d         	                                rA| d |         D ]}	|	t          vr n*| d |                                         | |dz   d          } }| d d         dk    rIt          | d          \  }} d|v rd|vsd|v rd|vrt          d	          d|v rd|v rt          |           |rd
| v r|                     d
d          \  } }d| v r|                     dd          \  } }t!          |           t#          ||| ||          }
 ||
          S )Nr   r   r   rZ   r   //r   r   r   r   r   )r`   lstrip_WHATWG_C0_CONTROL_OR_SPACEstrip_UNSAFE_URL_BYTES_TO_REMOVEr   boolr   r   isalphascheme_charsr   r   r   r   splitr   r   )r   r   r   r   br   r   r   r   r   r   s              rA   r   r     s   ( #/sF";";C **0
1
1C\\566F( ' 'kk!R  2&&?++O ""F"UXA1uuQ!!uc!fnn&6&6uRaR 	5 	5A$$ % bqb'--//3qstt9CF
2A2w$"3**F]]s&003f#4#4/000&==SF]]#F+++ *3#::		#q))X
czzYYsA&&
UFFC99A>!r@   c           	      r    	 t          |  \  }}}}}}}|r|d|} |t          |||||f                    S )Nr   )r`   r	   )
componentsr   r   r   r   r   r   r   s           rA   r   r     s`    5
 3?
2K AFFC. &ff%>*ffc5(%KLLMMMr@   c                     	 t          |  \  }}}}}}|s|r	|t          v s|d d         dk    r|r|d d         dk    rd|z   }d|pdz   |z   }|r|dz   |z   }|r|dz   |z   }|r|dz   |z   } ||          S )	Nr   r  rZ   r   r   r   r   r   )r`   uses_netloc)r  r   r   r   r   r   r   s          rA   r	   r	     s    ? +7
*C 9FFC. *& *V{22s2A2w$23rr7c>>s3fl#c) !slS   Ci% #Ci(">#r@   c           
         	 | s|S |s| S t          | |          \  } }}t          | d|          \  }}}}}}	t          |||          \  }
}}}}}|
|k    s	|
t          vr ||          S |
t          v r"|r |t	          |
|||||f                    S |}|s(|s&|}|}|s|} |t	          |
|||||f                    S |                    d          }|d         dk    r|d= |d d         dk    r|                    d          }n5||                    d          z   }t          d |dd                   |dd<   g }|D ]J}|dk    r&	 |                                 # t          $ r Y *w xY w|dk    r5|	                    |           K|d         dv r|	                    d            |t	          |
|d
                    |          pd|||f                    S )Nr   r   rZ   ...)r  r  )r`   r   uses_relativer  r   r  filterpop
IndexErrorappendjoin)baser   r   r   bschemebnetlocbpathbparamsbquery	bfragmentr   r   pathr   r   r   
base_partssegmentsresolved_pathsegs                       rA   r   r   +  s   % 
  ,T3 7 7D#~T2// 8GWeWfi S'?33 2FFD&% F-77~c""" 	I!>*ffd.4eX.G #H #H I I I E E 	E~j&&$*0%*C D D E E 	E S!!J"~ rN BQBx3::c??

3/  hqtn552M & &$;;!!####     CZZ  %%%%|{"" 	R   >*ffchh7 7 7vuh&8 9 9 : : :s   E
E)(E)c                     	 t          |           \  } }d| v r,t          |           \  }}}}}}t          |||||df          }nd}| } |t          ||                    S )Nr   r   )r`   r   r   r   )	r   r   sr   paqfragdefrags	            rA   r   r   p  s|     's++C
czz&smm1aAtQ1aB/00>,vt44555r@   0123456789ABCDEFabcdefc                    	 | s	| j          dS t          | t                    r|                     d          } |                      d          }t	          |          dk    r| S |d         g}|j        }t          d t          D             a|dd          D ]Z}	  |t          |d d                              ||dd                     5# t          $ r  |d            ||           Y Ww xY wd	                    |          S )Nr@   utf-8r   rZ   r   c                     i | ]?}t           D ]5}||z                                   t                              ||z             6@S r?   )_hexdigrJ   bytesfromhex)rS   r*  r  s      rA   
<dictcomp>z$unquote_to_bytes.<locals>.<dictcomp>  s\     9 9 99 9+, 1unn&&a!e(<(< 9 9 9 9r@   r   )
r  r[   r\   rJ   r   r  
_hextobyter2  KeyErrorr  )stringbitsresr  items        rA   r   r     s:   6  s&# (w''<<D
4yyA~~7)CZF 9 9&9 9 9
QRR  	F:d2A2h'(((F48 	 	 	F4LLLF4LLLLL	 88C==s   1C C+*C+z([ -]+)r0  r   c                    	 t          | t                    r#t          |                               ||          S d| vr	| j         | S |d}|d}t
                              |           }|d         g}|j        }t          dt          |          d          D ]H} |t          ||                                       ||                      |||dz                       Id	                    |          S )Nr   r0  r   r   rZ   r   r   )
r[   r3  r   rQ   r  _asciirer  ranger   r  )r8  rK   rL   r9  r:  r  r   s          rA   r   r     s    &%   A''..x@@@
&~>>&!!D7)CZF1c$ii##  Q((//&AABBBtAE{773<<r@   F&c           	          	 i }t          | ||||||          }|D ]+\  }	}
|	|v r||	                             |
           %|
g||	<   ,|S )N)rK   rL   max_num_fieldsr   )r   r  )qskeep_blank_valuesstrict_parsingrK   rL   rA  r   parsed_resultpairsnamevalues              rA   r   r     s    8 Mb+^'%3yJ J JE  * *e=  $&&u----#('M$r@   c                    	 |rt          |t          t          f          st          d          t          | t                    r.t          |t                    st          |d          }d}fd}nJ| sg S t          t	          |                     } t          |t                    rt          |d          }d}d }| sg S |-d|                     |          z   }	||	k     rt          d          g }
|                     |          D ]f}|s|r`|                    |          \  }}}|s|rt          d	|          |s|r- ||          } ||          }|
                    ||f           g|
S )
Nz*Separator must be of type string or bytes.rC   =c                 (    t          |           S )N)rK   rL   )r   )r(  rK   rL   s    rA   _unquotezparse_qsl.<locals>._unquote  s    HVDDDDr@      =c                 H    t          |                     dd                    S )N   +    )r   r   )r(  s    rA   rL  zparse_qsl.<locals>._unquote  s    #AIIdD$9$9:::r@   rZ   zMax number of fields exceededzbad query field: )	r[   r\   r3  r   
memoryviewcountr  r   r  )rB  rC  rD  rK   rL   rA  r   eqrL  
num_fieldsr
name_valuerG  has_eqrH  s      ``          rA   r   r     s   8  GJy3,?? GEFFF"c ;)S)) 	0Iw//I	E 	E 	E 	E 	E 	E 	E  	I :b>>""i%% 	2i11I	; 	; 	;  	
 !),,,
J&&<===
Ahhy)) ( (
 	( 	(","6"6r":":D&% Hn H j**!FGGG () (x~~ $'''Hr@   c                 R    	 |                      dd          } t          | ||          S )N+ )r   r   )r8  rK   rL   s      rA   r   r   2  s.    
 ^^C%%F68V,,,r@   sB   ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_.-~c                     | dk    r#t          j        dt          d           t          S t	          dt
          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   
stacklevelzmodule z has no attribute )warningswarnDeprecationWarning_QuoterAttributeErrorrk   )rG  s    rA   __getattr__rd  A  sY    x @ )Q	8 	8 	8 	8 
I8IIII
J
JJr@   c                   "    e Zd Z	 d Zd Zd ZdS )rb  c                 F    	 t                               |          | _        d S r<   )_ALWAYS_SAFEunionsafe)rh   ri  s     rA   __init__z_Quoter.__init__R  s    ! &&t,,			r@   c                 (    dt          |           dS )Nz<Quoter >)dictrz   s    rA   __repr__z_Quoter.__repr__V  s    )$t**))))r@   c                 j    || j         v rt          |          nd                    |          }|| |<   |S )Nz%{:02X})ri  chrformat)rh   r  r:  s      rA   __missing__z_Quoter.__missing__Y  s7    TYc!fffI,<,<Q,?,?Q
r@   N)rk   rl   rm   rj  rn  rr  r?   r@   rA   rb  rb  J  sF        - - -* * *    r@   rb  r   c                     	 t          | t                    r#| s| S |d}|d}|                     ||          } n"|t          d          |t          d          t	          | |          S )Nr0  rD   z,quote() doesn't support 'encoding' for bytesz*quote() doesn't support 'errors' for bytes)r[   r\   rJ   r]   r   )r8  ri  rK   rL   s       rA   r   r   _  s    %L &# J 	MH>Fx00JKKKHIIIFD)))r@   c                    	 t          | t                    rd| vst          | t                    rd| vrt          | |||          S t          |t                    rd}nd}t          | ||z   ||          } |                     dd          S )NrZ  rP  rY  )r[   r\   r3  r   r   )r8  ri  rK   rL   spaces        rA   r   r     s     
FC	 	  5S%6%6	FE	"	" &7'+6'9'9VT8V444$ 64%<6::F>>#s###r@   c                 *    t          |           j        S r<   )rb  __getitem__)ri  s    rA   r>   r>     s    4==$$r@   c                    	 t          | t          t          f          st          d          | sdS t          |t                    r|                    dd          }nt          d |D                       }|                     t          |z             s|                                 S t          |          d
                    fd| D                       S )Nz!quote_from_bytes() expected bytesr   rC   ignorec                     g | ]
}|d k     |S )   r?   )rS   r   s     rA   
<listcomp>z$quote_from_bytes.<locals>.<listcomp>  s    111ASar@   c                 &    g | ]} |          S r?   r?   )rS   charquoters     rA   r|  z$quote_from_bytes.<locals>.<listcomp>  s!    000TFF4LL000r@   )r[   r3  	bytearrayr]   r\   rJ   rstrip_ALWAYS_SAFE_BYTESrQ   r>   r  )bsri  r  s     @rA   r   r     s     b5),-- =;<<< r$ 3{{7H-- 111112299'$.// yy{{!$''F770000R000111r@   c                 V   	 t          | d          r|                                 } nU	 t          |           r"t          | d         t                    st
          n"# t
          $ r}t          d          |d }~ww xY wg }|s| D ]\  }}	t          |t                    r |||          }n |t          |          |||          }t          |	t                    r ||	|          }	n |t          |	          |||          }	|                    |dz   |	z              nw| D ]s\  }}	t          |t                    r |||          }n |t          |          |||          }t          |	t                    r( ||	|          }	|                    |dz   |	z              t          |	t                    r* ||	|||          }	|                    |dz   |	z              	 t          |	          }
|	D ]Z}t          |t                    r |||          }n |t          |          |||          }|                    |dz   |z              [.# t
          $ r:  |t          |	          |||          }	|                    |dz   |	z              Y qw xY wd	                    |          S )Nitemsr   z1not a valid non-string sequence or mapping objectrJ  r?  )
hasattrr  r   r[   rV   r]   r3  r\   r  r  )r   doseqri  rK   rL   	quote_viaerrlkr   rT   elts               rA   r
   r
     s     ug :	: 5zz  *U1Xu"="=  
  	: 	: 	: 0 1 169:	: 	A (0 
	" 
	"DAq!U## >Ia&&Ic!ffdHf==!U## >Ia&&Ic!ffdHf==HHQWq[!!!!
	"  	0 	0DAq!U## >Ia&&Ic!ffdHf==!U## 0Ia&&S1%%%%As## 0Iax88S1%%%%0AA  ! 0 0%c511 N"+)C"6"6CC"+)CHHdHf"M"MCS3////0 ! * * *!	#a&&$&AAAHHQWq[)))))* 88A;;s*   1A 
A9$A44A9!IA JJc                 X    t          j        dt          d           t          |           S )Nz/urllib.parse.to_bytes() is deprecated as of 3.8r   r]  )r_  r`  ra  	_to_bytesr   s    rA   to_bytesr    s/    MC$4 4 4 4S>>r@   c                     	 t          | t                    rY	 |                     d                                          } n0# t          $ r# t	          dt          |           z   dz             w xY w| S )NASCIIzURL z contains non-ASCII characters)r[   r\   rJ   rQ   UnicodeErrorreprr  s    rA   r  r    s    % #s A	A**W%%,,..CC 	A 	A 	AvS		1? @ A A A	A Js   'A   -A-c                    	 t          |                                           } | d d         dk    r*| dd          dk    r| dd                                         } | d d         dk    r| dd                                          } | S )NrZ   <r  rl     zURL:)r\   r  r  s    rA   unwrapr  #  s     c((..

C
2A2w#~~#bcc(c//!B$ioo
2A2w&!""gmmooJr@   c                 X    t          j        dt          d           t          |           S )NzUurllib.parse.splittype() is deprecated as of 3.8, use urllib.parse.urlparse() insteadr   r]  )r_  r`  ra  
_splittyper  s    rA   	splittyper  0  3    M 8$4 4 4 4 c??r@   c                     	 t           t          j        dt          j                  a t                               |           }|r-|                                \  }}|                                |fS d | fS )Nz([^/:]+):(.*))	_typeprogr   compileDOTALLr   groupsr   )r   r   r   datas       rA   r  r  8  se    DJ	::	OOC  E $||~~||~~t##9r@   c                 X    t          j        dt          d           t          |           S )NzUurllib.parse.splithost() is deprecated as of 3.8, use urllib.parse.urlparse() insteadr   r]  )r_  r`  ra  
_splithostr  s    rA   	splithostr  E  r  r@   c                     	 t           t          j        dt          j                  a t                               |           }|r.|                                \  }}|r|d         dk    rd|z   }||fS d | fS )Nz//([^/#?]*)(.*)r   r   )	_hostprogr   r  r  r   r  )r   r   	host_portr"  s       rA   r  r  M  sz    EJ0")<<	OOC  E ,,..	4 	DGsNN:D$9r@   c                 X    t          j        dt          d           t          |           S )NzUurllib.parse.splituser() is deprecated as of 3.8, use urllib.parse.urlparse() insteadr   r]  )r_  r`  ra  
_splituserhosts    rA   	splituserr  \  5    M 8$4 4 4 4 dr@   c                 F    	 |                      d          \  }}} |r|nd | fS )Nr   r   )r  userr   s      rA   r  r  c  s1    T,,D%#DDtd**r@   c                 X    t          j        dt          d           t          |           S )NzWurllib.parse.splitpasswd() is deprecated as of 3.8, use urllib.parse.urlparse() insteadr   r]  )r_  r`  ra  _splitpasswd)r  s    rA   splitpasswdr  i  s5    M 8$4 4 4 4 r@   c                 F    	 |                      d          \  } }}| |r|nd fS Nr   r   )r  r   passwds      rA   r  r  p  s1    9..--D%E+&&t,,r@   c                 X    t          j        dt          d           t          |           S )NzUurllib.parse.splitport() is deprecated as of 3.8, use urllib.parse.urlparse() insteadr   r]  )r_  r`  ra  
_splitportr  s    rA   	splitportr  v  r  r@   c                     	 t           t          j        dt          j                  a t                               |           }|r|                                \  } }|r| |fS | d fS )Nz(.*):([0-9]*))	_portprogr   r  r  	fullmatchr  )r  r   r   s      rA   r  r    sf    4J	::	%%E \\^^
d 	::r@   r  c                 Z    t          j        dt          d           t          | |          S )NzVurllib.parse.splitnport() is deprecated as of 3.8, use urllib.parse.urlparse() insteadr   r]  )r_  r`  ra  _splitnport)r  defports     rA   
splitnportr    s7    M 8$4 4 4 4 tW%%%r@   c                     	 |                      d          \  } }}|s|} n@|r>|                                r$|                                rt          |          }nd }| |fS | |fS r  )r   r   r   r   )r  r  r   r   nports        rA   r  r    s}    2 ,,D% 	 <<>> 	dllnn 	IIEEEU{=r@   c                 X    t          j        dt          d           t          |           S )NzVurllib.parse.splitquery() is deprecated as of 3.8, use urllib.parse.urlparse() insteadr   r]  )r_  r`  ra  _splitqueryr  s    rA   
splitqueryr    s5    M 8$4 4 4 4 sr@   c                 J    	 |                      d          \  }}}|r||fS | d fS )Nr   r  )r   r"  r   r   s       rA   r  r    s9    9,,D% U{9r@   c                 X    t          j        dt          d           t          |           S )NzTurllib.parse.splittag() is deprecated as of 3.8, use urllib.parse.urlparse() insteadr   r]  )r_  r`  ra  	_splittagr  s    rA   splittagr    s3    M 8$4 4 4 4 S>>r@   c                 J    	 |                      d          \  }}}|r||fS | d fS r   r  )r   r"  r   tags       rA   r  r    s9    3~~c**D% Sy9r@   c                 X    t          j        dt          d           t          |           S )NzUurllib.parse.splitattr() is deprecated as of 3.8, use urllib.parse.urlparse() insteadr   r]  )r_  r`  ra  
_splitattrr  s    rA   	splitattrr    r  r@   c                 R    	 |                      d          }|d         |dd          fS )Nr   r   rZ   )r  )r   wordss     rA   r  r    s-    ;IIcNNE8U122Yr@   c                 X    t          j        dt          d           t          |           S )NzWurllib.parse.splitvalue() is deprecated as of 3.8, use urllib.parse.parse_qsl() insteadr   r]  )r_  r`  ra  _splitvalue)attrs    rA   
splitvaluer    s5    M 9$4 4 4 4 tr@   c                 F    	 |                      d          \  } }}| |r|nd fS )NrJ  r  )r  r   rH  s      rA   r  r    s1    7,,D%5*%%d++r@   )r   T)r   )T)r0  r   )FFr0  r   Nr?  )r   NN)r   NN)r   )r  )mcollectionsr   	functoolsr   sysr   r_  r   __all__r  r  r   non_hierarchical
uses_queryuses_fragmentr
  r  r  rB   _implicit_encoding_implicit_errorsrG   rM   rX   r`   objectrb   rq   rv   r   r   _DefragResultBase_SplitResultBase_ParseResultBase__doc__r   r   r   r   r"  r   r   
ResultBaser   r   r   r   r   r   r   r   r   r   r   r   r   	lru_cacher   r   r	   r   r   r2  r6  r   r  r=  r   r   r   r   	frozensetrg  r3  r  rd  rm  rb  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@   rA   <module>r     s  B # " " " " "     				 



      H H H0 0 0
  - - -F F F A A A
% % %
 \  100 ' ' '      "4/( ( ( ( !3.H H H H2 2 2"V V V V Vf V V VV V V V V V V V#8 #8 #8 #8 #8V #8 #8 #8L    2O   <    46G   < J~~>> :68 8 :=? ?    !K   &   "   #N   #   !   "   %   !
   #3"9"A   "2"9"A    0 5 =   #   
 "2!7!?   $4$=$E   ! #
    $o            "$9      
         "$9          )+<            ')@      
         ')@      1 1 1     " " " "<  ) ) ) )D D D$$ $ $&G G G 4   5 5 5 ! 5n	N 	N 	N  &B: B: B: B:J6 6 6  #
  < 2:&''   8 :?PS' ' ' 'T ;@QTG G G GR- - - - y ! " " U<(( K K K    d   *4* 4* 4* 4*l$ $ $ $$ % % %2 2 2 2( !rD"M M M M`    
 
 
   	
 
 
   	    + + +  - - -   	  & & & &   "              , , , , ,r@   