Ë
    äØjjžu  ã            	       ó  — 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m	Z	m
Z
mZmZmZmZmZmZ ddlmZ ddlmZmZmZ eeef   Zeeeef   Z ede¬«      Zeeegef   Z G d„ d	e«      Z G d
„ de j>                  ¬«      Z  G d„ de «      Z! G d„ de!«      Z"dedeegef   dedeegef   fd„Z# G d„ de!«      Z$ ejJ                  d«      Z&dede
e   fd„Z'dedefd„Z(de
e   de
e   dee
e   e
e   f   fd„Z) G d„ de «      Z*y) é    N)ÚCallableÚDictÚIterableÚIteratorÚListÚOptionalÚPatternÚSetÚTupleÚTypeVarÚUnioné   )Úcanonicalize_version)ÚLegacyVersionÚVersionÚparseÚVersionTypeVar)Úboundc                   ó   — e Zd ZdZy)ÚInvalidSpecifierzH
    An invalid specifier was found, users should refer to PEP 440.
    N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__© ó    úb/opt/eval-harness/bench_task/venv/lib/python3.12/site-packages/pip/_vendor/packaging/specifiers.pyr   r   !   s   „ òr   r   c            	       ón  — e Zd Zej                  defd„«       Zej                  defd„«       Zej                  de	de
fd„«       Zej                  dee
   fd„«       Zej                  de
ddfd	„«       Zej                  dd
edee
   de
fd„«       Zej                  	 ddee   dee
   dee   fd„«       Zy)ÚBaseSpecifierÚreturnc                  ó   — y)zŽ
        Returns the str representation of this Specifier like object. This
        should be representative of the Specifier itself.
        Nr   ©Úselfs    r   Ú__str__zBaseSpecifier.__str__(   ó   � r   c                  ó   — y)zF
        Returns a hash value for this Specifier like object.
        Nr   r"   s    r   Ú__hash__zBaseSpecifier.__hash__/   r%   r   Úotherc                  ó   — y)zq
        Returns a boolean representing whether or not the two Specifier like
        objects are equal.
        Nr   ©r#   r(   s     r   Ú__eq__zBaseSpecifier.__eq__5   r%   r   c                  ó   — y)zg
        Returns whether or not pre-releases as a whole are allowed by this
        specifier.
        Nr   r"   s    r   ÚprereleaseszBaseSpecifier.prereleases<   r%   r   ÚvalueNc                  ó   — y)zd
        Sets whether or not pre-releases as a whole are allowed by this
        specifier.
        Nr   ©r#   r.   s     r   r-   zBaseSpecifier.prereleasesC   r%   r   Úitemr-   c                  ó   — y)zR
        Determines if the given item is contained within this specifier.
        Nr   ©r#   r1   r-   s      r   ÚcontainszBaseSpecifier.containsJ   r%   r   Úiterablec                  ó   — y)z•
        Takes an iterable of items and filters them so that only items which
        are contained within this specifier are allowed in it.
        Nr   )r#   r5   r-   s      r   ÚfilterzBaseSpecifier.filterP   r%   r   ©N)r   r   r   ÚabcÚabstractmethodÚstrr$   Úintr'   ÚobjectÚboolr+   Úabstractpropertyr   r-   Úsetterr4   r   r   r7   r   r   r   r   r   '   s-  „ Ø×Ñð˜ò ó ðð 	×Ñð˜#ò ó ðð
 	×Ñð˜Fð  tò ó ðð 	×Ñð˜X d™^ò ó ðð ×Ñð ð ¨$ò ó ðð 	×Ññ˜Sð ¨x¸©~ð Èò ó ðð
 	×ÑàPTñØ  Ñ0ðØ?GÈ¹~ðà	�.Ñ	!òó ñr   r   )Ú	metaclassc                   ó”  — e Zd ZU i Zeeef   ed<   ee   ed<   ddedee	   ddfd„Z
defd„Zdefd	„Zedeeef   fd
„«       Zdefd„Zdede	fd„Zdedefd„Zdedefd„Zedefd„«       Zedefd„«       Zedee	   fd„«       Zej8                  de	ddfd„«       Zdede	fd„Z	 ddedee	   de	fd„Z	 ddee    dee	   dee    fd„Z!y)Ú_IndividualSpecifierÚ
_operatorsÚ_regexNÚspecr-   r    c                 óð   — | j                   j                  |«      }|st        d|› d�«      ‚|j                  d«      j	                  «       |j                  d«      j	                  «       f| _        || _        y )NzInvalid specifier: 'ú'ÚoperatorÚversion)rE   Úsearchr   ÚgroupÚstripÚ_specÚ_prereleases)r#   rF   r-   Úmatchs       r   Ú__init__z_IndividualSpecifier.__init___   sm   € Ø—‘×"Ñ" 4Ó(ˆÙÜ"Ð%9¸$¸¸qÐ#AÓBÐBð �K‰K˜
Ó#×)Ñ)Ó+Ø�K‰K˜	Ó"×(Ñ(Ó*ð'
ˆŒ
ð (ˆÕr   c                 óŒ   — | j                   �d| j                  ›�nd}d| j                  j                  › dt	        | «      ›|› d�S )Nú, prereleases=Ú ú<ú(ú)>)rO   r-   Ú	__class__r   r;   ©r#   Úpres     r   Ú__repr__z_IndividualSpecifier.__repr__l   sU   € ð × Ñ Ð,ð ˜T×-Ñ-Ð0Ñ1àð 	ð �4—>‘>×*Ñ*Ð+¨1¬S°«Y¨M¸#¸¸bÐAÐAr   c                 ó4   —  dj                   | j                  Ž S )Nz{}{})ÚformatrN   r"   s    r   r$   z_IndividualSpecifier.__str__u   s   € Øˆv�}‰}˜dŸj™jÐ)Ð)r   c                 óP   — | j                   d   t        | j                   d   «      fS )Nr   r   )rN   r   r"   s    r   Ú_canonical_specz$_IndividualSpecifier._canonical_specx   s#   € à�z‰z˜!‰}Ô2°4·:±:¸a±=ÓAÐAÐAr   c                 ó,   — t        | j                  «      S r8   )Úhashr_   r"   s    r   r'   z_IndividualSpecifier.__hash__|   s   € Ü�D×(Ñ(Ó)Ð)r   r(   c                 óî   — t        |t        «      r	 | j                  t        |«      «      }nt        || j                  «      st        S | j
                  |j
                  k(  S # t        $ r	 t        cY S w xY wr8   )Ú
isinstancer;   rX   r   ÚNotImplementedr_   r*   s     r   r+   z_IndividualSpecifier.__eq__   sg   € Ü�eœSÔ!ð&ØŸ™¤s¨5£zÓ2‘ô ˜E 4§>¡>Ô2Ü!Ð!à×#Ñ# u×'<Ñ'<Ñ<Ð<øô $ò &Ü%Ò%ð&ús   ’A" Á"A4Á3A4Úopc                 ó>   — t        | d| j                  |   › �«      }|S )NÚ	_compare_)ÚgetattrrD   )r#   re   Úoperator_callables      r   Ú_get_operatorz"_IndividualSpecifier._get_operatorŠ   s+   € Ü.5Ø�I˜dŸo™o¨bÑ1Ð2Ð3ó/
Ðð !Ð r   rJ   c                 óH   — t        |t        t        f«      st        |«      }|S r8   )rc   r   r   r   ©r#   rJ   s     r   Ú_coerce_versionz$_IndividualSpecifier._coerce_version�   s   € Ü˜'¤M´7Ð#;Ô<Ü˜G“nˆGØˆr   c                 ó    — | j                   d   S )Nr   ©rN   r"   s    r   rI   z_IndividualSpecifier.operator•   ó   € à�z‰z˜!‰}Ðr   c                 ó    — | j                   d   S )Nr   ro   r"   s    r   rJ   z_IndividualSpecifier.version™   rp   r   c                 ó   — | j                   S r8   ©rO   r"   s    r   r-   z _IndividualSpecifier.prereleases�   s   € à× Ñ Ð r   r.   c                 ó   — || _         y r8   rs   r0   s     r   r-   z _IndividualSpecifier.prereleases¡   ó
   € à!ˆÕr   r1   c                 ó$   — | j                  |«      S r8   ©r4   ©r#   r1   s     r   Ú__contains__z!_IndividualSpecifier.__contains__¥   ó   € Ø�}‰}˜TÓ"Ð"r   c                 óº   — |€| j                   }| j                  |«      }|j                  r|sy| j                  | j                  «      } ||| j
                  «      S ©NF)r-   rm   Úis_prereleaserj   rI   rJ   )r#   r1   r-   Únormalized_itemri   s        r   r4   z_IndividualSpecifier.contains¨   s_   € ð
 ÐØ×*Ñ*ˆKð ×.Ñ.¨tÓ4ˆð
 ×(Ò(±Øð /3×.@Ñ.@ÀÇÁÓ.OÐÙ  °$·,±,Ó?Ð?r   r5   c              #   ó  K  — d}g }d|�|ndi}|D ]Y  }| j                  |«      } | j                  |fi |¤ŽsŒ(|j                  r |s| j                  s|j	                  |«       ŒTd}|–— Œ[ |s|r|D ]  }|–— Œ y y y ­w)NFr-   T)rm   r4   r}   r-   Úappend)r#   r5   r-   ÚyieldedÚfound_prereleasesÚkwrJ   Úparsed_versions           r   r7   z_IndividualSpecifier.filter¿   s«   è ø€ ð ˆØÐà¨KÐ,C™[ÈÐNˆð  ò 	"ˆGØ!×1Ñ1°'Ó:ˆNàˆt�}‰}˜^Ñ2¨rÓ2ð "×/Ò/Ù 4×#3Ò#3à%×,Ñ,¨WÕ5ð #�GØ!“Mð	"ñ( Ñ,Ø,ò �Ø“ñð -ˆwùs   ‚6A?¹AA?©rT   Nr8   )"r   r   r   rD   r   r;   Ú__annotations__r	   r   r>   rQ   r[   r$   Úpropertyr   r_   r<   r'   r=   r+   ÚCallableOperatorrj   ÚUnparsedVersionÚParsedVersionrm   rI   rJ   r-   r@   ry   r4   r   r   r7   r   r   r   rC   rC   Z   s°  … à!#€J��S˜#�X‘Ó#Ø�C‰LÓñ(˜Sð (°H¸T±Nð (Èdó (ðB˜#ó Bð*˜ó *ð ðB  s¨C x¡ò Bó ðBð*˜#ó *ð	=˜Fð 	= tó 	=ð! ð !Ð(8ó !ð ð ¸=ó ð
 ð˜#ò ó ðð ð˜ò ó ðð ð!˜X d™^ò !ó ð!ð ×Ñð" ð "¨$ò "ó ð"ð# ð #¨ó #ð DHñ@Ø#ð@Ø2:¸4±.ð@à	ó@ð0 QUñ!Ø  Ñ0ð!Ø?GÈ¹~ð!à	�.Ñ	!ô!r   rC   c                   ó2  ‡ — e Zd ZdZ ej
                  dez   dz   ej                  ej                  z  «      Zdddddd	d
œZ	dde
dee   ddfˆ fd„Zdedefd„Zdede
defd„Zdede
defd„Zdede
defd„Zdede
defd„Zdede
defd„Zdede
defd„Zˆ xZS )ÚLegacySpecifieraÛ  
        (?P<operator>(==|!=|<=|>=|<|>))
        \s*
        (?P<version>
            [^,;\s)]* # Since this is a "legacy" specifier, and the version
                      # string can be just about anything, we match everything
                      # except for whitespace, a semi-colon for marker support,
                      # a closing paren since versions can be enclosed in
                      # them, and a comma since it's a version separator.
        )
        ú^\s*ú\s*$ÚequalÚ	not_equalÚless_than_equalÚgreater_than_equalÚ	less_thanÚgreater_than)ú==ú!=ú<=ú>=rU   ú>NrF   r-   r    c                 óZ   •— t         ‰| �  ||«       t        j                  dt        «       y )NzZCreating a LegacyVersion has been deprecated and will be removed in the next major release)ÚsuperrQ   ÚwarningsÚwarnÚDeprecationWarning)r#   rF   r-   rX   s      €r   rQ   zLegacySpecifier.__init__ü   s&   ø€ Ü‰Ñ˜˜{Ô+ä�‰ð0äõ	
r   rJ   c                 óN   — t        |t        «      st        t        |«      «      }|S r8   )rc   r   r;   rl   s     r   rm   zLegacySpecifier._coerce_version  s   € Ü˜'¤=Ô1Ü#¤C¨£LÓ1ˆGØˆr   Úprospectivec                 ó*   — || j                  |«      k(  S r8   ©rm   ©r#   r    rF   s      r   Ú_compare_equalzLegacySpecifier._compare_equal
  ó   € Ø˜d×2Ñ2°4Ó8Ñ8Ð8r   c                 ó*   — || j                  |«      k7  S r8   r¢   r£   s      r   Ú_compare_not_equalz"LegacySpecifier._compare_not_equal  r¥   r   c                 ó*   — || j                  |«      k  S r8   r¢   r£   s      r   Ú_compare_less_than_equalz(LegacySpecifier._compare_less_than_equal  r¥   r   c                 ó*   — || j                  |«      k\  S r8   r¢   r£   s      r   Ú_compare_greater_than_equalz+LegacySpecifier._compare_greater_than_equal  s   € ð ˜d×2Ñ2°4Ó8Ñ8Ð8r   c                 ó*   — || j                  |«      k  S r8   r¢   r£   s      r   Ú_compare_less_thanz"LegacySpecifier._compare_less_than  ó   € Ø˜T×1Ñ1°$Ó7Ñ7Ð7r   c                 ó*   — || j                  |«      kD  S r8   r¢   r£   s      r   Ú_compare_greater_thanz%LegacySpecifier._compare_greater_than  r®   r   r…   )r   r   r   Ú
_regex_strÚreÚcompileÚVERBOSEÚ
IGNORECASErE   rD   r;   r   r>   rQ   r‰   r   rm   r¤   r§   r©   r«   r­   r°   Ú__classcell__)rX   s   @r   rŒ   rŒ   ã   s!  ø„ ð
€Jð ˆR�Z‰Z˜ *Ñ,¨wÑ6¸¿
¹
ÀRÇ]Á]Ñ8RÓS€Fð ØØØ"ØØñ€Jñ
˜Sð 
°H¸T±Nð 
Èdõ 
ð ð ¸=ó ð
9¨-ð 9¸sð 9Àtó 9ð9¨mð 9À3ð 9È4ó 9ð9°Mð 9Èð 9ÐQUó 9ð9Ø(ð9Ø03ð9à	ó9ð
8¨mð 8À3ð 8È4ó 8ð8°ð 8Àcð 8Èd÷ 8r   rŒ   ÚfnÚ	Specifierr    c           	      ól   ‡ — t        j                  ‰ «      dddt        dt        dt        fˆ fd„«       }|S )Nr#   r¸   r    rF   r    c                 ó:   •— t        |t        «      sy ‰| ||«      S r|   )rc   r   )r#   r    rF   r·   s      €r   Úwrappedz)_require_version_compare.<locals>.wrapped"  s   ø€ ä˜+¤wÔ/ØÙ�$˜ TÓ*Ð*r   )Ú	functoolsÚwrapsrŠ   r;   r>   )r·   r»   s   ` r   Ú_require_version_comparer¾     sC   ø€ ô ‡_�_�RÓð+�kð +´ð +ÄSð +ÌTô +ó ð+ð
 €Nr   c            	       ó°  — e Zd ZdZ ej
                  dez   dz   ej                  ej                  z  «      Zdddddd	d
ddœZ	e
dededefd„«       Ze
dededefd„«       Ze
dededefd„«       Ze
dededefd„«       Ze
dededefd„«       Ze
dededefd„«       Ze
dededefd„«       Zdededefd„Zedefd„«       Zej2                  deddfd„«       Zy)r¸   a  
        (?P<operator>(~=|==|!=|<=|>=|<|>|===))
        (?P<version>
            (?:
                # The identity operators allow for an escape hatch that will
                # do an exact string match of the version you wish to install.
                # This will not be parsed by PEP 440 and we cannot determine
                # any semantic meaning from it. This operator is discouraged
                # but included entirely as an escape hatch.
                (?<====)  # Only match for the identity operator
                \s*
                [^\s]*    # We just match everything, except for whitespace
                          # since we are only testing for strict identity.
            )
            |
            (?:
                # The (non)equality operators allow for wild card and local
                # versions to be specified so we have to define these two
                # operators separately to enable that.
                (?<===|!=)            # Only match for equals and not equals

                \s*
                v?
                (?:[0-9]+!)?          # epoch
                [0-9]+(?:\.[0-9]+)*   # release
                (?:                   # pre release
                    [-_\.]?
                    (a|b|c|rc|alpha|beta|pre|preview)
                    [-_\.]?
                    [0-9]*
                )?
                (?:                   # post release
                    (?:-[0-9]+)|(?:[-_\.]?(post|rev|r)[-_\.]?[0-9]*)
                )?

                # You cannot use a wild card and a dev or local version
                # together so group them with a | and make them optional.
                (?:
                    (?:[-_\.]?dev[-_\.]?[0-9]*)?         # dev release
                    (?:\+[a-z0-9]+(?:[-_\.][a-z0-9]+)*)? # local
                    |
                    \.\*  # Wild card syntax of .*
                )?
            )
            |
            (?:
                # The compatible operator requires at least two digits in the
                # release segment.
                (?<=~=)               # Only match for the compatible operator

                \s*
                v?
                (?:[0-9]+!)?          # epoch
                [0-9]+(?:\.[0-9]+)+   # release  (We have a + instead of a *)
                (?:                   # pre release
                    [-_\.]?
                    (a|b|c|rc|alpha|beta|pre|preview)
                    [-_\.]?
                    [0-9]*
                )?
                (?:                                   # post release
                    (?:-[0-9]+)|(?:[-_\.]?(post|rev|r)[-_\.]?[0-9]*)
                )?
                (?:[-_\.]?dev[-_\.]?[0-9]*)?          # dev release
            )
            |
            (?:
                # All other operators only allow a sub set of what the
                # (non)equality operators do. Specifically they do not allow
                # local versions to be specified nor do they allow the prefix
                # matching wild cards.
                (?<!==|!=|~=)         # We have special cases for these
                                      # operators so we want to make sure they
                                      # don't match here.

                \s*
                v?
                (?:[0-9]+!)?          # epoch
                [0-9]+(?:\.[0-9]+)*   # release
                (?:                   # pre release
                    [-_\.]?
                    (a|b|c|rc|alpha|beta|pre|preview)
                    [-_\.]?
                    [0-9]*
                )?
                (?:                                   # post release
                    (?:-[0-9]+)|(?:[-_\.]?(post|rev|r)[-_\.]?[0-9]*)
                )?
                (?:[-_\.]?dev[-_\.]?[0-9]*)?          # dev release
            )
        )
        r�   rŽ   Ú
compatibler�   r�   r‘   r’   r“   r”   Ú	arbitrary)ú~=r•   r–   r—   r˜   rU   r™   ú===r    rF   r    c           
      óì   — dj                  t        t        j                  t        t        |«      «      «      d d «      }|dz  } | j                  d«      ||«      xr  | j                  d«      ||«      S )Nú.éÿÿÿÿú.*r˜   r•   )ÚjoinÚlistÚ	itertoolsÚ	takewhileÚ_is_not_suffixÚ_version_splitrj   )r#   r    rF   Úprefixs       r   Ú_compare_compatiblezSpecifier._compare_compatible—  s{   € ð —‘Ü”×$Ñ$¤^´^ÀDÓ5IÓJÓKÈCÈRÐPó
ˆð
 	�$‰ˆà'ˆt×!Ñ! $Ó'¨°TÓ:ò 
Ð?W¸t×?QÑ?QÐRVÓ?WØ˜ó@
ð 	
r   c                 ó8  — |j                  d«      rYt        |j                  «      }t        |d d «      }t        t	        |«      «      }|d t        |«       }t        ||«      \  }}||k(  S t        |«      }|j                  st        |j                  «      }||k(  S )NrÇ   éþÿÿÿ)Úendswithr   ÚpublicrÍ   r;   ÚlenÚ_pad_versionÚlocal)	r#   r    rF   Ú
split_specÚsplit_prospectiveÚshortened_prospectiveÚpadded_specÚpadded_prospectiveÚspec_versions	            r   r¤   zSpecifier._compare_equal­  s®   € ð �=‰=˜Ôä! +×"4Ñ"4Ó5ˆKô (¨¨S¨b¨	Ó2ˆJô
 !/¬s°;Ó/?Ó @Ðð
 %6Ð6G¼¸J»Ð$HÐ!ô /;ØÐ1ó/Ñ+ˆKÐ+ð &¨Ñ4Ð4ô # 4›=ˆLð
  ×%Ò%Ü% k×&8Ñ&8Ó9�à ,Ñ.Ð.r   c                 ó(   — | j                  ||«       S r8   )r¤   r£   s      r   r§   zSpecifier._compare_not_equalÕ  s   € à×&Ñ& {°DÓ9Ð9Ð9r   c                 óD   — t        |j                  «      t        |«      k  S r8   ©r   rÓ   r£   s      r   r©   z"Specifier._compare_less_than_equalÙ  s   € ô �{×)Ñ)Ó*¬g°d«mÑ;Ð;r   c                 óD   — t        |j                  «      t        |«      k\  S r8   rß   r£   s      r   r«   z%Specifier._compare_greater_than_equalá  s   € ô �{×)Ñ)Ó*¬g°d«mÑ;Ð;r   Úspec_strc                 ó®   — t        |«      }||k  sy|j                  s8|j                  r,t        |j                  «      t        |j                  «      k(  ryy©NFT)r   r}   Úbase_version©r#   r    rá   rF   s       r   r­   zSpecifier._compare_less_thanë  sT   € ô
 �xÓ ˆð
 ˜TÒ!Øð ×!Ò! k×&?Ò&?Ü�{×/Ñ/Ó0´G¸D×<MÑ<MÓ4NÒNØð
 r   c                 ó  — t        |«      }||kD  sy|j                  s8|j                  r,t        |j                  «      t        |j                  «      k(  ry|j                  �,t        |j                  «      t        |j                  «      k(  ryyrã   )r   Úis_postreleaserä   rÖ   rå   s       r   r°   zSpecifier._compare_greater_than  sƒ   € ô
 �xÓ ˆð
 ˜TÒ!Øð ×"Ò" {×'AÒ'AÜ�{×/Ñ/Ó0´G¸D×<MÑ<MÓ4NÒNØð ×ÑÐ(Ü�{×/Ñ/Ó0´G¸D×<MÑ<MÓ4NÒNØð
 r   c                 óh   — t        |«      j                  «       t        |«      j                  «       k(  S r8   )r;   Úlowerr£   s      r   Ú_compare_arbitraryzSpecifier._compare_arbitrary%  s&   € Ü�;Ó×%Ñ%Ó'¬3¨t«9¯?©?Ó+<Ñ<Ð<r   c                 ó¼   — | j                   �| j                   S | j                  \  }}|dv r1|dk(  r|j                  d«      r|d d }t        |«      j                  ryy)N)r•   r˜   r—   rÂ   rÃ   r•   rÇ   rÑ   TF)rO   rN   rÒ   r   r}   )r#   rI   rJ   s      r   r-   zSpecifier.prereleases(  sl   € ð
 ×ÑÐ(Ø×$Ñ$Ð$ð
 !ŸJ™JÑˆ�'ØÐ6Ñ6ð ˜4Ò G×$4Ñ$4°TÔ$:Ø! # 2˜,�ô �W‹~×+Ò+Øàr   r.   Nc                 ó   — || _         y r8   rs   r0   s     r   r-   zSpecifier.prereleasesA  ru   r   )r   r   r   r±   r²   r³   r´   rµ   rE   rD   r¾   rŠ   r;   r>   rÏ   r¤   r§   r©   r«   r­   r°   r   rê   r‡   r-   r@   r   r   r   r¸   r¸   +  sÙ  „ ð[€Jðz ˆR�Z‰Z˜ *Ñ,¨wÑ6¸¿
¹
ÀRÇ]Á]Ñ8RÓS€Fð ØØØØ"ØØØñ	€Jð ð
¨}ð 
ÀCð 
ÈDò 
ó ð
ð* ð%/¨-ð %/¸sð %/Àtò %/ó ð%/ðN ð:¨mð :À3ð :È4ò :ó ð:ð ð<°Mð <Èð <ÐQUò <ó ð<ð ð<Ø(ð<Ø03ð<à	ò<ó ð<ð ð¨mð Àsð Ètò ó ðð2 ð°ð È#ð ÐRVò ó ðð>=¨gð =¸Sð =ÀTó =ð ð˜Tò ó ðð0 ×Ñð" ð "¨$ò "ó ñ"r   z^([0-9]+)((?:a|b|c|rc)[0-9]+)$rJ   c                 óÆ   — g }| j                  d«      D ]J  }t        j                  |«      }|r |j                  |j	                  «       «       Œ:|j                  |«       ŒL |S )NrÅ   )ÚsplitÚ_prefix_regexrK   ÚextendÚgroupsr€   )rJ   Úresultr1   rP   s       r   rÍ   rÍ   I  sW   € Ø€FØ—‘˜cÓ"ò  ˆÜ×$Ñ$ TÓ*ˆÙØ�M‰M˜%Ÿ,™,›.Õ)à�M‰M˜$Õð ð €Mr   Úsegmentc                 ó.   ‡ — t        ˆ fd„dD «       «       S )Nc              3   ó@   •K  — | ]  }‰j                  |«      –— Œ y ­wr8   )Ú
startswith)Ú.0rÎ   ró   s     €r   ú	<genexpr>z!_is_not_suffix.<locals>.<genexpr>U  s!   øè ø€ ò Ø'-ˆ×Ñ˜6×"ñùs   ƒ)ÚdevÚaÚbÚrcÚpost)Úany)ró   s   `r   rÌ   rÌ   T  s"   ø€ Üó Ø1Pôó ð ð r   ÚleftÚrightc                 óž  — g g }}|j                  t        t        j                  d„ | «      «      «       |j                  t        t        j                  d„ |«      «      «       |j                  | t	        |d   «      d  «       |j                  |t	        |d   «      d  «       |j                  ddgt        dt	        |d   «      t	        |d   «      z
  «      z  «       |j                  ddgt        dt	        |d   «      t	        |d   «      z
  «      z  «       t        t        j                  |Ž «      t        t        j                  |Ž «      fS )Nc                 ó"   — | j                  «       S r8   ©Úisdigit©Úxs    r   ú<lambda>z_pad_version.<locals>.<lambda>^  s   € ¸¿¹»€ r   c                 ó"   — | j                  «       S r8   r  r  s    r   r  z_pad_version.<locals>.<lambda>_  s   € ¸!¿)¹)»+€ r   r   r   Ú0)r€   rÉ   rÊ   rË   rÔ   ÚinsertÚmaxÚchain)rÿ   r   Ú
left_splitÚright_splits       r   rÕ   rÕ   Z  s"  € Ø  "�€Jð ×Ñ”dœ9×.Ñ.Ñ/DÀdÓKÓLÔMØ×Ñ”tœI×/Ñ/Ñ0EÀuÓMÓNÔOð ×Ñ�dœ3˜z¨!™}Ó-Ð/Ð0Ô1Ø×Ñ�uœS ¨Q¡Ó0Ð2Ð3Ô4ð ×Ñ�a˜#˜¤ Q¬¨K¸©NÓ(;¼cÀ*ÈQÁ-Ó>PÑ(PÓ!QÑQÔRØ×Ñ�q˜3˜%¤# a¬¨Z¸©]Ó);¼cÀ+ÈaÁ.Ó>QÑ)QÓ"RÑRÔSä”—‘ *Ð-Ó.´´Y·_±_ÀkÐ5RÓ0SÐTÐTr   c                   ó8  — e Zd Z	 ddedee   ddfd„Zdefd„Zdefd„Zde	fd„Z
d	ed ef   dd fd
„Zd	edefd„Zde	fd„Zdee   fd„Zedee   fd„«       Zej*                  deddfd„«       Zdedefd„Z	 ddedee   defd„Z	 ddee   dee   dee   fd„Zy)ÚSpecifierSetNÚ
specifiersr-   r    c                 ó`  — |j                  d«      D �cg c]#  }|j                  «       sŒ|j                  «       ‘Œ% }}t        «       }|D ]  }	 |j                  t	        |«      «       Œ t        |«      | _        || _	        y c c}w # t
        $ r |j                  t        |«      «       Y Œbw xY w)Nú,)
rî   rM   ÚsetÚaddr¸   r   rŒ   Ú	frozensetÚ_specsrO   )r#   r  r-   ÚsÚsplit_specifiersÚparsedÚ	specifiers          r   rQ   zSpecifierSet.__init__m  sŸ   € ð 0:×/?Ñ/?ÀÓ/DÖR¨!ÈÏÉÍ	˜AŸG™G�IÐRÐÐRô -0«EˆØ)ò 	7ˆIð7Ø—
‘
œ9 YÓ/Õ0ð	7ô   Ó'ˆŒð (ˆÕùò! Søô $ò 7Ø—
‘
œ?¨9Ó5Ö6ð7ús   ”BªBÁBÂ#B-Â,B-c                 ó^   — | j                   �d| j                  ›�nd}dt        | «      ›|› d�S )NrS   rT   z<SpecifierSet(rW   )rO   r-   r;   rY   s     r   r[   zSpecifierSet.__repr__…  sD   € ð × Ñ Ð,ð ˜T×-Ñ-Ð0Ñ1àð 	ð  ¤ D£	˜}¨S¨E°Ð4Ð4r   c                 óX   — dj                  t        d„ | j                  D «       «      «      S )Nr  c              3   ó2   K  — | ]  }t        |«      –— Œ y ­wr8   )r;   ©r÷   r  s     r   rø   z'SpecifierSet.__str__.<locals>.<genexpr>�  s   è ø€ Ò;¨!œs 1ŸvÑ;ùs   ‚)rÈ   Úsortedr  r"   s    r   r$   zSpecifierSet.__str__Ž  s    € Ø�x‰xœÑ;¨t¯{©{Ô;Ó;Ó<Ð<r   c                 ó,   — t        | j                  «      S r8   )ra   r  r"   s    r   r'   zSpecifierSet.__hash__‘  ó   € Ü�D—K‘KÓ Ð r   r(   c                 óâ  — t        |t        «      rt        |«      }nt        |t        «      st        S t        «       }t	        | j
                  |j
                  z  «      |_        | j                  €|j                  �|j                  |_        |S | j                  �|j                  €| j                  |_        |S | j                  |j                  k(  r| j                  |_        |S t        d«      ‚)NzFCannot combine SpecifierSets with True and False prerelease overrides.)rc   r;   r  rd   r  r  rO   Ú
ValueError)r#   r(   r  s      r   Ú__and__zSpecifierSet.__and__”  sã   € Ü�eœSÔ!Ü  Ó'‰EÜ˜E¤<Ô0Ü!Ð!ä “Nˆ	Ü$ T§[¡[°5·<±<Ñ%?Ó@ˆ	Ôà×ÑÐ$¨×);Ñ);Ð)GØ%*×%7Ñ%7ˆIÔ"ð Ðð ×ÑÐ*¨u×/AÑ/AÐ/IØ%)×%6Ñ%6ˆIÔ"ð Ðð ×Ñ %×"4Ñ"4Ò4Ø%)×%6Ñ%6ˆIÔ"ð Ðô ðóð r   c                 ó¶   — t        |t        t        f«      rt        t        |«      «      }nt        |t        «      st        S | j
                  |j
                  k(  S r8   )rc   r;   rC   r  rd   r  r*   s     r   r+   zSpecifierSet.__eq__«  sC   € Ü�eœcÔ#7Ð8Ô9Ü ¤ U£Ó,‰EÜ˜E¤<Ô0Ü!Ð!à�{‰{˜eŸl™lÑ*Ð*r   c                 ó,   — t        | j                  «      S r8   )rÔ   r  r"   s    r   Ú__len__zSpecifierSet.__len__³  s   € Ü�4—;‘;ÓÐr   c                 ó,   — t        | j                  «      S r8   )Úiterr  r"   s    r   Ú__iter__zSpecifierSet.__iter__¶  r"  r   c                 ó„   — | j                   �| j                   S | j                  sy t        d„ | j                  D «       «      S )Nc              3   ó4   K  — | ]  }|j                   –— Œ y ­wr8   ©r-   r  s     r   rø   z+SpecifierSet.prereleases.<locals>.<genexpr>É  s   è ø€ Ò6 Q�1—=•=Ñ6ùs   ‚)rO   r  rþ   r"   s    r   r-   zSpecifierSet.prereleases¹  s?   € ð
 ×ÑÐ(Ø×$Ñ$Ð$ð
 �{Š{Øô Ñ6¨$¯+©+Ô6Ó6Ð6r   r.   c                 ó   — || _         y r8   rs   r0   s     r   r-   zSpecifierSet.prereleasesË  ru   r   r1   c                 ó$   — | j                  |«      S r8   rw   rx   s     r   ry   zSpecifierSet.__contains__Ï  rz   r   c                 óÀ   ‡‡— t        ‰t        t        f«      st        ‰«      Š‰€| j                  Š‰s‰j
                  ryt        ˆˆfd„| j                  D «       «      S )NFc              3   óD   •K  — | ]  }|j                  ‰‰¬ «      –— Œ y­w)r.  Nrw   )r÷   r  r1   r-   s     €€r   rø   z(SpecifierSet.contains.<locals>.<genexpr>í  s   øè ø€ ÒRÀ�1—:‘:˜d°�:×<ÑRùs   ƒ )rc   r   r   r   r-   r}   Úallr  r3   s    ``r   r4   zSpecifierSet.containsÒ  sW   ù€ ô
 ˜$¤´Ð 8Ô9Ü˜“;ˆDð
 ÐØ×*Ñ*ˆKñ ˜t×1Ò1Øô ÔRÀdÇkÁkÔRÓRÐRr   r5   c                 ó�  — |€| j                   }| j                  r/| j                  D ]  }|j                  |t        |«      ¬«      }Œ  |S g }g }|D ]k  }t	        |t
        t        f«      st        |«      }n|}t	        |t
        «      rŒ8|j                  r|s|rŒI|j                  |«       Œ[|j                  |«       Œm |s|r|€|S |S )Nr.  )
r-   r  r7   r>   rc   r   r   r   r}   r€   )r#   r5   r-   rF   Úfilteredr‚   r1   r„   s           r   r7   zSpecifierSet.filterï  sÛ   € ð ÐØ×*Ñ*ˆKð
 �;Š;ØŸ™ò P�ØŸ;™; x¼TÀ+Ó=N˜;ÓO‘ðPàˆOð
 .0ˆHØ68Ðð
 !ò *�ä! $¬¼Ð(@ÔAÜ%*¨4£[‘Nà%)�Nô ˜n¬mÔ<Øð "×/Ò/¹Ú#Ø)×0Ñ0°Õ6à—O‘O DÕ)ð#*ñ* Ñ 1°kÐ6IØ(Ð(àˆOr   r…   r8   )r   r   r   r;   r   r>   rQ   r[   r$   r<   r'   r   r%  r=   r+   r(  r   rC   r+  r‡   r-   r@   r‰   ry   r4   r   r   r7   r   r   r   r  r  l  sP  „ àBFñ(Øð(Ø19¸$±ð(à	ó(ð05˜#ó 5ð=˜ó =ð!˜#ó !ð˜U >°3Ð#6Ñ7ð ¸Nó ð.+˜Fð + tó +ð ˜ó  ð!˜(Ð#7Ñ8ó !ð ð7˜X d™^ò 7ó ð7ð" ×Ñð" ð "¨$ò "ó ð"ð# ð #°Tó #ð DHñSØ#ðSØ2:¸4±.ðSà	óSð< QUñ3Ø  Ñ0ð3Ø?GÈ¹~ð3à	�.Ñ	!ô3r   r  )+r9   r¼   rÊ   r²   rœ   Útypingr   r   r   r   r   r   r	   r
   r   r   r   Úutilsr   rJ   r   r   r   rŠ   r;   r‰   r   r>   rˆ   r$  r   ÚABCMetar   rC   rŒ   r¾   r¸   r³   rï   rÍ   rÌ   rÕ   r  r   r   r   ú<module>r9     s{  ðó
 Û Û Û 	Û ÷÷ ÷ ñ õ (ß 2Ñ 2à�g˜}Ð,Ñ-€Ø˜ °Ð3Ñ4€ÙÐ)°ÔA€Ø˜]¨CÐ0°$Ð6Ñ7Ð ô�zô ô0˜cŸk™kõ 0ôfF˜=ô FôR98Ð*ô 98ðx	Ø�+˜}¨cÐ2°DÐ8Ñ9ð	àˆ{˜M¨3Ð/°Ð5Ñ6ó	ôX"Ð$ô X"ðv �—
‘
Ð<Ó=€ð˜Cð  D¨¡Ió ð˜Cð  Dó ðU�t˜C‘yð U¨¨c©ð U°u¸TÀ#¹YÈÈSÉ	Ð=QÑ7Ró Uô$v�=õ vr   