ó
    F±‰jT  ã                   ó¬  • S r SSKr\R                  " \\\\\\\\\\\\\\\S9  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  SSKJr  SrSR$                  r\R(                  " S	5      r\R,                  R.                  rS
\-  r\R5                  S5      r " S S5      rS r SSKJr  / r"S r#S r$S r%S r&S r'S r(S r)S r*SAS jr+S r,S r-S r.S r/\$S  5       r0\$S! 5       r1\$S" 5       r2S# r3\$S$ 5       r4\R(                  " S%5      Rj                  r6\$\7" \Rp                  " S&S'\5      5      4S( j5       r9S) r:\R(                  " S*5      Rv                  r<SBS+ jr=S, r>SCS- jr? SCS. jr@S/ rAS0 rBS1 rC\SDS2 j5       rDS3 rES4 rFSES5 jrGSS6\R�                  S4S7 jrI " S8 S95      rJS: rKS; rLS< rMS= rNS> rOS? rPS@ rQg! \  a    SSKJ!r!  \!" SS9r GN%f = f)Fz@
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   é   )Ú__version__)z__init__.pyz__init__.pycz__init__.pyxz__init__.pxdz
__{}_cachez^__(.+)_cache$z/* Generated by Cython %s */zus-asciic                   ó*   • \ rS rSrSrS rS rS rSrg)Ú"_TryFinallyGeneratorContextManageré(   zW
Fast, bare minimum @contextmanager, only for try-finally, not for exception handling.
c                 ó   • Xl         g ©N©Ú_gen)ÚselfÚgens     ÚšC:\Users\johnn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\Cython/Utils.pyÚ__init__Ú+_TryFinallyGeneratorContextManager.__init__,   s   € Ø�	ó    c                 ó,   • [        U R                  5      $ r   )Únextr   ©r   s    r   Ú	__enter__Ú,_TryFinallyGeneratorContextManager.__enter__/   ó   € Ü�D—I‘I‹Ðr!   c                 ó\   •  [        U R                  5        g ! [        [        4 a     g f = fr   )r#   r   ÚStopIterationÚGeneratorExit)r   Úexc_typeÚexc_valÚexc_tbs       r   Ú__exit__Ú+_TryFinallyGeneratorContextManager.__exit__2   s)   € ð	Ü�—‘�OøÜœ}Ð-ó 	Ùð	ús   ‚ ˜+ª+r   N)	Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r%   r.   Ú__static_attributes__© r!   r   r   r   (   s   † ñòòõr!   r   c                 ó0   ^ • [        T 5      U 4S j5       nU$ )Nc                  ó&   >• [        T" U 0 UD65      $ r   )r   )ÚargsÚkwargsÚgen_funcs     €r   Úmake_genÚ,try_finally_contextmanager.<locals>.make_gen:   s   ø€ ä1±(¸DÐ2KÀFÑ2KÓLÐLr!   r   )r;   r<   s   ` r   Útry_finally_contextmanagerr>   9   s    ø€ Ü
ˆ8ƒ_ôMó ðMà€Or!   ©Úcache)Ú	lru_cache)Úmaxsizec                  ó>   • [          H  n U R                  5         M     g r   )r   Úcache_clearr?   s    r   Úclear_function_cachesrE   J   s   € ß!ˆØ×ÑÖò "r!   c                 óR   • [        U 5      n[        R                  U5        Xl        U$ r   )r   r   ÚappendÚuncached)ÚfÚcfs     r   Úcached_functionrK   O   s$   € Ü	˜Ó	€BÜ×Ñ˜BÔØ„KØ€Ir!   c              #   óŒ   #   • [        U 5       H1  n[        R                  U5      nUc  M  XR                  S5      4v •  M3     g7f)z¾The 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.
Nr   )ÚdirÚ_CACHE_NAME_PATTERNÚmatchÚgroup)ÚobjÚ	attr_namerO   s      r   Ú_find_cache_attributesrS   W   s<   é € ô
 ˜–Xˆ	Ü#×)Ñ)¨)Ó4ˆØÓØŸ[™[¨›^Ð+Ô+ò ùs
   ‚%A«Ac                 óf   • [        U 5       H"  u  p[        X5      (       d  M  [        X5        M$     g)zZRemoves every cache found in the object,
if a corresponding method exists for that cache.
N)rS   ÚhasattrÚdelattr)rQ   Ú
cache_nameÚmethod_names      r   Úclear_method_cachesrY   b   s)   € ô $:¸#Ö#>Ñˆ
Ü�3×$Ó$Ü�CÖ$ò $?r!   c                 óB   ^ ^• [        T R                  5      mUU 4S jnU$ )Nc                 ór   >• [        U TS 5      nUc  0 n[        U TU5        X;   a  X!   $ T" U /UQ76 =o2U'   U$ r   )ÚgetattrÚsetattr)r   r9   r@   ÚresrW   rI   s       €€r   ÚwrapperÚcached_method.<locals>.wrapperp   sM   ø€ Ü˜˜j¨$Ó/ˆØ‰=ØˆEÜ�D˜* eÔ,Ø‹=Ø‘;ÐÙ˜d˜N TšNÐ*ˆ�D‰kØˆ
r!   )Ú_build_cache_namer0   )rI   r_   rW   s   ` @r   Úcached_methodrb   m   s   ù€ Ü" 1§:¡:Ó.€Jöð €Nr!   c                 óL   • [         R                  R                  U 5      u  p#X!-   $ r   )r   ÚpathÚsplitext)rd   ÚnewsufÚbaseÚ_s       r   Úreplace_suffixri   }   s    € Ü�g‰g×Ñ˜tÓ$�G€DØ‰=Ðr!   c                 óŒ   • [         R                  R                  U 5      (       a  [         R                  " U 5        [	        U SSS9$ )NÚwúUTF-8)Úencoding)r   rd   ÚexistsÚunlinkÚopen©rd   s    r   Úopen_new_filerr   ‚   s3   € Ü	‡w�w‡~�~�d×Ñô 	�	Š	�$Œô ��c GÑ,Ð,r!   c                 ó  • [        U SSS9(       d  g  [        U 5      nUR                  S5        UR                  5         U(       a0  [        R
                  " XR                  UR                  S-
  45        g g ! [         a     g f = f)NTF)Úallow_failedÚif_not_foundzN#error Do not use this file, it is the result of a failed Cython compilation.
r   )	Úis_cython_generated_filerr   ÚwriteÚcloser   ÚutimeÚst_atimeÚst_mtimeÚOSError)rd   ÚstrI   s      r   Úcastrate_filer~   �   sv   € ô
 $ D°tÈ%×PØð	9Ü˜$Óˆð 	
�‰Ø]ô	_à	�‰Œ	ÞÜ�HŠH�TŸK™K¨¯©°Q©Ð7Õ8ð øô ó Ùðús   “A7 Á7
BÂBTc                 ód  • SnS n[         R                  R                  U 5      (       a0   [        U S5       nUR	                  [        U5      5      nS S S 5        Uc  U$ UR                  S5      =(       d    U=(       a    XC:H  =(       d    U(       + $ ! , (       d  f       NF= f! [         a     NUf = f)NsM   #error Do not use this file, it is the result of a failed Cython compilation.Úrbs   /* Generated by Cython )r   rd   rn   rp   ÚreadÚlenr|   Ú
startswith)rd   rt   ru   Úfailure_markerÚfile_contentrI   s         r   rv   rv   ¡   s£   € Øe€NØ€LÜ	‡w�w‡~�~�d×Ñð	Ü�d˜DÔ! QØ Ÿv™v¤c¨.Ó&9Ó:�÷ "ð
 ÑàÐð 	×ÑÐ :Ó;÷ 	à	×	8˜,Ñ8÷	ð Ôð÷ "Õ!ûäó 	Ùð	ús.   ªB" ¶BÁB" Â
BÂB" ÂB" Â"
B/Â.B/c                 ó4  • Sn[         R                  R                  U 5      (       a4   [        U S5       nUR	                  [        [        5      5      nS S S 5        U=(       a    UR                  [        5      $ ! , (       d  f       N,= f! [         a     N;f = f)Nr!   r€   )	r   rd   rn   rp   r�   r‚   ÚGENERATED_BY_MARKER_BYTESr|   rƒ   )rd   r…   rI   s      r   Úfile_generated_by_this_cythonrˆ   ¹   sw   € Ø€LÜ	‡w�w‡~�~�d×Ñð	Ü�d˜DÔ! QØ Ÿv™v¤cÔ*CÓ&DÓE�÷ "ð ×N˜L×3Ñ3Ô4MÓNÐN÷	 "Õ!ûäó 	Ùð	ús.   ¨B
 ´A9ÁB
 Á9
BÂB
 ÂB
 Â

BÂBc                 ó    • [        U 5      nX!:„  $ r   )Úmodification_time)rd   ÚtimeÚftimes      r   Úfile_newer_thanr�   Ä   s   € Ü˜dÓ#€EØ‰<Ðr!   c                 óœ   •  [         R                  " U 5        g ! [         a(    [         R                  R	                  U 5      (       d  e  g f = fr   )r   Úmakedirsr|   rd   Úisdirrq   s    r   Úsafe_makedirsr‘   É   s=   € ðÜ
�Š�DÕøÜó Ü�w‰w�}‰}˜T×"Ñ"Øñ #ðús   ‚ ™/AÁ
Ac                 ó  • [         R                  R                  U[         R                  R                  U 5      5      n [	        U5      n[        X5      (       d  g [        R                  " X5        g! [         a    [        U5         N.f = f)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   rd   ÚjoinÚbasenamerŠ   r�   r|   r‘   r   Úcopy2)Ú
sourcefileÚdestdirÚdestfileÚdesttimes       r   Úcopy_file_to_dir_if_newerrš   Ñ   sp   € ô �w‰w�|‰|˜G¤R§W¡W×%5Ñ%5°jÓ%AÓB€HðÜ$ XÓ.ˆô ˜z×4Ñ4Øð 5ä
‡L‚L�Õ&øô ó ä�gÖðús   ¿A3 Á3BÂ
Bc                 óˆ   • [         R                  R                  U 5      nX:X  a  U$ [        U5      (       a  [	        U5      $ U$ r   )r   rd   ÚdirnameÚis_package_dirÚfind_root_package_dir)Ú	file_pathrM   s     r   rž   rž   ä   s:   € ä
�'‰'�/‰/˜)Ó
$€CØÓØˆ
Ü	˜×	Ñ	Ü$ SÓ)Ð)àˆ
r!   c                 óˆ   • SnU H8  n[         R                  R                  X5      n [        U 5      nU(       d  M6  SnM:     X4$ )NTF)r   rd   r“   Úcontains_init)Údir_pathÚpackage_namesÚ	namespacerœ   Úhas_inits        r   Úcheck_package_dirr¦   ï   sB   € à€IÛ ˆÜ—7‘7—<‘< Ó2ˆÜ  Ó*ˆßˆ8ØŠIñ	 !ð
 ÐÐr!   c                 ó€   • [          H4  n[        R                  R                  X5      n[	        U5      (       d  M4    g   g ©Nr   )ÚPACKAGE_FILESr   rd   r“   Úpath_exists)r¢   Úfilenamerd   s      r   r¡   r¡   ú   s,   € ç!ˆÜ�w‰w�|‰|˜HÓ/ˆÜ�t×ÓÙò "r!   c                 ó&   • [        U 5      (       a  gg r¨   )r¡   )r¢   s    r   r�   r�     s   € Ü�X×ÑØð r!   c                 óv  • [         R                  R                  U 5      (       a  g [        n[	        USS 5      nU(       aY  [         R                  R                  U 5      nUR                  U5      (       a$  U[        U5      S-   S  n UR                  U5        gg! [         a     gf = f! [         a     gf = f)NTÚarchiver   F)r   rd   rn   Ú
__loader__r\   Únormpathrƒ   r‚   Úget_datar|   Ú	NameError)rd   ÚloaderÚarchive_pathr°   Úarcnames        r   rª   rª     s´   € ô 
‡w�w‡~�~�d×ÑØðÜˆô ˜v y°$Ó7ˆÞÜ—w‘w×'Ñ'¨Ó-ˆHØ×"Ñ" <×0Ñ0Ø"¤3 |Ó#4°QÑ#6Ð#7Ð8�ð!Ø—O‘O GÔ,Øð
 øô	 ó !Ù ð!ûäó ØØðús0   §A B+ ÂB Â
B(Â%B+ Â'B(Â(B+ Â+
B8Â7B8z .*[.]cython-([0-9]+)[.][^./\\]+$z^([0-9]+)[.]([0-9]+).*z\1\2c                 ó²  • U(       a  USS S:X  d   e[         R                  R                  X5      n[        R                  " [        R                  " U5      S-   U-   5      nXB-   n[         R                  R                  U5      (       d  SnSU4nU H>  n[        U5      nU(       d  M  [        US   5      n	US   U	s=:  a  U::  d  M7  O  M;  X–4nM@     US   $ )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   Ú.z	.cython-*éÿÿÿÿr   )r   rd   r“   r   Úescapern   r   Úint)
Ú	directoryr«   ÚsuffixÚ_current_versionÚpath_prefixÚmatching_filesrd   Ú
best_matchÚversionsÚint_versions
             r   Úfind_versioned_filerÃ   #  sÆ   € ö ˜  ˜ sÓ*Ð*Ð*Ü—'‘'—,‘,˜yÓ3€Kä—Y’YœtŸ{š{¨;Ó7¸+ÑEÈÑNÓO€NØÑ€DÜ�7‰7�>‰>˜$×ÑØˆØ�d�€JãˆÜ& tÓ,ˆßˆ8Ü˜h q™kÓ*ˆKà˜!‰}˜{Õ>Ð.>×>Ñ>Ø)Ð0’
ñ ð �a‰=Ðr!   c                 óÔ   • [        U [        5      (       aA   [        R                  " 5       nUc  [        R                  " 5       nU R                  U5      n U $ U $ ! [         a     U $ f = fr   )Ú
isinstanceÚbytesr   ÚgetfilesystemencodingÚgetdefaultencodingÚdecodeÚUnicodeDecodeError)r«   Úfilename_encodings     r   Údecode_filenamerÌ   C  sk   € Ü�(œE×"Ñ"ð	Ü #× 9Ò 9Ó ;ÐØ Ñ(Ü$'×$:Ò$:Ó$<Ð!Ø—‘Ð'8Ó9ˆHð €Oˆ8€Oøô "ó 	ØØ€Oð	ús   —>A Á
A'Á&A's   (\w*coding)[:=]\s*([-\w.]+)c                 óÆ  • SnSn[        U5      S:  a?  U R                  S5      nX4-  nUR                  S5      nU(       d  O[        U5      S:  a  M?  [        US   5      nU(       a5  UR	                  S5      S:w  a   UR	                  S	5      R                  S
5      $ [        U5      S:”  a5  [        US   5      nU(       a   UR	                  S	5      R                  S
5      $ U$ )Nr6   r!   é   iô  ó   
r   r   s   c_string_encodingé   z	iso8859-1)r‚   r�   Úsplitr   rP   rÉ   )rI   ÚdefaultÚlinesÚstartÚdataÚms         r   Údetect_opened_file_encodingr×   T  sÄ   € ð €EØ€EÜ
ˆe‹*�q‹.Ø�v‰v�c‹{ˆØ‰ˆØ—‘˜EÓ"ˆÞØô ˆe‹*�q�.ô 	˜U 1™XÓ&€AÞˆQ�W‰W�Q‹ZÐ/Ó/Ø�w‰w�q‹z× Ñ  Ó-Ð-Ü	ˆU‹�a‹Ü   q¡Ó*ˆÞØ—7‘7˜1“:×$Ñ$ [Ó1Ð1Ø€Nr!   c                 óR   • U R                  S5      S:w  a  U R                  S5        gg)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.
r   u   ï»¿r   N)r�   Úseek)rI   s    r   Úskip_bomrÚ   k  s$   € ð 	‡v�vˆaƒy�HÓØ	�‰ˆq�	ð r!   c                 óÔ  • S n Uc>  [        U S5      n[        U5      nUR                  S5        [        R                  " XAUS9nO[        XUS9n Uc  [        U 5      e[!        U5        U$ ! [
         ar    [        R                  R                  U 5      (       a  e  [        nU R                  UR                  5      (       a  [        XPX5      n N! [        [        4 a      N’f = ff = f)Nr€   r   ©rm   Úerrors)rp   r×   rÙ   r   ÚTextIOWrapperr|   r   rd   rn   r¯   rƒ   r®   Úopen_source_from_loaderr²   ÚAttributeErrorÚFileNotFoundErrorrÚ   )Úsource_filenamerm   Úerror_handlingÚstreamrI   r³   s         r   Úopen_source_filerå   u  sß   € Ø€FðØÑä�_ dÓ+ˆAÜ2°1Ó5ˆHØ�F‰F�1ŒIÜ×%Ò% aÀ>ÑR‰Fä˜/À^ÑT‰Fð �~Ü Ó0Ð0ÜˆVÔØ€Møô! ó Ü�7‰7�>‰>˜/×*Ñ*Øð	ÜˆFØ×)Ñ)¨&¯.©.×9Ñ9Ü0ØØó.�úô œ>Ð*ó 	Úð	úðús0   „A A+ Á
A+ Á+/C'Â2CÃC#ÃC'Ã"C#Ã#C'c                 óì   • [         R                  R                  U5      nU[        U R                  5      S-   S  nU R                  U5      n[        R                  " [        R                  " U5      UUS9$ )Nr   rÜ   )	r   rd   r°   r‚   r®   r±   r   rÞ   ÚBytesIO)r³   râ   rm   rã   Únrmpathrµ   rÕ   s          r   rß   rß   ”  se   € ô �g‰g×Ñ˜Ó/€GØ”c˜&Ÿ.™.Ó)¨!Ñ+Ð,Ð-€GØ�?‰?˜7Ó#€DÜ×ÒœBŸJšJ tÓ,Ø%-Ø#1ñ3ð 3r!   c                 ó^  • SnU S S S:X  a  SnU SS  n [        U 5      S:  a  [        U S5      n OtU S   S:X  a_  U S   nUS;   a  [        U 5      n [        U SS  S	5      n OEUS
;   a  [        U SS  S5      n O/US;   a  [        U SS  S5      n O[        U S5      n O[        U S5      n U(       a  U * $ U $ )NFr   Ú-TrÐ   r   Ú0ÚxXé   ÚoOé   ÚbB)r‚   rº   Ústrip_py2_long_suffix)ÚvalueÚis_negÚliteral_types      r   Ústr_to_numberrõ   Ÿ  sÐ   € ð €FØˆRˆa€y�CÓØˆØ�a�b�	ˆÜ
ˆ5ƒz�Aƒ~Ü�E˜1“‰Ø	ˆq‰�S‹Ø˜Q‘xˆØ˜4Óä)¨%Ó0ˆEÜ˜˜a˜b˜	 2Ó&‰EØ˜TÓ!ä˜˜a˜b˜	 1Ó%‰EØ˜TÓ!ä˜˜a˜b˜	 1Ó%‰Eô ˜˜q“M‰Eä�E˜1“ˆÞˆEˆ6Ð& Ð&r!   c                 ó"   • U S   S;   a  U SS $ U $ )zr
Python 2 likes to append 'L' to stringified numbers
which in then can't process when converting them to numbers.
r¸   ÚlLNr6   )Ú	value_strs    r   rñ   rñ   ¼  s"   € ð
 ��}˜ÓØ˜˜"ˆ~ÐØÐr!   c                 ó€   • [        U [        5      (       a  [        U 5      n SU s=:*  =(       a
    S:  (       + $ s  (       + $ )Ni   €l        )rÅ   Ústrrõ   )rò   s    r   Úlong_literalrû   Æ  s8   € Ü�%œ×ÑÜ˜eÓ$ˆØ˜×&Ó& Ñ&Ô&Ð&Ñ&Ô&Ð&r!   c              #   ó¬  ^^^#   • [         R                  " U 5      n [        R                  " SS9 mS/4U4S jjm[         R                  " TR                  5       U 5        UU4S jnUv •  [         R                  " X 5        T" 5         S S S 5        [         R                  " U5        g ! , (       d  f       N%= f! [         R                  " U5        f = f7f)Nza+b)Úmoder!   c                 óx   >• TR                   (       d$  TR                  S5        TR                  5       U S'   U S   $ )Nr   )ÚclosedrÙ   r�   )Ú_outputÚ	temp_files    €r   Úread_outputÚ captured_fd.<locals>.read_outputÑ  s2   ø€ Ø ×'×'Ø—N‘N 1Ô%Ø!*§¡Ó!1�G˜A‘JØ˜q‘zÐ!r!   c                  óF   >• T" 5       n T(       a  U R                  T5      $ U $ r   )rÉ   )Úresultrm   r  s    €€r   Ú
get_outputÚcaptured_fd.<locals>.get_outputØ  s    ø€ Ù$›�Þ2:�v—}‘} XÓ.ÐFÀÐFr!   )r   Údupr	   ÚTemporaryFileÚdup2Úfilenorx   )rä   rm   Úorig_streamr  r  r  s    `  @@r   Úcaptured_fdr  Ì  s”   úé € ä—&’&˜“.€KðÜ×#Ò#¨Ò/°9Ø%( E÷ "ô �GŠG�I×$Ñ$Ó&¨Ô/öGð Òä�GŠG�KÔ(ÙŒM÷ 0ô" 	�Š�Õ÷# 0Õ/ûô" 	�Š�Õüs4   …C�B9 ±AB(Â	B9 ÂCÂ(
B6Â2B9 Â9CÃCc                  ó  • [         R                  " 5       /n [         R                  [         R                  [         R                  [         R
                  4 H-  n[        USS 5      nUc  M  X ;  d  M  U R                  U5        M/     U $ )Nrm   )r   rÈ   ÚstdoutÚstdinÚ
__stdout__Ú	__stdin__r\   rG   )Ú
candidatesrä   rm   s      r   Úget_encoding_candidatesr  ä  sf   € Ü×(Ò(Ó*Ð+€JÜ—:‘:œsŸy™y¬#¯.©.¼#¿-¹-ÓHˆÜ˜6 :¨tÓ4ˆàÓ HÕ$>Ø×Ñ˜hÖ'ñ	 Ið
 Ðr!   c                 ó¼   • U R                  5       nU(       d  g [        5        H  n UR                  U5      s  $    UR                  S5      $ ! [         a     M7  f = f)Nzlatin-1)Ústripr  rÉ   rÊ   )ÚcapturedÚcaptured_bytesrm   s      r   Úprepare_capturedr  î  s^   € Ø—^‘^Ó%€NÞØÜ+Ö-ˆð	Ø!×(Ñ(¨Ó2Ò2ñ .ð × Ñ  Ó+Ð+øô "ó 	Úð	ús   §AÁ
AÁAc                 ó|   • [        U 5      n U (       a*  U(       a  UR                  U5        UR                  U 5        g g r   )r  rw   )r  ÚoutputÚheader_lines      r   Úprint_capturedr  û  s/   € Ü Ó)€HÞÞØ�L‰L˜Ô%Ø�‰�XÕð r!   rÏ   c                 óî   • U(       a  UR                  U5        UR                  5         UR                  nUR                  U 5        U(       a  UR                  U5        U(       a  UR                  5         g g r   )rw   ÚflushÚbuffer)ÚsÚheader_textÚendÚfiler  Úouts         r   Úprint_bytesr&    sM   € ÞØ�
‰
�;ÔØ‡J�J„LØ
�+‰+€CØ‡I�Iˆa„LÞ
Ø�	‰	�#ŒÞØ�	‰	�ð r!   c                   ó:   • \ rS rSrS	S jrS rS rS rS r\r	Sr
g)
Ú
OrderedSeti  c                 óR   • / U l         [        5       U l        U R                  U5        g r   )Ú_listÚsetÚ_setÚupdate)r   Úelementss     r   r   ÚOrderedSet.__init__  s   € ØˆŒ
Ü“EˆŒ	Ø�‰�HÕr!   c                 ó,   • [        U R                  5      $ r   )Úiterr*  r$   s    r   Ú__iter__ÚOrderedSet.__iter__  s   € Ü�D—J‘JÓÐr!   c                 ó8   • U H  nU R                  U5        M     g r   )Úadd)r   r.  Úes      r   r-  ÚOrderedSet.update  s   € ÛˆAØ�H‰H�QŽKò r!   c                 ó�   • XR                   ;  a7  U R                  R                  U5        U R                   R                  U5        g g r   )r,  r*  rG   r5  )r   r6  s     r   r5  ÚOrderedSet.add  s3   € Ø—I‘IÓØ�J‰J×Ñ˜aÔ Ø�I‰I�M‰M˜!Õð r!   c                 ó,   • [        U R                  5      $ r   )Úboolr,  r$   s    r   Ú__bool__ÚOrderedSet.__bool__!  r'   r!   )r*  r,  N)r6   )r0   r1   r2   r3   r   r2  r-  r5  r<  Ú__nonzero__r5   r6   r!   r   r(  r(    s"   † ôò
 òòò
ð ƒKr!   r(  c              #   ój   #   • [        5       nU  H  nX!;  d  M
  UR                  U5        Uv •  M!     g7f)z6Deduplicate the items in an iterable using a set.
    N)r+  r5  )ÚitÚseenÚitems      r   Ú	set_deduprC  '  s.   é € ô ‹5€DÛˆØÕØ�H‰H�TŒNØŒJò ùs   ‚3™3c                 ó   ^ • U 4S jnU$ )z6Class decorator for creating a class with a metaclass.c                 óH  >• U R                   R                  5       nUR                  S5      nUb2  [        U[        5      (       a  U/nU H  nUR                  U5        M     UR                  SS 5        UR                  SS 5        T" U R                  U R                  U5      $ )NÚ	__slots__Ú__dict__Ú__weakref__)rG  ÚcopyÚgetrÅ   rú   Úpopr0   Ú	__bases__)ÚclsÚ	orig_varsÚslotsÚ	slots_varÚ	metaclasss       €r   r_   Úadd_metaclass.<locals>.wrapper5  s†   ø€ Ø—L‘L×%Ñ%Ó'ˆ	Ø—‘˜kÓ*ˆØÑÜ˜%¤×%Ñ%Ø˜�Û"�	Ø—‘˜iÖ(ñ #à�‰�j $Ô'Ø�‰�m TÔ*Ù˜Ÿ™ s§}¡}°iÓ@Ð@r!   r6   )rQ  r_   s   ` r   Úadd_metaclassrS  3  s   ø€ õ
Að €Nr!   c                 óR   • U S:X  d  U R                  S5      (       a  [        S5      eg )NÚcythonzcython.z;cython is a special module, cannot be used as a module name)rƒ   Ú
ValueError)Úfull_module_names    r   Ú$raise_error_if_module_name_forbiddenrX  C  s-   € à˜8Ó#Ð'7×'BÑ'BÀ9×'MÑ'MÜÐVÓWÐWð (Nr!   c                 ó2  • / nSn[         R                  " SU 5       HH  nUS;   a  SSSS.U   nUSS/-   SS	 nM  US
;   a    O&US:w  d  M.  UR                  [        U5      5        MJ     US/S	-  -   SS nUS	==   U-  ss'   SnU H  nUS-  U-   nM     SU-  $ )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é    é°   éÀ   r   NrÎ   )z.devz.prez.postr·   é   rï   z0x%08X)r   rÑ   rG   rº   )Úversion_stringÚdigitsÚrelease_statusÚsegmentÚ
hexversionÚdigits         r   Úbuild_hex_versionrh  I  sÇ   € ð €FØ€NÜ—8’8˜H nÖ5ˆØÐ&Ó&Ø#'¨d¸$Ñ?ÀÑHˆNØ  1˜v‘o r¨Ð*ŠFØÐ1Ó1ÙØ˜�^Ø�M‰Mœ#˜g›,Ö'ñ 6ð ˜�s˜Q‘wÑ  Ð#€FØ
ˆ1ƒI�ÑƒIð €JÛˆØ  A‘o¨Ñ.Š
ñ ð �jÑ Ð r!   c                 óº  • [         R                  R                  U5      n[         R                  " 5       nUR	                  [         R
                  5      (       d  U[         R
                  -  n/ nU HF  n [         R                  R                  Xd5      nUR                  SS5      nUR                  U5        MH     [         R                  R                  X5      S-   nUSR                  U5      S-   -  n[        U S-   S5       n	U	R                  U5        S S S 5        g ! [         a"    [         R                  R                  U5      n Nµf = f! , (       d  f       g = f)NÚ z\ z: \
  z \
  Ú
z.deprk   )r   rd   rœ   ÚgetcwdÚendswithÚsepÚrelpathrV  ÚabspathÚreplacerG   r“   rp   rw   )
ÚtargetÚsourceÚdependenciesÚsrc_base_dirÚcwdÚpathsÚfnameÚnewpathÚdeplineÚoutfiles
             r   Úwrite_depfiler|  g  s  € Ü—7‘7—?‘? 6Ó*€LÜ
�)Š)‹+€CØ× Ñ ¤§¡×(Ñ(ØœŸ™Ñˆà€EÛˆð	-Ü—g‘g—o‘o eÓ1ˆGð —/‘/ # uÓ-ˆØ�‰�WÖñ ô �g‰g�o‰o˜fÓ*¨ZÑ7€GØˆy�~‰~˜eÓ$ tÑ+Ñ+€Gä	ˆf�V‰m˜SÔ	! WØ�‰�gÔ÷ 
"Ð	!øô ó 	-ä—g‘g—o‘o eÓ,ŠGð	-ú÷ 
"Õ	!ús   Á4DÄEÄ)E	ÅE	Å
Ec                  ó^  • [        S[        -  5        [        R                  R	                  5       (       d"  [        R
                  [        R                  :X  a  g [        R                  " S5      [        R                  " S5      :X  a  g [        R                  R                  S[        -  5        g )NzCython version %sr   rÐ   zCython version %s
)	Úprintr   r   ÚstderrÚisattyr  r   Úfstatrw   r6   r!   r   Úprint_versionr‚  €  sl   € Ü	Ð
¤Ñ
.Ô/ô ‡z�z×Ñ×ÑœcŸj™j¬C¯J©JÓ6ØÜ	‡x‚x�ƒ{”b—h’h˜q“kÓ!ð 	Ü‡J�J×ÑÐ*¬^Ñ;Õ<r!   c                 ó�  • U R                  5       R                  S5      nSnSU;   d  SU;   a'  UR                  SU;   a  SOSS5      u  p[        U5      nSU;   a  UR	                  S5      nUSU XS-   S -   nO[        U5      nX#-  nUSU SU[        U5      -
  -  -   S-   SU* -  -   XS -   R                  S5      nUS:w  a  U$ S$ )	z‘
Generate a 'normalised', simple digits string representation of a float value
to allow string comparisons.  Examples: '.123', '123.456', '123.'
rë   r   ÚEr6  r   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 )Ó+Ø"Ÿ™°°yÓ0@©ÀcÈ1ÓM‰ˆ	Ü�#‹hˆà
ˆiÓØ"Ÿ™¨Ó-ˆØ˜o˜~Ð.°ÈAÑ;MÐ;NÐ1OÑO‰	ä˜Y›ˆØÑ€Cð 	�$�3ˆØ
�”s˜9“~Ñ%Ñ
&ñ	'à
ñ	ð ��‰*ñ	ð �Dˆ/ñ		÷
 �fˆSƒkð ð ˜s“]ˆ6Ð,¨Ð,r!   )FT)rl   )NN)rÐ   Nr   )Rr4   rU  ÚdeclareÚobjectÚlistr   r   r   r   r   r   r	   Ú	functoolsr   Ú r   r   r©   Úformatra   ÚcompilerN   rd   ÚgetmtimerŠ   ÚGENERATED_BY_MARKERÚencoder‡   r   r>   r@   r   ÚImportErrorrA   r   rE   rK   rS   rY   rb   ri   rr   r~   rv   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(  rC  rS  rX  rh  r|  r‚  r�  r6   r!   r   Ú<module>rœ     sm  ðñó
 à ‡‚Ø�6˜f¨°fÀVÐV\Ø 6°ÈØ¨TÀvÐdjòó 
Û 
Û 	Û 	Û Û Û Ý õ ,àO€à ×'Ñ'Ð Ø—j’jÐ!2Ó3Ð à—G‘G×$Ñ$Ð à4°~ÑEÐ Ø/×6Ñ6°zÓBÐ ÷ñ ò"ð.Ý2ð Ð òò
ò,ò%òò ò
-ò9ô(ò0Oòò
ò'ð& ñó ðð ñó ðð ñó ðòð
 ñó ðð0 —j’jÐ!DÓE×MÑMÐ ð á),¨R¯VªVÐ4MÈwÐXfÓ-gÓ)hóó ðò>	ð —z’zÐ"AÓB×IÑIÐ ôò.ôðB ;?ô3ò'ò:ò'ð óó ðò.ò
,ôð  $¨°S·Z±ZÀtô 	÷ñ ò0òò Xò!ò<ò2
=ó-øðW ó .Ý#Ù¨Ñ-ƒOð.ús   Â'F= Æ=GÇG