
    dafz                        	 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jF                  _"        d&ejH                  _"        d'e _"        d(e jJ                  _"        d)e jL                  _"        d*e jN                  _"        d+e jP                  _"        d,e jH                  _"        d-e!_"        e jJ                  jD                  e!jJ                  _"        e jL                  jD                  e!jL                  _"        e jN                  jD                  e!jN                  _"        d.e!jR                  _"        e jP                  jD                  e!jP                  _"        e jH                  jD                  e!jH                  _"        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        [1drd;Z2d< Z3dsd=Z4d> Z5d? Z6 ejn                  d:@      drdA       Z8dB Z9dC Z:dtdDZ;dE Z<dFZ=da>dG Z?dHe@eAz  eBz  dIe@eAz  fdJZC ej                  dK      ZEdL ZFdudMZG	 	 dvdOZH	 	 dvdPZIdudQZJ eKdR      ZL e@eL      ZMdS ZN G dT dUeO      ZPdwdVZQdxdWZRejn                  dX        ZSdydYZTdNd9ddeRfdZZUd[ ZVd\ ZWd] ZXd^ ZYdaZd_ Z[d` Z\da]da Z^db Z_dc Z`dd Zade Zbdf Zcdaddg 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)r   r   r   r   r   telnetr   r   r    r#   r!   r"   snewsr$   r%   r&   r'   rsyncr)   r*   r(   nfsgitzgit+sshr+   r,   zitms-services)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                  V    	 t         j                          t        j                          y N)r   cache_clear_byte_quoter_factory     '/root/Python-3.12.4/Lib/urllib/parse.pyclear_cacherB   ^   s    N$$&r@   asciistrictc                     | S r<   r?   )objs    rA   _nooprG   l   s    Jr@   c                 &    | j                  ||      S r<   encode)rF   encodingerrorss      rA   _encode_resultrM   o   s    ::h''r@   c                 0    t        fd| D              S )Nc              3   J   K   | ]  }|r|j                        nd   yw)r   Ndecode.0xrK   rL   s     rA   	<genexpr>z_decode_args.<locals>.<genexpr>u   s#     GQq(F+b8Gs    #)tuple)argsrK   rL   s    ``rA   _decode_argsrX   s   s    G$GGGr@   c                      t        | d   t              }| dd  D ]#  }|st        |t              |k7  s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   sn     47C(IABx D :c3'94BCC	D
 uh 111r@   c                       e Zd Z	 dZddZy)_ResultMixinStrr?   c                 8     | j                   fd| D         S )Nc              3   B   K   | ]  }|j                          y wr<   rI   rR   s     rA   rU   z)_ResultMixinStr.encode.<locals>.<genexpr>        *T!188Hf+E*T   )_encoded_counterpartselfrK   rL   s    ``rA   rJ   z_ResultMixinStr.encode       (t((*Tt*TUUr@   NrC   rD   )__name__
__module____qualname__	__slots__rJ   r?   r@   rA   rb   rb          HIVr@   rb   c                       e Zd Z	 dZddZy)_ResultMixinBytesr?   c                 8     | j                   fd| D         S )Nc              3   B   K   | ]  }|j                          y wr<   rP   rR   s     rA   rU   z+_ResultMixinBytes.decode.<locals>.<genexpr>   re   rf   )_decoded_counterpartrh   s    ``rA   rQ   z_ResultMixinBytes.decode   rj   r@   Nrk   )rl   rm   rn   ro   rQ   r?   r@   rA   rr   rr      rp   r@   rr   c                   v    e Zd Z	 dZed        Zed        Zed        Zed        Z e	e
j                        Zy)_NetlocResultMixinBaser?   c                      | j                   d   S )Nr   	_userinfori   s    rA   usernamez_NetlocResultMixinBase.username       ~~a  r@   c                      | j                   d   S )NrZ   ry   r{   s    rA   passwordz_NetlocResultMixinBase.password   r}   r@   c                     | j                   d   }|sy t        |t              rdnd}|j                  |      \  }}}|j	                         |z   |z   S )Nr   %   %)	_hostinfor[   r\   	partitionlower)ri   hostname	separatorpercentzones        rA   r   z_NetlocResultMixinBase.hostname   sV    >>!$ &h4C$	"*"4"4Y"?'4~~')D00r@   c                     | j                   d   }|\|j                         r|j                         rt        |      }nt	        d|      d|cxk  rdk  st	        d       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)ri   ports     rA   r   z_NetlocResultMixinBase.port   sr    ~~a ||~$,,.4y #Nth!WXX&& !<== ' !<==r@   N)rl   rm   rn   ro   propertyr|   r   r   r   classmethodtypesGenericAlias__class_getitem__r?   r@   rA   rw   rw      sk    RI! ! ! ! 1 1 	 	 $E$6$67r@   rw   c                   0    e Zd ZdZed        Zed        Zy)_NetlocResultMixinStrr?   c                     | j                   }|j                  d      \  }}}|r|j                  d      \  }}}|sd }||fS d x}}||fS )N@:netloc
rpartitionr   ri   r   userinfo	have_infohostinfor|   have_passwordr   s           rA   rz   z_NetlocResultMixinStr._userinfo   sh    (.(9(9#(>%)X080B0B30G-HmX  !! #'&Hx!!r@   c                    | j                   }|j                  d      \  }}}|j                  d      \  }}}|r+|j                  d      \  }}}|j                  d      \  }}}n|j                  d      \  }}}|sd }||fS )Nr   []r   r   ri   r   _r   have_open_br	bracketedr   r   s           rA   r   z_NetlocResultMixinStr._hostinfo   s    **3/1h%-%7%7%<"< ) 3 3C 8Ha,JAq$ ( 2 23 7HaD~r@   Nrl   rm   rn   ro   r   rz   r   r?   r@   rA   r   r      -    I	" 	"  r@   r   c                   0    e Zd ZdZed        Zed        Zy)_NetlocResultMixinBytesr?   c                     | j                   }|j                  d      \  }}}|r|j                  d      \  }}}|sd }||fS d x}}||fS )N   @   :r   r   s           rA   rz   z!_NetlocResultMixinBytes._userinfo   sh    (.(9(9$(?%)X080B0B40H-HmX  !! #'&Hx!!r@   c                    | j                   }|j                  d      \  }}}|j                  d      \  }}}|r+|j                  d      \  }}}|j                  d      \  }}}n|j                  d      \  }}}|sd }||fS )Nr      [   ]r   r   r   s           rA   r   z!_NetlocResultMixinBytes._hostinfo   s    **401h%-%7%7%="< ) 3 3D 9Ha-JAq$ ( 2 24 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y)r   r?   c                 j    | j                   r| j                  dz   | j                   z   S | j                  S N#fragmenturlr{   s    rA   geturlzDefragResult.geturlE  s)    ==88c>DMM1188Or@   Nrl   rm   rn   ro   r   r?   r@   rA   r   r   C      Ir@   c                       e Zd ZdZd Zy)r   r?   c                     t        |       S r<   r	   r{   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y)r   r?   c                     t        |       S r<   r   r{   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y)r   r?   c                 j    | j                   r| j                  dz   | j                   z   S | j                  S )N   #r   r{   s    rA   r   zDefragResultBytes.geturlX  s)    ==88d?T]]2288Or@   Nr   r?   r@   rA   r   r   V  r   r@   r   c                       e Zd ZdZd Zy)r   r?   c                     t        |       S r<   r   r{   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y)r   r?   c                     t        |       S r<   r   r{   s    rA   r   zParseResultBytes.geturle  r   r@   Nr   r?   r@   rA   r   r   c  r   r@   r   c                  z    t         t        ft        t        ft        t
        ff} | D ]  \  }}||_        ||_         y r<   )r   r   r   r   r   r   rg   ru   )_result_pairs_decoded_encodeds      rA   _fix_result_transcodingr   i  sJ    	()	&'	&'M
 , 1((0%(0%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  sz    & #/sF";C38K+6(FFC"3'VfeXFF&!!r@   c                     d| v r*| j                  d| j                  d            }|dk  r| dfS | j                  d      }| d | | |dz   d  fS )N/r   r   r   rZ   )findrfind)r   is     rA   r   r     sY    
s{HHS#))C.)q57NHHSMr7C!Ir@   c                     t        |       }dD ]&  }| j                  ||      }|dk\  st        ||      }( | || | |d  fS )Nz/?#r   )lenr   min)r   startdelimcwdelims        rA   _splitnetlocr     sW    HE '!U#Q;v&E' uUS[((r@   c                 0   | r| j                         ry dd l}| j                  dd      }|j                  dd      }|j                  dd      }|j                  dd      }|j                  d|      }||k(  ry dD ]  }||v st	        d	| z   d
z   dz          y )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<Z&03HHBC D DDr@   c                     | j                  d      r"t        j                  d|       st        d      y t	        j
                  |       }t        |t        j                        rt        d      y )Nvz\Av[a-fA-F0-9]+\..+\ZzIPvFuture 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xx0(;;== < !!(+b)//0DFF 1r@   )typedc                 P   	 t        | |      \  } }}| j                  t              } |j                  t              }t        D ]&  }| j                  |d      } |j                  |d      }( t        |      }dx}x}}| j                  d      }|dkD  rU| d   j                         rB| d   j                         r/| d | D ]  }	|	t        vs n | d | j                         | |dz   d  } }| d d dk(  rct        | d      \  }} d|v rd|vsd|v rd|vrt        d	      d|v r5d|v r1|j                  d      d   j                  d      d   }
t        |
       |rd
| v r| j!                  d
d      \  } }d| v r| j!                  dd      \  } }t#        |       t%        ||| ||      } ||      S )Nr   r   r   rZ      //r   r   zInvalid 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               rA   r   r     s   ( #/sF";C **0
1C\\56F( 'kk!R 2&' ?+O ""F"UXA1uQ!c!fnn&6Ra 	5A$	5 bq'--/3qst9CF
2Aw$"3*F]s&03f#4/00&=SF]#--c215??DQGN!.13#:		#q)X
czYYsA&
UFFC9A!r@   c           	      b    	 t        |  \  }}}}}}}|r|d|} |t        |||||f            S )Nr   )r`   r	   )
componentsr   r   r   r   r   r   r   s           rA   r   r     sM    5
 3?
2K AFFC.f%*ffc5(%KLMMr@   c                     	 t        |  \  }}}}}}|s|r|t        v s|d d dk(  r|r|d d dk7  rd|z   }d|xs 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{2s2Aw$3r7c>s3fl#c)slS Ci%Ci("#r@   c           
         	 | s|S |s| S t        | |      \  } }}t        | d|      \  }}}}}}	t        |||      \  }
}}}}}|
|k7  s|
t        vr ||      S |
t        v r|r |t	        |
|||||f            S |}|s!|s|}|}|s|} |t	        |
|||||f            S |j                  d      }|d   dk7  r|d= |d d dk(  r|j                  d      }n&||j                  d      z   }t        d |dd       |dd g }|D ]0  }|dk(  r	 |j                          |dk(  r |j                  |       2 |d   dv r|j                  d        |t	        |
|dj                  |      xs d|||f            S # t        $ r Y w xY w)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D#~T2/ 8GWeWfi S'?3 2FFD&% F-7c""!*ffd.4eX.G #H I IEj&&$*0%*C D E 	E S!J"~ rN BQx3::c?

3/  hqn52M &$;!!#
 CZ  %& |{" 	R *ffchh7 7vuh&8 9 : :   s   E22	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   `  sh     's+C
cz&sm1aAtQ1aB/0,vt455r@   0123456789ABCDEFabcdefc                 ,    	 t        t        |             S r<   )bytes_unquote_impl)strings    rA   r   r   s  s    6v&''r@   r/  returnc           
         | s| j                    yt        | t              r| j                  d      } | j                  d      }t	        |      dk(  r| S t        |d         }|j                  }t        It        D ci c]7  }t        D ],  }||z   j                         t        j                  ||z         . 9 c}}a|dd  D ]   }	  |t        |d d            ||dd         " |S c c}}w # t        $ r  |d        ||       Y Fw xY w)Nr@   utf-8r   rZ   r   r   )r  r[   r\   rJ   r   	bytearrayextend
_hextobyte_hexdigr-  fromhexKeyError)r/  bitsresr  r'  r  items          rA   r.  r.  w  s    &#w'<<D
4yA~
DG
CZZF &99+, 1unn&a!e(<< 9& 9
QR 	:d2Ah'(48 J9  	4L4L	s   ;<C%C++DDz([ -]+)c              #      K   d}t         j                  |       D ]>  }|j                         \  }}| ||  t        |d         j	                  ||       |}@ | |d   y w)Nr   rZ   )_asciirefinditerspanr.  rQ   )r/  rK   rL   previous_match_endascii_matchr   ends          rA   _generate_unquoted_partsrC    sy     ((0 ! %%'
s'..KN+228VDD ! #$
%%s   A!A#c                     	 t        | t              rt        |       j                  ||      S d| vr| j                   | S |d}|d}dj                  t        | ||            S )Nr   r2  r   r   )r[   r-  r.  rQ   r  r  rC  r/  rK   rL   s      rA   r   r     sm     &% V$++Hf==
&~77+FHfEFFr@   Fc           	          	 i }t        | ||||||      }|D ]$  \  }	}
|	|v r||	   j                  |
       |
g||	<   & |S )N)rK   rL   max_num_fieldsr   )r   r  )qskeep_blank_valuesstrict_parsingrK   rL   rG  r   parsed_resultpairsnamevalues              rA   r   r     sn    8 Mb+^'%3yJE  *e= $&&u-#('M$	*
 r@   c                 Z   	 |rt        |t        t        f      st        d      t        | t              r%t        |t              st        |d      }d}fd}n9| sg S t        t	        |             } t        |t              rt        |d      }d}d }| sg S |$d| j                  |      z   }	||	k  rt        d      g }
| j                  |      D ]V  }|s|s|j                  |      \  }}}|s|rt        d	|      |s|s4 ||      } ||      }|
j                  ||f       X |
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Dr@      =c                 8    t        | j                  dd            S )N   +    )r   r   )r%  s    rA   rR  zparse_qsl.<locals>._unquote  s    #AIIdD$9::r@   rZ   zMax number of fields exceededzbad query field: )	r[   r\   r-  r   
memoryviewcountr  r   r  )rH  rI  rJ  rK   rL   rG  r   eqrR  
num_fieldsr
name_valuerM  has_eqrN  s      ``          rA   r   r     s?   8 Jy3,?EFF"c)S)Iw/I	E I :b>"i%i1I	; 	
 !),,
J&<==
Ahhy) (
","6"6r":D&%n *!FGG)~ $'( Hr@   c                 B    	 | j                  dd      } t        | ||      S )N+ )r   r   rE  s      rA   r   r   *  s(    
 ^^C%F68V,,r@   sB   ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789_.-~c                 z    | 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AttributeErrorrl   )rM  s    rA   __getattr__rj  9  sC    x @ )Q	8 
78,.@I
JJr@   c                        e Zd Z	 d Zd Zd Zy)rh  c                 :    	 t         j                  |      | _        y r<   )_ALWAYS_SAFEunionsafe)ri   ro  s     rA   __init__z_Quoter.__init__J  s    ! &&t,	r@   c                      dt        |       dS )Nz<Quoter >)dictr{   s    rA   __repr__z_Quoter.__repr__N  s    $t*q))r@   c                 d    || j                   v rt        |      ndj                  |      }|| |<   |S )Nz%{:02X})ro  chrformat)ri   r  r:  s      rA   __missing__z_Quoter.__missing__Q  s0    TYYc!fI,<,<Q,?Q
r@   N)rl   rm   rn   rp  rt  rx  r?   r@   rA   rh  rh  B  s    -*r@   rh  c                     	 t        | t              r| s| S |d}|d}| j                  ||      } n|t        d      |t        d      t	        | |      S )Nr2  rD   z,quote() doesn't support 'encoding' for bytesz*quote() doesn't support 'errors' for bytes)r[   r\   rJ   r]   r   )r/  ro  rK   rL   s       rA   r   r   W  sr    %L &#MH>Fx0JKKH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   ||      } | j	                  dd      S )Nr`  rV  r_  )r[   r\   r-  r   r   )r/  ro  rK   rL   spaces        rA   r   r     su     
FC	 S%6	FE	"t6'9VT8V44$64%<6:F>>#s##r@   c                 ,    t        |       j                  S r<   )rh  __getitem__)ro  s    rA   r>   r>     s    4=$$$r@   c                 ^   	 t        | t        t        f      st        d      | syt        |t              r|j                  dd      }nt        |D cg c]
  }|dk  s	| c}      }| j                  t        |z         s| j                         S t        |      }t        |       x}dk  rdj                  t        ||             S t        j                  |      }t        d||      D cg c]#  }dj                  t        || |||z                % }}dj                  |      S c c}w c c}w )Nz!quote_from_bytes() expected bytesr   rC   ignore   i@ r   )r[   r-  r3  r]   r\   rJ   rstrip_ALWAYS_SAFE_BYTESrQ   r>   r   r  mapmathisqrtrange)bsro  r   quoterbs_len
chunk_sizer   chunkss           rA   r   r     s    b5),-;<<${{7H- 1ASa1299'$./yy{!$'Fb'W$wws62'' ZZ'
 FJ79 ''#fb1Z<&89: 9 9wwv 29s   
D%D%*(D*c                 F   	 t        | d      r| j                         } n%	 t        |       rt        | d   t              st
        g }|s~| D ]x  \  }}	t        |t              r
 |||      }n |t        |      |||      }t        |	t              r
 ||	|      }	n |t        |	      |||      }	|j                  |dz   |	z          z n| D ]  \  }}	t        |t              r
 |||      }n |t        |      |||      }t        |	t              r! ||	|      }	|j                  |dz   |	z          et        |	t              r# ||	|||      }	|j                  |dz   |	z          	 t        |	      }
|	D ]G  }t        |t              r
 |||      }n |t        |      |||      }|j                  |dz   |z          I  dj                  |      S # t
        $ r}t        d      |d }~ww xY w# t
        $ r/  |t        |	      |||      }	|j                  |dz   |	z          Y Ww xY w)Nitemsr   z1not a valid non-string sequence or mapping objectrP  &)
hasattrr  r   r[   rV   r]   r-  r\   r  r  )r   doseqro  rK   rL   	quote_viaerrlkr   rT   elts               rA   r
   r
     s(    ug	: 5z*U1Xu"= 	A 
	"DAq!U#a&c!fdHf=!U#a&c!fdHf=HHQWq[!
	"  	0DAq!U#a&c!fdHf=!U#a&S1%As#ax8S1%0AA  ! 0%c51"+C"6C"+CHdHf"MCS3/0-	08 88A;]  	: 0 169:	:D ! *!#a&$&AAHHQWq[)*s)   $G !G(	G%G  G%(4H H c                 P    t        j                  dt        d       t        |       S )Nz/urllib.parse.to_bytes() is deprecated as of 3.8r   rc  )re  rf  rg  	_to_bytesr   s    rA   to_bytesr    s     MMC$4S>r@   c                     	 t        | t              r"	 | j                  d      j                         } | S | S # t        $ r t	        dt        |       z   dz         w xY w)NASCIIzURL z contains non-ASCII characters)r[   r\   rJ   rQ   UnicodeErrorreprr  s    rA   r  r    so    % #s	A**W%,,.C J3J  	AvS	1? @ A A	As	   6 $Ac                     	 t        |       j                         } | d d dk(  r| dd  dk(  r| dd j                         } | d d dk(  r| dd  j                         } | S )NrZ   <r  rr     zURL:)r\   r  r  s    rA   unwrapr  "  sh     c(..
C
2Aw#~#bc(c/!Bioo
2Aw&!"gmmoJr@   c                 P    t        j                  dt        d       t        |       S )NzUurllib.parse.splittype() is deprecated as of 3.8, use urllib.parse.urlparse() insteadr   rc  )re  rf  rg  
_splittyper  s    rA   	splittyper  /  $    MM 8$4 c?r@   c                     	 t         $t        j                  dt        j                        a t         j	                  |       }|r%|j                         \  }}|j                         |fS d | fS )Nz([^/:]+):(.*))	_typeprogr   compileDOTALLr   groupsr   )r   r   r   datas       rA   r  r  7  sZ    DJJ		:	OOC E||~||~t##9r@   c                 P    t        j                  dt        d       t        |       S )NzUurllib.parse.splithost() is deprecated as of 3.8, use urllib.parse.urlparse() insteadr   rc  )re  rf  rg  
_splithostr  s    rA   	splithostr  D  r  r@   c                     	 t         $t        j                  dt        j                        a t         j	                  |       }|r&|j                         \  }}|r|d   dk7  rd|z   }||fS d | fS )Nz//([^/#?]*)(.*)r   r   )	_hostprogr   r  r  r   r  )r   r   	host_portr  s       rA   r  r  L  sj    EJJ0"))<	OOC E,,.	4DGsN:D$9r@   c                 P    t        j                  dt        d       t        |       S )NzUurllib.parse.splituser() is deprecated as of 3.8, use urllib.parse.urlparse() insteadr   rc  )re  rf  rg  
_splituserhosts    rA   	splituserr  [  %    MM 8$4 dr@   c                 B    	 | j                  d      \  }}} |r|| fS d | fS )Nr   r   )r  userr   s      rA   r  r  b  s1    T,D%Dd**td**r@   c                 P    t        j                  dt        d       t        |       S )NzWurllib.parse.splitpasswd() is deprecated as of 3.8, use urllib.parse.urlparse() insteadr   rc  )re  rf  rg  _splitpasswd)r  s    rA   splitpasswdr  h  s%    MM 8$4 r@   c                 @    	 | j                  d      \  } }}| |r|fS d fS Nr   r   )r  r   passwds      rA   r  r  o  s/    9..-D%E&,,t,,r@   c                 P    t        j                  dt        d       t        |       S )NzUurllib.parse.splitport() is deprecated as of 3.8, use urllib.parse.urlparse() insteadr   rc  )re  rf  rg  
_splitportr  s    rA   	splitportr  u  r  r@   c                     	 t         $t        j                  dt        j                        a t         j	                  |       }|r|j                         \  } }|r| |fS | d fS )Nz(.*):([0-9]*))	_portprogr   r  r  	fullmatchr  )r  r   r   s      rA   r  r  ~  sX    4JJ		:	%E\\^
d::r@   c                 R    t        j                  dt        d       t        | |      S )NzVurllib.parse.splitnport() is deprecated as of 3.8, use urllib.parse.urlparse() insteadr   rc  )re  rf  rg  _splitnport)r  defports     rA   
splitnportr    s'    MM 8$4 tW%%r@   c                     	 | j                  d      \  } }}|s|} | |fS |r5|j                         r|j                         rt        |      }| |fS d }| |fS | |fS r  )r   r   r   r   )r  r  r   r   nports        rA   r  r    sx    2 ,D% = 
<<>dllnIE U{ EU{=r@   c                 P    t        j                  dt        d       t        |       S )NzVurllib.parse.splitquery() is deprecated as of 3.8, use urllib.parse.urlparse() insteadr   rc  )re  rf  rg  _splitqueryr  s    rA   
splitqueryr    s%    MM 8$4 sr@   c                 B    	 | j                  d      \  }}}|r||fS | d fS )Nr   r  )r   r  r   r   s       rA   r  r    s1    9,D%U{9r@   c                 P    t        j                  dt        d       t        |       S )NzTurllib.parse.splittag() is deprecated as of 3.8, use urllib.parse.urlparse() insteadr   rc  )re  rf  rg  	_splittagr  s    rA   splittagr    s$    MM 8$4 S>r@   c                 B    	 | j                  d      \  }}}|r||fS | d fS r   r  )r   r  r   tags       rA   r  r    s1    3~~c*D%Sy9r@   c                 P    t        j                  dt        d       t        |       S )NzUurllib.parse.splitattr() is deprecated as of 3.8, use urllib.parse.urlparse() insteadr   rc  )re  rf  rg  
_splitattrr  s    rA   	splitattrr    r  r@   c                 :    	 | j                  d      }|d   |dd  fS )Nr   r   rZ   )r  )r   wordss     rA   r  r    s)    ;IIcNE8U12Yr@   c                 P    t        j                  dt        d       t        |       S )NzWurllib.parse.splitvalue() is deprecated as of 3.8, use urllib.parse.parse_qsl() insteadr   rc  )re  rf  rg  _splitvalue)attrs    rA   
splitvaluer    s%    MM 9$4 tr@   c                 @    	 | j                  d      \  } }}| |r|fS d fS )NrP  r  )r  r   rN  s      rA   r  r    s/    7,D%5%++d++r@   )r   T)r   )T)r2  r   )FFr2  r   Nr  )r   NN)r   NN)r   )r  )pcollectionsr   	functoolsr  r   r   re  r   __all__r  r  r   non_hierarchical
uses_queryuses_fragmentr  r  r  rB   _implicit_encoding_implicit_errorsrG   rM   rX   r`   objectrb   rr   rw   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   	lru_cacher   r   r	   r   r   r6  r5  r   r-  r3  r\   r.  r  r=  rC  r   r   r   r   	frozensetrm  r  rj  rs  rh  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0
--F A
%
 \  1 '    "4/( !3.H2"Vf VV V#8V #8L2O <46G < ~~> 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:J6  #
(%)+c1 ei6G : 2::&'&G. :?PS'T ;@QTGR-  ! " <( Kd *4*l$$ % %6 !rD"M`
 	
 	+- 	&",r@   