Ë
    Z^(h«  ã            
      ó®   — d dl mZ d dlZd dlmZ erd dlmZmZ  G d„ d«      Ze	dk(  r, ed«      Z
 ee
j                  d	d
gddgddddgg ¬«      «       yy)é    )ÚannotationsN)ÚTYPE_CHECKING)ÚMappingÚSequencec                  ó’   — e Zd ZU dZ ej
                  eej                  «      Zded<   ded<   e	d	d„«       Z
d
dd„Z	 d	 	 	 	 	 dd„Zy)ÚCodeTemplatez-(^[^\n\S]*)?\$([^\d\W]\w*|\{,?[^\d\W]\w*\,?})ÚstrÚpatternÚfilenamec                óx   — t        | «      5 }t        |j                  «       | «      cd d d «       S # 1 sw Y   y xY w©N)Úopenr   Úread)r   Úfs     úT/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/torchgen/code_template.pyÚ	from_filezCodeTemplate.from_file   s0   € ä�(‹^ð 	4˜qÜ §¡£¨(Ó3÷	4÷ 	4ò 	4ús   Œ0°9c                ó    — || _         || _        y r   )r
   r   )Úselfr
   r   s      r   Ú__init__zCodeTemplate.__init__!   s   € ØˆŒØ ˆ�ó    Nc                ó‚   ‡‡‡‡— ‰€i Šdˆˆfd„Šdd„Šdˆˆfd„}| j                   j                  || j                  «      S )Nc                ó(   •— ‰€J ‚| ‰v r‰|    S ‰|    S r   © )ÚvÚenvÚkwargss    €€r   Úlookupz'CodeTemplate.substitute.<locals>.lookup+   s&   ø€ Ø�?Ð"�?Ø ! V¡�6˜!‘9Ð7°°Q±Ð7r   c           	     ó´   — dj                  |D ��cg c](  }t        |«      j                  «       D ]
  }| |z   dz   ‘Œ Œ* c}}«      j                  «       S c c}}w )NÚ ú
)Újoinr	   Ú
splitlinesÚrstrip)Úindentr   ÚeÚls       r   Úindent_linesz-CodeTemplate.substitute.<locals>.indent_lines/   sN   € Ø—7‘7Ø,-×K q´s¸1³v×7HÑ7HÓ7JÒK°!�˜!‘˜dÓ"ÐKÐ"ÓKóç‰f‹hðùÛKs   ‘-A
c                ó²  •— | j                  d«      }| j                  d«      }d}d}|d   dk(  r#|dd }|d   dk(  rd}|dd  }|d   dk(  rd}|d d } ‰	|«      }|�t        |t        «      s|g} ‰||«      S t        |t        «      r@dj                  |D �cg c]  }t	        |«      ‘Œ c}«      }t        |«      dk(  r|S ||z   |z   S t	        |«      S c c}w )	Né   é   r   r   ú{éÿÿÿÿú,z, )ÚgroupÚ
isinstanceÚlistr!   r	   Úlen)
Úmatchr$   ÚkeyÚcomma_beforeÚcomma_afterr   ÚxÚmiddler'   r   s
           €€r   Úreplacez(CodeTemplate.substitute.<locals>.replace4   sõ   ø€ Ø—[‘[ “^ˆFØ—+‘+˜a“.ˆCØˆLØˆKØ�1‰v˜Š}Ø˜!˜B�i�Ø�q‘6˜S’=Ø#'�LØ˜a˜b˜'�CØ�r‘7˜c’>Ø"&�KØ˜c˜r˜(�CÙ�s“ˆAØÐ!Ü! !¤TÔ*Ø˜�AÙ# F¨AÓ.Ð.Ü˜AœtÔ$ØŸ™°AÖ#6¨q¤C¨¥FÒ#6Ó7�Ü�q“6˜Q’;Ø!�MØ# fÑ,¨{Ñ:Ð:ä˜1“v�ùò $7s   ÂC)r   r	   ÚreturnÚobject)r$   r	   r   zSequence[object]r9   r	   )r2   zre.Match[str]r9   r	   )ÚsubstitutionÚsubr
   )r   r   r   r8   r'   r   s    `` @@r   Ú
substitutezCodeTemplate.substitute%   s=   û€ ð ˆ;ØˆCö	8ó	ö
	ð4 × Ñ ×$Ñ$ W¨d¯l©lÓ;Ð;r   )r   r	   r9   r   )r   )r
   r	   r   r	   r9   ÚNoner   )r   zMapping[str, object] | Noner   r:   r9   r	   )Ú__name__Ú
__module__Ú__qualname__Úsubstitution_strÚreÚcompileÚ	MULTILINEr;   Ú__annotations__Ústaticmethodr   r   r=   r   r   r   r   r      sb   … ØGÐØ�2—:‘:Ð.°·±Ó=€LàƒLØƒMàò4ó ð4ô!ð
 26ð)<Ø.ð)<ØAGð)<à	ô)<r   r   Ú__main__zŽ    int foo($args) {

        $bar
            $bar
        $a+$b
    }
    int commatest(int a${,stuff})
    int notest(int a${,empty,})
    Úhié   Úwhaté   é   é   z	things...Úothers)ÚargsÚbarÚaÚbÚstuffÚempty)Ú
__future__r   rC   Útypingr   Úcollections.abcr   r   r   r?   ÚcÚprintr=   r   r   r   ú<module>r[      sy   ðÝ "ã 	Ý  ñ ß1÷9<ñ 9<ðx ˆzÒÙð		ó	€Añ 
Ø	�‰Ø˜�Ø˜�ØØØ Ð)Øð 	ó 	
õ	ð r   