ó
    Þ j-]  ã                   ó&  • 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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Jr  S SKJr  S SKJr  S SKJr  S S	KJrJr  S S
KJ r J!r!J"r"J#r#  S SK$J%r%J&r&  S SK'J(r(  \" \)5      r*S\+S\+S\,S\
\+SS4   4S jr-S\S\
\SS4   4   S\S\
\SS4   4   4S jr.\.S\S\
\+SS4   4S j5       r/S\\+   S\\+   4S jr0S\\+   S\\+   4S jr1S\\+   S\\\+   \\+   4   4S jr2 " S S5      r3 " S S5      r4 " S S 5      r5g)!é    N)Úcache_from_source)	ÚAnyÚCallableÚDictÚ	GeneratorÚIterableÚListÚOptionalÚSetÚTuple)ÚLegacyDistutilsInstallÚUninstallMissingRecord)Úget_bin_prefixÚget_bin_user)ÚBaseDistribution)ÚWINDOWS)Úegg_link_path_from_location)Ú	getLoggerÚ
indent_log)ÚaskÚnormalize_pathÚrenamesÚrmtree)ÚAdjacentTempDirectoryÚTempDirectory)Úrunning_under_virtualenvÚbin_dirÚscript_nameÚis_guiÚreturnc              #   ó²   #   • [         R                  R                  X5      nUv •  [        (       d  gU S3v •  U S3v •  U(       a  U S3v •  gU S3v •  g7f)z…Create the fully qualified name of the files created by
{console,gui}_scripts for the given ``dist``.
Returns the list of file names
Nz.exez.exe.manifestz-script.pywz
-script.py)ÚosÚpathÚjoinr   )r   r   r   Úexe_names       ÚY/var/www/html/gaurav/venv/lib/python3.13/site-packages/pip/_internal/req/req_uninstall.pyÚ_script_namesr'      s]   é € ô �w‰w�|‰|˜GÓ1€HØ
‚NßŠ7ØØˆJ�dÐ
ÒØˆJ�mÐ
$Ò$ÞØ�
˜+Ð&Ó&à�
˜*Ð%Ó%ùs   ‚AAÚfn.c           
      ó‚   ^ • [         R                  " T 5      S[        S[        S[        [        S S 4   4U 4S jj5       nU$ )NÚargsÚkwr    c               ?   óx   >#   • [        5       nT" U 0 UD6 H  nX2;  d  M
  UR                  U5        Uv •  M!     g 7f©N)ÚsetÚadd)r*   r+   ÚseenÚitemr(   s       €r&   ÚuniqueÚ_unique.<locals>.unique+   s5   øé € ä›ˆÙ˜�O ”OˆDØÕØ—‘˜”Ø”
ò $ùs   ƒ: :)Ú	functoolsÚwrapsr   r   )r(   r2   s   ` r&   Ú_uniquer6   (   sG   ø€ ô ‡_‚_�RÓð”cð ¤ð ¬´3¸¸d°?Ñ)Cö ó ðð €Mó    Údistc              #   óÜ  #   • U R                   nUc   S5       eU R                  5       nUc	  [        U S9eU H°  n[        R                  R                  X5      nUv •  UR                  S5      (       d  M>  [        R                  R                  U5      u  pVUSS n[        R                  R                  XWS-   5      nUv •  [        R                  R                  XWS-   5      nUv •  M²     g7f)a§  
Yield all the uninstallation paths for dist based on RECORD-without-.py[co]

Yield paths to all the files in RECORD. For each .py file in RECORD, add
the .pyc and .pyo in the same directory.

UninstallPathSet.add() takes care of the __pycache__ .py[co].

If RECORD is not found, raises an error,
with possible information from the INSTALLER file.

https://packaging.python.org/specifications/recording-installed-packages/
Nznot installed©Údistributionú.pyéýÿÿÿú.pycú.pyo)ÚlocationÚiter_declared_entriesr   r"   r#   r$   ÚendswithÚsplit)r8   r@   ÚentriesÚentryr#   Údnr(   Úbases           r&   Úuninstallation_pathsrH   6   sÄ   é € ð �}‰}€HØÑÐ0 Ó0Ðà×(Ñ(Ó*€GØ�Ü$°$Ñ7Ð7ãˆÜ�w‰w�|‰|˜HÓ,ˆØŠ
Ø�=‰=˜×ÓÜ—W‘W—]‘] 4Ó(‰FˆBØ�c�r�7ˆDÜ—7‘7—<‘< ¨6¡MÓ2ˆDØŠJÜ—7‘7—<‘< ¨6¡MÓ2ˆDØŒJò ùs   ‚A/C,Á5A7C,Úpathsc                 óÜ   ^^• [         R                  R                  m[        5       n[	        U [
        S9 H3  m[        UU4S jU 5       5      nU(       a  M"  UR                  T5        M5     U$ )z¼Compact a path set to contain the minimal number of paths
necessary to contain all paths in the set. If /a/path/ and
/a/path/to/a/file.txt are both in the set, leave only the
shorter path.©Úkeyc              3   óÎ   >#   • U H[  nTR                  UR                  S 5      5      =(       a/    T[        UR                  S 5      R                  T5      5         T:H  v •  M]     g7f)Ú*N)Ú
startswithÚrstripÚlen)Ú.0Ú	shortpathr#   Úseps     €€r&   Ú	<genexpr>Úcompact.<locals>.<genexpr>a   sb   øé € ð 
ñ )�	ð �O‰O˜I×,Ñ,¨SÓ1Ó2÷ DØ”S˜×)Ñ)¨#Ó.×5Ñ5°cÓ:Ó;Ñ<ÀÑCôDâ(ùs   ƒA"A%)r"   r#   rT   r.   ÚsortedrQ   Úanyr/   )rI   Úshort_pathsÚshould_skipr#   rT   s      @@r&   Úcompactr[   X   s^   ù€ ô �'‰'�+‰+€CÜ›E€KÜ�u¤#Ô&ˆÜõ 
ñ )ó
ó 
ˆ÷
 ˆ{Ø�O‰O˜DÖ!ñ 'ð Ðr7   c                 óD  ^
^^• U  Vs0 sH#  n[         R                  R                  U5      U_M%     nn[        U5      n[	        UR                  5        Vs1 sH%  n[         R                  R                  U5      S   iM'     sn[        S9n[        5       nS[        S[        4S jmU HË  m[        U4S jU 5       5      (       a  M  [        5       n[        5       n[         R                  " T5       H@  u  m
p‰UR                  U
UU4S jU 5       5        UR                  U
UU4S jU	 5       5        MB     Xc-
  (       a  M˜  UR                  U5        UR                  T[         R                  -   5        MÍ     [        [        UR                   U5      5      U-  $ s  snf s  snf )	zŸReturns a set containing the paths that need to be renamed.

This set may include directories when the original sequence of paths
included every file on disk.
r   rK   Úar    c                  óv   • [         R                  R                  [         R                  R                  " U 6 5      $ r-   )r"   r#   Únormcaser$   )r]   s    r&   Ú	norm_joinÚ&compress_for_rename.<locals>.norm_joinv   s$   € Ü�w‰w×Ñ¤§¡§¢¨aÐ 0Ó1Ð1r7   c              3   ó~   >#   • U H3  n[         R                  R                  T5      R                  U5      v •  M5     g 7fr-   )r"   r#   r_   rO   )rR   ÚwÚroots     €r&   rU   Ú&compress_for_rename.<locals>.<genexpr>z   s.   øé € ÐG¹Y¸Œr�w‰w×Ñ Ó%×0Ñ0°×3Ð3ºYùs   ƒ:=c              3   ó6   >#   • U H  nT" TTU5      v •  M     g 7fr-   © )rR   ÚdÚdirnamer`   rd   s     €€€r&   rU   re   �   s   øé € ÐLÁG¸q™y¨¨w¸×:Ð:ÂGùó   ƒc              3   ó6   >#   • U H  nT" TTU5      v •  M     g 7fr-   rg   )rR   Úfri   r`   rd   s     €€€r&   rU   re   ‚   s   øé € ÐHÁ%¸Q™Y t¨W°a×8Ð8Â%ùrj   )r"   r#   r_   r.   rW   ÚvaluesrC   rQ   ÚstrrX   ÚwalkÚupdateÚdifference_updater/   rT   ÚmapÚ__getitem__)rI   ÚpÚcase_mapÚ	remainingÚ	uncheckedÚ	wildcardsÚ	all_filesÚall_subdirsÚsubdirsÚfilesri   r`   rd   s             @@@r&   Úcompress_for_renamer}   k   sG  ú€ ñ 16Ó6±¨1”—‘× Ñ  Ó# QÒ&±€HÐ6Ü�H“€IÜ°X·_±_Ô5FÓGÑ5F°œŸ™Ÿ™ aÓ(¨Ô+Ñ5FÑGÌSÑQ€IÜ›%€Ið2”cð 2œcô 2ó ˆÜÔG¹YÓG×GÑGáä!›eˆ	Ü #£ˆÜ')§w¢w¨t¦}Ñ#ˆG�WØ×ÑÖLÁGÓLÔLØ×ÑÖHÁ%ÓHÖHñ (5ð ×%Ñ%Ø×'Ñ'¨	Ô2Ø�M‰M˜$¤§¡™-Ö(ñ ô" Œs�8×'Ñ'¨Ó3Ó4°yÑ@Ð@ùò3 7ùâGs   ˆ)FÁ+Fc                 óº  • [        U 5      n[        5       n[        5       n[        5       nU Hv  nUR                  S5      (       a  M  UR                  S5      (       d  SU;   a.  UR                  [        R                  R                  U5      5        UR                  U5        Mx     [        [        [        R                  R                  U5      5      n[        U5      nU H¿  n[        R                  " U5       H¢  u  p‰n
U
 H–  nUR                  S5      (       a  M  [        R                  R                  X‹5      n[        R                  R                  U5      (       d  M`  [        R                  R                  U5      U;  d  M…  UR                  U5        M˜     M¤     MÁ     XC Vs1 sH#  n[        R                  R                  US5      iM%     sn-  nX4$ s  snf )a[  Returns a tuple of 2 sets of which paths to display to user

The first set contains paths that would be deleted. Files of a package
are not added and the top-level directory of the package has a '*' added
at the end - to signify that all it's contents are removed.

The second set contains files that would have been skipped in the above
folders.
r>   z__init__.pyz
.dist-inforN   )r.   rB   r/   r"   r#   ri   rr   r_   r[   ro   r$   Úisfile)rI   Úwill_removeÚ	will_skipÚfoldersr|   r#   Ú_normcased_filesÚfolderÚdirpathÚ_ÚdirfilesÚfnameÚfile_s                r&   Úcompress_for_output_listingrŠ   �   se  € ô �e“*€KÜ“€Iô ‹e€GÜ‹E€EÛˆØ�=‰=˜× Ñ ÙØ�=‰=˜×'Ñ'¨<¸4Ó+?Ø�K‰KœŸ™Ÿ™¨Ó-Ô.Ø�	‰	�$Žñ ô œ3œrŸw™w×/Ñ/°Ó7Ó8Ðä�gÓ€Gó ˆÜ$&§G¢G¨F¦OÑ ˆG˜Û!�Ø—>‘> &×)Ñ)ÙäŸ™Ÿ™ WÓ4�ä—G‘G—N‘N 5×)Ó)ÜŸ™×(Ñ(¨Ó/Ð7GÕGð —M‘M %Ö(ó "ó %4ñ ð À7ÓKÁ7¸œ2Ÿ7™7Ÿ<™<¨°Ö4Á7ÑKÑK€KàÐ!Ð!ùò Ls   Æ')Gc                   ó„   • \ rS rSrSrSS jrS\S\4S jrS\S\4S jrS\S\4S	 jr	SS
 jr
SS jr\S\4S j5       rSrg)ÚStashedUninstallPathSeté¾   zSA set of file rename operations to stash files while
tentatively uninstalling them.r    Nc                 ó    • 0 U l         / U l        g r-   )Ú
_save_dirsÚ_moves©Úselfs    r&   Ú__init__Ú StashedUninstallPathSet.__init__Â   s   € ð 57ˆŒð .0ˆ�r7   r#   c                 óº   •  [        U5      nX R                  [        R
                  R                  U5      '   UR
                  $ ! [         a    [        SS9n NLf = f)z�Stashes a directory.

Directories are stashed adjacent to their original location if
possible, or else moved/copied into the user's temp dir.Ú	uninstall©Úkind)r   ÚOSErrorr   r�   r"   r#   r_   )r’   r#   Úsave_dirs      r&   Ú_get_directory_stashÚ,StashedUninstallPathSet._get_directory_stashÊ   sS   € ð	7Ü&;¸DÓ&AˆHð 3;�‰œŸ™×(Ñ(¨Ó.Ñ/à�}‰}Ðøô	 ó 	7Ü$¨+Ñ6ŠHð	7ús   ‚A ÁAÁAc                 ó€  • [         R                  R                  U5      n[         R                  R                  U5      Sp2SnX#:w  a   U R                  U   nO6[         R                  R                  U5      n[        SS9nX@R                  U'   [         R                  R                  X5      nU(       aH  U[         R                  R                  :w  a*  [         R                  R                  UR                  U5      $ UR                  $ ! [
         a     Of = f[         R                  R                  U5      Up2X#:w  a  Mø  Nè)zrStashes a file.

If no root has been provided, one will be created for the directory
in the user's temp directory.Nr–   r—   )
r"   r#   r_   ri   r�   ÚKeyErrorr   ÚrelpathÚcurdirr$   )r’   r#   ÚheadÚold_headrš   rŸ   s         r&   Ú_get_file_stashÚ'StashedUninstallPathSet._get_file_stashØ   sî   € ô
 �w‰w×Ñ Ó%ˆÜŸ™Ÿ™¨Ó.°ˆhØˆàÓðØŸ?™?¨4Ñ0�Øô —7‘7—?‘? 4Ó(ˆDÜ$¨+Ñ6ˆHØ$,�O‰O˜DÑ!ä—'‘'—/‘/ $Ó-ˆÞ�w¤"§'¡'§.¡.Ó0Ü—7‘7—<‘< §¡¨wÓ7Ð7Ø�}‰}Ðøô ó ÙðúäŸW™WŸ_™_¨TÓ2°D�(ð Ös   ÁD Ä
DÄDc                 ó¾  • [         R                  R                  U5      =(       a$    [         R                  R                  U5      (       + nU(       a  U R	                  U5      nOU R                  U5      nU R                  R                  X45        U(       a:  [         R                  R                  U5      (       a  [         R                  " U5        [        X5        U$ )z}Stashes the directory or file and returns its new location.
Handle symlinks as files to avoid modifying the symlink targets.
)
r"   r#   ÚisdirÚislinkr›   r£   r�   ÚappendÚrmdirr   )r’   r#   Úpath_is_dirÚnew_paths       r&   ÚstashÚStashedUninstallPathSet.stashó   s“   € ô —g‘g—m‘m DÓ)×F´"·'±'·.±.ÀÓ2FÔ.FˆÞØ×0Ñ0°Ó6‰Hà×+Ñ+¨DÓ1ˆHà�‰×Ñ˜DÐ+Ô,Þœ2Ÿ7™7Ÿ=™=¨×2Ñ2ô �HŠH�XÔÜ�ÔØˆr7   c                 ó‚   • U R                   R                  5        H  nUR                  5         M     / U l        0 U l         g)z0Commits the uninstall by removing stashed files.N)r�   rm   Úcleanupr�   )r’   rš   s     r&   ÚcommitÚStashedUninstallPathSet.commit  s3   € àŸ™×.Ñ.Ö0ˆHØ×ÑÖñ 1àˆŒØˆ�r7   c                 óŒ  • U R                    H  n[        R                  " S/UQ76   M     U R                    Hµ  u  p# [        R                  SX#5        [        R
                  R                  U5      (       d$  [        R
                  R                  U5      (       a  [        R                  " U5        O/[        R
                  R                  U5      (       a  [        U5        [        X25        M·     U R                  5         g! [         a8  n[        R                  SU5        [        R                  SU5         SnAGM  SnAff = f)z2Undoes the uninstall by moving stashed files back.zMoving to %s
 from %szReplacing %s from %szFailed to restore %szException: %sN)r�   ÚloggerÚinfoÚdebugr"   r#   r   r§   Úunlinkr¦   r   r   r™   Úerrorr°   )r’   rt   r«   r#   Úexs        r&   ÚrollbackÚ StashedUninstallPathSet.rollback  sÙ   € à—”ˆAÜ�KŠKÐ0Ð5°1Õ5ñ ð #Ÿkœk‰NˆHð	2Ü—‘Ð3°XÔDÜ—7‘7—>‘> (×+Ñ+¬r¯w©w¯~©~¸h×/GÑ/GÜ—I’I˜hÕ'Ü—W‘W—]‘] 8×,Ñ,Ü˜8Ô$Ü˜Ö'ñ *ð 	�‰�øô	 ó 2Ü—‘Ð3°XÔ>Ü—‘˜_¨b×1Ó1ûð2ús   ½B/DÄ
EÄ,D>Ä>Ec                 ó,   • [        U R                  5      $ r-   )Úboolr�   r‘   s    r&   Úcan_rollbackÚ$StashedUninstallPathSet.can_rollback"  s   € ä�D—K‘KÓ Ð r7   )r�   r�   ©r    N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r“   rn   r›   r£   r¬   r°   r¹   Úpropertyr¼   r½   Ú__static_attributes__rg   r7   r&   rŒ   rŒ   ¾   sj   † ñ&ô0ð¨ð °ô ð Cð ¨Cô ð6˜#ð  #ô ô*ôð& ð!˜dó !ó ó!r7   rŒ   c                   óÀ   • \ rS rSrSrS\SS4S jrS\S\4S jr	S\SS4S	 jr
S
\S\SS4S jrSS\S\SS4S jjrS\S\4S jrSS jrSS jr\S\SS 4S j5       rSrg)ÚUninstallPathSeti'  zIA set of file paths to be removed in the uninstallation of a
requirement.r8   r    Nc                 ó¶   • [        5       U l        [        5       U l        0 U l        Xl        [        5       U l        [        R                  " [        5      U l
        g r-   )r.   Ú_pathsÚ_refuseÚ_pthÚ_distrŒ   Ú_moved_pathsr4   Ú	lru_cacher   Ú_normalize_path_cached)r’   r8   s     r&   r“   ÚUninstallPathSet.__init__+  s@   € Ü #£ˆŒÜ!$£ˆŒØ46ˆŒ	ØŒ
Ü3Ó5ˆÔô '0×&9Ò&9¼.Ó&IˆÕ#r7   r#   c                 ó~   • [        5       (       d  gUR                  U R                  [        R                  5      5      $ )z[
Return True if the given path is one we are permitted to
remove/modify, False otherwise.

T)r   rO   rÐ   ÚsysÚprefix)r’   r#   s     r&   Ú
_permittedÚUninstallPathSet._permitted6  s.   € ô (×)Ñ)ØØ�‰˜t×:Ñ:¼3¿:¹:ÓFÓGÐGr7   c                 óD  • [         R                  R                  U5      u  p#[         R                  R                  U R	                  U5      [         R                  R                  U5      5      n[         R                  R                  U5      (       d  g U R                  U5      (       a  U R                  R                  U5        OU R                  R                  U5        [         R                  R                  U5      S   S:X  a  U R                  [        U5      5        g g )Né   r<   )r"   r#   rC   r$   rÐ   r_   ÚexistsrÕ   rÊ   r/   rË   Úsplitextr   )r’   r#   r¡   Útails       r&   r/   ÚUninstallPathSet.addA  sÃ   € Ü—W‘W—]‘] 4Ó(‰
ˆô �w‰w�|‰|˜D×7Ñ7¸Ó=¼r¿w¹w×?OÑ?OÐPTÓ?UÓVˆä�w‰w�~‰~˜d×#Ñ#ØØ�?‰?˜4× Ñ Ø�K‰K�O‰O˜DÕ!à�L‰L×Ñ˜TÔ"ô �7‰7×Ñ˜DÓ! !Ñ$¨Ó-Ø�H‰HÔ& tÓ,Õ-ð .r7   Úpth_filerE   c                 ó  • U R                  U5      nU R                  U5      (       aF  XR                  ;  a  [        U5      U R                  U'   U R                  U   R	                  U5        g U R
                  R	                  U5        g r-   )rÐ   rÕ   rÌ   ÚUninstallPthEntriesr/   rË   )r’   rÝ   rE   s      r&   Úadd_pthÚUninstallPathSet.add_pthT  sg   € Ø×.Ñ.¨xÓ8ˆØ�?‰?˜8×$Ñ$ØŸy™yÓ(Ü&9¸(Ó&C�—	‘	˜(Ñ#Ø�I‰I�hÑ×#Ñ# EÕ*à�L‰L×Ñ˜XÕ&r7   Úauto_confirmÚverbosec                 óÜ  • U R                   (       d+  [        R                  SU R                  R                  5        gU R                  R                   SU R                  R
                   3n[        R                  SU5        [        5          U(       d  U R                  U5      (       aª  U R                  n[        U R                   5      n[        [        U5      5       H*  nUR                  U5        [        R                  SU5        M,     U R                  R                  5        H  nUR!                  5         M     [        R                  SU5        SSS5        g! , (       d  f       g= f)zTRemove paths in ``self._paths`` with confirmation (unless
``auto_confirm`` is True).z7Can't uninstall '%s'. No files were found to uninstall.NÚ-zUninstalling %s:zRemoving file or directory %szSuccessfully uninstalled %s)rÊ   r³   r´   rÍ   Úraw_nameÚraw_versionr   Ú_allowed_to_proceedrÎ   r}   rW   r[   r¬   rã   rÌ   rm   Úremove)r’   râ   rã   Údist_name_versionÚmovedÚ
for_renamer#   Úpths           r&   ré   ÚUninstallPathSet.remove]  s  € ð �{�{Ü�K‰KØIØ—
‘
×#Ñ#ôð à#Ÿz™z×2Ñ2Ð3°1°T·Z±Z×5KÑ5KÐ4LÐMÐÜ�‰Ð&Ð(9Ô:ä�\Þ˜t×7Ñ7¸×@Ñ@Ø×)Ñ)�ä0°·±Ó=�
ä"¤7¨:Ó#6Ö7�DØ—K‘K Ô%Ü—N‘NÐ#BÀDÖIñ 8ð  Ÿ9™9×+Ñ+Ö-�CØ—J‘J–Lñ .ô —‘Ð9Ð;LÔM÷ �\Ž\ús   ÂCEÅ
E+c                 ó`  • S[         S[        [            SS4S jnU(       d  [        U R                  5      u  p4O[	        U R                  5      n[	        5       nU" SU5        U" SU5        U" SU R
                  5        U(       a  U" S	[        U R                  5      5        [        S
S5      S:g  $ )z@Display which files would be deleted and prompt for confirmationÚmsgrI   r    Nc                 óæ   • U(       d  g [         R                  U 5        [        5          [        [	        U5      5       H  n[         R                  U5        M     S S S 5        g ! , (       d  f       g = fr-   )r³   r´   r   rW   r[   )rð   rI   r#   s      r&   Ú_displayÚ6UninstallPathSet._allowed_to_proceed.<locals>._display}  sB   € ÞØä�K‰K˜ÔÜ•Ü"¤7¨5£>Ö2�DÜ—K‘K Ö%ñ 3÷ —–ús   ¨1A"Á"
A0zWould remove:z+Would not remove (might be manually added):z%Would not remove (outside of prefix):zWill actually move:zProceed (Y/n)? )ÚyÚnÚ rõ   )rn   r   rŠ   rÊ   r.   rË   r}   r   )r’   rã   rò   r€   r�   s        r&   rè   Ú$UninstallPathSet._allowed_to_proceedz  sž   € ð	&œ#ð 	&¤h¬s¡mð 	&¸ô 	&ö Ü%@ÀÇÁÓ%MÑ"ˆK˜ô ˜dŸk™kÓ*ˆKÜ›ˆIá� +Ô.ÙÐ>À	ÔJÙÐ8¸$¿,¹,ÔGÞÙÐ*Ô,?ÀÇÁÓ,LÔMäÐ$ nÓ5¸Ñ<Ð<r7   c                 óz  • U R                   R                  (       d+  [        R                  SU R                  R
                  5        g[        R                  SU R                  R
                  5        U R                   R                  5         U R                  R                  5        H  nUR                  5         M     g)z1Rollback the changes previously made by remove().z'Can't roll back %s; was not uninstalledNzRolling back uninstall of %s)
rÎ   r½   r³   r·   rÍ   ræ   r´   r¹   rÌ   rm   )r’   rí   s     r&   r¹   ÚUninstallPathSet.rollback–  s}   € à× Ñ ×-×-Ü�L‰LØ9Ø—
‘
×#Ñ#ôð Ü�‰Ð2°D·J±J×4GÑ4GÔHØ×Ñ×"Ñ"Ô$Ø—9‘9×#Ñ#Ö%ˆCØ�L‰LŽNò &r7   c                 ó8   • U R                   R                  5         g)z?Remove temporary save dir: rollback will no longer be possible.N)rÎ   r°   r‘   s    r&   r°   ÚUninstallPathSet.commit£  s   € à×Ñ× Ñ Õ"r7   c           
      óB  • UR                   nUR                  nUc(  [        R                  SUR                  5        U " U5      $ [        U5      nUR                  (       d8  [        R                  SUR                  U[        R                  5        U " U5      $ U[        R                  " S5      [        R                  " S5      1 Vs1 sH  nU(       d  M  UiM     sn;   a)  [        R                  SUR                  U5        U " U5      $ U " U5      n[        UR                  5      nUR                  =(       aT    US L=(       aI    [        R                  R!                  U5      =(       a#    UR#                  UR$                   S35      (       + nU(       GaK  Ub  UR'                  U5        UR)                  5       n	U	b9  U	 H1  n
UR'                  [        R                  R+                  X*5      5        M3     GOöUR-                  S5      (       aÓ   UR/                  S5      nUR1                  S	S
9nUR/                  S5      R1                  5        Vs/ sH  nU(       d  M  X\;  d  M  UPM     sn Ho  n[        R                  R+                  X-5      nUR'                  U5        UR'                  U S35        UR'                  U S35        UR'                  U S35        Mq     GOUR4                  (       a	  [7        US9eUR8                  (       a‡  UR'                  U5        [        R                  R;                  U5      S   n[        R                  R+                  [        R                  R=                  U5      S5      nUR?                  USU-   5        GOYUR@                  (       a%  [C        U5       H  nUR'                  U5        M     GO#U(       Ga  [E        U5       n[        R                  RG                  URI                  5       RK                  5       5      nURM                  U5      nS S S 5        [        R                  RO                  WU5      (       d   SU SW SUR                   SU S3	5       eUR'                  U5        [        R                  R+                  [        R                  R=                  U5      S5      nUR?                  UU5        O[        RQ                  SUU5        URR                  (       a  [U        5       nO
[W        5       n URY                  5        Hq  nUR'                  [        R                  R+                  UU5      5        [Z        (       d  M?  UR'                  [        R                  R+                  UU S35      5        Ms     S[^        S[`        S[b        [`        S S 4   4S jnU" UU5       H  nUR'                  U5        M     U$ s  snf ! [2         a    / n GNÃf = fs  snf ! , (       d  f       GN×= f! [2        [\        4 a     N…f = f)Nz-Not uninstalling %s since it is not installedz1Not uninstalling %s at %s, outside environment %sÚstdlibÚ
platstdlibz<Not uninstalling %s at %s, as it is in the standard library.z	.egg-infoztop_level.txtznamespace_packages.txtF)Úkeependsr<   r>   r?   r:   rØ   zeasy-install.pthz./z	Egg-link z (to z') does not match installed location of z (at Ú)z)Not sure how to uninstall: %s - Check: %sz.batr8   r   r    c              3   ó  #   • U R                  5        Hc  nUR                  S:X  a   [        XR                  S5       S h  v•N   M3  UR                  S:X  d  ME  [        XR                  S5       S h  v•N   Me     g  N; N7f)NÚconsole_scriptsFÚgui_scriptsT)Úiter_entry_pointsÚgroupr'   Úname)r8   r   Úentry_points      r&   Úiter_scripts_to_removeÚ:UninstallPathSet.from_dist.<locals>.iter_scripts_to_remove2  si   é € ð  $×5Ñ5Ö7�Ø×$Ñ$Ð(9Ó9Ü,¨W×6FÑ6FÈÓN×NÒNØ ×&Ñ&¨-Õ7Ü,¨W×6FÑ6FÈÓM×MÒMò	  8áNáMùs(   ‚=A?¿A;Á A?ÁA?Á1A=Á2
A?Á=A?)2r@   Úinfo_locationr³   r´   Úcanonical_namer   ÚlocalrÓ   rÔ   Ú	sysconfigÚget_pathr   ræ   Ú"installed_with_setuptools_egg_infor"   r#   rÙ   rB   Úsetuptools_filenamer/   rA   r$   Úis_fileÚ	read_textÚ
splitlinesÚFileNotFoundErrorÚinstalled_by_distutilsr   Úinstalled_as_eggrC   ri   rà   Úinstalled_with_dist_inforH   Úopenr_   ÚreadlineÚstriprÐ   Úsamefilerµ   Úin_usersiter   r   Úiter_distutils_script_namesr   ÚNotADirectoryErrorr   rn   r   )Úclsr8   Údist_locationr
  Únormalized_dist_locationrt   Úpaths_to_removeÚdevelop_egg_linkÚsetuptools_flat_installationÚinstalled_filesÚinstalled_fileÚnamespace_packagesÚ
namespacesÚtop_level_pkgr#   Úeasy_install_eggÚeasy_install_pthÚfhÚlink_pointerÚnormalized_link_pointerr   Úscriptr  Úss                           r&   Ú	from_distÚUninstallPathSet.from_dist§  sY  € àŸ™ˆØ×*Ñ*ˆØÑ Ü�K‰KØ?Ø×#Ñ#ôñ �t“9Ðä#1°-Ó#@Ð Ø�z�zÜ�K‰KØCØ×#Ñ#Ø(Ü—
‘
ô	ñ �t“9Ðà#ä×(Ò(¨Ó2´I×4FÒ4FÀ|Ó4TÑUó(
áU�Ü÷ ÙUñ(
ó 
ô
 �K‰KØNØ×#Ñ#Ø(ôñ
 �t“9Ðá˜d›)ˆÜ6°t·}±}ÓEÐð ×3Ñ3÷ SØ TÐ)÷Sä—‘—‘˜}Ó-÷Sð
 "×*Ñ*¨d×.FÑ.FÐ-GÀyÐ+QÓRÔRð 	%÷ (ØÑ(Ø×#Ñ# MÔ2Ø"×8Ñ8Ó:ˆOØÑ*Û&5�NØ#×'Ñ'¬¯©¯©°]Ó(SÖTó '6ð
 —‘˜o×.Ñ.ðOØ)-¯©Ð8PÓ)QÐ&ð "4×!>Ñ!>ÈÐ!>Ð!N�Jð "Ÿ^™^¨OÓ<×GÑGÔIó&áI˜Üó àÑ0÷ ÙIô&�Mô
 Ÿ7™7Ÿ<™<¨ÓE�DØ#×'Ñ'¨Ô-Ø#×'Ñ'¨4¨&°¨Ô5Ø#×'Ñ'¨4¨&°¨Ô6Ø#×'Ñ'¨4¨&°¨Ö6ñ&ùð ×(×(Ü(°dÑ;Ð;à×"×"ð ×Ñ Ô.Ü!Ÿw™wŸ}™}¨]Ó;¸AÑ>ÐÜ!Ÿw™wŸ|™|Ü—‘—‘ Ó.Ø"ó Ðð ×#Ñ#Ð$4°dÐ=MÑ6MÖNà×*×*Ü,¨TÖ2�Ø×#Ñ# DÖ)ó 3÷ ô Ð&Ô'¨2Ü!Ÿw™w×/Ñ/°·±³×0CÑ0CÓ0EÓF�Ø*9×*PÑ*PØ ó+Ð'÷ (ô
 —7‘7×#Ñ#Ø'Ð)A÷ñ ð ð Ð,Ð-¨U°<°.ð A)Ø)-¯©¨°u¸]¸OÈ1ðNóð ð ×ÑÐ 0Ô1Ü!Ÿw™wŸ|™|Ü—‘—‘Ð 0Ó1Ð3Eó Ðð ×#Ñ#Ð$4°mÕDô �L‰LØ;ØØôð ××Ü"“n‰Gä$Ó&ˆGð	Ø×:Ñ:Ö<�Ø×#Ñ#¤B§G¡G§L¡L°¸&Ó$AÔBß”7Ø#×'Ñ'¬¯©¯©°WÀÀÈ¸oÓ(NÖOñ =ð	NÜ"ð	Näð	Nô ”s˜D $�Ñ'ô	Nñ (¨¨gÖ6ˆAØ×Ñ Ö"ñ 7ð ÐùòG(
øôT )ó $Ø!#“Jð$üò&÷B (Ö'ûôF "Ô#5Ð6ó 	Ùð	úsV   Ã
WÃWÈW! É
W4ÉW4É#W4ÏAW9ÔAX Õ"6X ×!W1×0W1×9
XØXØX)rÍ   rÎ   rÐ   rÊ   rÌ   rË   )FFr¿   )rÀ   rÁ   rÂ   rÃ   rÄ   r   r“   rn   r¼   rÕ   r/   rà   ré   rè   r¹   r°   Úclassmethodr1  rÆ   rg   r7   r&   rÈ   rÈ   '  sÄ   † ñð	JÐ-ð 	J°$ô 	Jð	H˜sð 	H tô 	Hð.˜ð . ô .ð&' ð '¨Cð '°Dô 'ñN 4ð N¸$ð NÈ4õ Nð:=¨4ð =°Dô =ô8ô#ð ðWÐ-ð WÐ2Dó Wó óWr7   rÈ   c                   óP   • \ rS rSrS\SS4S jrS\SS4S jrSS jrS\4S	 jr	S
r
g)rß   iB  rÝ   r    Nc                 ó<   • Xl         [        5       U l        S U l        g r-   )Úfiler.   rD   Ú_saved_lines)r’   rÝ   s     r&   r“   ÚUninstallPthEntries.__init__C  s   € ØŒ	Ü!$£ˆŒØ37ˆÕr7   rE   c                 ó   • [         R                  R                  U5      n[        (       a9  [         R                  R	                  U5      S   (       d  UR                  SS5      nU R                  R                  U5        g )Nr   Ú\Ú/)r"   r#   r_   r   Ú
splitdriveÚreplacerD   r/   )r’   rE   s     r&   r/   ÚUninstallPthEntries.addH  sU   € Ü—‘× Ñ  Ó'ˆ÷ Š7œ2Ÿ7™7×-Ñ-¨eÓ4°Q×7Ø—M‘M $¨Ó,ˆEØ�‰×Ñ˜Õr7   c                 ót  • [         R                  SU R                  5        [        R                  R                  U R                  5      (       d!  [         R                  SU R                  5        g [        U R                  S5       nUR                  5       nX l	        S S S 5        [        S W 5       5      (       a  SnOSnU(       aB  US   R                  UR                  S5      5      (       d  US   UR                  S5      -   US'   U R                   H<  n [         R                  S	U5        UR                  XC-   R                  S5      5        M>     [        U R                  S
5       nUR!                  U5        S S S 5        g ! , (       d  f       Nð= f! [         a     M�  f = f! , (       d  f       g = f)NzRemoving pth entries from %s:z.Cannot remove entries from nonexistent file %sÚrbc              3   ó*   #   • U H
  nS U;   v •  M     g7f)s   
Nrg   )rR   Úlines     r&   rU   Ú-UninstallPthEntries.remove.<locals>.<genexpr>b  s   é € Ð1©5 4ˆw˜$Žª5ùs   ‚z
Ú
éÿÿÿÿzutf-8zRemoving entry: %sÚwb)r³   rã   r6  r"   r#   r   Úwarningr  Ú	readlinesr7  rX   rB   ÚencoderD   ré   Ú
ValueErrorÚ
writelines)r’   r,  ÚlinesÚendlinerE   s        r&   ré   ÚUninstallPthEntries.removeW  sF  € Ü�‰Ð6¸¿	¹	ÔBô �w‰w�~‰~˜dŸi™i×(Ñ(Ü�N‰NÐKÈTÏYÉYÔWØÜ�$—)‘)˜TÔ" bà—L‘L“NˆEØ %Ô÷ #ô Ñ1©5Ó1×1Ñ1Ø‰GàˆGæ˜˜r™×+Ñ+¨G¯N©N¸7Ó,C×DÑDØ˜b™	 G§N¡N°7Ó$;Ñ;ˆE�"‰IØ—\”\ˆEðÜ—‘Ð3°UÔ;Ø—‘˜e™o×5Ñ5°gÓ>Ö?ñ "ô �$—)‘)˜TÔ" bØ�M‰M˜%Ô ÷ #Ð"÷# #Õ"ûô ó Úðúç"Õ"ús*   ÂFÄ8FÅ,F)Æ
FÆ
F&Æ%F&Æ)
F7c                 ó6  • U R                   c!  [        R                  SU R                  5        g[        R	                  SU R                  5        [        U R                  S5       nUR                  U R                   5        S S S 5        g! , (       d  f       g= f)Nz.Cannot roll back changes to %s, none were madeFz!Rolling %s back to previous staterF  T)r7  r³   r·   r6  rµ   r  rK  )r’   r,  s     r&   r¹   ÚUninstallPthEntries.rollbackr  sm   € Ø×ÑÑ$Ü�L‰LÐIÈ4Ï9É9ÔUØÜ�‰Ð8¸$¿)¹)ÔDÜ�$—)‘)˜TÔ" bØ�M‰M˜$×+Ñ+Ô,÷ #à÷ #Ô"àús   Á%B
Â

B)r7  rD   r6  r¿   )rÀ   rÁ   rÂ   rÃ   rn   r“   r/   ré   r¼   r¹   rÆ   rg   r7   r&   rß   rß   B  s9   † ð8 ð 8¨ô 8ð
 ˜ð   ô  ô!ð6˜$÷ r7   rß   )6r4   r"   rÓ   r  Úimportlib.utilr   Útypingr   r   r   r   r   r	   r
   r   r   Úpip._internal.exceptionsr   r   Úpip._internal.locationsr   r   Úpip._internal.metadatar   Úpip._internal.utils.compatr   Úpip._internal.utils.egg_linkr   Úpip._internal.utils.loggingr   r   Úpip._internal.utils.miscr   r   r   r   Úpip._internal.utils.temp_dirr   r   Úpip._internal.utils.virtualenvr   rÀ   r³   rn   r¼   r'   r6   rH   r[   r}   rŠ   rŒ   rÈ   rß   rg   r7   r&   Ú<module>r\     sk  ðÛ Û 	Û 
Û Ý ,ß W× WÕ Wç Sß @Ý 3Ý .Ý Dß =ß IÓ Iß MÝ Cá	�8Ó	€ð&Øð&Ø"ð&Ø,0ð&àˆs�D˜$ˆÑô&ð&Ø��i  T¨4 Ñ0Ð0Ñ1ðàˆc�9˜S $¨˜_Ñ-Ð-Ñ.ôð 	ðÐ/ð °I¸cÀ4È¸oÑ4Nó ó 	ððB�8˜C‘=ð  S¨¡Xô ð&A˜x¨™}ð A°°S±ô AðD." x°¡}ð ."¸¸sÀ3¹xÈÈSÉÐ?QÑ9Rô ."÷bf!ñ f!÷RXñ X÷v7ò 7r7   