+
    ª¬‚jôZ  ã                  óÔ  € R t ^ RIHt ^ RIt^ RIt^ RIt^ RIHtHtHtH	t	H
t
HtHtHt ^RIHtHtHtHt ]P&                  '       d	   ^ RIHtHt ]P.                  R@8¼  d   ^ RIHt M']P&                  '       d   ^ RIHt M^ RIt^ RItR R ltR	R
RRRRRRRRRRRR/t. RAOt]]]]3,          R3,          t ]]]]]]3,          3,          t!]]]]]]]3,          ]]]]]3,          3,          3,          R3,          3,          t"]]]]R3,          ]!]!]!]"3,          t#]]#]#.]$3,          t% ! R R]RR7      t&R R lt' ! R R](4      t) ! R R4      t*R t+]+PY                  R!R"4      PY                  R#R$4      t-]P\                  P^                  R%8X  d   ]P.                  RB8  g>   ]P\                  P^                  R&8X  d   ]P.                  RC8  g   ]P.                  RD8  d   ]-M]+t0 ]Pb                  ! R']Pd                  4      t3R( R) lt4R* R+ lt5R, R- lt6R. R/ lt7R0 R1 lt8R2 R3 lt9 ! R4 R5]	4      t: ! R6 R]*4      t; ! R7 R8];4      t<R9 R: lt=]Pb                  ! R;4      t>R< R= lt?R> R? lt@R# )EzN
.. testsetup::

    from pip._vendor.packaging.version import parse, Version
)ÚannotationsN)ÚAnyÚCallableÚLiteralÚ
NamedTupleÚSupportsIntÚTupleÚ	TypedDictÚUnion)ÚInfinityÚInfinityTypeÚNegativeInfinityÚNegativeInfinityType)ÚSelfÚUnpack)Ú
deprecatedc               ó    € V ^8„  d   QhRRRR/# )é   ÚmessageÚstrÚreturnÚobject© )Úformats   "ÚZ/Users/cheyod/AIGC/DSH/.venv/lib/python3.14/site-packages/pip/_vendor/packaging/version.pyÚ__annotate__r   '   s   € ÷ ñ ˜Sð  Vñ ó    c                ó   a € R  V 3R llpV# )c               ó    € V ^8„  d   QhRRRR/# )r   Úfuncr   r   r   )r   s   "r   r   Ú!_deprecated.<locals>.__annotate__(   s   € ÷ 
	ñ 
	˜Fð 
	 vñ 
	r   c                óP   <a € \         P                  ! S 4      R  V V3R ll4       pV# )c               ó$   € V ^8„  d   QhRRRRRR/# )r   Úargsr   Úkwargsr   r   )r   s   "r   r   Ú4_deprecated.<locals>.decorator.<locals>.__annotate__*   s!   € ÷ -ñ -˜vð -°ð -¸Fñ -r   c                 óN   <€ \         P                  ! S\        ^R7       S! V / VB # )r   )ÚcategoryÚ
stacklevel)ÚwarningsÚwarnÚDeprecationWarning)r#   r$   r   r   s   *,€€r   ÚwrapperÚ/_deprecated.<locals>.decorator.<locals>.wrapper)   s*   ø€ ä—’ØÜ/Ø õñ
 ˜TÐ, VÑ,Ð,r   )Ú	functoolsÚwraps)r   r,   r   s   f €r   Ú	decoratorÚ_deprecated.<locals>.decorator(   s*   ù€ Ü�_Š_˜TÓ"÷-ð -ó #ð-ð ˆNr   r   )r   r0   s   f r   Ú_deprecatedr2   '   s   ø€ ÷
	ð 
	ð Ðr   ÚalphaÚaÚbetaÚbÚcÚrcÚpreÚpreviewÚrevÚpostÚrÚInvalidVersionÚVersion.c                  óT   € ] tR t^Ut$ R]R&   R]R&   R]R&   R]R&   R]R&   R	]R
&   RtR# )Ú_VersionReplaceú
int | NoneÚepochztuple[int, ...] | NoneÚreleaseú*tuple[Literal['a', 'b', 'rc'], int] | Noner9   r<   Údevú
str | NoneÚlocalr   N©Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__annotations__Ú__static_attributes__r   r   r   rA   rA   U   s%   ‡ ØÓØ#Ó#Ø	3Ó3Ø
ÓØ	ƒOØ×r   rA   F)Útotalc               ó    € V ^8„  d   QhRRRR/# )r   Úversionr   r   r?   r   )r   s   "r   r   r   ^   s   € ÷ 	ñ 	�3ð 	˜7ñ 	r   c                ó   € \        V 4      # )zÃParse the given version string.

>>> parse('1.0.dev1')
<Version('1.0.dev1')>

:param version: The version string to parse.
:raises InvalidVersion: When the version string is not a valid version.
)r?   )rR   s   &r   ÚparserT   ^   s   € ô �7ÓÐr   c                  ó   € ] tR t^jtRtRtR# )r>   zµRaised when a version string is not a valid version.

>>> Version("invalid")
Traceback (most recent call last):
    ...
packaging.version.InvalidVersion: Invalid version: 'invalid'
r   N)rJ   rK   rL   rM   Ú__doc__rO   r   r   r   r>   r>   j   s   † õr   c                  ó¨   € ] tR t^ttRt]P                  '       d   ]R R l4       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# )Ú_BaseVersionc               ó   € V ^8„  d   QhRR/# )r   r   ztuple[Any, ...]r   )r   s   "r   r   Ú_BaseVersion.__annotate__}   s   € ×.Ñ.˜/Ñ.r   c                	ó   € R # ©Nr   ©Úselfs   &r   Ú_keyÚ_BaseVersion._key|   s   € Ù+.r   c               ó   € V ^8„  d   QhRR/# ©r   r   Úintr   )r   s   "r   r   rZ      s   € ÷ ñ ˜#ñ r   c                	ó,   € \        V P                  4      # r\   )Úhashr_   r]   s   &r   Ú__hash__Ú_BaseVersion.__hash__   s   € Ü�D—I‘I‹Ðr   c               ó    € V ^8„  d   QhRRRR/# ©r   ÚotherrX   r   Úboolr   )r   s   "r   r   rZ   …   ó   € ÷ &ñ &˜Lð &¨Tñ &r   c                	ól   € \        V\        4      '       g   \        # V P                  VP                  8  # r\   ©Ú
isinstancerX   ÚNotImplementedr_   ©r^   rj   s   &&r   Ú__lt__Ú_BaseVersion.__lt__…   ó(   € Ü˜%¤×.Ò.Ü!Ð!à�y‰y˜5Ÿ:™:Ñ%Ð%r   c               ó    € V ^8„  d   QhRRRR/# ri   r   )r   s   "r   r   rZ   ‹   ó   € ÷ 'ñ '˜Lð '¨Tñ 'r   c                	ól   € \        V\        4      '       g   \        # V P                  VP                  8*  # r\   rn   rq   s   &&r   Ú__le__Ú_BaseVersion.__le__‹   ó(   € Ü˜%¤×.Ò.Ü!Ð!à�y‰y˜EŸJ™JÑ&Ð&r   c               ó    € V ^8„  d   QhRRRR/# ©r   rj   r   r   rk   r   )r   s   "r   r   rZ   ‘   ó   € ÷ 'ñ '˜Fð ' tñ 'r   c                	ól   € \        V\        4      '       g   \        # V P                  VP                  8H  # r\   rn   rq   s   &&r   Ú__eq__Ú_BaseVersion.__eq__‘   rz   r   c               ó    € V ^8„  d   QhRRRR/# ri   r   )r   s   "r   r   rZ   —   rv   r   c                	ól   € \        V\        4      '       g   \        # V P                  VP                  8¬  # r\   rn   rq   s   &&r   Ú__ge__Ú_BaseVersion.__ge__—   rz   r   c               ó    € V ^8„  d   QhRRRR/# ri   r   )r   s   "r   r   rZ   �   rl   r   c                	ól   € \        V\        4      '       g   \        # V P                  VP                  8„  # r\   rn   rq   s   &&r   Ú__gt__Ú_BaseVersion.__gt__�   rt   r   c               ó    € V ^8„  d   QhRRRR/# r|   r   )r   s   "r   r   rZ   £   r}   r   c                	ól   € \        V\        4      '       g   \        # V P                  VP                  8g  # r\   rn   rq   s   &&r   Ú__ne__Ú_BaseVersion.__ne__£   rz   r   r   N)rJ   rK   rL   rM   Ú	__slots__ÚtypingÚTYPE_CHECKINGÚpropertyr_   rf   rr   rx   r   rƒ   r‡   r‹   rO   r   r   r   rX   rX   t   sK   † Ø€Ið
 ××Ðà	Ü.ó 
Ø.õõ&õ'õ'õ'õ&÷'ñ 'r   rX   a1  
    v?+                                                   # optional leading v
    (?:
        (?:(?P<epoch>[0-9]+)!)?+                          # epoch
        (?P<release>[0-9]+(?:\.[0-9]+)*+)                 # release segment
        (?P<pre>                                          # pre-release
            [._-]?+
            (?P<pre_l>alpha|a|beta|b|preview|pre|c|rc)
            [._-]?+
            (?P<pre_n>[0-9]+)?
        )?+
        (?P<post>                                         # post release
            (?:-(?P<post_n1>[0-9]+))
            |
            (?:
                [._-]?
                (?P<post_l>post|rev|r)
                [._-]?
                (?P<post_n2>[0-9]+)?
            )
        )?+
        (?P<dev>                                          # dev release
            [._-]?+
            (?P<dev_l>dev)
            [._-]?+
            (?P<dev_n>[0-9]+)?
        )?+
    )
    (?:\+
        (?P<local>                                        # local version
            [a-z0-9]+
            (?:[._-][a-z0-9]+)*+
        )
    )?+
z*+Ú*z?+Ú?ÚcpythonÚpypyz[a-z0-9]+(?:[._-][a-z0-9]+)*c               ó    € V ^8„  d   QhRRRR/# )r   Úvaluer   r   rc   r   )r   s   "r   r   r   î   s   € ÷ ñ ˜6ð ¨ñ r   c               óx   € T ;'       g    ^ p\        V\        4      '       d
   V^ 8¼  d   V# RV 2p\        V4      h)é    z(epoch must be non-negative integer, got ©ro   rc   r>   )r–   rC   Úmsgs   "  r   Ú_validate_epochr›   î   s<   € Ø�JˆJ�Q€EÜ�%œ×Ò %¨1¤*ØˆØ4°U°GÐ
<€CÜ
˜Ó
Ðr   c               ó    € V ^8„  d   QhRRRR/# )r   r–   r   r   útuple[int, ...]r   )r   s   "r   r   r   ö   s   € ÷ 	ñ 	˜Vð 	¨?ñ 	r   c               óö   € V f   RMT p\        V\        4      '       dM   \        V4      ^ 8”  d=   \        ;QJ d    R V 4       F  '       d   K   RM	  RM! R V 4       4      '       d   V# RV 2p\	        V4      h)Nc              3  ó\   "  € T F"  p\        V\        4      ;'       d    V^ 8¬  x € K$  	  R# 5i)r˜   N)ro   rc   ©Ú.0Úis   & r   Ú	<genexpr>Ú$_validate_release.<locals>.<genexpr>û   s&   é € Ð?±w°!”
˜1œcÓ"×-Ð- q¨A¡vÔ-³wùs   ‚,ž,FTz@release must be a non-empty tuple of non-negative integers, got )r˜   )ro   ÚtupleÚlenÚallr>   )r–   rD   rš   s   "  r   Ú_validate_releaser¨   ö   sc   € Ø’m‰d¨€Gä�7œE×"Ò"Ü�‹L˜1Ôß‹CÑ?±wÓ?�C�CŠCÑ?±wÓ?×?Ò?àˆØLÈWÈIÐ
V€CÜ
˜Ó
Ðr   c               ó    € V ^8„  d   QhRRRR/# )r   r–   r   r   rE   r   )r   s   "r   r   r     s   € ÷ ñ ˜ð Ð'Qñ r   c               óð   € V f   V # \        V \        4      '       dL   \        V 4      ^8X  d<   V ^ ,          R9   d.   \        V ^,          \        4      '       d   V ^,          ^ 8¼  d   V # RV  2p\	        V4      h)Nz=pre must be a tuple of ('a'|'b'|'rc', non-negative int), got )r4   r6   r8   )ro   r¥   r¦   rc   r>   ©r–   rš   s   " r   Ú_validate_prer¬     si   € Ø‚}Øˆä�5œ%× Ò Ü�‹J˜!ŒOØ�!�HÐ(Ô(Ü�u˜Q•x¤×%Ò%Ø�!�H˜ŒMàˆØIÈ%ÈÐ
Q€CÜ
˜Ó
Ðr   c               ó    € V ^8„  d   QhRRRR/# )r   r–   r   r   z"tuple[Literal['post'], int] | Noner   )r   s   "r   r   r     s   € ÷ ñ ˜&ð Ð(Jñ r   c               óp   € V f   V # \        V \        4      '       d   V ^ 8¼  d   RV 3# RV  2p\        V4      h)Nr<   z'post must be non-negative integer, got r™   r«   s   " r   Ú_validate_postr¯     s@   € Ø‚}ØˆÜ�%œ×Ò %¨1¤*Ø˜ˆÐØ3°E°7Ð
;€CÜ
˜Ó
Ðr   c               ó    € V ^8„  d   QhRRRR/# )r   r–   r   r   z!tuple[Literal['dev'], int] | Noner   )r   s   "r   r   r     s   € ÷ ñ ˜ð Ð'Hñ r   c               óp   € V f   V # \        V \        4      '       d   V ^ 8¼  d   RV 3# RV  2p\        V4      h)NrF   z&dev must be non-negative integer, got r™   r«   s   " r   Ú_validate_devr²     s@   € Ø‚}ØˆÜ�%œ×Ò %¨1¤*Ø�uˆ~ÐØ2°5°'Ð
:€CÜ
˜Ó
Ðr   c               ó    € V ^8„  d   QhRRRR/# )r   r–   r   r   úLocalType | Noner   )r   s   "r   r   r   #  s   € ÷ ñ ˜6ð Ð)9ñ r   c               ó¨   € V f   V # \        V \        4      '       d'   \        P                  V 4      '       d   \	        V 4      # RV : 2p\        V4      h)Nz*local must be a valid version string, got )ro   r   Ú_LOCAL_PATTERNÚ	fullmatchÚ_parse_local_versionr>   r«   s   " r   Ú_validate_localr¹   #  sK   € Ø‚}ØˆÜ�%œ×Ò¤.×":Ñ":¸5×"AÒ"AÜ# EÓ*Ð*Ø6°u±iÐ
@€CÜ
˜Ó
Ðr   c                  óT   € ] tR tRt$ R]R&   R]R&   R]R&   R]R&   R]R	&   R
]R&   RtR# )Ú_Versioni-  rc   rC   r�   rD   útuple[str, int] | NonerF   r9   r<   r´   rH   r   NrI   r   r   r   r»   r»   -  s%   ‡ ØƒJØÓØ	ÓØ	ÓØ
 Ó Ø×r   r»   c                  óÞ  € ] tR tRt$ RtR=tR?t]P                  ! R
]	,           R
,           ]P                  ]P                  ,          4      tR]R&   R]R	&   R]R&   R]R&   R]R&   R]R&   R]R&   R R ltR R lt]R R l4       t]]! R4      R R l4       4       t]P(                  ]! R4      R R l4       4       tR R ltR R lt]R R  l4       t]R! R" l4       t]R# R$ l4       t]R% R& l4       t]R' R( l4       t]R) R* l4       t]R+ R, l4       t]R- R. l4       t]R/ R0 l4       t]R1 R2 l4       t ]R3 R4 l4       t!]R5 R6 l4       t"]R7 R8 l4       t#]R9 R: l4       t$]R; R< l4       t%R=t&R># )@r?   i6  am  This class abstracts handling of a project's versions.

A :class:`Version` instance is comparison aware and can be compared and
sorted using the standard Python interfaces.

>>> v1 = Version("1.0a5")
>>> v2 = Version("1.0")
>>> v1
<Version('1.0a5')>
>>> v2
<Version('1.0')>
>>> v1 < v2
True
>>> v1 == v2
False
>>> v1 > v2
False
>>> v1 >= v2
False
>>> v1 <= v2
True
Ú_devÚ_epochÚ
_key_cacheÚ_localÚ_postÚ_preÚ_releasez\s*rc   r�   r¼   r´   zCmpKey | Nonec               ó    € V ^8„  d   QhRRRR/# )r   rR   r   r   ÚNoner   )r   s   "r   r   ÚVersion.__annotate__\  s   € ÷ ñ  ð ¨ñ r   c                óê  € V P                   P                  V4      pV'       g   \        RV: 24      hVP                  R4      '       d   \	        VP                  R4      4      M^ V n        \        \        \        VP                  R4      P                  R4      4      4      V n	        \        VP                  R4      VP                  R4      4      V n        \        VP                  R4      VP                  R4      ;'       g    VP                  R	4      4      V n        \        VP                  R
4      VP                  R4      4      V n        \        VP                  R4      4      V n        RV n        R# )a  Initialize a Version object.

:param version:
    The string representation of a version which will be parsed and normalized
    before use.
:raises InvalidVersion:
    If the ``version`` does not conform to PEP 440 in any way then this
    exception will be raised.
zInvalid version: rC   rD   Ú.Úpre_lÚpre_nÚpost_lÚpost_n1Úpost_n2Údev_lÚdev_nrH   N)Ú_regexr·   r>   Úgrouprc   r¿   r¥   ÚmapÚsplitrÄ   Ú_parse_letter_versionrÃ   rÂ   r¾   r¸   rÁ   rÀ   )r^   rR   Úmatchs   && r   Ú__init__ÚVersion.__init__\  s  € ð —‘×%Ñ% gÓ.ˆßÜ Ð#4°W±KÐ!@ÓAÐAØ38·;±;¸w×3GÒ3G”c˜%Ÿ+™+ gÓ.Ô/ÈQˆŒÜœc¤# u§{¡{°9Ó'=×'CÑ'CÀCÓ'HÓIÓJˆŒÜ)¨%¯+©+°gÓ*>ÀÇÁÈGÓ@TÓUˆŒ	Ü*Ø�K‰K˜Ó! 5§;¡;¨yÓ#9×#SÐ#S¸U¿[¹[ÈÓ=Só
ˆŒ
ô *¨%¯+©+°gÓ*>ÀÇÁÈGÓ@TÓUˆŒ	Ü*¨5¯;©;°wÓ+?Ó@ˆŒð ˆŽr   c               ó    € V ^8„  d   QhRRRR/# )r   r$   zUnpack[_VersionReplace]r   r   r   )r   s   "r   r   rÇ   v  s   € ÷ ñ Ð$;ð Àñ r   c                	ó&  € R V9   d   \        VR ,          4      MV P                  pRV9   d   \        VR,          4      MV P                  pRV9   d   \	        VR,          4      MV P
                  pRV9   d   \        VR,          4      MV P                  pRV9   d   \        VR,          4      MV P                  pRV9   d   \        VR,          4      MV P                  pW P                  8X  dS   W0P                  8X  dC   W@P
                  8X  d3   WPP                  8X  d#   W`P                  8X  d   WpP                  8X  d   V # V P                  P                  V P                  4      pRVn        W(n        W8n        WHn        WXn        Whn	        Wxn        V# )rC   rD   r9   r<   rF   rH   N)r›   r¿   r¨   rÄ   r¬   rÃ   r¯   rÂ   r²   r¾   r¹   rÁ   Ú	__class__Ú__new__rÀ   )	r^   r$   rC   rD   r9   r<   rF   rH   Únew_versions	   &,       r   Ú__replace__ÚVersion.__replace__v  s;  € Ø4;¸vÔ4E”  w¥Ô0È4Ï;É;ˆð ˜FÔ"ô ˜f YÕ/Ô0à—‘ð 	ð
 /4°v¬oŒm˜F 5�MÔ*À4Ç9Á9ˆØ17¸6Ô1AŒ~˜f V�nÔ-ÀtÇzÁzˆØ.3°v¬oŒm˜F 5�MÔ*À4Ç9Á9ˆØ4;¸vÔ4E”  w¥Ô0È4Ï;É;ˆð —[‘[Ô ØŸ=™=Ô(Ø—y‘yÔ ØŸ
™
Ô"Ø—y‘yÔ ØŸ™Ô$àˆKà—n‘n×,Ñ,¨T¯^©^Ó<ˆØ!%ˆÔØ"ÔØ&ÔØÔØ ÔØÔØ"ÔàÐr   c               ó   € V ^8„  d   QhRR/# )r   r   ÚCmpKeyr   )r   s   "r   r   rÇ   ˜  s   € ÷ 
ñ 
�fñ 
r   c                	óØ   € V P                   fR   \        V P                  V P                  V P                  V P
                  V P                  V P                  4      V n         V P                   # r\   )rÀ   Ú_cmpkeyr¿   rÄ   rÃ   rÂ   r¾   rÁ   r]   s   &r   r_   ÚVersion._key—  sN   € à�?‰?Ò"Ü%Ø—‘Ø—‘Ø—	‘	Ø—
‘
Ø—	‘	Ø—‘óˆDŒOð �‰Ðr   z4Version._version is private and will be removed soonc               ó   € V ^8„  d   QhRR/# )r   r   r»   r   )r   s   "r   r   rÇ   ¦  s   € ÷ 
ñ 
˜(ñ 
r   c                	óš   € \        V P                  V P                  V P                  V P                  V P
                  V P                  4      # r\   )r»   r¿   rÄ   r¾   rÃ   rÂ   rÁ   r]   s   &r   Ú_versionÚVersion._version¤  s6   € ô Ø�K‰K˜Ÿ™¨¯	©	°4·9±9¸d¿j¹jÈ$Ï+É+ó
ð 	
r   c               ó    € V ^8„  d   QhRRRR/# )r   r–   r»   r   rÆ   r   )r   s   "r   r   rÇ   ­  s   € ÷ ñ ˜hð ¨4ñ r   c                	óà   € VP                   V n        VP                  V n        VP                  V n        VP                  V n        VP                  V n	        VP                  V n        R V n        R # r\   )rC   r¿   rD   rÄ   rF   r¾   r9   rÃ   r<   rÂ   rH   rÁ   rÀ   )r^   r–   s   &&r   rç   rè   «  sM   € ð —k‘kˆŒØŸ™ˆŒØ—I‘IˆŒ	Ø—I‘IˆŒ	Ø—Z‘ZˆŒ
Ø—k‘kˆŒØˆŽr   c               ó   € V ^8„  d   QhRR/# ©r   r   r   r   )r   s   "r   r   rÇ   ¶  s   € ÷ &ñ &˜#ñ &r   c                ó   € RV  R2# )zhA representation of the Version that shows all internal state.

>>> Version('1.0.0')
<Version('1.0.0')>
z
<Version('z')>r   r]   s   &r   Ú__repr__ÚVersion.__repr__¶  s   € ð ˜D˜6 Ð%Ð%r   c               ó   € V ^8„  d   QhRR/# rì   r   )r   s   "r   r   rÇ   ¾  s   € ÷ ñ ˜ñ r   c                óò  € RP                  \        \        V P                  4      4      pV P                  '       d   V P                   RV 2pV P
                  e1   VRP                  \        \        V P
                  4      4      ,          pV P                  e   VRV P                   2,          pV P                  e   VRV P                   2,          pV P                  e   VRV P                   2,          pV# )zeA string representation of the version that can be round-tripped.

>>> str(Version("1.0a5"))
'1.0a5'
rÉ   Ú!Ú z.postz.devÚ+)	ÚjoinrÓ   r   rD   rC   r9   r<   rF   rH   )r^   rR   s   & r   Ú__str__ÚVersion.__str__¾  sÎ   € ð —(‘(œ3œs D§L¡LÓ1Ó2ˆð �:�:ˆ:ØŸ™˜ A g YÐ/ˆGð �8‰8ÒØ�r—w‘wœs¤3¨¯©Ó1Ó2Õ2ˆGð �9‰9Ò Ø˜˜tŸy™y˜kÐ*Õ*ˆGð �8‰8ÒØ˜˜dŸh™h˜ZÐ(Õ(ˆGð �:‰:Ò!Ø˜˜4Ÿ:™:˜,Ð'Õ'ˆGàˆr   c               ó   € V ^8„  d   QhRR/# rì   r   )r   s   "r   r   rÇ   Þ  s   € ÷ ñ �cñ r   c                ó   € \        V 4      # )z Internal property for match_args©r   r]   s   &r   Ú_strÚVersion._strÝ  s   € ô �4‹yÐr   c               ó   € V ^8„  d   QhRR/# rb   r   )r   s   "r   r   rÇ   ã  s   € ÷ ñ �sñ r   c                ó   € V P                   # )zWThe epoch of the version.

>>> Version("2.0.0").epoch
0
>>> Version("1!2.0.0").epoch
1
)r¿   r]   s   &r   rC   ÚVersion.epochâ  s   € ð �{‰{Ðr   c               ó   € V ^8„  d   QhRR/# ©r   r   r�   r   )r   s   "r   r   rÇ   î  s   € ÷ ñ ˜ñ r   c                ó   € V P                   # )a  The components of the "release" segment of the version.

>>> Version("1.2.3").release
(1, 2, 3)
>>> Version("2.0.0").release
(2, 0, 0)
>>> Version("1!2.0.0.post0").release
(2, 0, 0)

Includes trailing zeroes but not the epoch or any pre-release / development /
post-release suffixes.
)rÄ   r]   s   &r   rD   ÚVersion.releaseí  s   € ð �}‰}Ðr   c               ó   € V ^8„  d   QhRR/# )r   r   r¼   r   )r   s   "r   r   rÇ   þ  s   € ÷ ñ Ð+ñ r   c                ó   € V P                   # )z¼The pre-release segment of the version.

>>> print(Version("1.2.3").pre)
None
>>> Version("1.2.3a1").pre
('a', 1)
>>> Version("1.2.3b1").pre
('b', 1)
>>> Version("1.2.3rc1").pre
('rc', 1)
)rÃ   r]   s   &r   r9   ÚVersion.preý  s   € ð �y‰yÐr   c               ó   € V ^8„  d   QhRR/# ©r   r   rB   r   )r   s   "r   r   rÇ     s   € ÷ 5ñ 5�jñ 5r   c                óP   € V P                   '       d   V P                   ^,          # R# )zqThe post-release number of the version.

>>> print(Version("1.2.3").post)
None
>>> Version("1.2.3.post1").post
1
N)rÂ   r]   s   &r   r<   ÚVersion.post  s   € ð !%§
§
 
ˆt�z‰z˜!�}Ð4°Ð4r   c               ó   € V ^8„  d   QhRR/# r  r   )r   s   "r   r   rÇ     s   € ÷ 3ñ 3�Zñ 3r   c                óP   € V P                   '       d   V P                   ^,          # R# )zmThe development number of the version.

>>> print(Version("1.2.3").dev)
None
>>> Version("1.2.3.dev1").dev
1
N)r¾   r]   s   &r   rF   ÚVersion.dev  s   € ð  $ŸyŸy˜yˆt�y‰y˜�|Ð2¨dÐ2r   c               ó   € V ^8„  d   QhRR/# )r   r   rG   r   )r   s   "r   r   rÇ   #  s   € ÷ ñ �zñ r   c                ón   € V P                   '       d#   RP                  R V P                    4       4      # R# )zwThe local version segment of the version.

>>> print(Version("1.2.3").local)
None
>>> Version("1.2.3+abc").local
'abc'
rÉ   c              3  ó8   "  € T F  p\        V4      x € K  	  R # 5ir\   rú   )r¡   Úxs   & r   r£   Ú Version.local.<locals>.<genexpr>,  s   é € Ð8©K qœC ŸF˜F«Kùs   ‚N)rÁ   rõ   r]   s   &r   rH   ÚVersion.local"  s)   € ð �;�;ˆ;Ø—8‘8Ñ8¨D¯KªKÓ8Ó8Ð8ár   c               ó   € V ^8„  d   QhRR/# rì   r   )r   s   "r   r   rÇ   1  s   € ÷ 
*ñ 
*˜ñ 
*r   c                óF   € \        V 4      P                  R^4      ^ ,          # )z¥The public portion of the version.

>>> Version("1.2.3").public
'1.2.3'
>>> Version("1.2.3+abc").public
'1.2.3'
>>> Version("1!1.2.3dev1+abc").public
'1!1.2.3.dev1'
rô   )r   rÔ   r]   s   &r   ÚpublicÚVersion.public0  s   € ô �4‹y�‰˜s AÓ& qÕ)Ð)r   c               ó   € V ^8„  d   QhRR/# rì   r   )r   s   "r   r   rÇ   >  s   € ÷ Tñ T˜cñ Tr   c                óž   € RP                  \        \        V P                  4      4      pV P                  '       d   V P                   RV 2# T# )a  The "base version" of the version.

>>> Version("1.2.3").base_version
'1.2.3'
>>> Version("1.2.3+abc").base_version
'1.2.3'
>>> Version("1!1.2.3dev1+abc").base_version
'1!1.2.3'

The "base version" is the public version of the project without any pre or post
release markers.
rÉ   rò   )rõ   rÓ   r   rD   rC   )r^   Úrelease_segments   & r   Úbase_versionÚVersion.base_version=  s@   € ð Ÿ(™(¤3¤s¨D¯L©LÓ#9Ó:ˆØ48·J·J°J�$—*‘*�˜Q˜Ð/Ð0ÐSÀOÐSr   c               ó   € V ^8„  d   QhRR/# ©r   r   rk   r   )r   s   "r   r   rÇ   O  s   € ÷ <ñ <˜tñ <r   c                óJ   € V P                   RJ;'       g    V P                  RJ# )züWhether this version is a pre-release.

>>> Version("1.2.3").is_prerelease
False
>>> Version("1.2.3a1").is_prerelease
True
>>> Version("1.2.3b1").is_prerelease
True
>>> Version("1.2.3rc1").is_prerelease
True
>>> Version("1.2.3dev1").is_prerelease
True
N)rF   r9   r]   s   &r   Úis_prereleaseÚVersion.is_prereleaseN  s$   € ð �x‰x˜tÐ#×;Ð; t§x¡x°tÐ';Ð;r   c               ó   € V ^8„  d   QhRR/# r  r   )r   s   "r   r   rÇ   `  s   € ÷ %ñ % ñ %r   c                ó   € V P                   RJ# )z‚Whether this version is a post-release.

>>> Version("1.2.3").is_postrelease
False
>>> Version("1.2.3.post1").is_postrelease
True
N)r<   r]   s   &r   Úis_postreleaseÚVersion.is_postrelease_  s   € ð �y‰y Ð$Ð$r   c               ó   € V ^8„  d   QhRR/# r  r   )r   s   "r   r   rÇ   k  s   € ÷ $ñ $˜tñ $r   c                ó   € V P                   RJ# )z†Whether this version is a development release.

>>> Version("1.2.3").is_devrelease
False
>>> Version("1.2.3.dev1").is_devrelease
True
N)rF   r]   s   &r   Úis_devreleaseÚVersion.is_devreleasej  s   € ð �x‰x˜tÐ#Ð#r   c               ó   € V ^8„  d   QhRR/# rb   r   )r   s   "r   r   rÇ   v  s   € ÷ @ñ @�sñ @r   c                ó`   € \        V P                  4      ^8¼  d   V P                  ^ ,          # ^ # )zYThe first item of :attr:`release` or ``0`` if unavailable.

>>> Version("1.2.3").major
1
©r¦   rD   r]   s   &r   ÚmajorÚVersion.majoru  s'   € ô #& d§l¡lÓ"3°qÔ"8ˆt�|‰|˜A�Ð?¸aÐ?r   c               ó   € V ^8„  d   QhRR/# rb   r   )r   s   "r   r   rÇ     ó   € ÷ @ñ @�sñ @r   c                ó`   € \        V P                  4      ^8¼  d   V P                  ^,          # ^ # )zsThe second item of :attr:`release` or ``0`` if unavailable.

>>> Version("1.2.3").minor
2
>>> Version("1").minor
0
r,  r]   s   &r   ÚminorÚVersion.minor~  ó'   € ô #& d§l¡lÓ"3°qÔ"8ˆt�|‰|˜A�Ð?¸aÐ?r   c               ó   € V ^8„  d   QhRR/# rb   r   )r   s   "r   r   rÇ   Š  r0  r   c                ó`   € \        V P                  4      ^8¼  d   V P                  ^,          # ^ # )zrThe third item of :attr:`release` or ``0`` if unavailable.

>>> Version("1.2.3").micro
3
>>> Version("1").micro
0
r,  r]   s   &r   ÚmicroÚVersion.micro‰  r4  r   ©r¾   r¿   rÀ   rÁ   rÂ   rÃ   rÄ   N)rû   )'rJ   rK   rL   rM   rV   r�   Ú__match_args__ÚreÚcompileÚVERSION_PATTERNÚVERBOSEÚ
IGNORECASErÑ   rN   r×   rÞ   r�   r_   r2   rç   Úsetterrî   rö   rû   rC   rD   r9   r<   rF   rH   r  r  r   r$  r(  r-  r2  r7  rO   r   r   r   r?   r?   6  s  ‡ ñð. X€IØ€Nà�ZŠZ˜ Õ0°6Õ9¸2¿:¹:ÈÏÉÕ;UÓV€FàƒKØÓØ
 Ó Ø
 Ó Ø!Ó!ØÓàÓõõ4ðB ô
ó ð
ð ÙÐGÓHô
ó Ió ð
ð
 ‡_�_ÙÐGÓHôó Ió ðõ&õð> ôó ðð ôó ðð ôó ðð ôó ðð ô5ó ð5ð ô3ó ð3ð ôó ðð ô
*ó ð
*ð ôTó ðTð  ô<ó ð<ð  ô%ó ð%ð ô$ó ð$ð ô@ó ð@ð ô@ó ð@ð ô@ó ô@r   c                  óN   a € ] tR tRtRtR V 3R llt]R V 3R ll4       tRtV ;t	# )Ú_TrimmedReleasei•  c               ó    € V ^8„  d   QhRRRR/# )r   rR   zstr | Versionr   rÆ   r   )r   s   "r   r   Ú_TrimmedRelease.__annotate__˜  s   € ÷ 
"ñ 
" ð 
"°$ñ 
"r   c                	óD  <€ \        V\        4      '       dz   VP                  V n        VP                  V n        VP                  V n        VP
                  V n        VP                  V n        VP                  V n        VP                  V n        R # \        SV `)  V4       R # r\   )ro   r?   r¿   rÄ   r¾   rÃ   rÂ   rÁ   rÀ   Úsuperr×   )r^   rR   rÛ   s   &&€r   r×   Ú_TrimmedRelease.__init__˜  sq   ø€ Ü�gœw×'Ò'Ø!Ÿ.™.ˆDŒKØ#×,Ñ,ˆDŒMØŸ™ˆDŒIØŸ™ˆDŒIØ Ÿ™ˆDŒJØ!Ÿ.™.ˆDŒKØ%×0Ñ0ˆDŒOÙÜ‰Ñ˜Ö!r   c               ó   € V ^8„  d   QhRR/# r  r   )r   s   "r   r   rD  ¥  s   € ÷ 4ñ 4˜ñ 4r   c                ó˜   <€ \         SV `  p\        V4      pTpV^8”  d    W^,
          ,          ^ 8X  d   V^,          pK&  W28X  d   V# VRV # )z€
Release segment without any trailing zeros.

>>> _TrimmedRelease('1.0.0').release
(1,)
>>> _TrimmedRelease('0.0').release
(0,)
N)rF  rD   r¦   )r^   ÚrelÚlen_releaser¢   rÛ   s   &   €r   rD   Ú_TrimmedRelease.release¤  sN   ø€ ô ‰g‰oˆÜ˜#“hˆØˆØ�!Œe˜ �E�
 aœØ��FŠAØÔ&ˆsÐ3¨C°°¨GÐ3r   r9  r   )
rJ   rK   rL   rM   r�   r×   r�   rD   rO   Ú__classcell__)rÛ   s   @r   rB  rB  •  s&   ø† Ø€I÷
"ð 
"ð ÷4ó ö4r   rB  c               ó$   € V ^8„  d   QhRRRRRR/# )r   ÚletterrG   Únumberz str | bytes | SupportsInt | Noner   r¼   r   )r   s   "r   r   r   ·  s$   € ÷ ñ ØðØ @ðàñr   c                ó¸   € V '       d=   V P                  4       p \        P                  W 4      p T \        T;'       g    ^ 4      3# V'       d   R\        V4      3# R# )r˜   r<   N)ÚlowerÚ_LETTER_NORMALIZATIONÚgetrc   )rO  rP  s   &&r   rÕ   rÕ   ·  sS   € ÷ à—‘“ˆô
 '×*Ñ*¨6Ó:ˆð ”s˜6Ÿ;˜; QÓ'Ð'Ð'çð ”s˜6“{Ð"Ð"ár   z[\._-]c               ó    € V ^8„  d   QhRRRR/# )r   rH   rG   r   r´   r   )r   s   "r   r   r   Ò  s   € ÷ 	ñ 	 
ð 	Ð/?ñ 	r   c                ó²   € V eS   \         ;QJ d'    . R \        P                  V 4       4       F  NK  	  5# ! R \        P                  V 4       4       4      # R# )zJ
Takes a string like abc.1.twelve and turns it into ("abc", 1, "twelve").
Nc              3  ó„   "  € T F6  pVP                  4       '       g   VP                  4       M
\        V4      x € K8  	  R # 5ir\   )ÚisdigitrR  rc   )r¡   Úparts   & r   r£   Ú'_parse_local_version.<locals>.<genexpr>×  s0   é € ð 
á>�ð !%§¡§¢ˆD�J‰JŒL´C¸³IÔ=Û>ùs
   ‚A �#A )r¥   Ú_local_version_separatorsrÔ   )rH   s   &r   r¸   r¸   Ò  sW   € ð ÒßŒuñ 
ä1×7Ñ7¸Ô>ó
�uð 	
ˆuñ 
ä1×7Ñ7¸Ô>ó
ó 
ð 	
ñ r   c               ó4   € V ^8„  d   QhRRRRRRRRRRR	R
RR/# )r   rC   rc   rD   r�   r9   r¼   r<   rF   rH   r´   r   rá   r   )r   s   "r   r   r   Þ  sN   € ÷ :6ñ :6Øð:6àð:6ð 
 ð:6ð !ð	:6ð
 
 ð:6ð ð:6ð ñ:6r   c                óp  € \        V4      pTpV'       d    W^,
          ,          ^ 8X  d   V^,          pK'  Wv8X  d   TMVRV pVf   Vf   Ve   \        p	MVf   \        p	MTp	Vf   \        p
MTp
Vf   \        pMTpVf   \        pM,\        ;QJ d    . R V 4       F  NK  	  5M! R V 4       4      pWWšW¼3# )é   Nc              3  óf   "  € T F'  p\        V\        4      '       d   VR 3M\        V3x € K)  	  R# 5i)ró   N)ro   rc   r   r    s   & r   r£   Ú_cmpkey.<locals>.<genexpr>  s.   é € ð 
ÙNSÈ”z !¤S×)Ò)ˆQ�‰GÔ0@À!Ð/DÔDËeùs   ‚/1)r¦   r   r   r¥   )rC   rD   r9   r<   rF   rH   rK  r¢   rÄ   rÃ   rÂ   r¾   rÁ   s   &&&&&&       r   rã   rã   Þ  sÍ   € ô �g“,€KØ€Aß
�˜A�• !Ô#Ø	ˆQ�ŠØÔ*‰w°¸¸°€Hð ‚{�t’|¨ªÜ"2‰ð 
ŠÜ‰àˆð ‚|Ü#3‰ð ˆð ‚{Ü"*‰ð ˆà‚}ä/‰÷ ”ñ 
ÙNSó
—‘ñ 
ÙNSó
ó 
ˆð ˜D¨Ð5Ð5r   )é   é   )r=  r>   r?   rT   )ra  é   é   )ra  rc  rb  )ra  rc  )ArV   Ú
__future__r   r;  ÚsysrŽ   r   r   r   r   r   r   r	   r
   Ú_structuresr   r   r   r   r�   Útyping_extensionsr   r   Úversion_infor)   r   r2   r.   rS  Ú__all__rc   r   Ú	LocalTypeÚCmpPrePostDevTypeÚCmpLocalTyperá   rk   ÚVersionComparisonMethodrA   rT   Ú
ValueErrorr>   rX   Ú_VERSION_PATTERNÚreplaceÚ_VERSION_PATTERN_OLDÚimplementationÚnamer=  r<  r?  r¶   r›   r¨   r¬   r¯   r²   r¹   r»   r?   rB  rÕ   r[  r¸   rã   r   r   r   Ú<module>ru     s“  ðñõ #ã 	Û 
Û ÷	÷ 	ó 	÷ XÓ Wà	××Ðß.à×Ñ�wÔÞ2Ø××ÐÞ;ãÛõð" ˆSØ
ˆCØˆØ	ˆ4ØˆtØ	ˆ6ØˆðÐ ò D€à�%˜˜S˜•/ 3Ð&Õ'€	à˜,Ð(<¸eÀCÈÀH½oÐMÕNÐ ØØØ	ˆ%��c˜3�h• Ð';¸UÀ3ÈÀ8½_Ð'LÕ!MÐMÕ
NÐPSÐ
SÕTðVõ€ð 
ØØ	ˆ#ˆsˆ(…OØØØØðõ
€ð # F¨FÐ#3°TÐ#9Õ:Ð ô�i uõ õ	ô�Zô ÷3'ñ 3'ðt"Ð ðH (×/Ñ/°°cÓ:×BÑBÀ4ÈÓMÐ ð 	×Ñ×Ñ 9Ô,°×1AÑ1AÀJÔ1NØ×Ñ×Ñ 6Ô)¨c×.>Ñ.>ÀÔ.LØ
×Ñ˜'Ô!ñ ð 
ð ð	ð —’Ð;¸R¿]¹]ÓK€õõ	õõõõôˆzô ô\@ˆlô \@ô~
4�gô 4õDð0 ŸJšJ yÓ1Ð õ	÷:6r   