§
    �’j’t  ã                  ó>  — d Z 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ddl	Z
ddlZddlZddlZddlZddlZddlmZ ddlmZmZmZmZmZ ddlmZ ddlmZmZmZ ddlmZ dd	l m!Z!m"Z"m#Z#m$Z$m%Z%m&Z& dd
l'm(Z(m)Z) ddl*m+Z+ ddl,m-Z- ddl.m/Z/ ddl0m1Z1 ddl2m3Z3 ddl4m5Z5m6Z6m7Z7 ddl8m9Z9m:Z: ddl;m<Z<m=Z= ddl>m?Z?m@Z@ ddlAmBZBmCZCmDZDmEZE ddlFmGZGmHZHmIZImJZJ ddlKmLZL  G d„ de%¦  «        ZM ejN        eO¦  «        ZP e$deQ¦  «        ZReSeReQeTeQz  f         ZUdfdgd!„ZVdhd$„ZWdid&„ZXdjd)„ZYdkd-„ZZdld1„Z[dmd5„Z\dnd8„Z]dod9„Z^dpdC„Z_dqdF„Z` G dG„ dH¦  «        Za G dI„ dJ¦  «        Zb G dK„ dLe1¦  «        ZcdrdP„Zd G dQ„ dRe+¦  «        Ze	 	 	 	 	 dsdtda„Zfejg        dudd„¦   «         Zh	 	 	 	 	 dsdvde„ZidS )wzFSupport for installing and building the "wheel" binary package format.é    )ÚannotationsN)Úurlsafe_b64encode)ÚCallableÚ	GeneratorÚIterableÚIteratorÚSequence)ÚMessage)ÚchainÚfilterfalseÚstarmap)ÚPath)ÚIOÚAnyÚBinaryIOÚNewTypeÚProtocolÚ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_directoryÚ2set_extracted_file_to_default_mode_plus_executableÚzip_item_is_executable)Úparse_wheelc                  ó6   — e Zd ZU ded<   ded<   ded<   dd	„Zd
S )ÚFileÚ
RecordPathÚsrc_record_pathÚstrÚ	dest_pathÚboolÚchangedÚreturnÚNonec                ó   — d S ©N© ©Úselfs    úTC:\Projects\DSCons\.venv\Lib\site-packages\pip\_internal\operations\install\wheel.pyÚsavez	File.save=   s   € Øˆó    N©r6   r7   )Ú__name__Ú
__module__Ú__qualname__Ú__annotations__r>   r:   r?   r=   r/   r/   8   sH   € € € € € € ØÐÐÑØ€N€N�NØ€M€M�Mðð ð ð ð ð r?   r/   r0   é   Úpathr2   Ú	blocksizeÚintr6   útuple[str, str]c                óÞ   — t          | |¦  «        \  }}dt          |                     ¦   «         ¦  «                             d¦  «                             d¦  «        z   }|t          |¦  «        fS )z?Return (encoded_digest, length) for path using hashlib.sha256()zsha256=Úlatin1ú=)r'   r   ÚdigestÚdecodeÚrstripr2   )rF   rG   ÚhÚlengthrM   s        r=   ÚrehashrR   G   s]   € å˜$ 	Ñ*Ô*�I€A€vØÕ*¨1¯8ª8©:¬:Ñ6Ô6×=Ò=¸hÑGÔG×NÒNÈsÑSÔSÑS€FØ•C˜‘K”KÐ Ð r?   Úmodeúdict[str, Any]c                ó   — | dddœS )zPReturn keyword arguments to properly open a CSV file
    in the given mode.
    Ú úutf-8)rS   ÚnewlineÚencodingr:   )rS   s    r=   Úcsv_io_kwargsrZ   N   s   € ð  R°WÐ=Ð=Ð=r?   r4   c                ó|  — t           j                             | ¦  «        sJ ‚t          | d¦  «        5 }|                     ¦   «         }|                     d¦  «        s	 ddd¦  «         dS t          j                             t          j	        ¦   «         ¦  «        }d|z   t           j
                             d¦  «        z   }|                     ¦   «         }ddd¦  «         n# 1 swxY w Y   t          | d¦  «        5 }|                     |¦  «         |                     |¦  «         ddd¦  «         n# 1 swxY w Y   dS )	zQReplace #!python with #!/path/to/python
    Return True if file was changed.
    Úrbs   #!pythonNFs   #!ÚasciiÚwbT)ÚosrF   ÚisfileÚopenÚreadlineÚ
startswithÚsysÚ
executableÚencodeÚgetfilesystemencodingÚlinesepÚreadÚwrite)rF   ÚscriptÚ	firstlineÚexenameÚrests        r=   Ú
fix_scriptro   U   sª  € õ
 Œ7�>Š>˜$ÑÔÐÐÐå	ˆd�DÑ	Ô	ð ˜VØ—O’OÑ%Ô%ˆ	Ø×#Ò# KÑ0Ô0ð 	Øðð ð ñ ô ð ð ð õ ”.×'Ò'­Ô(AÑ(CÔ(CÑDÔDˆØ˜G‘O¥b¤j×&7Ò&7¸Ñ&@Ô&@Ñ@ˆ	Ø�{Š{‰}Œ}ˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ 
ˆd�DÑ	Ô	ð ˜VØ�Š�YÑÔÐØ�Š�TÑÔÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ˆ4s*   ²+CÁ*A)CÃC#Ã&C#Ã:+D1Ä1D5Ä8D5Úmetadatar
   c                óZ   — |                       dd¦  «                             ¦   «         dk    S )NzRoot-Is-PurelibrV   Útrue)ÚgetÚlower)rp   s    r=   Úwheel_root_is_purelibru   i   s(   € Ø�<Š<Ð)¨2Ñ.Ô.×4Ò4Ñ6Ô6¸&Ò@Ð@r?   Údistr   ú%tuple[dict[str, str], dict[str, str]]c                óª   — i }i }|                       ¦   «         D ]7}|j        dk    r|j        ||j        <   Œ|j        dk    r|j        ||j        <   Œ8||fS )NÚconsole_scriptsÚgui_scripts)Úiter_entry_pointsÚgroupÚvalueÚname)rv   ry   rz   Úentry_points       r=   Úget_entrypointsr€   m   ss   € Ø€OØ€KØ×-Ò-Ñ/Ô/ð >ð >ˆØÔÐ 1Ò1Ð1Ø0;Ô0AˆO˜KÔ,Ñ-Ð-ØÔ -Ò/Ð/Ø,7Ô,=ˆK˜Ô(Ñ)øØ˜KÐ'Ð'r?   ÚscriptsúSequence[str]ú
str | Nonec                óN  ‡— | sdS t          j        t          ¦  «        }| D ]L}t          |¦  «        }|j                             ¦   «         }|j        }||                              |¦  «         ŒMd„ t          j	         
                    dd¦  «                             t          j        ¦  «        D ¦   «         Š‰                     t          t          j        ¦  «        j                             ¦   «         ¦  «         ˆfd„|                     ¦   «         D ¦   «         }|sdS g }|                     ¦   «         D ]Œ\  }}t#          |¦  «        }	t%          |	¦  «        dk    rd|	d         › d	�}
n<d
                     d                     |	dd…         ¦  «        dz   |	d         z   ¦  «        }
|                     d|
› d|› d�¦  «         Œ�d}t%          |¦  «        dk    r)|                     |                     d¦  «        ¦  «         n(|                     |                     d¦  «        ¦  «         t+          d„ t          j	         
                    dd¦  «                             t          j        ¦  «        D ¦   «         ¦  «        }|rd}|                     |¦  «         d                     |¦  «        S )z�Determine 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.
    Nc                óP   — g | ]#}t          |¦  «                             ¦   «         ‘Œ$S r:   )r   Úresolve©Ú.0Úis     r=   ú
<listcomp>z5message_about_scripts_not_on_PATH.<locals>.<listcomp>‰   s5   € ð ð ð Ø�ˆQ‰Œ�ŠÑÔðð ð r?   ÚPATHrV   c                ó$   •— i | ]\  }}|‰v¯	||“ŒS r:   r:   )rˆ   Ú
parent_dirr�   Únot_warn_dirss      €r=   ú
<dictcomp>z5message_about_scripts_not_on_PATH.<locals>.<dictcomp>�   s4   ø€ ð &ð &ð &áˆJ˜Ø˜]Ð*Ð*ð 	�Gà*Ð*Ð*r?   é   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  ó2   K  — | ]}|¯|d          dk    V — ŒdS )r   ú~Nr:   r‡   s     r=   ú	<genexpr>z4message_about_scripts_not_on_PATH.<locals>.<genexpr>°   sC   è è € ð ð ØÈQðØ	ˆ!Œ�Šðð ð ð ð ð r?   ziNOTE: The current PATH contains path(s) starting with `~`, which may not be expanded by all applications.ú
)ÚcollectionsÚdefaultdictÚsetr   Úparentr†   r~   Úaddr_   Úenvironrs   ÚsplitÚpathsepÚappendrd   re   ÚitemsÚsortedÚlenÚformatÚjoinÚany)r�   Úgrouped_by_dirÚdestfiler3   r�   Úscript_nameÚwarn_forÚ	msg_linesÚdir_scriptsÚsorted_scriptsÚ
start_textÚlast_line_fmtÚwarn_for_tildeÚtilde_warning_msgrŽ   s                 @r=   Ú!message_about_scripts_not_on_PATHr±   x   så  ø€ ð
 ð Øˆtõ ,7Ô+BÅ3Ñ+GÔ+G€NØð 4ð 4ˆÝ˜‘N”Nˆ	ØÔ%×-Ò-Ñ/Ô/ˆ
Ø”nˆØ�zÔ"×&Ò& {Ñ3Ô3Ð3Ð3ðð Ý#%¤:§>¢>°&¸"Ñ#=Ô#=×#CÒ#CÅBÄJÑ#OÔ#Oðñ ô €Mð
 ×Ò��cœnÑ-Ô-Ô4×<Ò<Ñ>Ô>Ñ?Ô?Ð?ð&ð &ð &ð &à#1×#7Ò#7Ñ#9Ô#9ð&ñ &ô &€Hð
 ð Øˆtð €IØ#+§>¢>Ñ#3Ô#3ð 
ð 
Ñˆ
�KÝ$*¨;Ñ$7Ô$7ˆÝˆ~ÑÔ !Ò#Ð#Ø9 >°!Ô#4Ð9Ð9Ð9ˆJˆJà)×0Ò0Ø—	’	˜.¨¨"¨Ô-Ñ.Ô.°Ñ8¸>È"Ô;MÑMñô ˆJð 	×ÒØQ�:ÐQÐQ¨jÐQÐQÐQñ	
ô 	
ð 	
ð 	
ð
	Cð õ ˆ9�~„~˜ÒÐØ×Ò˜×-Ò-Ð.>Ñ?Ô?Ñ@Ô@Ð@Ð@à×Ò˜×-Ò-Ð.AÑBÔBÑCÔCÐCõ ð ð ÝœZŸ^š^¨F°BÑ7Ô7×=Ò=½b¼jÑIÔIðñ ô ñ ô €Nð ð ,ð=ð 	ð 	×ÒÐ*Ñ+Ô+Ð+ð �9Š9�YÑÔÐr?   ÚoutrowsúIterable[InstalledCSVRow]úlist[tuple[str, str, str]]c                ó4   — t          d„ | D ¦   «         ¦  «        S )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   K  — | ]\  }}}||t          |¦  «        fV — Œd S r9   )r2   )rˆ   Úrecord_pathÚhash_Úsizes       r=   r•   z&_normalized_outrows.<locals>.<genexpr>Ó   sF   è è € ð ð Ù,D¨K¸Àˆ�e�S ™YœYÐ'ðð ð ð ð ð r?   )r¡   )r²   s    r=   Ú_normalized_outrowsrº   ¾   s2   € õ* ð ð ØHOðñ ô ñ ô ð r?   r·   Úlib_dirc                óB   — t           j                             || ¦  «        S r9   )r_   rF   r¤   )r·   r»   s     r=   Ú_record_to_fs_pathr½   Ø   s   € ÝŒ7�<Š<˜ Ñ-Ô-Ð-r?   c                óŒ  — t           j                             | ¦  «        d                              ¦   «         t           j                             |¦  «        d                              ¦   «         k    r t           j                             | |¦  «        } |                      t           j        j        d¦  «        } t          d| ¦  «        S )Nr   ú/r0   )r_   rF   Ú
splitdrivert   Úrelpathr$   Úsepr   )rF   r»   s     r=   Ú_fs_to_record_pathrÃ   Ü   s�   € õ 
„w×Ò˜$ÑÔ Ô"×(Ò(Ñ*Ô*­b¬g×.@Ò.@ÀÑ.IÔ.IÈ!Ô.L×.RÒ.RÑ.TÔ.TÒTÐTÝŒw�Š˜t WÑ-Ô-ˆà�<Š<�œœ SÑ)Ô)€DÝ�˜dÑ#Ô#Ð#r?   Úold_csv_rowsúlist[list[str]]Ú	installedúdict[RecordPath, RecordPath]r5   úset[RecordPath]Ú	generatedú	list[str]úlist[InstalledCSVRow]c                ór  — g }| D ]Ó}t          |¦  «        dk    rt                               d|¦  «         t          d|d         ¦  «        }|                     ||¦  «        }||v r!t          t          ||¦  «        ¦  «        \  }	}
n:t          |¦  «        dk    r|d         nd}	t          |¦  «        dk    r|d         nd}
|                     ||	|
f¦  «         ŒÔ|D ]<}t          ||¦  «        }t          |¦  «        \  }	}
|                     ||	|
f¦  «         Œ=|d„ | 	                    ¦   «         D ¦   «         z   S )	z_
    :param installed: A map from archive RECORD path to installation RECORD
        path.
    é   z,RECORD line has more than three elements: %sr0   r   r�   rV   é   c                ó   — g | ]}|d d f‘ŒS )rV   r:   )rˆ   Úinstalled_record_paths     r=   rŠ   z.get_csv_rows_for_installed.<locals>.<listcomp>  s-   € ð ð ð Ø,AÐ	  BÐ'ðð ð r?   )
r¢   ÚloggerÚwarningr   ÚpoprR   r½   rŸ   rÃ   Úvalues)rÄ   rÆ   r5   rÉ   r»   Úinstalled_rowsÚrowÚold_record_pathÚnew_record_pathrM   rQ   ÚfrF   s                r=   Úget_csv_rows_for_installedrÚ   æ   sa  € ð -/€NØð 
Að 
AˆÝˆs‰8Œ8�aŠ<ˆ<Ý�NŠNÐIÈ3ÑOÔOÐOÝ˜|¨S°¬VÑ4Ô4ˆØ#Ÿ-š-¨¸ÑIÔIˆØ˜gÐ%Ð%Ý#Õ$6°ÈÑ$PÔ$PÑQÔQ‰NˆF�F�Få" 3™xœx¨!š|˜|�S˜”V�V°ˆFÝ" 3™xœx¨!š|˜|�S˜”V�V°ˆFØ×Ò˜°¸Ð?Ñ@Ô@Ð@Ð@Øð 6ð 6ˆÝ! ! WÑ-Ô-ˆÝ ™œ‰ˆ�Ø×Ò˜t V¨VÐ4Ñ5Ô5Ð5Ð5Øð ð ØEN×EUÒEUÑEWÔEWðñ ô ñ ð r?   Úconsoleúdict[str, str]c                ó(  — |                       ¦   «         } g }|                      dd¦  «        }|r°dt          j        vr|                     d|z   ¦  «         t          j                             dd¦  «        dk    r+|                     dt          j        d         › d|› �¦  «         |                     dt          ¦   «         › d|› �¦  «         d	„ | D ¦   «         }|D ]}| |= Œ|                      d
d¦  «        }|radt          j        vr|                     d|z   ¦  «         |                     dt          ¦   «         › d|› �¦  «         d„ | D ¦   «         }|D ]}| |= Œ| 	                    t          dj        |                      ¦   «         ¦  «        ¦  «         |S )zk
    Given the mapping from entrypoint name to callable, return the relevant
    console script specs.
    ÚpipNÚENSUREPIP_OPTIONSzpip = rV   Ú
altinstallr   z = c                ó<   — g | ]}t          j        d |¦  «        ¯|‘ŒS )zpip(\d+(\.\d+)?)?$©ÚreÚmatch©rˆ   Úks     r=   rŠ   z,get_console_script_specs.<locals>.<listcomp>9  s*   € ÐKÐKÐK˜­¬Ð1FÈÑ(JÔ(JÐK�!ÐKÐKÐKr?   Úeasy_installzeasy_install = zeasy_install-c                ó<   — g | ]}t          j        d |¦  «        ¯|‘ŒS )zeasy_install(-\d+\.\d+)?$râ   rå   s     r=   rŠ   z,get_console_script_specs.<locals>.<listcomp>E  s:   € ð 
ð 
ð 
Ø¥"¤(Ð+GÈÑ"KÔ"Kð
Øð
ð 
ð 
r?   ú{} = {})ÚcopyrÓ   r_   rœ   rŸ   rs   rd   Úversion_infor   Úextendr   r£   r    )rÛ   Úscripts_to_generateÚ
pip_scriptÚpip_epræ   Úeasy_install_scriptÚeasy_install_eps          r=   Úget_console_script_specsrò     sÛ  € ð �lŠl‰nŒn€GàÐðB —’˜U DÑ)Ô)€JØð Ø¥b¤jÐ0Ð0Ø×&Ò& x°*Ñ'<Ñ=Ô=Ð=åŒ:�>Š>Ð-¨rÑ2Ô2°lÒBÐBØ×&Ò&Ð'Q­SÔ-=¸aÔ-@Ð'QÐ'QÀZÐ'QÐ'QÑRÔRÐRà×"Ò"Ð#SÕ)@Ñ)BÔ)BÐ#SÐ#SÀzÐ#SÐ#SÑTÔTÐTàKÐK˜WÐKÑKÔKˆØð 	ð 	ˆAØ˜�
�
Ø!Ÿ+š+ n°dÑ;Ô;ÐØð Ø¥b¤jÐ0Ð0Ø×&Ò&Ð'8Ð;NÑ'NÑOÔOÐOà×"Ò"ØOÕ3Ñ5Ô5ÐOÐOÐ:MÐOÐOñ	
ô 	
ð 	
ð
ð 
Øð
ñ 
ô 
ˆð !ð 	ð 	ˆAØ˜�
�
ð ×Ò�w yÔ'7¸¿º¹¼ÑIÔIÑJÔJÐJàÐr?   c                  ó&   — e Zd Zdd	„Zdd„Zdd„ZdS )ÚZipBackedFiler1   r0   r3   r2   Úzip_filer   r6   r7   c                ó>   — || _         || _        || _        d| _        d S ©NF)r1   r3   Ú	_zip_filer5   )r<   r1   r3   rõ   s       r=   Ú__init__zZipBackedFile.__init__R  s%   € ð  /ˆÔØ"ˆŒØ!ˆŒØˆŒˆˆr?   r   c                ó@   — | j                              | j        ¦  «        S r9   )rø   Úgetinfor1   r;   s    r=   Ú_getinfozZipBackedFile._getinfoZ  s   € ØŒ~×%Ò% dÔ&:Ñ;Ô;Ð;r?   c                ó  — t           j                             | j        ¦  «        rt          j        | j        ¦  «         |                      ¦   «         }t          | j        d¦  «        5 }|j        dk    r]| j                             |¦  «        5 }t          |j        d¦  «        }t          j        |||¦  «         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   t          |¦  «        rt          | j        ¦  «         d S d S )Nr^   r   rE   )r_   rF   Úexistsr3   Úunlinkrü   ra   Ú	file_sizerø   ÚminÚshutilÚcopyfileobjr,   r+   )r<   ÚzipinfoÚdestrÙ   rG   s        r=   r>   zZipBackedFile.save]  ss  € õ Œ7�>Š>˜$œ.Ñ)Ô)ð 	&ÝŒI�d”nÑ%Ô%Ð%à—-’-‘/”/ˆõ �$”. $Ñ'Ô'ð 	;¨4ØÔ  1Ò$Ð$Ø”^×(Ò(¨Ñ1Ô1ð ;°QÝ # GÔ$5°{Ñ CÔ C�IÝÔ& q¨$°	Ñ:Ô:Ð:ð;ð ;ð ;ñ ;ô ;ð ;ð ;ð ;ð ;ð ;ð ;øøøð ;ð ;ð ;ð ;ð	;ð 	;ð 	;ñ 	;ô 	;ð 	;ð 	;ð 	;ð 	;ð 	;ð 	;øøøð 	;ð 	;ð 	;ð 	;õ " 'Ñ*Ô*ð 	OÝ>¸t¼~ÑNÔNÐNÐNÐNð	Oð 	Os6   Á'&CÂ,CÂ9CÃC		Ã	CÃC		ÃCÃC Ã#C N)r1   r0   r3   r2   rõ   r   r6   r7   )r6   r   r@   )rA   rB   rC   rù   rü   r>   r:   r?   r=   rô   rô   Q  sV   € € € € € ðð ð ð ð<ð <ð <ð <ðOð Oð Oð Oð Oð Or?   rô   c                  ó   — e Zd Zdd„Zd	d„ZdS )
Ú
ScriptFileÚfiler/   r6   r7   c                óf   — || _         | j         j        | _        | j         j        | _        d| _        d S r÷   )Ú_filer1   r3   r5   )r<   r  s     r=   rù   zScriptFile.__init__x  s-   € ØˆŒ
Ø#œzÔ9ˆÔØœÔ-ˆŒØˆŒˆˆr?   c                ój   — | j                              ¦   «          t          | j        ¦  «        | _        d S r9   )r
  r>   ro   r3   r5   r;   s    r=   r>   zScriptFile.save~  s)   € ØŒ
�ŠÑÔÐÝ! $¤.Ñ1Ô1ˆŒˆˆr?   N)r  r/   r6   r7   r@   )rA   rB   rC   rù   r>   r:   r?   r=   r  r  w  s<   € € € € € ðð ð ð ð2ð 2ð 2ð 2ð 2ð 2r?   r  c                  ó    ‡ — e Zd Zdˆ fd„Zˆ xZS )ÚMissingCallableSuffixr   r2   r6   r7   c                óR   •— t          ¦   «                              d|› d�¦  «         d S )NzInvalid script entry point: z… - A callable suffix is required. See https://packaging.python.org/specifications/entry-points/#use-for-scripts for more information.)Úsuperrù   )r<   r   Ú	__class__s     €r=   rù   zMissingCallableSuffix.__init__„  s?   ø€ Ý‰Œ×Òð¨;ð ð ð ñ	
ô 	
ð 	
ð 	
ð 	
r?   )r   r2   r6   r7   )rA   rB   rC   rù   Ú__classcell__©r  s   @r=   r  r  ƒ  s=   ø€ € € € € ð
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
ð 
r?   r  ÚspecificationÚscripts_dirr7   c                ó–  — t          | ¦  «        }|€d S |j        €t          t          |¦  «        ¦  «        ‚t          j                             ||j        ¦  «        }t          j                             |¦  «        t          j                             |¦  «        k    }|st          ||¦  «        st          d|j        ›d|› d�¦  «        ‚d S )Nz Invalid script entry point name z?: the script would be installed outside the scripts directory (z).)r   Úsuffixr  r2   r_   rF   r¤   r~   Úabspathr*   r   )r  r  Úentryr  Úresolves_to_scripts_dirs        r=   Ú_raise_for_invalid_entrypointr  �  sÖ   € Ý˜]Ñ+Ô+€EØ€}Øˆà„|ÐÝ#¥C¨¡J¤JÑ/Ô/Ð/õ
 Œ7�<Š<˜ U¤ZÑ0Ô0€DÝ œgŸošo¨dÑ3Ô3µr´w·²À{Ñ7SÔ7SÒSÐØð 
Õ&9¸+ÀtÑ&LÔ&Lð 
ÝðQ¨u¬zð Qð QØALðQð Qð Qñ
ô 
ð 	
ð
ð 
r?   c                  óD   ‡ — e Zd Z ej        d¦  «        Z	 d
dˆ fd	„Zˆ xZS )ÚPipScriptMakerzÁ        import sys
        from %(module)s import %(import_name)s
        if __name__ == '__main__':
            sys.argv[0] = sys.argv[0].removesuffix('.exe')
            sys.exit(%(func)s())
Nr  r2   Úoptionsúdict[str, Any] | Noner6   rÊ   c                ór   •— t          || j        ¦  «         t          ¦   «                              ||¦  «        S r9   )r  Ú
target_dirr  Úmake)r<   r  r  r  s      €r=   r!  zPipScriptMaker.make¬  s/   ø€ õ 	& m°T´_ÑEÔEÐEÝ‰wŒw�|Š|˜M¨7Ñ3Ô3Ð3r?   r9   )r  r2   r  r  r6   rÊ   )rA   rB   rC   ÚtextwrapÚdedentÚscript_templater!  r  r  s   @r=   r  r  ¡  sc   ø€ € € € € ð &�h”oð 'ñ ô €Oð DHð4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4r?   r  TFr~   Ú	wheel_zipr   Ú
wheel_pathÚschemer"   Ú	pycompileÚwarn_script_locationÚ
direct_urlúDirectUrl | NoneÚ	requestedÚscript_executablec	           
     óR  ‡‡;‡<‡=‡>‡?‡@‡A— t          || ¦  «        \  }	}
t          |
¦  «        r|j        ŠAn|j        ŠAi Š@t	          ¦   «         Š<g }	 d6d7ˆ<ˆ@ˆAfd
„}d8d„}d9ˆfd„Š;d:ˆ;fd„}d;ˆ;ˆfd„}d8d„}t          t          t                   |                     ¦   «         ¦  «        }t          ||¦  «        }t          ||¦  «        \  }} ||‰A¦  «        }t          ||¦  «        }d8d„}t          ||¦  «        \  }} |||¦  «        }t          ||¦  «        }t          ||¦  «        }t          t          ‰¦  «        t          | ¦  «        ¦  «        }t!          |¦  «        \  Š=Š?d<ˆ=ˆ?fd„}t          ||¦  «        }t          ||¦  «        }t          t"          |¦  «        }t          ||¦  «        }t	          ¦   «         }|D ]~} t$          j                             | j        ¦  «        }!|!|vr$t-          |!¦  «         |                     |!¦  «         |                      ¦   «           || j        | j        | j        ¦  «         Œd=ˆ@ˆAfd„}"d>d„}#|�rEt7          j        t;          j        t>          j         ¦  «        ¦  «        5 }$tC          j"        ¦   «         5  tC          j#        d ¦  «          |"¦   «         D ]†}%tI          j%        |%d!d!¬"¦  «        }&|&rk |#|%¦  «        }'t$          j         &                    |'¦  «        sJ ‚t          d|' '                    t$          j        j(        d#¦  «        ¦  «        }( ||(|'¦  «         Œ‡	 d$d$d$¦  «         n# 1 swxY w Y   d$d$d$¦  «         n# 1 swxY w Y   tR           *                    |$ +                    ¦   «         ¦  «         tY          d$|j-        ¦  «        })|�||)_.        d!|)_/        d%h|)_0        d!|)_1        te          ‰=¦  «        }*t          tg          d&j4        ‰? 5                    ¦   «         ¦  «        ¦  «        }+|) 6                    |*¦  «        },| 7                    |,¦  «         | 7                    |) 6                    |+d'd!i¦  «        ¦  «         |r+tq          |,¦  «        }-|-�tR           9                    |-¦  «         d(tu          ¦   «          z  Š>t6          j;        d?ˆ>fd,„¦   «         }.t$          j         <                    ‰A|	¦  «        }/t$          j         <                    |/d-¦  «        }0 |.|0¦  «        5 }1|1 =                    d.¦  «         d$d$d$¦  «         n# 1 swxY w Y   | >                    |0¦  «         |�—t$          j         <                    |/t~          ¦  «        }2 |.|2¦  «        5 }3|3 =                    | @                    ¦   «          A                    d/¦  «        ¦  «         d$d$d$¦  «         n# 1 swxY w Y   | >                    |2¦  «         |r^t$          j         <                    |/d0¦  «        }4t…          |4d1¦  «        5  	 d$d$d$¦  «         n# 1 swxY w Y   | >                    |4¦  «         | C                    d2¦  «        }5t          t‰          jE        |5 F                    ¦   «         ¦  «        ¦  «        }6t�          |6‰@‰<|‰A¬3¦  «        }7t$          j         <                    |/d2¦  «        }8 |.|8fi t‘          d4¦  «        ¤Ž5 }9t‰          jI        t          d5|9¦  «        ¦  «        }:|: J                    t—          |7¦  «        ¦  «         d$d$d$¦  «         d$S # 1 swxY w Y   d$S )@aØ  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
    :param script_executable: Python executable to use for console scripts
    :raises UnsupportedWheel:
        * when the directory holds an unpacked wheel with incompatible
          Wheel-Version
        * when the .dist-info dir does not match the wheel
    FÚsrcfiler0   r§   r2   Úmodifiedr4   r6   r7   c                ód   •— t          |‰¦  «        }|‰| <   |r‰                     |¦  «         dS dS )z6Map archive RECORD paths to installation RECORD paths.N)rÃ   r›   )r/  r§   r0  Únewpathr5   rÆ   r»   s       €€€r=   Úrecord_installedz(_install_wheel.<locals>.record_installedÝ  sH   ø€ õ % X¨wÑ7Ô7ˆØ$ˆ	�'ÑØð 	!Ø�KŠK˜Ñ Ô Ð Ð Ð ð	!ð 	!r?   rF   c                ó,   — |                       d¦  «        S )Nr¿   )Úendswith©rF   s    r=   Úis_dir_pathz#_install_wheel.<locals>.is_dir_pathæ  s   € Ø�}Š}˜SÑ!Ô!Ð!r?   Údest_dir_pathÚtarget_pathc                ót   •— t          | |¦  «        s&d}t          |                     ‰|| ¦  «        ¦  «        ‚d S )NzRThe wheel {!r} has a file {!r} trying to install outside the target directory {!r})r*   r   r£   )r8  r9  Úmessager&  s      €r=   Úassert_no_path_traversalz0_install_wheel.<locals>.assert_no_path_traversalé  sP   ø€ Ý" =°+Ñ>Ô>ð 	ð5ð õ $Ø—’˜z¨;¸ÑFÔFñô ð ð	ð 	r?   rõ   r   r  úCallable[[RecordPath], File]c                ó   •‡ ‡— dˆˆˆ fd„}|S )Nr·   r0   r6   r/   c                ó¼   •— t           j                             | ¦  «        }t           j                             ‰|¦  «        } ‰‰|¦  «         t	          | |‰¦  «        S r9   )r_   rF   Únormpathr¤   rô   )r·   Únormed_pathr3   r<  r  rõ   s      €€€r=   Úmake_root_scheme_filezM_install_wheel.<locals>.root_scheme_file_maker.<locals>.make_root_scheme_fileö  sR   ø€ Ýœ'×*Ò*¨;Ñ7Ô7ˆKÝœŸš T¨;Ñ7Ô7ˆIØ$Ð$ T¨9Ñ5Ô5Ð5Ý  ¨i¸ÑBÔBÐBr?   ©r·   r0   r6   r/   r:   )rõ   r  rB  r<  s   `` €r=   Úroot_scheme_file_makerz._install_wheel.<locals>.root_scheme_file_makeró  s=   øøø€ ð	Cð 	Cð 	Cð 	Cð 	Cð 	Cð 	Cð 	Cð %Ð$r?   r'  r"   c                óF   •‡ ‡‡— ˆfd„t           D ¦   «         Šdˆˆˆˆ fd„}|S )Nc                ó2   •— i | ]}|t          ‰|¦  «        “ŒS r:   )Úgetattr)rˆ   Úkeyr'  s     €r=   r�   zB_install_wheel.<locals>.data_scheme_file_maker.<locals>.<dictcomp>  s%   ø€ ÐIÐIÐI°c˜�W V¨SÑ1Ô1ÐIÐIÐIr?   r·   r0   r6   r/   c           
     ó  •— t           j                             | ¦  «        }	 |                     t           j        j        d¦  «        \  }}}n&# t
          $ r d‰› d| ›d�}t          |¦  «        ‚w xY w	 ‰
|         }nN# t          $ rA d                     t          ‰
¦  «        ¦  «        }d‰› d|› d| ›d|› d	�	}t          |¦  «        ‚w xY wt           j                             ||¦  «        } ‰	||¦  «         t          | |‰¦  «        S )
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 (ú))r_   rF   r@  r�   rÂ   Ú
ValueErrorr   ÚKeyErrorr¤   r¡   rô   )r·   rA  Ú_Ú
scheme_keyÚdest_subpathr;  Úscheme_pathÚvalid_scheme_keysr3   r<  Úscheme_pathsr&  rõ   s            €€€€r=   Úmake_data_scheme_filezM_install_wheel.<locals>.data_scheme_file_maker.<locals>.make_data_scheme_file  sl  ø€ Ýœ'×*Ò*¨;Ñ7Ô7ˆKð1Ø.9×.?Ò.?ÅÄÄÈQÑ.OÔ.OÑ+��:˜|˜|øÝð 1ð 1ð 1ðM¨*ð Mð M¸ð Mð Mð Mð õ (¨Ñ0Ô0Ð0ð1øøøð
1Ø*¨:Ô6��øÝð 1ð 1ð 1Ø$(§I¢I­f°\Ñ.BÔ.BÑ$CÔ$CÐ!ð1°*ð 1ð 1À
ð 1ð 1Ø!,ð1ð 1ð .ð1ð 1ð 1ð õ (¨Ñ0Ô0Ð0ð1øøøõ œŸš [°,Ñ?Ô?ˆIØ$Ð$ [°)Ñ<Ô<Ð<Ý  ¨i¸ÑBÔBÐBs   ¢)A Á#A/Á3A< Á<ACrC  )r!   )rõ   r'  rS  rR  r<  r&  s   `` @€€r=   Údata_scheme_file_makerz._install_wheel.<locals>.data_scheme_file_makerþ  s`   øøøø€ ð JÐIÐIÐI½[ÐIÑIÔIˆð	Cð 	Cð 	Cð 	Cð 	Cð 	Cð 	Cð 	Cð 	Cð6 %Ð$r?   c                ó`   — |                       dd¦  «        d                              d¦  «        S )Nr¿   r�   r   ú.data)r�   r5  r6  s    r=   Úis_data_scheme_pathz+_install_wheel.<locals>.is_data_scheme_path   s)   € Ø�zŠz˜#˜qÑ!Ô! !Ô$×-Ò-¨gÑ6Ô6Ð6r?   c                ó¢   — |                       dd¦  «        }t          |¦  «        dk    o&|d                              d¦  «        o|d         dk    S )Nr¿   rÎ   r   rV  r�   r�   )r�   r¢   r5  )rF   Úpartss     r=   Úis_script_scheme_pathz-_install_wheel.<locals>.is_script_scheme_path*  sJ   € Ø—
’
˜3 Ñ"Ô"ˆÝ�5‰zŒz˜AŠ~ÐV %¨¤(×"3Ò"3°GÑ"<Ô"<ÐVÀÀqÄÈYÒAVÐVr?   r  r/   c                ó�  •— | j         }t          j                             |¦  «        }|                     ¦   «                              d¦  «        r|d d…         }nf|                     ¦   «                              d¦  «        r|d d…         }n4|                     ¦   «                              d¦  «        r|d d…         }n|}|‰v p|‰v S )Nz.exeéüÿÿÿz
-script.pyiöÿÿÿz.pya)r3   r_   rF   Úbasenamert   r5  )r  rF   r~   Ú	matchnamerÛ   Úguis       €€r=   Úis_entrypoint_wrapperz-_install_wheel.<locals>.is_entrypoint_wrapper=  sÂ   ø€ ð Œ~ˆÝŒw×Ò Ñ%Ô%ˆØ�:Š:‰<Œ<× Ò  Ñ(Ô(ð 	Ø˜S˜b˜Sœ	ˆIˆIØ�ZŠZ‰\Œ\×"Ò" <Ñ0Ô0ð 	Ø˜T˜c˜Tœ
ˆIˆIØ�ZŠZ‰\Œ\×"Ò" 6Ñ*Ô*ð 	Ø˜S˜b˜Sœ	ˆIˆIàˆIà˜GÐ#Ð7 y°CÐ'7Ð7r?   úGenerator[str, None, None]c               3  ó"  •K  — t          t          ‰                     ¦   «         ¦  «        ¦  «        D ]\} t          j                             ‰| ¦  «        }t          j                             |¦  «        sŒB|                     d¦  «        sŒX|V — Œ]d S )Nz.py)r¡   r™   rÔ   r_   rF   r¤   r`   r5  )Úinstalled_pathÚfull_installed_pathrÆ   r»   s     €€r=   Úpyc_source_file_pathsz-_install_wheel.<locals>.pyc_source_file_paths`  s–   øè è € õ
 %¥S¨×)9Ò)9Ñ);Ô);Ñ%<Ô%<Ñ=Ô=ð 	&ð 	&ˆNÝ"$¤'§,¢,¨w¸Ñ"GÔ"GÐÝ”7—>’>Ð"5Ñ6Ô6ð ØØ&×/Ò/°Ñ6Ô6ð ØØ%Ð%Ð%Ð%Ð%ð	&ð 	&r?   c                ó@   — t           j                             | ¦  «        S )z8Return the path the pyc file would have been written to.)Ú	importlibÚutilÚcache_from_sourcer6  s    r=   Úpyc_output_pathz'_install_wheel.<locals>.pyc_output_pathm  s   € åŒ~×/Ò/°Ñ5Ô5Ð5r?   ÚignoreT)ÚforceÚquietr¿   NrV   ré   r_  i¶  Úkwargsr   úGenerator[BinaryIO, None, None]c              ;  ó¼   •K  — t          | fi |¤Ž5 }|V — d d d ¦  «         n# 1 swxY w Y   t          j        |j        ‰¦  «         t	          |j        | ¦  «         d S r9   )r#   r_   Úchmodr~   r$   )rF   rn  rÙ   Úgenerated_file_modes      €r=   Ú_generate_filez&_install_wheel.<locals>._generate_fileª  s¥   øè è € å˜tÐ.Ð. vÐ.Ð.ð 	°!ØˆGˆGˆGð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	å
Œ�”Ð,Ñ-Ô-Ð-Ý�”˜ÑÔÐÐÐs   ‘"¢&©&Ú	INSTALLERs   pip
rW   Ú	REQUESTEDr^   ÚRECORD)rÆ   r5   rÉ   r»   ÚwzIO[str])F)r/  r0   r§   r2   r0  r4   r6   r7   )rF   r0   r6   r4   )r8  r2   r9  r2   r6   r7   )rõ   r   r  r2   r6   r=  )rõ   r   r'  r"   r6   r=  )r  r/   r6   r4   )r6   ra  )rF   r2   r6   r2   )rF   r2   rn  r   r6   ro  )Lr-   ru   ÚpurelibÚplatlibr™   r   Úlistr0   Únamelistr   r(   Úmapr   r   r   r   r€   r  r_   rF   Údirnamer3   r&   r›   r>   r1   r5   Ú
contextlibÚredirect_stdoutr%   Úfrom_streamrd   ÚstdoutÚwarningsÚcatch_warningsÚfilterwarningsÚ
compileallÚcompile_filerþ   r$   rÂ   rÑ   ÚdebugÚgetvaluer  r�   re   ÚclobberÚvariantsÚset_moderò   r   r£   r    Úmake_multiplerì   r±   rÒ   r)   Úcontextmanagerr¤   rj   rŸ   r   Úto_jsonrf   ra   Ú	read_textÚcsvÚreaderÚ
splitlinesrÚ   rZ   ÚwriterÚ	writerowsrº   )Br~   r%  r&  r'  r(  r)  r*  r,  r-  Úinfo_dirrp   rÉ   r3  r7  rD  rT  rW  ÚpathsÚ
file_pathsÚroot_scheme_pathsÚdata_scheme_pathsrB  ÚfilesrZ  Úother_scheme_pathsÚscript_scheme_pathsrS  Úother_scheme_filesÚdistributionr`  Úscript_scheme_filesÚexisting_parentsr  r�   re  rj  r�  rF   ÚsuccessÚpyc_pathÚpyc_record_pathÚmakerrí   Úgui_scripts_to_generateÚgenerated_console_scriptsÚmsgrs  Údest_info_dirÚinstaller_pathÚinstaller_fileÚdirect_url_pathÚdirect_url_fileÚrequested_pathÚrecord_textÚrecord_rowsÚrowsr·   Úrecord_filer“  r<  r5   rÛ   rr  r_  rÆ   r»   sB     `                                                        @@@@@@@r=   Ú_install_wheelr²  ³  s®	  øøøøøøøø€ õ6 % Y°Ñ5Ô5Ñ€Hˆhå˜XÑ&Ô&ð !Ø”.ˆˆà”.ˆð /1€IÝ"™uœu€GØ€Ið >Cð!ð !ð !ð !ð !ð !ð !ð !ð !ð"ð "ð "ð "ðð ð ð ð ð ð	%ð 	%ð 	%ð 	%ð 	%ð 	%ð %ð  %ð  %ð  %ð  %ð  %ð  %ðD7ð 7ð 7ð 7õ ••jÔ! 9×#5Ò#5Ñ#7Ô#7Ñ8Ô8€EÝ˜[¨%Ñ0Ô0€JÝ+4Ð5HÈ*Ñ+UÔ+UÑ(ÐÐ(à2Ð2°9¸gÑFÔFÐÝÐ 5Ð7HÑIÔI€EðWð Wð Wð Wõ /8ØÐ0ñ/ô /Ñ+ÐÐ+ð 3Ð2°9¸fÑEÔEÐÝÐ2Ð4FÑGÔGÐÝ�%Ð+Ñ,Ô,€Eõ *Ý˜
Ñ#Ô#Ý˜$ÑÔñô €Lõ # <Ñ0Ô0�L€GˆSð8ð 8ð 8ð 8ð 8ð 8ð 8õ  +.ØÐ2ñ+ô +Ðõ &Ð&;Ð=PÑQÔQÐÝ�jÐ*=Ñ>Ô>ÐÝ�%Ð,Ñ-Ô-€Eå‘u”uÐØð 	Mð 	Mˆõ ”W—_’_ T¤^Ñ4Ô4ˆ
ØÐ-Ð-Ð-Ý�zÑ"Ô"Ð"Ø× Ò  Ñ,Ô,Ð,Ø�	Š	‰ŒˆØÐ˜Ô-¨t¬~¸t¼|ÑLÔLÐLÐLð&ð &ð &ð &ð &ð &ð &ð6ð 6ð 6ð 6ð
 ñ (ÝÔ'ÝÔ%¥c¤jÑ1Ô1ñ
ô 
ð 	DàÝÔ(Ñ*Ô*ð 
Dð 
DÝÔ'¨Ñ1Ô1Ð1Ø1Ð1Ñ3Ô3ð Dð D�DÝ(Ô5°dÀ$ÈdÐSÑSÔS�GØð DØ#2 ?°4Ñ#8Ô#8˜Ý!œwŸ~š~¨hÑ7Ô7Ð7Ð7Ð7Ý*.Ø(¨(×*:Ò*:½2¼7¼;ÈÑ*LÔ*Lñ+ô +˜ð )Ð(¨¸(ÑCÔCÐCøðDð
Dð 
Dð 
Dñ 
Dô 
Dð 
Dð 
Dð 
Dð 
Dð 
Dð 
Døøøð 
Dð 
Dð 
Dð 
Dð	Dð 	Dð 	Dñ 	Dô 	Dð 	Dð 	Dð 	Dð 	Dð 	Dð 	Døøøð 	Dð 	Dð 	Dð 	Dõ 	�Š�V—_’_Ñ&Ô&Ñ'Ô'Ð'å˜4 ¤Ñ0Ô0€Eð
 Ð$Ø,ˆÔð €E„Mð
 �T€E„Nð
 €E„Nõ 3°7Ñ;Ô;Ðå"¥7¨9Ô+;¸S¿YºY¹[¼[Ñ#IÔ#IÑJÔJÐà %× 3Ò 3Ð4GÑ HÔ HÐØ×ÒÐ.Ñ/Ô/Ð/à×Ò�U×(Ò(Ð)@À5È$À-ÑPÔPÑQÔQÐQàð  Ý/Ð0IÑJÔJˆØˆ?Ý�NŠN˜3ÑÔÐà¥=¡?¤?Ð"2Ñ2ÐåÔðð ð ð ð ñ Ôðõ ”G—L’L ¨(Ñ3Ô3€Mõ ”W—\’\ -°Ñ=Ô=€NØ	ˆ˜Ñ	'Ô	'ð '¨>Ø×Ò˜XÑ&Ô&Ð&ð'ð 'ð 'ñ 'ô 'ð 'ð 'ð 'ð 'ð 'ð 'øøøð 'ð 'ð 'ð 'à×Ò�^Ñ$Ô$Ð$ð ÐÝœ'Ÿ,š, }Õ6NÑOÔOˆØˆ^˜OÑ,Ô,ð 	H°Ø×!Ò! *×"4Ò"4Ñ"6Ô"6×"=Ò"=¸gÑ"FÔ"FÑGÔGÐGð	Hð 	Hð 	Hñ 	Hô 	Hð 	Hð 	Hð 	Hð 	Hð 	Hð 	Høøøð 	Hð 	Hð 	Hð 	Hà×Ò˜Ñ)Ô)Ð)ð ð )ÝœŸš m°[ÑAÔAˆÝ�. $Ñ'Ô'ð 	ð 	Øð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	à×Ò˜Ñ(Ô(Ð(à×(Ò(¨Ñ2Ô2€KÝ•s”z +×"8Ò"8Ñ":Ô":Ñ;Ô;Ñ<Ô<€Kå%ØØØØØðñ ô €Dõ ”'—,’,˜}¨hÑ7Ô7€Kà	ˆ˜Ð	:Ð	:¥}°SÑ'9Ô'9Ð	:Ð	:ð 4¸kõ ”�D ¨KÑ8Ô8Ñ9Ô9ˆØ×ÒÕ,¨TÑ2Ô2Ñ3Ô3Ð3ð	4ð 4ð 4ñ 4ô 4ð 4ð 4ð 4ð 4ð 4ð 4ð 4øøøð 4ð 4ð 4ð 4ð 4ð 4s€   É:MÊB&MÌ5MÍM	ÍMÍM	Í	MÍMÍMÓ=TÔT#Ô&T#Õ1;V8Ö8V<Ö?V<Ø
XØXØXÛ
A\Ü\ Ü#\ Úreq_descriptionúGenerator[None, None, None]c              #  ó~   K  — 	 d V — d S # t           $ r(}d| › d|j        d         › �}t          |¦  «        |‚d }~ww xY w)Nz	For req: z. r   )r   Úargs)r³  Úer;  s      r=   Úreq_error_contextr¸  Ü  sb   è è € ð0ØˆˆˆˆˆøÝð 0ð 0ð 0Ø<˜oÐ<Ð<°´¸´Ð<Ð<ˆÝ Ñ(Ô(¨aÐ/øøøøð0øøøs   „
 Š
<”#7·<c	                óØ   — t          |d¬¦  «        5 }	t          |¦  «        5  t          | |	|||||||¬¦	  «	         d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         d S # 1 swxY w Y   d S )NT)Ú
allowZip64)	r~   r%  r&  r'  r(  r)  r*  r,  r-  )r   r¸  r²  )
r~   r&  r'  r³  r(  r)  r*  r,  r-  Úzs
             r=   Úinstall_wheelr¼  å  s  € õ 
�¨Ð	-Ñ	-Ô	-ð °Ý˜Ñ/Ô/ð 	ð 	ÝØØØ%ØØ#Ø%9Ø%Ø#Ø"3ð
ñ 
ô 
ð 
ð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	ðð ð ñ ô ð ð ð ð ð ð ð øøøð ð ð ð ð ð s3   ’A¢A»AÁA	ÁAÁA	ÁAÁA#Á&A#)rE   )rF   r2   rG   rH   r6   rI   )rS   r2   r6   rT   )rF   r2   r6   r4   )rp   r
   r6   r4   )rv   r   r6   rw   )r�   r‚   r6   rƒ   )r²   r³   r6   r´   )r·   r0   r»   r2   r6   r2   )rF   r2   r»   r2   r6   r0   )rÄ   rÅ   rÆ   rÇ   r5   rÈ   rÉ   rÊ   r»   r2   r6   rË   )rÛ   rÜ   r6   rÊ   )r  r2   r  r2   r6   r7   )TTNFN)r~   r2   r%  r   r&  r2   r'  r"   r(  r4   r)  r4   r*  r+  r,  r4   r-  rƒ   r6   r7   )r³  r2   r6   r´  )r~   r2   r&  r2   r'  r"   r³  r2   r(  r4   r)  r4   r*  r+  r,  r4   r-  rƒ   r6   r7   )jÚ__doc__Ú
__future__r   r—   r…  r~  r�  rg  ÚloggingÚos.pathr_   rã   r  rd   r"  r‚  Úbase64r   Úcollections.abcr   r   r   r   r	   Úemail.messager
   Ú	itertoolsr   r   r   Úpathlibr   Útypingr   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+   r,   Úpip._internal.utils.wheelr-   r/   Ú	getLoggerrA   rÑ   r2   r0   ÚtuplerH   ÚInstalledCSVRowrR   rZ   ro   ru   r€   r±   rº   r½   rÃ   rÚ   rò   rô   r  r  r  r  r²  r�  r¸  r¼  r:   r?   r=   ú<module>r×     sf  ðØ LÐ Là "Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ø Ð Ð Ð Ø Ð Ð Ð Ø 
€
€
€
Ø Ð Ð Ð Ø €€€Ø €€€Ø 	€	€	€	Ø €€€Ø 
€
€
€
Ø €€€Ø €€€Ø $Ð $Ð $Ð $Ð $Ð $Ø MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MÐ MØ !Ð !Ð !Ð !Ð !Ð !Ø 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ð 1Ø Ð Ð Ð Ð Ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð %Ð $Ð $Ð $Ð $Ð $Ð $Ð $à 3Ð 3Ð 3Ð 3Ð 3Ð 3Ø 5Ð 5Ð 5Ð 5Ð 5Ð 5Ø 9Ð 9Ð 9Ð 9Ð 9Ð 9à 6Ð 6Ð 6Ð 6Ð 6Ð 6Ø ;Ð ;Ð ;Ð ;Ð ;Ð ;ðð ð ð ð ð ð ð ð ð ð
 PÐ OÐ OÐ OÐ OÐ OÐ OÐ OØ ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ð ;Ø EÐ EÐ EÐ EÐ EÐ EÐ EÐ EØ TÐ TÐ TÐ TÐ TÐ TÐ TÐ TÐ TÐ TÐ TÐ Tðð ð ð ð ð ð ð ð ð ð ð ð 2Ð 1Ð 1Ð 1Ð 1Ð 1ðð ð ð ð ˆ8ñ ô ð ð 
ˆÔ	˜8Ñ	$Ô	$€àˆW�\ 3Ñ'Ô'€
Ø˜
 C¨¨s©Ð2Ô3€ð!ð !ð !ð !ð !ð>ð >ð >ð >ðð ð ð ð(Að Að Að Að(ð (ð (ð (ðC ð C ð C ð C ðLð ð ð ð4.ð .ð .ð .ð$ð $ð $ð $ðð ð ð ð@Hð Hð Hð HðV#Oð #Oð #Oð #Oð #Oñ #Oô #Oð #OðL	2ð 	2ð 	2ð 	2ð 	2ñ 	2ô 	2ð 	2ð
ð 
ð 
ð 
ð 
Ð-ñ 
ô 
ð 
ð
ð 
ð 
ð 
ð(4ð 4ð 4ð 4ð 4�[ñ 4ô 4ð 4ð. Ø!%Ø#'ØØ$(ðf4ð f4ð f4ð f4ð f4ðR	 Ôð0ð 0ð 0ñ Ôð0ð Ø!%Ø#'ØØ$(ðð ð ð ð ð ð r?   