+
    )O|j‚x  ã                  ó†  a € 0 t $ R t^ RIHt ^ RIt^ RIt^ RIHtHtH	t	 ^RI
HtHt ]'       dA   ^ RIHtHtHtHt ^ RIHt ]]]]]]]3,          ]]3,          t]]]]R3,          ]]3,          t. RGOt]! R	4      tR
]R&   ]! R4      tR
]R&   ]! R4      tR]R&    ! R R]P:                  4      t]P>                   ! R R4      4       t ]'       d   ]]] R3,          t!]P>                   ! R R4      4       t"]P>                   ! R R4      4       t#]'       d   ]]"]#3,          t$]"! RR4      t%R]R&   ]#! RR4      t&R]R&   ]%]&33t'R]R&   R R  lt(R! R" lt)R# R$ lt*R% R& lt+R' R( lt,R) R* lt-R+ R, lt.R- R. lt/R/ R0 lt0R1 R2 lt1RHR3 R4 llt2R5 R6 lt3R7 R8 lt4R9 R: lt5R; R< lt6R= R> lt7R? R@ lt8RA RB lt9RC RD lt:RE RF lt;R# )IzBPrivate version-range helpers used by :mod:`packaging.specifiers`.)ÚannotationsN)ÚTYPE_CHECKINGÚAnyÚFinal)ÚInvalidVersionÚVersion)ÚCallableÚIterableÚIteratorÚSequence)ÚUnion.Ú
FULL_RANGEz0.dev0zFinal[Version]ÚMIN_VERSIONÚ0ÚMIN_RELEASEÚinfzFinal[float]Ú_BOUNDARY_INFc                  ó^   € ] tR t^7tRt]P                  ! 4       t]P                  ! 4       tRt	R# )ÚBoundaryKindz5Where a boundary marker sits in the version ordering.© N)
Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__ÚenumÚautoÚAFTER_LOCALSÚAFTER_POSTSÚ__static_attributes__r   ó    ÚJC:\Users\alokc\chatbot\backend\venv\Lib\site-packages\packaging/_ranges.pyr   r   7   s   † Ù?à—9’9“;€LØ—)’)“+„Kr    r   c                  ó~   € ] tR t^>tRtRtR R ltR R ltR R ltR R	 lt	R
 R lt
R R ltR R ltR R ltRtR# )ÚBoundaryVersiona‹  A point on the version line between two real PEP 440 versions.

Relative to a base version V::

    V < V+local < AFTER_LOCALS(V) < V.post0 < AFTER_POSTS(V)

AFTER_LOCALS is the upper bound of ``<=V``, ``==V``, ``!=V`` (no
local), and the lower bound of the upper-side range of ``!=V``.
AFTER_POSTS is the lower bound of ``>V`` (V final or pre-release),
excluding V's post-releases per PEP 440.
c               ó$   € V ^8„  d   QhRRRRRR/# )é   Úversionr   Úkindr   ÚreturnÚNoner   )Úformats   "r!   Ú__annotate__ÚBoundaryVersion.__annotate__V   s!   € ÷ 'ñ ' ð '¨|ð 'Àñ 'r    c                	óÚ   € Wn         W n        \        VP                  4      V n        VP
                  V n        VP                  V n        VP                  V n
        VP                  V n        R # ©N)r&   r'   Útrim_releaseÚreleaseÚ_cached_trimmed_releaseÚepochÚ_cached_epochÚpreÚ_cached_preÚpostÚ_cached_postÚdevÚ_cached_dev)Úselfr&   r'   s   &&&r!   Ú__init__ÚBoundaryVersion.__init__V   sM   € ØŒØŒ	Ü'3°G·O±OÓ'DˆÔ$Ø$Ÿ]™]ˆÔØ"Ÿ;™;ˆÔØ#ŸL™LˆÔØ"Ÿ;™;ˆÖr    c               ó    € V ^8„  d   QhRRRR/# )r%   Úotherr   r(   Úboolr   )r*   s   "r!   r+   r,   _   s   € ÷ Gñ G ð G¨Dñ Gr    c                ó`  € VP                   V P                  8w  d   R# VP                  pV P                  p\	        V4      p\	        V4      V8  d   R# VRV V8w  d   R# \        V\	        V4      4       F  pW%,          ^ 8w  g   K   R# 	  VP                  V P                  8w  d   R# V P                  \        P                  8X  d;   VP                  V P                  8H  ;'       d    VP                  V P                  8H  # VP                  V P                  8H  ;'       g    VP                  RJ# )z6Is ``other`` a version that this boundary sorts above?FN)r2   r3   r0   r1   ÚlenÚranger4   r5   r'   r   r   r6   r7   r8   r9   )r:   r>   Úother_releaseÚtrimmed_releaseÚtrimmed_lengthÚis   &&    r!   Ú
_is_familyÚBoundaryVersion._is_family_   sø   € à�;‰;˜$×,Ñ,Ô,Ùð Ÿ™ˆØ×6Ñ6ˆÜ˜_Ó-ˆÜˆ}Ó Ô.ÙØ˜˜.Ð)¨_Ô<ÙÜ�~¤s¨=Ó'9Ö:ˆAØÕ 1Ö$Úñ ;ð �9‰9˜×(Ñ(Ô(ÙØ�9‰9œ×1Ñ1Ô1à—:‘: ×!2Ñ!2Ñ2×TÐT°u·y±yÀD×DTÑDTÑ7TÐTà�y‰y˜D×,Ñ,Ñ,×FÐF°·
±
À$Ð0FÐFr    c               ó   € V ^8„  d   QhRR/# )r%   r(   Ú_BoundaryOrderKeyr   )r*   s   "r!   r+   r,   x   s   € ÷ Eñ EÐ-ñ Er    c                óâ   € V P                   P                  pV^,          pV P                  \        P                  8X  d   V^ ,          V^,          ^\
        ^^ 3pV^ ,          V^,          V\
        3# )aJ  Sort key placing this boundary just above the versions it covers.

It extends ``V``'s comparison key ``(epoch, release, suffix)`` with
a trailing ``_BOUNDARY_INF`` local component, so the key sorts after
``V`` and every ``V+local`` (whose keys carry a real, finite local
segment). ``suffix`` is the 6-int comparison suffix
``(pre_rank, pre_n, post_rank, post_n, dev_rank, dev_n)``.

For an AFTER_POSTS boundary the suffix is replaced with one whose
post number is ``_BOUNDARY_INF``, so the key also sorts after every
``V.postN``. An AFTER_LOCALS boundary uses ``V``'s suffix unchanged.
)r&   Ú_keyr'   r   r   r   )r:   Úversion_keyÚsuffixs   &  r!   Ú
_order_keyÚBoundaryVersion._order_keyx   s_   € ð —l‘l×'Ñ'ˆØ'2°1¥~ˆà�9‰9œ×0Ñ0Ô0Ø˜Q•i ¨¥¨A¬}¸aÀÐCˆFà˜1�~˜{¨1�~¨v´}ÐDÐDr    c               ó    € V ^8„  d   QhRRRR/# ©r%   r>   Úobjectr(   r?   r   )r*   s   "r!   r+   r,   �   s   € ÷ ñ ˜Fð  tñ r    c                	ó|   € \        V\        4      '       d"   V P                  4       VP                  4       8H  # \        # r.   )Ú
isinstancer#   rO   ÚNotImplemented©r:   r>   s   &&r!   Ú__eq__ÚBoundaryVersion.__eq__�   s2   € ô �eœ_×-Ò-Ø—?‘?Ó$¨×(8Ñ(8Ó(:Ñ:Ð:ÜÐr    c               ó    € V ^8„  d   QhRRRR/# ©r%   r>   zBoundaryVersion | Versionr(   r?   r   )r*   s   "r!   r+   r,   ”   s   € ÷ *ñ *Ð5ð *¸$ñ *r    c                	óÂ   € \        V\        4      '       d"   V P                  4       VP                  4       8  # V P                  V8  g   R # V P	                  V4      '       * # )F©rU   r#   rO   r&   rG   rW   s   &&r!   Ú__lt__ÚBoundaryVersion.__lt__”   sM   € Ü�eœ_×-Ò-Ø—?‘?Ó$ u×'7Ñ'7Ó'9Ñ9Ð9ð —‘˜uÔ$ÙØ—?‘? 5Ó)Ô)Ð)r    c               ó    € V ^8„  d   QhRRRR/# r[   r   )r*   s   "r!   r+   r,   �   s   € ÷ &ñ &Ð5ð &¸$ñ &r    c                	ó¸   € \        V\        4      '       d"   V P                  4       VP                  4       8„  # V P                  V8¼  d   R # V P	                  V4      # )Tr]   rW   s   &&r!   Ú__gt__ÚBoundaryVersion.__gt__�   sJ   € ô �eœ_×-Ò-Ø—?‘?Ó$ u×'7Ñ'7Ó'9Ñ9Ð9Ø�<‰<˜5Ô ÙØ�‰˜uÓ%Ð%r    c               ó   € V ^8„  d   QhRR/# ©r%   r(   Úintr   )r*   s   "r!   r+   r,   ¦   s   € ÷ 'ñ '˜#ñ 'r    c                	ó4   € \        V P                  4       4      # r.   )ÚhashrO   ©r:   s   &r!   Ú__hash__ÚBoundaryVersion.__hash__¦   s   € ä�D—O‘OÓ%Ó&Ð&r    c               ó   € V ^8„  d   QhRR/# ©r%   r(   Ústrr   )r*   s   "r!   r+   r,   ª   s   € ÷ Pñ P˜#ñ Pr    c                	ó~   € V P                   P                   R V P                  : RV P                  P                   R2# )Ú(z, Ú))Ú	__class__r   r&   r'   Únameri   s   &r!   Ú__repr__ÚBoundaryVersion.__repr__ª   s4   € Ø—.‘.×)Ñ)Ð*¨!¨D¯L©LÑ+;¸2¸d¿i¹i¿n¹nÐ=MÈQÐOÐOr    )r9   r3   r7   r5   r1   r'   r&   N)r   r   r   r   r   Ú	__slots__r;   rG   rO   rX   r^   rb   rj   rt   r   r   r    r!   r#   r#   >   s?   † ñ
ð€Iõ'õGõ2Eõ*õ*õ&õ'÷Pñ Pr    r#   c                  óZ   € ] tR t^²tRtRtR R ltR R ltR R ltR R	 lt	R
 R lt
RtR# )Ú
LowerBoundz²Lower bound of a version range.

A version *v* of ``None`` means unbounded below (-inf).
At equal versions, ``[v`` sorts before ``(v`` because an inclusive
bound starts earlier.
c               ó$   € V ^8„  d   QhRRRRRR/# ©r%   r&   Ú_VersionOrBoundaryÚ	inclusiver?   r(   r)   r   )r*   s   "r!   r+   ÚLowerBound.__annotate__½   s"   € ÷ )ñ )Ð 2ð )¸tð )Èñ )r    c                	ój  € Wn         W n        Vf
   R V n        R # \        V\        4      '       dX   VP
                  \        P                  8X  d   \        VP                   4      V n        R # \        VP                   4      V n        R # V'       d   VP                  V n        R # VP                  V n        R # r.   )r&   r|   Ú_aboverU   r#   r'   r   r   Ú_make_above_after_postsÚ_make_above_after_localsÚ__le__r^   ©r:   r&   r|   s   &&&r!   r;   ÚLowerBound.__init__½   st   € ØŒØ"Œð Š?Ø<@ˆDŽKÜ˜¤×1Ò1ð �|‰|œ|×7Ñ7Ô7Ü5°g·o±oÓF�–ä6°w·±ÓG�–ßØ!Ÿ.™.ˆDŽKà!Ÿ.™.ˆDŽKr    c               ó    € V ^8„  d   QhRRRR/# rR   r   )r*   s   "r!   r+   r}   Ñ   ó   € ÷ Sñ S˜Fð S tñ Sr    c                	ó®   € \        V\        4      '       g   \        # V P                  VP                  8H  ;'       d    V P                  VP                  8H  # r.   ©rU   rx   rV   r&   r|   rW   s   &&r!   rX   ÚLowerBound.__eq__Ñ   ó=   € Ü˜%¤×,Ò,Ü!Ð!Ø�|‰|˜uŸ}™}Ñ,×RÐR°·±À5Ç?Á?Ñ1RÐRr    c               ó    € V ^8„  d   QhRRRR/# )r%   r>   rx   r(   r?   r   )r*   s   "r!   r+   r}   Ö   ó   € ÷ 6ñ 6˜Jð 6¨4ñ 6r    c                	óD  € \        V\        4      '       g   \        # V P                  f   VP                  R J# VP                  f   R# V P                  VP                  8w  d   V P                  VP                  8  # V P                  ;'       d    VP                  '       * # )NFrˆ   rW   s   &&r!   r^   ÚLowerBound.__lt__Ö   sw   € Ü˜%¤×,Ò,Ü!Ð!à�<‰<ÒØ—=‘=¨Ð,Ð,Ø�=‰=Ò ÙØ�<‰<˜5Ÿ=™=Ô(Ø—<‘< %§-¡-Ñ/Ð/à�~‰~×5Ð5 e§o¡oÔ"5Ð5r    c               ó   € V ^8„  d   QhRR/# re   r   )r*   s   "r!   r+   r}   ã   ó   € ÷ 4ñ 4˜#ñ 4r    c                	óD   € \        V P                  V P                  34      # r.   ©rh   r&   r|   ri   s   &r!   rj   ÚLowerBound.__hash__ã   ó   € Ü�T—\‘\ 4§>¡>Ð2Ó3Ð3r    c               ó   € V ^8„  d   QhRR/# rm   r   )r*   s   "r!   r+   r}   æ   ó   € ÷ Hñ H˜#ñ Hr    c                	ó‚   € V P                   '       d   R MRpRV P                  P                   RV V P                  : R2# )Ú[rp   Ú<Ú Ú>©r|   rr   r   r&   ©r:   Úbrackets   & r!   rt   ÚLowerBound.__repr__æ   s:   € ØŸŸ˜‘#¨SˆØ�4—>‘>×*Ñ*Ð+¨1¨W¨I°d·l±lÑ5EÀQÐGÐGr    )r   r|   r&   N©r   r   r   r   r   rv   r;   rX   r^   rj   rt   r   r   r    r!   rx   rx   ²   s/   † ñð 3€Iõ)õ(Sõ
6õ4÷Hñ Hr    rx   c                  óZ   € ] tR t^ëtRtRtR R ltR R ltR R ltR R	 lt	R
 R lt
RtR# )Ú
UpperBoundz°Upper bound of a version range.

A version *v* of ``None`` means unbounded above (+inf).
At equal versions, ``v)`` sorts before ``v]`` because an exclusive
bound ends earlier.
c               ó$   € V ^8„  d   QhRRRRRR/# rz   r   )r*   s   "r!   r+   ÚUpperBound.__annotate__ö   s"   € ÷ )ñ )Ð 2ð )¸tð )Èñ )r    c                	óX  € Wn         W n        Vf
   R V n        R # \        V\        4      '       dO   VP
                  \        P                  8X  d   \        VP                   4      V n        R # VP                  V n        R # V'       d   VP                  V n        R # VP                  V n        R # r.   )r&   r|   Ú_belowrU   r#   r'   r   r   Ú_make_below_after_localsÚ__ge__rb   rƒ   s   &&&r!   r;   ÚUpperBound.__init__ö   sq   € ØŒØ"Œð Š?Ø<@ˆDŽKÜ˜¤×1Ò1ð �|‰|œ|×8Ñ8Ô8Ü6°w·±ÓG�–ð
 &Ÿn™n�–ßØ!Ÿ.™.ˆDŽKà!Ÿ.™.ˆDŽKr    c               ó    € V ^8„  d   QhRRRR/# rR   r   )r*   s   "r!   r+   r¤     r†   r    c                	ó®   € \        V\        4      '       g   \        # V P                  VP                  8H  ;'       d    V P                  VP                  8H  # r.   ©rU   r¢   rV   r&   r|   rW   s   &&r!   rX   ÚUpperBound.__eq__  rŠ   r    c               ó    € V ^8„  d   QhRRRR/# )r%   r>   r¢   r(   r?   r   )r*   s   "r!   r+   r¤     rŒ   r    c                	ó,  € \        V\        4      '       g   \        # V P                  f   R# VP                  f   R# V P                  VP                  8w  d   V P                  VP                  8  # V P                  '       * ;'       d    VP                  # )NFTr¬   rW   s   &&r!   r^   ÚUpperBound.__lt__  sk   € Ü˜%¤×,Ò,Ü!Ð!à�<‰<ÒÙØ�=‰=Ò ÙØ�<‰<˜5Ÿ=™=Ô(Ø—<‘< %§-¡-Ñ/Ð/à—>‘>Ô!×5Ð5 e§o¡oÐ5r    c               ó   € V ^8„  d   QhRR/# re   r   )r*   s   "r!   r+   r¤     r�   r    c                	óD   € \        V P                  V P                  34      # r.   r’   ri   s   &r!   rj   ÚUpperBound.__hash__  r”   r    c               ó   € V ^8„  d   QhRR/# rm   r   )r*   s   "r!   r+   r¤   !  r–   r    c                	ó‚   € V P                   '       d   R MRpRV P                  P                   RV P                  : V R2# )Ú]rq   r™   rš   r›   rœ   r�   s   & r!   rt   ÚUpperBound.__repr__!  s:   € ØŸŸ˜‘#¨SˆØ�4—>‘>×*Ñ*Ð+¨1¨T¯\©\Ñ,<¸W¸IÀQÐGÐGr    )r¦   r|   r&   Nr    r   r    r!   r¢   r¢   ë   s/   † ñð 3€Iõ)õ,Sõ
6õ4÷Hñ Hr    r¢   FzFinal[LowerBound]ÚNEG_INFzFinal[UpperBound]ÚPOS_INFzFinal[tuple[Interval]]c               ó    € V ^8„  d   QhRRRR/# )r%   r0   ztuple[int, ...]r(   r   )r*   s   "r!   r+   r+   0  s   € ÷ =ñ =˜/ð =¨oñ =r    c                ó’   € \        V 4      pV^8”  d    W^,
          ,          ^ 8X  d   V^,          pK&  V\        V 4      8X  d   V # V RV # )zDStrip trailing zeros from a release tuple for normalized comparison.N)rA   )r0   Úends   & r!   r/   r/   0  sE   € ä
ˆg‹,€CØ
�Œ'�g A�gÕ&¨!Ô+Øˆq�ŠØœS ›\Ô)ˆ7Ð<¨w°t¸¨}Ð<r    c               ó    € V ^8„  d   QhRRRR/# ©r%   r&   r   r(   r   )r*   s   "r!   r+   r+   8  s   € ÷ Kñ K˜wð K¨7ñ Kr    c                ó    € . V P                   RR OV P                   R,          ^,           N5p\        P                  ! V P                  V^ R7      # )z5Smallest version in the next prefix: 1.2 -> 1.3.dev0.N©r2   r0   r8   éÿÿÿÿ)r0   r   Ú
from_partsr2   )r&   r0   s   & r!   Ú_next_prefix_dev0rÃ   8  sC   € à>�—‘  Ð$Ð> g§o¡o°bÕ&9¸AÕ&=Ñ>€GÜ×Ò G§M¡M¸7ÈÔJÐJr    c               ó    € V ^8„  d   QhRRRR/# r¾   r   )r*   s   "r!   r+   r+   >  s   € ÷ Sñ S˜ð S Gñ Sr    c                ó\   € \         P                  ! V P                  V P                  ^ R7      # )z7The .dev0 of a version's base release: 1.2 -> 1.2.dev0.rÀ   )r   rÂ   r2   r0   ©r&   s   &r!   Ú
_base_dev0rÇ   >  s    € ä×Ò G§M¡M¸7¿?¹?ÐPQÔRÐRr    c               ó    € V ^8„  d   QhRRRR/# )r%   r&   zVersion | strr(   úVersion | Noner   )r*   s   "r!   r+   r+   C  s   € ÷ ñ ˜Mð ¨nñ r    c                ór   € \        V \        4      '       g    \        V 4      p V # V #   \         d     R # i ; ir.   )rU   r   r   rÆ   s   &r!   Úcoerce_versionrË   C  s=   € Ü�gœw×'Ò'ð	Ü˜gÓ&ˆGð €Nˆ7€Nøô ô 	Úð	ús   ˜' §6µ6c               ó    € V ^8„  d   QhRRRR/# ©r%   r&   r   r(   zCallable[[Version], bool]r   )r*   s   "r!   r+   r+   L  s   € ÷ %ñ % Wð %Ð1Jñ %r    c                ó²   aaaaa€ V P                   oV P                  oV P                  o\        V P                  4      o\        S4      oR VVVVV3R llpV# )zñPredicate ``parsed > AFTER_POSTS(V)`` for a lower bound.

Per PEP 440, ``>V`` excludes V's post-releases unless V is itself
a post-release. AFTER_POSTS sits above V and every V.postN (with
or without local), and just below the next release.
c               ó    € V ^8„  d   QhRRRR/# ©r%   Úparsedr   r(   r?   r   )r*   s   "r!   r+   Ú-_make_above_after_posts.<locals>.__annotate__Y  s   € ÷ ñ �gð  $ñ r    c                ó   <€ S! V 4      '       d   R # V P                   S8w  d   R# V P                  p\        V4      S8  d   R# VRS S8w  d   R# \        S\        V4      4       F  pW,          ^ 8w  g   K   R# 	  V P                  S8w  d   R# R # ©FTN)r2   r0   rA   rB   r4   )rÑ   Úparsed_releaserF   rE   Úversion_epochÚ
version_geÚversion_preÚversion_release_trimmeds   &  €€€€€r!   ÚaboveÚ&_make_above_after_posts.<locals>.aboveY  sˆ   ø€ Ù�f×ÒÙð �<‰<˜=Ô(ÙØŸ™ˆÜˆ~Ó Ô/ÙØ˜/˜>Ð*Ð.EÔEÙÜ�~¤s¨>Ó':Ö;ˆAØÕ  AÖ%Úñ <ð �:‰:˜Ô$Ùñ r    )r¨   r2   r4   r/   r0   rA   )r&   rÚ   rE   rÖ   r×   rØ   rÙ   s   & @@@@@r!   r€   r€   L  sK   ü€ ð —‘€JØ—M‘M€MØ—+‘+€KÜ*¨7¯?©?Ó;ÐÜÐ0Ó1€N÷ô ð0 €Lr    c               ó    € V ^8„  d   QhRRRR/# rÍ   r   )r*   s   "r!   r+   r+   t  ó   € ÷ $ñ $ gð $Ð2Kñ $r    c                óê   aaaaaaa€ V P                   oV P                  oV P                  oV P                  oV P                  o\        V P                  4      o\        S4      oR VVVVVVV3R llpV# )zÎPredicate ``parsed > AFTER_LOCALS(V)`` for a lower bound.

Used by the upper-side range of ``!=V`` (when V has no local
segment). AFTER_LOCALS sits above V and every ``V+local`` but
just below ``V.post0``.
c               ó    € V ^8„  d   QhRRRR/# rÐ   r   )r*   s   "r!   r+   Ú._make_above_after_locals.<locals>.__annotate__ƒ  ó   € ÷ )ñ )�gð ) $ñ )r    c                ó`  <€ S! V 4      '       d   R # V P                   S8w  d   R# V P                  p\        V4      S8  d   R# VRS S	8w  d   R# \        S\        V4      4       F  pW,          ^ 8w  g   K   R# 	  V P                  S8w  d   R# V P
                  S8w  d   R# V P                  S8g  # rÔ   ©r2   r0   rA   rB   r4   r6   r8   ©
rÑ   rÕ   rF   rE   Úversion_devrÖ   r×   Úversion_postrØ   rÙ   s
   &  €€€€€€€r!   rÚ   Ú'_make_above_after_locals.<locals>.aboveƒ  s¡   ø€ Ù�f×ÒÙð �<‰<˜=Ô(ÙØŸ™ˆÜˆ~Ó Ô/ÙØ˜/˜>Ð*Ð.EÔEÙÜ�~¤s¨>Ó':Ö;ˆAØÕ  AÖ%Úñ <ð �:‰:˜Ô$ÙØ�;‰;˜,Ô&ÙØ�z‰z˜[Ñ(Ð(r    ©r¨   r2   r4   r6   r8   r/   r0   rA   )	r&   rÚ   rE   rå   rÖ   r×   ræ   rØ   rÙ   s	   & @@@@@@@r!   r�   r�   t  ó]   þ€ ð —‘€JØ—M‘M€MØ—+‘+€KØ—<‘<€LØ—+‘+€KÜ*¨7¯?©?Ó;ÐÜÐ0Ó1€N÷)ö )ð* €Lr    c               ó    € V ^8„  d   QhRRRR/# rÍ   r   )r*   s   "r!   r+   r+   ›  rÝ   r    c                óê   aaaaaaa€ V P                   oV P                  oV P                  oV P                  oV P                  o\        V P                  4      o\        S4      oR VVVVVVV3R llpV# )zÛPredicate ``parsed <= AFTER_LOCALS(V)`` for an upper bound.

Used by ``<=V``, ``==V``, ``!=V`` (no local). ``parsed`` is at or
below the boundary when it is at or below V cmpkey-wise, or when
it is in V's local family.
c               ó    € V ^8„  d   QhRRRR/# rÐ   r   )r*   s   "r!   r+   Ú._make_below_after_locals.<locals>.__annotate__ª  rá   r    c                ó`  <€ S! V 4      '       d   R # V P                   S8w  d   R# V P                  p\        V4      S8  d   R# VRS S	8w  d   R# \        S\        V4      4       F  pW,          ^ 8w  g   K   R# 	  V P                  S8w  d   R# V P
                  S8w  d   R# V P                  S8H  # )TFNrã   rä   s
   &  €€€€€€€r!   ÚbelowÚ'_make_below_after_locals.<locals>.belowª  s¡   ø€ Ù�f×ÒÙð �<‰<˜=Ô(ÙØŸ™ˆÜˆ~Ó Ô/ÙØ˜/˜>Ð*Ð.EÔEÙÜ�~¤s¨>Ó':Ö;ˆAØÕ  AÖ%Úñ <ð �:‰:˜Ô$ÙØ�;‰;˜,Ô&ÙØ�z‰z˜[Ñ(Ð(r    rè   )	r&   rï   rE   rå   rÖ   r×   ræ   rØ   rÙ   s	   & @@@@@@@r!   r§   r§   ›  ré   r    c               ó    € V ^8„  d   QhRRRR/# )r%   Úboundaryr#   r(   rÉ   r   )r*   s   "r!   r+   r+   Â  s   € ÷ ñ  /ð °nñ r    c                ó   € V P                   pV P                  \        P                  8X  dj   VP                  e%   VP                  VP                  ^,           RR7      # VP                  e   VP                  ^,           M^ pVP                  V^ RR7      # VP                  e,   VP                  w  r4VP                  W4^,           3R^ RR7      # R# )zLSmallest real version strictly above *boundary*, or ``None`` if none exists.N©r8   Úlocal©r6   r8   rõ   ©r4   r6   r8   rõ   )r&   r'   r   r   r8   Ú__replace__r6   r4   )rò   ÚbaseÚ	next_postr'   Únumbers   &    r!   Úleast_version_aboverü   Â  sµ   € à×Ñ€Dà‡}�}œ×1Ñ1Ô1ð �8‰8ÒØ×#Ñ#¨¯©°1­¸DÐ#ÓAÐAØ'+§y¡yÒ'<�T—Y‘Y –]À!ˆ	Ø×Ñ Y°A¸TÐÓBÐBð ‡x�xÒØ—x‘x‰ˆØ×Ñ T°A­:Ð$6¸TÀqÐPTÐÓUÐUár    c               ó$   € V ^8„  d   QhRRRRRR/# )r%   Úlowerrx   Úupperr¢   r(   r?   r   )r*   s   "r!   r+   r+   ×  s!   € ÷ )ñ )˜*ð )¨Zð )¸Dñ )r    c                ó`  € VP                   f   R# V P                   fO   VP                  '       * ;'       d6    \        VP                   \        4      ;'       d    VP                   \        8*  # \        V P                   \
        4      '       dK   \        V P                   4      pVe2   VP                   V8X  d   VP                  '       * # VP                   V8  # V P                   VP                   8X  d&   V P                  ;'       d    VP                  '       * # V P                   VP                   8„  # )a	  True when the range defined by *lower* and *upper* contains no versions.

A boundary lower sits just below the next real version, so an ordered pair
is still empty when the upper excludes that least successor:
``(AFTER_POSTS(1.0a1), 1.0a2.dev0)`` holds no version.
F)r&   r|   rU   r   r   r#   rü   )rþ   rÿ   Ú	successors   && r!   Úrange_is_emptyr  ×  så   € ð ‡}�}ÒÙà‡}�}Òð —‘Ô÷ -ð -Ü˜5Ÿ=™=¬'Ó2÷-ð -à—‘¤Ñ,ð	
ô �%—-‘-¤×1Ò1Ü'¨¯©Ó6ˆ	ØÒ Ø�}‰} 	Ô)Ø Ÿ?™?Ô*Ð*Ø—=‘= 9Ñ,Ð,à‡}�}˜Ÿ™Ô%Ø—O‘O×7Ð7¨¯©Ô8Ð8à�=‰=˜5Ÿ=™=Ñ(Ð(r    c               ó$   € V ^8„  d   QhRRRRRR/# )r%   ÚleftúSequence[Interval]Úrightr(   úlist[Interval]r   )r*   s   "r!   r+   r+   ÷  s&   € ÷ ñ Ø
ðàðð ñr    c                ó"  € . p^ ;r4V\        V 4      8  dz   V\        V4      8  dj   W,          w  rVW,          w  rx\        WW4      p	\        Wh4      p
\        Wš4      '       g   VP	                  Wš34       Wh8  d   V^,          pK~  V^,          pK‰  V# )zFIntersect two sorted, non-overlapping range lists (two-pointer merge).)rA   ÚmaxÚminr  Úappend)r  r  ÚresultÚ
left_indexÚright_indexÚ
left_lowerÚ
left_upperÚright_lowerÚright_upperrþ   rÿ   s   &&         r!   Úintersect_rangesr  ÷  s‹   € ð
  €FØ Ð €JØ
”s˜4“yÔ
  [´3°u³:Ô%=Ø!%Õ!1Ñˆ
Ø#(Õ#5Ñ ˆä�JÓ,ˆÜ�JÓ,ˆä˜e×+Ò+Ø�M‰M˜5˜.Ô)ð Ô#Ø˜!�OŠJà˜1ÕŠKà€Mr    c               ó0   € V ^8„  d   QhRRRRRRRRR	RR
R/# )r%   Úrangesr  ÚiterablezIterable[Any]Úkeyz%Callable[[Any], Version | str] | NoneÚprereleasesúbool | NoneÚregionr(   zIterator[Any]r   )r*   s   "r!   r+   r+     sL   € ÷ cñ cØðcàðcð 
/ðcð ð	cð
 ðcð ñcr    c              #  ó   "  € VEfÅ   . pRp\        V 4      ^8X  dÚ   V ^ ,          w  rxVP                  p	VP                  p
V Fœ  p\        Vf   TMV! V4      4      pVf   K   V	e   V	! V4      '       g   K4  V
e   V
! V4      '       g   KH  VP                  '       g	   RpVx € Kb  V'       d   \        WL4      '       d   Vx € K�  V'       d   K‹  VP                  V4       Kž  	  V'       g   T Rj  x€L
  R# V F½  p\        Vf   TMV! V4      4      pVf   K   V  F—  w  rxVP                  p	V	e   V	! V4      '       g    KH  VP                  p
V
e   V
! V4      '       g   KF  VP                  '       g   RpVx € M7V'       d   \        WL4      '       d   Vx € MV'       g   VP                  V4        K»  	  K¿  	  V'       g   T Rj  x€L
  R# VRJ p\        V 4      ^8X  d”   V ^ ,          w  rxVP                  p	VP                  p
V Fh  p\        Vf   TMV! V4      4      pVf   K   V'       d   VP                  '       d   K<  V	e   V	! V4      '       g   KP  V
e   V
! V4      '       g   Kd  Vx € Kj  	  R# V F�  p\        Vf   TMV! V4      4      pVf   K   V'       d   VP                  '       d   K<  V  FK  w  rxVP                  p	V	e   V	! V4      '       g    Kd  VP                  p
V
e   V
! V4      '       g   KF  Vx €  K‹  	  K�  	  R#  EL ELF5i)a±  Filter *iterable* against precomputed version *ranges*.

With ``prereleases=None``, the PEP 440 default applies: pre-releases are
excluded unless no final matches, in which case buffered pre-releases come
out at the end. A pre-release inside the opt-in ``region`` is the exception:
it is force-admitted in place, as ``prereleases=True`` would yield it. A
force-admitted pre-release is not a final, so it never suppresses the buffer.
NFT)rA   r   r¦   rË   Úis_prereleaseÚmatches_bounds_onlyr  )r  r  r  r  r  Úprerelease_bufferÚfound_finalrþ   rÿ   rÚ   rï   ÚitemrÑ   Úexclude_prereleasess   &&&&&         r!   Úfilter_by_rangesr"    s£  é € ð ÓØ')ÐØˆäˆv‹;˜!Ôð " !�9‰LˆEØ—L‘LˆEØ—L‘LˆEÛ �Ü'°²©ÁÀTÃÓK�Ø’>ÙØÒ$©U°6¯]ª]ÙØÒ$©U°6¯]ª]ÙØ×+×+Ð+Ø"&�KØ”JßÔ 3°F× CÒ CØ”Jß$™Ø%×,Ñ,¨TÖ2ñ !÷ Ø,×,Ð,ÙãˆDÜ#¨CªK¡D¹SÀ»YÓGˆFØŠ~ÙÛ &‘�ØŸ™�ØÒ$©U°6¯]ª]ÚØŸ™�Ø’=¡E¨&§M¤MØ!×/×/Ð/Ø&*˜Ø"›
ßÔ$7¸×$GÒ$GØ"›
ß(Ø)×0Ñ0°Ô6Úó !'ñ	 ÷$ Ø(×(Ð(Ùà%¨Ð.Ðä
ˆ6ƒ{�aÔð ˜a•y‰ˆØ—‘ˆØ—‘ˆÛˆDÜ#¨CªK¡D¹SÀ»YÓGˆFØŠ~Ùß" v×';×';Ð';ÙØÒ ©¨v¯ªÙØŠ}¡ f§¤Ø”
ñ ñ 	ãˆÜ¨ª¡¹¸T»ÓCˆØŠ>Ùß 6×#7×#7Ð#7ÙÛ"‰LˆEØ—L‘LˆEØÒ ©¨v¯ªÚØ—L‘LˆEØŠ}¡ f§¤Ø’
Úó #ó ò[ -ò, )ùsž   ‚A0LÁ3LÂLÂLÂ+LÃLÃ)LÃ.LÃ/ALÄ<LÅLÅ1LÆ LÆ!LÇ LÇLÇA&LÈ-LÈ?LÉLÉ)3LÊLÊ/&LËLË9LÌLc               ó    € V ^8„  d   QhRRRR/# r¾   r   )r*   s   "r!   r+   r+   w  s   € ÷ 	5ñ 	5¨wð 	5¸7ñ 	5r    c                ón   € V P                   e   V P                  RRRRR7      # V P                  RRR7      # )z=Smallest non-pre-release at or above a pre-release *version*.Nr÷   rô   )r4   rø   rÆ   s   &r!   Ú!_nearest_release_above_prereleaser%  w  s@   € à‡{�{Òð ×"Ñ" t°$¸DÈÐ"ÓMÐMð ×Ñ 4¨tÐÓ4Ð4r    c               ó    € V ^8„  d   QhRRRR/# )r%   Úvaluez Version | BoundaryVersion | Noner(   r   r   )r*   s   "r!   r+   r+   ƒ  s   € ÷ 4ñ 4Ð'Gð 4ÈGñ 4r    c                ó>  € V f   \         # \        V \        4      '       d`   V P                  pVP                  '       d   \        V4      # VP                  e   VP                  ^,           M^ pVP                  VRR7      # V P                  '       g   V # \        V 4      # )z�Smallest non-pre-release version at or above *value*.

``None`` is the ``-inf`` floor, whose nearest non-pre-release is
:data:`MIN_RELEASE`.
N)r6   rõ   )r   rU   r#   r&   r  r%  r6   rø   )r'  Úinner_versionrú   s   &  r!   Ú_lowest_release_at_or_abover*  ƒ  sŽ   € ð ‚}ÜÐÜ�%œ×)Ò)ØŸ™ˆØ×&×&Ð&Ü4°]ÓCÐCð 1>×0BÑ0BÒ0N�]×'Ñ'¨!Ö+ÐTUˆ	Ø×(Ñ(¨i¸tÐ(ÓDÐDà××ÐØˆä,¨UÓ3Ð3r    c               ó    € V ^8„  d   QhRRRR/# )r%   r  r  r(   r?   r   )r*   s   "r!   r+   r+   š  s   € ÷ ñ Ð'9ð ¸dñ r    c                óÖ   € V  Fb  w  r\        VP                  4      pVP                  e   W2P                  8  d    R# W2P                  8X  g   KM  VP                  '       g   Ka   R# 	  R# )zÐTrue when every range in *ranges* contains only pre-releases.

Used to detect unsatisfiable specifier sets when ``prereleases=False``:
if every range is pre-release-only, every contained version is excluded.
FT)r*  r&   r|   )r  rþ   rÿ   Únearests   &   r!   Úranges_are_prerelease_onlyr.  š  sN   € ó ‰ˆÜ-¨e¯m©mÓ<ˆØ�=‰=Ò  G¯m©mÔ$;ÚØ—m‘mÖ#¨¯¯ªÚñ ñ r    c               ó$   € V ^8„  d   QhRRRRRR/# )r%   Úoprn   rù   r   r(   r  r   )r*   s   "r!   r+   r+   ©  s!   € ÷ ñ ˜ð  7ð ¨~ñ r    c                ó¶   € \        V4      p\        V4      pV R8X  d   \        VR4      \        VR4      3.# \        \        VR4      3\        VR4      \
        3.# )zVRanges for ==V.* and !=V.*.

==1.2.* -> [1.2.dev0, 1.3.dev0);  !=1.2.* -> complement.
ú==TF)rÇ   rÃ   rx   r¢   r¸   r¹   )r0  rù   rþ   rÿ   s   &&  r!   Úwildcard_rangesr3  ©  se   € ô
 �tÓ€EÜ˜dÓ#€EØ	ˆT„zÜ˜E 4Ó(¬*°U¸EÓ*BÐCÐDÐDô 
”*˜U EÓ*Ð+Ü	�E˜4Ó	 ¤'Ð*ðð r    c               ó(   € V ^8„  d   QhRRRRRRRR/# )	r%   r0  rn   r&   r   Ú	has_localr?   r(   r  r   )r*   s   "r!   r+   r+   ¹  s.   € ÷ B2ñ B2˜ð B2 gð B2¸$ð B2À>ñ B2r    c                ó@  € V R8X  d   \        VR4      \        3.# V R8X  d,   \        \        \	        V\
        P                  4      R4      3.# V R8X  d·   VP                  e8   VP                  VP                  ^,           RR7      p\        VR4      \        3.# VP                  e9   VP                  VP                  ^,           ^ RR7      p\        VR4      \        3.# \        \	        V\
        P                  4      R4      \        3.# V R	8X  dH   VP                  '       d   TMVP                  ^ RR7      pV\        8:  d   . # \        \        VR4      3.# \	        V\
        P                  4      pV'       d   TMTpV R
8X  d   \        VR4      \        VR4      3.# V R8X  d%   \        \        VR4      3\        VR4      \        3.# V R8X  dB   VP                  VP                  RR R7      p\        VR4      \        \        V4      R4      3.# \        RV : 24      h)zîRanges for the standard PEP 440 operators (no wildcard, no ===).

*has_local* indicates whether the spec string included a ``+local``
segment; relevant only for ``==`` / ``!=`` to decide whether the
upper bound includes V's local family.
z>=Tz<=r›   Nrô   rö   Fr™   r2  z!=z~=)r0   zUnknown operator: rÁ   )rx   r¹   r¸   r¢   r#   r   r   r8   rø   r6   r   r  r   r0   rÃ   Ú
ValueError)r0  r&   r5  Úlower_boundÚboundÚafter_localsrÿ   Úprefixs   &&&     r!   Ústandard_rangesr<  ¹  s+  € ð 
ˆT„zÜ˜G TÓ*¬GÐ4Ð5Ð5à	ˆT„zô Üœ?¨7´L×4MÑ4MÓNÐPTÓUðð
ð 	
ð 
ˆS„yØ�;‰;Ò"ð "×-Ñ-°'·+±+Àµ/ÈÐ-ÓNˆKÜ ¨TÓ2´GÐ<Ð=Ð=Ø�<‰<Ò#à!×-Ñ-°7·<±<À!Õ3CÈÐRVÐ-ÓWˆKÜ ¨TÓ2´GÐ<Ð=Ð=ô
 œ?¨7´L×4LÑ4LÓMÈuÓUÜðð
ð 	
ð 
ˆS„yð ×,×,Ð,‰G°'×2EÑ2EÈ!ÐSWÐ2EÓ2Xð 	ð ”KÔØˆIÜœ* U¨EÓ2Ð3Ð4Ð4ô # 7¬L×,EÑ,EÓF€Lß ‰G l€Eà	ˆT„zÜ˜G TÓ*¬J°u¸dÓ,CÐDÐEÐEà	ˆT„zä”j ¨%Ó0Ð1Ü˜˜uÓ%¤wÐ/ð
ð 	
ð
 
ˆT„zØ×$Ñ$¨W¯_©_¸S¸bÐ-AÐ$ÓBˆä˜ Ó&¬
Ô3DÀVÓ3LÈeÓ(TÐUð
ð 	
ô Ð)¨"©Ð0Ó
1Ð1r    c               ó(   € V ^8„  d   QhRRRRRRRR/# )r%   r0  rn   Úversion_strr&   r   r(   r  r   )r*   s   "r!   r+   r+   þ  s(   € ÷ <ñ <˜ð <¨#ð <¸ð <ÀNñ <r    c                ód   € VP                  R4      '       d   \        W4      # \        WRV9   4      # )a0  Ranges for one specifier's ``(op, version_str)``.

Dispatches between the wildcard and standard builders. ``version`` is the
parsed ``version_str`` (its base, without the trailing ``.*``, for
wildcards). ``===`` is not handled here; its match is a literal string
compared in :mod:`packaging.specifiers`.
z.*Ú+)Úendswithr3  r<  )r0  r>  r&   s   &&&r!   Úbounds_for_specrB  þ  s2   € ð ×Ñ˜D×!Ò!Ü˜rÓ+Ð+ä˜2¨¨{Ñ(:Ó;Ð;r    c               ó    € V ^8„  d   QhRRRR/# )r%   Úper_specifier_rangeszIterable[Sequence[Interval]]r(   r  r   )r*   s   "r!   r+   r+     s   € ÷ ñ Ø6ðàñr    c                ót   € RpV  F   pVf   TpK  \        W4      pV'       d   K    M	  Vf   \        R4      hV# )zÄIntersect each specifier's ranges into a single sequence.

Short-circuits once the running intersection is empty, since no later
specifier can revive it. Callers must pass at least one specifier.
Nz4intersect_specifier_bounds called with no specifiers)r  ÚRuntimeError)rD  r  Úsubs   &  r!   Úintersect_specifier_boundsrH    sG   € ð )-€FÛ#ˆØŠ>ØŠFä% fÓ2ˆFß‘6Ùñ $ð ‚~ÜÐQÓRÐRà€Mr    c               ó$   € V ^8„  d   QhRRRRRR/# )r%   r  r  r&   r   r(   r?   r   )r*   s   "r!   r+   r+   #  s"   € ÷ ñ Ð 2ð ¸Wð Èñ r    c                ó    € V  FG  w  r#VP                   pVe   V! V4      '       g    R# VP                  pVe   V! V4      '       g   KF   R# 	  R# )a  Whether ``version`` falls within any of ``ranges``.

The pure bounds membership test, for a single already-parsed version with
no pre-release policy applied. ``ranges`` are sorted and non-overlapping,
so a version below one range's lower bound is below every later range too.
FT)r   r¦   )r  r&   rþ   rÿ   rÚ   rï   s   &&    r!   r  r  #  sH   € ó ‰ˆØ—‘ˆØÒ¡U¨7§^¢^Úà—‘ˆØŠ=™E 'ŸNœNÚñ ñ r    c               ó$   € V ^8„  d   QhRRRRRR/# )r%   Ú
configuredr  Úautodetectedr(   r   )r*   s   "r!   r+   r+   6  s$   € ÷ ñ ØðØ+6ðàñr    c                ó&   € V e   V # V'       d   R# R# )zÒResolve a specifier's effective default pre-release policy.

An explicit ``configured`` value wins; otherwise an autodetected ``True``
propagates and anything else falls back to the PEP 440 default (``None``).
NTr   )rL  rM  s   &&r!   Úresolve_prereleasesrO  6  s   € ð ÒØÐçÙár    )r   rB  rË   r"  r  rH  rü   r  r  r.  rO  r<  r3  )r   )<Ú__conditional_annotations__r   Ú
__future__r   r   Ú	functoolsÚtypingr   r   r   r&   r   r   Úcollections.abcr   r	   r
   r   r   Útuplerf   ÚfloatÚ_BoundaryOrderSuffixrJ   Ú__all__r   Ú__annotations__r   r   ÚEnumr   Útotal_orderingr#   r{   rx   r¢   ÚIntervalr¸   r¹   r   r/   rÃ   rÇ   rË   r€   r�   r§   rü   r  r  r"  r%  r*  r.  r3  r<  rB  rH  r  rO  )rP  s   @r!   Ú<module>r]     sö  øðô Iå "ã Û ÷ñ ÷ -çßFÓFÝð !  c¨3°°c¸5°jÕ0AÀ3ÈÐ!KÕLÐØ˜c 5¨¨c¨¥?Ð4HÈ%ÐOÕPÐò€ñ" & hÓ/€ˆ^Ó /ñ & c›l€ˆ^Ó *ñ $ E›l€ˆ|Ó *ô�4—9‘9ô ð ×Ñ÷lPð lPó ðlP÷^ Ø˜w¨¸Ð=Õ>Ðð ×Ñ÷5Hð 5Hó ð5Hðp ×Ñ÷7Hð 7Hó ð7H÷t à�Z Ð+Õ,€Hñ (¨¨eÓ4€Ð	Ó 4Ù'¨¨eÓ4€Ð	Ó 4Ø'.°Ð&8Ð%:€
Ð"Ó :õ=õKõSõ
õ%õP$õN$õNõ*)õ@÷4cõL	5õ4õ.õõ B2õJ<õõ.÷&r    