Ë
    Z^(h€W  ã                  ó  — d dl mZ d dlZd dlZd dlZd dlmZmZmZ d dl	m
Z
 d dlmZ d dlZd dlmc mZ d dlmZ d dlmZ d dlmZ d dlmZ d d	lmZmZ d d
lmZmZmZm Z m!Z!m"Z" d dl#m$Z$ d dl%m&Z&m'Z'm(Z(m)Z)m*Z* d dl+m,Z, erd dl-m.Z.  edg d¢«      Z/	 	 	 	 	 	 	 	 dd„Z0	 d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„Z1dd„Z2	 d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„Z3	 	 	 	 d	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 dd„Z4	 d	 	 	 	 	 	 	 	 	 d d„Z5e6dk(  r e2«        yy)!é    )ÚannotationsN)ÚCounterÚdefaultdictÚ
namedtuple)ÚPath)ÚTYPE_CHECKING)ÚDispatcherSignature)ÚCodeTemplate)Únative_function_manager)Úget_grouped_native_functionsÚparse_native_yaml)ÚBackendIndexÚBackendMetadataÚDispatchKeyÚNativeFunctionÚNativeFunctionsGroupÚOperatorName)ÚSelectiveBuilder)Ú	concatMapÚcontextÚFileManagerÚNamespaceHelperÚTarget)Ú
YamlLoader)ÚSequenceÚParsedExternalYaml)Úbackend_keyÚautograd_keyÚ
class_nameÚcpp_namespaceÚbackend_indicesc                óÎ	  ‡‡‡— t        d„ |«      D �ci c]  }|j                  j                  |“Œ c}Št        | «      5 }t	        j
                  |t        ¬«      }d d d «       t        t        «      sJ ‚g d¢}|j                  dd «      Š‰€J d«       ‚|j                  dd «      }|j                  dd «      Š‰€J d«       ‚|j                  d	d
«      }t        |t        «      s
J d|› �«       ‚|j                  dd
«      }t        |t        «      s
J d|› �«       ‚|j                  dg «      }	|	€g }	t        |	t        «      sJ d|	› dt        |	«      › d�«       ‚|j                  dg «      }
|
€g }
t        |
t        «      sJ d|	› dt        |	«      › d�«       ‚t        |
«      }|j                  dg «      }t        |t        «      s
J d|› �«       ‚|j                  dg «      }|	j                  |«       |j                  di «       |j                  di «       t        |j!                  «       «      dk(  s;J | › ddj#                  |j!                  «       «      › ddj#                  |«      › �«       ‚	 	 	 	 	 	 	 	 	 	 	 	 d%ˆˆfd„}d }t        |	«      dkD  rDt%        ˆfd„«      5  t'        j(                  ‰«      }d d d «        ||	||||¬«      }||vsJ ‚|||<   d }t        |«      dkD  rGt%        ˆfd „«      5  t'        j(                  d!‰› �«      }d d d «        ||||||¬«      }||vsJ ‚|||<   |D �]X  }t        |t*        «      rS|€g n$||   j-                  |«      fD �cg c]  }|�|‘Œ c}}|€g n$||   j-                  |«      fD �cg c]  }|�|‘Œ c}}nˆ|€g n?|j/                  «       D �cg c]  }||   j-                  |«      ‘Œ c}D �cg c]  }|�|‘Œ c}}|€g n?|j/                  «       D �cg c]  }||   j-                  |«      ‘Œ c}D �cg c]  }|�|‘Œ c}}|D �cg c]  }|€Œ|‘Œ	 }}|D �cg c]  }|€Œ|‘Œ	 }}t        |«      dk(  r�Œ#t        |«      dk(  r�Œ3J d"|d   j0                  › d#|d   j0                  › d$�«       ‚ t3        |||‰|«      S c c}w # 1 sw Y   �Œ?xY w# 1 sw Y   �ŒøxY w# 1 sw Y   �Œ®xY wc c}w c c}w c c}w c c}w c c}w c c}w c c}w c c}w )&Nc                óZ   — t        | t        «      r| gS t        | j                  «       «      S ©N)Ú
isinstancer   ÚlistÚ	functions©Úfs    úX/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/torchgen/gen_backend_stubs.pyú<lambda>z$parse_backend_yaml.<locals>.<lambda>3   s    € œZ¨¬>Ô:�q�c€ ÄÀQÇ[Á[Ã]Ó@S€ ó    )ÚLoader)
Úbackendr   r    Úextra_headersÚ	supportedÚautogradÚfull_codegenÚ
non_nativeÚir_genÚsymintr.   z&You must provide a value for "backend"r   r    z,You must provide a value for "cpp_namespace"Úuse_out_as_primaryFzHYou must provide either True or False for use_out_as_primary. Provided: Údevice_guardzBYou must provide either True or False for device_guard. Provided: r0   z,expected "supported" to be a list, but got: z
 (of type ú)r5   z)expected "symint" to be a list, but got: r1   z+expected "autograd" to be a list, but got: r2   r3   r4   r   z contains unexpected keys: z, z). Only the following keys are supported: c               óø   •— i }| D ]c  }t        j                  |«      }|‰v s
J d|› �«       ‚t        j                  ‰|   j                  «      }||v r|dz  }t        |d‰
¬«      }	|	||<   Œe t        ||d||¬«      S )Nz Found an invalid operator name: Ú_symintF)ÚkernelÚ
structuredr    T)Údispatch_keyr6   Úexternalr7   Úindex)r   ÚparseÚ
dispatcherÚnameÚfuncr   r   )Úbackend_opsÚ
symint_opsr=   r6   Úuse_device_guardÚmetadataÚopÚop_nameÚkernel_nameÚmr    Únative_functions_maps             €€r*   Úcreate_backend_indexz0parse_backend_yaml.<locals>.create_backend_index   s²   ø€ ð 9;ˆØò 	"ˆBÜ"×(Ñ(¨Ó,ˆGØÐ2Ñ2ð Ø2°7°)Ð<óÐ2ô %Ÿ/™/Ð*>¸wÑ*G×*LÑ*LÓMˆKØ�ZÑØ˜yÑ(�äØ"¨uÀMôˆAð !"ˆH�WÒð	"ô Ø%Ø1ØØ)Øô
ð 	
r,   c                 ó   •— d‰ › d�S )NzFThe provided value for "backend" must be a valid DispatchKey, but got ú.© ©r.   s   €r*   r+   z$parse_backend_yaml.<locals>.<lambda>¡   s   ø€ Ð\Ð]dÐ\eÐefÐg€ r,   )r6   rF   c                 ó   •— d‰ › d�S )Nz The "autograd" key was specified, which indicates that you would like to override the behavior of autograd for some operators on your backend. However "Autogradz" is not a valid DispatchKey.rP   rQ   s   €r*   r+   z$parse_backend_yaml.<locals>.<lambda>²   s   ø€ ð OØOVÈiÐWtðv€ r,   ÚAutogradzÊCurrently, all variants of an op must either be registered to a backend key, or to a backend's autograd key. They cannot be mix and matched. If this is something you need, feel free to create an issue! z" is listed under "supported", but z is listed under "autograd".)rD   z	list[str]rE   zset[str]r=   r   r6   ÚboolrF   rT   Úreturnr   )r   rC   rB   ÚopenÚyamlÚloadr   r%   ÚdictÚpoprT   r&   ÚtypeÚsetÚextendÚlenÚkeysÚjoinr   r   r@   r   Ú
get_kernelr'   r;   r   )Úbackend_yaml_pathÚgrouped_native_functionsr!   r)   Úyaml_valuesÚ
valid_keysr   r6   rF   r0   r5   Ú
symint_setÚsupported_autogradr2   rM   r   Úbackend_idxr   Úautograd_idxÚgrK   Úforward_kernelsÚbackward_kernelsr.   r    rL   s                          @@@r*   Úparse_backend_yamlrm   +   s   ú€ ô ÙSØ$ó
ö@àð 	
�‰�‰�Q‰ò@Ðô 
ÐÓ	 ð 6 AÜ—i‘i ¬*Ô5ˆ÷6ä�k¤4Ô(Ð(Ð(ò€Jð �o‰o˜i¨Ó.€GØÐÐHÐ HÓHÐà—‘ ¨tÓ4€Jà—O‘O O°TÓ:€MØÐ$ÐTÐ&TÓTÐ$ð %Ÿ™Ð)=¸uÓEÐÜÐ(¬$Ô/ð Ø
RÐSeÐRfÐgóÐ/ð #—‘ ~°uÓ=ÐÜÐ&¬Ô-ð Ø
LÐM]ÐL^Ð_óÐ-ð —‘ ¨RÓ0€IØÐØˆ	Ü�i¤Ô&ð Ø
6°y°kÀÌDÐQZËOÐK\Ð\]Ð^óÐ&ð �_‰_˜X rÓ*€FØ€~ØˆÜ�fœdÔ#ð Ø
3°I°;¸jÌÈiËÐHYÐYZÐ[óÐ#ô �V“€Jà$Ÿ™¨°RÓ8ÐÜÐ(¬$Ô/ð Ø
5Ð6HÐ5IÐJóÐ/ð
 —?‘? >°2Ó6€LØ×Ñ�\Ô"ð ‡O�O�L "Ô%ð ‡O�O�H˜bÔ!äˆ{×ÑÓ!Ó" aÒ'ð ØÐ
Ð8¸¿¹À;×CSÑCSÓCUÓ9VÐ8Wð X2Ø26·)±)¸JÓ2GÐ1Hð	JóÐ'ð

Øð
àð
ð "ð
ð
 !ð
ð ð
ð 
ö
ð> '+€KÜ
ˆ9ƒ~˜ÒÜÛgó
ñ 	5ô &×+Ñ+¨GÓ4ˆK÷	5ñ
 +ØØØØ1Ø-ô
ˆð  /Ñ1Ð1Ð1Ø'2ˆ˜Ñ$à'+€LÜ
ÐÓ Ò"Üóvó
ñ 	Cô '×,Ñ,¨x¸°yÐ-AÓBˆL÷		Cñ ,ØØØØ1Ø-ô
ˆð  ?Ñ2Ð2Ð2Ø(4ˆ˜Ñ%à%ó 4
ˆÜ�aœÔ(ð Ð&ñ ð .¨kÑ:×EÑEÀaÓHÐIöàØ�}ò òð ð  Ð'ñ ð .¨lÑ;×FÑFÀqÓIÐJöàØ�}ò òñ ð Ð&ñ ð "#§¡£öàð (¨Ñ4×?Ñ?ÀÕBòöàð �}ò òð ð  Ð'ñ ð "#§¡£öàð (¨Ñ5×@Ñ@ÀÕCòöàð �}ò òð ð '6ÖG ¸¹š1ÐGˆÐGØ'7ÖI !¸1¹=šAÐIÐÐIÜ�?Ó# qÔ(¬CÐ0@Ó,AÀQÔ,Fð 	
ðà�Ñ×ÑÐ Ð=Ð>NÈqÑ>Q×>XÑ>XÐ=YÐYuðwó	
ÐFða4
ôl Ø�\ :¨}¸oóð ùòO@÷6ñ 6ú÷P	5ñ 	5ú÷"	Cñ 	Cüò*ùòùòùòùòùòùò HùÚIsd   “R¿RÊR%Ë-R2ÍR?Î SÎ%S	ÏSÏ)SÐ	SÐSÐ#SÐ-S"Ð5S"ÒR"Ò%R/Ò2R<c                óú  — 	 t        |«      5 }|j                  «       }d d d «       |€g }||   j                  g|€g n||   j                  gz   }
t        t        t        d„ |
«      «      «      }| D �cg c]B  }|j                  j                  |j                  «       v r|j                  j                  |vr|‘ŒD }}t        t        «      }|D ]-  }|||j                  j                        j                  |«       Œ/ d|› d�}t        t        j                  |«      D ��cg c]  \  }}|j!                  d«      s|‘Œ c}}«      }d}|j#                  «       D ]Y  \  }}t%        |«      }||   }||k7  sŒdd„}dj'                  |D �cg c]
  } ||«      ‘Œ c}«      }|d|› d	|› d
|› d|› d|› d�z  }Œ[ |dk(  sJ |«       ‚y # 1 sw Y   �Œ¤xY w# t        $ r}	t        d|› �«      |	‚d }	~	ww xY wc c}w c c}}w c c}w )Nz2Unable to read from the specified impl_path file: c                ól   — | j                  «       D ��cg c]  \  }}||j                  f‘Œ c}}S c c}}w r$   )Úitemsr;   )r?   rI   rG   s      r*   r+   z*error_on_missing_kernels.<locals>.<lambda>  s/   € ØHMÏÉË÷Ù3D°7¸H�W˜hŸo™oÒ.ó€ ùó s   ”0z(.*)z::\s*([\w\d]*)\(ú:Ú c                óž   — t        | «      5  t        j                  | j                  «      j	                  «       cd d d «       S # 1 sw Y   y xY wr$   )r   r	   Úfrom_schemarC   Údeclr(   s    r*   Úcreate_declz-error_on_missing_kernels.<locals>.create_declC  s>   € Ü,¨QÓ/ñ JÜ.×:Ñ:¸1¿6¹6ÓB×GÑGÓI÷J÷ Jò Jús   Œ-AÁAú
z$ is missing a kernel definition for z. We found z( kernel(s) with that name,
but expected zH kernel(s). The expected function schemas for the missing operator are:
z

)r)   r   rU   Ústr)rV   ÚreadÚOSErrorÚAssertionErrorr?   rY   r&   r   rC   rB   r_   r   Úappendr   ÚreÚfindallÚendswithrp   r^   r`   )Únative_functionsr!   r   r   r   Úkernel_defn_file_pathr2   r)   Úbackend_defnsÚeÚindicesÚexpected_backend_op_namesÚexpected_backend_native_funcsÚ#expected_backend_kernel_name_countsÚnative_fÚkernel_defn_regexÚxÚyÚ!actual_backend_kernel_name_countsÚmissing_kernels_err_msgÚexpected_nameÚfuncsÚexpected_overload_countÚactual_overload_countrv   Úexpected_schemas_strs                             r*   Úerror_on_missing_kernelsr“   ü   sw  € ðÜÐ'Ó(ð 	%¨AØŸF™F›HˆM÷	%ð ÐØˆà˜{Ñ+×1Ñ1Ð2ØÐ"‰¨¸Ñ)F×)LÑ)LÐ(Mñ€Gô
 :>ÜÜñð ó	ó	
ó	:Ðð "ö;àØ�6‰6�;‰;Ð3×8Ñ8Ó:Ñ:Ø�F‰F�K‰K˜|Ñ+ò 	
ð;Ð!ð ;ô LWÜóLÐ'ð 2ò ˆØ+Ø% h§m¡m×&8Ñ&8Ñ9ñ	
ç
‰&�Õ
ðð   
˜|Ð+;Ð<ÐÜ(/ô Ÿ*™*Ð%6¸ÓF÷	
á��AØ—:‘:˜c”?ò ó	
ó
)Ð%ð !ÐØ C× IÑ IÓ Kò Ñˆ�uÜ"% e£*ÐØ AÀ-Ñ PÐØ"Ð&;Ó;óJð $(§9¡9ÀeÖ-LÀ©k¸!­nÒ-LÓ#MÐ Ø#ð ,Ø€Ð0°°¸{ÐK`ÐJað bØ%Ð&ð 'ØÐ ð ð(ñ Ñ#ðð  # bÒ(ÐAÐ*AÓAÑ(÷Q	%ñ 	%ûäò ÜØ@ÐAVÐ@WÐXó
àð	ûðüò.;ùó.	
ùò" .Ms@   ‚G �G žG Á2AG-Ä G2
ÆG8
Ç G
ÇG Ç	G*ÇG%Ç%G*c                 óx  — t        j                  d¬«      } | j                  dddd¬«       | j                  dd	d
d¬«       | j                  ddt        dd¬«       | j                  ddt        d d¬«       | j                  «       }t        |j                  |j                  |j                  |j                  «       y )NzGenerate backend stub files)Údescriptionz-sz--source-yamlz--source_yamlzApath to source yaml file containing operator external definitions)Úhelpz-oz--output-dirz--output_dirzoutput directoryz	--dry-runz	--dry_runF)r[   Údefaultr–   z--impl-pathz--impl_pathz9path to the source C++ file containing kernel definitions)ÚargparseÚArgumentParserÚadd_argumentrT   rx   Ú
parse_argsÚrunÚsource_yamlÚ
output_dirÚdry_runÚ	impl_path)ÚparserÚoptionss     r*   Úmainr£   Q  sÃ   € Ü×$Ñ$Ð1NÔO€FØ
×ÑØØØØPð	 ô ð ×Ñ˜˜n¨nÐCUÐÔVØ
×ÑØ�[¤t°UÐASð ô ð ×ÑØØÜØØHð ô ð ×ÑÓ!€Gäˆ×Ñ˜W×/Ñ/°·±À'×BSÑBSÕTr,   c                óþ   ‡‡‡‡‡‡‡	‡
‡— ‰€J ‚dŠ
t        t        t        ˆˆfd„|«      «      «      Š	t        t        t        ˆˆfd„|«      «      «      Št        |«      Š| j	                  ‰› d�dˆˆ	ˆˆˆˆ
ˆfd„«       y )NzAAutogenerated file by gen_backend_stubs.py. Do not edit directly!c                ó6   •— t        j                  | ‰‰   «      S r$   ©ÚdestÚ#compute_native_function_declaration)r)   Úbackend_dispatch_keyr!   s    €€r*   r+   z4gen_dispatchkey_nativefunc_headers.<locals>.<lambda>~  s   ø€ œ$×BÑBØ�Ð';Ñ<ó€ r,   c                ó>   •— ‰€g S t        j                  | ‰‰   «      S r$   r¦   )r)   Úautograd_dispatch_keyr!   s    €€r*   r+   z4gen_dispatchkey_nativefunc_headers.<locals>.<lambda>ˆ  s.   ø€ Ø(Ð0ð € ä×=Ñ=Ø�Ð'<Ñ=óð r,   úNativeFunctions.hzDispatchKeyNativeFunctions.hc                 óF   •— ‰‰j                   ‰‰j                  ‰‰ z   ‰‰dœS )N)Úgenerated_commentÚnamespace_prologuer   Únamespace_epilogueÚdispatch_declarationsÚBackendNamer   )ÚprologueÚepilogue)Úautograd_declarationsÚbackend_declarationsr©   Úbackend_namer   r®   Ú	ns_helpers   €€€€€€€r*   r+   z4gen_dispatchkey_nativefunc_headers.<locals>.<lambda>–  s1   ø€ Ø!2Ø"+×"4Ñ"4Ø$Ø"+×"4Ñ"4Ø%9Ð<QÑ%QØ'Ø/ñ
€ r,   )Úsortedr\   r   r   Úwrite_with_template)Úfmr   r    r!   rc   r©   r«   r·   rµ   r¶   r®   r¸   s    ` ` ```@@@@r*   Ú"gen_dispatchkey_nativefunc_headersr¼   i  s›   ÿø€ ð Ð!Ð!Ð!àKð ô "ÜÜôð )ó	ó	
ó	Ðô #ÜÜôð
 )óó		
óÐô   Ó.€IØ×ÑØÐ
 Ð 1Ð2Ø&÷	
ñ 	
õr,   c                ó  ‡ ‡‡‡‡‡	‡‡‡‡‡‡— |› d|› d�g}|rdj                  d„ |D «       «      Šndj                  d„ |D «       «      Š‰€J ‚|‰   Št        t        t        j                  ‰t
        j                  ‰dd‰› d¬«      ‰«      «      }dŠt        d	¬
«      ŠdŠdŠ|rt        d«      }|j                  ‰|¬«      Šnt        d«      }|j                  |
‰|¬«      Š‰ j                  d‰› d�dˆˆˆˆˆˆ ˆˆˆˆ	ˆˆfd„«       y )Nú/r¬   rw   c              3  ó(   K  — | ]
  }d |› d�–— Œ y­w)z
#include <ú>NrP   ©Ú.0Úhs     r*   ú	<genexpr>z/gen_dispatcher_registrations.<locals>.<genexpr>µ  ó   è ø€ Ò0TÀq°:¸a¸SÀÔ1BÑ0Tùó   ‚c              3  ó(   K  — | ]
  }d |› d�–— Œ y­w)z
#include "ú"NrP   rÁ   s     r*   rÄ   z/gen_dispatcher_registrations.<locals>.<genexpr>·  rÅ   rÆ   FT©Úrocmr5   Úclass_method_nameÚskip_dispatcher_op_registrationÚat)Únamespace_strrr   zOTORCH_LIBRARY_IMPL(aten, $dispatch_key, m) {
    $dispatch_registrations_body
})r=   Údispatch_registrations_bodyzõTORCH_API void Register${backend_name}${dispatch_key}NativeFunctions();
TORCH_API void Register${backend_name}${dispatch_key}NativeFunctions() {
    static auto m = MAKE_TORCH_LIBRARY_IMPL(aten, $dispatch_key);
    $dispatch_registrations_body
})r·   r=   rÏ   ÚRegisterz.cppzRegisterDispatchKey.cppc                 óâ   •— d‰‰	sdnd‰‰j                  «       t        j                  ‰ ‰	d¬«      t        j                  ‰ «      ‰j	                  dˆ ˆˆˆˆˆˆ
ˆfd„«      j                  ‰«      dœS )Nrr   z#include <ATen/Functions.h>F)Úper_operator_headersrÊ   zRegisterDispatchDefinitions.inic                 óÔ   •— ‰j                   ‰j                  ‰‰‰j                  «       dt        t	        t        j                  ‰ t        j                  ‰dd‰› d¬«      ‰«      «      dœS )Nrr   FTrÉ   )Úns_prologueÚns_epilogueÚ"static_init_dispatch_registrationsÚdeferred_dispatch_registrationsÚdispatch_namespaceÚdispatch_namespaced_definitionsÚdispatch_anonymous_definitions)	r³   r´   Úlowerr&   r   r§   ÚRegisterDispatchKeyr   ÚANONYMOUS_DEFINITION)Úbackend_indexr   r×   r=   rc   r¸   ÚselectorrÖ   s   €€€€€€€€r*   r+   z@gen_dispatcher_registrations.<locals>.<lambda>.<locals>.<lambda>ù  sq   ø€ Ø#,×#5Ñ#5Ø#,×#5Ñ#5Ø:\Ø7VØ*6×*<Ñ*<Ó*>Ø79Ü6:Ü!Ü ×4Ñ4Ø -Ü &× ;Ñ ;Ø (Ø%*Ø'+Ø5?°LØ@Eôð 5óó7ñ€ r,   )Úextra_cuda_headersÚexternal_backend_headersÚops_headersr   rØ   Údispatch_headersÚdispatch_helpersÚdispatch_definitions)rÛ   r§   Úgen_registration_headersÚgen_registration_helpersÚsubstitute_with_templateÚsplit)rÞ   r   r×   r=   Úexternal_backend_headers_strr»   rc   Únewliner¸   rÒ   rß   rÖ   s   €€€€€€€€€€€€r*   r+   z.gen_dispatcher_registrations.<locals>.<lambda>ë  sw   ø€ Ø"$Ø(Dá'ñ 9àØ'Ø".×"4Ñ"4Ó"6Ü $× =Ñ =ØÐ4HÈuô!ô !%× =Ñ =¸mÓ LØ$&×$?Ñ$?Ø1÷ò ó%÷0 ‰e�G‹nñI%
€ r,   )r`   r&   r   r§   rÜ   r   ÚREGISTRATIONr   r
   Ú
substituterº   )r»   rž   r   r!   rc   r©   r=   rß   Úbuild_in_treerÒ   r·   Úeager_registrationÚheadersrÏ   Ústatic_templateÚdeferred_templaterÞ   r×   rê   rë   r¸   rÖ   s   ` ` ` `` `      @@@@@@r*   Úgen_dispatcher_registrationsró   ¢  sS  ÿû€ ð  ˆ,�aÐ,Ð-Ð->Ð?ð€Gñ Ø'+§y¡yÑ0TÈGÔ0TÓ'TÑ$à'+§y¡yÑ0TÈGÔ0TÓ'TÐ$àÐ!Ð!Ð!Ø# LÑ1€Mä"&ÜÜ×$Ñ$ØÜ×#Ñ#ØØØØ%/ LØ05ôð %ó	
ó#Ðð €GÜ¨dÔ3€IØ&(Ð#Ø)+Ð&ÙÜ&ðó
ˆð .=×-GÑ-GØ%Ø(Cð .Hó .
Ñ*ô
 )ðó
Ðð +<×*FÑ*FØ%Ø%Ø(Cð +Gó +
Ð'ð ×ÑØ
�<�. Ð%Ø!÷%	
ö %	
õ)r,   c                ó  ‡‡— t        t        «      j                  «       j                  j                  }t        j
                  j                  |d«      Šdˆˆfd„} ||«      }t        j
                  j                  |d«      }t        j
                  j                  |d«      }t        ||«      }	|	j                  |	j                  }}
t        |
«      }t        | ||«      }|j                  }|j                  }|j                  }|j                  }|j                  }t!        j"                  «       }|€y |€||   j%                  «       }|€J ‚|�t'        |
|||||«       t)        |||||||«       |€|gn||gD ]  }t+        ||||||||«       Œ y )Nzaten/src/ATen/templatesc                ó    •— t        | ‰‰¬«      S )N)Úinstall_dirÚtemplate_dirrŸ   )r   )rö   rŸ   r÷   s    €€r*   Úmake_file_managerzrun.<locals>.make_file_manager  s   ø€ ÜØ#°,Èô
ð 	
r,   z*aten/src/ATen/native/native_functions.yamlzaten/src/ATen/native/tags.yaml)rö   rx   rU   r   )r   Ú__file__ÚabsoluteÚparentÚosÚpathr`   r   r€   r!   r   rm   r   r   r    r   r   Úget_nop_selectorÚnative_function_class_namer“   r¼   ró   )r�   rž   rŸ   r    Úpytorch_rootrø   r»   Únative_yaml_pathÚtags_yaml_pathÚparsed_yamlr€   r!   rc   Úparsed_backend_yamlr   r   r    r   rß   r=   r÷   s     `                 @r*   rœ   rœ     s¸  ù€ ô œ“>×*Ñ*Ó,×3Ñ3×:Ñ:€LÜ—7‘7—<‘< Ð.GÓH€Lö
ñ
 
˜:Ó	&€Bä—w‘w—|‘|ØÐBóÐô —W‘W—\‘\ ,Ð0PÓQ€NÜ#Ð$4°nÓE€Kà×$Ñ$Ø×#Ñ#ð &Ðô  <Ð<LÓMÐÜ,ØÐ-¨óÐð &×1Ñ1€KØ&×3Ñ3€LØ'×5Ñ5€MØ$×/Ñ/€JØ)×9Ñ9€Oä×0Ñ0Ó2€HàÐààÐð
 % [Ñ1×LÑLÓNˆ
ØÐ!Ð!Ð!àÐÜ ØØØØØØô	
ô 'Ø
ØØØØ ØØôð &Ð-ˆ‰°KÀÐ3Nò
ˆô 	%ØØØØØ$ØØØõ		
ñ
r,   Ú__main__)rb   rx   rc   ú/Sequence[NativeFunction | NativeFunctionsGroup]r!   údict[DispatchKey, BackendIndex]rU   r   r$   )r€   zSequence[NativeFunction]r!   r  r   r   r   úDispatchKey | Noner   rx   r�   rx   r2   zlist[OperatorName] | NonerU   ÚNone)rU   r	  )rr   )r»   r   r   rx   r    rx   r!   r  rc   r  r©   r   r«   r  r·   rx   rU   r	  )FFrr   T)r»   r   rž   rx   r   rx   r!   r  rc   r  r©   r   r=   r   rß   r   rî   rT   rÒ   rT   r·   rx   rï   rT   rU   r	  )
r�   rx   rž   rx   rŸ   rT   r    z
str | NonerU   r	  )7Ú
__future__r   r˜   rü   r}   Úcollectionsr   r   r   Úpathlibr   Útypingr   rW   Útorchgen.api.dispatcherÚapirA   Útorchgen.destr§   Útorchgen.api.typesr	   Útorchgen.code_templater
   Útorchgen.contextr   Útorchgen.genr   r   Útorchgen.modelr   r   r   r   r   r   Ú!torchgen.selective_build.selectorr   Útorchgen.utilsr   r   r   r   r   Útorchgen.yaml_utilsr   Úcollections.abcr   r   rm   r“   r£   r¼   ró   rœ   Ú__name__rP   r,   r*   ú<module>r     sY  ðÝ "ã Û 	Û 	ß 8Ñ 8Ý Ý  ã ç ,Ð ,Ý Ý 2Ý /Ý 4ß H÷÷ õ ?ß SÕ SÝ *ñ Ý(ñ
  ØÚUóÐ ðNØðNàMðNð 5ðNð ó	Nðp /3ðRBØ.ðRBà4ðRBð ðRBð %ð	RBð
 ðRBð ðRBð ,ðRBð 
óRBójUð@ ð6Øð6àð6ð ð6ð 5ð	6ð
 Nð6ð &ð6ð .ð6ð ð6ð 
ó6ðF  Ø!&ØØ#ðoØðoàðoð ðoð 5ð	oð
 Nðoð &ðoð ðoð ðoð ðoð ðoð ðoð ðoð 
óoðf OSðO
ØðO
Ø"%ðO
Ø04ðO
ØAKðO
à	óO
ðd ˆzÒÙ…Fð r,   