ó
    F\hp  ã                   óª  • S r SSKrSSKrSSKrSSKJr  / SQrSS1rSSS	S
SSSSS.SSSSSSSSS.SSSSSSSSS.SSSSSSSSS.SSSSS S S!SS.SSS	S
SSSSS.SSSSS S S!SS.S".r\R                  S#:X  a	  \S$   \S%'   O\S&   \S%'   S' r
S( r\" 5       SLr\(       a!  \S)S)S*S*S+S,S-S..S/S/S0S0S1S2S-S..S3S3S4S4S5S2S-S..S6.-  rS.r\R                  R                  5       S   r\R"                  S    S7\R"                  S8    3r\R"                  S    \R"                  S8    3r\R(                  R+                  \R,                  5      r\R(                  R+                  \R0                  5      r\R4                  " 5       rSqS9qSrS: r\R@                  (       a,  \R(                  RC                  \" \R@                  5      5      r"O\" \RF                  " 5       5      r"\$" \S;S5      r%\%(       a  \%r"\R                  S#:X  a'  \" \"5      RM                  \" \ S<35      5      (       a  \r"S=\RN                  ;   a  \" \RN                  S=   5      r"S]S> jr(\(" 5       r)\)(       a!  S? H  r*\\*   r*\*S@   \*SA'   SB\*S@'   SC\*SD'   M     C*SE r+SF r,SG r-SH r.SI r/SJ r0SK r1SL r2SM r3SN r4S]SO jr5SP r6SQ r7SR r8\0" 5       SSS4ST jr9\0" 5       SSS4SU jr:SV r;SW r<SX r=SY r>SZ r?S[ r@S\ rAg)^z-Access to Python's configuration information.é    N)Úrealpath)Úget_config_h_filenameÚget_config_varÚget_config_varsÚget_makefile_filenameÚget_pathÚget_path_namesÚ	get_pathsÚget_platformÚget_python_versionÚget_scheme_namesÚparse_config_hÚIPHONEOS_DEPLOYMENT_TARGETÚMACOSX_DEPLOYMENT_TARGETzR{installed_base}/{platlibdir}/{implementation_lower}{py_version_short}{abi_thread}zL{platbase}/{platlibdir}/{implementation_lower}{py_version_short}{abi_thread}zM{base}/lib/{implementation_lower}{py_version_short}{abi_thread}/site-packageszZ{platbase}/{platlibdir}/{implementation_lower}{py_version_short}{abi_thread}/site-packageszK{installed_base}/include/{implementation_lower}{py_version_short}{abiflags}zO{installed_platbase}/include/{implementation_lower}{py_version_short}{abiflags}z
{base}/binz{base})ÚstdlibÚ
platstdlibÚpurelibÚplatlibÚincludeÚplatincludeÚscriptsÚdataz-{installed_base}/lib/python{py_version_short}z'{platbase}/lib/python{py_version_short}z {base}/lib/python3/dist-packagesz${platbase}/lib/python3/dist-packagesz;{installed_base}/include/python{py_version_short}{abiflags}z?{installed_platbase}/include/python{py_version_short}{abiflags}z7{base}/local/lib/python{py_version_short}/dist-packagesz;{platbase}/local/lib/python{py_version_short}/dist-packagesz{base}/local/binz{base}/localz+{installed_base}/lib/{implementation_lower}z!{base}/lib/{implementation_lower}z/{installed_base}/include/{implementation_lower}z{installed_base}/Libz
{base}/Libz{base}/Lib/site-packagesz{installed_base}/Includez{base}/Scripts)Úposix_prefixÚ
deb_systemÚposix_localÚ
posix_homeÚntÚ
posix_venvÚnt_venvr   r   Úvenvr   c                  ó   • g)NÚPython© r#   ó    Ú)/usr/lib/python3.13/sysconfig/__init__.pyÚ_get_implementationr&   …   s   € Ør$   c            	      ó  • [         R                  R                  SS 5      n U (       a  U $ [        R                  S;   a  g S n[         R
                  S:X  a9  [         R                  R                  S5      =(       d    SnU" U[        5       5      $ [        R                  S:X  aU  [        R                  (       a@  U" SS[        R                  [        R                  S	    S
[        R                  S    35      $ U" SS5      $ )NÚPYTHONUSERBASE>   ÚiosÚtvosÚwasiÚvxworksÚwatchosÚ
emscriptenc                  óv   • [         R                  R                  [         R                  R                  " U 6 5      $ ©N)ÚosÚpathÚ
expanduserÚjoin)Úargss    r%   ÚjoinuserÚ_getuserbase.<locals>.joinuser“   s$   € Ü�w‰w×!Ñ!¤"§'¡'§,¢,°Ð"5Ó6Ð6r$   r   ÚAPPDATAÚ~ÚdarwinÚLibraryr   Ú.é   z.local)	r1   ÚenvironÚgetÚsysÚplatformÚnamer&   Ú
_frameworkÚversion_info)Úenv_baser6   Úbases      r%   Ú_getuserbaserG   Š   sË   € Ü�z‰z�~‰~Ð.°Ó5€HÞØˆô ‡|�|ÐRÓRØò7ô 
‡w�w�$ƒÜ�z‰z�~‰~˜iÓ(×/¨CˆÙ˜Ô2Ó4Ó5Ð5ä
‡|�|�xÓ¤C§N§NÙ˜˜Y¬¯©Ü×+Ñ+¨AÑ.Ð/¨q´×1AÑ1AÀ!Ñ1DÐ0EÐFóHð 	Hñ �C˜Ó"Ð"r$   z2{userbase}/{implementation}{py_version_nodot_plat}z@{userbase}/{implementation}{py_version_nodot_plat}/site-packagesz:{userbase}/{implementation}{py_version_nodot_plat}/Includez:{userbase}/{implementation}{py_version_nodot_plat}/Scriptsz
{userbase})r   r   r   r   r   r   r   zL{userbase}/{platlibdir}/{implementation_lower}{py_version_short}{abi_thread}zQ{userbase}/lib/{implementation_lower}{py_version_short}{abi_thread}/site-packageszG{userbase}/include/{implementation_lower}{py_version_short}{abi_thread}z{userbase}/binz%{userbase}/lib/{implementation_lower}z3{userbase}/lib/{implementation_lower}/site-packagesz;{userbase}/include/{implementation_lower}{py_version_short})Únt_userÚ
posix_userÚosx_framework_userr<   r=   Fc                 ó>   •  [        U 5      $ ! [         a    U s $ f = fr0   )r   ÚOSError)r2   s    r%   Ú_safe_realpathrM   Ò   s%   € ðÜ˜‹~ÐøÜó ØŠðús   ‚
 �›Ú_homez\PCbuildÚ_PYTHON_PROJECT_BASEc                 óà   • U b  SS K nUR                  S[        SS9  S HL  n[        R                  R                  [        R                  R                  [        SU5      5      (       d  ML    g   g)	Nr   zThe check_home argument of sysconfig.is_python_build is deprecated and its value is ignored. It will be removed in Python 3.15.é   )Ú
stacklevel)ÚSetupzSetup.localÚModulesTF)ÚwarningsÚwarnÚDeprecationWarningr1   r2   Úisfiler4   Ú_PROJECT_BASE)Ú
check_homerU   Úfns      r%   Úis_python_buildr\   ô   sa   € ØÑÛØ�‰ð5ô Øð 	ñ 	
ó 'ˆÜ�7‰7�>‰>œ"Ÿ'™'Ÿ,™,¤}°iÀÓD×EÓEÙñ 'ð r$   )r   r   r   r   r   Úheadersz{srcdir}/Includez{projectbase}/.r   c                 óÎ   •  U R                   " S0 UD6$ ! [         aF  n U R                   " S0 [        R                  D6s S nA$ ! [         a    [	        U 5      S ef = fS nAff = f)Nr#   )ÚformatÚKeyErrorr1   r>   ÚAttributeError)ÚsÚ
local_varsÚvars      r%   Ú_subst_varsre     sa   € ð5Ø�xŠxÑ%˜*Ñ%Ð%øÜó 5ð	5Ø—8’8Ñ)œbŸj™jÑ)Õ)øÜó 	5Ü  C 5Ó*°Ð4ð	5þð5ús%   ‚ ”
A$ŸA¾A$ÁAÁAÁA$c                 ól   • U R                  5       nUR                  5        H  u  p4X2;   a  M  X@U'   M     g r0   )ÚkeysÚitems)Útarget_dictÚ
other_dictÚtarget_keysÚkeyÚvalues        r%   Ú_extend_dictrn     s6   € Ø×"Ñ"Ó$€KØ ×&Ñ&Ö(‰
ˆØÓÙØ �CÓò )r$   c                 ól  • 0 nUc  0 n[        U[        5       5        [        R                  S:X  a  USS0-  n[        U    R                  5        Hb  u  p4[        R                  S;   a  [        R                  R                  U5      n[        R                  R                  [        XA5      5      X#'   Md     U$ )Nr   Ú
platlibdirÚlib)Úposixr   )
rn   r   r1   rB   Ú_INSTALL_SCHEMESrh   r2   r3   Únormpathre   )ÚschemeÚvarsÚresrl   rm   s        r%   Ú_expand_varsrx   %  s–   € Ø
€CØ�|ØˆÜ�”Ó(Ô)Ü	‡w�w�$ƒð �| UÐ+Ñ+ˆä& vÑ.×4Ñ4Ö6‰
ˆÜ�7‰7�oÓ%Ü—G‘G×&Ñ& uÓ-ˆEÜ—7‘7×#Ñ#¤K°Ó$<Ó=ˆ‹ñ 7ð €Jr$   c                  ój  • [         R                  S:X  a  SSSS.$ [        R                  S:X  a  [        R                  (       a  SSSS.$ [        R
                  [        R                  :w  d  [        [        S5      (       a  Sn O+[         R                  R                  S	S
5      nUS;   a  Sn OS
n U SSS.$ )Nr   r   rH   )ÚprefixÚhomeÚuserr:   r   rJ   Úreal_prefixÚDEB_PYTHON_INSTALL_LAYOUTr   )Údebr   r   rI   )
r1   rB   r@   rA   rC   Úbase_prefixrz   Úhasattrr>   r?   )Úprefix_schemeÚ	deb_builds     r%   Ú_get_preferred_schemesr„   7  s©   € Ü	‡w�w�$ƒàØ Øñ
ð 	
ô
 ‡|�|�xÓ¤C§N§Nà$Ø Ø(ñ
ð 	
ô ‡�œ#Ÿ*™*Ó$¬´°]×(CÑ(Cà&‰ô —J‘J—N‘NÐ#>ÀÓNˆ	ØÐ-Ó-Ø(‰Mà)ˆMð  ØØñð r$   c                 ó¬   • U S:X  a#  [         R                  [         R                  :w  a  g[        5       U    nU[        ;  a  [        U < SU< S35      eU$ )Nrz   r    z
 returned z., which is not a valid scheme on this platform)r@   rz   r€   r„   rs   Ú
ValueError)rl   ru   s     r%   Úget_preferred_schemer‡   W  sZ   € Ø
ˆhƒœ3Ÿ:™:¬¯©Ó8ØÜ#Ó% cÑ*€FØÔ%Ó%ÜØ‰g�Z ™zð *ð  ó
ð 	
ð €Mr$   c                  ó   • [        S5      $ )Nrz   )r‡   r#   r$   r%   Úget_default_schemer‰   c  s   € Ü Ó)Ð)r$   c                  ó”  • [         (       a$  [        R                  R                  [        S5      $ [        [        S5      (       a  S[         [        R                   3n OSn [        [        R                  S5      (       a   U S[        R                  R                   3-  n [        R                  R                  [        S5      U S5      $ )z Return the path of the Makefile.ÚMakefileÚabiflagszconfig-ÚconfigÚ
_multiarchÚ-r   )Ú_PYTHON_BUILDr1   r2   r4   rY   r�   r@   Ú_PY_VERSION_SHORTrŒ   ÚimplementationrŽ   r   )Úconfig_dir_names    r%   r   r   g  s‘   € ç‚}Ü�w‰w�|‰|œM¨:Ó6Ð6ÜŒs�J×ÑØ#Ô$5Ð#6´s·|±|°nÐE‰à"ˆÜŒs×!Ñ! <×0Ñ0Ø˜Qœs×1Ñ1×<Ñ<Ð=Ð>Ñ>ˆÜ�7‰7�<‰<œ Ó*¨O¸ZÓHÐHr$   c            	      óÂ   • [        [        R                  SS5      n [        R                  R                  SS[        R                   S[        R                   SU  35      $ )NrŽ   Ú Ú_PYTHON_SYSCONFIGDATA_NAMEÚ_sysconfigdata_Ú_)Úgetattrr@   r’   r1   r>   r?   rŒ   rA   )Ú	multiarchs    r%   Ú_get_sysconfigdata_namer›   t  sL   € Üœ×*Ñ*¨L¸"Ó=€IÜ�:‰:�>‰>Ø$Ø
œ#Ÿ,™,˜ q¬¯©¨°a¸	°{ÐCóð r$   c                 óx  • [        5       n[        R                  R                  S5      =n(       aM  SSKJnJnJn  SSKJ	n  U" X$U45      R                  U5      nU" U5      nUR                  R                  U5        O [        U[        5       [        5       S/S5      nUR                   n	U R#                  U	5        g)z7Initialize the module as appropriate for POSIX systems.Ú_PYTHON_SYSCONFIGDATA_PATHr   )Ú
FileFinderÚSourceFileLoaderÚSOURCE_SUFFIXES)Úmodule_from_specÚbuild_time_varsN)r›   r1   r>   r?   Úimportlib.machineryrž   rŸ   r    Úimportlib.utilr¡   Ú	find_specÚloaderÚexec_moduleÚ
__import__ÚglobalsÚlocalsr¢   Úupdate)
rv   rB   r2   rž   rŸ   r    r¡   ÚspecÚ_tempr¢   s
             r%   Ú_init_posixr®   {  s—   € ô #Ó$€Dô —
‘
—‘Ð;Ó<Ð<ˆÕ<ßUÑUÝ3Ù˜$°?Ð CÓD×NÑNÈtÓTˆÙ  Ó&ˆØ�‰×Ñ Õ&ä˜4¤£¬F«HÐ7HÐ6IÈ1ÓMˆØ×+Ñ+€OØ‡K�K�Õ r$   c                 óv  • SSK nSSKn[        S5      U S'   [        S5      U S'   [        S5      U S'   U R                  UR	                  5       5        [        [        R                  R                  [        S	5      S
5      5      U S'   [        [        S5      (       aR  UR                  [        R                  5      n[        R                  R                  [        U5      5      U S'   U S   U S'   SU S'   [        U S'   [        R                  R!                  [        [        R"                  5      5      U S'   SU S'   g)z+Initialize the module as appropriate for NTr   Nr   ÚLIBDESTr   Ú
BINLIBDESTr   Ú	INCLUDEPYÚinstalled_baseÚlibsÚLIBDIRÚ	dllhandleÚLIBRARYÚ	LDLIBRARYz.exeÚEXEÚVERSIONÚBINDIRr•   ÚTZPATH)Ú_winapiÚ
_sysconfigr   r«   Úconfig_varsrM   r1   r2   r4   r   r�   r@   ÚGetModuleFileNamer¶   ÚbasenameÚ_PY_VERSION_SHORT_NO_DOTÚdirnameÚ
executable)rv   r½   r¾   r¶   s       r%   Ú_init_non_posixrÅ   �  s÷   € ó ÛÜ˜xÓ(€Dˆ�OÜ! ,Ó/€DˆÑÜ  Ó+€DˆÑð 	‡K�K�
×&Ñ&Ó(Ô)ä#¤B§G¡G§L¡L´Ð@PÓ1QÐSYÓ$ZÓ[€Dˆ�NÜŒs�K× Ñ Ø×-Ñ-¬c¯m©mÓ<ˆ	ÜŸ'™'×*Ñ*¬>¸)Ó+DÓEˆˆY‰Ø  ™Oˆˆ[ÑØ€Dˆ�KÜ.€Dˆ�OÜ—W‘W—_‘_¤^´C·N±NÓ%CÓD€Dˆ�NØ€Dˆ‚Nr$   c                 ó¢  • Uc  0 nSSK nUR                  S5      nUR                  S5      n U R                  5       nU(       d   U$ UR                  U5      nU(       a5  UR	                  SS5      u  px U[
        ;   a  [        e[        U5      nX�U'   O+UR                  U5      nU(       a  SXR	                  S5      '   M”  ! [         a     N>f = f)z¼Parse a config.h-style file.

A dictionary containing name/value pairs is returned.  If an
optional dictionary is passed in as the second argument, it is
used instead of a new dictionary.
Nr   z"#define ([A-Z][A-Za-z0-9_]+) (.*)
z&/[*] #undef ([A-Z][A-Za-z0-9_]+) [*]/
r=   rQ   )ÚreÚcompileÚreadlineÚmatchÚgroupÚ_ALWAYS_STRr†   Úint)	Úfprv   rÇ   Ú	define_rxÚundef_rxÚlineÚmÚnÚvs	            r%   r   r   «  sÍ   € ð �|ØˆÛØ—
‘
Ð@ÓA€IØ�z‰zÐCÓD€Hà
Ø�{‰{‹}ˆÞØð €Kð �O‰O˜DÓ!ˆÞØ—7‘7˜1˜a“=‰DˆAðØœÓ#Ü$Ð$Ü˜“F�ð �ŠGà—‘˜tÓ$ˆAÞØ#$�—W‘W˜Q“ZÑ ñ# øô ó Ùðús   Á4C Ã
CÃCc                  ó  • [         (       aI  [        R                  S:X  a.  [        R                  R	                  [
        R                  5      n O[        n O[        SS5      n [        R                  R                  U S5      $ )zReturn the path of pyconfig.h.r   r   r   z
pyconfig.h)
r�   r1   rB   r2   rÃ   r@   Ú_base_executablerY   r   r4   )Úinc_dirs    r%   r   r   Í  sP   € ç‚}Ü�7‰7�d‹?Ü—g‘g—o‘o¤c×&:Ñ&:Ó;‰Gä#‰Gä˜=¨.Ó9ˆÜ�7‰7�<‰<˜ Ó.Ð.r$   c                  ó2   • [        [        [        5      5      $ )z,Return a tuple containing the schemes names.)ÚtupleÚsortedrs   r#   r$   r%   r   r   Ù  s   € ä”Ô(Ó)Ó*Ð*r$   c                  ó   • [         $ )z*Return a tuple containing the paths names.)Ú_SCHEME_KEYSr#   r$   r%   r	   r	   Þ  s   € äÐr$   Tc                 ó8   • U(       a  [        X5      $ [        U    $ )z¤Return a mapping containing an install scheme.

``scheme`` is the install scheme name. If not provided, it will
return the default scheme for the current platform.
)rx   rs   )ru   rv   Úexpands      r%   r
   r
   ã  s   € ö Ü˜FÓ)Ð)ä Ñ'Ð'r$   c                 ó    • [        XU5      U    $ )zSReturn a path corresponding to the scheme.

``scheme`` is the install scheme name.
)r
   )rB   ru   rv   rÞ   s       r%   r   r   ï  s   € ô
 �V 6Ó*¨4Ñ0Ð0r$   c                  ór  • 0 q [        R                  R                  [        R
                  5      n [        R                  R                  [        R                  5      nU [         S'   U[         S'   [        [         S'   [        [         S'   [        [         S'   [        [         S'   U [         S'   [        [         S'   U[         S	'   [        [         S
'   [        R                  [         S'   [        5       [         S'   [        5       R                  5       [         S'    [        R                   [         S'    [        R$                  R'                  SS5      [         S'   [        R(                  S:X  a&  [+        [         5        [        R,                  [         S'   [        R(                  S:X  a  [/        [         5        [0        (       a  [3        5       [         S'   [         R5                  S5      (       a  SOS[         S'   [7        S5      nU(       a  SU-   [         S'   O	S[         S'   [         R5                  S[        5      n[        R(                  S:X  ay  [8        (       aG  [        R                  R;                  [=        5       5      n[        R                  R?                  XC5      nO'[        R                  R;                  [=        5       5      n[A        U5      [         S'   [        RB                  S:X  a  SS K"nURG                  [         5        Sq$g ! ["         a    S[         S'    GNíf = f! ["         a    S[         S'    GNßf = f) Nrz   Úexec_prefixÚ
py_versionÚpy_version_shortÚpy_version_nodotr³   rF   Úinstalled_platbaseÚplatbaseÚprojectbaserp   r’   Úimplementation_lowerrŒ   r•   r<   Úpy_version_nodot_platr   ÚVPATHrr   ÚuserbaseÚPy_GIL_DISABLEDÚtÚ
abi_threadÚ	MULTIARCHÚ/ÚmultiarchsubdirÚsrcdirr:   r   T)%Ú_CONFIG_VARSr1   r2   rt   r@   rz   rá   Ú_PY_VERSIONr‘   rÂ   Ú_BASE_PREFIXÚ_BASE_EXEC_PREFIXrY   rp   r&   ÚlowerrŒ   ra   ÚwinverÚreplacerB   rÅ   Ú_vpathr®   Ú_HAS_USER_BASErG   r?   r   r�   rÃ   r   r4   rM   rA   Ú_osx_supportÚcustomize_config_varsÚ_CONFIG_VARS_INITIALIZED)Ú_PREFIXÚ_EXEC_PREFIXrš   rò   rF   rü   s         r%   Ú_init_config_varsr  ÷  sm  € à€Lô �g‰g×ÑœsŸz™zÓ*€GÜ—7‘7×#Ñ#¤C§O¡OÓ4€LØ$„L�ÑØ".„L�ÑÜ!,„L�ÑÜ'8„LÐ#Ñ$Ü'?„LÐ#Ñ$Ü%1„LÐ!Ñ"Ø"„L�ÑÜ):„LÐ%Ñ&Ø+„L�ÑÜ"/„L�ÑÜ!$§¡„L�ÑÜ%8Ó%:„LÐ!Ñ"Ü+>Ó+@×+FÑ+FÓ+H„LÐ'Ñ(ð&Ü#&§<¡<Œ�ZÑ ð3Ü03·
±
×0BÑ0BÀ3ÈÓ0KŒÐ,Ñ-ô 
‡w�w�$ƒÜœÔ%Ü #§
¡
Œ�WÑÜ	‡w�w�'ÓÜ”LÔ!ß‚~ô $0£>Œ�ZÑ ô )5×(8Ñ(8Ð9J×(KÑ(K¡ÐQS„L�Ñä˜{Ó+€IÞØ*-°	©/ŒÐ&Ò'à*,ŒÐ&Ñ'ô ×Ñ˜h¬Ó6€FÜ	‡w�w�'ÓßŠ=ô —7‘7—?‘?Ô#8Ó#:Ó;ˆDÜ—W‘W—\‘\ $Ó/‰Fô —W‘W—_‘_Ô%:Ó%<Ó=ˆFÜ+¨FÓ3„L�Ñô ‡|�|�xÓÛØ×*Ñ*¬<Ô8ð  $Ñøôi ó &à#%Œ�ZÔ ð&ûô
 ó 3Ø02ŒÐ,Ô-ð3ús$   ÄL Ä/'L ÌLÌLÌL6Ì5L6c                  óÀ  • [         (       d!  [           [        c
  [        5         SSS5        OS[        S   [        R
                  R                  [        R                  5      :w  a  [           Sq [        5         SSS5        U (       a1  / nU  H'  nUR                  [        R                  U5      5        M)     U$ [        $ ! , (       d  f       NL= f! , (       d  f       N]= f)aV  With no arguments, return a dictionary of all configuration
variables relevant for the current platform.

On Unix, this means every variable defined in Python's installed Makefile;
On Windows it's a much smaller set.

With arguments, return a list of values that result from looking up
each argument in the configuration variable dictionary.
NrF   F)rþ   Ú_CONFIG_VARS_LOCKró   r  r1   r2   rt   r@   rz   Úappendr?   )r5   ÚvalsrB   s      r%   r   r   E  s¡   € ÷ $Ò#Þô
 Ñ#Ü!Ô#÷ Ðô ˜Ñ¤2§7¡7×#3Ñ#3´C·J±JÓ#?Ó?Þ"Ø+0Ð(Ü!Ô#÷ #ö ØˆÛˆDØ�K‰Kœ×(Ñ(¨Ó.Ö/ñ àˆäÐ÷/ Õú÷ #Õ"ús   ’B>Á+CÂ>
CÃ
Cc                 ó4   • [        5       R                  U 5      $ )z‡Return the value of a single variable using the dictionary returned by
'get_config_vars()'.

Equivalent to get_config_vars().get(name)
)r   r?   )rB   s    r%   r   r   m  s   € ô Ó× Ñ  Ó&Ð&r$   c                  ó‚  • [         R                  S:X  ay  S[        R                  R	                  5       ;   a  gS[        R                  R	                  5       ;   a  gS[        R                  R	                  5       ;   a  g[        R
                  $ [         R                  S:w  d  [        [         S	5      (       d  [        R
                  $ S
[         R                  ;   a  [         R                  S
   $ [         R                  " 5       u  pp#nU R	                  5       R                  SS5      n UR                  SS5      nUR                  SS5      nU SS S:X  a4  [        R
                  S:X  a  Sn [        S5      nSSSSS.U   nGO6U  SU 3$ U SS S:X  aC  US   S:¼  a9  Sn [        US   5      S-
   SUS S  3nS!S"S#.nUSU[        R                      3-  nOãU SS S$:X  a  SS%KJn  U" 5       $ U SS& S':X  a@  S'n SSKnUR!                  S(5      nUR#                  U5      n	U	(       a  U	R%                  5       nO„U SS& S):X  a{  [        R
                  S*:X  aE  ['        5       R)                  S+S,5      n[        R
                  n [        R*                  R,                  nO"SSKn
U
R1                  ['        5       XU5      u  pnU  SU SU 3$ )-aó  Return a string that identifies the current platform.

This is used mainly to distinguish platform-specific build directories and
platform-specific built distributions.  Typically includes the OS name and
version and the architecture (as supplied by 'os.uname()'), although the
exact information included depends on the OS; on Linux, the kernel version
isn't particularly important.

Examples of returned values:
   linux-i586
   linux-alpha (?)
   solaris-2.6-sun4u

Windows will return one of:
   win-amd64 (64-bit Windows on AMD64 (aka x86_64, Intel64, EM64T, etc)
   win-arm64 (64-bit Windows on ARM64 (aka AArch64)
   win32 (all others - specifically, sys.platform is returned)

For other non-POSIX platforms, currently just returns 'sys.platform'.

r   Úamd64z	win-amd64z(arm)z	win-arm32z(arm64)z	win-arm64rr   ÚunameÚ_PYTHON_HOST_PLATFORMrð   r•   Ú r˜   r�   Né   ÚlinuxÚandroidÚANDROID_API_LEVELÚx86_64Úx86Ú	arm64_v8aÚarmeabi_v7a)r  Úi686Úaarch64Úarmv7lÚsunosr   Ú5Úsolarisé   r<   rQ   Ú32bitÚ64bit)iÿÿÿl   ÿÿÿÿ Úaix)Úaix_platformé   Úcygwinz[\d.]+r:   r)   r   z13.0)r1   rB   r@   Úversionr÷   rA   r�   r>   r	  rù   r   rÍ   ÚmaxsizeÚ_aix_supportr  rÇ   rÈ   rÊ   rË   r   r?   r’   rŽ   rü   Úget_platform_osx)ÚosnameÚhostÚreleaser!  ÚmachineÚbitnessr  rÇ   Úrel_rerÒ   rü   s              r%   r   r   v  s—  € ô, 
‡w�w�$ƒØ”c—k‘k×'Ñ'Ó)Ó)ØØ”c—k‘k×'Ñ'Ó)Ó)ØØœŸ™×)Ñ)Ó+Ó+ØÜ�|‰|Ðä	‡w�w�'Ó¤¬¨W×!5Ñ!5ä�|‰|Ðð ¤"§*¡*Ó,Ü�z‰zÐ1Ñ2Ð2ô /1¯hªh«jÑ+€F�' Gð �\‰\‹^×#Ñ# C¨Ó,€FØ�o‰o˜c 3Ó'€GØ�o‰o˜c 3Ó'€Gàˆbˆq€z�WÓÜ�<‰<˜9Ó$ØˆFÜ$Ð%8Ó9ˆGð #ØØ&Ø'ñ	ð
 ñŠGð �h˜a ˜yÐ)Ð)Ø	��ˆ�wÓ	Ø�1‰:˜ÓØˆFÜ˜W Q™Z›¨1Ñ,Ð-¨Q¨w°q°r¨{¨mÐ<ˆGð #*¸wÑGˆGØ˜˜7¤3§;¡;Ñ/Ð0Ð1Ñ1ˆGøà	��ˆ�uÓ	Ý-Ù‹~ÐØ	��ˆ�xÓ	ØˆÛØ—‘˜IÓ&ˆØ�L‰L˜Ó!ˆÞØ—g‘g“iˆGøØ	��ˆ�xÓ	Ü�<‰<˜5Ó Ü%Ó'×+Ñ+Ð,HÈ&ÓQˆGÜ—\‘\ˆFÜ×(Ñ(×3Ñ3‰GãØ'3×'DÑ'DÜ0?Ó0AØ06Àó(JÑ$ˆF˜Wð ˆX�Q�w�i˜q  	Ð*Ð*r$   c                  ó   • [         $ r0   )r‘   r#   r$   r%   r   r   Ù  s   € ÜÐr$   c                  ó&   • [         [        S5      -   $ )Nrî   )r‘   r   r#   r$   r%   Ú_get_python_version_abir-  Ý  s   € Üœ~¨lÓ;Ñ;Ð;r$   c                 óú   • SSK nSnSn UR                  X05      =(       d    UR                  X@5      nU(       a>  UR                  5       u  pgU SU UR                  UR	                  S5      5      -   XS -   n O U $ Ms  )a�  Expand Makefile-style variables -- "${foo}" or "$(foo)" -- in
'string' according to 'vars' (a dictionary mapping variable names to
values).  Variables not present in 'vars' are silently expanded to the
empty string.  The variable values in 'vars' should not contain further
variable expansions; if 'vars' is the output of 'parse_makefile()',
you're fine.  Returns a variable-expanded version of 's'.
r   Nz\$\(([A-Za-z][A-Za-z0-9_]*)\)z\${([A-Za-z][A-Za-z0-9_]*)}r=   )rÇ   ÚsearchÚspanr?   rË   )rb   rv   rÇ   Ú_findvar1_rxÚ_findvar2_rxrÒ   ÚbegÚends           r%   Úexpand_makefile_varsr5  á  sy   € ó à3€LØ1€Lð Ø�I‰I�lÓ&×D¨"¯)©)°LÓ*DˆÞØŸ™›‰JˆSØ�!�C�˜4Ÿ8™8 A§G¡G¨A£JÓ/Ñ/°!°D°'Ñ9‰AàØ€Hñ r$   r0   )BÚ__doc__r1   r@   Ú	threadingÚos.pathr   Ú__all__rÌ   rs   rB   r&   rG   rû   rÜ   r!  Úsplitrô   rD   r‘   rÂ   r2   rt   r€   rõ   Úbase_exec_prefixrö   ÚRLockr  ró   rþ   Ú
_USER_BASErM   rÄ   rÃ   rY   Úgetcwdr™   Ú	_sys_homeÚ
startswithr>   r\   r�   ru   re   rn   rx   r„   r‡   r‰   r   r›   r®   rÅ   r   r   r   r	   r
   r   r  r   r   r   r   r-  r5  r#   r$   r%   Ú<module>rA     s  ðÙ 3ã 	Û 
Û Ý ò€ð  !Øð€ð gØdØbØoàYà]ØØñ
ð BØ?Ø5Ø9àIàMØØñ
ð BØ?ØLØPàIàMØ%Øñ
ð @Ø9Ø6Ø6ØDØHØØñ	
ð )Ø"Ø-Ø-Ø-Ø1Ø#Øñ	
ð: gØdØbØoàYà]ØØñ
ð )Ø"Ø-Ø-Ø-Ø1Ø#Øñ	
ñoaÐ ðH ‡7�7ˆdƒ?Ø/°	Ñ:Ð�VÒà/°Ñ=Ð�VÑòò
#ñ, “.¨Ð,€æØð KØNØYØYØSØSØ ñð eØhØjØjØ`Ø'Ø ñð >ØAØLØLØTØ'Ø ññ)ñ Ðð>#€ð �k‰k×ÑÓ! !Ñ$€Ø×'Ñ'¨Ñ*Ð+¨1¨S×-=Ñ-=¸aÑ-@Ð,AÐBÐ Ø!×.Ñ.¨qÑ1Ð2°3×3CÑ3CÀAÑ3FÐ2GÐHÐ Ø�w‰w×Ñ §¡Ó0€Ø—G‘G×$Ñ$ S×%9Ñ%9Ó:Ð à—O’OÓ%Ð Ø€à Ð Ø€
òð ‡>‡>Ø—G‘G—O‘O¡N°3·>±>Ó$BÓC�Mñ # 2§9¢9£;Ó/€Mñ
 �C˜ $Ó'€	ÞØ€Mà‡7�7ˆdƒ?ñ �mÓ$×/Ñ/Ù˜l˜^¨9Ð5Ó6÷8ñ 8à$ˆð ˜RŸZ™ZÓ'Ù" 2§:¡:Ð.DÑ#EÓF€Môñ"  Ó!€æÛMˆð
 " &Ñ)ˆØ" 9Ñ-ˆˆyÑØ.ˆˆyÑØ 1ˆˆ}Óñ Nð 	ò5ò!òò$ò@	ò*ò
Iòò!ò*ô6òD	/ò+ò
ñ
 (Ó)°¸Tô 	(ñ -Ó.°TÀ$ô 1òK$ò\%òP'ò`+òFò<ór$   