
    m&pht%                     &   % S SK r S SKrS SKrS SKrS SKrS SKrS SKrS SKJrJ	r	J
r
JrJrJrJr  SSKJrJrJrJr  SrSrSr\R.                  S\S	\	\\   SS4   4S
 j5       rS\S	\4S jrS\S	\4S jrS\S\\   S	\4S jr\ R<                  " S 5      r\\ \ 4   \!S'    " S S\5      r"S	\\   4S jr#S	\\   4S jr$S	\\   4S jr%S\S	\\ \ 4   4S jr&\RN                  S	\\ \ 4   4S j5       r(S\S\"S	\4S jr)SSSS .r*S\\   S	\
\   4S! jr+g)"    N)Dict	GeneratorIterator
NamedTupleOptionalSequenceTuple   )EIClassEIDataELFFileEMachinel      ~ i   i   pathreturnc              #      #     [        U S5       n[        U5      v   S S S 5        g ! , (       d  f       g = f! [        [        [        4 a    S v    g f = f7f)Nrb)openr   OSError	TypeError
ValueError)r   fs     V/var/www/html/venv/lib/python3.13/site-packages/wheel/vendored/packaging/_manylinux.py
_parse_elfr      sE     $!* Y
+ 
s>   A8 '8 A
58 A8 AAAA
executablec                    [        U 5       nUS L=(       a    UR                  [        R                  :H  =(       a    UR                  [
        R                  :H  =(       a_    UR                  [        R                  :H  =(       a;    UR                  [        -  [        :H  =(       a    UR                  [        -  [        :H   sS S S 5        $ ! , (       d  f       g = fN)r   capacityr   C32encodingr   Lsbmachiner   ArmflagsEF_ARM_ABIMASKEF_ARM_ABI_VER5EF_ARM_ABI_FLOAT_HARDr   r   s     r   _is_linux_armhfr(      s     
J	1TM I

gkk)I

fjj(I 		X\\)I .(O;	I
 //3HH	
 
 		s   B3C		
Cc                 0   [        U 5       nUS L=(       ae    UR                  [        R                  :H  =(       aA    UR                  [
        R                  :H  =(       a    UR                  [        R                  :H   sS S S 5        $ ! , (       d  f       g = fr   )
r   r   r   r   r   r   r    r!   r   I386r'   s     r   _is_linux_i686r+   +   se    	J	1TM +

gkk)+

fjj(+ 		X]]*		
 
 		s   A1B
Barchsc                 z   ^ SU;   a  [        U 5      $ SU;   a  [        U 5      $ 1 Skm[        U4S jU 5       5      $ )Narmv7li686>   ppc64s390xx86_64aarch64ppc64leriscv64loongarch64c              3   ,   >#    U  H	  oT;   v   M     g 7fr    ).0archallowed_archss     r   	<genexpr>'_have_compatible_abi.<locals>.<genexpr>C   s     7}$s   )r(   r+   any)r   r,   r;   s     @r   _have_compatible_abir?   5   sB    5z**j))M 7777    c                      g)N2   r8   r8   r@   r   <lambda>rC   K   s    Br@   _LAST_GLIBC_MINORc                   *    \ rS rSr% \\S'   \\S'   Srg)_GLibCVersionN   majorminorr8   N)__name__
__module____qualname____firstlineno__int__annotations____static_attributes__r8   r@   r   rF   rF   N   s    JJr@   rF   c                       [         R                  " S5      n U c   eU R                  5       u  pU$ ! [        [        [
        [        4 a     gf = f)zB
Primary implementation of glibc_version_string using os.confstr.
CS_GNU_LIBC_VERSIONN)osconfstrrsplitAssertionErrorAttributeErrorr   r   )version_string_versions      r   _glibc_version_string_confstrr[   S   sV    (*

3H(I)))#**,
 N NGZ@ s   -1 AAc                  *    SSK n  U R                  S5      n UR                  nU R                  Ul        U" 5       n[        U[        5      (       d  UR                  S5      nU$ ! [         a     gf = f! [         a     gf = f! [
         a     gf = f)z?
Fallback implementation of glibc_version_string using ctypes.
r   Nascii)ctypesImportErrorCDLLr   gnu_get_libc_versionrW   c_char_prestype
isinstancestrdecode)r^   process_namespacera   version_strs       r   _glibc_version_string_ctypesri   f   s    ""KK-0EE $*?? +-Kk3''!((1G  $  
   s3   A% A5 B %
A21A25
BB
BBc                  8    [        5       =(       d
    [        5       $ )z9Returns glibc version string, or None if not using glibc.)r[   ri   r8   r@   r   _glibc_version_stringrk      s    (*L.J.LLr@   rh   c                     [         R                  " SU 5      nU(       d  [        R                  " SU  3[        5        g[        UR                  S5      5      [        UR                  S5      5      4$ )a  Parse 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<major>[0-9]+)\.(?P<minor>[0-9]+)z;Expected glibc version with 2 components major.minor, got: rn   rH   rI   )rematchwarningswarnRuntimeWarningrN   group)rh   ms     r   _parse_glibc_versionrv      sb     	8+FA M#	

 qwww #aggg&6"777r@   c                  4    [        5       n U c  g[        U 5      $ )Nrm   )rk   rv   )rh   s    r   _get_glibc_versionrx      s    ')K,,r@   r:   rZ   c                    [        5       nX!:  a  g SS Kn[        US5      (       a(  UR	                  US   US   U 5      nUb  [        U5      $ gU[        SS5      :X  a&  [        US5      (       a  [        UR                  5      $ U[        SS	5      :X  a&  [        US
5      (       a  [        UR                  5      $ U[        SS5      :X  a&  [        US5      (       a  [        UR                  5      $ g! [         a     gf = f)NFr   Tmanylinux_compatibler
         manylinux1_compatible   manylinux2010_compatible   manylinux2014_compatible)
rx   
_manylinuxr_   hasattrrz   boolrF   r}   r   r   )r:   rZ   	sys_glibcr   results        r   _is_compatibler      s    "$I z12200WQZN<-1%%:677
8899-2&&:9::
;;<<-2&&:9::
;;<<!  s   C2 2
C?>C?manylinux2014manylinux2010
manylinux1))r{   r   )r{   r~   )r{   r|   c              #     #    [        [        R                  U 5      (       d  g[        SS5      n[	        U 5      SS1-  (       a  [        SS5      n[        [        5       6 nU/n[        UR                  S-
  SS5       H&  n[        U   nUR                  [        XE5      5        M(     U  H  nU H  nUR                  UR                  :X  a  UR                  nOSn[        UR                  US5       Hq  n[        UR                  U5      n	S	R                  " U	6 n
[        Xi5      (       a	  U
 S
U 3v   U	[        ;   d  MM  [        U	   n[        Xi5      (       d  Mh  U S
U 3v   Ms     M     M     g7f)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.
Nr{      r2   r/      r
   rn   zmanylinux_{}_{}rY   )r?   sysr   rF   setrx   rangerH   rD   appendrI   formatr   _LEGACY_MANYLINUX_MAP)r,   too_old_glibc2current_glibcglibc_max_listglibc_majorglibc_minorr:   	glibc_max	min_minorglibc_versiontag
legacy_tags               r   platform_tagsr      sR      66"1b)N
5zXv&&&q!,!#5#78M#_N ]0014a<'4mKEF = 'I."6"66*00	 	$Y__iD -ioo{ K'..>!$66 E4&/) $99!6}!EJ%d::!+AdV44  E ( s   D8E/>E/E/),collections
contextlib	functoolsrS   ro   r   rq   typingr   r   r   r   r   r   r	   _elffiler   r   r   r   r$   r%   r&   contextmanagerre   r   r   r(   r+   r?   defaultdictrD   rN   rO   rF   r[   ri   rk   rv   	lru_cacherx   r   r   r   r8   r@   r   <module>r      s      	 	 
  S S S 8 8" 
 S Yx'8$'DE  
 
 

s 
t 
8S 8# 84 8, %0$;$;J$G 4S> GJ 
x} &)hsm )XMx} M
8c 8eCHo 8& -E#s(O - - }  8  -5# -58C= -5r@   