Ë
    Bü´j  ã                   óø  — d dl Z d dlZ	  ej                  dej                  «      Z ej                  dej                  «      Z ej                  dej                  «      Zd„ Z ej                  d«      Z ej                  d«      Z	 ej                  d«      Z
d	„ Zd
„ Z ej                  d«      Zd„ Zd„ Z ej                  d«      Zd„ Zd„ Z ej                  dej                  «      Zd„ Zd„ Z ed«      Zy)é    Nz2(\n|\A)((     (\$|\*))|)\s*(subroutine|function)\bz+\n\s*end\s*(subroutine|function)\b.*(\n|\Z)z\n     (\$|\*)\s*function\bc                 óÄ  — g }d}	 t         j                  | |«      }|€	 |S |j                  «       }t        j	                  | ||j                  «       «      r)	 | j                  d||«      }|dk(  rn|}| ||dz    dk7  rnŒ(|dz  }t        j                  | |j                  «       «      }|xr |j                  «       dz
  xs t        | «      x}}|j                  ||f«       ŒÜ)z‘ Return a list of tuples for each function or subroutine each
    tuple is the start and end of a subroutine or function to be
    expanded.
    r   ú
éÿÿÿÿé   z
     $é   )
Úroutine_start_reÚsearchÚstartÚfunction_start_reÚmatchÚendÚrfindÚroutine_end_reÚlenÚappend)ÚastrÚspanlistÚindÚmr
   Úir   s          úQ/root/workspace/ytshorts/venv/lib/python3.12/site-packages/numpy/f2py/_src_pyf.pyÚparse_structurer   7   sï   € ð €HØ
€CØ
Ü×#Ñ# D¨#Ó.ˆØˆ9Øð €Oð —‘“	ˆÜ×"Ñ" 4¨°·±³Ô8ØØ—J‘J˜t S¨%Ó0�Ø˜’7ØØ�Ø˜˜!˜a™%�= JÒ.Øð ð 	�‰
ˆÜ×!Ñ! $¨¯©«Ó0ˆØÒ&˜1Ÿ5™5›7 Q™;Ò4¬3¨t«9Ð4ˆˆcØ�‰˜ ˜Ô%ð! ó    z<\s*(\w[\w\d]*)\s*>z<\s*(\w[\w\d]*)\s*=\s*(.*?)\s*>z<\s*((.*?))\s*>c                 óÌ   — t         j                  | «      }i }|D ]G  }|d   j                  «       xs t        |«      }|d   j	                  dd«      }t        |«      }|||<   ŒI |S )Nr   r   ú\,ú@comma@)Únamed_reÚfindallÚstripÚ
unique_keyÚreplaceÚconv)r   ÚrepsÚnamesÚrepÚnameÚreplÚthelists          r   Úfind_repl_patternsr)   W   sl   € Ü×Ñ˜DÓ!€DØ€EØò ˆØ�1‰v�|‰|‹~Ò2¤¨EÓ!2ˆØ�1‰v�~‰~˜e YÓ/ˆÜ�t“*ˆØˆˆdŠð	ð
 €Lr   c                 ó\   — t        | «      }t        j                  t        d| «      d   } | |fS )NÚ r   )r)   ÚreÚsubnr   )r   r$   s     r   Úfind_and_remove_repl_patternsr.   a   s-   € Ü˜tÓ$€EÜ�7‰7”8˜R Ó& qÑ)€DØ�ˆ;Ðr   z\A\\(?P<index>\d+)\Zc                 ó6  — | j                  d«      }|D �cg c]  }|j                  «       ‘Œ }}t        t        |«      «      D ]?  }t        j                  ||   «      }|sŒt        |j                  d«      «      }||   ||<   ŒA dj                  |«      S c c}w )Nú,Úindex)	Úsplitr   Úranger   Úitem_rer   ÚintÚgroupÚjoin)r   ÚbÚxÚlr   r   Újs          r   r"   r"   h   s‰   € Ø�
‰
�3‹€AØÖ�qˆ�‰�Ð€AÐÜ”3�q“6‹]ò ˆÜ�M‰M˜!˜A™$ÓˆÚÜ�A—G‘G˜GÓ$Ó%ˆAØ�Q‘4ˆAˆaŠDð	ð
 �8‰8�A‹;Ðùò 	s   –Bc                 ól   — t        | j                  «       «      }d}d}|sd|› �}||v r|dz  }nd}|sŒS )z( Obtain a unique key given a dictionary.Fr   Ú__lT)ÚlistÚkeys)ÚadictÚallkeysÚdoneÚnÚnewkeys        r   r    r    r   sL   € ä�5—:‘:“<Ó €GØ€DØ	€AÙØ�q�c�ˆØ�WÑØ�‰F‰AàˆDò ð €Mr   z\A\s*(\w[\w\d]*)\s*\Zc                 ój  ‡‡‡— | j                  dd«      } | j                  dd«      } t        | «      Št        j                  d| «      } ˆfd„}t        j                  || «      } d }d }i Št
        j                  | «      D ]Ð  }|‰vsŒ‰j                  ||j                  |d «      «      }|€t        d|› d�«      ‚||vr|j                  d	«      s|||<   |j                  d
«      D �cg c]  }|j                  dd
«      ‘Œ }}t        |«      }	|€
|	}|‰|<   |}Œš|	|k(  r|‰|<   Œ¥d
j                  ‰|   «      }
t        d|› d|
› d|› d|› d�	«       ŒÒ ‰s| S ˆˆfd„}d}t        |«      D ]  Š|t
        j                  || «      dz   z  }Œ  |j                  dd«      }|j                  dd«      }|S c c}w )Nz\>z@rightarrow@z\<z@leftarrow@z<\1>c                 ó  •— t        | j                  d«      j                  dd«      «      }t        j	                  |«      rd|› d�S d }‰j                  «       D ]  }‰|   |k(  sŒ|}Œ |€t        ‰«      }|‰|<   d|› d�S )Nr   r   r   ú<ú>)r"   r6   r!   Útemplate_name_rer   r?   r    )Úmobjr(   r&   ÚkeyÚlnamess       €r   Úlistreplzexpand_sub.<locals>.listrepl‡   s‘   ø€ Ü�t—z‘z !“}×,Ñ,¨U°IÓ>Ó?ˆÜ×!Ñ! 'Ô*Ø�w�i˜q�>Ð!ØˆØ—;‘;“=ò 	ˆCØ�c‰{˜gÓ%Ø‘ð	ð ˆ<Ü˜fÓ%ˆDØ"ˆF�4‰LØ�4�&˜ˆ{Ðr   zNo replicates found for <rH   Ú_r0   r   z*Mismatch in number of replacements (base <ú=z>) for <z>. Ignoring.c                 ó^   •— | j                  d«      }‰j                  |‰dz   |gz  «      ‰   S )Nr   )r6   Úget)rJ   r&   ÚkÚruless     €€r   Únamereplzexpand_sub.<locals>.namerepl³   s1   ø€ Ø�z‰z˜!‹}ˆØ�y‰y˜  A¡¨$¨Ñ/Ó0°Ñ3Ð3r   r+   z

rG   )r!   r)   r   ÚsubÚlist_reÚtemplate_rer   rQ   Ú
ValueErrorÚ
startswithr2   r   r7   Úprintr3   )Úsubstrr$   rM   ÚnumsubsÚ	base_ruleÚrr(   r   ÚruleÚnumÚrules_base_rulerT   ÚnewstrrR   rL   rS   s                @@@r   Ú
expand_subrc   �   sá  ú€ Ø�^‰^˜E >Ó2€FØ�^‰^˜E =Ó1€FÜ Ó'€FÜ�\‰\˜' 6Ó*€Fôô �[‰[˜ 6Ó*€Fà€GØ€IØ€EÜ× Ñ  Ó(ò 9ˆØ�EŠ>Ø—j‘j  E§I¡I¨a°Ó$6Ó7ˆGØˆÜ Ð#<¸Q¸C¸qÐ!AÓBÐBØ˜‰~ g×&8Ñ&8¸Ô&=Ø"��a‘Ø7>·}±}ÀSÓ7IÖJ°!�A—I‘I˜i¨Õ-ÐJˆDÐJÜ�d“)ˆCàˆØ�Ø��a‘Ø‘	Ø˜’Ø��a’à"%§(¡(¨5°Ñ+;Ó"<�Üð  Ø )˜{¨!¨OÐ+<ð =Ø˜S  ' ¨,ð8õ 9ð%9ñ* Øˆõ4ð €FÜ�7‹^ò =ˆØ”+—/‘/ (¨FÓ3°fÑ<Ñ<‰ð=ð �^‰^˜N¨CÓ0€FØ�^‰^˜M¨3Ó/€FØ€Mùò7 Ks   Ã'F0c                 ó  — | }d}t        |«      }d}i }|j                  t        «       |D ]I  }t        |||d    «      \  }}||z  }|j                  |«       |t	        ||d   |d    |«      z  }|d   }ŒK |||d  z  }|S )Nr+   r   r   )r   ÚupdateÚ_special_namesr.   rc   )	Úallstrrb   ÚwritestrÚstructÚoldendr$   rU   Ú
cleanedstrÚdefss	            r   Úprocess_strrm   ¿   s«   € Ø€FØ€Hä˜VÓ$€Fà€FØ€EØ	‡L�L”Ô Øò ˆÜ8¸ÀÀsÈ1ÁvÐ9NÓOÑˆ
�DØ�JÑˆØ�‰�TÔØ”J˜v c¨!¡f¨S°©VÐ4°eÓ<Ñ<ˆØ�Q‘‰ðð ��v�w�Ñ€Hà€Or   z8(\n|\A)\s*include\s*['\"](?P<name>[\w\d./\\]+\.src)['\"]c                 ó"  — t         j                  j                  | «      }t        | «      5 }g }|D ]Æ  }t        j                  |«      }|rœ|j                  d«      }t         j                  j                  |«      s t         j                  j                  ||«      }t         j                  j                  |«      r|j                  t        |«      «       Œ¤|j                  |«       Œ¶|j                  |«       ŒÈ 	 d d d «       |S # 1 sw Y   S xY w)Nr&   )ÚosÚpathÚdirnameÚopenÚinclude_src_rer   r6   Úisabsr7   ÚisfileÚextendÚresolve_includesr   )ÚsourceÚdÚfidÚlinesÚliner   Úfns          r   rw   rw   Õ   sÍ   € Ü
�‰�‰˜Ó€AÜ	ˆf‹ð #˜ØˆØò 	#ˆDÜ×$Ñ$ TÓ*ˆAÙØ—W‘W˜V“_�Ü—w‘w—}‘} RÔ(ÜŸ™Ÿ™ a¨Ó,�BÜ—7‘7—>‘> "Ô%Ø—L‘LÔ!1°"Ó!5Õ6à—L‘L Õ&à—‘˜TÕ"ñ	#÷#ð €L÷#ð €Lús   «CDÄDc                 óL   — t        | «      }t        dj                  |«      «      S )Nr+   )rw   rm   r7   )rx   r{   s     r   Úprocess_filer   ç   s   € Ü˜VÓ$€EÜ�r—w‘w˜u“~Ó&Ð&r   zÿ
<_c=s,d,c,z>
<_t=real,double precision,complex,double complex>
<prefix=s,d,c,z>
<ftype=real,double precision,complex,double complex>
<ctype=float,double,complex_float,complex_double>
<ftypereal=real,double precision,\0,\1>
<ctypereal=float,double,\0,\1>
)ro   r,   ÚcompileÚIr   r   r   r   rW   r   rV   r)   r.   r4   r"   r    rI   rc   rm   rs   rw   r   rf   © r   r   ú<module>rƒ      s  ðÛ 	Û 	ð+ðZ �2—:‘:ÐSÐUW×UYÑUYÓZÐ Ø�—‘ÐJÈBÏDÉDÓQ€Ø�B—J‘JÐ=¸r¿t¹tÓDÐ òð8 ˆb�j‰jÐ/Ó0€Øˆ2�:‰:Ð8Ó9€Ø
ˆ"�*‰*Ð'Ó
(€òòð ˆ"�*‰*Ð,Ó
-€òòð �2—:‘:Ð6Ó7Ð ò<ò|ð( �—‘ÐWÐY[×Y]ÑY]Ó^€òò$'ñ
 $ð %ó �r   