
    q"hk                        S r SSKrSSKrSSKrSSKrSSKrSSKrSSKrSSK	r	SSK
r
SSKrSSKrSSKJr  SSKJr  SSKJrJrJr  SSKJrJrJrJrJrJrJrJrJrJrJ r J!r!J"r"J#r#J$r$J%r%J&r&  SSK'J(r(J)r)  SSK*J+r+  SS	K,J-r-  SS
K.J/r/  SSK0J1r1  SSK2J3r3  SSK4J5r5J6r6J7r7  SSK8J9r9J:r:  SSK;J<r<J=r=  SSK>J?r?J@r@  SSKAJBrBJCrCJDrDJErE  SSKFJGrGJHrHJIrIJJrJ  SSKKJLrL   " S S\!5      rM\R                  " \O5      rP\" S\Q5      rR\$\R\Q\%\S\Q4   4   rTSHS\QS\SS\$\Q\Q4   4S jjrUS\QS\\Q\4   4S jrVS\QS\W4S jrXS\S\W4S jrYS \5S\$\\Q\Q4   \\Q\Q4   4   4S! jrZS"\"\Q   S\ \Q   4S# jr[S$\\T   S\\$\Q\Q\Q4      4S% jr\S&\RS'\QS\Q4S( jr]S\QS'\QS\R4S) jr^S*\\\Q      S+\\R\R4   S,\#\R   S-\\Q   S'\QS\\T   4S. jr_S/\\Q\Q4   S\\Q   4S0 jr` " S1 S25      ra " S3 S45      rb " S5 S6\15      rcS7\QSS4S8 jrd " S9 S:\+5      re    SIS;\QS<\(S=\QS>\=S?\WS@\WSA\ \:   SB\WSS4SC jjrf\R                  SD\QS\SE   4SF j5       rh    SIS;\QS=\QS>\=SD\QS?\WS@\WSA\ \:   SB\WSS4SG jjrig)JzFSupport for installing and building the "wheel" binary package format.    N)urlsafe_b64encode)Message)chainfilterfalsestarmap)IOAnyBinaryIOCallableDict	GeneratorIterableIteratorListNewTypeOptionalProtocolSequenceSetTupleUnioncast)ZipFileZipInfo)ScriptMaker)get_export_entry)canonicalize_name)InstallationError)get_major_minor_version)BaseDistributionFilesystemWheelget_wheel_distribution)DIRECT_URL_METADATA_NAME	DirectUrl)SCHEME_KEYSScheme)adjacent_tmp_filereplace)StreamWrapper
ensure_dir	hash_file	partition)current_umaskis_within_directory2set_extracted_file_to_default_mode_plus_executablezip_item_is_executable)parse_wheelc                   >    \ rS rSr% S\S'   \\S'   \\S'   S	S jrSrg)
File>   
RecordPathsrc_record_path	dest_pathchangedNc                     g N selfs    X/var/www/html/env/lib/python3.13/site-packages/pip/_internal/operations/install/wheel.pysave	File.saveC   s        r;   returnN)	__name__
__module____qualname____firstlineno____annotations__strboolr?   __static_attributes__r;   rA   r>   r3   r3   >   s    !!NMrA   r3   r5   path	blocksizerC   c                     [        X5      u  p#S[        UR                  5       5      R                  S5      R	                  S5      -   nU[        U5      4$ )z?Return (encoded_digest, length) for path using hashlib.sha256()zsha256=latin1=)r+   r   digestdecoderstriprI   )rL   rM   hlengthrQ   s        r>   rehashrV   M   sI    $*IA*188:6==hGNNsSSFCK  rA   modec                     U SSS.$ )zHReturn keyword arguments to properly open a CSV file
in the given mode.
 utf-8)rW   newlineencodingr;   )rW   s    r>   csv_io_kwargsr]   T   s     RW==rA   c                 Z   [         R                  R                  U 5      (       d   e[        U S5       nUR	                  5       nUR                  S5      (       d
   SSS5        g[        R                  R                  [        R                  " 5       5      nSU-   [         R                  R                  S5      -   nUR                  5       nSSS5        [        U S5       nUR                  W5        UR                  W5        SSS5        g! , (       d  f       NF= f! , (       d  f       g= f)	zIReplace #!python with #!/path/to/python
Return True if file was changed.
rbs   #!pythonNFs   #!asciiwbT)osrL   isfileopenreadline
startswithsys
executableencodegetfilesystemencodinglinesepreadwrite)rL   script	firstlineexenamerests        r>   
fix_scriptrr   [   s    
 77>>$	dD	VOO%	##K00 
	 ..''(A(A(CDGObjj&7&7&@@	{{} 
 
dD	VYT 
  
	 
	 s   (D$A'D#D
D
D*metadatac                 H    U R                  SS5      R                  5       S:H  $ )NzRoot-Is-PurelibrY   true)getlower)rs   s    r>   wheel_root_is_purelibrx   o   s"    <<)2.446&@@rA   distc                     0 n0 nU R                  5        HW  nUR                  S:X  a  UR                  XR                  '   M-  UR                  S:X  d  M?  UR                  X#R                  '   MY     X4$ )Nconsole_scriptsgui_scripts)iter_entry_pointsgroupvaluename)ry   r{   r|   entry_points       r>   get_entrypointsr   s   so    OK--/ 110;0A0AO,,--/,7,=,=K(()	 0
 ''rA   scriptsc           	         U (       d  g[         R                  " [        5      nU  HT  n[        R                  R                  U5      n[        R                  R                  U5      nX   R                  U5        MV     [        R                  R                  SS5      R                  [        R                  5       Vs/ s H\  n[        R                  R                  [        R                  R                  U5      5      R                  [        R                  5      PM^     nnUR!                  [        R                  R                  [        R                  R                  [        R                  R                  ["        R$                  5      5      5      5        UR'                  5        VV s0 s HI  u  p0[        R                  R                  [        R                  R                  U5      5      U;  d  MG  X0_MK     nnn U(       d  g/ nUR'                  5        Hm  u  p9[)        U	5      n
[+        U
5      S:X  a
  SU
S    S3nO,SR-                  S	R/                  U
SS
 5      S-   U
S
   -   5      nUR!                  SU SU S35        Mo     Sn[+        U5      S:X  a!  UR!                  UR-                  S5      5        O UR!                  UR-                  S5      5        [1        S [        R                  R                  SS5      R                  [        R                  5       5       5      nU(       a  SnUR!                  U5        SR/                  U5      $ s  snf s  sn nf )zDetermine if any scripts are not on PATH and format a warning.
Returns a warning message if one or more scripts are not on PATH,
otherwise None.
NPATHrY      zscript r   z iszscripts {} are, z and zThe z installed in 'z' which is not on PATH.zeConsider adding {} to PATH or, if you prefer to suppress this warning, use --no-warn-script-location.zthis directoryzthese directoriesc              3   B   #    U  H  o(       d  M  US    S:H  v   M     g7f)r   ~Nr;   ).0is     r>   	<genexpr>4message_about_scripts_not_on_PATH.<locals>.<genexpr>   s       IQ!Is   
ziNOTE: The current PATH contains path(s) starting with `~`, which may not be expanded by all applications.
)collectionsdefaultdictsetrb   rL   dirnamebasenameaddenvironrv   splitpathsepnormcasenormpathrS   sepappendrg   rh   itemssortedlenformatjoinany)r   grouped_by_dirdestfile
parent_dirscript_namer   not_warn_dirswarn_for	msg_linesdir_scriptssorted_scripts
start_textlast_line_fmtwarn_for_tildetilde_warning_msgs                  r>   !message_about_scripts_not_on_PATHr   ~   s   
  +6*A*A#*FNWW__X.
gg&&x0"&&{3  +11"**==A 	))!,-44RVV<=   
))"''//#..*IJK
 $2#7#7#9%#9J77BGG,,Z89N 	
#9  %
  I#+>>#3
$*;$7~!#">!#4"5S9J)00		."-.8>";MMJ 	:,oj\9PQ	
 $4	C  9~--.>?@--.ABC  ZZ^^FB7==bjjI N = 	 	*+ 99Yk%s   <A#M*AM4Moutrowsc                 &    [        S U  5       5      $ )a  Normalize the given rows of a RECORD file.

Items in each row are converted into str. Rows are then sorted to make
the value more predictable for tests.

Each row is a 3-tuple (path, hash, size) and corresponds to a record of
a RECORD file (see PEP 376 and PEP 427 for details).  For the rows
passed to this function, the size can be an integer as an int or string,
or the empty string.
c              3   B   #    U  H  u  po1U[        U5      4v   M     g 7fr:   )rI   )r   record_pathhash_sizes       r>   r   &_normalized_outrows.<locals>.<genexpr>   s!      HO,DKeSY's   )r   )r   s    r>   _normalized_outrowsr      s    *  HO  rA   r   lib_dirc                 @    [         R                  R                  X5      $ r:   )rb   rL   r   )r   r   s     r>   _record_to_fs_pathr      s    77<<--rA   c                 p   [         R                  R                  U 5      S   R                  5       [         R                  R                  U5      S   R                  5       :X  a  [         R                  R	                  X5      n U R                  [         R                  R                  S5      n [        SU 5      $ )Nr   /r5   )rb   rL   
splitdriverw   relpathr(   r   r   )rL   r   s     r>   _fs_to_record_pathr      s}     
ww$"((*bgg.@.@.I!.L.R.R.TTwwt-<<S)Dd##rA   old_csv_rows	installedr8   	generatedc                    / nU  H  n[        U5      S:  a  [        R                  SU5        [        SUS   5      nUR	                  Xw5      nX;   a  [        [        X5      5      u  pO,[        U5      S:  a  US   OSn	[        U5      S:  a  US   OSn
UR                  XU
45        M     U H.  n[        X5      n[        U5      u  pUR                  XU
45        M0     UUR                  5        Vs/ s H  oSS4PM	     sn-   $ s  snf )zS
:param installed: A map from archive RECORD path to installation RECORD
    path.
   z,RECORD line has more than three elements: %sr5   r   r   rY      )
r   loggerwarningr   poprV   r   r   r   values)r   r   r8   r   r   installed_rowsrowold_record_pathnew_record_pathrQ   rU   frL   installed_record_paths                 r>   get_csv_rows_for_installedr      s    -/Ns8a<NNI3O|SV4#--I%#$6$PQNFF"3x!|SVF"3x!|SVF?@  !!-tV45  ENEUEUEWEW,AB'EW   s   3Dconsolec                    U R                  5       n / nU R                  SS5      nU(       a  S[        R                  ;  a  UR	                  SU-   5        [        R                  R                  SS5      S:w  a(  UR	                  S[        R                  S    SU 35        UR	                  S[        5        SU 35        U  Vs/ s H#  n[        R                  " S	U5      (       d  M!  UPM%     nnU H  nX	 M     U R                  S
S5      nU(       a  S[        R                  ;  a  UR	                  SU-   5        UR	                  S[        5        SU 35        U  Vs/ s H#  n[        R                  " SU5      (       d  M!  UPM%     nnU H  nX	 M     UR                  [        SR                  U R                  5       5      5        U$ s  snf s  snf )z_
Given the mapping from entrypoint name to callable, return the relevant
console script specs.
pipNENSUREPIP_OPTIONSzpip = rY   
altinstallr   z = zpip(\d+(\.\d+)?)?$easy_installzeasy_install = zeasy_install-zeasy_install(-\d+\.\d+)?${} = {})copyr   rb   r   r   rv   rg   version_infor   rematchextendr   r   r   )r   scripts_to_generate
pip_scriptkpip_epeasy_install_scripteasy_install_eps          r>   get_console_script_specsr     s    llnGB UD)Jbjj0&&x*'<=::>>-r2lB&&S-=-=a-@,AZL'QR""S)@)B(C3zl#ST$KW1F(J!WKA
 !++nd;bjj0&&'8;N'NO""356c:M9NO	

 
!"((+G"KAw 	 
 !A
 ! wy'7'7IJ+ L
s    G
'G
 GGc                   F    \ rS rSrS\S\S\SS4S jrS\4S jr	SS	 jr
S
rg)ZipBackedFileiY  r6   r7   zip_filerC   Nc                 6    Xl         X l        X0l        SU l        g NF)r6   r7   	_zip_filer8   )r=   r6   r7   r   s       r>   __init__ZipBackedFile.__init__Z  s      /"!rA   c                 L    U R                   R                  U R                  5      $ r:   )r   getinfor6   r<   s    r>   _getinfoZipBackedFile._getinfob  s    ~~%%d&:&:;;rA   c                 P   [         R                  R                  U R                  5      (       a   [         R                  " U R                  5        U R                  5       n[        U R                  S5       nUR                  S:  aQ  U R                  R                  U5       n[        UR                  S5      n[        R                  " X2U5        S S S 5        S S S 5        [        U5      (       a  [        U R                  5        g g ! , (       d  f       N== f! , (       d  f       NF= f)Nra   r      )rb   rL   existsr7   unlinkr   rd   	file_sizer   minshutilcopyfileobjr0   r/   )r=   zipinfodestr   rM   s        r>   r?   ZipBackedFile.savee  s     77>>$..))IIdnn%--/ $..$'4  1$^^((1Q #G$5$5{ CI&&q	: 2 ( "'**>t~~N +	 21 ('s$   5,D!.DD
D	D
D%)r   r8   r7   r6   rB   )rD   rE   rF   rG   r5   rI   r   r   r   r   r?   rK   r;   rA   r>   r   r   Y  s9    )69EL	<' <OrA   r   c                   (    \ rS rSrSS jrSS jrSrg)
ScriptFilei  Nc                     Xl         U R                   R                  U l        U R                   R                  U l        SU l        g r   )_filer6   r7   r8   )r=   files     r>   r   ScriptFile.__init__  s1    
#zz99--rA   c                 l    U R                   R                  5         [        U R                  5      U l        g r:   )r   r?   rr   r7   r8   r<   s    r>   r?   ScriptFile.save  s     

!$..1rA   )r   r8   r7   r6   )r   r3   rC   NrB   )rD   rE   rF   rG   r   r?   rK   r;   rA   r>   r   r     s    2rA   r   c                   4   ^  \ rS rSrS\SS4U 4S jjrSrU =r$ )MissingCallableSuffixi  r   rC   Nc                 ,   > [         TU ]  SU S35        g )NzInvalid script entry point: z - A callable suffix is required. Cf https://packaging.python.org/specifications/entry-points/#use-for-scripts for more information.)superr   )r=   r   	__class__s     r>   r   MissingCallableSuffix.__init__  s!    *;- 8 	
rA   r;   )rD   rE   rF   rG   rI   r   rK   __classcell__r  s   @r>   r  r    s    
C 
D 
 
rA   r  specificationc                 d    [        U 5      nUb"  UR                  c  [        [        U5      5      eg g r:   )r   suffixr  rI   )r  entrys     r>   _raise_for_invalid_entrypointr    s2    ]+EU\\1#CJ// 2rA   c                   T   ^  \ rS rSr SS\S\\\\4      S\\   4U 4S jjjr	Sr
U =r$ )PipScriptMakeri  r  optionsrC   c                 8   > [        U5        [        TU ]	  X5      $ r:   )r  r  make)r=   r  r  r  s      r>   r  PipScriptMaker.make  s     	&m4w|M33rA   r;   r:   )rD   rE   rF   rG   rI   r   r   r	   r   r  rK   r
  r  s   @r>   r  r    s9    FJ4 4+3DcN+C4	c4 4rA   r  r   	wheel_zip
wheel_pathscheme	pycompilewarn_script_location
direct_url	requestedc           
        ^^:^;^<^=^>^?^@ [        X5      u  p[        U	5      (       a  UR                  m@OUR                  m@0 m?[	        5       m;/ n
 S,S[
        S[        S[        SS4U;U?U@4S jjjnS[
        S[        4S jnS	[        S
[        SS4U4S jjm:S[        S[        S[        [
        /S4   4U:4S jjnS[        S[        S[        [
        /S4   4U:U4S jjnS[
        S[        4S jn[        [        [
           UR                  5       5      n[        UU5      n[        UU5      u  nnU" UT@5      n[!        UU5      nS[
        S[        4S jn[        UU5      u  nnU" X5      n[!        UU5      n[#        UU5      n[%        ['        T5      [)        U 5      5      n[+        U5      u  m<m>SSS[        4U<U>4S jjn[!        UU5      n[        UU5      n[!        [,        U5      n[#        UU5      n[	        5       nU H  n[.        R0                  R3                  UR4                  5      n U U;  a  [7        U 5        UR9                  U 5        UR;                  5         U" UR<                  UR4                  UR>                  5        M     S[@        [        SS4   4U?U@4S jjn!S[        S[        4S jn"U(       Ga0  [B        RD                  " [F        RH                  " [J        RL                  5      5       n#[N        RP                  " 5          [N        RR                  " S5        U!" 5        H  n$[T        RV                  " U$SSS9n%U%(       d  M"  U"" U$5      n&[.        R0                  RY                  U&5      (       d   e[        SU&R[                  [.        R0                  R\                  S5      5      n'U" U'U&5        M     SSS5        SSS5        [^        Ra                  W#Rc                  5       5        [e        SURf                  5      n(SU(l4        S1U(l5        SU(l6        [o        T<5      n)[q        [s        SRt                  T>Rw                  5       5      5      n*U(Ry                  U)5      n+U
R{                  U+5        U
R{                  U(Ry                  U*SS05      5        U(       a#  [}        U+5      n,U,b  [^        R                  U,5        S [        5       ) -  m=[B        R                  S[        S![        S[@        [        SS4   4U=4S" jj5       n-[.        R0                  R                  T@U5      n.[.        R0                  R                  U.S#5      n/U-" U/5       n0U0R                  S$5        SSS5        U
R                  U/5        Ubt  [.        R0                  R                  U.[        5      n1U-" U15       n2U2R                  UR                  5       R                  S%5      5        SSS5        U
R                  U15        U(       aG  [.        R0                  R                  U.S&5      n3[        U3S'5          SSS5        U
R                  U35        UR                  S(5      n4[q        [        R                  " U4R                  5       5      5      n5[        U5T?T;U
T@S)9n6[.        R0                  R                  U.S(5      n7U-" U740 [        S*5      D6 n8[        R                  " [        S+U85      5      n9U9R                  [        U65      5        SSS5        g! , (       d  f       GNK= f! , (       d  f       GNU= f! , (       d  f       GN= f! , (       d  f       GNe= f! , (       d  f       GN)= f! , (       d  f       g= f)-aY  Install a wheel.

:param name: Name of the project to install
:param wheel_zip: open ZipFile for wheel being installed
:param scheme: Distutils scheme dictating the install directories
:param req_description: String used in place of the requirement, for
    logging
:param pycompile: Whether to byte-compile installed Python files
:param warn_script_location: Whether to check that scripts are installed
    into a directory on PATH
:raises UnsupportedWheel:
    * when the directory holds an unpacked wheel with incompatible
      Wheel-Version
    * when the .dist-info dir does not match the wheel
srcfiler   modifiedrC   Nc                 Z   > [        UT5      nUTU '   U(       a  TR                  U5        gg)z6Map archive RECORD paths to installation RECORD paths.N)r   r   )r  r   r   newpathr8   r   r   s       r>   record_installed(_install_wheel.<locals>.record_installed  s/     %Xw7$	'KK  rA   rL   c                 $    U R                  S5      $ )Nr   )endswithrL   s    r>   is_dir_path#_install_wheel.<locals>.is_dir_path  s    }}S!!rA   dest_dir_pathtarget_pathc                 `   > [        X5      (       d  Sn[        UR                  TX5      5      eg )NzRThe wheel {!r} has a file {!r} trying to install outside the target directory {!r})r.   r   r   )r*  r+  messager  s      r>   assert_no_path_traversal0_install_wheel.<locals>.assert_no_path_traversal  s:    "=>>5  $z;F  ?rA   r   r   r3   c                 0   >^ ^ S[         SS4UUU 4S jjnU$ )Nr   rC   r3   c                    > [         R                  R                  U 5      n[         R                  R                  TU5      nT" TU5        [	        XT5      $ r:   )rb   rL   r   r   r   )r   normed_pathr7   r.  r   r   s      r>   make_root_scheme_fileM_install_wheel.<locals>.root_scheme_file_maker.<locals>.make_root_scheme_file  sB    ''**;7KT;7I$T95 BBrA   )r5   )r   r   r3  r.  s   `` r>   root_scheme_file_maker._install_wheel.<locals>.root_scheme_file_maker  s'    	Cz 	Cf 	C 	C %$rA   r  c                 |   >^ ^ [          Vs0 s H  o"[        X5      _M     snmS[        SS4UUUU 4S jjnU$ s  snf )Nr   rC   r3   c           
        > [         R                  R                  U 5      n UR                  [         R                  R                  S5      u  p#n T
U   n[         R                  R                  Xd5      nT	" Xh5        [        XT5      $ ! [
         a    ST SU < S3n[        U5      ef = f! [         a6    SR                  [        T
5      5      nST SU SU < SU S	3	n[        U5      ef = f)
Nr   zUnexpected file in z: zG. .data directory contents should be named like: '<scheme key>/<path>'.r   zUnknown scheme key used in z (for file zW). .data directory contents should be in subdirectories named with a valid scheme key ())rb   rL   r   r   r   
ValueErrorr   KeyErrorr   r   r   )r   r2  _
scheme_keydest_subpathr-  scheme_pathvalid_scheme_keysr7   r.  scheme_pathsr  r   s            r>   make_data_scheme_fileM_install_wheel.<locals>.data_scheme_file_maker.<locals>.make_data_scheme_file  s   ''**;7K1.9.?.?Q.O+|
1*:6 [?I$[< BB+  1)*R GM M  (001  1$(IIf\.B$C!1*R
| L!!, 0-.a1  (001s   -B B+  B(+A C+)r%   getattrr5   )r   r  keyrB  rA  r.  r  s   `   @r>   data_scheme_file_maker._install_wheel.<locals>.data_scheme_file_maker  sL     >II[cWV11[I	Cz 	Cf 	C 	C6 %$; Js   9c                 J    U R                  SS5      S   R                  S5      $ )Nr   r   r   .data)r   r&  r'  s    r>   is_data_scheme_path+_install_wheel.<locals>.is_data_scheme_path  s#    zz#q!!$--g66rA   c                     U R                  SS5      n[        U5      S:  =(       a#    US   R                  S5      =(       a    US   S:H  $ )Nr   r   r   rI  r   r   )r   r   r&  )rL   partss     r>   is_script_scheme_path-_install_wheel.<locals>.is_script_scheme_path  sB    

3"5zA~V%("3"3G"<VqYAVVrA   r   c                 |  > U R                   n[        R                  R                  U5      nUR	                  5       R                  S5      (       a  US S nOVUR	                  5       R                  S5      (       a  US S nO,UR	                  5       R                  S5      (       a  US S nOUnUT;   =(       d    UT;   $ )Nz.exez
-script.pyiz.pya)r7   rb   rL   r   rw   r&  )r   rL   r   	matchnamer   guis       r>   is_entrypoint_wrapper-_install_wheel.<locals>.is_entrypoint_wrapper+  s     ~~ww%::<  ((Sb	IZZ\""<00Tc
IZZ\""6**Sb	IIG#7yC'77rA   c               3   $  >#    [        [        TR                  5       5      5       He  n [        R                  R                  TU 5      n[        R                  R                  U5      (       d  MI  UR                  S5      (       d  Ma  Uv   Mg     g 7f)Nz.py)r   r   r   rb   rL   r   rc   r&  )installed_pathfull_installed_pathr   r   s     r>   pyc_source_file_paths-_install_wheel.<locals>.pyc_source_file_pathsN  sk     
 %S)9)9);%<=N"$'',,w"G77>>"566&//66%% >s   BBc                 @    [         R                  R                  U 5      $ )z8Return the path the pyc file would have been written to.)	importlibutilcache_from_sourcer'  s    r>   pyc_output_path'_install_wheel.<locals>.pyc_output_path[  s    ~~//55rA   ignoreT)forcequietr5   r   rY   r   rS  i  kwargsc              ;      >#    [        U 40 UD6 nUv   S S S 5        [        R                  " WR                  T5        [	        UR                  U 5        g ! , (       d  f       NF= f7fr:   )r'   rb   chmodr   r(   )rL   rd  r   generated_file_modes      r>   _generate_file&_install_wheel.<locals>._generate_file  sH     t.v.!G /
,- /.s   A&AA A&
A#A&	INSTALLERs   pip
rZ   	REQUESTEDra   RECORD)r   r8   r   r   wzIO[str])F)Tr1   rx   purelibplatlibr   r5   rI   rJ   r   r   r&   r   r   namelistr   r,   mapr   r"   r!   r   r   r   rb   rL   r   r7   r*   r   r?   r6   r8   r   
contextlibredirect_stdoutr)   from_streamrg   stdoutwarningscatch_warningsfilterwarnings
compileallcompile_filer   r(   r   r   debuggetvaluer  r   clobbervariantsset_moder   listr   r   r   make_multipler   r   r   r-   contextmanagerr	   r
   r   rm   r   r#   to_jsonri   rd   	read_textcsvreader
splitlinesr   r]   writer	writerowsr   )Ar   r  r  r  r  r  r  r  info_dirrs   r   r#  r(  r5  rF  rJ  paths
file_pathsroot_scheme_pathsdata_scheme_pathsr3  filesrN  other_scheme_pathsscript_scheme_pathsrB  other_scheme_filesdistributionrT  script_scheme_filesexisting_parentsr   r   rY  r_  ru  rL   successpyc_pathpyc_record_pathmakerr   gui_scripts_to_generategenerated_console_scriptsmsgrh  dest_info_dirinstaller_pathinstaller_filedirect_url_pathdirect_url_filerequested_pathrecord_textrecord_rowsrowsr   record_filer  r.  r8   r   rg  rS  r   r   sA     `                                                       @@@@@@@r>   _install_wheelr    sz   2 %Y5HX&&.... /1I"uGI >C!!'*!6:!	! !"* " " # $ 	%	%!$	%	:,&	'	% % %#) %	:,&	' %  %D7* 7 7 j!9#5#5#78E[%0J+45H*+U((29gF 57HIEWJ W4 W /80/++ 39E24FG%+,E *
#$L #<0LGS8F 8t 8 8  +.2+ &&;=PQj*=>%,-Eu WW__T^^4
--z"  ,		--t~~t||L &9S$_#= & &6c 6c 6
 ''%%cjj1
((*''113D(55d$dSGw#24#8!ww~~h7777*.((*:*:277;;*L+ )(C 4 +
 	V__&'40E EM
 TEN
 EN 37;"79+;+;SYY[#IJ % 3 34G H./U(()@5$-PQ/0IJ?NN3=?"22S C Ihd>R4S   GGLL(3M WW\\-=N		'>X& 
(^$ '',,}6NOO,!!*"4"4"6"="=g"FG -) m[A.$' ((((2Kszz+"8"8":;<K%D '',,}h7K		:}S'9	:k DK89,T23	 
;	:s +*
 
x 
(	' -, ('$ 
;	:s[   5\<[>A/[>:\\"'/\4"]:;]>
\	\
\"
\14
]
]
]&req_description)NNNc              #   |   #     S v   g ! [          a&  nSU  SUR                  S    3n[        U5      UeS nAff = f7f)Nz	For req: z. r   )r   args)r  er-  s      r>   req_error_contextr    sD     0 0o.b<(a/0s   <	 <
9!49<c                     [        USS9 n[        U5         [        U UUUUUUUS9  S S S 5        S S S 5        g ! , (       d  f       N= f! , (       d  f       g = f)NT)
allowZip64)r   r  r  r  r  r  r  r  )r   r  r  )	r   r  r  r  r  r  r  r  zs	            r>   install_wheelr    sU     
	-/%#%9%#	 0 
.	-// 
.	-s   A
9A

A	A


A)r   )TTNF)j__doc__r   ry  rr  r  r\  loggingos.pathrb   r   r   rg   rv  base64r   email.messager   	itertoolsr   r   r   typingr   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   zipfiler   r   pip._vendor.distlib.scriptsr   pip._vendor.distlib.utilr   pip._vendor.packaging.utilsr   pip._internal.exceptionsr   pip._internal.locationsr   pip._internal.metadatar    r!   r"   pip._internal.models.direct_urlr#   r$   pip._internal.models.schemer%   r&   pip._internal.utils.filesystemr'   r(   pip._internal.utils.miscr)   r*   r+   r,   pip._internal.utils.unpackingr-   r.   r/   r0   pip._internal.utils.wheelr1   r3   	getLoggerrD   r   rI   r5   intInstalledCSVRowrV   r]   rJ   rr   rx   r   r   r   r   r   r   r   r   r   r  r  r  r  r  r  r  r;   rA   r>   <module>r     s   L    
    	  
  $ ! 1 1    & % 3 5 9 6 ; 
 P ; E T T  28  
		8	$\3'

CsCx89! ! !5c? !> >S#X >S T (AG A A(* (uT#s(^T#s(^5S/T (E x} E # E Po&	%S#
4.J . . .$S $3 $: $tCy/J
*+ _ Cy	
  
/@Hd38n Hc HV#O #OL	2 	2
- 
0 0 04[ 4 !%&*^4
^4^4 ^4 	^4
 ^4 ^4 #^4 ^4 
^4B	 0s 0y9I/J 0 0 !%&*
  	
   #  
rA   