+
    JV-já•  ã                  ó  € 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 ]P                  '       d	   ^ RIHtHt ]P$                  RD8¼  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. REOtR R lt]]]]3,          R3,          t]]]]3,          R3,          t]]]]]]]3,          t]]]]]R3,          ]3,          ]]]]R3,          ]]3,          3,          t]]].] 3,          t! ! R R]RR7      t"R R lt#R R lt$ ! R  R]%4      t& ! R! R"4      t'R#t(](PS                  R$R%4      PS                  R&R'4      t*]PV                  PX                  R(8X  d   ]P$                  RF8  g>   ]PV                  PX                  R)8X  d   ]P$                  RG8  g   ]P$                  RH8  d   ]*M](t- ]P\                  ! R*]P^                  ]P`                  ,          4      t1]2! R+4      t3R, R- lt4R. R/ lt5R0 R1 lt6R2 R3 lt7R4 R5 lt8R6 R7 lt9 ! R8 R9]	4      t: ! R: R]'4      t; ! R; R<];4      t<R= R> lt=]P\                  ! R?4      t>R@ RA lt?R	^ R^R^/t@RItA^tBRItC]B^ ^ ^ ^^ 3tDRB RC ltER# )JzZ
.. testsetup::

    from packaging.version import parse, normalize_pre, Version, _cmpkey
)ÚannotationsN)ÚAnyÚCallableÚLiteralÚ
NamedTupleÚSupportsIntÚTupleÚ	TypedDictÚUnion)ÚSelfÚUnpack)Ú
deprecatedc               ó    € V ^8„  d   QhRRRR/# )é   ÚmessageÚstrÚreturnÚobject© )Úformats   "Úb/Volumes/fast/ai/experiments/ui-tars-smoke/.venv/lib/python3.14/site-packages/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   ÚfunczCallable[[...], object]r   r   r   )r   s   "r   r   Ú!_deprecated.<locals>.__annotate__&   s   € ÷ 
	ñ 
	Ð3ð 
	¸ñ 
	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   r,   s   f r   Ú_deprecatedr.   %   s   ø€ ÷
	ð 
	ð Ðr   ÚalphaÚaÚbetaÚbÚcÚrcÚpreÚpreviewÚrevÚpostÚrÚInvalidVersionÚVersionc               ó   € V ^8„  d   QhRR/# )r   r   z	list[str]r   )r   s   "r   r   r   B   s   € ÷ ñ �ñ r   c                 ó   € \         # ©N)Ú__all__r   r   r   Ú__dir__r@   B   s   € Ü€Nr   .c                  óT   € ] tR t^Qt$ R]R&   R]R&   R]R&   R]R&   R]R&   R	]R
&   RtR# )Ú_VersionReplaceú
int | NoneÚepochztuple[int, ...] | NoneÚreleaseútuple[str, int] | Noner5   r8   Údevú
str | NoneÚlocalr   N©Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__annotations__Ú__static_attributes__r   r   r   rB   rB   Q   s%   ‡ ØÓØ#Ó#Ø	ÓØ
ÓØ	ƒOØ×r   rB   F)Útotalc               ó    € V ^8„  d   QhRRRR/# )r   Úletterr   r   r   )r   s   "r   r   r   Z   s   € ÷ 5ñ 5˜#ð 5 Sñ 5r   c               óL   € V P                  4       p \        P                  W 4      # )a  Normalize the pre-release segment of a version string.

Returns a lowercase version of the string if not a known pre-release
identifier.

>>> normalize_pre('alpha')
'a'
>>> normalize_pre('BETA')
'b'
>>> normalize_pre('rc')
'rc'

:param letter:

.. versionadded:: 26.1
)ÚlowerÚ_LETTER_NORMALIZATIONÚget)rS   s   "r   Únormalize_prerX   Z   s    € ð" �\‰\‹^€FÜ ×$Ñ$ VÓ4Ð4r   c               ó    € V ^8„  d   QhRRRR/# )r   Úversionr   r   r;   r   )r   s   "r   r   r   o   s   € ÷ ñ �3ð ˜7ñ r   c                ó   € \        V 4      # )zûParse the given version string.

This is identical to the :class:`Version` constructor.

>>> 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;   )rZ   s   &r   Úparser\   o   s   € ô �7ÓÐr   c                  ó   € ] tR t^}t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)rK   rL   rM   rN   Ú__doc__rP   r   r   r   r:   r:   }   s   † õr   c                  ó¨   € ] tR t^‡t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 # r>   r   ©Úselfs   &r   Ú_keyÚ_BaseVersion._key�   s   € Ù+.r   c               ó   € V ^8„  d   QhRR/# ©r   r   Úintr   )r   s   "r   r   rb   ’   s   € ÷ ñ ˜#ñ r   c                	ó,   € \        V P                  4      # r>   )Úhashrf   rd   s   &r   Ú__hash__Ú_BaseVersion.__hash__’   s   € Ü�D—I‘I‹Ðr   c               ó    € V ^8„  d   QhRRRR/# ©r   Úotherr`   r   Úboolr   )r   s   "r   r   rb   ˜   ó   € ÷ &ñ &˜Lð &¨Tñ &r   c                	ól   € \        V\        4      '       g   \        # V P                  VP                  8  # r>   ©Ú
isinstancer`   ÚNotImplementedrf   ©re   rq   s   &&r   Ú__lt__Ú_BaseVersion.__lt__˜   ó(   € Ü˜%¤×.Ò.Ü!Ð!à�y‰y˜5Ÿ:™:Ñ%Ð%r   c               ó    € V ^8„  d   QhRRRR/# rp   r   )r   s   "r   r   rb   ž   ó   € ÷ 'ñ '˜Lð '¨Tñ 'r   c                	ól   € \        V\        4      '       g   \        # V P                  VP                  8*  # r>   ru   rx   s   &&r   Ú__le__Ú_BaseVersion.__le__ž   ó(   € Ü˜%¤×.Ò.Ü!Ð!à�y‰y˜EŸJ™JÑ&Ð&r   c               ó    € V ^8„  d   QhRRRR/# ©r   rq   r   r   rr   r   )r   s   "r   r   rb   ¤   ó   € ÷ 'ñ '˜Fð ' tñ 'r   c                	ól   € \        V\        4      '       g   \        # V P                  VP                  8H  # r>   ru   rx   s   &&r   Ú__eq__Ú_BaseVersion.__eq__¤   r�   r   c               ó    € V ^8„  d   QhRRRR/# rp   r   )r   s   "r   r   rb   ª   r}   r   c                	ól   € \        V\        4      '       g   \        # V P                  VP                  8¬  # r>   ru   rx   s   &&r   Ú__ge__Ú_BaseVersion.__ge__ª   r�   r   c               ó    € V ^8„  d   QhRRRR/# rp   r   )r   s   "r   r   rb   °   rs   r   c                	ól   € \        V\        4      '       g   \        # V P                  VP                  8„  # r>   ru   rx   s   &&r   Ú__gt__Ú_BaseVersion.__gt__°   r{   r   c               ó    € V ^8„  d   QhRRRR/# rƒ   r   )r   s   "r   r   rb   ¶   r„   r   c                	ól   € \        V\        4      '       g   \        # V P                  VP                  8g  # r>   ru   rx   s   &&r   Ú__ne__Ú_BaseVersion.__ne__¶   r�   r   r   N)rK   rL   rM   rN   Ú	__slots__ÚtypingÚTYPE_CHECKINGÚpropertyrf   rm   ry   r   r†   rŠ   rŽ   r’   rP   r   r   r   r`   r`   ‡   sK   † Ø€Ið
 ××Ðà	Ü.ó 
Ø.õõ&õ'õ'õ'õ&÷'ñ 'r   r`   a3  
    v?+                                                   # optional leading v
    (?a:
        (?:(?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]+)?
        )?+
    )
    (?a:\+
        (?P<local>                                        # local version
            [a-z0-9]+
            (?:[._-][a-z0-9]+)*+
        )
    )?+
z*+Ú*z?+Ú?ÚcpythonÚpypyz[a-z0-9]+(?:[._-][a-z0-9]+)*z.0123456789c               ó    € V ^8„  d   QhRRRR/# )r   Úvaluer   r   rj   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 ©rv   rj   r:   )r�   rD   Ú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)rv   rj   )Ú.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Ÿ   )rv   ÚtupleÚlenÚallr:   )r�   rE   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   ú*tuple[Literal['a', 'b', 'rc'], int] | Noner   )r   s   "r   r   r     s   € ÷ 
ñ 
˜ð 
Ð'Qñ 
r   c               óæ   € V f   V # \        V \        4      '       dG   \        V 4      ^8X  d7   V w  r\        V4      pVR9   d!   \        V\        4      '       d   V^ 8¼  d   W3# RV  2p\        V4      h)Nz=pre must be a tuple of ('a'|'b'|'rc', non-negative int), got >   r0   r2   r4   )rv   r«   r¬   rX   rj   r:   )r�   rS   Únumberr¡   s   "   r   Ú_validate_prer³     sp   € Ø‚}ØˆÜ�%œ×Ò¤C¨£J°!¤OØ‰ˆÜ˜vÓ&ˆØÐ%Ô%¬*°V¼S×*AÒ*AÀfÐPQÄkàÐ#Ð#ØIÈ%ÈÐ
Q€CÜ
˜Ó
Ðr   c               ó    € V ^8„  d   QhRRRR/# )r   r�   r   r   ú"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)Nr8   z'post must be non-negative integer, got r    ©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   ú!tuple[Literal['dev'], int] | Noner   )r   s   "r   r   r   4  s   € ÷ ñ ˜ð Ð'Hñ r   c               óp   € V f   V # \        V \        4      '       d   V ^ 8¼  d   RV 3# RV  2p\        V4      h)NrG   z&dev must be non-negative integer, got r    r·   s   " r   Ú_validate_devr¼   4  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 )rv   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# )Ú_VersioniG  rj   rD   r¤   rE   rº   rG   r°   r5   rµ   r8   r¾   rI   r   NrJ   r   r   r   rÅ   rÅ   G  s%   ‡ ØƒJØÓØ	*Ó*Ø	3Ó3Ø
,Ó,Ø×r   rÅ   c                  ó®  a € ] 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&   R R lt]R^ RRRRRRRR/R R ll4       tR R lt]R  R! l4       tR" R# ltR$ V 3R% lltR& V 3R' lltR( V 3R) lltR* V 3R+ lltR, V 3R- lltR. V 3R/ lltR0 R1 ltR2 R3 lt]]! R44      R5 R6 l4       4       t]P>                  ]! R44      R7 R8 l4       4       tR9 R: lt R; R< lt!]R= R> l4       t"]R? R@ l4       t#]RA RB l4       t$]RC RD l4       t%]RE RF l4       t&]RG RH l4       t']RI RJ l4       t(]RK RL l4       t)]RM RN l4       t*]RO RP l4       t+]RQ RR l4       t,]RS RT l4       t-]RU RV l4       t.]RW RX l4       t/]RY RZ l4       t0R[t1V ;t2# )]r;   iP  aT  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

:class:`Version` is immutable; use :meth:`__replace__` to change
part of a version.

Instances are safe to serialize with :mod:`pickle`. They use a stable
format so the same pickle can be loaded in future packaging releases.

.. versionchanged:: 26.2

    Added a stable pickle format. Pickles created with packaging 26.2+ can
    be unpickled with future releases.  Backward compatibility with pickles
    from packaging < 26.2 is supported but may be removed in a future
    release.
Ú_devÚ_epochÚ_hash_cacheÚ
_key_cacheÚ_localÚ_postÚ_preÚ_releasez\s*rj   r¤   rº   r°   rµ   r¾   rC   zCmpKey | Nonec               ó    € V ^8„  d   QhRRRR/# )r   rZ   r   r   ÚNoner   )r   s   "r   r   ÚVersion.__annotate__”  s   € ÷ 0 ñ 0  ð 0 ¨ñ 0 r   c                ó\  € \         P                  V4      '       db    \        \        \        VP                  R4      4      4      V n        ^ T n	        RT n
        RT n        RT n        RT n        RT n        RT n        R# 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V n        R#   \         d)    RTP                  R4      9   d   \        RT: 24      Rhh i ; i)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: NrD   rE   Úpre_lÚpre_nÚpost_lÚpost_n1Úpost_n2Údev_lÚdev_nrI   )Ú_SIMPLE_VERSION_INDICATORSÚ
issupersetr«   Úmaprj   ÚsplitrÎ   Ú
ValueErrorr:   rÈ   rÍ   rÌ   rÇ   rË   rÊ   rÉ   Ú_regexrÁ   ÚgroupÚ_parse_letter_versionrÂ   )re   rZ   Úmatchs   && r   Ú__init__ÚVersion.__init__”  sÀ  € ô &×0Ñ0°×9Ò9ð	Ü %¤c¬#¨w¯}©}¸SÓ/AÓ&BÓ C�”ð ˆDŒKØˆDŒIØˆDŒJØˆDŒIØˆDŒKØ"ˆDŒOØ#ˆDÔÙð —‘×%Ñ% 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Ó+?Ó@ˆŒð ˆŒØˆÖøôG ô ð ˜Ÿ™ sÓ+Ô+Ü(Ð+<¸W¹KÐ)HÓIÈtÐSàðús   �-G8 Ç83H+rD   r5   Nr8   rG   rI   c               ó4   € V ^8„  d   QhRRRRRRRRR	RR
RRR/# )r   rD   rj   rE   r¤   r5   rF   r8   rC   rG   rI   rH   r   r   r   )r   s   "r   r   rÑ   Ç  sR   € ÷ ,ñ ,ð ð,ð !ð	,ð
 $ð,ð ð,ð ð,ð ð,ð 
ñ,r   c               ó@  € \        V4      p\        V4      pVe   \        V4      MRp	Ve   \        V4      MRp
Ve   \	        V4      MRpVe   \        V4      MRpV P                  V 4      pRVn        RVn        W}n	        W�n
        W�n        W­n        W½n        WÍn        V# )aÈ  
Return a new version composed of the various parts.

This allows you to build a version without going though a string and
running a regular expression. It normalizes pre-release strings. The
``release=`` keyword argument is required.

>>> Version.from_parts(release=(1,2,3))
<Version('1.2.3')>
>>> Version.from_parts(release=(0,1,0), pre=("b", 1))
<Version('0.1.0b1')>

:param epoch:
:param release: This version tuple is required

.. versionadded:: 26.1
N)r¢   r®   r³   r¸   r¼   rÃ   Ú__new__rÊ   rÉ   rÈ   rÎ   rÍ   rÌ   rÇ   rË   )ÚclsrD   rE   r5   r8   rG   rI   rÈ   rÎ   rÍ   rÌ   rÇ   rË   Únew_versions   &$$$$$$       r   Ú
from_partsÚVersion.from_partsÆ  s¢   € ô8 ! Ó'ˆÜ$ WÓ-ˆØ%(¢_Œ}˜SÔ!¸$ˆØ(,Ò(8”˜tÔ$¸dˆØ%(¢_Œ}˜SÔ!¸$ˆØ+0Ò+<” Ô'À$ˆà—k‘k #Ó&ˆØ!%ˆÔØ"&ˆÔØ#ÔØ'ÔØÔØ!ÔØÔØ#ÔàÐr   c               ó    € V ^8„  d   QhRRRR/# )r   r    zUnpack[_VersionReplace]r   r   r   )r   s   "r   r   rÑ   õ  s   € ÷ 8ñ 8Ð$;ð 8Àñ 8r   c                ó4  € 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        RVn        W(n        W8n        WHn        WXn        Whn	        Wxn        V# )aW  
__replace__(*, epoch=..., release=..., pre=..., post=..., dev=..., local=...)

Return a new version with parts replaced.

This returns a new version (unless no parts were changed). The
pre-release is normalized. Setting a value to ``None`` clears it.

>>> v = Version("1.2.3")
>>> v.__replace__(pre=("a", 1))
<Version('1.2.3a1')>

:param int | None epoch:
:param tuple[int, ...] | None release:
:param tuple[str, int] | None pre:
:param int | None post:
:param int | None dev:
:param str | None local:

.. versionadded:: 26.0
.. versionchanged:: 26.1

   The pre-release portion is now normalized.
rD   rE   r5   r8   rG   rI   N)r¢   rÈ   r®   rÎ   r³   rÍ   r¸   rÌ   r¼   rÇ   rÃ   rË   Ú	__class__ré   rÊ   rÉ   )	re   r    rD   rE   r5   r8   rG   rI   rë   s	   &,       r   Ú__replace__ÚVersion.__replace__õ  sE  € ð2 5<¸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Ñ   0  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Ë   rd   s   &r   rf   ÚVersion._key/  sN   € à�?‰?Ò"Ü%Ø—‘Ø—‘Ø—	‘	Ø—
‘
Ø—	‘	Ø—‘óˆDŒOð �‰Ðr   c               ó   € V ^8„  d   QhRR/# ri   r   )r   s   "r   r   rÑ   >  s   € ÷ ñ ˜#ñ r   c                	ó  € V P                   ;pe   V# V P                  ;pfT   \        V P                  V P                  V P
                  V P                  V P                  V P                  4      ;V n        p\        V4      ;V n         pV# r>   )
rÉ   rÊ   rö   rÈ   rÎ   rÍ   rÌ   rÇ   rË   rl   )re   Úcached_hashÚkeys   &  r   rm   ÚVersion.__hash__>  s~   € Ø×+Ñ+Ð+ˆKÒ8ØÐà—?‘?Ð"ˆCÒ+Ü$+Ø—‘Ø—‘Ø—	‘	Ø—
‘
Ø—	‘	Ø—‘ó%ð ˆDŒO˜cô *.¨c«Ð2ˆÔ˜;ØÐr   c               ó    € V ^8„  d   QhRRRR/# rp   r   )r   s   "r   r   rÑ   P  ó   € ÷ %ñ %˜Lð %¨Tñ %r   c                	ó4  <€ \        V\        4      '       dØ   V P                  fR   \        V P                  V P
                  V P                  V P                  V P                  V P                  4      V n        VP                  fR   \        VP                  VP
                  VP                  VP                  VP                  VP                  4      Vn        V P                  VP                  8  # \        V\        4      '       g   \        # \        SV `5  V4      # r>   )rv   r;   rÊ   rö   rÈ   rÎ   rÍ   rÌ   rÇ   rË   r`   rw   Úsuperry   ©re   rq   rð   s   &&€r   ry   ÚVersion.__lt__P  óÎ   ø€ Ü�eœW×%Ò%Ø�‰Ò&Ü")Ø—K‘KØ—M‘MØ—I‘IØ—J‘JØ—I‘IØ—K‘Kó#�”ð ×ÑÒ'Ü#*Ø—L‘LØ—N‘NØ—J‘JØ—K‘KØ—J‘JØ—L‘Ló$�Ô ð —?‘? U×%5Ñ%5Ñ5Ð5ä˜%¤×.Ò.Ü!Ð!ä‰w‰~˜eÓ$Ð$r   c               ó    € V ^8„  d   QhRRRR/# rp   r   )r   s   "r   r   rÑ   k  rþ   r   c                	ó4  <€ \        V\        4      '       dØ   V P                  fR   \        V P                  V P
                  V P                  V P                  V P                  V P                  4      V n        VP                  fR   \        VP                  VP
                  VP                  VP                  VP                  VP                  4      Vn        V P                  VP                  8*  # \        V\        4      '       g   \        # \        SV `5  V4      # r>   )rv   r;   rÊ   rö   rÈ   rÎ   rÍ   rÌ   rÇ   rË   r`   rw   r   r   r  s   &&€r   r   ÚVersion.__le__k  óÎ   ø€ Ü�eœW×%Ò%Ø�‰Ò&Ü")Ø—K‘KØ—M‘MØ—I‘IØ—J‘JØ—I‘IØ—K‘Kó#�”ð ×ÑÒ'Ü#*Ø—L‘LØ—N‘NØ—J‘JØ—K‘KØ—J‘JØ—L‘Ló$�Ô ð —?‘? e×&6Ñ&6Ñ6Ð6ä˜%¤×.Ò.Ü!Ð!ä‰w‰~˜eÓ$Ð$r   c               ó    € V ^8„  d   QhRRRR/# rƒ   r   )r   s   "r   r   rÑ   †  ó   € ÷ %ñ %˜Fð % tñ %r   c                	ó4  <€ \        V\        4      '       dØ   V P                  fR   \        V P                  V P
                  V P                  V P                  V P                  V P                  4      V n        VP                  fR   \        VP                  VP
                  VP                  VP                  VP                  VP                  4      Vn        V P                  VP                  8H  # \        V\        4      '       g   \        # \        SV `5  V4      # r>   )rv   r;   rÊ   rö   rÈ   rÎ   rÍ   rÌ   rÇ   rË   r`   rw   r   r†   r  s   &&€r   r†   ÚVersion.__eq__†  r  r   c               ó    € V ^8„  d   QhRRRR/# rp   r   )r   s   "r   r   rÑ   ¡  rþ   r   c                	ó4  <€ \        V\        4      '       dØ   V P                  fR   \        V P                  V P
                  V P                  V P                  V P                  V P                  4      V n        VP                  fR   \        VP                  VP
                  VP                  VP                  VP                  VP                  4      Vn        V P                  VP                  8¬  # \        V\        4      '       g   \        # \        SV `5  V4      # r>   )rv   r;   rÊ   rö   rÈ   rÎ   rÍ   rÌ   rÇ   rË   r`   rw   r   rŠ   r  s   &&€r   rŠ   ÚVersion.__ge__¡  r  r   c               ó    € V ^8„  d   QhRRRR/# rp   r   )r   s   "r   r   rÑ   ¼  rþ   r   c                	ó4  <€ \        V\        4      '       dØ   V P                  fR   \        V P                  V P
                  V P                  V P                  V P                  V P                  4      V n        VP                  fR   \        VP                  VP
                  VP                  VP                  VP                  VP                  4      Vn        V P                  VP                  8„  # \        V\        4      '       g   \        # \        SV `5  V4      # r>   )rv   r;   rÊ   rö   rÈ   rÎ   rÍ   rÌ   rÇ   rË   r`   rw   r   rŽ   r  s   &&€r   rŽ   ÚVersion.__gt__¼  r  r   c               ó    € V ^8„  d   QhRRRR/# rƒ   r   )r   s   "r   r   rÑ   ×  r	  r   c                	ó4  <€ \        V\        4      '       dØ   V P                  fR   \        V P                  V P
                  V P                  V P                  V P                  V P                  4      V n        VP                  fR   \        VP                  VP
                  VP                  VP                  VP                  VP                  4      Vn        V P                  VP                  8g  # \        V\        4      '       g   \        # \        SV `5  V4      # r>   )rv   r;   rÊ   rö   rÈ   rÎ   rÍ   rÌ   rÇ   rË   r`   rw   r   r’   r  s   &&€r   r’   ÚVersion.__ne__×  r  r   c               ó   € V ^8„  d   QhRR/# )r   r   zutuple[int, tuple[int, ...], tuple[str, int] | None, tuple[str, int] | None, tuple[str, int] | None, LocalType | None]r   )r   s   "r   r   rÑ   ò  s   € ÷ 
ñ 
ð
ñ
r   c                	óŠ   € V P                   V P                  V P                  V P                  V P                  V P
                  3# r>   )rÈ   rÎ   rÍ   rÌ   rÇ   rË   rd   s   &r   Ú__getstate__ÚVersion.__getstate__ò  s8   € ð �K‰KØ�M‰MØ�I‰IØ�J‰JØ�I‰IØ�K‰Kð
ð 	
r   c               ó    € V ^8„  d   QhRRRR/# )r   Ústater   r   rÐ   r   )r   s   "r   r   rÑ     s   € ÷ +Bñ +B &ð +B¨Tñ +Br   c                	ó@  € R V n         R V n        \        V\        4      '       dÚ   \	        V4      ^8X  d*   Vw  V n        V n        V n        V n        V n	        V n
        R # \	        V4      ^8X  d‘   Vw  r#\        V\        4      '       dw   VR,          V n        VR,          V n        VP                  R4      V n        VP                  R4      V n        VP                  R4      V n	        VP                  R4      V n
        R # \        V\        4      '       d~   VP                  R4      pVei   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 # \'        RV: 24      h)	NrÈ   rÎ   rÍ   rÌ   rÇ   rË   Ú_versionzCannot restore Version from )rÊ   rÉ   rv   r«   r¬   rÈ   rÎ   rÍ   rÌ   rÇ   rË   ÚdictrW   rD   rE   r5   r8   rG   rI   Ú	TypeError)re   r  Ú_Ú	slot_dictÚ
version_nts   &&   r   Ú__setstate__ÚVersion.__setstate__  sQ  € ð ˆŒØˆÔä�eœU×#Ò#Ü�5‹z˜QŒð ñØ”KØ”MØ”IØ”JØ”IØ”KáÜ�5‹z˜QŒà$‘�Ü˜i¬×.Ò.Ø"+¨HÕ"5�D”KØ$-¨jÕ$9�D”MØ )§¡¨fÓ 5�D”IØ!*§¡¨wÓ!7�D”JØ )§¡¨fÓ 5�D”IØ"+§-¡-°Ó"9�D”KÙÜ�eœT×"Ò"ð Ÿ™ :Ó.ˆJØÒ%Ø(×.Ñ.�”Ø *× 2Ñ 2�”Ø&ŸN™N�”	Ø'Ÿ_™_�”
Ø&ŸN™N�”	Ø(×.Ñ.�”ÙäÐ6°u±iÐ@ÓAÐAr   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Ñ   7  s   € ÷ 
ñ 
˜(ñ 
r   c                	óš   € \        V P                  V P                  V P                  V P                  V P
                  V P                  4      # r>   )rÅ   rÈ   rÎ   rÇ   rÍ   rÌ   rË   rd   s   &r   r  ÚVersion._version5  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 V n        R # r>   )rD   rÈ   rE   rÎ   rG   rÇ   r5   rÍ   r8   rÌ   rI   rË   rÊ   rÉ   )re   r�   s   &&r   r  r&  <  sU   € ð —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Ñ   H  s   € ÷ =ñ =˜#ñ =r   c                óP   € RV P                   P                   R\        V 4      : R2# )zhA representation of the Version that shows all internal state.

>>> Version('1.0.0')
<Version('1.0.0')>
Ú<Ú(z)>)rð   rK   r   rd   s   &r   Ú__repr__ÚVersion.__repr__H  s(   € ð �4—>‘>×*Ñ*Ð+¨1¬S°«Y©M¸Ð<Ð<r   c               ó   € V ^8„  d   QhRR/# r*  r   )r   s   "r   r   rÑ   P  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Ó   Ú!rÔ   z.postz.devÚ+)	ÚjoinrÞ   r   rE   rD   r5   r8   rG   rI   )re   rZ   s   & r   Ú__str__ÚVersion.__str__P  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Ñ   p  s   € ÷ ñ �cñ r   c                ó   € \        V 4      # )z Internal property for match_args©r   rd   s   &r   Ú_strÚVersion._stro  s   € ô �4‹yÐr   c               ó   € V ^8„  d   QhRR/# ri   r   )r   s   "r   r   rÑ   u  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È   rd   s   &r   rD   ÚVersion.epocht  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Î   rd   s   &r   rE   Ú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Í   rd   s   &r   r5   ÚVersion.pre�  s   € ð �y‰yÐr   c               ó   € V ^8„  d   QhRR/# ©r   r   rC   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Ì   rd   s   &r   r8   ÚVersion.postž  s   € ð !%§
§
 
ˆt�z‰z˜!�}Ð4°Ð4r   c               ó   € V ^8„  d   QhRR/# rG  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Ç   rd   s   &r   rG   ÚVersion.dev©  s   € ð  $ŸyŸy˜yˆt�y‰y˜�|Ð2¨dÐ2r   c               ó   € V ^8„  d   QhRR/# )r   r   rH   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>   r9  )r§   Úxs   & r   r©   Ú Version.local.<locals>.<genexpr>¾  s   é € Ð8©K qœC ŸF˜F«Kùs   ‚N)rË   r4  rd   s   &r   rI   Ú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Ñ   Ã  s   € ÷ *ñ *˜ñ *r   c                óF   € \        V 4      P                  R^4      ^ ,          # )a)  The public portion of the version.

This returns a string. If you want a :class:`Version` again and care
about performance, use ``v.__replace__(local=None)`` instead.

>>> 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'
r3  )r   rß   rd   s   &r   ÚpublicÚVersion.publicÂ  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.

This returns a string. If you want a :class:`Version` again and care
about performance, use
``v.__replace__(pre=None, post=None, dev=None, local=None)`` instead.

>>> 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Ó   r2  )r4  rÞ   r   rE   rD   )re   Ú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   rr   r   )r   s   "r   r   rÑ   è  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)rG   r5   rd   s   &r   Úis_prereleaseÚVersion.is_prereleaseç  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)r8   rd   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Ñ     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)rG   rd   s   &r   Úis_devreleaseÚVersion.is_devrelease  s   € ð �x‰x˜tÐ#Ð#r   c               ó   € V ^8„  d   QhRR/# ri   r   )r   s   "r   r   rÑ     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¬   rE   rd   s   &r   ÚmajorÚVersion.major  s'   € ô #& d§l¡lÓ"3°qÔ"8ˆt�|‰|˜A�Ð?¸aÐ?r   c               ó   € V ^8„  d   QhRR/# ri   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
rk  rd   s   &r   ÚminorÚVersion.minor  ó'   € ô #& d§l¡lÓ"3°qÔ"8ˆt�|‰|˜A�Ð?¸aÐ?r   c               ó   € V ^8„  d   QhRR/# ri   r   )r   s   "r   r   rÑ   #  ro  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
rk  rd   s   &r   ÚmicroÚVersion.micro"  rs  r   )rÇ   rÈ   rÉ   rÊ   rË   rÌ   rÍ   rÎ   )r:  )3rK   rL   rM   rN   r^   r”   Ú__match_args__ÚreÚcompileÚVERSION_PATTERNÚVERBOSEÚ
IGNORECASErá   rO   rå   Úclassmethodrì   rñ   r—   rf   rm   ry   r   r†   rŠ   rŽ   r’   r  r"  r.   r  Úsetterr.  r5  r:  rD   rE   r5   r8   rG   rI   rU  rZ  r_  rc  rg  rl  rq  rv  rP   Ú__classcell__©rð   s   @r   r;   r;   P  s°  ø‡ ñ"ðH	€Ið €Nðð �ZŠZ˜ Õ0°6Õ9¸2¿:¹:ÈÏÉÕ;UÓV€FàƒKØÓØ
+Ó+Ø
4Ó4Ø-Ó-ØÓàÓØÓõ0 ðd ð,ð ð,ð
 '+ð,ð  ð,ð ð,ð !ö,ó ð,õ\8ðt ô
ó ð
õ÷$%ð %÷6%ð %÷6%ð %÷6%ð %÷6%ð %÷6%ð %õ6
õ,+BðZ ÙÐ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   rZ   zstr | Versionr   rÐ   r   )r   s   "r   r   Ú_TrimmedRelease.__annotate__1  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>   )rv   r;   rÈ   rÎ   rÇ   rÍ   rÌ   rË   rÊ   r   rå   )re   rZ   rð   s   &&€r   rå   Ú_TrimmedRelease.__init__1  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   r…  >  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)r   rE   r¬   )re   ÚrelÚlen_releaser¨   rð   s   &   €r   rE   Ú_TrimmedRelease.release=  sN   ø€ ô ‰g‰oˆÜ˜#“hˆØˆØ�!Œe˜ �E�
 aœØ��FŠAØÔ&ˆsÐ3¨C°°¨GÐ3r   )rÇ   rÈ   rÊ   rË   rÌ   rÍ   rÎ   r   )
rK   rL   rM   rN   r”   rå   r—   rE   rP   r€  r�  s   @r   rƒ  rƒ  .  s&   ø† Ø€I÷
"ð 
"ð ÷4ó ö4r   rƒ  c               ó$   € V ^8„  d   QhRRRRRR/# )r   rS   rH   r²   z str | bytes | SupportsInt | Noner   rF   r   )r   s   "r   r   r   P  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Ÿ   r8   N)rU   rV   rW   rj   )rS   r²   s   &&r   rã   rã   P  sS   € ÷ à—‘“ˆô
 '×*Ñ*¨6Ó:ˆð ”s˜6Ÿ;˜; QÓ'Ð'Ð'çð ”s˜6“{Ð"Ð"ár   z[\._-]c               ó    € V ^8„  d   QhRRRR/# )r   rI   rH   r   r¾   r   )r   s   "r   r   r   k  s   € ÷ 
ñ 
 
ð 
Ð/?ñ 
r   c                ó²   € V eS   \         ;QJ d'    . R \        P                  V 4       4       F  NK  	  5# ! R \        P                  V 4       4       4      # R# )zT
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>   )ÚisdigitrU   rj   )r§   Úparts   & r   r©   Ú'_parse_local_version.<locals>.<genexpr>q  s0   é € ð 
á>�ð !%§¡§¢ˆD�J‰JŒL´C¸³IÔ=Û>ùs
   ‚A �#A )r«   Ú_local_version_separatorsrß   )rI   s   &r   rÂ   rÂ   k  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   rD   rj   rE   r¤   r5   rF   r8   rG   rI   r¾   r   rô   r   )r   s   "r   r   r   …  sW   € ÷ J-ñ J-ØðJ-àðJ-ð 
 ðJ-ð !ð	J-ð
 
 ðJ-ð ðJ-ð ñJ-r   c                ó  € \        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f   Vf	   W\        3# Vf   Vf   Ve	   \        ^ r©M(Vf	   \        ^ r©M\        V^ ,          ,          V^,          r©Vf   ^ M^pVf   ^ MV^,          pVf   ^M^ pVf   ^ MV^,          pWšW¼WÞ3pVf   WV3# \
        ;QJ d    . R V 4       F  NK  	  5M! R V 4       4      pWVV3# )aA  Build a comparison key for PEP 440 ordering.

Returns ``(epoch, release, suffix)`` or
``(epoch, release, suffix, local)`` so that plain tuple
comparison gives the correct order.

Trailing zeros are stripped from the release so that ``1.0.0 == 1``.

The suffix is a flat 6-int tuple that encodes pre/post/dev:
``(pre_rank, pre_n, post_rank, post_n, dev_rank, dev_n)``

pre_rank: dev-only=-1, a=0, b=1, rc=2, no-pre=3
    Dev-only releases (no pre or post) get -1 so they sort before
    any alpha/beta/rc.  Releases without a pre-release tag get 3
    so they sort after rc.
post_rank: no-post=0, post=1
    Releases without a post segment sort before those with one.
dev_rank: dev=0, no-dev=1
    Releases without a dev segment sort after those with one.

Local segments use ``(n, "")`` for ints and ``(-1, s)`` for strings,
following PEP 440: strings sort before ints, strings compare
lexicographically, ints compare numerically, and shorter segments
sort before longer when prefixes match.  Versions without a local
segment sort before those with one (3-tuple < 4-tuple).

>>> _cmpkey(0, (1, 0, 0), None, None, None, None)
(0, (1,), (3, 0, 0, 0, 1, 0))
>>> _cmpkey(0, (1,), ("a", 1), None, None, None)
(0, (1,), (0, 1, 0, 0, 1, 0))
>>> _cmpkey(0, (1,), None, None, None, ("ubuntu", 1))
(0, (1,), (3, 0, 0, 0, 1, 0), ((-1, 'ubuntu'), (1, '')))
Nc              3  óf   "  € T F'  p\        V\        4      '       d   VR 3M\        V3x € K)  	  R# 5i)rÔ   N)rv   rj   Ú_LOCAL_STR_RANK)r§   Úsegs   & r   r©   Ú_cmpkey.<locals>.<genexpr>Ì  s.   é € ð $ÙQVÈ#”Z ¤S×)Ò)ˆˆb‰	´ÀÐ/EÔEÓQVùs   ‚/1)r¬   Ú_STABLE_SUFFIXÚ_PRE_RANK_DEV_ONLYÚ_PRE_RANK_STABLEÚ	_PRE_RANKr«   )rD   rE   r5   r8   rG   rI   r‹  r¨   ÚtrimmedÚpre_rankrÖ   Ú	post_rankÚpost_nÚdev_rankrÛ   ÚsuffixÚ	cmp_locals   &&&&&&           r   rö   rö   …  s  € ôT �g“,€KØ€Aß
�˜A�• !Ô#Ø	ˆQ�ŠØÔ)‰g¨w°r¸¨{€Gð ‚{�t’|¨ª¸ºØœ~Ð-Ð-à
‚{�t’|¨ªä,¨a‘%Ø	ŠÜ*¨A‘%ä# C¨¥FÕ+¨S°­V�%à’\‘ q€IØ’,‰Q D¨¥G€Fà’K‰q Q€HØ’‰A # a¥&€Eà˜y°(ÐB€Fà‚}Ø˜vÐ%Ð%ç#œeñ $ÙQVó$Ÿe™eñ $ÙQVó$ó €Ið ˜6 9Ð,Ð,r   )é   é   )r{  r:   r;   rX   r\   )r§  é   é   )r§  r©  r¨  )r§  r©  éÿÿÿÿ)Fr^   Ú
__future__r   ry  Úsysr•   r   r   r   r   r   r   r	   r
   r–   Útyping_extensionsr   r   Úversion_infor%   r   r.   r*   rV   r?   r@   rj   r   Ú	LocalTypeÚCmpLocalTypeÚ	CmpSuffixrô   rr   ÚVersionComparisonMethodrB   rX   r\   rà   r:   r`   Ú_VERSION_PATTERNÚreplaceÚ_VERSION_PATTERN_OLDÚimplementationÚnamer{  rz  r}  ÚASCIIrÀ   Ú	frozensetrÜ   r¢   r®   r³   r¸   r¼   rÃ   rÅ   r;   rƒ  rã   r•  rÂ   rŸ  r�  rž  r™  rœ  rö   r   r   r   Ú<module>r»     sË  ðñõ #ã 	Û 
Û ÷	÷ 	ó 	ð 
××Ðß.à×Ñ�wÔÞ2Ø××ÐÞ;ãÛõð" ˆSØ
ˆCØˆØ	ˆ4ØˆtØ	ˆ6ØˆðÐ ò U€õð �%˜˜S˜•/ 3Ð&Õ'€	à�U˜3 ˜8•_ cÐ)Õ*€Ø�#�s˜C  c¨3Ð.Õ/€	Ø	Ø	ˆ#ˆu�S˜#�X� 	Ð
)Õ*Ø	ˆ#ˆu�S˜#�X� 	¨<Ð
7Õ8ð:õ
€ð # F¨FÐ#3°TÐ#9Õ:Ð ô�i uõ õ5õ*ô�Zô ÷3'ñ 3'ðt"Ð ðH (×/Ñ/°°cÓ:×BÑBÀ4ÈÓMÐ ð 	×Ñ×Ñ 9Ô,°×1AÑ1AÀJÔ1NØ×Ñ×Ñ 6Ô)¨c×.>Ñ.>ÀÔ.LØ
×Ñ˜'Ô!ñ ð 
ð ðð$ —’Ð;¸R¿]¹]ÈRÏXÉXÕ=UÓV€ñ ' }Ó5Ð õõ	õ
õõõôˆzô ô[@ˆlô [@ô|4�gô 4õDð0 ŸJšJ yÓ1Ð õ
ð �!�S˜!˜T 1Ð%€	ØÐ ØÐ ð €ð # A q¨!¨Q°Ð2€÷J-r   