+
    VBiR                        R t ^ RIt]P                  ! ]]]]]]]]]]]]]]]R7       ^ RIt^ RIt^ RIt^ RIt^ RI	t	^ RI
t
^ RIt]P                  R@8  d   ^ RIHtHt R tR tM^ RIHt ^RIHt RAtRP,                  t]P0                  ! R	4      t]P4                  P6                  tR
],          t]P=                  R4      t ! R R4      t R t! ^ RIH"t# . t&R t'R t(R t)R t*R t+R t,R t-R t.RBR lt/R t0R t1R t2R t3](R  4       t4](R! 4       t5](R" 4       t6R# t7](R$ 4       t8]P0                  ! R%4      Pr                  t:](];! ]Px                  ! R&R']4      4      3R( l4       t=R) t>]P0                  ! R*4      P~                  t@RCR+ ltAR, tBRDR- ltCRDR. ltDR/ tER0 tFR1 tG]!RER2 l4       tHR3 tIR4 tJRFR5 ltKRR6]P                  R3R7 ltM ! R8 R94      tNR: tOR; tPR< tQR= tRR> tSR? tTR#   ]$ d    ^ RIH%t% ]%! RR7      t# EL&i ; i)Gz@
Cython -- Things that don't belong anywhere else in particular
N)ossysreioglobshutiltempfileupdate_wrapperpartialwrapscython_version_cache_function_function_caches_parse_file_version_match_file_encoding)r	   r
   c                 @     \        W4      #   \         d    T u # i ; iN)r	   AttributeError)wrapperwrappeds   &&1/usr/lib/python3.14/site-packages/Cython/Utils.py_update_wrapperr   "   s&    	!'33 	N	s   
 c                 $    \        \        V R 7      # )r   )r
   r   r   s   &r   r   r   (   s    88    r   )__version__z
__{}_cachez^__(.+)_cache$z/* Generated by Cython %s */zus-asciic                   6   a  ] tR t^;t o RtR tR tR tRtV t	R# )"_TryFinallyGeneratorContextManagerzW
Fast, bare minimum @contextmanager, only for try-finally, not for exception handling.
c                    Wn         R # r   _gen)selfgens   &&r   __init__+_TryFinallyGeneratorContextManager.__init__?   s    	r   c                ,    \        V P                  4      # r   )nextr!   r"   s   &r   	__enter__,_TryFinallyGeneratorContextManager.__enter__B       DIIr   c                b     \        V P                  4       R #   \        \        3 d     R # i ; ir   )r'   r!   StopIterationGeneratorExit)r"   exc_typeexc_valexc_tbs   &&&&r   __exit__+_TryFinallyGeneratorContextManager.__exit__E   s)    	O}- 		s    ..r    N)
__name__
__module____qualname____firstlineno____doc__r$   r)   r2   __static_attributes____classdictcell____classdict__s   @r   r   r   ;   s      r   r   c                 0   a  \        S 4      V 3R  l4       pV# )c                  &   < \        S! V / VB 4      # r   )r   )argskwargsgen_funcs   *,r   make_gen,try_finally_contextmanager.<locals>.make_genM   s    1(D2KF2KLLr   r   )rA   rB   s   f r   try_finally_contextmanagerrD   L   s     
8_M MOr   cache)	lru_cache)maxsizec                  @    \          F  p V P                  4        K  	  R # r   )r   cache_clearrE   s    r   clear_function_cachesrK   ]   s    ! "r   c                 R    \        V 4      p\        P                  V4       Wn        V# r   )r   r   appenduncached)fcfs   & r   cached_functionrQ   b   s$    		BBKIr   c              #     "   \        V 4       F2  p\        P                  V4      pVf   K  WP                  ^4      3x  K4  	  R# 5i)zThe function iterates over the attributes of the object and,
if it finds the name of the cache, it returns it and the corresponding method name.
The method may not be present in the object.
N)dir_CACHE_NAME_PATTERNmatchgroup)obj	attr_namerU   s   &  r   _find_cache_attributesrY   j   s<     
 X	#)))4[[^++ s
   %AAc                j    \        V 4       F#  w  r\        W4      '       g   K  \        W4       K%  	  R# )zZRemoves every cache found in the object,
if a corresponding method exists for that cache.
N)rY   hasattrdelattr)rW   
cache_namemethod_names   &  r   clear_method_cachesr_   u   s)     $:##>
3$$C$ $?r   c                 B   a a \        S P                  4      oVV 3R  lpV# )c                    < \        V SR 4      pVf   / p\        V SV4       W9   d	   W!,          # S! V .VO5!  ;q2V&   V# r   )getattrsetattr)r"   r?   rF   resr]   rO   s   &*  r   r   cached_method.<locals>.wrapper   sM    j$/=ED*e,=;dNTN*Dk
r   )_build_cache_namer4   )rO   r   r]   s   f @r   cached_methodrg      s    "1::.J Nr   c                 T    \         P                  P                  V 4      w  r#W!,           # r   )r   pathsplitext)ri   newsufbase_s   &&  r   replace_suffixrn      s     ggt$GD=r   c                     \         P                  P                  V 4      '       d   \         P                  ! V 4       \	        V R RR7      # )wUTF-8)encoding)r   ri   existsunlinkopenri   s   &r   open_new_filerw      s3    	ww~~d 			$ cG,,r   c                 *   \        V R RR7      '       g   R#  \        V 4      pVP                  R4       VP                  4        V'       d6   \        P
                  ! WP                  VP                  ^,
          34       R# R#   \         d     R# i ; i)TF)allow_failedif_not_foundNzN#error Do not use this file, it is the result of a failed Cython compilation.
)	is_cython_generated_filerw   writecloser   utimest_atimest_mtimeOSError)ri   strO   s   && r   castrate_filer      sy    
 $Dt%PP	9$ 	
]	_		HHTKKQ78   s   B BBTc                    R pRp\         P                  P                  V 4      '       d9    \        V R4      ;_uu_ 4       pVP	                  \        V4      4      pRRR4       Vf   V# VP                  R4      ;'       g    T;'       d    WC8H  ;'       g    V'       * #   + '       g   i     LL; i  \         d     L\i ; i)sM   #error Do not use this file, it is the result of a failed Cython compilation.Nrbs   /* Generated by Cython )r   ri   rs   ru   readlenr   
startswith)ri   ry   rz   failure_markerfile_contentrO   s   &&&   r   r{   r{      s    eNL	ww~~d	dD!!Q vvc.&9: "
  	 :; 	 			8	8,8	 	  "! 		s.   B1 BB1 B.	)B1 .B1 1B?>B?c                 N   R p\         P                  P                  V 4      '       d=    \        V R4      ;_uu_ 4       pVP	                  \        \        4      4      pRRR4       T;'       d    VP                  \        4      #   + '       g   i     L/; i  \         d     L?i ; i)r   r   N)	r   ri   rs   ru   r   r   GENERATED_BY_MARKER_BYTESr   r   )ri   r   rO   s   &  r   file_generated_by_this_cythonr      s}    L	ww~~d	dD!!Q vvc*C&DE " NNL334MNN	 "! 		s.   B BB B	B B B$#B$c                      \        V 4      pW!8  # r   )modification_time)ri   timeftimes   && r   file_newer_thanr      s    d#E<r   c                      \         P                  ! V 4       R #   \         d+    \         P                  P	                  T 4      '       g   h  R # i ; ir   )r   makedirsr   ri   isdirrv   s   &r   safe_makedirsr      s=    
D ww}}T"" #s    /A
AAc                $   \         P                  P                  V\         P                  P                  V 4      4      p \	        V4      p\        W4      '       g   R#  \        P                  ! W4       R#   \         d    \        T4        L0i ; i)z
Copy file sourcefile to directory destdir (creating it if needed),
preserving metadata. If the destination file exists and is not
older than the source file, the copying is skipped.
N)
r   ri   joinbasenamer   r   r   r   r   copy2)
sourcefiledestdirdestfiledesttimes   &&  r   copy_file_to_dir_if_newerr      sp     ww||GRWW%5%5j%ABH$X. z44 5
LL&  gs   A6 6BBc                     \         P                  P                  V 4      pW8X  d   V# \        V4      '       d   \	        V4      # V# r   )r   ri   dirnameis_package_dirfind_root_package_dir)	file_pathrS   s   & r   r   r      s:    
''//)
$C
			$S))
r   c                     R pV F9  p\         P                  P                  W4      p \        V 4      pV'       g   K7  RpK;  	  W3# )TF)r   ri   r   contains_init)dir_pathpackage_names	namespacer   has_inits   &&   r   check_package_dirr     sB    I 77<<2 *8I	 !
 r   c                     \          F6  p\        P                  P                  W4      p\	        V4      '       g   K5   ^# 	  R#    N)PACKAGE_FILESr   ri   r   path_exists)r   filenameri   s   &  r   r   r     s,    !ww||H/t "r   c                 ,    \        V 4      '       d   ^# R# r   )r   )r   s   &r   r   r     s    X r   c                    \         P                  P                  V 4      '       d   R #  \        p\	        VRR4      pV'       d`   \         P                  P                  V 4      pVP                  V4      '       d*   V\        V4      ^,           R p VP                  V4       R # R#   \         d     R# i ; i  \         d     R# i ; i)TarchiveNF)r   ri   rs   
__loader__rb   normpathr   r   get_datar   	NameError)ri   loaderarchive_pathr   arcnames   &    r   r   r     s     
ww~~d vy$7ww''-H""<00"3|#4Q#6#78!OOG,
 	  ! ! s6   AB7 :B7 B% %B40B7 3B44B7 7CCz .*[.]cython-([0-9]+)[.][^./\\]+$z^([0-9]+)[.]([0-9]+).*z\1\2c                   V'       d   VR,          R8X  g   Q h\         P                  P                  W4      p\        P                  ! \        P                  ! V4      R,           V,           4      pWB,           p\         P                  P                  V4      '       g   RpRV3pV FI  p\        V4      pV'       g   K  \        V^ ,          4      p	V^ ,          T	u;8  d
   V8:  g   KB  M KF  W3pKK  	  V^,          # )a'  
Search a directory for versioned pxd files, e.g. "lib.cython-30.pxd" for a Cython 3.0+ version.

@param directory: the directory to search
@param filename: the filename without suffix
@param suffix: the filename extension including the dot, e.g. ".pxd"
@return: the file path if found, or None
Nr   N.z	.cython-*N)r   ri   r   r   escapers   r   int)
	directoryr   suffix_current_versionpath_prefixmatching_filesri   
best_matchversionsint_versions
   &&&&      r   find_versioned_filer   6  s     s***'',,y3KYYt{{;7+ENOND77>>$dJ&t,8hqk*K!}{>.>>>)0
  a=r   c                     \        V \        4      '       dC    \        P                  ! 4       pVf   \        P                  ! 4       pV P                  V4      p V # V #   \         d     T # i ; ir   )
isinstancebytesr   getfilesystemencodinggetdefaultencodingdecodeUnicodeDecodeError)r   filename_encodings   & r   decode_filenamer   V  sk    (E""	 # 9 9 ; ($'$:$:$<!'89H O8O " 	O	s   ?A A*)A*s   (\w*coding)[:=]\s*([-\w.]+)c                    RpR p\        V4      ^8  d6   V P                  R4      pW4,          pVP                  R4      pV'       d   KD   \        V^ ,          4      pV'       d7   VP	                  ^4      R8w  d!   VP	                  ^4      P                  R4      # \        V4      ^8  d;   \        V^,          4      pV'       d!   VP	                  ^4      P                  R4      # V# )r   i     
s   c_string_encodingz	iso8859-1 )r   r   splitr   rV   r   )rO   defaultlinesstartdatams   &&    r   detect_opened_file_encodingr   g  s     EE
e*q.vvc{E"tU1X&AQWWQZ//wwqz  --	Ua q*771:$$[11Nr   c                X    V P                  ^4      R8w  d   V P                  ^ 4       R# R# )z
Read past a BOM at the beginning of a source file.
This could be added to the scanner, but it's *substantially* easier
to keep it at this level.
u   ﻿N)r   seek)rO   s   &r   skip_bomr   ~  s$     	vvayH	q	 r   c                    R p VfB   \        V R4      p\        V4      pVP                  ^ 4       \        P                  ! WAVR7      pM\        WVR7      p Vf   \        V 4      h\!        V4       V#   \
         dv    \        P                  P                  T 4      '       d   h  \        pT P                  TP                  4      '       d   \        YPY4      p L  \        \        3 d      Li ; ii ; i)Nr   rr   errors)ru   r   r   r   TextIOWrapperr   r   ri   rs   r   r   r   open_source_from_loaderr   r   FileNotFoundErrorr   )source_filenamerr   error_handlingstreamrO   r   s   &&&   r   open_source_filer     s    F_d+A215HFF1I%%a>RF/^TF ~00VM!  77>>/**	F))&..990. >* 		s<   AA3 	A3 3/C3#C3%&CCC/+C3.C//C3c                     \         P                  P                  V4      pV\        V P                  4      ^,           R pV P                  V4      p\        P                  ! \        P                  ! V4      VVR7      # )r   Nr   )	r   ri   r   r   r   r   r   r   BytesIO)r   r   rr   r   nrmpathr   r   s   &&&&   r   r   r     se     gg/Gc&..)!+,-G??7#DBJJt,%-#13 3r   c                    R pV R,          R8X  d   RpV R,          p \        V 4      ^8  d   \        V ^ 4      p MV ^ ,          R8X  ds   V ^,          pVR9   d    \        V 4      p \        V R,          ^4      p MOVR9   d   \        V R,          ^4      p M4VR	9   d   \        V R,          ^4      p M\        V ^4      p M\        V ^ 4      p V'       d   V ) # T # )
Fr   -T:r   NN0xX:   NNoObB)r   r   strip_py2_long_suffix)valueis_negliteral_types   &  r   str_to_numberr     s     FRyCb	
5zA~E1	qSQx4)%0Eb	2&ET!b	1%ET!b	1%E qMEE1E6&&r   c                ,    V R,          R9   d   V RR # V # )zr
Python 2 likes to append 'L' to stringified numbers
which in then can't process when converting them to numbers.
lLNr   r   )	value_strs   &r   r   r     s"    
 }"~r   c                     \        V \        4      '       d   \        V 4      p RT u;8*  ;'       d    R8  '       * # u '       * # )r   l        i   )r   strr   )r   s   &r   long_literalr     s8    %e$&&&&&&&&r   c              #     aaa"   \         P                  ! V 4      p \        P                  ! R R7      ;_uu_ 4       oR.3V3R llo\         P                  ! SP                  4       V 4       VV3R lpVx  \         P                  ! W 4       S! 4        RRR4       \         P                  ! V4       R#   + '       g   i     L(; i  \         P                  ! T4       i ; i5i)za+b)moder   c                    < SP                   '       g%   SP                  ^ 4       SP                  4       V ^ &   V ^ ,          # )    )closedr   r   )_output	temp_files   &r   read_output captured_fd.<locals>.read_output  s5     '''NN1%!*!1GAJqz!r   c                  H   < S! 4       p S'       d   V P                  S4      # T # r   )r   )resultrr   r  s    r   
get_outputcaptured_fd.<locals>.get_output  s     $2:v}}X.FFr   N)r   dupr   TemporaryFiledup2filenor}   )r   rr   orig_streamr  r  r  s   &f  @@r   captured_fdr    s     &&.K##//9%(E " GGI$$&/G GGK(M 0" 	# 0/" 	s4   C"C AB4C C"4C	?C CC"c                     \         P                  ! 4       .p \         P                  \         P                  \         P                  \         P
                  3 F/  p\        VR R4      pVf   K  W 9  g   K  V P                  V4       K1  	  V # )rr   N)r   r   stdoutstdin
__stdout__	__stdin__rb   rM   )
candidatesr   rr   s      r   get_encoding_candidatesr    sf    ((*+J::syy#..#--H6:t4H$>h'	 I
 r   c                     V P                  4       pV'       g   R # \        4        F  p VP                  V4      u # 	  VP                  R4      #   \         d     K8  i ; i)Nzlatin-1)stripr  r   r   )capturedcaptured_bytesrr   s   &  r   prepare_capturedr    s^    ^^%N+-	!((22 .   ++ " 		s   AAAc                     \        V 4      p V '       d-   V'       d   VP                  V4       VP                  V 4       R # R # r   )r  r|   )r  outputheader_lines   &&&r   print_capturedr"    s/    )HLL%X r   r   c                     V'       d   VP                  V4       VP                  4        VP                  pVP                  V 4       V'       d   VP                  V4       V'       d   VP                  4        R # R # r   )r|   flushbuffer)sheader_textendfiler$  outs   &&&&& r   print_bytesr+    sM    

;JJL
++CIIaL
		#		 r   c                   F   a  ] tR tRt o R	R ltR tR tR tR t]t	Rt
V tR# )

OrderedSeti"  c                T    . V n         \        4       V n        V P                  V4       R # r   )_listset_setupdate)r"   elementss   &&r   r$   OrderedSet.__init__#  s    
E	Hr   c                ,    \        V P                  4      # r   )iterr/  r(   s   &r   __iter__OrderedSet.__iter__(  s    DJJr   c                :    V F  pV P                  V4       K  	  R # r   )add)r"   r3  es   && r   r2  OrderedSet.update+  s    AHHQK r   c                    WP                   9  d9   V P                  P                  V4       V P                   P                  V4       R # R # r   )r1  r/  rM   r:  )r"   r;  s   &&r   r:  OrderedSet.add/  s3    IIJJa IIMM! r   c                ,    \        V P                  4      # r   )boolr1  r(   s   &r   __bool__OrderedSet.__bool__4  r+   r   )r/  r1  N)r   )r4   r5   r6   r7   r$   r7  r2  r:  rA  __nonzero__r9   r:   r;   s   @r   r-  r-  "  s%     
 
 Kr   r-  c                   a  V 3R lpV# )z6Class decorator for creating a class with a metaclass.c                 L  < V P                   P                  4       pVP                  R 4      pVe4   \        V\        4      '       d   V.pV F  pVP                  V4       K  	  VP                  RR4       VP                  RR4       S! V P                  V P                  V4      # )	__slots__N__dict____weakref__)rG  copygetr   r   popr4   	__bases__)cls	orig_varsslots	slots_var	metaclasss   &   r   r   add_metaclass.<locals>.wrapper>  s    LL%%'	k*%%%"	i( #j$'mT*s}}i@@r   r   )rQ  r   s   f r   add_metaclassrS  <  s    
A Nr   c                 X    V R 8X  g   V P                  R4      '       d   \        R4      hR# )cythonzcython.z;cython is a special module, cannot be used as a module nameN)r   
ValueError)full_module_names   &r   $raise_error_if_module_name_forbiddenrX  L  s-    8#'7'B'B9'M'MVWW (Nr   c                   . p^p\         P                  ! RV 4       FY  pVR	9   d$   R^R^R^/V,          pV^ ^ .,           R,          pK-  VR
9   d    M'VR8w  g   K?  VP                  \        V4      4       K[  	  V^ .^,          ,           R,          pV^;;,          V,          uu&   ^ pV F  pV^,          V,           pK  	  RV,          # )z
Parse and translate public version identifier like '4.3a1' into the readable hex representation '0x040300A1' (like PY_VERSION_HEX).

SEE: https://peps.python.org/pep-0440/#public-version-identifiers
z(\D+)abrc:N   Nr   :N   Nz0x%08X)rZ  r[  r\  )z.devz.prez.post)r   r   rM   r   )version_stringdigitsrelease_statussegment
hexversiondigits   &     r   build_hex_versionre  R  s     FN88Hn5&&!4dD$?HN1vor*F11^MM#g,' 6 sQw#F
1II J Ao.
  j  r   c                    \         P                  P                  V4      p\         P                  ! 4       pVP	                  \         P
                  4      '       g   V\         P
                  ,          p. pV F4  p \         P                  P                  Wd4      pVP                  V4       K6  	  \         P                  P                  W4      R ,           pVRP                  V4      R,           ,          p\        V R,           R4      ;_uu_ 4       p	V	P                  V4       RRR4       R#   \         d#    \         P                  P                  T4      p Li ; i  + '       g   i     R# ; i)z: \
  z \
  
z.deprp   N)r   ri   r   getcwdendswithseprelpathrV  abspathrM   r   ru   r|   )
targetsourcedependenciessrc_base_dircwdpathsfnamenewpathdeplineoutfiles
   &&&       r   write_depfilerw  p  s    77??6*L
))+C  ((E	-ggooe1G
 	W  ggoof*Z7Gy~~e$t++G	fVmS	!	!Wg 
"	!  	-ggooe,G	- 
"	!	!s   9D)E)*EEE*	c                  z   \        R \        ,          4       \        P                  P	                  4       '       g$   \        P
                  \        P                  8X  d   R# \        P                  ! ^4      \        P                  ! ^4      8X  d   R# \        P                  P                  R\        ,          4       R# )zCython version %sNzCython version %s
)	printr   r   stderrisattyr  r   fstatr|   r   r   r   print_versionr}    sl    	

./ zzcjjCJJ6	xx{bhhqk! 	JJ*^;<r   c                   V P                  4       P                  R4      p^ pRV9   g   RV9   d)   TP                  RV9   d   RMR^4      w  r\        V4      pRV9   d(   VP	                  R4      pVRV W^,           R ,           pM\        V4      pW#,          pVRV RV\        V4      ,
          ,          ,           R,           RV) ,          ,           WR ,           P                  R4      pVR8w  d   V# R# )z
Generate a 'normalised', simple digits string representation of a float value
to allow string comparisons.  Examples: '.123', '123.456', '123.'
r   Er;  r   Nz.0)lowerlstripr   r   indexr   rstrip)	float_str	str_valueexpnum_int_digitsr
  s   &    r   normalise_float_reprr    s    
 !((-I
C
i3)+"y0@c1M	#h
i"-o~.A;M;N1OO	YC 	$3
s9~%
&	'
	 *	 D/		
 fSk  s]6,,r   )r]  	   )z__init__.pyz__init__.pycz__init__.pyxz__init__.pxd)FT)rq   )NN)r   Nr   )Ur8   rU  declareobjectlistr   r   r   r   r   r   r   version_info	functoolsr	   r
   r   r    r   r   r   formatrf   compilerT   ri   getmtimer   GENERATED_BY_MARKERencoder   r   rD   rF   r   ImportErrorrG   r   rK   rQ   rY   r_   rg   rn   rw   r   r{   r   r   r   r   r   r   r   r   r   findallr   r   subr   r   searchr   r   r   r   r   r   r   r   r  r  r  r"  r  r+  r-  rS  rX  re  rw  r}  r  r   r   r   <module>r     s  
  6ffVV\6Tvdj 
 
 	 	    f 29   ,O '' jj!23 GG$$ 4~E /66zB  ".2  
,% 
-9(0O
'&      
  0 jj!DEMM  ),RVV4MwXf-g)h >	 zz"ABII .>3':'  .
,  $SZZt 	 4 X!<.
=-  .#-O.s   G! !G;:G;