Ë ÅóøÙ ò…üãó—UddlZddlZddlZddlZddlZddlZddlZddlmZm Z m Z m Z m Z m Z mZddlmZmZmZmZdZdZdZej.ded e e eddffd „«Zd ed efd „Zd ed efd „Zd ede ed efd„Zej<d„«Zee e fe!d<Gd„de «Z"d e efd„Z#d e efd„Z$d e efd„Z%ded ee e ffd„Z&ejN«d ee e ffd„«Z(dede"d efd„Z)dddd œZ*de ed e efd!„Z+y)"éN)ÚDictÚ GeneratorÚIteratorÚ NamedTupleÚOptionalÚSequenceÚTupleé)ÚEIClassÚEIDataÚELFFileÚEMachinel~iiÚpathÚreturnc#ó¦K— t|d«5}t|«–—ddd«y#1swYyxYw#tttf$rd–—YywxYw­w)NÚrb)Úopenr ÚOSErrorÚ TypeErrorÚ ValueError)rÚfs ú9/usr/lib/python3.12/site-packages/packaging/_manylinux.pyÚ _parse_elfrsFèø€ðÜ �$˜Ô  Ü˜!“*Ò ÷× Ñ ûä ”Y¤ Ð +òØŒ ðüs>‚A„ 3�'ž3¦A§0¬3¯A°3³AÁ AÁ AÁAÚ executablecóx—t|«5}|duxr“|jtjk(xrt|jt j k(xrU|jtjk(xr6|jtztk(xr|jtztk( cddd«S#1swYyxYw©N)rÚcapacityr ÚC32Úencodingr ÚLsbÚmachinerÚArmÚflagsÚEF_ARM_ABIMASKÚEF_ARM_ABI_VER5ÚEF_ARM_ABI_FLOAT_HARD©rrs rÚ_is_linux_armhfr(sž€ô �JÔ  1à �TˆMò IØ— ‘ œgŸk™kÑ)ò Ià— ‘ œfŸj™jÑ(ò Ið— ‘ œXŸ\™\Ñ)ò Ið—‘œ.Ñ(¬OÑ;ò  Ið —‘Ô/Ñ/Ô3HÑHð  ÷ × Ò ús ŒBB0Â0B9có—t|«5}|duxr[|jtjk(xr<|jt j k(xr|jtjk( cddd«S#1swYyxYwr) rrr rrr r r!rÚI386r's rÚ_is_linux_i686r++se€Ü �JÔ  1à �TˆMò +Ø— ‘ œgŸk™kÑ)ò +à— ‘ œfŸj™jÑ(ò +ð— ‘ œXŸ]™]Ñ*ð  ÷ × Ò ús ŒA"A8Á8BÚarchscóp‡—d|vr t|«Sd|vr t|«Shd£Štˆfd„|D««S)NÚarmv7lÚi686>Úppc64Ús390xÚx86_64Úaarch64Úppc64leÚ loongarch64c3ó&•K—|]}|‰v–—Œ y­wr©)Ú.0ÚarchÚ allowed_archss €rÚ z'_have_compatible_abi..;søèø€Ð7±¨ˆt�}Ô$±ùsƒ)r(r+Úany)rr,r:s @rÚ_have_compatible_abir=5s>ø€Ø�5ÑܘzÓ*Ð*Ø ��ܘjÓ)Ð)ÚU€MÜ Ó7±Ó7Ó 7Ð7ócó—y)Né2r7r7r>rÚrACs€ÀBr>Ú_LAST_GLIBC_MINORcó"—eZdZUeed<eed<y)Ú _GLibCVersionÚmajorÚminorN)Ú__name__Ú __module__Ú __qualname__ÚintÚ__annotations__r7r>rrDrDFs …Ø ƒJØ „Jr>rDcó — ttd«d«}|€J‚|j«\}}|S#ttt t f$rYywxYw)zJ Primary implementation of glibc_version_string using os.confstr. ÚconfstrÚCS_GNU_LIBC_VERSIONN)ÚgetattrÚosÚrsplitÚAssertionErrorÚAttributeErrorrr)Úversion_stringÚ_Úversions rÚ_glibc_version_string_confstrrWKs]€ðà4œg¤b¨)Ó4Ð5JÓKˆØÐ)Ð)Ð)Ø#×*Ñ*Ó,‰ ˆˆ7ð €Nøô œN¬G´ZÐ @òáðús‚-1±A Á A có— ddl} |jd«} |j}|j |_|«}t|t«s|jd«}|S#t$rYywxYw#t$rYywxYw#t $rYywxYw)zG Fallback implementation of glibc_version_string using ctypes. rNÚascii) ÚctypesÚ ImportErrorÚCDLLrÚgnu_get_libc_versionrSÚc_char_pÚrestypeÚ isinstanceÚstrÚdecode)rZÚprocess_namespacer]Ú version_strs rÚ_glibc_version_string_ctypesre^s£€ðÛð"Ø"ŸK™K¨Ó-ÐðØ0×EÑEÐð$*§?¡?ÐÔ Ù+Ó-€Kä �k¤3Ô 'Ø!×(Ñ(¨Ó1ˆ à ÐøôG òÙðûô$ òÙðûô òñðús3‚A ‡A/™ A>Á A,Á+A,Á/ A;Á:A;Á> B  B có.—t«xs t«S)z9Returns glibc version string, or None if not using glibc.)rWrer7r>rÚ_glibc_version_stringrgŠs€ä (Ó *Ò LÔ.JÓ.LÐLr>rdcóÖ—tjd|«}|stjd|›�t«yt |j d««t |j d««fS)a3Parse glibc version. We use a regexp instead of str.split because we want to discard any random junk that might come after the minor version -- this might happen in patched/forked versions of glibc (e.g. Linaro's version of glibc uses version strings like "2.20-2014.11"). See gh-3588. z$(?P[0-9]+)\.(?P[0-9]+)z;Expected glibc version with 2 components major.minor, got: ©éÿÿÿÿrjrErF)ÚreÚmatchÚwarningsÚwarnÚRuntimeWarningrJÚgroup)rdÚms rÚ_parse_glibc_versionrr�sb€ô �‰Ð8¸+ÓF€AÙ Ü� ‰ ðØ �Mð #ä ô ð Ü ˆq�w‰w�wÓÓ ¤# a§g¡g¨gÓ&6Ó"7Ð 7Ð7r>có2—t«}|€yt|«S)Nri)rgrr)rds rÚ_get_glibc_versionrt¢s€ä'Ó)€KØÐØÜ   Ó ,Ð,r>r9rVcóÒ—t«}||kry ddl}t|d«r'|j |d|d|«}|� t |«Sy|t dd«k(r!t|d«rt |j«S|t dd «k(r!t|d «rt |j«S|t dd «k(r!t|d «rt |j«Sy#t$rYywxYw) NFrTÚmanylinux_compatibler ééÚmanylinux1_compatibleé Úmanylinux2010_compatibleéÚmanylinux2014_compatible) rtÚ _manylinuxr[ÚhasattrrvÚboolrDryr{r})r9rVÚ sys_glibcr~Úresults rÚ_is_compatiblerƒ«sñ€Ü"Ó$€IØ�7ÒØðÛôˆzÐ1Ô2Ø×0Ñ0°¸±¸WÀQ¹ZÈÓNˆØ Рܘ“<Ð ØØ”-  1Ó%Ò%Ü �:Ð6Ô 7ܘ ×8Ñ8Ó9Ð 9Ø”-  2Ó&Ò&Ü �:Ð9Ô :ܘ ×;Ñ;Ó<Ð <Ø”-  2Ó&Ò&Ü �:Ð9Ô :ܘ ×;Ñ;Ó<Ð <Ø øô! òÙðús’Cà C&Ã%C&Ú manylinux2014Ú manylinux2010Ú manylinux1))rwr|)rwrz)rwrxc#ó¦K—ttj|«sytdd«}t |«ddhzr tdd«}tt «Ž}|g}t |jdz dd«D]&}t|}|jt||««Œ(|D]¯}|D]¨}|j|jk(r |j}nd}t |j|d«D]d}t|j|«} d j| Ž} t|| «r | ›d |›�–—| tvsŒFt| } t|| «sŒ\| ›d |›�–—ŒfŒªŒ±y­w) aÆGenerate manylinux tags compatible to the current platform. :param archs: Sequence of compatible architectures. The first one shall be the closest to the actual architecture and be the part of platform tag after the ``linux_`` prefix, e.g. ``x86_64``. The ``linux_`` prefix is assumed as a prerequisite for the current platform to be manylinux-compatible. :returns: An iterator of compatible manylinux tags. Nrwér2r/ér rjzmanylinux_{}_{}rU)r=ÚsysrrDÚsetrtÚrangerErBÚappendrFÚformatrƒÚ_LEGACY_MANYLINUX_MAP) r,Útoo_old_glibc2Ú current_glibcÚglibc_max_listÚ glibc_majorÚ glibc_minorr9Ú glibc_maxÚ min_minorÚ glibc_versionÚtagÚ legacy_tags rÚ platform_tagsršÏsSèø€ô ¤§¡°Ô 6Øä" 1 bÓ)€NÜ ˆ5ƒz�X˜vÐ&Ò&ä& q¨!Ó,ˆÜ!Ô#5Ó#7Ð8€MØ#�_€Nô˜]×0Ñ0°1Ñ4°a¸Ö<ˆ Ü'¨ Ñ4ˆ Ø×Ñœm¨K¸ÓEÕFð=óˆÛ'ˆIØ�‰ .×"6Ñ"6Ò6Ø*×0Ñ0‘ ð� Ü$ Y§_¡_°iÀÖD� Ü -¨i¯o©o¸{Ó K� Ø.Ð'×.Ñ.° Ð>�Ü! $¨ Ô6Ø ˜E  4 &˜/Ò)à Ô$9Ò9Ü!6°}Ñ!E�JÜ% d¨MÕ:Ø!+  ¨A¨d¨VÐ4Ó4ñ Eñ (ñùs‚D(EÄ+EÅE),Ú collectionsÚ contextlibÚ functoolsrPrkrŠrmÚtypingrrrrrrr Ú_elffiler r r rr$r%r&Úcontextmanagerrarr€r(r+r=Ú defaultdictrBrJrKrDrWrergrrÚ lru_cachertrƒr�ršr7r>rÚr£s¨ðÜÛÛÛ Û Û ÛßS×SÑSç8Ó8à€Ø€Ø"Ðð  ×Ñð�Sð˜Y x°Ñ'8¸$ÀÐ'DÑEòóðð   ð  ¨ó  ð ˜sð  tó ð8 Sð8°¸#±ð8À4ó8ð%< K×$;Ñ$;¹JÓ$GÐ�4˜˜S˜‘>ÓGô�Jôð  x°¡}óð&) h¨s¡mó)ðXM˜x¨™}óMð 8 cð8¨e°C¸°H©oó8ð&€×ÑÓð-˜E # s (™Oò-óð-ð˜ð }ð¸óð8à à ñ Ðð-5˜ #™ð-5¨8°C©=ô-5r>