Ë
    Q/æji  ã            
      óž   — d dl mZ d dlZ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)Ú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     úY/root/repos/pocs/video-evals/.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>.replace0   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]r8   r   )r1   zre.Match[str]r8   r   )ÚsubstitutionÚsubr	   )r   r   r   r7   r&   r   s    `` @@r   Ú
substitutezCodeTemplate.substitute!   s=   û€ ð ˆ;ØˆCö	8ó	ö
	ð4 × Ñ ×$Ñ$ W¨d¯l©lÓ;Ð;r   )r
   r   r8   r   )r   )r	   r   r
   r   r8   ÚNoner   )r   zMapping[str, object] | Noner   r9   r8   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   rB   Útypingr   r   r   r>   ÚcÚprintr<   r   r   r   ú<module>rY      sq   ðÝ "ã 	ß $÷9<ñ 9<ðx ˆzÒÙð		ó	€Añ 
Ø	�‰Ø˜�Ø˜�ØØØ Ð)Øð 	ó 	
õ	ð r   