§
    
Á³gÄF  ã                   ó¦  — 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	m
Z
mZ d dlmZ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mZ ej        j        Zej        j        Z e j         e!¦  «        Z" ej#        d¦  «        Z$ ej#        d¦  «        Z% ej#        d	ej&        ¦  «        Z'd
e(de)fd„Z* G d„ de¦  «        Z+ ej,        e+¦  «         dS )é    N)ÚListÚOptionalÚTuple)Ú
BadCommandÚInstallationError)Ú
HiddenTextÚdisplay_pathÚhide_url)Úmake_command)ÚAuthInfoÚRemoteNotFoundErrorÚRemoteNotValidErrorÚ
RevOptionsÚVersionControlÚ(find_path_to_project_root_from_repo_rootÚvcsz(^git version (\d+)\.(\d+)(?:\.(\d+))?.*$z^[a-fA-F0-9]{40}$a/  ^
    # Optional user, e.g. 'git@'
    (\w+@)?
    # Server, e.g. 'github.com'.
    ([^/:]+):
    # The server-side path. e.g. 'user/project.git'. Must start with an
    # alphanumeric character so as not to be confusable with a Windows paths
    # like 'C:/foo/bar' or 'C:\foo\bar'.
    (\w[^:]*)
    $ÚshaÚreturnc                 óP   — t          t                               | ¦  «        ¦  «        S ©N)ÚboolÚ
HASH_REGEXÚmatch)r   s    úS/var/www/html/mpstechhub/venv/lib/python3.11/site-packages/pip/_internal/vcs/git.pyÚlooks_like_hashr   7   s   € Ý•
× Ò  Ñ%Ô%Ñ&Ô&Ð&ó    c            
       ó0  ‡ — e Zd ZdZdZdZdZdZdZe	de
dee
         fd	„¦   «         Zd
e
de
defd„Zdeedf         fd„Zede
dee
         fd„¦   «         Zede
de
deee
         ef         fd„¦   «         Zede
de
defd„¦   «         Zede
d
ededefd„¦   «         Zede
dee
         defd„¦   «         Zde
d
edededdf
d„Zde
d
ededdfd„Zde
d
ededdfd„Zede
de
fd„¦   «         Ze	d
e
de
fd„¦   «         Zede
de
defd„¦   «         Z ed&de
dee
         de
fd„¦   «         Z!ede
dee
         fd „¦   «         Z"ed
e
dee
ee
         e#f         fˆ fd!„¦   «         Z$ede
ddfd"„¦   «         Z%ede
dee
         fˆ fd#„¦   «         Z&e	d$e
defd%„¦   «         Z'ˆ xZ(S )'ÚGitÚgitz.gitÚclone)zgit+httpz	git+httpszgit+sshzgit+gitzgit+file)ÚGIT_DIRÚGIT_WORK_TREEÚHEADÚrevr   c                 ó   — | gS r   © ©r$   s    r   Úget_base_rev_argszGit.get_base_rev_argsK   s	   € àˆuˆr   ÚurlÚdestc                 óú   — |                       t          |¦  «        ¦  «        \  }}|j        sdS |                      ||j        ¦  «        sdS t	          |                      ||j        ¦  «        d         ¦  «        }| S )NFr   )Úget_url_rev_optionsr
   r$   Úis_commit_id_equalr   Úget_revision_sha)Úselfr)   r*   Ú_Úrev_optionsÚis_tag_or_branchs         r   Úis_immutable_rev_checkoutzGit.is_immutable_rev_checkoutO   s   € Ø×1Ò1µ(¸3±-´-Ñ@Ô@‰ˆˆ;ØŒð 	Ø�5Ø×&Ò& t¨[¬_Ñ=Ô=ð 	ð �5õ   × 5Ò 5°d¸K¼OÑ LÔ LÈQÔ OÑPÔPÐØ#Ð#Ð#r   .c                 óþ   — |                       dgddd¬¦  «        }t                               |¦  «        }|st                               d|¦  «         dS t          d„ |                     ¦   «         D ¦   «         ¦  «        S )	NÚversionzgit versionFT)Úcommand_descÚshow_stdoutÚstdout_onlyzCan't parse git version: %sr&   c              3   ó4   K  — | ]}t          |¦  «        V — Œd S r   )Úint)Ú.0Úcs     r   ú	<genexpr>z&Git.get_git_version.<locals>.<genexpr>h   s(   è è € Ð4Ð4 •S˜‘V”VÐ4Ð4Ð4Ð4Ð4Ð4r   )Úrun_commandÚGIT_VERSION_REGEXr   ÚloggerÚwarningÚtupleÚgroups)r/   r5   r   s      r   Úget_git_versionzGit.get_git_version]   s†   € Ø×"Ò"ØˆKØ&ØØð	 #ñ 
ô 
ˆõ "×'Ò'¨Ñ0Ô0ˆØð 	Ý�NŠNÐ8¸'ÑBÔBÐBØ�2ÝÐ4Ð4 U§\¢\¡^¤^Ð4Ñ4Ô4Ñ4Ô4Ð4r   Úlocationc                 óÂ   — g d¢}|                       |ddd|¬¦  «        }|                     ¦   «         }|                     d¦  «        r|t          d¦  «        d…         S dS )zl
        Return the current branch, or None if HEAD isn't at a branch
        (e.g. detached HEAD).
        )zsymbolic-refú-qr#   ©é   FT©Úextra_ok_returncodesr7   r8   Úcwdzrefs/heads/N)r>   ÚstripÚ
startswithÚlen)ÚclsrE   ÚargsÚoutputÚrefs        r   Úget_current_branchzGit.get_current_branchj   sw   € ð .Ð-Ð-ˆØ—’ØØ!%ØØØð !ñ 
ô 
ˆð �lŠl‰nŒnˆà�>Š>˜-Ñ(Ô(ð 	-Ø•s˜=Ñ)Ô)Ð+Ð+Ô,Ð,àˆtr   c                 óÀ  — |                       d|g|ddd¬¦  «        }i }|                     ¦   «                              d¦  «        D ][}|                     d¦  «        }|sŒ	 |                     dd	¬
¦  «        \  }}n # t          $ r t	          d|›�¦  «        ‚w xY w|||<   Œ\d|› �}d|› �}	|                     |¦  «        }
|
�|
dfS |                     |	¦  «        }
|
dfS )zö
        Return (sha_or_none, is_branch), where sha_or_none is a commit hash
        if the revision names a remote branch or tag, otherwise None.

        Args:
          dest: the repository directory.
          rev: the revision name.
        zshow-refFTÚignore)rL   r7   r8   Úon_returncodeú
úú é   )Úmaxsplitzunexpected show-ref line: zrefs/remotes/origin/z
refs/tags/)r>   rM   ÚsplitÚrstripÚ
ValueErrorÚget)rP   r*   r$   rR   ÚrefsÚlineÚref_shaÚref_nameÚ
branch_refÚtag_refr   s              r   r.   zGit.get_revision_shaƒ   s6  € ð —’Ø˜ÐØØØØ"ð !ñ 
ô 
ˆð ˆð —L’L‘N”N×(Ò(¨Ñ.Ô.ð 	%ð 	%ˆDØ—;’;˜tÑ$Ô$ˆDØð ØðHØ$(§J¢J¨s¸Q JÑ$?Ô$?Ñ!�˜˜øÝð Hð Hð Hõ !Ð!F¸dÐ!FÐ!FÑGÔGÐGðHøøøð
 %ˆD�‰NˆNà1¨CÐ1Ð1ˆ
Ø$˜sÐ$Ð$ˆà�hŠh�zÑ"Ô"ˆØˆ?Ø˜�;Ðà�hŠh�wÑÔˆà�Uˆ|Ðs   Á!A<Á<Bc                 ó†   — |                      d¦  «        rdS t          |¦  «        sdS |                      ||¦  «        rdS dS )a$  
        Return true if rev is a ref or is a commit that we don't have locally.

        Branches and tags are not considered in this method because they are
        assumed to be always available locally (which is a normal outcome of
        ``git clone`` and ``git fetch --tags``).
        zrefs/TF)rN   r   Ú
has_commit)rP   r*   r$   s      r   Ú_should_fetchzGit._should_fetch±   sR   € ð �>Š>˜'Ñ"Ô"ð 	à�4å˜sÑ#Ô#ð 	à�5à�>Š>˜$ Ñ$Ô$ð 	à�5àˆtr   r1   c           	      óä  — |j         }|€J ‚|                      ||¦  «        \  }}|�"|                     |¦  «        }|r|nd|_        |S t	          |¦  «        st
                               d|¦  «         |                      ||¦  «        s|S |                      t          dd|| 
                    ¦   «         ¦  «        |¬¦  «         |                      |d¬¦  «        }|                     |¦  «        }|S )zµ
        Resolve a revision to a new RevOptions object with the SHA1 of the
        branch, tag, or ref if found.

        Args:
          rev_options: a RevOptions object.
        Nz:Did not find branch or tag '%s', assuming revision or ref.ÚfetchrG   ©rL   Ú
FETCH_HEADr'   )Úarg_revr.   Úmake_newÚbranch_namer   r@   rA   ri   r>   r   Úto_argsÚget_revision)rP   r*   r)   r1   r$   r   Ú	is_branchs          r   Úresolve_revisionzGit.resolve_revisionÈ   s  € ð Ô!ˆð ˆˆˆà×-Ò-¨d°CÑ8Ô8‰ˆˆYàˆ?Ø%×.Ò.¨sÑ3Ô3ˆKØ-6Ð&@ c c¸DˆKÔ#àÐõ ˜sÑ#Ô#ð 	Ý�NŠNØLØñô ð ð
 × Ò   sÑ+Ô+ð 	ØÐð 	�ŠÝ˜ $¨¨[×-@Ò-@Ñ-BÔ-BÑCÔCØð 	ñ 	
ô 	
ð 	
ð
 ×Ò˜t¨ÐÑ6Ô6ˆØ!×*Ò*¨3Ñ/Ô/ˆàÐr   Únamec                 ó<   — |sdS |                       |¦  «        |k    S )z§
        Return whether the current commit hash equals the given name.

        Args:
          dest: the repository directory.
          name: a string name.
        F)rr   )rP   r*   ru   s      r   r-   zGit.is_commit_id_equalö   s*   € ð ð 	à�5à×Ò Ñ%Ô%¨Ò-Ð-r   Ú	verbosityNc                 óî  — |                      ¦   «         }t                               d||t          |¦  «        ¦  «         |dk    rd}n|dk    rd}nd}|                      ¦   «         dk    r&|                      t          dd	g|¢|‘|‘R Ž ¦  «         n$|                      t          dg|¢|‘|‘R Ž ¦  «         |j        rÙ|                      |||¦  «        }t          |d
d ¦  «        }t           
                    d||¦  «         |€V|                      ||j        ¦  «        s:t          dd|                     ¦   «         ¦  «        }|                      ||¬¦  «         ng|                      |¦  «        |k    r#d|› �}	dd|d|	g}|                      ||¬¦  «         n*|                      |¦  «        }
|                     |
¦  «        }t                               d||j        ¦  «         |                      |¦  «         d S )NzCloning %s%s to %sr   )z--quietrI   r&   )z	--verbosez
--progress)r[   é   r    z--filter=blob:nonerp   zRev options %s, branch_name %sÚcheckoutrG   rl   zorigin/z-bz--trackzResolved %s to commit %s)Ú
to_displayr@   Úinfor	   rD   r>   r   r$   rt   ÚgetattrÚdebugr-   rq   rT   rr   ro   Úupdate_submodules)r/   r*   r)   r1   rw   Úrev_displayÚflagsrp   Úcmd_argsÚtrack_branchr   s              r   Ú	fetch_newzGit.fetch_new  sW  € ð "×,Ò,Ñ.Ô.ˆÝ�ŠÐ(¨#¨{½LÈÑ<NÔ<NÑOÔOÐOØ˜Š>ˆ>Ø%1ˆEˆEØ˜!Š^ˆ^ØˆEˆEà/ˆEØ×ÒÑ!Ô! WÒ,Ð,ð ×ÒÝØØ(ðð ðð ð	ð
 ðð ð ñô ð ð ð ×Ò�\¨'ÐE°EÐE¸3ÐEÀÐEÐEÐEÑFÔFÐFàŒ?ð 	4à×/Ò/°°c¸;ÑGÔGˆKÝ! +¨}¸dÑCÔCˆKÝ�LŠLÐ9¸;ÈÑTÔTÐTØÐ"ð ×.Ò.¨t°[´_ÑEÔEð 9Ý+Ø"ØØ#×+Ò+Ñ-Ô-ñ ô  �Hð
 ×$Ò$ X°4Ð$Ñ8Ô8Ð8øØ×(Ò(¨Ñ.Ô.°+Ò=Ð=ð  7¨Ð6Ð6�àØØØØ ð�ð × Ò  ¨tÐ Ñ4Ô4Ð4øà×#Ò# DÑ)Ô)ˆCØ%×.Ò.¨sÑ3Ô3ˆKå�ŠÐ.°°[´_ÑEÔEÐEð 	×Ò˜tÑ$Ô$Ð$Ð$Ð$r   c                 óð   — |                       t          dd|¦  «        |¬¦  «         t          dd|                     ¦   «         ¦  «        }|                       ||¬¦  «         |                      |¦  «         d S )NÚconfigzremote.origin.urlrl   rz   rG   )r>   r   rq   r   ©r/   r*   r)   r1   r‚   s        r   Úswitchz
Git.switchD  s„   € Ø×ÒÝ˜Ð#6¸Ñ<Ô<Øð 	ñ 	
ô 	
ð 	
õ   
¨D°+×2EÒ2EÑ2GÔ2GÑHÔHˆØ×Ò˜ tÐÑ,Ô,Ð,à×Ò˜tÑ$Ô$Ð$Ð$Ð$r   c                 ój  — |                       ¦   «         dk    r|                      g d¢|¬¦  «         n|                      ddg|¬¦  «         |                      |||¦  «        }t          ddd|                     ¦   «         ¦  «        }|                      ||¬¦  «         |                      |¦  «         d S )N)rI   é	   )rk   rG   z--tagsrl   rk   rG   Úresetz--hard)rD   r>   rt   r   rq   r   r‡   s        r   Úupdatez
Git.updateN  sÂ   € à×ÒÑ!Ô! VÒ+Ð+à×ÒÐ6Ð6Ð6¸DÐÑAÔAÐAÐAà×Ò˜g t˜_°$ÐÑ7Ô7Ð7à×+Ò+¨D°#°{ÑCÔCˆÝ ¨°4¸×9LÒ9LÑ9NÔ9NÑOÔOˆØ×Ò˜ tÐÑ,Ô,Ð,à×Ò˜tÑ$Ô$Ð$Ð$Ð$r   c                 ó`  — |                       g d¢ddd|¬¦  «        }|                     ¦   «         }	 |d         }n# t          $ r t          ‚w xY w|D ]}|                     d¦  «        r|} nŒ|                     d¦  «        d	         }|                      |                     ¦   «         ¦  «        S )
z¢
        Return URL of the first remote encountered.

        Raises RemoteNotFoundError if the repository does not have a remote
        url configured.
        )r†   z--get-regexpzremote\..*\.urlrH   FTrJ   r   zremote.origin.url rZ   rI   )r>   Ú
splitlinesÚ
IndexErrorr   rN   r]   Ú_git_remote_to_pip_urlrM   )rP   rE   ÚstdoutÚremotesÚfound_remoteÚremoter)   s          r   Úget_remote_urlzGit.get_remote_url\  sâ   € ð —’Ø:Ð:Ð:Ø!%ØØØð !ñ 
ô 
ˆð ×#Ò#Ñ%Ô%ˆð	&Ø" 1œ:ˆLˆLøÝð 	&ð 	&ð 	&Ý%Ð%ð	&øøøð ð 	ð 	ˆFØ× Ò Ð!5Ñ6Ô6ð Ø%�Ø�ðð × Ò  Ñ%Ô% aÔ(ˆØ×)Ò)¨#¯)ª)©+¬+Ñ6Ô6Ð6s	   ²; »Ac                 ó:  — t          j        d| ¦  «        r| S t          j                             | ¦  «        r&t          j        | ¦  «                             ¦   «         S t                               | ¦  «        }|r| 	                    d¦  «        S t          | ¦  «        ‚)a8  
        Convert a remote url from what git uses to what pip accepts.

        There are 3 legal forms **url** may take:

            1. A fully qualified url: ssh://git@example.com/foo/bar.git
            2. A local project.git folder: /path/to/bare/repository.git
            3. SCP shorthand for form 1: git@example.com:foo/bar.git

        Form 1 is output as-is. Form 2 must be converted to URI and form 3 must
        be converted to form 1.

        See the corresponding test test_git_remote_url_to_pip() for examples of
        sample inputs/outputs.
        z\w+://zssh://\1\2/\3)Úrer   ÚosÚpathÚexistsÚpathlibÚPurePathÚas_uriÚ	SCP_REGEXÚexpandr   )r)   Ú	scp_matchs     r   r�   zGit._git_remote_to_pip_urlz  sŽ   € õ" Œ8�I˜sÑ#Ô#ð 	àˆJÝŒ7�>Š>˜#ÑÔð 	2õ Ô# CÑ(Ô(×/Ò/Ñ1Ô1Ð1Ý—O’O CÑ(Ô(ˆ	Øð 	6à×#Ò#Ð$4Ñ5Ô5Ð5å! #Ñ&Ô&Ð&r   c                 óh   — 	 |                       dddd|z   g|d¬¦  «         dS # t          $ r Y dS w xY w)zU
        Check if rev is a commit that is available in the local repository.
        ú	rev-parserG   z--verifyzsha^F)rL   Úlog_failed_cmdT)r>   r   )rP   rE   r$   s      r   rh   zGit.has_commit™  sc   € ð
		Ø�OŠOØ˜d J°¸±Ð=ØØ$ð ñ ô ð ð �4øõ !ð 	ð 	ð 	Ø�5�5ð	øøøs   ‚# £
1°1c                 óh   — |€d}|                       d|gdd|¬¦  «        }|                     ¦   «         S )Nr#   r¢   FT©r7   r8   rL   )r>   rM   )rP   rE   r$   Úcurrent_revs       r   rr   zGit.get_revision©  sI   € àˆ;ØˆCØ—o’oØ˜#ÐØØØð	 &ñ 
ô 
ˆð × Ò Ñ"Ô"Ð"r   c                 ót  — |                       ddgdd|¬¦  «                             ¦   «         }t          j                             |¦  «        s t          j                             ||¦  «        }t          j                             t          j                             |d¦  «        ¦  «        }t          ||¦  «        S )z‘
        Return the path to Python project root, relative to the repo root.
        Return None if the project root is in the repo root.
        r¢   z	--git-dirFTr¥   z..)r>   rM   r˜   r™   ÚisabsÚjoinÚabspathr   )rP   rE   Úgit_dirÚ	repo_roots       r   Úget_subdirectoryzGit.get_subdirectoryµ  s›   € ð —/’/Ø˜+Ð&ØØØð	 "ñ 
ô 
÷
 Š%‰'Œ'ð 	õ Œw�}Š}˜WÑ%Ô%ð 	6Ý”g—l’l 8¨WÑ5Ô5ˆGÝ”G—O’O¥B¤G§L¢L°¸$Ñ$?Ô$?Ñ@Ô@ˆ	Ý7¸À)ÑLÔLÐLr   c                 óÊ  •— t          |¦  «        \  }}}}}|                     d¦  «        r³|dt          |                     d¦  «        ¦  «         …         }|t          j                             |¦  «                             dd¦  «                             d¦  «        z   }|                     d¦  «        dz   }	|d|	…         t          ||	d…         ||||f¦  «        z   }d|vrXd|vsJ ‚|                     d	d
¦  «        }t          ¦   «                              |¦  «        \  }}
}|                     dd¦  «        }n%t          ¦   «                              |¦  «        \  }}
}||
|fS )a9  
        Prefixes stub URLs like 'user@hostname:user/repo.git' with 'ssh://'.
        That's required because although they use SSH they sometimes don't
        work with a ssh:// scheme (e.g. GitHub). But we need a scheme for
        parsing. Hence we remove it again afterwards and return it as a stub.
        ÚfileNú/ú\ú+rI   z://zfile:zgit+z
git+ssh://zssh://Ú )ÚurlsplitÚendswithrO   ÚlstripÚurllibÚrequestÚurl2pathnameÚreplaceÚfindÚ
urlunsplitÚsuperÚget_url_rev_and_auth)rP   r)   ÚschemeÚnetlocr™   ÚqueryÚfragmentÚinitial_slashesÚnewpathÚ
after_plusr$   Ú	user_passÚ	__class__s               €r   r¾   zGit.get_url_rev_and_authÇ  so  ø€ õ 19¸±´Ñ-ˆ�˜˜e XØ�?Š?˜6Ñ"Ô"ð 	Ø"Ð#;¥c¨$¯+ª+°cÑ*:Ô*:Ñ&;Ô&;Ð%;Ð#;Ô<ˆOØ%­¬×(CÒ(CÀDÑ(IÔ(I×(QÒ(QØ�cñ)ô )çŠf�S‰kŒkñˆGð  Ÿš SÑ)Ô)¨AÑ-ˆJØ˜˜*˜Ô%­
Ø˜
˜˜Ô$ f¨g°u¸hÐGñ)ô )ñ ˆCð ˜ÐÐØ #Ð%Ð%Ð%Ð%Ø—+’+˜f lÑ3Ô3ˆCÝ"'¡'¤'×">Ò">¸sÑ"CÔ"CÑˆC��iØ—+’+˜h¨Ñ+Ô+ˆCˆCå"'¡'¤'×">Ò">¸sÑ"CÔ"CÑˆC��ià�C˜Ð"Ð"r   c                 ó¶   — t           j                             t           j                             |d¦  «        ¦  «        sd S |                      g d¢|¬¦  «         d S )Nz.gitmodules)Ú	submodulerŒ   z--initz--recursiverG   rl   )r˜   r™   rš   r©   r>   )rP   rE   s     r   r   zGit.update_submodulesæ  s^   € åŒw�~Š~�bœgŸlšl¨8°]ÑCÔCÑDÔDð 	ØˆFØ�ŠØBÐBÐBØð 	ñ 	
ô 	
ð 	
ð 	
ð 	
r   c                 ó`  •— t          ¦   «                              |¦  «        }|r|S 	 |                      ddg|dddd¬¦  «        }n8# t          $ r t                               d|¦  «         Y d S t          $ r Y d S w xY wt          j         	                    | 
                    d¦  «        ¦  «        S )	Nr¢   z--show-toplevelFTÚraise)rL   r7   r8   rW   r£   zKcould not determine if %s is under git control because git is not availablez
)r½   Úget_repository_rootr>   r   r@   r~   r   r˜   r™   Únormpathr^   )rP   rE   ÚlocÚrrÇ   s       €r   rÌ   zGit.get_repository_rootï  sÝ   ø€ å‰gŒg×)Ò)¨(Ñ3Ô3ˆØð 	ØˆJð	Ø—’ØÐ/Ð0ØØ!Ø Ø%Ø$ð  ñ ô ˆAˆAøõ ð 	ð 	ð 	Ý�LŠLð/àñô ð ð
 �4�4Ý ð 	ð 	ð 	Ø�4�4ð	øøøåŒw×Ò §¢¨Ñ 0Ô 0Ñ1Ô1Ð1s   ¨A Á%A;Á.	A;Á:A;Úrepo_urlc                 ó   — dS )zEIn either https or ssh form, requirements must be prefixed with git+.Tr&   )rÐ   s    r   Úshould_add_vcs_url_prefixzGit.should_add_vcs_url_prefix  s	   € ð ˆtr   r   ))Ú__name__Ú
__module__Ú__qualname__ru   ÚdirnameÚ	repo_nameÚschemesÚunset_environÚdefault_arg_revÚstaticmethodÚstrr   r(   r   r3   r   r:   rD   Úclassmethodr   rT   r.   ri   r   r   rt   r-   r„   rˆ   rŒ   r•   r�   rh   rr   r­   r   r¾   r   rÌ   rÒ   Ú__classcell__)rÇ   s   @r   r   r   ;   sf  ø€ € € € € Ø€DØ€GØ€Ið€Gð 1€MØ€Oàð˜sð  t¨C¤yð ð ð ñ „\ðð$¨Sð $¸ð $Àð $ð $ð $ð $ð5  s¨C x¤ð 5ð 5ð 5ð 5ð ð¨#ð °(¸3´-ð ð ð ñ „[ðð0 ð+ Cð +¨cð +°e¸HÀS¼MÈ4Ð<OÔ6Pð +ð +ð +ñ „[ð+ðZ ð ð ¨3ð °4ð ð ð ñ „[ðð, ð+Øð+Ø'ð+Ø6@ð+à	ð+ð +ð +ñ „[ð+ðZ ð. cð .°¸#´ð .À4ð .ð .ð .ñ „[ð.ð=%Øð=%Ø(ð=%Ø7Að=%ØNQð=%à	ð=%ð =%ð =%ð =%ð~%˜3ð % Zð %¸jð %ÈTð %ð %ð %ð %ð%˜3ð % Zð %¸jð %ÈTð %ð %ð %ð %ð ð7 cð 7¨cð 7ð 7ð 7ñ „[ð7ð: ð' Cð '¨Cð 'ð 'ð 'ñ „\ð'ð< ð #ð ¨Cð °Dð ð ð ñ „[ðð ð	#ð 	# Cð 	#¨h°s¬mð 	#Àsð 	#ð 	#ð 	#ñ „[ð	#ð ðM¨ð M°¸´ð Mð Mð Mñ „[ðMð" ð# sð #¨u°S¸(À3¼-ÈÐ5QÔ/Rð #ð #ð #ð #ð #ñ „[ð#ð< ð
¨ð 
°ð 
ð 
ð 
ñ „[ð
ð ð2¨3ð 2°8¸C´=ð 2ð 2ð 2ð 2ð 2ñ „[ð2ð0 ð¨Cð °Dð ð ð ñ „\ðð ð ð ð r   r   )-ÚloggingÚos.pathr˜   r›   r—   Úurllib.parser·   Úurllib.requestÚtypingr   r   r   Úpip._internal.exceptionsr   r   Úpip._internal.utils.miscr   r	   r
   Úpip._internal.utils.subprocessr   Ú pip._internal.vcs.versioncontrolr   r   r   r   r   r   r   Úparser´   r¼   Ú	getLoggerrÓ   r@   Úcompiler?   r   ÚVERBOSErž   rÜ   r   r   r   Úregisterr&   r   r   ú<module>rí      sê  ðØ €€€Ø €€€Ø €€€Ø 	€	€	€	Ø Ð Ð Ð Ø Ð Ð Ð Ø (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ð (Ð (à BÐ BÐ BÐ BÐ BÐ BÐ BÐ BØ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GÐ GØ 7Ð 7Ð 7Ð 7Ð 7Ð 7ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð Œ<Ô €ØŒ\Ô$€
ð 
ˆÔ	˜8Ñ	$Ô	$€ð �B”Jðñô Ð ð ˆRŒZÐ+Ñ,Ô,€
ð ˆBŒJð		ð „Jñô €	ð'˜ð ' ð 'ð 'ð 'ð 'ðPð Pð Pð Pð Pˆ.ñ Pô Pð Pðf €„ˆSÑ Ô Ð Ð Ð r   