Ë
    hKêj%I  ã                   óJ  — 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 d dlmZmZmZ d dlmZmZ d dlmZ d dlmZmZ d dlmZ  e j:                  «       Zej?                  d	d
¬«       ej?                  dd«       ej?                  dd«       ej?                  dd«       ej?                  d«       ej?                  dd«       ej?                  ddd¬«       ej?                  d«       ej@                  jB                  jE                  «       Z# ejH                  d«      Z%g d¢Z&dZ' ejH                  dejP                  «      Z)ejT                  jW                  d«      xs  ejT                  dk(  xr ejX                  d k(  Z-h d!£Z. G d"„ d#«      Z/d$„ Z0d%„ Z1d&„ Z2 G d'„ d(ejf                  «      Z3 G d)„ d*e4«      Z5d+„ Z6d,„ Z7d-„ Z8d.„ Z9d/„ Z:d0„ Z;d1„ Z<d2„ Z=d3„ Z>d4„ Z?d5„ Z@d6„ ZAd7„ ZBd8„ ZCd9„ ZDd:„ ZEd;„ ZF	 	 	 dBd<ejŽ                  d=ee   d>eHd?eHd@eeIee3e5f   f   f
dA„ZJy)Cé    N)Údefaultdict)ÚAnyÚDictÚOptionalÚUnion)ÚunquoteÚurljoinÚurlsplit)Úpathname2urlÚurl2pathname)Útomli)ÚrequirementsÚ
specifiers)ÚPipErrorÚreqÚ*)Únargsz-rz--requirementz-ez
--editablez-iz--index-urlz--extra-index-urlz-fz--find-linksz--hashÚappendÚhashes)ÚactionÚdestz--trusted-hostz(^|\s)+#.*$)ÚsshÚgitÚhgÚbzrÚsftpÚsvnz.whlz‡^(?P<namever>(?P<name>.+?)-(?P<ver>.*?))
    ((-(?P<build>\d[^-]*?))?-(?P<pyver>.+?)-(?P<abi>.+?)-(?P<plat>.+?)
    \.whl|\.dist-info)$ÚwinÚcliÚnt>   Úsha256Úsha384Úsha512c                   ó¸   — e Zd Zd„ Zed„ «       Zed„ «       Zed„ «       Zed„ «       Zed„ «       Z	ed„ «       Z
d„ Zed	„ «       Zed
„ «       Zed„ «       Zed„ «       Zy)ÚLinkc                 ój   — |j                  d«      rt        |«      }t        |«      | _        || _        y )Nú\\)Ú
startswithÚ_path_to_urlr
   Ú_parsed_urlÚ_url)ÚselfÚurls     ú`/home/oem/CyberBrain26-unified/.venv/lib/python3.12/site-packages/pip_api/_parse_requirements.pyÚ__init__zLink.__init__.   s-   € à�>‰>˜&Ô!Ü˜sÓ#ˆCä# C›=ˆÔð ˆ�	ó    c                 ó   — | j                   S ©N)r+   ©r,   s    r.   r-   zLink.url8   s   € à�y‰yÐr0   c                 óâ   — | j                   j                  d«      }t        j                  |«      }|st	        | j
                  «      \  }}|S t        |«      }|sJ d| j                  ›d�«       ‚|S )Nú/zURL z produced no filename)ÚpathÚrstripÚ	posixpathÚbasenameÚ_split_auth_from_netlocÚnetlocr   r+   )r,   r6   Únamer;   Ú_s        r.   ÚfilenamezLink.filename<   sk   € à�y‰y×Ñ Ó$ˆÜ×!Ñ! $Ó'ˆÙô 0°·±Ó<‰IˆF�AØˆMä�t‹}ˆÙÐ>�t˜DŸI™I˜=Ð(=Ð>Ó>ˆtØˆr0   c                 ó,   — t        | j                  «      S r2   )Ú_url_to_pathr-   r3   s    r.   Ú	file_pathzLink.file_pathJ   s   € ä˜DŸH™HÓ%Ð%r0   c                 ó.   — | j                   j                  S r2   )r*   Úschemer3   s    r.   rC   zLink.schemeN   ó   € à×Ñ×&Ñ&Ð&r0   c                 ó.   — | j                   j                  S r2   )r*   r;   r3   s    r.   r;   zLink.netlocR   rD   r0   c                 ó@   — t        | j                  j                  «      S r2   )r   r*   r6   r3   s    r.   r6   z	Link.pathV   s   € ä�t×'Ñ'×,Ñ,Ó-Ð-r0   c                 óp   — t        t        j                  | j                  j	                  d«      «      «      S )Nr5   )Ú	_splitextr8   r9   r6   r7   r3   s    r.   ÚsplitextzLink.splitextZ   s'   € Üœ×+Ñ+¨D¯I©I×,<Ñ,<¸SÓ,AÓBÓCÐCr0   c                 ó(   — | j                  «       d   S ©Né   )rI   r3   s    r.   ÚextzLink.ext]   s   € à�}‰}‹˜qÑ!Ð!r0   c                 óŒ   — t        j                  | j                  j                  dd«      d   j                  dd«      d   «      S )Nú#rL   r   ú?)r8   r9   r+   Úsplitr3   s    r.   Úshow_urlzLink.show_urla   s9   € ä×!Ñ! $§)¡)§/¡/°#°qÓ"9¸!Ñ"<×"BÑ"BÀ3ÈÓ"JÈ1Ñ"MÓNÐNr0   c                 ó(   — | j                   t        k(  S r2   )rM   ÚWHEEL_EXTENSIONr3   s    r.   Úis_wheelzLink.is_wheele   s   € à�x‰xœ?Ñ*Ð*r0   c                 ó&   — | j                   t        v S r2   )rC   ÚVCS_SCHEMESr3   s    r.   Úis_vcszLink.is_vcsi   s   € à�{‰{œkÐ)Ð)r0   N)Ú__name__Ú
__module__Ú__qualname__r/   Úpropertyr-   r>   rA   rC   r;   r6   rI   rM   rR   rU   rX   © r0   r.   r%   r%   -   s×   „ òð ñó ðð ñó ðð ñ&ó ð&ð ñ'ó ð'ð ñ'ó ð'ð ñ.ó ð.òDð ñ"ó ð"ð ñOó ðOð ñ+ó ð+ð ñ*ó ñ*r0   r%   c                 ó’   — t        j                  | «      \  }}|j                  «       j                  d«      r|dd  |z   }|d d }||fS )Nú.taréüÿÿÿ)r8   rI   ÚlowerÚendswith)r6   ÚbaserM   s      r.   rH   rH   n   sN   € Ü×"Ñ" 4Ó(�I€Dˆ#Ø‡z�zƒ|×Ñ˜VÔ$Ø�2�3ˆi˜#‰oˆØ�C�RˆyˆØ�ˆ9Ðr0   c                 ó¸   — d| vr| dfS | j                  dd«      \  }} d }d|v r|j                  dd«      \  }}n|d }}t        |«      }|�t        |«      }| ||ffS )Nú@)NNrL   ú:)ÚrsplitrQ   r   )r;   ÚauthÚpwÚusers       r.   r:   r:   v   s|   € Ø
�&ÑØ�|Ð#Ð#ð
 —=‘=  aÓ(�L€Dˆ&Ø€BØ
ˆd�{ð —:‘:˜c 1Ó%‰ˆ‰bà˜ˆbˆä�4‹=€DØ	€~Ü�R‹[ˆà�D˜"�:ÐÐr0   c                 óB  — | j                  d«      sJ d| ›d�«       ‚t        | «      \  }}}}}|r|dk(  rd}nt        rd|z   }nt        d| ›�«      ‚t	        ||z   «      }t        r9|s7t        |«      dk\  r)|d	   d
k(  r!|d   t        j                  v r|dd dv r|dd  }|S )Núfile:z1You can only turn file: urls into filenames (not ú)Ú	localhostÚ r'   z8non-local file URIs are not supported on this platform: é   r   r5   rL   é   é   )rf   z:/)r(   r
   ÚWINDOWSÚ
ValueErrorr   ÚlenÚstringÚascii_letters)r-   r=   r;   r6   s       r.   r@   r@   Ž   sÔ   € Ø�>‰>Øôð Dà	:¸3¸'ÀÐCóDð ô % S›MÑ€A€vˆt�Q˜á�V˜{Ò*à‰Ý	à˜&‘‰äØFÀsÀgÐNó
ð 	
ô ˜ ™Ó&€Dõ 	ÙÜ�‹I˜ŠNØ�‰G�sŠNØ�‰G”v×+Ñ+Ñ+Ø��1ˆI˜Ñ$à�A�Bˆxˆà€Kr0   c                   ó   ‡ — e Zd Zˆ fd„Zˆ xZS )ÚRequirementc                 óØ   •— |j                  dd «      | _        |j                  dd«      | _        |j                  d«      | _        |j                  d«      | _        t        ‰| �  |i |¤Ž y )Nr   ÚeditableFr>   Úlineno)Úpopr   r{   r>   r|   Úsuperr/   )r,   ÚargsÚkwargsÚ	__class__s      €r.   r/   zRequirement.__init__³   sY   ø€ Ø—j‘j ¨4Ó0ˆŒØŸ
™
 :¨uÓ5ˆŒØŸ
™
 :Ó.ˆŒØ—j‘j Ó*ˆŒä‰Ñ˜$Ð) &Ó)r0   )rY   rZ   r[   r/   Ú__classcell__)r�   s   @r.   ry   ry   ²   s   ø„ ÷*ð *r0   ry   c                   ó   — e Zd Zd„ Zd„ Zy)ÚUnparsedRequirementc                 óJ   — || _         || _        || _        || _        || _        y r2   )r<   ÚmsgÚ	exceptionr>   r|   )r,   r<   r†   r>   r|   s        r.   r/   zUnparsedRequirement.__init__½   s%   € ØˆŒ	ØˆŒØˆŒØ ˆŒØˆ�r0   c                 ó   — | j                   S r2   )r†   r3   s    r.   Ú__str__zUnparsedRequirement.__str__Ä   s   € Ø�x‰xˆr0   N)rY   rZ   r[   r/   r‰   r]   r0   r.   r„   r„   ¼   s   „ òór0   r„   c                 ód   — t        | «      5 }|j                  «       cd d d «       S # 1 sw Y   y xY wr2   )ÚopenÚ	readlines)r>   Úfs     r.   Ú
_read_filerŽ   È   s)   € Ü	ˆh‹ð ˜1Ø�{‰{‹}÷÷ ò ús   Œ&¦/c                 ó$  ‡ — t         j                  j                  ‰ v r0d}t         j                  j                  ‰ «      r|dz  }n<|d‰ z  z  }n3d‰ v rt	        ˆ fd„t
        D «       «      sd}nt        j                  «       }t        d‰ ›d|›�«      ‚)	NzIt looks like a path.z It does exist.z File '%s' does not exist.ú=c              3   ó&   •K  — | ]  }|‰v –— Œ
 y ­wr2   r]   )Ú.0Úopr   s     €r.   ú	<genexpr>z-_check_invalid_requirement.<locals>.<genexpr>Ô   s   øè ø€ Ò>¨b  c¤	Ñ>ùs   ƒz,= is not a valid operator. Did you mean == ?zInvalid requirement: 'z'
)	Úosr6   ÚsepÚexistsÚanyÚ	operatorsÚ	tracebackÚ
format_excr   )r   Úadd_msgs   ` r.   Ú_check_invalid_requirementr�   Í   sz   ø€ Ü	‡w�w‡{�{�cÑØ)ˆÜ�7‰7�>‰>˜#ÔØÐ(Ñ(‰GàÐ3°sÑ;Ñ;‰GØ	�‰œCÓ>´IÔ>Ô>Ø@‰ä×&Ñ&Ó(ˆÝ
²c¹7ÐCÓ
DÐDr0   c                 óŽ   — t        j                  d| «      }d }|r&|j                  d«      }|j                  d«      }||fS | }||fS )Nz^(.+)(\[[^\]]+\])$rL   rq   )ÚreÚmatchÚgroup)r6   ÚmÚextrasÚpath_no_extrass       r.   Ú_strip_extrasr¥   Û   sT   € Ü
�‰Ð&¨Ó-€AØ€FÙØŸ™ ›ˆØ—‘˜“ˆð ˜6Ð!Ð!ð ˆà˜6Ð!Ð!r0   c                 óv   — t        j                  d«      }|j                  | «      }|sy |j                  d«      S )Nz[#&]egg=([^&]*)rL   )rŸ   ÚcompileÚsearchr¡   )r-   Ú_egg_fragment_rer    s      r.   Ú_egg_fragmentrª   ç   s6   € Ü—z‘zÐ"4Ó5ÐØ×#Ñ# CÓ(€EÙØØ�;‰;�q‹>Ðr0   c                 ó¨   — t         j                  j                  t         j                  j                  | «      «      } t	        dt        | «      «      }|S )Nrl   )r•   r6   ÚnormpathÚabspathr	   r   )r6   r-   s     r.   r)   r)   ï   s9   € Ü�7‰7×ÑœBŸG™GŸO™O¨DÓ1Ó2€DÜ
�'œ<¨Ó-Ó
.€CØ€Jr0   c                 óÔ  — t         j                  j                  | d«      }t         j                  j                  | d«      }t         j                  j                  |«      }t         j                  j                  |«      }|s|st	        | › d�«      ‚|rht        |d¬«      5 }t        j                  |j                  «       «      }|j                  di «      j                  d«      }|�|cd d d «       S 	 d d d «       	 t        t         j                  j                  | d«      «      5 }t        j                  |j                  «       «      }d d d «       j                  D �	cg c]y  }	t        |	t        j                  «      r]t        |	j                  t        j                   «      r9|	j                  j"                  j$                  dk(  r|	j                  j&                  ‘Œ{ c}	d	   }
|
D �cg c]  }|j(                  dk(  sŒ|j                  ‘Œ  c}d	   }|j*                  S # 1 sw Y   �Œ+xY w# 1 sw Y   ŒáxY wc c}	w c c}w # t,        t.        t0        t2        f$ r t	        d
| z  «      ‚w xY w)Núpyproject.tomlúsetup.pyzW does not appear to be a Python project: neither 'setup.py' nor 'pyproject.toml' found.zutf-8)ÚencodingÚprojectr<   Úsetupr   zNDirectory %r is not installable. Could not parse package name from 'setup.py'.)r•   r6   ÚjoinÚisfiler   r‹   r   ÚloadsÚreadÚgetÚastÚparseÚbodyÚ
isinstanceÚExprÚvalueÚCallÚfuncÚidÚkeywordsÚargÚsÚ
IndexErrorÚAttributeErrorÚIOErrorÚOSError)r6   Úpyproject_tomlÚsetup_pyÚhas_pyprojectÚ	has_setupr�   Úpp_tomlr<   ÚtreeÚexprÚsetup_kwargsÚkwr¾   s                r.   Ú_parse_local_package_namerÒ   õ   sø  € ä—W‘W—\‘\ $Ð(8Ó9€NÜ�w‰w�|‰|˜D *Ó-€HÜ—G‘G—N‘N >Ó2€MÜ—‘—‘˜xÓ(€Iá¡ÜØˆfð =ð >ó
ð 	
ñ Ü�.¨7Ô3ð 	°qÜ—k‘k !§&¡&£(Ó+ˆGØ—;‘;˜y¨"Ó-×1Ñ1°&Ó9ˆDØÐØ÷		ñ 	ð  ÷	ð
Ü”"—'‘'—,‘,˜t ZÓ0Ó1ð 	'°QÜ—9‘9˜QŸV™V›XÓ&ˆD÷	'ð Ÿ	™	ö
àÜ˜$¤§¡Ô)Ü˜4Ÿ:™:¤s§x¡xÔ0Ø—
‘
—‘×"Ñ" gÒ-ð	 �J‰J×Óò
ð ñˆð %1ÖE˜b°B·F±F¸fÓ4D�—“ÒEÀaÑHˆØ�w‰wˆ÷'	ñ 	ú÷	'ð 	'üò
ùò Føäœ¬´Ð9ò 
Üð<Ø>BñCó
ð 	
ð
úsP   Â AHÃ<)H? Ä%$H)Å	H? ÅA>H5Ç
H? Ç'H:Ç<H:È
H? ÈH&È)H2È.H? È?(I'c                 óø  — | }t        |«      \  }}|}t        j                  j                  |«      rmt        j                  j	                  |d«      }t        j                  j	                  |d«      }t        d„ ||fD «       «      st        d|z  «      ‚t        |«      }|j                  «       j                  d«      rt        |«      |fS d|vrt        d| z  «      ‚t        |«      }|st        d| z  «      ‚||fS )	Nr¯   r°   c              3   óZ   K  — | ]#  }t         j                  j                  |«      –— Œ% y ­wr2   )r•   r6   r—   )r’   Úps     r.   r”   z"_parse_editable.<locals>.<genexpr>)  s   è ø€ ÒK¨”2—7‘7—>‘> !×$ÑKùs   ‚)+zIDirectory %r is not installable. No 'setup.py' or 'pyproject.toml' found.rl   ú+zb%s should either be a path to a local project or a VCS url beginning with svn+, git+, hg+, or bzr+zZCould not detect requirement name for '%s', please specify one with #egg=your_package_name)r¥   r•   r6   Úisdirr´   r˜   r   r)   ra   r(   rÒ   rª   )Úeditable_reqr-   Úurl_no_extrasr£   Úoriginal_urlÚpyproject_pathÚ
setup_pathÚpackage_names           r.   Ú_parse_editablerÞ     s  € Ø
€Cô *¨#Ó.Ñ€M�6Ø €Lä	‡w�w‡}�}�\Ô"ÜŸ™Ÿ™ lÐ4DÓEˆÜ—W‘W—\‘\ ,°
Ó;ˆ
ÜÑK¨~¸zÐ.JÔKÔKÜØ[Øñóð ô
 % ]Ó3ˆà×ÑÓ×'Ñ'¨Ô0ô )¨Ó6¸ÐEÐEà
�#�~Üð6Ø8DñEó
ð 	
ô
 ! Ó%€LÙÜð*Ø,8ñ9ó
ð 	
ð
 ˜ÐÐr0   c              #   óD   K  — | €t         } |D ]  } | |«      rŒ|–— Œ y ­wr2   )Úbool)Ú	predicateÚiterableÚxs      r.   Ú_filterfalserä   F  s,   è ø€ ØÐÜˆ	Øò ˆÙ˜�|Ø‹Gñùs   ‚ ™ c                 ót   ‡— |r|j                   nd }|r$t        j                  |«      Št        ˆfd„| «      } | S )Nc                 ó,   •— ‰j                  | d   «      S rK   )r¨   )ÚeÚpatterns    €r.   ú<lambda>z_skip_regex.<locals>.<lambda>R  s   ø€ ¨G¯N©N¸1¸Q¹4Ó,@€ r0   )Úskip_requirements_regexrŸ   r§   rä   )Ú
lines_enumÚoptionsÚ
skip_regexrè   s      @r.   Ú_skip_regexrî   N  s6   ø€ Ù4;�×0Ò0À€JÙÜ—*‘*˜ZÓ(ˆÜ!Ó"@À*ÓMˆ
ØÐr0   c              #   ó~   K  — | D ]4  \  }}t         j                  d|«      }|j                  «       }|sŒ/||f–— Œ6 y­w)z1
    Strips comments and filter empty lines.
    ro   N)Ú
COMMENT_REÚsubÚstrip)rë   Úline_numberÚlines      r.   Ú_ignore_commentsrõ   V  sE   è ø€ ð (ò $Ñˆ�TÜ�~‰~˜b $Ó'ˆØ�z‰z‹|ˆÚØ˜tÐ#Ó#ñ	$ùs   ‚1=´	=c                 óR   — d| vry | j                  dd«      d   j                  «       S )Nrf   rL   r   )rQ   ra   )r-   s    r.   Ú_get_url_schemer÷   a  s+   € Ø
�#�~ØØ�9‰9�S˜!Ó˜QÑ×%Ñ%Ó'Ð'r0   c                 ó8   — t        | «      }|€y|g d¢t        z   v S )NF)ÚhttpÚhttpsÚfileÚftp)r÷   rW   )r<   rC   s     r.   Ú_is_urlrý   g  s%   € Ü˜TÓ"€FØ€~ØØÒ5¼ÑCÐCÐCr0   c                 óÐ   — t         j                  j                  | v ryt         j                  j                  �t         j                  j                  | v ry| j	                  d«      ryy)NTú.F)r•   r6   r–   Úaltsepr(   )r<   s    r.   Ú_looks_like_pathr  n  sG   € Ü	‡w�w‡{�{�dÑØÜ	‡w�w‡~�~Ð!¤b§g¡g§n¡n¸Ñ&<ØØ‡��sÔØØr0   c                 ó<  — t         j                  j                  | «      syt         j                  j                  t         j                  j	                  | d«      «      ryt         j                  j                  t         j                  j	                  | d«      «      ryy)NFr¯   Tr°   )r•   r6   r×   rµ   r´   )r6   s    r.   Ú_is_installable_dirr  x  s]   € Ü�7‰7�=‰=˜ÔØÜ	‡w�w‡~�~”b—g‘g—l‘l 4Ð)9Ó:Ô;ØÜ	‡w�w‡~�~”b—g‘g—l‘l 4¨Ó4Ô5ØØr0   c                 óf   — t        | «      d   j                  «       }|dt        ddddddd	d
ddfv ryy)NrL   z.zipz.tar.bz2z.tbzz.tar.gzz.tgzr_   z.tar.xzz.txzz.tlzz.tar.lzz	.tar.lzmaTF)rH   ra   rT   )r<   rM   s     r.   Ú_is_archive_filer  ‚  sR   € Ü
�D‹/˜!Ñ
×
"Ñ
"Ó
$€CØ
àÜàØàØØàØØØØð!ñ ð$ Ør0   c                 ó€  — t        |«      rDt        j                  j                  | «      r%t	        | «      rt        | «      S t        d|›d�«      ‚t        | «      sy t        j                  j                  | «      rt        | «      S |j                  dd«      }t        |«      dk\  rt        |d   «      sy t        | «      S )Nz
Directory zC is not installable. Neither 'setup.py' nor 'pyproject.toml' found.re   rL   rq   r   )r  r•   r6   r×   r  r)   r   r  rµ   rQ   ru   )r6   r<   Úurlreq_partss      r.   Ú_get_url_from_pathr  š  s­   € Ü˜Ô¤"§'¡'§-¡-°Ô"5Ü˜tÔ$Ü Ó%Ð%ô Ø˜˜ð !*ð *ó
ð 	
ô ˜DÔ!ØÜ	‡w�w‡~�~�dÔÜ˜DÓ!Ð!Ø—:‘:˜c 1Ó%€LÜ
ˆ<Ó˜AÒÔ&6°|ÀA±Ô&Gð Ü˜ÓÐr0   c           	      ól  — | }t         D ])  }| j                  |dz   «      sŒ| t        |«      dz   d  }  n t        | «      rdnd}d }d }d| v r| j	                  |d«      \  } }t        | «      rt        | «      }nct        j                  j                  t        j                  j                  | «      «      }t        |«      \  }}t        || «      }	|	�t        |	«      }|��L|j                  dk(  rxt        j                  d|j                  «      rXt        t!        t        j                  j                  t        j                  j                  |j                  «      «      «      «      }|j"                  rƒt$        j'                  |j(                  «      }
|
€t+        d|j(                  › �«      ‚|
j-                  d«      j/                  d	d
«      }|
j-                  d«      j/                  d	d
«      }|› d|› �} n6t1        |j                  «      } | €t+        d|› �«      ‚| › d|j                  › �} |�| › |› |› �} | S )NrÖ   rL   z; ú;rû   z\.\./zInvalid wheel name: r<   r=   ú-Úverz==zMissing egg fragment in URL: re   )rW   r(   ru   rý   rQ   r%   r•   r6   r¬   r­   r¥   r  rC   rŸ   r¨   r-   r)   rU   ÚWHEEL_FILE_REr    r>   r   r¡   Úreplacerª   )Úreq_strÚoriginal_req_strÚvÚ
marker_sepÚ
marker_strÚlinkr6   rÕ   r=   r-   Ú
wheel_infoÚ
wheel_nameÚwheel_versions                r.   Ú_parse_requirement_urlr  °  s  € ØÐô ò ˆØ×Ñ˜a #™gÕ&Øœc !›f q™j˜lÐ+ˆGÙðô ! Ô)‘¨s€JØ€JØ€DØ
ˆg�~Ø%Ÿm™m¨J¸Ó:Ñˆ�äˆwÔÜ�G‹}‰ä�w‰w×Ñ¤§¡§¡°Ó 8Ó9ˆÜ˜TÓ"‰ˆˆ1Ü   GÓ,ˆØˆ?Ü˜“9ˆDð Ñà�;‰;˜&Ò ¤R§Y¡Y¨x¸¿¹Ô%BÜœ¤R§W¡W×%5Ñ%5´b·g±g·o±oÀdÇiÁiÓ6PÓ%QÓRÓSˆDà�=Š=Ü&×,Ñ,¨T¯]©]Ó;ˆJØÐ!ÜÐ!5°d·m±m°_ÐEÓFÐFØ#×)Ñ)¨&Ó1×9Ñ9¸#¸sÓCˆJØ&×,Ñ,¨UÓ3×;Ñ;¸CÀÓEˆMØ#˜ B } oÐ6‰Gô $ D§H¡HÓ-ˆGØˆÜÐ!>Ð?OÐ>PÐQÓRÐRØ ˜	  4§8¡8 *Ð-ˆGð ÐØ�I˜j˜\¨*¨Ð6ˆà€Nr0   r>   rì   Úinclude_invalidÚstrict_hashesÚreturnc           
      óÆ  — | h}t        «       }i }|�rÚ|j                  «       } t        j                  j	                  | «      }|j                  | «       dj                  t        | «      «      j                  dd«      j                  «       }t        |d«      }	t        |	«      }	t        |	|«      }	|	D �]5  \  }
}d }t        j                  |j                  «       j!                  «       «      \  }}t#        t$        «      }|j&                  rW|j&                  D ]H  }|j!                  dd«      \  }}|t(        vrt+        d|›dt(        ›�«      ‚||   j-                  |«       ŒJ |j.                  rKt1        «       j                  |j.                  «      }	 t3        |«      }	 |€t7        t9        |«      | |
¬«      }n†|j@                  r@t        j                  j                  ||j@                  «      }||vrL|j                  |«       n:|jB                  r-tE        |jB                  «      \  }}t7        |›d|›�| |
d	¬
«      }n	 |s�Œ�tG        |t4        «      s?djI                  | |
«      |_%        |jL                  �|jL                  jO                  «       s�Œß|jP                  |vr|||jP                  jS                  «       <   �Œt+        d|›d||jP                     ›d|jP                  ›d�«      ‚ |r�ŒÚ|rc|jU                  «       D �cg c]  }|j&                  rŒ|‘Œ }}tW        |«      dkD  r+t+        d|d   jX                  ›d|d   jZ                  ›�«      ‚|S # t*        $ r&}|rt5        |t1        |«      | |
«      }n‚ Y d }~�Œäd }~ww xY w# t:        j<                  $ rB 	 t?        |«       n1# t*        $ r%}|rt5        |t1        |«      | |
«      }n‚ Y d }~nd }~ww xY wY �Œžw xY wc c}w )Nro   z\
rL   rf   zInvalid --hash kind z, expected one of )r   r>   r|   z @ T)r>   r|   r{   z-r {} (line {})zDouble requirement given: z (already in z, name=rm   r   z"Missing hashes for requirement in z, line ).Úsetr}   r•   r6   ÚdirnameÚaddr´   rŽ   r  Ú
splitlinesÚ	enumeraterõ   rî   ÚparserÚparse_known_argsrò   rQ   r   Úlistr   ÚVALID_HASHESr   r   r   Ústrr  r„   ry   Údictr   ÚInvalidRequirementr�   Úrequirementr{   rÞ   r¼   ÚformatÚ
comes_fromÚmarkerÚevaluater<   ra   Úvaluesru   r>   r|   )r>   rì   r  r  Úto_parseÚparsedÚname_to_reqr  Úlinesrë   r|   rô   r   Úknownr=   Úhashes_by_kindÚhshÚkindr  Úparsed_req_strrç   Ú	full_pathr<   r-   Úmissing_hashess                            r.   Úparse_requirementsr:  æ  s�  € ð ˆz€HÜ‹U€FØ€Kâ
Ø—<‘<“>ˆÜ—'‘'—/‘/ (Ó+ˆØ�
‰
�8Ôð —‘œ
 8Ó,Ó-×5Ñ5°f¸bÓA×LÑLÓNˆÜ˜u aÓ(ˆ
Ü% jÓ1ˆ
Ü  ¨WÓ5ˆ
à&ó F	‰LˆF�DØEIˆCÜ×.Ñ.¨t¯z©z«|×/AÑ/AÓ/CÓD‰HˆE�1ä(¬Ó.ˆNØ�|Š|Ø Ÿ<™<ò 5�CØ #§	¡	¨#¨qÓ 1‘I�D˜#Ø¤<Ñ/Ý&â#¥\ð3óð ð # 4Ñ(×/Ñ/°Õ4ð5ð �yŠyÜ›%Ÿ*™* U§Y¡YÓ/�ðÜ%;¸GÓ%D�Nð"Ø�{Ü)Ø*Ü#'¨Ó#7Ø%-Ø#)ô	˜øð ×"Ò"ÜŸG™GŸL™L¨°%×2CÑ2CÓD�	Ø FÑ*Ø—L‘L Õ+Ø—’Ü+¨E¯N©NÓ;‘	��cÜ!Ú!%¡sÐ+Ø%Ø!Ø!ô	‘ð ó Ü! #Ô':Ô;Ø%6×%=Ñ%=¸hÈÓ%O�C”NØ—z‘zÐ-°c·j±j×6IÑ6IÔ6KÙ à—8‘8 ;Ñ.Ø47�K §¡§¡Ó 0Ó1å"â ¨C¯H©HÓ 5°s·x³xðAóð ðGF	ó ñf Ø)4×);Ñ);Ó)=ÖP #ÀSÇZÃZš#ÐPˆÐPÜˆ~Ó Ò"Ýà! !Ñ$×-Ó-¨~¸aÑ/@×/GÒ/GðIóð ð
 Ðøô{  ò Ù&Ü1°'¼3¸q»6À8ÈVÓT™àõ ûðûô $×6Ñ6ò "ð"Ü2°7Õ;øÜ#ò "Ù*Ü"5°g¼sÀ1»vÀxÐQWÓ"X™Cà!ô  ûð"ýð"üòP Qs`   ÆMÆNÌOÌOÍ	NÍM>Í>NÎOÎN&Î%OÎ&	OÎ/OÏ
OÏOÏOÏO)NFF)KÚargparser¹   r•   r8   rŸ   rv   Úsysrš   Úcollectionsr   Útypingr   r   r   r   Úurllib.parser   r	   r
   Úurllib.requestr   r   Úpip_api._vendorr   Úpip_api._vendor.packagingr   r   Úpip_api.exceptionsr   ÚArgumentParserr"  Úadd_argumentÚ	SpecifierÚ
_operatorsÚkeysr™   r§   rð   rW   rT   ÚVERBOSEr  Úplatformr(   r<   rs   r%  r%   rH   r:   r@   ry   Úobjectr„   rŽ   r�   r¥   rª   r)   rÒ   rÞ   rä   rî   rõ   r÷   rý   r  r  r  r  r  ÚPathLikerà   r&  r:  r]   r0   r.   ú<module>rM     sK  ðÛ Û 
Û 	Û Û 	Û Û 
Û Ý #ß -Ó -ß 3Ñ 3ß 5å !ß >Ý 'à	 ˆ×	 Ñ	 Ó	"€Ø × Ñ �E Ð Ô %Ø × Ñ �D˜/Ô *Ø × Ñ �D˜,Ô 'à × Ñ �D˜-Ô (Ø × Ñ Ð'Ô (Ø × Ñ �D˜.Ô )Ø × Ñ �H X°HÐ Ô =Ø × Ñ Ð$Ô %à× Ñ ×+Ñ+×0Ñ0Ó2€	àˆR�Z‰Z˜Ó'€
Ú8€Ø€Ø�—
‘
ðð ‡J�Jó	€ð �,‰,×
!Ñ
! %Ó
(Ò
W¨S¯\©\¸UÑ-BÒ-VÀrÇwÁwÐRVÁ€â-€÷>*ñ >*òBòò0!ôH*�,×*Ñ*ô *ô	˜&ô 	òò
Eò	"òòò'
òT$òNòò$ò(òDòòòò0ò,3ðp "Ø!Øñ	eØ�k‰kðeà�c‰]ðeð ðeð ð	eð
 
ˆ#ˆu�[Ð"5Ð5Ñ6Ð
6Ñ7ôer0   