+
    SBi                       R t ^ RIHt ^ RIt^ RIt^ RIt^ RIt^ RIHt ^ RI	H
t
 ^ RIHt ^ RIHt ^RIHt ^RIHtHt ^R	IHt ^R
IHtHtHtHtHtHt ^RIHt ^RIH t H!t!H"t" ^RI#H$t$H%t%H&t& ]PN                  ! R4      t( ! R R]4      t)R# )zdistutils.command.build_ext

Implements the Distutils 'build_ext' command, for building extension
modules (currently limited to C extensions, should accommodate C++
extensions ASAP).)annotationsN)Callable)log)	USER_BASE)ClassVar)newer_group)new_compilershow_compilers)Command)CCompilerErrorCompileErrorDistutilsErrorDistutilsOptionErrorDistutilsPlatformErrorDistutilsSetupError)	Extension)customize_compilerget_config_h_filenameget_python_version)get_platformis_freethreadedis_mingwz3^[a-zA-Z_][a-zA-Z_0-9]*(\.[a-zA-Z_][a-zA-Z_0-9]*)*$c                     ] tR t^&t$ RtR]P                   R2tR4R5RRR]! 4        R23R6RR	R
],           3R7R8R9RRR],           3R:R;R<R=R>R?R@RARBRC.t	. RDOt
R]R&   RRR]3.tR]R&   R t]R 4       tR R ltR R ltR R ltR tR tR R  ltR! tR" t]P4                  R# 4       tR$ R% ltR& tR' tR( R) ltR* R+ lt R, R- lt!R. R/ lt"R0 t#R1 R2 lt$R3t%R# )E	build_extz8build C/C++ extensions (compile/link to build directory)z (separated by 'z')z
plat-name=pz;platform name to cross-compile for, if supported [default: ]zinclude-dirs=Iz.list of directories to search for header fileszlibrary-dirs=Lz.directories to search for external C librariesNzClassVar[list[str]]boolean_optionszhelp-compilerzlist available compilerszAClassVar[list[tuple[str, str | None, str, Callable[[], object]]]]help_optionsc                	,   R V n         R V n        R V n        R V n        RV n        R V n        R V n        R V n        R V n        R V n	        R V n
        R V n        R V n        R V n        R V n        R V n        R V n        R V n        R V n        R V n        R V n        R # )NF)
extensions	build_lib	plat_name
build_tempinplacepackageinclude_dirsdefineundef	librarieslibrary_dirsrpathlink_objectsdebugforcecompilerswigswig_cpp	swig_optsuserparallelselfs   &L/usr/lib/python3.14/site-packages/setuptools/_distutils/command/build_ext.pyinitialize_optionsbuild_ext.initialize_optionsp   s     
 
 

		    c              #  J  "   V P                  R4      '       g   R# V P                  '       d   Rx  R# \        P                  R8X  dF   V P                  R4      pV P                  R4      p\        P
                  P                  W4      x  R# V P                  R4      x  R# 5i)z
Resolve Python's library directory for building extensions
that rely on a shared Python library.

See python/cpython#44264 and python/cpython#48686
Py_ENABLE_SHAREDN.zosbase
platlibdirLIBDIR)get_config_varpython_buildsysplatformospathjoin)	sysconfiginstalled_dirlib_dirs   &  r8   _python_lib_dirbuild_ext._python_lib_dir   s      ''(:;;!!!I<<5  &44V<M..|<G'',,}66 **844s   +B#A5B#c                   V ^8  d   QhRR/#    returnNone )formats   "r8   __annotate__build_ext.__annotate__   s     IL IL$ ILr;   c           
     	   ^ RI Hp V P                  RRRRRRRR 4       V P                  f   V P                  P
                  V n        V P                  P                  V n        VP                  4       pVP                  RR7      pV P                  f&   V P                  P                  ;'       g    . V n	        \        V P                  \        4      '       d/   V P                  P                  \        P                  4      V n	        \        P                   \        P"                  8w  dH   V P                  P%                  \        P&                  P)                  \        P                   R4      4       V P                  P+                  VP                  \        P&                  P                  4      4       W28w  dC   V P                  P+                  VP                  \        P&                  P                  4      4       V P-                  R4       V P-                  R4       V P.                  f   . V n        V P0                  f	   . V n        MN\        V P0                  \        4      '       d/   V P0                  P                  \        P                  4      V n        V P2                  f	   . V n        MN\        V P2                  \        4      '       d/   V P2                  P                  \        P                  4      V n        \        P4                  R	8X  Ed4   \7        4       '       Eg#   V P0                  P%                  \        P&                  P)                  \        P                   R
4      4       \        P"                  \        P8                  8w  dH   V P0                  P%                  \        P&                  P)                  \        P"                  R
4      4       V P:                  '       d1   \        P&                  P)                  V P<                  R4      V n        M/\        P&                  P)                  V P<                  R4      V n        V P                  P%                  \        P&                  P?                  \A        4       4      4       V P0                  P%                  \        P"                  4       V PB                  R8X  d   RpMV PB                  R,          p\        P&                  P)                  \        P                   R4      pV'       d    \        P&                  P)                  WT4      pV P0                  P%                  V4       \        PD                  R,          R8X  d   VPF                  '       gZ   V P0                  P%                  \        P&                  P)                  \        P8                  RR\I        4       ,           R4      4       MV P0                  P%                  R4       V P0                  P+                  V PK                  V4      4       V PL                  '       d4   V PL                  P                  R4      pV Uu. uF  qwR3NK  	  upV n&        V PN                  '       d!   V PN                  P                  R4      V n'        V PP                  f	   . V n(        M V PP                  P                  R4      V n(        V PR                  '       d   \        P&                  P)                  \T        R4      p\        P&                  P)                  \T        R4      p	\        P&                  PW                  V4      '       d   V P                  P%                  V4       \        P&                  PW                  V	4      '       d7   V P0                  P%                  V	4       V P2                  P%                  V	4       \        V PX                  \        4      '       d    \[        V PX                  4      V n,        R# R# u upi   \\         d    \_        R4      hi ; i)!    )rJ   buildNT)plat_specificincluder*   r-   ntlibsDebugReleasewin32:   NNPCbuild:N   Ncygwinlibpythonconfigr>   ,1 zparallel should be an integer)r"   r"   )r$   r$   )r0   r0   )r.   r.   )r/   r/   )r5   r5   )r#   r#   )0	distutilsrJ   set_undefined_optionsr&   distributionext_packageext_modulesr!   get_python_incr'   
isinstancestrsplitrG   pathseprE   exec_prefixbase_exec_prefixappendrH   rI   extendensure_string_listr*   r+   r,   namer   prefixr.   r$   dirnamer   r#   rF   rD   r   rM   r(   r)   r3   r4   r   isdirr5   int
ValueErrorr   )
r7   rJ   
py_includeplat_py_includesuffixnew_libdefinessymboluser_includeuser_libs
   &         r8   finalize_optionsbuild_ext.finalize_options   sb   '""&($$&		
 <<,,88DL++77 --/
#222F$ $ 1 1 > > D D"Dd''-- $ 1 1 7 7

 CD ??c222$$RWW\\#//9%MN 	  !1!1"''//!BC($$_%:%:277??%KL,/ >>!DN$ "D))3// $ 1 1 7 7

 CD::DJ

C(())"**5DJ
 77d?8:: $$RWW\\#//6%JK##szz1!!((c6J6JF)STzzz"$'',,t"H"$'',,t	"J $$RWW__5J5L%MN$$S%9%9: ~~(  +ggll3??I>G'',,w7$$W- <<x')))!!((GGLL

E86H6J+JH !!((-  !5!5i!@A ;;;kk'',G7>?wVC=w?DK
 :::))#.DJ>>!DN!^^11#6DN 99977<<	9=Lww||Iu5Hww}}\**!!((6ww}}X&&!!((2

!!(+dmmS))L #DMM 2 */ @4  L*+JKKLs   ?_/_4 4`c                   V ^8  d   QhRR/# rP   rT   )rU   s   "r8   rV   rW   ,  s     D  D T D r;   c                	   V P                   '       g   R # V P                  P                  4       '       dj   V P                  R4      pV P                  P                  VP                  4       ;'       g    . 4       V P                  P                  VP                  4       \        V P                  V P                  V P                  V P                  R7      V n        \        V P                  4       \         P"                  R8X  d?   V P$                  \'        4       8w  d&   V P                  P)                  V P$                  4       \         P"                  R8X  d-   \+        4       '       d   V P                  P-                  RR4       V P.                  e&   V P                  P1                  V P.                  4       V P2                  e1   V P2                   F   w  r#V P                  P-                  W#4       K"  	  V P4                  e/   V P4                   F  pV P                  P7                  V4       K   	  V P                  e&   V P                  P9                  V P                  4       V P                  e&   V P                  P;                  V P                  4       V P<                  e&   V P                  P?                  V P<                  4       V P@                  e&   V P                  PC                  V P@                  4       V PE                  4        R # )N
build_clib)r0   verbosedry_runr/   r]   Py_GIL_DISABLEDrj   )#r!   rn   has_c_librariesget_finalized_commandr*   ry   get_library_namesr+   rx   r   r   r0   r   r   r/   r   rG   r{   r#   r   
initializer   define_macror'   set_include_dirsr(   r)   undefine_macroset_librariesset_library_dirsr,   set_runtime_library_dirsr-   set_link_objectsbuild_extensions)r7   r   r{   valuemacros   &    r8   runbuild_ext.run,  s    
 ,,..33LAJNN!!*">">"@"F"FBG$$Z%:%:; %]]LLLL**	
 	4==) 77d?t~~?MM$$T^^4
 77d?00MM&&'8#> (MM**4+<+<=;;"#{{**47  +::!,,U3 $>>%MM''7(MM**4+<+<=::!MM224::>(MM**4+<+<= 	r;   c                   V ^8  d   QhRR/# rP   rT   )rU   s   "r8   rV   rW   r  s     V  V 4 V r;   c                d   \        V\        4      '       g   \        R4      h\        V4       EF  w  r#\        V\        4      '       d   K  \        V\
        4      '       d   \        V4      ^8w  d   \        R4      hVw  rE\        P                  ! RV4       \        V\        4      '       d   \        P                  V4      '       g   \        R4      h\        V\        4      '       g   \        R4      h\	        WER,          4      pR F&  pVP                  V4      pVf   K  \        W6V4       K(  	  VP                  R4      Vn        R	V9   d   \        P                  ! R
4       VP                  R4      pV'       d   . Vn        . Vn        V F  p	\        V	\
        4      '       d   \        V	4      R9   g   \        R4      h\        V	4      ^8X  d%   VP"                  P%                  V	^ ,          4       Kh  \        V	4      ^8X  g   Kz  VP                   P%                  V	4       K  	  W1V&   EK  	  R# )at  Ensure that the list of extensions (presumably provided as a
command option 'extensions') is valid, i.e. it is a list of
Extension objects.  We also support the old-style list of 2-tuples,
where the tuples are (ext_name, build_info), which are converted to
Extension instances here.

Raise DistutilsSetupError if the structure is invalid anywhere;
just returns otherwise.
z:'ext_modules' option must be a list of Extension instanceszMeach element of 'ext_modules' option must be an Extension instance or 2-tuplezvold-style (ext_name, build_info) tuple found in ext_modules for extension '%s' -- please convert to Extension instancezRfirst element of each tuple in 'ext_modules' must be the extension name (a string)zOsecond element of each tuple in 'ext_modules' must be a dictionary (build info)sourcesNr,   def_filez9'def_file' element of build info dict no longer supportedmacrosz9'macros' element of build info dict must be 1- or 2-tuple)r'   r+   r*   extra_objectsextra_compile_argsextra_link_args)   rQ   )rr   listr   	enumerater   tuplelenr   warningrs   extension_name_rematchdictgetsetattrruntime_library_dirsdefine_macrosundef_macrosrx   )
r7   r!   iextext_name
build_infokeyvalr   r   s
   &&        r8   check_extensions_listbuild_ext.check_extensions_listr  s    *d++%L   
+FA#y)) c5))SX])4 
 $' HKK: 	 x--2C2I2I(2S2S)< 
 j$//)8  H&;<C !nnS)?Cc* (2~~g'>C$Z'WX  ^^H-F$&!#% #E&ue44Uv9M1W  5zQ((//a9Uq))007 $  qMO ,r;   c                	    V P                  V P                  4       . pV P                   F  pVP                  VP                  4       K   	  V# N)r   r!   ry   r   )r7   	filenamesr   s   &  r8   get_source_filesbuild_ext.get_source_files  sA    ""4??3	 ??CS[[) #r;   c                	    V P                  V P                  4       V P                   Uu. uF  qP                  VP                  4      NK  	  up# u upi r   )r   r!   get_ext_fullpathr{   r7   r   s   & r8   get_outputsbuild_ext.get_outputs  sB     	""4??3
 <@??K?C%%chh/?KKKs   #Ac                   V ^8  d   QhRR/# rP   rT   )rU   s   "r8   rV   rW     s     , ,$ ,r;   c                	    V P                  V P                  4       V P                  '       d   V P                  4        R # V P	                  4        R # r   )r   r!   r5   _build_extensions_parallel_build_extensions_serialr6   s   &r8   r   build_ext.build_extensions  s5    ""4??3===++-))+r;   c           
     	`   V P                   pV P                   R J d   \        P                  ! 4       p ^ RIHp Vf   V P                  4        R# X! VR7      ;_uu_ 4       pV P                   Uu. uF  qCP                  V P                  V4      NK   	  pp\        V P                  V4       F7  w  rFV P                  V4      ;_uu_ 4        VP                  4        RRR4       K9  	  RRR4       R#   \
         d    Rp Li ; iu upi   + '       g   i     Kn  ; i  + '       g   i     R# ; i)T)ThreadPoolExecutorN)max_workers)r5   rG   	cpu_countconcurrent.futuresr   ImportErrorr   r!   submitbuild_extensionzip_filter_build_errorsresult)r7   workersr   executorr   futuresfuts   &      r8   r   $build_ext._build_extensions_parallel  s    --==D llnG	= ?))+G44FJooFUs 4 4c:o    9..s33JJL 43 :	 54  	G	 433 544sG   C0  D/$D6D	DD0D ?D DD	DD-	c                	    V P                    F6  pV P                  V4      ;_uu_ 4        V P                  V4       R R R 4       K8  	  R #   + '       g   i     KM  ; ir   )r!   r   r   r   s   & r8   r   "build_ext._build_extensions_serial  sA    ??C**3//$$S) 0/ #///s   A		Ac              #  	   "    R x  R #   \         \        \        3 d@   pTP                  '       g   h T P	                  RTP
                   RT 24        R p?R # R p?ii ; i5i)Nzbuilding extension "z
" failed: )r   r   r   optionalwarnr{   )r7   r   es   && r8   r   build_ext._filter_build_errors   sS     	F= 	F<<<II,SXXJjDEE	Fs*   A"
 A"A4AA"AA"c                   V ^8  d   QhRR/# rP   rT   )rU   s   "r8   rV   rW   	  s     O
 O
d O
r;   c                	   VP                   pVe   \        V\        \        34      '       g   \	        RVP
                   R24      h\        V4      pV P                  VP
                  4      pW!P                  ,           pV P                  '       g6   \        WCR4      '       g$   \        P                  ! RVP
                  4       R # \        P                  ! RVP
                  4       V P                  W!4      pVP                  ;'       g    . pVP                   R,          pVP"                   F  pVP%                  V34       K  	  V P&                  P)                  VV P*                  VVP,                  V P                  VVP                  R7      pVR,          V n        VP0                  '       d   VP3                  VP0                  4       VP4                  ;'       g    . pVP6                  ;'       g    V P&                  P9                  V4      p	V P&                  P;                  VVV P=                  V4      VP>                  VP@                  VV PC                  V4      V P                  V P*                  V	R7
       R # )	Nz$in 'ext_modules' option (extension 'zD'), 'sources' must be present and must be a list of source filenamesnewerz$skipping '%s' extension (up-to-date)zbuilding '%s' extension:NNN)
output_dirr   r'   r.   extra_postargsdepends)r*   r+   r   r   export_symbolsr.   r$   target_lang)"r   rr   r   r   r   r{   sortedr   r   r/   r   r   r.   infoswig_sourcesr   r   r   rx   r0   compiler$   r'   _built_objectsr   ry   r   languagedetect_languagelink_shared_objectget_librariesr+   r   get_export_symbols)
r7   r   r   ext_pathr   
extra_argsr   r)   objectsr   s
   &&        r8   r   build_ext.build_extension	  s   ++?*WtUm"D"D%6sxxj A- -  /((2KK'


k'WEEII<chhGHH.9
 ##G1  ++11r
""1%%%EMM5(# & --''))**%KK ( 
 &aj
 NN3,,-((..B
 <<II4==#@#@#I((((-))!$!9!9%2237**  	) 	
r;   c                   . p. p/ pV P                   '       d   \        P                  ! R4       V P                   '       g#   RV P                  9   g   RVP                  9   d   RpMRpV Fy  p\        P
                  P                  V4      w  rV	R8X  d>   VP                  VR,           V,           4       VP                  V4       VR
,          WW&   Kh  VP                  V4       K{  	  V'       g   V# V P                  ;'       g    V P                  4       p
V
R.pVP                  V P                  4       V P                   '       d   VP                  R4       V P                  '       g   VP                  VP                  4       V F<  pWW,          p\        P                  ! RW|4       V P                  VR	W.,           4       K>  	  V# )zWalk the list of source files in 'sources', looking for SWIG
interface (.i) files.  Run SWIG on all that are found, and
return a modified 'sources' list with SWIG source files replaced
by the generated C (or C++) files.
z/--swig-cpp is deprecated - use --swig-opts=-c++z-c++z.cppz.cz.i_wrapz-pythonzswigging %s to %sz-o)r2   r   r   r3   rG   rH   splitextrx   r1   	find_swigry   r   spawn)r7   r   	extensionnew_sourcesr   swig_targets
target_extsourcer@   r   r1   swig_cmdtargets   &&&          r8   r   build_ext.swig_sourcesZ  sn     ===KKIJ MMM$..()---JJF''**62KTd{""4'>J#>?##F+'22$""6*  yy,,DNN,)$'===OOF# ~~~OOI//0"F!)FHH(&9JJx4"889 #
 r;   c                B   \         P                  R8X  d   R# \         P                  R8X  dX   R FO  p\         P                  P                  RV 2R4      p\         P                  P	                  V4      '       g   KM  Vu # 	  R# \        R\         P                   R24      h)	zReturn the name of the SWIG executable.  On Unix, this is
just "swig" -- it should be in the PATH.  Tries a bit harder on
Windows.
posixr1   r]   zc:\swigzswig.exez;I don't know how to find (much less run) SWIG on platform '')z1.3z1.2z1.1)rG   r{   rH   rI   isfiler   )r7   versfns   &  r8   r   build_ext.find_swig  s    
 77gWW_ .WW\\HTF"3Z@77>>"%%I .
 "(MbggYVWX r;   c                    V ^8  d   QhRRRR/# rQ   r   rs   rR   rT   )rU   s   "r8   rV   rW     s     3 3 3 3r;   c                $   V P                  V4      pVP                  R4      pV P                  VR,          4      pV P                  '       gT   \        P
                  P                  ! VRR V.,           !  p\        P
                  P                  V P                  V4      # RP                  V^ R 4      pV P                  R4      p\        P
                  P                  VP                  V4      4      p\        P
                  P                  Wt4      # )zReturns the path of the filename for a given extension.

The file is located in `build_lib` or directly in the package
(inplace option).
r>   Nbuild_pyr   )get_ext_fullnamert   get_ext_filenamer%   rG   rH   rI   r"   r   abspathget_package_dir)r7   r   fullnamemodpathfilenamer&   r  package_dirs   &&      r8   r   build_ext.get_ext_fullpath  s     ((2..%((5||| ww||WSb\XJ%>?H77<<99 ((71R=)--j9ggooh&>&>w&GH ww||K22r;   c                    V ^8  d   QhRRRR/# r  rT   )rU   s   "r8   rV   rW     s     1 1 1 1r;   c                V    V P                   f   V# V P                   R,           V,           # )zKReturns the fullname of a given extension name.

Adds the `package.` prefixr>   )r&   )r7   r   s   &&r8   r  build_ext.get_ext_fullname  s'     <<O<<#%00r;   c                    V ^8  d   QhRRRR/# r  rT   )rU   s   "r8   rV   rW     s     	4 	4 	4 	4r;   c                    ^RI Hp VP                  R4      pV! R4      p\        P                  P
                  ! V!  V,           # )zConvert the name of an extension (eg. "foo.bar") into the name
of the file from which it will be loaded (eg. "foo/bar.so", or
"foo\bar.pyd").
rC   r>   
EXT_SUFFIX)rJ   rC   rt   rG   rH   rI   )r7   r   rC   r   
ext_suffixs   &&   r8   r  build_ext.get_ext_filename  s7    
 	/>>#&#L1
ww||X&33r;   c                    V ^8  d   QhRRRR/# rQ   r   r   rR   z	list[str]rT   )rU   s   "r8   rV   rW     s     " "i "I "r;   c                j   V P                  V4      p VP                  R4       RV,           pRV,           pWAP
                  9  d   VP
                  P                  V4       VP
                  #   \         d;    RTP                  R4      P                  RR4      P	                  R4      ,           p Li ; i)zReturn the list of symbols that a shared extension has to
export.  This either uses 'ext.export_symbols' or, if it's not
provided, "PyInit_" + module_name.  Only relevant on Windows, where
the .pyd file (DLL) must export the module "PyInit_" function.
ascii_U_punycode   -   _PyInit)_get_module_name_for_symbolencodeUnicodeEncodeErrorreplacedecoder   rx   )r7   r   r{   r   initfunc_names   &&   r8   r   build_ext.get_export_symbols  s     //4	  KK  4ZF 6) 2 22%%m4!!! " 	XDKK
3;;D$GNNwWWF	Xs   A- -AB21B2c                	    VP                   P                  R 4      pVR,          R8X  d   \        V4      ^8  d
   VR,          # VR,          # )r>   __init__r   )r{   rt   r   )r7   r   partss   && r8   r0  %build_ext._get_module_name_for_symbol  s@     s#9
"s5zQ9Ryr;   c                    V ^8  d   QhRRRR/# r'  rT   )rU   s   "r8   rV   rW     s     5 5 5y 5r;   c                   \         P                  R8X  d   \        4       '       g   ^RIHp \        V P                  V4      '       gn   RpV P                  '       d
   VR,           pV\         P                  ^,	          \         P                  ^,	          ^,          3,          pVP                  V.,           #  VP                  # ^RI
Hp RpV! R4      '       dv   \        \         R4      '       d   R	pM\\         P                  R
8X  g   \        4       '       d   R	pM4R\        P                  9   d    V! R4      ^ 8w  d   R	pMV! R4      R
8X  d   R	pV'       d$   V! R4      pVP                  RV,           .,           # VP                  # )zReturn the list of libraries to link against when building a
shared extension.  On most platforms, this is just 'ext.libraries';
on Windows, we add the Python library (eg. python20.dll).
ra   )MSVCCompilerz
python%d%d_dr"  Fr=   getandroidapilevelTre   _PYTHON_HOST_PLATFORMANDROID_API_LEVELMACHDEP	LDVERSIONrg   )rE   rF   r   _msvccompilerr>  rr   r0   r.   
hexversionr*   rJ   rC   hasattrrG   environ)r7   r   r>  template	pythonlibrC   link_libpython	ldversions   &&      r8   r   build_ext.get_libraries  s1    <<7"8::4dmm\::':::'$H$NNb(^^r)T1( 	 }}	{22 ;P }}) 3"N0113 455%)N\\X-%)N,

:%&9:a?)-'	2h>)-*;7	}}9(<'===}}r;   )r   r"   r$   r0   r.   r(   r!   r/   r'   r%   r*   r+   r-   r&   r5   r#   r,   r1   r2   r3   r)   r4   )z
build-lib=bz(directory for compiled extension modules)zbuild-temp=tz1directory for temporary files (build by-products))r%   r   ziignore build-lib and put compiled extensions into the source directory alongside your pure Python modules)zdefine=DzC preprocessor macros to define)zundef=Uz!C preprocessor macros to undefine)z
libraries=lz!external C libraries to link with)zrpath=Rz7directories to search for shared C libraries at runtime)zlink-objects=Oz2extra explicit link objects to include in the link)r.   gz'compile/link with debugging information)r/   fz2forcibly build everything (ignore file timestamps))z	compiler=czspecify the compiler type)z	parallel=jznumber of parallel build jobs)swig-cppNz)make SWIG create C++ files (default is C))z
swig-opts=Nz!list of SWIG command line options)zswig=Nzpath to the SWIG executable)r4   Nz#add user include, library and rpath)r%   r.   r/   rY  r4   )&__name__
__module____qualname____firstlineno__descriptionrG   ru   sep_byr   user_optionsr   __annotations__r	   r   r9   staticmethodrM   r   r   r   r   r   r   r   r   
contextlibcontextmanagerr   r   r   r   r   r  r  r   r0  r   __static_attributes__rT   r;   r8   r   r   &   sj   LK(  

|2.FGQ%(+	
	
 <vE	

 	<<@<vE	

 	STAL7;GA6=K&LP,O(  
$ :NKWLS 0 5 50ILVD LV p	L,!**
 F FO
b6p0361	4"*5 5r;   r   )*__doc__
__future__r   rc  rG   rerE   collections.abcr   distutils._logr   siter   typingr   	_modifiedr   	ccompilerr   r	   corer
   errorsr   r   r   r   r   r   r  r   rJ   r   r   r   utilr   r   r   r   r   r   rT   r;   r8   <module>rr     sk    #  	 	 
 $    # 4   " U U : : JJUV F Fr;   