§
    Ì²Åj”Ä ã                  óà
  — U d dl mZ d dlZd dlZd dlZd dlmZ d dlmZmZ d dl	m
Z
mZ d dlmZmZmZ erd dlmZmZ  ed¬	¦  «         G d
„ d¦  «        ¦   «         Z G d„ de¦  «        ZdZd                     ¦   «         Zg d¢Zdgd„ eD ¦   «         z   ZddhZ G d„ de¦  «        Z G d„ de¦  «        Zdod„ZeD ]>ZeD ]9Z e eeez   ¦  «        s( e¦   «         Z! e"e!¦  «          e#de› e› de!› �¦  «        ‚Œ:Œ?ej$        ej%        ej&        ej'        hZ(ej%        ej&        hZ)ej&        ej*        ej+        ej,        ej%        ej$        ej'        ej-        ej.        ej/        ej0        ej1        ej2        ej3        ej4        ej5        ej6        ej7        ej8        ej9        ej:        ej;        ej<        ej=        ej>        gZ?dpd „Z@dpd!„ZAdpd"„ZBdpd#„ZCdpd$„ZDeAd%eBd&iZE G d'„ d(e¦  «        ZFi ZGd)eHd*<    eeFjI        eFjJ        eFjK        eFjL        eFjM        g¦  «        eGd+<    eeFjN        eFjO        g¦  «        eGd,<    eeFjP        eFjQ        g¦  «        eGd-<   eGd+         eGd,         z  eGd.<   eGd.         eGd-         z  eGd/<   eGd,         eGd-         z  eGd0<    G d1„ d2e¦  «        ZR G d3„ d4e¦  «        ZS G d5„ d6e¦  «        ZT ed¬	¦  «         G d7„ d8¦  «        ¦   «         ZU G d9„ d:e¦  «        ZV ed¬	¦  «         G d;„ d<¦  «        ¦   «         ZW ed¬	¦  «         G d=„ d>¦  «        ¦   «         ZX ed¬	¦  «         G d?„ d@¦  «        ¦   «         ZY ed¬	¦  «         G dA„ dB¦  «        ¦   «         ZZ ed¬	¦  «         G dC„ dD¦  «        ¦   «         Z[ ed¬	¦  «         G dE„ dF¦  «        ¦   «         Z\ ed¬	¦  «         G dG„ dH¦  «        ¦   «         Z] G dI„ dJe¦  «        Z^ ed¬	¦  «         G dK„ dLe]¦  «        ¦   «         Z_ ed¬	¦  «         G dM„ dNe]¦  «        ¦   «         Z` ed¬	¦  «         G dO„ dPe]¦  «        ¦   «         Za ed¬	¦  «         G dQ„ dRe]¦  «        ¦   «         Zb ed¬	¦  «         G dS„ dT¦  «        ¦   «         Zc ed¬	¦  «         G dU„ dV¦  «        ¦   «         Zd ed¬	¦  «         G dW„ dX¦  «        ¦   «         Ze ed¬	¦  «         G dY„ dZ¦  «        ¦   «         Zf ed¬	¦  «         G d[„ d\¦  «        ¦   «         Zgg d]¢Zh ed¬	¦  «         G d^„ d_¦  «        ¦   «         Zi ed¬	¦  «         G d`„ da¦  «        ¦   «         Zjdqde„Zk ed¬	¦  «         G df„ dg¦  «        ¦   «         Zldrdh„Zmdsdi„Zndtdl„Zo ed¬	¦  «         G dm„ dn¦  «        ¦   «         ZpdS )ué    )ÚannotationsN)Ú	dataclass)ÚautoÚEnum)ÚCallableÚTYPE_CHECKING)Úassert_neverÚNamespaceHelperÚ
OrderedSet)ÚIteratorÚSequenceT)Úfrozenc                  ó,   — e Zd ZU ded<   ded<   dd„ZdS )	ÚLocationÚstrÚfileÚintÚlineÚreturnc                ó$   — | j         › d| j        › �S )Nú:)r   r   ©Úselfs    ú?C:\Projects\Historical\venv\Lib\site-packages\torchgen/model.pyÚ__str__zLocation.__str__0   s   € Ø”)Ð)Ð)˜dœiÐ)Ð)Ð)ó    N©r   r   )Ú__name__Ú
__module__Ú__qualname__Ú__annotations__r   © r   r   r   r   +   s<   € € € € € € à€I€I�IØ€I€I�Ið*ð *ð *ð *ð *ð *r   r   c                  ó6   — e Zd Z e¦   «         Z e¦   «         ZdS )ÚVariantN)r   r   r    r   ÚfunctionÚmethodr"   r   r   r$   r$   5   s$   € € € € € Øˆt‰vŒv€HØˆT‰VŒV€F€F€Fr   r$   z
at::nativezVCPU CUDA HIP XLA MTIA MPS IPU XPU HPU VE Lazy Meta PrivateUse1 PrivateUse2 PrivateUse3)Ú Ú	QuantizedÚSparseÚ	SparseCsrÚNestedTensorÚAutogradÚAutogradNestedTensorc                ó   — g | ]}d |z   ‘ŒS )r,   r"   )Ú.0Ú	components     r   ú
<listcomp>r1   J   s*   € ð ,ð ,ð ,Ø(€J�Ñð,ð ,ð ,r   Ú	quantizedÚquantized_decomposedc                  ó  — e Zd ZdZeZ e¦   «         Z e¦   «         Z e¦   «         Z e¦   «         Z	 e¦   «         Z
 e¦   «         Z e¦   «         Z e¦   «         Z e¦   «         Z e¦   «         Z e¦   «         Z e¦   «         Z e¦   «         Z e¦   «         Z e¦   «         Z e¦   «         Z e¦   «         Z e¦   «         Z e¦   «         Z e¦   «         Z e¦   «         Z e¦   «         Z e¦   «         Z e¦   «         Z e¦   «         Z e¦   «         Z e¦   «         Z  e¦   «         Z! e¦   «         Z" e¦   «         Z# e¦   «         Z$ e¦   «         Z% e¦   «         Z& e¦   «         Z' e¦   «         Z( e¦   «         Z) e¦   «         Z* e¦   «         Z+ e¦   «         Z, e¦   «         Z- e¦   «         Z. e¦   «         Z/ e¦   «         Z0 e¦   «         Z1 e¦   «         Z2 e¦   «         Z3 e¦   «         Z4 e¦   «         Z5 e¦   «         Z6 e¦   «         Z7 e¦   «         Z8 e¦   «         Z9 e¦   «         Z: e¦   «         Z; e¦   «         Z< e¦   «         Z= e¦   «         Z> e¦   «         Z? e¦   «         Z@ e¦   «         ZA e¦   «         ZB e¦   «         ZC e¦   «         ZD e¦   «         ZE e¦   «         ZF e¦   «         ZG e¦   «         ZH e¦   «         ZI e¦   «         ZJ e¦   «         ZK e¦   «         ZL e¦   «         ZM e¦   «         ZN e¦   «         ZO e¦   «         ZP e¦   «         ZQ e¦   «         ZR e¦   «         ZS e¦   «         ZT e¦   «         ZU e¦   «         ZV e¦   «         ZW e¦   «         ZX e¦   «         ZY e¦   «         ZZ e¦   «         Z[ e¦   «         Z\ e¦   «         Z] e¦   «         Z^ e¦   «         Z_ e¦   «         Z` e¦   «         Za e¦   «         Zb e¦   «         Zc e¦   «         Zd e¦   «         Ze e¦   «         Zf e¦   «         Zg e¦   «         Zh e¦   «         Zi e¦   «         Zj e¦   «         Zk e¦   «         Zl e¦   «         Zm e¦   «         Zn e¦   «         Zo e¦   «         Zp e¦   «         Zq e¦   «         Zr e¦   «         Zs e¦   «         Zt e¦   «         Zu e¦   «         Zv e¦   «         Zw e¦   «         Zx e¦   «         Zy e¦   «         Zz e¦   «         Z{ e¦   «         Z| e¦   «         Z} e¦   «         Z~ e¦   «         Z e¦   «         Z€ e¦   «         Z� e¦   «         Z‚ e¦   «         Zƒ e¦   «         Z„ e¦   «         Z… e¦   «         Z† e¦   «         Z‡ e¦   «         Zˆ e¦   «         Z‰ e¦   «         ZŠ e¦   «         Z‹ e¦   «         ZŒ e¦   «         Z� e¦   «         ZŽ e¦   «         Z�d	d„Z�d	d„Z‘e’d
d„¦   «         Z“dS )ÚDispatchKeyr   r   r   c                ó   — | j         S ©N©Únamer   s    r   r   zDispatchKey.__str__ç   ó
   € ØŒyÐr   c                óD   — t          | ¦  «                             ¦   «         S r7   )r   Úlowerr   s    r   r<   zDispatchKey.lowerê   s   € Ý�4‰yŒy�ŠÑ Ô Ð r   Úvaluec                ó‚   — t           j                             ¦   «         D ]\  }}|| k    r|c S Œt          d| › �¦  «        ‚)Nzunknown dispatch key )r5   Ú__members__ÚitemsÚAssertionError©r=   ÚkÚvs      r   ÚparsezDispatchKey.parseí   sR   € åÔ+×1Ò1Ñ3Ô3ð 	ð 	‰DˆAˆqØ�EŠzˆzØ���ð åÐ<°UÐ<Ð<Ñ=Ô=Ð=r   Nr   )r=   r   r   r5   )”r   r   r    Ú	UndefinedÚCatchAllr   ÚFPGAÚMAIAÚVulkanÚMetalÚMKLDNNÚOpenGLÚOpenCLÚIDEEPÚCustomRNGKeyIdÚ	MkldnnCPUr)   r*   r+   ÚDenseÚPythonTLSSnapshotÚPreDispatchÚPythonDispatcherÚPythonÚFuncTorchDynamicLayerBackModeÚ
ZeroTensorÚ	ConjugateÚNegativeÚBackendSelectÚNamedÚAutogradOtherÚAutogradFunctionalityr-   ÚTracerÚAutocastÚAutocastCPUÚAutocastCUDAÚBatchedÚVmapModeÚFuncTorchGradWrapperÚFuncTorchBatchedÚBatchedNestedTensorÚFuncTorchVmapModeÚFuncTorchDynamicLayerFrontModeÚFunctionalizeÚTESTING_ONLY_GenericWrapperÚTESTING_ONLY_GenericModeÚADInplaceOrViewr,   ÚCompositeImplicitAutogradÚ%CompositeImplicitAutogradNestedTensorÚCompositeExplicitAutogradÚ&CompositeExplicitAutogradNonFunctionalÚFuncTorchBatchedDecompositionÚCPUÚCUDAÚHIPÚXLAÚMTIAÚMPSÚIPUÚXPUÚHPUÚVEÚLazyÚMetaÚPrivateUse1ÚPrivateUse2ÚPrivateUse3ÚQuantizedCPUÚQuantizedCUDAÚQuantizedHIPÚQuantizedXLAÚQuantizedMTIAÚQuantizedMPSÚQuantizedIPUÚQuantizedXPUÚQuantizedHPUÚQuantizedVEÚQuantizedLazyÚQuantizedMetaÚQuantizedPrivateUse1ÚQuantizedPrivateUse2ÚQuantizedPrivateUse3Ú	SparseCPUÚ
SparseCUDAÚ	SparseHIPÚ	SparseXLAÚ
SparseMTIAÚ	SparseMPSÚ	SparseIPUÚ	SparseXPUÚ	SparseHPUÚSparseVEÚ
SparseLazyÚ
SparseMetaÚSparsePrivateUse1ÚSparsePrivateUse2ÚSparsePrivateUse3ÚSparseCsrCPUÚSparseCsrCUDAÚSparseCsrHIPÚSparseCsrXLAÚSparseCsrMTIAÚSparseCsrMPSÚSparseCsrIPUÚSparseCsrXPUÚSparseCsrHPUÚSparseCsrVEÚSparseCsrLazyÚSparseCsrMetaÚSparseCsrPrivateUse1ÚSparseCsrPrivateUse2ÚSparseCsrPrivateUse3ÚNestedTensorCPUÚNestedTensorCUDAÚNestedTensorHIPÚNestedTensorXLAÚNestedTensorMTIAÚNestedTensorMPSÚNestedTensorIPUÚNestedTensorXPUÚNestedTensorHPUÚNestedTensorVEÚNestedTensorLazyÚNestedTensorMetaÚNestedTensorPrivateUse1ÚNestedTensorPrivateUse2ÚNestedTensorPrivateUse3ÚAutogradCPUÚAutogradCUDAÚAutogradHIPÚAutogradXLAÚAutogradMTIAÚAutogradMPSÚAutogradIPUÚAutogradXPUÚAutogradHPUÚ
AutogradVEÚAutogradLazyÚAutogradMetaÚAutogradPrivateUse1ÚAutogradPrivateUse2ÚAutogradPrivateUse3r   r<   ÚstaticmethodrE   r"   r   r   r5   r5   S   sz  € € € € € Ø€IØ€Hàˆ4‰6Œ6€DØˆ4‰6Œ6€DØˆT‰VŒV€FØˆD‰FŒF€EØˆT‰VŒV€FØˆT‰VŒV€FØˆT‰VŒV€FØˆD‰FŒF€EØ�T‘V”V€NØ�‘”€IØˆT‰VŒV€FØ�‘”€IØ�4‘6”6€LØˆD‰FŒF€Eà˜™œÐØ�$‘&”&€KØ�t‘v”vÐØˆT‰VŒV€FØ$( D¡F¤FÐ!Ø�‘”€JØ�‘”€IØˆt‰vŒv€HØ�D‘F”F€MØˆD‰FŒF€EØ�D‘F”F€MØ ˜D™FœFÐØ˜4™6œ6ÐØˆT‰VŒV€FØˆt‰vŒv€HØ�$‘&”&€KØ�4‘6”6€LØˆd‰fŒf€GØˆt‰vŒv€HØ˜4™6œ6ÐØ�t‘v”vÐØ˜$™&œ&ÐØ˜™œÐØ%) T¡V¤VÐ"Ø�D‘F”F€MØ"& $¡&¤&ÐØ#˜t™vœvÐà�d‘f”f€OØˆt‰vŒv€HØ $ ¡¤ÐØ,0¨D©F¬FÐ)Ø $ ¡¤ÐØ-1¨T©V¬VÐ*Ø$( D¡F¤FÐ!ð ˆ$‰&Œ&€CØˆ4‰6Œ6€DØ
ˆ$‰&Œ&€CØ
ˆ$‰&Œ&€CØˆ4‰6Œ6€DØ
ˆ$‰&Œ&€CØ
ˆ$‰&Œ&€CØ
ˆ$‰&Œ&€CØ
ˆ$‰&Œ&€CØ	ˆ‰Œ€BØˆ4‰6Œ6€DØˆ4‰6Œ6€DØ�$‘&”&€KØ�$‘&”&€KØ�$‘&”&€KØ�4‘6”6€LØ�D‘F”F€MØ�4‘6”6€LØ�4‘6”6€LØ�D‘F”F€MØ�4‘6”6€LØ�4‘6”6€LØ�4‘6”6€LØ�4‘6”6€LØ�$‘&”&€KØ�D‘F”F€MØ�D‘F”F€MØ˜4™6œ6ÐØ˜4™6œ6ÐØ˜4™6œ6ÐØ�‘”€IØ�‘”€JØ�‘”€IØ�‘”€IØ�‘”€JØ�‘”€IØ�‘”€IØ�‘”€IØ�‘”€IØˆt‰vŒv€HØ�‘”€JØ�‘”€JØ˜™œÐØ˜™œÐØ˜™œÐØ�4‘6”6€LØ�D‘F”F€MØ�4‘6”6€LØ�4‘6”6€LØ�D‘F”F€MØ�4‘6”6€LØ�4‘6”6€LØ�4‘6”6€LØ�4‘6”6€LØ�$‘&”&€KØ�D‘F”F€MØ�D‘F”F€MØ˜4™6œ6ÐØ˜4™6œ6ÐØ˜4™6œ6ÐØ�d‘f”f€OØ�t‘v”vÐØ�d‘f”f€OØ�d‘f”f€OØ�t‘v”vÐØ�d‘f”f€OØ�d‘f”f€OØ�d‘f”f€OØ�d‘f”f€OØ�T‘V”V€NØ�t‘v”vÐØ�t‘v”vÐØ"˜d™fœfÐØ"˜d™fœfÐØ"˜d™fœfÐØ�$‘&”&€KØ�4‘6”6€LØ�$‘&”&€KØ�$‘&”&€KØ�4‘6”6€LØ�$‘&”&€KØ�$‘&”&€KØ�$‘&”&€KØ�$‘&”&€KØ�‘”€JØ�4‘6”6€LØ�4‘6”6€LØ˜$™&œ&ÐØ˜$™&œ&ÐØ˜$™&œ&Ððð ð ð ð!ð !ð !ð !ð ð>ð >ð >ñ „\ð>ð >ð >r   r5   c                  óJ   — e Zd Z e¦   «         Z e¦   «         Z e¦   «         ZdS )Ú_TorchDispatchModeKeyN)r   r   r    r   ÚFAKEÚPROXYÚ
FUNCTIONALr"   r   r   rÏ   rÏ   õ   s/   € € € € € Øˆ4‰6Œ6€DØˆD‰FŒF€EØ�‘”€J€J€Jr   rÏ   r   r   c                 ó’   ‡— g } t           D ](Š|                      ˆfd„t          D ¦   «         ¦  «         Œ)d                     | ¦  «        S )Nc              3  ó(   •K  — | ]}d ‰› |› d�V — ŒdS )z    z	 = auto()Nr"   )r/   ÚbcÚfks     €r   ú	<genexpr>z.codegen_per_backend_entries.<locals>.<genexpr>þ   s4   øè è € ÐGÐG¨bÐ)˜Ð)˜BÐ)Ð)Ð)ÐGÐGÐGÐGÐGÐGr   ú
)ÚFUNCTIONALITY_KEYSÚextendÚBACKEND_COMPONENTSÚjoin)ÚrrÖ   s    @r   Úcodegen_per_backend_entriesrÞ   û   sT   ø€ Ø€AÝ ð Hð HˆØ	�ŠÐGÐGÐGÐGÕ4FÐGÑGÔGÑGÔGÐGÐGØ�9Š9�Q‰<Œ<Ðr   zMissing zL from DispatchKey enum.  Here is the autogenerated list we expect to have:

ÚdkÚboolc                ób   — | t           j        t           j        t           j        t           j        hv S r7   ©r5   rp   rq   rn   ro   ©rß   s    r   Úis_generic_dispatch_keyrä   6  s,   € ØÝÔ-ÝÔ:ÝÔ-ÝÔ9ð	ð ð r   c                óŽ   — | t           j        t           j        t           j        t           j        t           j        t           j        hv S r7   )r5   rt   rƒ   r’   r¡   r°   r¿   rã   s    r   Úis_cuda_dispatch_keyræ   @  s8   € ØÝÔÝÔ!ÝÔÝÔ!ÝÔ$ÝÔ ðð ð r   c                óŽ   — | t           j        t           j        t           j        t           j        t           j        t           j        hv S r7   )r5   rz   r‰   r˜   r§   r¶   rÅ   rã   s    r   Úis_xpu_dispatch_keyrè   L  s7   € ØÝŒÝÔ ÝÔÝÔ ÝÔ#ÝÔðð ð r   c                ó   — | t           v S r7   )ÚSTRUCTURED_DISPATCH_KEYSrã   s    r   Úis_structured_dispatch_keyrë   Y  s   € ØÕ)Ð)Ð)r   c                ó   — | t           v S r7   )ÚUFUNC_DISPATCH_KEYSrã   s    r   Úis_ufunc_dispatch_keyrî   ]  s   € àÕ$Ð$Ð$r   ÚcudaÚxpuc                  ó²  — e Zd Z e¦   «         Z e¦   «         Z e¦   «         Z e¦   «         Z e¦   «         Z e¦   «         Z	 e¦   «         Z
 e¦   «         Z e¦   «         Z e¦   «         Z e¦   «         Z e¦   «         Z e¦   «         Z e¦   «         Z e¦   «         Z e¦   «         Z e¦   «         Zdd„Zedd„¦   «         Zedd„¦   «         Zedd
„¦   «         ZdS )Ú
ScalarTyper   r   c                ó   — | j         S r7   r8   r   s    r   r   zScalarType.__str__y  r:   r   r=   úScalarType | Nonec                ób   — t           j                             ¦   «         D ]\  }}|| k    r|c S Œd S r7   )rò   r?   r@   rB   s      r   Úmaybe_parsezScalarType.maybe_parse|  s@   € åÔ*×0Ò0Ñ2Ô2ð 	ð 	‰DˆAˆqØ�EŠzˆzØ���ð àˆtr   c                óX   — t                                | ¦  «        }|€J d| › �¦   «         ‚|S )Nzunknown dtype )rò   rö   )r=   Úmb_rs     r   rE   zScalarType.parseƒ  s7   € å×%Ò% eÑ,Ô,ˆØÐÐÐ!9°%Ð!9Ð!9ÑÔÐØˆr   ÚvaluesúOrderedSet[ScalarType]c                ó   — t          ¦   «         }|                      d¦  «        D ]Y}|t          v r!|                     t          |         ¦  «         Œ,|                     t
                               |¦  «        ¦  «         ŒZ|S )Nú, )r   ÚsplitÚDTYPE_CLASSESÚupdateÚaddrò   rE   )rù   Údtypesr=   s      r   Ú	parse_setzScalarType.parse_set‰  ss   € å)3©¬ˆØ—\’\ $Ñ'Ô'ð 	4ð 	4ˆEØ�Ð%Ð%Ø—’�m¨EÔ2Ñ3Ô3Ð3Ð3à—
’
�:×+Ò+¨EÑ2Ô2Ñ3Ô3Ð3Ð3Øˆr   Nr   )r=   r   r   rô   )r=   r   r   rò   )rù   r   r   rú   )r   r   r    r   ÚByteÚCharÚShortÚIntÚLongÚHalfÚFloatÚDoubleÚComplexHalfÚComplexFloatÚComplexDoubleÚBoolÚBFloat16ÚFloat8_e5m2ÚFloat8_e5m2fnuzÚFloat8_e4m3fnÚFloat8_e4m3fnuzr   rÍ   rö   rE   r  r"   r   r   rò   rò   f  sC  € € € € € Øˆ4‰6Œ6€DØˆ4‰6Œ6€DØˆD‰FŒF€EØ
ˆ$‰&Œ&€CØˆ4‰6Œ6€DØˆ4‰6Œ6€DØˆD‰FŒF€EØˆT‰VŒV€FØ�$‘&”&€KØ�4‘6”6€LØ�D‘F”F€MØˆ4‰6Œ6€DØˆt‰vŒv€HØ�$‘&”&€KØ�d‘f”f€OØ�D‘F”F€MØ�d‘f”f€Oðð ð ð ð ðð ð ñ „\ðð ðð ð ñ „\ðð
 ðð ð ñ „\ðð ð r   rò   z!dict[str, OrderedSet[ScalarType]]rþ   ÚIntegralÚFloatingÚComplexÚAllÚAllAndComplexÚFloatingAndComplexc                  óº   — e Zd Z e¦   «         Z e¦   «         Z e¦   «         Z e¦   «         Z e¦   «         Z e¦   «         Z	 e¦   «         Z
dd„Zedd„¦   «         ZdS )	ÚUfuncKeyr   r   c                ó   — | j         S r7   r8   r   s    r   r   zUfuncKey.__str__¾  r:   r   r=   c                ó‚   — t           j                             ¦   «         D ]\  }}|| k    r|c S Œt          d| › �¦  «        ‚)Nzunknown ufunc key )r  r?   r@   rA   rB   s      r   rE   zUfuncKey.parseÁ  sR   € åÔ(×.Ò.Ñ0Ô0ð 	ð 	‰DˆAˆqØ�EŠzˆzØ���ð åÐ9°%Ð9Ð9Ñ:Ô:Ð:r   Nr   )r=   r   r   r  )r   r   r    r   ÚCUDAFunctorÚCUDAFunctorOnOtherÚCUDAFunctorOnSelfÚ	CPUScalarÚ	CPUVectorÚ
ScalarOnlyÚGenericr   rÍ   rE   r"   r   r   r  r  ¯  s›   € € € € € ð �$‘&”&€KØ˜™œÐØ˜™œÐà�‘”€IØ�‘”€Ið �‘”€JØˆd‰fŒf€Gðð ð ð ð ð;ð ;ð ;ñ „\ð;ð ;ð ;r   r  c                  ó   — e Zd ZdZdZdS )ÚDeviceCheckTyper   é   N)r   r   r    ÚNoCheckÚ	ExactSamer"   r   r   r&  r&  É  s   € € € € € Ø€GØ€I€I€Ir   r&  c                  óJ   — e Zd Z e¦   «         Z e¦   «         Z e¦   «         ZdS )ÚViewSchemaKindN)r   r   r    r   ÚaliasingÚaliasing_inplaceÚnon_aliasingr"   r   r   r+  r+  Î  s0   € € € € € Øˆt‰vŒv€HØ�t‘v”vÐØ�4‘6”6€L€L€Lr   r+  c                  ó¤  — e Zd ZU ded<   ded<   ded<   ded<   ded	<   d
ed<   d
ed<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   ded<   d
ed<   ded<   ded<   ded<   ded <   ded!<   ded"<   ded#<   ded$<   e	 d7d8d-„¦   «         Zd9d/„Zd9d0„Zed:d1„¦   «         Z	ed:d2„¦   «         Z
ed;d4„¦   «         Zed<d5„¦   «         Zed:d6„¦   «         Zd%S )=ÚNativeFunctionr   Ú	namespaceÚFunctionSchemaÚfuncrà   Ú!use_const_ref_for_mutable_tensorsÚdevice_guardr&  Údevice_checkú
str | NoneÚpython_moduleÚcategory_overridezset[Variant]ÚvariantsÚmanual_kernel_registrationÚmanual_cpp_bindingr   Úloczlist[OperatorName]Úautogenzdict[UfuncKey, UfuncInnerLoop]Úufunc_inner_loopÚ
structuredzOperatorName | NoneÚstructured_delegateÚstructured_inheritszPrecompute | NoneÚprecomputedúset[str]Úcpp_no_default_argsÚis_abstractÚ&has_composite_implicit_autograd_kernelÚ4has_composite_implicit_autograd_nested_tensor_kernelÚ&has_composite_explicit_autograd_kernelÚ5has_composite_explicit_autograd_non_functional_kernelÚtagsNÚeiúdict[str, object]Ú
valid_tagsÚignore_keysúset[DispatchKey] | Noner   úMtuple[NativeFunction, dict[DispatchKey, dict[OperatorName, BackendMetadata]]]c                ó‚  ‡7— |                       ¦   «         }|                     d¦  «        }t          |t          ¦  «        sJ d|› �¦   «         ‚t	          j        |d¬¦  «        }|                     d¬¦  «        }t                               |j	        ¦  «        Š7|                     dg ¦  «        }t          |t          ¦  «        sJ ‚t          |¦  «        }	|                     dd	¦  «        }
t          |
t          ¦  «        sJ ‚|                     d
d¦  «        }t          |t          ¦  «        sJ ‚t          ¦   «         }|                     d¦  «        D ]_}|dk    r |                     t          j        ¦  «         Œ(|dk    r |                     t          j        ¦  «         ŒNt%          d|› �¦  «        ‚|                     dd	¦  «        }t          |t          ¦  «        sJ d|› �¦   «         ‚|                     dd	¦  «        }t          |t          ¦  «        sJ d|› �¦   «         ‚|                     dd¦  «        }t          |t          ¦  «        sJ d|› �¦   «         ‚|                     dd¦  «        }|�"t          |t          ¦  «        sJ d|› �¦   «         ‚|�|t&          j        v sJ d|› �¦   «         ‚|€t&          j        }nt&          |         }|                     dd	¦  «        }t          |t          ¦  «        sJ d|› �¦   «         ‚|                     dd¦  «        }|�"t          |t          ¦  «        sJ d|› �¦   «         ‚|�d|vs
J d¦   «         ‚d}|�t,                               |¦  «        }|                     dd¦  «        }|�"t          |t          ¦  «        sJ d|› �¦   «         ‚|�d|vs
J d¦   «         ‚|                     dd¦  «        }|�"t          |t          ¦  «        sJ d|› �¦   «         ‚|�t          j        |vs
J d¦   «         ‚|                     dd¦  «        }|�"t          |t          ¦  «        sJ d|› �¦   «         ‚|                     d d¦  «        }|�|du sJ ‚|rt.                               |¦  «        nd}|                     d!g ¦  «        }t          |t          ¦  «        r|g}t          |t          ¦  «        sJ ‚|dk    rd"|v r|                     d"¦  «         t          ¦   «         }|D ]B}t3          |¦  «        d#k    sJ ‚||v r|                     |¦  «         Œ1t%          d$|› �¦  «        ‚d#d%lm} |                     d&d¦  «        }|�t          |t8          ¦  «        s
J |¦   «         ‚i } d#}!|��ü|r
J d'¦   «         ‚d	}"|                     ¦   «         D �]B\  }#}|#d(k    rŒt          |#t          ¦  «        sJ d)|#› d*|› �¦   «         ‚t          |t          ¦  «        sJ d+|› d*|› �¦   «         ‚|#                     d,¦  «        D ]Õ}$t<                               |$                     ¦   «         ¦  «        }%|!dz  }!|r|%|v rŒ:|%t@          v sJ d-|%› d.|› d/�¦   «         ‚t	          j        |d0¬1¦  «        }|                     d2¬¦  «        }&tC          |j	        |otE          |%¦  «        |&d3z   ¬4¦  «        | |%<   |%t<          j#        u r|| $                    ‰7¦  «        k    rd}"ŒÖ�ŒD|!dk    r|"r
J d5¦   «         ‚|s�|  %                    ¦   «         t<          j#        hk    s^| t<          j#                  &                    ¦   «         s:|!dk    s4J d6| $                    ‰7¦  «        › d7| t<          j#                 › d8�¦   «         ‚n±|s¯|€­t          ‰7j$        j$        ¦  «        }'|' '                    d9¦  «        s:|' (                    d:¦  «        s%‰7j)        j*        r'‰7j)         +                    ¦   «         sJ d;|'› d<�¦   «         ‚tC          | $                    ‰7¦  «        d	tX          ¬=¦  «        | t<          j#        <   d>„ | D ¦   «         }(t3          |(¦  «        dk    s9t3          |(¦  «        d?k    rt<          j-        |(vrt<          j.        |(v s
J d@¦   «         ‚|                     dAdB¦  «        })t          |)t          ¦  «        sJ ‚|)dBk    rg ndC„ |)                     d¦  «        D ¦   «         }*|                     dDi ¦  «        }+i },t          |+t          ¦  «        r3t^                               |+t`          j1        ¦  «        |,t`          j1        <   nÅt          |+t8          ¦  «        rž|+                     ¦   «         D ]ˆ\  }$}-|$d(k    rŒt          |$t          ¦  «        sJ dE|$› �¦   «         ‚t          |-t          ¦  «        sJ dF|› �¦   «         ‚t`                               |$¦  «        }.t^                               |-|.¦  «        |,|.<   Œ‰nt%          dG|+› �¦  «        ‚|,r^|s
J dH¦   «         ‚d#dl2m3c m4}/ tj          D ]A}%|%| vsJ dI|%› �¦   «         ‚tC          |/ 6                    ‰7|%¦  «        dtX          ¬4¦  «        | |%<   ŒB|rd}0nt|  %                    ¦   «         t<          j#        hk    oP|  %                    ¦   «         t<          j.        hk    o-|  %                    ¦   «         t<          j#        t<          j.        hk    }0t<          j#        | v }1t<          j.        | v }2t<          j7        | v }3t<          j-        | v }4ˆ7fdJ„|                      ¦   «         D ¦   «         }5|                     d(d¦  «         |rJ dK|› �¦   «         ‚|�tp          D ]}6|6| vsJ dL|6› dM�¦   «         ‚Œts          dUi d‰7“d|
“d
|“d|“d|“d|“d |“dA|*“dD|,“d|“d|“d|“d|“d|“d|“dN|“d|	“dO|0“dP|1“dQ|2“dR|3“dS|4“d!|“dT|“Ž|5fS )Vzp
        Parse a NativeFunction from a dictionary as directly parsed
        from native_functions.yaml
        r3  znot a str: r'  )Únamespaced_entityÚ	max_levelÚaten)ÚdefaultrE  r4  Fr:  r%   rü   r&   zillegal variant r;  znot a bool: r<  r5  Tr6  Nzillegal device_check: r@  rA  z::zbnamespace is not supported in structured delegate, using the same namespace as the native functionrB  zbnamespace is not supported in structured inherits, using the same namespace as the native functionr8  z&functions in modules cannot be methodsr9  rC  rK  Úpt2_compliant_tagr   zillegal tag )ÚcppÚdispatchzncannot specify both manual_kernel_registration and dispatch; with manual registration, dispatch has no effect!Ú__line__zillegal dispatch key 'z' in zillegal dispatch value 'ú,zDispatch key z of kernel z! is not a supported dispatch key.é   )rT  Úatz::native)Úkernelr@  Úcpp_namespacezSunnecessary dispatch table for this function; just delete the dispatch key entirelyzQunexpected name for singleton CompositeImplicitAutograd dispatch entry: expected z	 but got zR.  Rename your implementation to the expected name, then delete the dispatch tableÚnew_Ú_likez	expected zÂ to have a CompositeExplicitAutograd dispatch entry, but there was no dispatch table.  Factory functions should not have implicit dispatch as they should not be decomposed for __torch_dispatch__)r@  r_  c                ó’   — g | ]D}|t           j        k    s0|t           j        k    s |t           j        k    s|t           j        k    ¯B|‘ŒES r"   râ   )r/   Úds     r   r1   z,NativeFunction.from_yaml.<locals>.<listcomp>0  s]   € ð "
ð "
ð "
àØ•KÔ9Ò9Ð9Ø•KÔFÒFÐFØ•KÔ9Ò9Ð9Ø•KÔEÒEÐEð ð
 FÐEÐEr   é   aH  cannot specify more than one of CompositeExplicitAutograd, CompositeExplicitAutogradNonFunctional, or CompositeImplicitAutograd on a single kernel; each strictly subsumes the other.  If you wanted to provide an explicit autograd implementation, specify CompositeExplicitAutograd; otherwise specify CompositeImplicitAutograd onlyr>  r'   c                óB   — g | ]}t                                |¦  «        ‘ŒS r"   )ÚOperatorNamerE   ©r/   Úxs     r   r1   z,NativeFunction.from_yaml.<locals>.<listcomp>O  s&   € ÐIÐIÐI¨A•,×$Ò$ QÑ'Ô'ÐIÐIÐIr   r?  z#ufunc_inner_loop key is not a str: z%ufunc_inner_loop value is not a str: z"ufunc_inner_loop not str or dict: zufunc must be structuredz2ufunc should not have explicit dispatch entry for c                ó*   •— i | ]\  }}|‰j         |i“ŒS r"   r8   )r/   rC   rD   r3  s      €r   ú
<dictcomp>z,NativeFunction.from_yaml.<locals>.<dictcomp>–  s%   ø€ ÐKÐKÐK±$°!°Q˜A ¤	¨1˜~ÐKÐKÐKr   zleftover entries: z+if structured_delegate, then must not have z* in dispatch dictionary (it is delegated!)r=  rF  rG  rH  rI  rJ  r1  r"   ):ÚcopyÚpopÚ
isinstancer   r
   Úfrom_namespaced_entityÚget_cpp_namespacer2  rE   Úentity_nameÚlistÚsetrà   rý   r   r$   r%   r&   rA   r&  r?   r)  rf  Ú
PrecomputeÚappendÚlenÚtorchgen.apirX  Údictr@   r5   ÚstripÚdispatch_keysÚBackendMetadatarë   rn   r9   ÚkeysÚsupports_symintÚ
startswithÚendswithÚ	argumentsÚtensor_optionsÚhas_tensor_argÚDEFAULT_KERNEL_NAMESPACErq   ro   ÚUfuncInnerLoopr  r$  Útorchgen.api.ufuncÚapiÚufuncrí   Úschema_kernel_namerp   rê   r0  )8rL  r=  rN  rO  ÚeÚfuncsÚnamespace_helperr1  Úcpp_no_default_args_listrE  r4  Ú
variants_sr:  rD   r;  r<  r5  Údevice_check_sr6  r@  Ústructured_delegate_srA  rB  r8  r9  Úprecomputed_dictrC  Útags_inprK  ÚtrX  Úraw_dispatchrY  Únum_dispatch_keysÚ%redundant_composite_implicit_autogradÚksrC   Údispatch_keyÚkernel_namespacer9   Úcomposites_in_dispatchÚautogen_strr>  Úraw_ufunc_inner_loopr?  ÚvoÚ	ufunc_keyr†  rF  rG  rH  rI  rJ  Úbackend_metadataÚkeyr3  s8                                                          @r   Ú	from_yamlzNativeFunction.from_yamlV  s”  ø€ ð �GŠG‰IŒIˆà—’�f‘”ˆÝ˜%¥Ñ%Ô%Ð<Ð<Ð'<°UÐ'<Ð'<Ñ<Ô<Ð%å*ÔAØ#¨qð
ñ 
ô 
Ðð %×6Ò6¸vÐ6ÑFÔFˆ	Ý×#Ò#Ð$4Ô$@ÑAÔAˆà#$§5¢5Ð)>ÀÑ#CÔ#CÐ ÝÐ2µDÑ9Ô9Ð9Ð9Ð9Ý!Ð":Ñ;Ô;Ðà,-¯EªEØ/°ñ-
ô -
Ð)õ Ð;½TÑBÔBÐBÐBÐBà—U’U˜: zÑ2Ô2ˆ
Ý˜*¥cÑ*Ô*Ð*Ð*Ð*Ý!$¡¤ˆØ×!Ò! $Ñ'Ô'ð 	=ð 	=ˆAØ�JŠˆØ—’�WÔ-Ñ.Ô.Ð.Ð.Ø�h’�Ø—’�Wœ^Ñ,Ô,Ð,Ð,å$Ð%;¸Ð%;Ð%;Ñ<Ô<Ð<à%&§U¢UÐ+GÈÑ%OÔ%OÐ"ÝØ&­ñ
ô 
ð 	7ð 	7à6Ð4Ð6Ð6ñ	7ô 	7ð 
ð ŸUšUÐ#7¸Ñ?Ô?ÐÝÐ,­dÑ3Ô3ÐXÐXÐ5XÐDVÐ5XÐ5XÑXÔXÐ3à—u’u˜^¨TÑ2Ô2ˆÝ˜,­Ñ-Ô-ÐLÐLÐ/L¸lÐ/LÐ/LÑLÔLÐ-àŸš˜~¨tÑ4Ô4ˆØÐ%­Ø�Cñ*
ô *
Ð%Ð%à)˜Ð)Ð)ñ &Ô%ð 
ð Ð" n½Ô8SÐ&SÐ&SÐ&SØ4 NÐ4Ð4ñ 'TÔ&SÐSð Ð!Ý*Ô4ˆLˆLå*¨>Ô:ˆLà—U’U˜<¨Ñ/Ô/ˆ
Ý˜*¥dÑ+Ô+ÐHÐHÐ-H¸JÐ-HÐ-HÑHÔHÐ+à !§¢Ð&;¸TÑ BÔ BÐØ$Ð,µ
Ø!¥3ñ1
ô 1
Ð,Ð,à0Ð.Ð0Ð0ñ -Ô,ð 
ð %Ð,°Ð<QÐ0QÐ0QÐ0Qð?ñ 1RÔ0QÐQð 48ÐØ Ð,Ý".×"4Ò"4Ð5JÑ"KÔ"KÐàŸešeÐ$9¸4Ñ@Ô@ÐØ"Ð*­jØ¥ñ/
ô /
Ð*Ð*à.Ð,Ð.Ð.ñ +Ô*ð 
ð #Ð*¨dÐ:MÐ.MÐ.MÐ.Mð?ñ /NÔ.MÐMð
 Ÿš˜o¨tÑ4Ô4ˆØÐ$­
Ø�3ñ)
ô )
Ð$Ð$à(˜Ð(Ð(ñ %Ô$ð 
ð Ð!¥W¤^¸8Ð%CÐ%CÐ%CØ3ñ &DÔ%CÐCð ŸEšEÐ"5°tÑ<Ô<ÐØ Ð(­JØ�sñ-
ô -
Ð(Ð(à,Ð*Ð,Ð,ñ )Ô(ð 
ð Ÿ5š5 °Ñ5Ô5ÐØÐ'¨:¸Ð+=Ð+=Ð+=Ð=Ø<LÐV•j×&Ò&Ð'7Ñ8Ô8Ð8ÐRVˆà—5’5˜ Ñ$Ô$ˆÝ�h¥Ñ$Ô$ð 	"Ø �zˆHÝ˜(¥DÑ)Ô)Ð)Ð)Ð)ð ˜ÒÐÐ#6¸*Ð#DÐ#DØ�OŠOÐ/Ñ0Ô0Ð0å™œˆØð 	9ð 	9ˆAÝ�z‘?”? QÒ&Ð&Ð&Ð&à�JˆˆØ—’˜‘”��å$Ð%7°AÐ%7Ð%7Ñ8Ô8Ð8à$Ð$Ð$Ð$Ð$Ð$à—u’u˜Z¨Ñ.Ô.ˆØÐ#¥z°,ÅÑ'EÔ'EÐ#Ð#ÀqÑ#Ô#ÐEØ79ˆØ!"ÐØÑ#Ø1ð ð ð?ñô Ð1ð 5:Ð1Ø%×+Ò+Ñ-Ô-ð &Eñ &E‘��AØ˜Ò#Ð#ØÝ!Ø�ñô ð Dð DàC¨BÐCÐC°\ÐCÐCñDô Dð õ "Ø•sñô ð Eð EàD¨aÐDÐD°lÐDÐDñEô Eð ð Ÿš #™œð Eð E�AÝ#.×#4Ò#4°Q·W²W±Y´YÑ#?Ô#?�LØ%¨Ñ*Ð%à"ð ! |°{Ð'BÐ'BØ Ø'­=Ð8Ð8Ð8ð;¨ð ;ð ;Àð ;ð ;ð ;ñ 9Ô8Ð8õ (7Ô'MØ Qð(ñ (ô (Ð$ð (8×'IÒ'IÐRVÐ'IÑ'WÔ'WÐ$õ .=Ø/Ô;Ø#-ð $EÝ6°|ÑDÔDØ'7¸*Ñ'Dð	.ñ .ô .�H˜\Ñ*ð %­Ô(MÐMÐMØ §¢¨$¡¤Ò/Ð/à@DÐ=øñ;EðF " QÒ&Ð&Ð+PÐ&Ð&ðñ 'Ô&ðð $ð	à—=’=‘?”?¥{Ô'LÐ&MÒMÐMØ�KÔAÔB×RÒRÑTÔTð Nà$¨Ò)Ð)Ð)ð7Ðdg×dlÒdlÐmqÑdrÔdrð 7ð 7Ø#¥KÔ$IÔJð7ð 7ð 7ñ *Ô)ð*øð ð 	Ð 3Ð ;Ý�t”y”~Ñ&Ô&ˆDà—’ Ñ'Ô'ðà—=’= Ñ)Ô)ðð
 ”NÔ1ðð !œN×9Ò9Ñ;Ô;ðð ð)˜Dð )ð )ð )ñô ð õ ?NØ—’˜‘”¨5Õ@Xð?ñ ?ô ?ˆH•[Ô:Ñ;ð"
ð "
àð"
ñ "
ô "
Ðõ Ð)Ñ*Ô*¨aÒ/Ð/ÝÐ&Ñ'Ô'¨1Ò,Ð,åÔBØ-ð.ð .õ ÔAØ)ð*ð *ð *ðrñ	*ô *ð

ð" —e’e˜I rÑ*Ô*ˆÝ˜+¥sÑ+Ô+Ð+Ð+Ð+ð ˜bÒ Ð ð ˆBàIÐI°×1BÒ1BÀ4Ñ1HÔ1HÐIÑIÔIð 	ð  !ŸušuÐ%7¸Ñ<Ô<ÐØÐÝÐ*­CÑ0Ô0ð 	Ý1?×1EÒ1EØ$¥hÔ&6ñ2ô 2Ð�XÔ-Ñ.Ð.õ Ð,­dÑ3Ô3ð 	Ø-×3Ò3Ñ5Ô5ð Rð R‘��2Ø˜
’?�?ØÝ! !¥SÑ)Ô)ÐTÐTÐ+TÐQRÐ+TÐ+TÑTÔTÐ)Ý! "¥cÑ*Ô*ÐWÐWÐ,WÐTUÐ,WÐ,WÑWÔWÐ*Ý$ŸNšN¨1Ñ-Ô-�	Ý.<×.BÒ.BÀ2ÀyÑ.QÔ.QÐ  Ñ+Ð+ðRõ !ØKÐ5IÐKÐKñô ð ð ð 	ØÐ9Ð9Ð9Ñ9Ô9�:ð /Ð.Ð.Ð.Ð.Ð.Ð.Ð.Ð.å 3ð ð �à ¨Ð0Ð0Ð0ØVÈÐVÐVñ 1Ô0Ð0å)8Ø ×3Ò3°D¸,ÑGÔGØ#Ý":ð*ñ *ô *�˜Ñ&Ð&ð ð 	àˆKˆKð —’‘”¥KÔ$IÐ#JÒJð Ø—M’M‘O”OÝÔEÐFòGðð —M’M‘O”OåÔ9ÝÔEðòð	 õ Ô1°XÐ=ð 	/õ Ô=ÀÐIð 	=õ Ô1°XÐ=ð 	/õ Ô>À(ÐJð 	>ð LÐKÐKÐK¸(¿.º.Ñ:JÔ:JÐKÑKÔKÐð 	
�Šˆj˜$ÑÔÐØÐ.Ð.Ð.¨1Ð.Ð.Ñ.Ô.ˆuð Ð*Ý/ð ð �Ø (Ð*Ð*Ð*ð)À#ð )ð )ð )ñ +Ô*Ð*Ð*õ ð ð ð Ø�Tðà2SÐ2Sðð "˜ðð &˜:ð	ð
 %8Ð$7ðð %8Ð$7ðð (˜Kðð  ˜ðð "2Ð!1ðð ,FÐ+Eðð $6Ð#5ðð ,˜mðð #4Ð"3ðð *˜\ðð *˜\ðð  �Cð!ð" %8Ð$7ð#ð$ (˜Kð%ð& 8^Ð7]ð'ð( FzÐEyð)ð* 8^Ð7]ð+ð, G|ÐF{ð-ð. �Tð/ð0 $˜)ð1ð4 ð7
ð 	
r   ÚNonec                óJ   — | j         r
J d¦   «         ‚| j        s
J d¦   «         ‚d S )NzMThis function is structured, but there was no valid functional variant of it.z’This function delegates to another structured out function, but no valid function was found (the delegate may not exist, or it has the wrong type)©r@  rA  r   s    r   Úvalidate_unstructuredz$NativeFunction.validate_unstructuredÃ  sT   € ð ”?ð 	
ð 	
ð1ñ	
ô 	
Ð"ð Ô'ð 	
ð 	
ðeñ	
ô 	
Ð'ð 	
ð 	
r   c                ó  — | j         j        j        r | j        t          j        hk    s
J d¦   «         ‚| j        rB| j                              ¦   «         t          j        k    s
J d¦   «         ‚| j	        s
J d¦   «         ‚| j
        rB| j                              ¦   «         t          j        k    s
J d¦   «         ‚| j	        s
J d¦   «         ‚| j        r| j
        r
J d¦   «         ‚d„ | j                              ¦   «         D ¦   «         }t                               | j        |¦  «        }t          |¦  «        dk    sJ d|› �¦   «         ‚| j        �| j        s
J d	¦   «         ‚t#          | j         j        ¦  «                             d
¦  «        r| j        t*          j        k    s
J d¦   «         ‚dt#          | j         j        ¦  «        v sœdt#          | j         j        ¦  «        v s(t/          d„ | j         j        j        D ¦   «         ¦  «        r;dt#          | j         j        ¦  «        vr t#          | j         j        j        ¦  «        dvs| j         j                             ¦   «         r,d| j        v s!J t#          | j         j        ¦  «        ¦   «         ‚d S d S )NzëNative functions with out arguments MUST be declared with only function variant; e.g., variants: function; otherwise you will tickle a Python argument binding bug (which usually manifests itself as the result variable being undefined.)zYPut structured field on the out= variant of a function; did you mean structured_delegate?z:device_guard: False is not respected by structured kernelszQstructured_delegate field not allowed on out= functions; did you mean structured?z?Cannot have both structured and structured_delegate on functionc                ó*   — h | ]}|j         ®	|j        ’ŒS r7   )rV  r9   ©r/   Úas     r   ú	<setcomp>z/NativeFunction.__post_init__.<locals>.<setcomp>ó  s(   € ð 
ð 
ð 
ØÀ!Ä)ÐBWˆAŒFÐBWÐBWÐBWr   r   zInvalid cpp_no_default_args: z4structured_inherits must also imply structured: TrueÚ_foreachzsforeach kernels fall back to slow path when tensor are on different devices, device_check not allowed to be enabledÚrandÚdropoutc              3  ó(   K  — | ]}d |j         v V — ŒdS )r«  Nr8   ©r/   Úargs     r   r×   z/NativeFunction.__post_init__.<locals>.<genexpr>	  s:   è è € ð ð Ø25˜	 S¤XÐ-ðð ð ð ð ð r   Úbackward)Ú_cudnn_init_dropout_stateÚnondeterministic_seeded)r3  r  Úoutr:  r$   r%   r@  ÚkindÚ
SchemaKindr5  rA  Úschema_order_argumentsrr  Ú
differencerE  ru  rB  r   r9   r}  r6  r&  r(  ÚanyÚflat_allÚhas_generator_argrK  )r   Údefaulted_argumentsÚinvalid_argss      r   Ú__post_init__zNativeFunction.__post_init__Ö  sû  € ØŒ9ÔÔ"ð 	Ø”=¥WÔ%5Ð$6Ò6Ð6Ð6ð[ñ 7Ô6Ð6ð Œ?ð 	LØ”9—>’>Ñ#Ô#¥z¤~Ò5Ð5Ð5ðKñ 6Ô5Ð5ð
 Ô!ðLð LàKñLô LØ!àÔ#ð 	LØ”9—>’>Ñ#Ô#¥z¤~Ò5Ð5Ð5ð>ñ 6Ô5Ð5ð
 Ô!ðLð LàKñLô LØ!ð
 ŒOð	MØ $Ô 8ð	Mð 	MàLñ	Mô 	Mð 
ð
ð 
Ø œI×<Ò<Ñ>Ô>ð
ñ 
ô 
Ðõ —~’~ dÔ&>Ð@SÑTÔTˆÝ�<Ñ Ô  AÒ%Ð%Ð%Ð'UÀ|Ð'UÐ'UÑ%Ô%Ð%ØÔ#Ð/à”ðFð FàEñFô FØåˆtŒyŒ~ÑÔ×)Ò)¨*Ñ5Ô5ð 	ØÔ$­Ô(?Ò?Ð?Ð?ð9ñ @Ô?Ð?ð •c˜$œ)œ.Ñ)Ô)Ð)Ð)ð ¥ T¤Y¤^Ñ!4Ô!4Ð4Ð4Ýð ð Ø9=¼Ô9LÔ9Uðñ ô ñ ô ð 5ð ¥c¨$¬)¬.Ñ&9Ô&9Ð9Ð9Ý˜œ	œÔ+Ñ,Ô,Ð4QÐQÐQàŒyÔ"×4Ò4Ñ6Ô6ð Rð -°´	Ð9Ð9Ð9½3¸t¼y¼~Ñ;NÔ;NÑ9Ô9Ð9Ð9Ð9ð	 RÐQr   c                óH   — | j         p| j        p| j        p| j         o| j        S r7   )rG  rI  rJ  rH  r   s    r   Úhas_composite_kernelz#NativeFunction.has_composite_kernel  s@   € ð Ô7ð JØÔ:ðJàÔIð
ð
 Ô7ð JØÔIð	
r   c                ód  — | j         j        }t          |¦  «        dk    ot          d„ |D ¦   «         ¦  «        }d| j        v o9t          | j         j        ¦  «        dk    ot          | j         j        ¦  «        dk    }t          d„ | j                              ¦   «         D ¦   «         ¦  «        }|p|p|S )Nr   c              3  óB   K  — | ]}|j         d uo|j         j         V — Œd S r7   ©Ú
annotationÚis_write©r/   rÝ   s     r   r×   z,NativeFunction.is_view_op.<locals>.<genexpr>#  sG   è è € ð 5
ð 5
ØGHˆAŒL Ð$ÐB¨Q¬\Ô-BÐ)Bð5
ð 5
ð 5
ð 5
ð 5
ð 5
r   Úinplace_viewÚresize_Ú
resize_as_c              3  óD   K  — | ]}|j         d uod|j         j        v V — Œd S )NÚ*)rÂ  Úalias_set_after)r/   Úinps     r   r×   z,NativeFunction.is_view_op.<locals>.<genexpr>,  sL   è è € ð 
ð 
àð ŒN $Ð&ÐP¨3°#´.Ô2PÐ+Pð
ð 
ð 
ð 
ð 
ð 
r   )r3  Úreturnsru  r·  rK  r   r9   rµ  )r   ÚretsÚis_non_mutating_viewÚis_inplace_viewÚis_wildcard_views        r   Ú
is_view_opzNativeFunction.is_view_op   sÛ   € àŒyÔ ˆÝ" 4™yœy¨1š}ð  
µð 5
ð 5
ØLPð5
ñ 5
ô 5
ñ 2
ô 2
Ðð
 ˜dœiÐ'ð 4Ý�D”I”NÑ#Ô# yÒ0ð4å�D”I”NÑ#Ô# |Ò3ð 	õ
 ð 
ð 
à”y×7Ò7Ñ9Ô9ð
ñ 
ô 
ñ 
ô 
Ðð $ÐJ ÐJÐ:JÐJr   r+  c                ó¨   — | j         r-| j        j        j        j        rd| j        v sJ ‚t
          j        S | j         rt
          j        S t
          j        S )NrÅ  )	rÑ  r3  r9   ÚinplacerK  r+  r-  r,  r.  r   s    r   Úview_schema_kindzNativeFunction.view_schema_kind2  sU   € àŒ?ð 	3˜tœyœ~Ô2Ô:ð 	3Ø! T¤YÐ.Ð.Ð.Ð.Ý!Ô2Ð2ØŒ?ð 	/Ý!Ô*Ð*å!Ô.Ð.r   c                ó.   — | j         j        j        j        S r7   )r3  r9   Úbaser   s    r   Ú	root_namezNativeFunction.root_name<  s   € àŒyŒ~Ô"Ô'Ð'r   c                ó"   — | j         p| j        d uS r7   r¢  r   s    r   Úpart_of_structured_groupz'NativeFunction.part_of_structured_group@  s   € àŒÐF $Ô":À$Ð"FÐFr   r7   )
rL  rM  r=  r   rN  rD  rO  rP  r   rQ  ©r   r   ©r   rà   )r   r+  r   )r   r   r    r!   rÍ   rŸ  r£  r¼  Úpropertyr¾  rÑ  rÔ  r×  rÙ  r"   r   r   r0  r0  à  s^  € € € € € € ð €N€N�Nð ÐÐÑð ,Ð+Ð+Ñ+ð ÐÐÑð "Ð!Ð!Ñ!ð ÐÐÑð "Ð!Ð!Ñ!ð ÐÐÑð
 %Ð$Ð$Ñ$ð ÐÐÑð €M€M�Mð  ÐÐÑð 5Ð4Ð4Ñ4ð ÐÐÑð -Ð,Ð,Ñ,ð $Ð#Ð#Ñ#ð #Ð"Ð"Ñ"ð "Ð!Ð!Ñ!ð ÐÐÑð 1Ð0Ð0Ñ0Ø>Ð>Ð>Ñ>Ø0Ð0Ð0Ñ0Ø?Ð?Ð?Ñ?ð €N€N�Nð ð
 04ð	j
ð j
ð j
ð j
ñ „\ðj
ðX

ð 

ð 

ð 

ð&=Oð =Oð =Oð =Oð~ ð
ð 
ð 
ñ „Xð
ð ðKð Kð Kñ „XðKð" ð/ð /ð /ñ „Xð/ð ð(ð (ð (ñ „Xð(ð ðGð Gð Gñ „XðGð Gð Gr   r0  c                  ór   — e Zd Z e¦   «         Z e¦   «         Z e¦   «         Z e¦   «         Z e¦   «         ZdS )r´  N)	r   r   r    r   Ú
functionalrÓ  r²  ÚmutableÚscratchr"   r   r   r´  r´  E  sE   € € € € € Ø�‘”€JØˆd‰fŒf€GØ
ˆ$‰&Œ&€CØˆd‰fŒf€GØˆd‰fŒf€G€G€Gr   r´  c                  ó˜   — e Zd ZU ded<   ded<   ded<   ded<   edd	„¦   «         Zdd„Zdd„Zdd„Zedd„¦   «         Z	e
dd„¦   «         ZdS )ÚNativeFunctionsGroupr0  rÞ  úNativeFunction | NonerÓ  rß  r²  r   rà   c                ó   — | j         j        S r7   )r²  r@  r   s    r   r@  zNativeFunctionsGroup.structuredZ  s   € ð ŒxÔ"Ð"r   r   c           
     ó–  — | j         j                             ¦   «         }|                      ¦   «         D ]‰}||j                             ¦   «         k    r,t	          d|› d|j                             ¦   «         › �¦  «        ‚| j        |j        k    r.t	          d| j        j        j        › d|j        j        › �¦  «        ‚ŒŠ| j         j         	                    ¦   «         t          j         k    sJ ‚| j        j         	                    ¦   «         t          j        k    sJ ‚| j         j        | j        j        k    sJ ‚| j        �J| j        j         	                    ¦   «         t          j        k    sJ ‚| j        j        | j         j        k    sJ ‚| j        �g| j        j         	                    ¦   «         t          j        k    sJ ‚| j        j        | j         j        k    sJ ‚| j         j        j        j        j        sJ ‚| j        r›| j        j        s| j        j        rJ ‚| j         j        | j        j        j        k    s:J | j         j        j        › d| j         j        › d| j        j        j        › �¦   «         ‚| j        �!| j        j        | j        j        j        k    sJ ‚t%          d„ |                      ¦   «         D ¦   «         ¦  «        }d                     d	„ |D ¦   «         ¦  «        }t)          ¦   «         }|                      ¦   «         D ]&}|                     d
„ |j        D ¦   «         ¦  «         Œ'd                     d„ t%          |¦  «        D ¦   «         ¦  «        }t/          |¦  «        dk    rBt/          |¦  «        dk    r/t1          d|› d|› dt3          |j        j        ¦  «        › �¦  «        ‚||k    rt1          d|› d|› d|› d�¦  «        ‚d S )Nz_NativeFunctionsGroup constructed from two NativeFunctions that don't have matching signatures: ú != zMNativeFunctionsGroup constructed from structured and unstructured functions: ú and z delegates to z but its actual delegate is c                óR   — g | ]$}d |j         v ¯t          |j        j        ¦  «        ‘Œ%S )Ú	generated)rK  r   r3  r9   )r/   Úfs     r   r1   z6NativeFunctionsGroup.__post_init__.<locals>.<listcomp>Š  s0   € ÐQÐQÐQ !¸;È!Ì&Ð;PÐ;P�S�””ÑÔÐ;PÐ;PÐ;Pr   rü   c              3  ó4   K  — | ]}t          |¦  «        V — Œd S r7   ©r   rg  s     r   r×   z5NativeFunctionsGroup.__post_init__.<locals>.<genexpr>Œ  s(   è è € Ð%DÐ%D°¥c¨!¡f¤fÐ%DÐ%DÐ%DÐ%DÐ%DÐ%Dr   c              3  ó4   K  — | ]}t          |¦  «        V — Œd S r7   rì  )r/   Úops     r   r×   z5NativeFunctionsGroup.__post_init__.<locals>.<genexpr>�  s(   è è € Ð)FÐ)F°b­#¨b©'¬'Ð)FÐ)FÐ)FÐ)FÐ)FÐ)Fr   c              3  ó4   K  — | ]}t          |¦  «        V — Œd S r7   rì  rg  s     r   r×   z5NativeFunctionsGroup.__post_init__.<locals>.<genexpr>�  s9   è è € ð /
ð /
Ø�C�‰FŒFð/
ð /
ð /
ð /
ð /
ð /
r   r   z,The codegen expects to be able to generate 'zv'. In order to generate them however, we expect them to be called out explicitly in the yaml. Please add an 'autogen: z' line to the entry for z*'. To do so, it expects a line: 'autogen: z'. Instead, it found 'autogen: ú')rÞ  r3  Ú	signatureÚ	functionsrA   r@  rÙ  r²  r9   r³  r´  r1  rÓ  rß  Úfunctional_overloadrG  rH  rA  ÚsortedrÜ   rr  rÿ   r>  ru  ÚRuntimeErrorr   )r   Útest_sigrê  Úgenerated_fnsÚgenerated_fns_strÚexpected_generated_fnsÚexpected_generated_fns_strs          r   r¼  z"NativeFunctionsGroup.__post_init___  sf  € Ø#'¤?Ô#7×#AÒ#AÑ#CÔ#CˆØ—’Ñ!Ô!ð 	ð 	ˆAØ˜1œ6×+Ò+Ñ-Ô-Ò-Ð-Ý$ð_Ø<Dð_ð _ØJKÌ&×JZÒJZÑJ\ÔJ\ð_ð _ñô ð ð
 Œ !Ô"<Ò<Ð<Ý$ðIØ"&¤(¤-Ô"4ðIð IØ;<¼6¼;ðIð Iñô ð ð =ð
 ŒÔ#×(Ò(Ñ*Ô*­jÔ.CÒCÐCÐCÐCØŒxŒ}×!Ò!Ñ#Ô#¥z¤~Ò5Ð5Ð5Ð5ØŒÔ(¨D¬HÔ,>Ò>Ð>Ð>Ð>ØŒ<Ð#Ø”<Ô$×)Ò)Ñ+Ô+­zÔ/AÒAÐAÐAÐAØ”<Ô)¨T¬_Ô-FÒFÐFÐFÐFàŒ<Ð#Ø”<Ô$×)Ò)Ñ+Ô+­zÔ/AÒAÐAÐAÐAØ”<Ô)¨T¬_Ô-FÒFÐFÐFÐFà”?Ô'Ô,Ô1ÔEÐEÐEÐEàŒ?ð 	Nð ”HÔCðàœÔUðð ðVð ”?Ô6¸$¼(¼-Ô:LÒLÐLÐLØ”?Ô'Ô,ð Cð C¸D¼OÔ<_ð Cð CØ.2¬h¬mÔ.@ðCð Cñ MÔLÐLð Œ|Ð'Ø”|Ô7¸4¼8¼=Ô;MÒMÐMÐMÐMåØQÐQ t§~¢~Ñ'7Ô'7ÐQÑQÔQñ
ô 
ˆð !ŸIšIÐ%DÐ%D°mÐ%DÑ%DÔ%DÑDÔDÐÝ+.©5¬5ÐØ—’Ñ!Ô!ð 	Gð 	GˆAØ"×)Ò)Ð)FÐ)F¸A¼IÐ)FÑ)FÔ)FÑFÔFÐFÐFØ%)§Y¢Yð /
ð /
Ý"Ð#9Ñ:Ô:ð/
ñ /
ô /
ñ &
ô &
Ð"õ Ð%Ñ&Ô&¨!Ò+Ð+µ°MÑ0BÔ0BÀQÒ0FÐ0FÝðjÐ?Pð jð jà,=ðjð jåWZÐ[\Ô[aÔ[fÑWgÔWgðjð jñô ð ð
 &Ð):Ò:Ð:ÝðNÐ?Pð Nð NØ;LðNð Nà0JðNð Nð Nñô ð ð ;Ð:r   r2  c                ó>   — | j         j                             ¦   «         S r7   )r²  r3  rñ  r   s    r   rñ  zNativeFunctionsGroup.signature   s   € ØŒxŒ}×&Ò&Ñ(Ô(Ð(r   úIterator[NativeFunction]c              #  ór   K  — | j         V — | j        V — | j        �	| j        V — | j        �| j        V — d S d S r7   )rÞ  r²  rÓ  rß  r   s    r   rò  zNativeFunctionsGroup.functions£  sY   è è € ØŒoÐÐÐØŒhˆˆˆØŒ<Ð#Ø”,ÐÐÐØŒ<Ð#Ø”,ÐÐÐÐÐð $Ð#r   r   c                ó   — | j         j        S r7   )rÞ  r×  r   s    r   r×  zNativeFunctionsGroup.root_name«  s   € àŒÔ(Ð(r   rc  ú dict[SchemaKind, NativeFunction]úNativeFunctionsGroup | Nonec                ó�  — | sJ ‚t          | ¦  «        dk    rd S t          | ¦  «        } |                      t          j        d ¦  «        }|                      t          j        d ¦  «        }|                      t          j        d ¦  «        }|                      t          j        d ¦  «        }| rJ ‚|€J ‚|€d S t          ||||¬¦  «        S )Nr'  )rÞ  rÓ  rß  r²  )	ru  rw  rl  r´  rÞ  rÓ  rß  r²  râ  )rc  rÞ  rÓ  rß  r²  s        r   Ú	from_dictzNativeFunctionsGroup.from_dict¯  sÅ   € àˆˆˆqÝˆq‰6Œ6�QŠ;ˆ;Ø�4Ý�‰GŒGˆØ—U’U�:Ô0°$Ñ7Ô7ˆ
Ø—%’%�
Ô*¨DÑ1Ô1ˆØ—%’%�
Ô*¨DÑ1Ô1ˆØ�eŠe•J”N DÑ)Ô)ˆØˆˆˆuØÐ%Ð%Ð%ð ˆ;Ø�4å#Ø!ØØØð	
ñ 
ô 
ð 	
r   NrÛ  rÚ  ©r   r2  )r   rü  r   )rc  rÿ  r   r   )r   r   r    r!   rÜ  r@  r¼  rñ  rò  r×  rÍ   r  r"   r   r   râ  râ  S  sá   € € € € € € àÐÐÑØ"Ð"Ð"Ñ"Ø"Ð"Ð"Ñ"ØÐÐÑàð#ð #ð #ñ „Xð#ð?ð ?ð ?ð ?ðB)ð )ð )ð )ðð ð ð ð ð)ð )ð )ñ „Xð)ð ð
ð 
ð 
ñ „\ð
ð 
ð 
r   râ  c                  ó6   — e Zd ZU ded<   ded<   ded<   d	d„ZdS )
rz  r   r^  rà   r@  r_  r   c                ó   — d| j         v S )NÚ_symint)r^  r   s    r   r|  zBackendMetadata.supports_symintÛ  s   € Ø˜DœKÐ'Ð'r   NrÛ  )r   r   r    r!   r|  r"   r   r   rz  rz  È  sQ   € € € € € € ð €K€K�Kð
 ÐÐÑð ÐÐÑð(ð (ð (ð (ð (ð (r   rz  c                  óF   — e Zd ZU ded<   ded<   ded<   edd	„¦   «         Zd
S )rƒ  r   r9   rú   Úsupported_dtypesr  rœ  r=   r   c                ó&  — |                       dd¦  «        \  }}|d         dk    sJ ‚|d         dk    sJ ‚t          ¦   «         }|dd…                               d¦  «        D ]}|t                               |¦  «        z  }Œ t	          |||¬¦  «        S )	Nú r'  r   ú(éÿÿÿÿú)rü   )r9   r  rœ  )rý   r   rò   r  rƒ  )r=   rœ  r9   Úsupported_dtypes_strr  rC   s         r   rE   zUfuncInnerLoop.parseç  s²   € à%*§[¢[°°aÑ%8Ô%8Ñ"ˆÐ"Ø# AÔ&¨#Ò-Ð-Ð-Ð-Ø# BÔ'¨3Ò.Ð.Ð.Ð.Ý3=±<´<ÐØ% a¨ dÔ+×1Ò1°$Ñ7Ô7ð 	8ð 	8ˆAØ¥
× 4Ò 4°QÑ 7Ô 7Ñ7ÐÐÝØÐ(8ÀIð
ñ 
ô 
ð 	
r   N)r=   r   rœ  r  r   rƒ  )r   r   r    r!   rÍ   rE   r"   r   r   rƒ  rƒ  ß  sW   € € € € € € à€I€I�IØ,Ð,Ð,Ñ,ð ÐÐÑàð	
ð 	
ð 	
ñ „\ð	
ð 	
ð 	
r   rƒ  c                  óz   — e Zd ZU ded<   ded<   ded<   ded<   ded<   edd„¦   «         Zdd„Zdd„Zdd„Zdd„Z	dS )ÚBackendIndexr5   r–  rà   Úuse_out_as_primaryr5  Úexternalz#dict[OperatorName, BackendMetadata]ÚindexÚparent_indexú6dict[DispatchKey, dict[OperatorName, BackendMetadata]]Úchild_indexr   r   c                ó¸   — |                      ¦   «         D ]D\  }}|                      ¦   «         D ]*\  }}|| |         vsJ d|› d|› �¦   «         ‚|| |         |<   Œ+ŒEd S )Nzduplicate operator z for dispatch key )r@   )r  r  rC   rD   Úop_nameÚmetadatas         r   Ú
grow_indexzBackendIndex.grow_index
  s�   € ð
  ×%Ò%Ñ'Ô'ð 	4ð 	4‰DˆAˆqØ%&§W¢W¡Y¤Yð 4ð 4Ñ!�˜à <°¤?Ð2Ð2Ð2ØG¨ÐGÐGÀAÐGÐGñ 3Ô2Ð2à+3�˜Q” Ñ(Ð(ð	4ð	4ð 	4r   Úgrâ  r0  c                ó,   — | j         r|j        S |j        S r7   )r  r²  rÞ  )r   r  s     r   ÚprimaryzBackendIndex.primary  s   € ØÔ"ð 	 Ø”5ˆLà”<Ðr   ú%NativeFunction | NativeFunctionsGroupc                ó4   — |                       |¦  «        }|d uS r7   )Ú
get_kernel)r   r  Úms      r   Ú
has_kernelzBackendIndex.has_kernel  s   € Ø�OŠO˜AÑÔˆØ˜ˆ}Ðr   úBackendMetadata | Nonec                óþ   — t          |t          ¦  «        r|}n:t          |t          ¦  «        r|                      |¦  «        }nt	          |¦  «         |j        j        | j        vrd S | j        |j        j                 S r7   )rm  r0  râ  r  r	   r3  r9   r  )r   r  rê  s      r   r   zBackendIndex.get_kernel   ss   € õ �a�Ñ(Ô(ð 	ØˆAˆAÝ˜Õ/Ñ0Ô0ð 	Ø—’˜Q‘”ˆAˆAå˜‰OŒOˆOØŒ6Œ;˜dœjÐ(Ð(Ø�4ØŒz˜!œ&œ+Ô&Ð&r   r7  c                óB   — | j         rt          | j        ¦  «        › d�S d S )NÚNativeFunctions)r  r   r–  r   s    r   Únative_function_class_namez'BackendIndex.native_function_class_name-  s-   € ØŒ=ð 	Ý˜$Ô+Ñ,Ô,Ð=Ð=Ð=Ð=ð
 �4r   N)r  r  r  r  r   r   )r  râ  r   r0  )r  r  r   rà   )r  r  r   r#  )r   r7  )
r   r   r    r!   rÍ   r  r  r"  r   r'  r"   r   r   r  r  û  sÁ   € € € € € € àÐÐÑð ÐÐÑð ÐÐÑà€N€N�Nà.Ð.Ð.Ñ.àð	4ð 	4ð 	4ñ „\ð	4ð ð  ð  ð  ðð ð ð ð'ð 'ð 'ð 'ðð ð ð ð ð r   r  c                  ó   — e Zd ZU ded<   ded<   ded<   ed%d	„¦   «         Zd&d„Z ej        d¦  «        Z	e
d'd„¦   «         Zd%d„Zd(d„Zd%d„Zd%d„Zd)d„Zd*d„Zddddœd+d„Zd,d„Zd-d „Zed%d!„¦   «         Zd%d"„Zd.d#„Zd$S )/r2  rf  r9   Ú	Argumentsr  útuple[Return, ...]rÌ  r   rà   c                óV   ‡— dd„Št          ˆfd„| j        j        D ¦   «         ¦  «        S )Nr®  ÚArgumentr   rà   c                ó,   — | j         €dS | j         j        S ©NFrÁ  )r®  s    r   rÃ  z+FunctionSchema.is_mutable.<locals>.is_writex  s   € ØŒ~Ð%Ø�uØ”>Ô*Ð*r   c              3  ó.   •K  — | ]} ‰|¦  «        V — Œd S r7   r"   )r/   r§  rÃ  s     €r   r×   z,FunctionSchema.is_mutable.<locals>.<genexpr>  s+   øè è € Ð@Ð@ 1�8�8˜A‘;”;Ð@Ð@Ð@Ð@Ð@Ð@r   )r®  r,  r   rà   )r·  r  r¸  )r   rÃ  s    @r   Ú
is_mutablezFunctionSchema.is_mutablev  sA   ø€ ð	+ð 	+ð 	+ð 	+õ Ð@Ð@Ð@Ð@¨¬Ô(?Ð@Ñ@Ô@Ñ@Ô@Ð@r   úIterator[Argument]c                ój   — t          j        | j        j        | j        j        | j        j        ¦  «        S r7   )Ú	itertoolsÚchainr  Úflat_positionalÚflat_kwarg_onlyr²  r   s    r   rµ  z%FunctionSchema.schema_order_arguments�  s.   € ÝŒØŒNÔ*ØŒNÔ*ØŒNÔñ
ô 
ð 	
r   z3(?P<name>[^\(]+)\((?P<args>.*)\) -> (?P<returns>.*)r3  r   c                ó¤  — t           j                             | ¦  «        }t          |¦  «        dk    sJ d| › �¦   «         ‚|d         \  }}}t                               |¦  «        }t                               |¦  «        }t          |¦  «        }t          |||¬¦  «        }t          |¦  «        | k    sJ t          |¦  «        › d| › �¦   «         ‚|S )Nr'  zInvalid function schema: r   ©r9   r  rÌ  ræ  )	r2  Údecl_reÚfindallru  rf  rE   r)  Úparse_returnsr   )	r3  ÚdeclsÚopsÚargsÚreturn_declr9   r  rÌ  rÝ   s	            r   rE   zFunctionSchema.parseŠ  sÃ   € õ Ô&×.Ò.¨tÑ4Ô4ˆÝ�5‰zŒz˜QŠˆˆÐ B¸DÐ BÐ B‰ŒˆØ!& q¤ÑˆˆT�;Ý×!Ò! #Ñ&Ô&ˆÝ—O’O DÑ)Ô)ˆ	Ý Ñ,Ô,ˆÝ °	À7ÐKÑKÔKˆÝ�1‰vŒv˜Š~ˆ~ˆ~¥# a¡&¤&Ð4Ð4¨dÐ4Ð4‰~Œ~ˆ~Øˆr   c                ó>   — t          d„ | j        D ¦   «         ¦  «        S )Nc              3  ó@   K  — | ]}|j         ®	|j         j        ¯|V — Œd S r7   rÁ  rÄ  s     r   r×   z5FunctionSchema.returns_are_aliased.<locals>.<genexpr>™  s@   è è € ð 
ð 
àØŒ|Ð'¨A¬LÔ,AÐ'ð à'Ð'Ð'Ð'ð
ð 
r   )r·  rÌ  r   s    r   Úreturns_are_aliasedz"FunctionSchema.returns_are_aliased—  s2   € åð 
ð 
à”\ð
ñ 
ô 
ñ 
ô 
ð 	
r   r   c                ód  ‡‡— t          | j        j        | j        ¦  «        D ]\  }Š|j        ‰j        k    s
J d¦   «         ‚Œ | j        j        D ]<Št          ˆfd„| j        D ¦   «         ¦  «        rJ dt          | ¦  «        › �¦   «         ‚Œ=t          | j        j        ¦  «        d„ | j        j	        D ¦   «         z   }d„ | j        D ¦   «         }d„ | j        D ¦   «         }t          |¦  «        dk    s-t          |¦  «        dk    sJ dt          | ¦  «        › �¦   «         ‚|D ]'Št          ˆfd	„|D ¦   «         ¦  «        s
J d
¦   «         ‚Œ(| j        j        r‰t          d„ | j        j        D ¦   «         ¦  «        r#t          | j        ¦  «        dk    s
J d¦   «         ‚nCt          d„ | j        j        D ¦   «         ¦  «        t          | j        ¦  «        k    s
J d¦   «         ‚| j        j        j        r©| j        j        }|r|j        j        r|j        j        j        sJ ‚|j        j        t#          t$          j        ¦  «        k    r;t          | j        ¦  «        dk    r | j        d         j        |j        j        k    sJ ‚nt          | j        ¦  «        dk    sJ ‚| j        j        �<|                      ¦   «         t,          j        k    sJ dt          | ¦  «        › �¦   «         ‚|                      ¦   «         r<|                      ¦   «         t,          j        k    sJ dt          | ¦  «        › �¦   «         ‚d S d S )NzsOut arguments must have matching return Tensor; furthermore, the ith-argument needs to correspond to the ith returnc              3  ó8   •K  — | ]}‰j         |j         k    V — Œd S r7   ©rÂ  ©r/   rÝ   r§  s     €r   r×   z/FunctionSchema.__post_init__.<locals>.<genexpr>¨  s=   øè è € ð ð Ø12�” ¤Ò,ðð ð ð ð ð r   z^If you have a schema with mutable positional args, we expect them to not be returned. schema: c                ó(   — g | ]}|j         d k    ¯|‘ŒS r   r8   r­  s     r   r1   z0FunctionSchema.__post_init__.<locals>.<listcomp>¯  s+   € ð 3
ð 3
ð 3
Ø¸S¼XÈÒ=OÐ=OˆCÐ=OÐ=OÐ=Or   c                ó8   — g | ]}|j         ®	|j         j        ¯|‘ŒS r7   rÁ  ©r/   Úrets     r   r1   z0FunctionSchema.__post_init__.<locals>.<listcomp>²  s4   € ð 
ð 
ð 
àØŒ~Ð)¨c¬nÔ.EÐ)ð à)Ð)Ð)r   c                ó8   — g | ]}|j         �|j         j        °|‘ŒS r7   rÁ  rI  s     r   r1   z0FunctionSchema.__post_init__.<locals>.<listcomp>·  s4   € ð 
ð 
ð 
àØŒ~Ð%¨S¬^Ô-DÐ%ð à%Ð%Ð%r   r   zYNativeFunctions must have either only mutable returns, or only immutable returns. Found: c              3  ó8   •K  — | ]}‰j         |j         k    V — Œd S r7   rE  )r/   r®  rJ  s     €r   r×   z/FunctionSchema.__post_init__.<locals>.<genexpr>Å  s,   øè è € ÐPÐP¸C�s”~¨¬Ò7ÐPÐPÐPÐPÐPÐPr   z‡All mutable returns must be aliased either to a keyword argument, or to "self". Did you forget to mark an out argument as keyword-only?c              3  óZ   K  — | ]&}|j         t          t          j        ¦  «        k    V — Œ'd S r7   )ÚtypeÚBaseTypeÚBaseTyÚTensorr¦  s     r   r×   z/FunctionSchema.__post_init__.<locals>.<genexpr>Ï  s3   è è € ÐQÐQ¸�1”6�X¥f¤mÑ4Ô4Ò4ÐQÐQÐQÐQÐQÐQr   z3out= ops that accept tensor lists as out arguments c                óF   — g | ]}|j                              d ¦  «        °|‘ŒS ©Ú	_scratch_©r9   r}  r­  s     r   r1   z0FunctionSchema.__post_init__.<locals>.<listcomp>Ù  s>   € ð ð ð à #Ø#&¤8×#6Ò#6°{Ñ#CÔ#CðØðð ð r   zMMust return as many arguments as there are out arguments, or no return at allr'  z·Found an operator that is not functional or out variant, but has tensor options arguments.This is not allowed- tensor options arguments are only allowed for factory functions.schema: z³Found an operator that is not functional, but its overload contains the string 'functional'.This is a special keyword in the codegen, please use a different overload name.schema: )Úzipr  r²  rÌ  rÂ  Úpost_self_positional_mutabler·  r   rq  r5  ru  r9   rÓ  Úself_argÚargumentrÃ  rN  rO  rP  rQ  r€  r³  r´  rÞ  Úis_functional_fn)r   r®  Úout_and_selfÚmutable_returnsÚimmutable_returnsÚself_ar§  rJ  s         @@r   r¼  zFunctionSchema.__post_init__Ÿ  s  øø€ Ý˜DœNÔ.°´Ñ=Ô=ð 	ð 	‰HˆC�Ø”> S¤^Ò3Ð3Ð3ðIñ 4Ô3Ð3Ð3ð ”Ô<ð 	|ð 	|ˆAÝð ð ð ð Ø6:´lðñ ô ñ ô ð |ð |à{ÕpsÐtxÑpyÔpyÐ{Ð{ñ|ô |ð ð |õ ˜DœNÔ.Ñ/Ô/ð 3
ð 3
Øœ>Ô9ð3
ñ 3
ô 3
ñ 
ˆð
ð 
à”|ð
ñ 
ô 
ˆð

ð 
à”|ð
ñ 
ô 
Ðõ �Ñ Ô  AÒ%Ð%­Ð->Ñ)?Ô)?À1Ò)DÐ)DÐ)DØrÕgjÐkoÑgpÔgpÐrÐrñ *EÔ)DÐDà"ð 	ð 	ˆCÝÐPÐPÐPÐPÀ<ÐPÑPÔPÑPÔPð ð ðJñô ÐPð ð Œ>Ôð 	cõ ÐQÐQ¸d¼nÔ>PÐQÑQÔQÑQÔQð cå˜œÑ%Ô%¨Ò*Ð*Ð*ØHñ +Ô*Ð*àbõ
 ðð à'+¤~Ô'9ðñ ô ñô õ ˜4œ<Ñ(Ô(ò)ð )ð )ð cñ)ô )ð )ð Œ9Œ>Ô!ð 	.Ø”^Ô,ˆFàðà”OÔ.ðð ”OÔ.Ô7ðð ð8ð ŒÔ#¥xµ´Ñ'>Ô'>Ò>Ð>õ ˜œÑ%Ô%¨Ò*Ð*Øœ QœÔ2°f´oÔ6PÒPÐPÐPðQØPõ
 ˜4œ<Ñ(Ô(¨AÒ-Ð-Ð-Ð-àŒ>Ô(Ð4Ø—9’9‘;”;¥*Ô"7Ò7Ð7Ð7ð'å˜t™9œ9ð'ð 'ñ 8Ô7Ð7ð
 × Ò Ñ"Ô"ð 	Ø—9’9‘;”;¥*Ô"7Ò7Ð7Ð7ð'å˜t™9œ9ð'ð 'ñ 8Ô7Ð7ð	ð 	Ø7Ð7r   c                ó   — d| j         j        v S )NrÞ  ©r9   Úoverload_namer   s    r   rZ  zFunctionSchema.is_functional_fn  s   € Ø˜tœyÔ6Ð6Ð6r   c                ó4   — t          | j        j        ¦  «        S r7   )rà   r  r²  r   s    r   Ú	is_out_fnzFunctionSchema.is_out_fn  s   € õ6 �D”NÔ&Ñ'Ô'Ð'r   r´  c                ó¦  — t          | j        j        ¦  «        }t          d„ | j        j        D ¦   «         ¦  «        }| j        j        j        }t          d„ | j        j        D ¦   «         ¦  «        }|r|rJ ‚|rt          j        S |r|s
J d¦   «         ‚t          j        S |r|r
J d¦   «         ‚t          j        S |rt          j	        S t          j
        S )a	  
        What kind of schema is this?  A functional schema is one
        that returns a newly allocated output; an inplace schema
        modifies the self argument inplace; an out schema writes
        the result into an explicitly provided out argument.
        c                óF   — g | ]}|j                              d ¦  «        ¯|‘ŒS rS  rU  r­  s     r   r1   z'FunctionSchema.kind.<locals>.<listcomp>+  s-   € ÐSÐSÐS�S°#´(×2EÒ2EÀkÑ2RÔ2RÐSˆSÐSÐSÐSr   c              3  ó@   K  — | ]}|j         d uo|j         j        V — Œd S r7   rÁ  r¦  s     r   r×   z&FunctionSchema.kind.<locals>.<genexpr>.  sG   è è € ð 
ð 
àð ŒL Ð$Ð>¨¬Ô)>ð
ð 
ð 
ð 
ð 
ð 
r   zFinvariant: all scratch operators are expected to be out= operators toozjWe should not categorize a scratch op as an out variant. Check if the order of if statements are expected!)rà   r  r²  r9   rÓ  r·  Úpost_self_positionalr´  rà  rß  rÞ  )r   Úis_outÚ
is_scratchÚ
is_inplacer0  s        r   r³  zFunctionSchema.kind"  s  € õ �d”nÔ(Ñ)Ô)ˆÝØSÐS˜DœNÔ.ÐSÑSÔSñ
ô 
ˆ
ð ”Y”^Ô+ˆ
Ýð 
ð 
à”^Ô8ð
ñ 
ô 
ñ 
ô 
ˆ
ð Ð*˜zÐ*Ð*Ð*ð ð 	)ÝÔ%Ð%Øð 	)àðXð XàWñXô XØåÔ%Ð%Øð 	)Ø!ð  Pð  Pð  $Pñ  Pô  P�>Ý”>Ð!Øð 	)ÝÔ%Ð%åÔ(Ð(r   úlist[str | None]c                ó|  ‡— g }| j         D ]°Šˆfd„| j        j        D ¦   «         }t          |¦  «        dk    r|                     d ¦  «         ŒCt          |¦  «        dk    r!|                     |d         j        ¦  «         Œwd                     d„ |D ¦   «         ¦  «        }t          d‰j        › d|› d�¦  «        ‚|S )	Nc                óB   •— g | ]}|j         ®	|j         ‰j         k    ¯|‘ŒS r7   rE  )r/   r§  rÝ   s     €r   r1   z7FunctionSchema.aliased_return_names.<locals>.<listcomp>P  s9   ø€ ð ð ð àØ”<Ð+°´ÀÄÒ0LÐ0Lð à0LÐ0LÐ0Lr   r   r'  rü   c              3  ó$   K  — | ]}|j         V — Œd S r7   r8   r¦  s     r   r×   z6FunctionSchema.aliased_return_names.<locals>.<genexpr>Z  s$   è è € Ð)GÐ)G°Q¨!¬&Ð)GÐ)GÐ)GÐ)GÐ)GÐ)Gr   zFound a return (z)that aliases multiple inputs (r  )rÌ  r  r¸  ru  rt  r9   rÜ   rA   )r   ÚoutsÚaliased_argsÚaliased_namesrÝ   s       @r   Úaliased_return_namesz#FunctionSchema.aliased_return_namesM  sð   ø€ Ø!#ˆØ”ð 	ð 	ˆAðð ð ð àœÔ0ðñ ô ˆLõ
 �<Ñ Ô  AÒ%Ð%Ø—’˜DÑ!Ô!Ð!Ð!Ý�\Ñ"Ô" aÒ'Ð'Ø—’˜L¨œOÔ0Ñ1Ô1Ð1Ð1à $§	¢	Ð)GÐ)G¸,Ð)GÑ)GÔ)GÑ GÔ G�Ý$Ø^ q¤vÐ^Ð^ÈmÐ^Ð^Ð^ñô ð ð ˆr   F)Ústrip_defaultÚstrip_view_copy_nameÚkeep_return_namesrs  rt  ru  c          	     óT  ‡ ‡— dˆfd„}‰ j         j         j        }|rW|                     d¦  «        r|                     dd¦  «        }n+|                     d¦  «        r|                     dd	¦  «        }t	          ˆˆ fd
„t          j        ‰ j        j        �‰ j        j        j	        gng ‰ j        j
        ‰ j        j        ¦  «        D ¦   «         ¦  «        }t	          t          |‰ j        ¦  «        ¦  «        }||z   }‰ j                             |¬¦  «        }	t          ‰ j         ¦  «        dk    r;t                                t          |	¦  «                             dd¦  «        ¦  «        }	t%          t'          t)          |d‰ j         j         j        ¬¦  «        d¬¦  «        |	|¬¦  «        S )aö
  
                Certain schemas are 'related', in that they are simply
                inplace/out/functional versions of the same function.  This method
                factors these schemas into the "core" functional signature which
                is equal across all versions.

                Here is what normalization happens to the schema to convert
                it to a signature:
                - The overload name is stripped (name is retained, since
                  it expresses semantic content about what the function does)
                - Inplace is set False
                - Out arguments are stripped
                - Mutable post_self_positional args are converted to returns
                - Mutability annotations are stripped  (this is sound
                  because you cannot overload on mutability annotation)
                - Return names are stripped since they are not overloadable and
                  some variants have return names but some not
                - TensorOptions are dropped
                  because out= variants of factory functions don't include them
                  (and we want to be able to pair up factory functions with their out variants)

                Finally, we want to be able to pair up related "view" and their
                corresponding "view_copy" operators. We do this by optionally
                stripping the trailing "_copy" from the base name.

                Example of a mutable op before and after:

                f.func (Mutable operator):
        _fused_moving_avg_obs_fq_helper(Tensor self, Tensor observer_on, Tensor fake_quant_on, Tensor(a!) running_min, Tensor(b!) running_max, Tensor(c!) scale, Tensor(d!) zero_point, float averaging_const, int quant_min, int quant_max, int ch_axis, bool per_row_fake_quant=False, bool symmetric_quant=False) -> (Tensor output, Tensor mask)  # noqa: B950

                f.func (Corresponding functional operator):
        _fused_moving_avg_obs_fq_helper.functional(Tensor self, Tensor observer_on, Tensor fake_quant_on, Tensor running_min, Tensor running_max, Tensor scale, Tensor zero_point, float averaging_const, int quant_min, int quant_max, int ch_axis, bool per_row_fake_quant=False, bool symmetric_quant=False) -> (Tensor output, Tensor mask, Tensor running_min_out, Tensor running_max_out, Tensor scale_out, Tensor zero_point_out)  # noqa: B950

                f.func.signature() output:
        _fused_moving_avg_obs_fq_helper(Tensor self, Tensor observer_on, Tensor fake_quant_on, Tensor running_min, Tensor running_max, Tensor scale, Tensor zero_point, float averaging_const, int quant_min, int quant_max, int ch_axis, bool per_row_fake_quant=False, bool symmetric_quant=False) -> (Tensor, Tensor, Tensor, Tensor, Tensor, Tensor)  # noqa: B950
        rÝ   ÚReturnr   c                óD   •— t          ‰r| j        nd | j        d ¬¦  «        S )N©r9   rN  rÂ  )rw  r9   rN  )rÝ   ru  s    €r   Ústrip_ret_annotationz6FunctionSchema.signature.<locals>.strip_ret_annotationŒ  s0   ø€ ÝØ0Ð:�Q”V�V°dØ”VØðñ ô ð r   Ú_copyr'   Ú_scatterÚscatterÚinversec              3  óÆ   •‡K  — | ]ZŠ‰j         ®	‰j         j        ¯t          ˆfd„‰j        D ¦   «         ¦  «        °5t	          ‰r
‰j        › d�nd ‰j        d ¬¦  «        V — Œ[d S )Nc              3  ó8   •K  — | ]}‰j         |j         k    V — Œd S r7   rE  rF  s     €r   r×   z5FunctionSchema.signature.<locals>.<genexpr>.<genexpr>¯  s,   øè è € ÐKÐK¸˜œ¨¬Ò4ÐKÐKÐKÐKÐKÐKr   Ú_outry  )rÂ  rÃ  r·  rÌ  rw  r9   rN  )r/   r§  ru  r   s    @€€r   r×   z+FunctionSchema.signature.<locals>.<genexpr>›  s�   øøè è € ð ,
ð ,
ð ð Œ|Ð'Ø”Ô%ð (åÐKÐKÐKÐK¸d¼lÐKÑKÔKÑKÔKð (õ Ø(9ÐC˜œ�_�_�_�_¸tØ”VØðñ ô ð (Ð'Ð'Ð'ð%,
ð ,
r   N©rs  zbernoulli.pzfloat pzfloat p=0.5F©rÖ  rÓ  Údunder_methodr`  r8  )rÝ   rw  r   rw  )r9   rÖ  r~  ÚreplaceÚtupler3  r4  r  rX  rY  r²  rg  ÚmaprÌ  rñ  r   r)  rE   r2  rf  ÚBaseOperatorNamer„  )
r   rs  rt  ru  rz  Ú	base_nameÚreturns_from_mutable_inputsÚoriginal_returnsrÌ  Úargs_sigs
   `  `      r   rñ  zFunctionSchema.signature`  sä  øø€ ðX	ð 	ð 	ð 	ð 	ð 	ð ”I”NÔ'ˆ	Øð 	DØ×!Ò! 'Ñ*Ô*ð DØ%×-Ò-¨g°rÑ:Ô:�	�	Ø×#Ò# JÑ/Ô/ð DØ%×-Ò-¨i¸ÑCÔC�	õ ',ð ,
ð ,
ð ,
ð ,
ð ,
õ ”_ð ”>Ô*Ð6ð ”Ô(Ô1Ð2Ð2àØ”Ô"Ø”Ô3ñô ð,
ñ ,
ô ,
ñ '
ô '
Ð#õ, !¥Ð%9¸4¼<Ñ!HÔ!HÑIÔIÐà"Ð%@Ñ@ˆà”>×+Ò+¸-Ð+ÑHÔHˆåˆtŒy‰>Œ>˜]Ò*Ð*Ý —’¥s¨8¡}¤}×'<Ò'<¸YÈÑ'VÔ'VÑWÔWˆHåÝÝ%Ø"Ø!Ø"&¤)¤.Ô">ðñ ô ð
 !ðñ ô ð Øð
ñ 
ô 
ð 	
r   c                ó.   — |                       d¬¦  «        S )NT©rt  )rñ  r   s    r   Úview_signaturezFunctionSchema.view_signatureÇ  s   € Ø�~Š~°4ˆ~Ñ8Ô8Ð8r   c                ó:   — t          || j        | j        ¬¦  «        S )Nr8  )r2  r  rÌ  )r   r9   s     r   Ú	with_namezFunctionSchema.with_nameÊ  s&   € ÝØØ”nØ”Lð
ñ 
ô 
ð 	
r   c                óp   — |                       ¦   «         t          j        t          j        t          j        fv S r7   )r³  r´  rÓ  r²  rß  r   s    r   Úmodifies_argumentsz!FunctionSchema.modifies_argumentsÑ  s$   € à�yŠy‰{Œ{�zÔ1µ:´>Å:ÔCUÐVÐVÐVr   c                ó4   — | j                              ¦   «         S r7   )r  Úhas_symint_argr   s    r   Ú
has_symintzFunctionSchema.has_symintÕ  s   € ØŒ~×,Ò,Ñ.Ô.Ð.r   c                ó  — t          | j        ¦  «        }t          | j        ¦  «        dk    rt          | j        d         ¦  «        }n3dd                     t          t           | j        ¦  «        ¦  «        z   dz   }| j        › d|› d|› �S )Nr'  r   r  rü   r  z) -> )r   r  ru  rÌ  rÜ   r‡  r9   )r   Úall_arguments_strrÌ  s      r   r   zFunctionSchema.__str__Ø  s‚   € Ý ¤Ñ/Ô/ÐÝˆtŒ|ÑÔ Ò!Ð!Ý˜$œ, qœ/Ñ*Ô*ˆGˆGà˜DŸIšI¥c­#¨t¬|Ñ&<Ô&<Ñ=Ô=Ñ=ÀÑCˆGØ”)Ð?Ð?Ð/Ð?Ð?°gÐ?Ð?Ð?r   NrÛ  )r   r1  )r3  r   r   r2  rÚ  )r   r´  )r   rk  )rs  rà   rt  rà   ru  rà   r   r2  r  )r9   rf  r   r2  r   )r   r   r    r!   rÜ  r0  rµ  ÚreÚcompiler9  rÍ   rE   rB  r¼  rZ  rc  r³  rr  rñ  r�  r‘  r“  r–  r   r"   r   r   r2  r2  l  sÎ  € € € € € € ð ÐÐÑàÐÐÑð  ÐÐÑàðAð Að Añ „XðAð
ð 
ð 
ð 
ð ˆbŒjÐOÑPÔP€Gàð
ð 
ð 
ñ „\ð
ð
ð 
ð 
ð 
ðað að að aðF7ð 7ð 7ð 7ð(ð (ð (ð (ð:%)ð %)ð %)ð %)ðVð ð ð ð, $Ø%*Ø"'ðe
ð e
ð e
ð e
ð e
ð e
ðN9ð 9ð 9ð 9ð
ð 
ð 
ð 
ð ðWð Wð Wñ „XðWð/ð /ð /ð /ð@ð @ð @ð @ð @ð @r   r2  c                  óN   — e Zd ZU ded<   ded<   ded<   edd	„¦   «         Zdd
„ZdS )Ú
Annotationztuple[str, ...]Ú	alias_setrà   rÃ  rÊ  Úannr   r   c                óö  — t          j        d| ¦  «        }|€J d| › �¦   «         ‚|                     d¦  «        |                     d¦  «        r|                     d¦  «        ndz   }t          |                     d¦  «        ¦  «        }|                     d¦  «        dk    }|r!t          |¦  «        dk    rJ d	| › d
�¦   «         ‚|                     d¦  «        r5t          |                     d¦  «                             d¦  «        ¦  «        nd}t          |¦  «        dk    r!t          |¦  «        dk    rJ d| › d
�¦   «         ‚t          |||¬¦  «        }t          |¦  «        | k    sJ |› d| › �¦   «         ‚|S )Nz2^([a-z])(\|[a-z])*(!?)( -> (\*|[a-z](\|[a-z])*))?$zunrecognized alias annotation r'  rd  r'   ú|r\  ú!z,alias set larger than 1 is not mutable, got z	 instead.é   r"   zSbefore alias set and after alias set cannot be larger than 1 at the same time, got )r�  rÃ  rÊ  ræ  )r™  ÚmatchÚgroupr†  rý   ru  rœ  r   )rž  r!  Úbefore_aliasr�  rÃ  Ú	after_setrÝ   s          r   rE   zAnnotation.parseñ  sŠ  € õ  ŒHÐJÈCÑPÔPˆàˆ}ˆ}ÐD¸sÐDÐD‰}Œ}ˆ}Ø—w’w˜q‘z”z°1·7²7¸1±:´:Ð%E Q§W¢W¨Q¡Z¤Z ZÀ2ÑFˆÝ˜,×,Ò,¨SÑ1Ô1Ñ2Ô2ˆ	Ø—7’7˜1‘:”: Ò$ˆàð	IÝ˜Y™œ¨!Ò+Ð+Ð+ØH¸#ÐHÐHÐHñ ,Ô+ð
ð 56·G²G¸A±J´JÐF•E˜!Ÿ'š' !™*œ*×*Ò*¨3Ñ/Ô/Ñ0Ô0Ð0ÀBˆ	å�ÑÔ Ò!Ð!¥c¨)¡n¤n°qÒ&8Ð&8Ð&8ØoÐadÐoÐoÐoñ '9Ô&8ð
õ Ø¨(ÀIð
ñ 
ô 
ˆõ �1‰vŒv˜Š}ˆ}ˆ} ˜o˜o¨˜o˜o‰}Œ}ˆ}Øˆr   c                óš   — d                      | j        ¦  «        }| j        r|› d�}d                      | j        ¦  «        }|r|› d› |› �}|S )Nr   r¡  ú -> )rÜ   r�  rÃ  rÊ  )r   r�  rÊ  s      r   r   zAnnotation.__str__  sb   € Ø—H’H˜Tœ^Ñ,Ô,ˆ	ØŒ=ð 	(Ø$˜˜˜ˆIØŸ(š( 4Ô#7Ñ8Ô8ˆØð 	@Ø$Ð? fÐ?¨oÐ?Ð?ˆIØÐr   N)rž  r   r   rœ  r   )r   r   r    r!   rÍ   rE   r   r"   r   r   rœ  rœ  é  sl   € € € € € € ð ÐÐÑØ€N€N�NØ$Ð$Ð$Ñ$àð ð  ð  ñ „\ð ðDð ð ð ð ð r   rœ  c                  óv   — e Zd Zedd„¦   «         Zedd„¦   «         Zdd„Zdd
„Zdd„Zdd„Z	dd„Z
dd„Zdd„ZdS )ÚTyper‘  r   r   c                ó~   — t                                | ¦  «        }t          |¦  «        | k    sJ |› d| › �¦   «         ‚|S )Nræ  )rª  Ú_parser   )r‘  rÝ   s     r   rE   z
Type.parse&  s9   € å�KŠK˜‰NŒNˆÝ�1‰vŒv˜Š{ˆ{ˆ{˜q˜M˜M a˜M˜M‰{Œ{ˆ{Øˆr   c                ó®  — t          j        d| ¦  «        }|�:t          t                               |                     d¦  «        ¦  «        ¦  «        S t          j        d| ¦  «        }|�u|                     d¦  «        �"t          |                     d¦  «        ¦  «        nd }t          t                               |                     d¦  «        ¦  «        |¬¦  «        S t          j        d| ¦  «        }|�"t          |                     d¦  «        ¦  «        S 	 t          t          |          ¦  «        S # t          $ r}t          d| › �¦  «        |‚d }~ww xY w)Nz^(.+)\?$r'  z^(.+)\[([0-9]+)?\]$rd  )ÚelemÚsizez-^__torch__\.torch\.classes\.([a-zA-Z0-9_.]+)$zunrecognized type )r™  r£  ÚOptionalTyperª  rE   r¤  r   ÚListTypeÚCustomClassTyperO  rP  ÚKeyErrorrõ  )r‘  r!  r¯  rˆ  s       r   r¬  zType._parse,  s)  € åŒH�[ !Ñ$Ô$ˆØˆ=Ý¥§
¢
¨1¯7ª7°1©:¬:Ñ 6Ô 6Ñ7Ô7Ð7ÝŒHÐ+¨QÑ/Ô/ˆØˆ=Ø&'§g¢g¨a¡j¤jÐ&<•3�q—w’w˜q‘z”z‘?”?�?À$ˆDÝ¥§¢¨A¯GªG°A©J¬JÑ!7Ô!7¸dÐCÑCÔCÐCõ ŒHÐEÀqÑIÔIˆØˆ=Ý" 1§7¢7¨1¡:¤:Ñ.Ô.Ð.ð	@Ý�F 1œIÑ&Ô&Ð&øÝð 	@ð 	@ð 	@ÝÐ7°AÐ7Ð7Ñ8Ô8¸aÐ?øøøøð	@øøøs   ÄD2 Ä2
EÄ<EÅEc                ó   — t           ‚r7   ©ÚNotImplementedErrorr   s    r   r   zType.__str__?  ó   € Ý!Ð!r   Úbase_tyrP  rà   c                ó   — t           ‚r7   rµ  ©r   r¸  s     r   Úis_base_ty_likezType.is_base_ty_likeG  r·  r   c                ó@   — |                       t          j        ¦  «        S r7   )r»  rP  rQ  r   s    r   Úis_tensor_likezType.is_tensor_likeJ  ó   € Ø×#Ò#¥F¤MÑ2Ô2Ð2r   c                ó@   — |                       t          j        ¦  «        S r7   )r»  rP  Ú	Generatorr   s    r   Úis_generator_likezType.is_generator_likeM  s   € Ø×#Ò#¥FÔ$4Ñ5Ô5Ð5r   c                ó@   — |                       t          j        ¦  «        S r7   )r»  rP  ÚSymIntr   s    r   Úis_symint_likezType.is_symint_likeP  r¾  r   c                ó   — t           ‚r7   rµ  r   s    r   Úis_nullablezType.is_nullableS  r·  r   úListType | Nonec                ó   — t           ‚r7   rµ  r   s    r   Úis_list_likezType.is_list_likeV  r·  r   N)r‘  r   r   rª  r   ©r¸  rP  r   rà   rÛ  ©r   rÇ  )r   r   r    rÍ   rE   r¬  r   r»  r½  rÁ  rÄ  rÆ  rÉ  r"   r   r   rª  rª  $  sâ   € € € € € àðð ð ñ „\ðð
 ð@ð @ð @ñ „\ð@ð$"ð "ð "ð "ð"ð "ð "ð "ð3ð 3ð 3ð 3ð6ð 6ð 6ð 6ð3ð 3ð 3ð 3ð"ð "ð "ð "ð"ð "ð "ð "ð "ð "r   rª  c                  óž  — e Zd Z e¦   «         Z e¦   «         Z e¦   «         Z e¦   «         Z e¦   «         Z e¦   «         Z	 e¦   «         Z
 e¦   «         Z e¦   «         Z e¦   «         Z e¦   «         Z e¦   «         Z e¦   «         Z e¦   «         Z e¦   «         Z e¦   «         Z e¦   «         Z e¦   «         Z e¦   «         Z e¦   «         ZdS )rP  N)r   r   r    r   rÀ  rò   rQ  r   ÚDimnameÚ	DimVectorÚfloatr   rà   ÚLayoutÚDeviceÚDeviceIndexÚScalarÚMemoryFormatÚQSchemeÚStorageÚStreamrÃ  ÚSymBoolÚGraphModuler"   r   r   rP  rP  [  sê   € € € € € Ø�‘”€IØ�‘”€JØˆT‰VŒV€FØ
ˆ$‰&Œ&€CØˆd‰fŒf€GØ�‘”€IØˆD‰FŒF€EØ
ˆ$‰&Œ&€CØˆ4‰6Œ6€DØˆT‰VŒV€FØˆT‰VŒV€FØ�$‘&”&€KØˆT‰VŒV€FØ�4‘6”6€LØˆd‰fŒf€GØˆd‰fŒf€GØˆT‰VŒV€FØˆT‰VŒV€FØˆd‰fŒf€GØ�$‘&”&€K€K€Kr   rP  c                  óB   — e Zd ZU ded<   dd„Zdd„Zdd	„Zdd„Zdd„ZdS )rO  rP  r9   r   r   c                ó   — | j         j         › S r7   r8   r   s    r   r   zBaseType.__str__v  s   € Ø”)”.Ð"Ð"r   r¸  rà   c                ó   — | j         |k    S r7   r8   rº  s     r   r»  zBaseType.is_base_ty_likey  s   € ØŒy˜GÒ#Ð#r   c                ó   — dS r.  r"   r   s    r   rÆ  zBaseType.is_nullable|  ó   € Øˆur   rÇ  c                ó   — d S r7   r"   r   s    r   rÉ  zBaseType.is_list_like  ó   € Øˆtr   c                ó,   — | j         t          j        k    S r7   )r9   rP  rÃ  r   s    r   rÄ  zBaseType.is_symint_like‚  s   € ØŒy�FœMÒ)Ð)r   Nr   rÊ  rÛ  rË  )	r   r   r    r!   r   r»  rÆ  rÉ  rÄ  r"   r   r   rO  rO  r  sƒ   € € € € € € à€L€L�Lð#ð #ð #ð #ð$ð $ð $ð $ðð ð ð ðð ð ð ð*ð *ð *ð *ð *ð *r   rO  c                  óB   — e Zd ZU ded<   dd„Zdd	„Zdd
„Zdd„Zdd„ZdS )r°  rª  r®  r   r   c                ó   — | j         › d�S )Nú?)r®  r   s    r   r   zOptionalType.__str__‹  s   € Ø”)ˆˆˆÐr   r¸  rP  rà   c                ó6   — | j                              |¦  «        S r7   ©r®  r»  rº  s     r   r»  zOptionalType.is_base_ty_likeŽ  ó   € ØŒy×(Ò(¨Ñ1Ô1Ð1r   c                ó4   — | j                              ¦   «         S r7   ©r®  rÄ  r   s    r   rÄ  zOptionalType.is_symint_like‘  ó   € ØŒy×'Ò'Ñ)Ô)Ð)r   c                ó   — dS )NTr"   r   s    r   rÆ  zOptionalType.is_nullable”  rà  r   rÇ  c                ó4   — | j                              ¦   «         S r7   )r®  rÉ  r   s    r   rÉ  zOptionalType.is_list_like—  s   € ØŒy×%Ò%Ñ'Ô'Ð'r   Nr   rÊ  rÛ  rË  ©	r   r   r    r!   r   r»  rÄ  rÆ  rÉ  r"   r   r   r°  r°  ‡  sƒ   € € € € € € à€J€J�Jðð ð ð ð2ð 2ð 2ð 2ð*ð *ð *ð *ðð ð ð ð(ð (ð (ð (ð (ð (r   r°  c                  óB   — e Zd ZU ded<   dd„Zdd„Zdd	„Zdd
„Zdd„ZdS )r²  r   Ú
class_namer   c                ó   — d| j         › �S )zK
        Return the class name will prefix __torch__.torch.classes
        z__torch__.torch.classes.)rï  r   s    r   r   zCustomClassType.__str__   s   € ð <¨$¬/Ð;Ð;Ð;r   r¸  rP  rà   c                ó   — dS r.  r"   rº  s     r   r»  zCustomClassType.is_base_ty_like¦  rÞ  r   c                ó   — dS r.  r"   r   s    r   rÄ  zCustomClassType.is_symint_like©  rÞ  r   c                ó   — dS )z8
        Assume a custom class is not nullable.
        Fr"   r   s    r   rÆ  zCustomClassType.is_nullable¬  s	   € ð ˆur   rÇ  c                ó   — d S r7   r"   r   s    r   rÉ  zCustomClassType.is_list_like²  rà  r   Nr   rÊ  rÛ  rË  rí  r"   r   r   r²  r²  œ  sƒ   € € € € € € à€O€O�Oð<ð <ð <ð <ðð ð ð ðð ð ð ðð ð ð ðð ð ð ð ð r   r²  c                  óL   — e Zd ZU ded<   ded<   dd„Zdd„Zdd„Zdd„Zdd„ZdS )r±  rª  r®  z
int | Noner¯  r   r   c                ó>   — | j         r| j         › nd}| j        › d|› d�S )Nr'   ú[ú])r¯  r®  )r   r¯  s     r   r   zListType.__str__Â  s/   € Ø!%¤Ð2�$”)ˆ~ˆ~°ˆØ”)Ð%Ð%˜dÐ%Ð%Ð%Ð%r   r¸  rP  rà   c                ó6   — | j                              |¦  «        S r7   ræ  rº  s     r   r»  zListType.is_base_ty_likeÆ  rç  r   c                ó4   — | j                              ¦   «         S r7   ré  r   s    r   rÄ  zListType.is_symint_likeÉ  rê  r   c                ó4   — | j                              ¦   «         S r7   )r®  rÆ  r   s    r   rÆ  zListType.is_nullableÌ  s   € ØŒy×$Ò$Ñ&Ô&Ð&r   rÇ  c                ó   — | S r7   r"   r   s    r   rÉ  zListType.is_list_likeÏ  s   € Øˆr   Nr   rÊ  rÛ  rË  rí  r"   r   r   r±  r±  ½  s�   € € € € € € à€J€J�JØÐÐÑð&ð &ð &ð &ð2ð 2ð 2ð 2ð*ð *ð *ð *ð'ð 'ð 'ð 'ðð ð ð ð ð r   r±  c                  óˆ   — e Zd ZU ded<   ded<   ded<   ded<   edd
„¦   «         Zedd„¦   «         Zedd„¦   «         Zdd„Z	dS )r,  r   r9   rª  rN  r7  rV  úAnnotation | NonerÂ  r   c                ó   — | j         S r7   rE  r   s    r   Ú
alias_infozArgument.alias_infoñ  ó
   € àŒÐr   r®  c                óè  — d| v sJ d| › d�¦   «         ‚d| v r`|                       d¦  «        dk    sJ d| › d�¦   «         ‚|                      d¦  «        \  }}|                     dd¦  «        \  }}|› d|› �}n|                      dd¦  «        \  }}|}d }t          j        d|¦  «        }|rg|                     d¦  «        d	v s
J d
¦   «         ‚d|                     d¦  «        z   }t                               |                     d¦  «        ¦  «        }n|}d }t                               |¦  «        }	t          ||	||¬¦  «        }
t          |
¦  «        | k    sJ t          |
¦  «        › d| › �¦   «         ‚|
S )Nr
  zillegal argument 'rð  ú=r'  z&illegal argument with default value: 'úTensor\((.+)\)(.*)rd  ©r'   rä  z[]ú,unrecognized alias analysis form with TensorrQ  ©r9   rN  rV  rÂ  ræ  )Úcountrý   Úrsplitr™  r£  r¤  rœ  rE   rª  r,  r   )r®  Útype_and_annot_and_namerV  Útype_and_annotr9   Úname_and_defaultr£  Útype_srÂ  rN  rÝ   s              r   rE   zArgument.parseõ  s¸  € ð �cˆzˆzˆzÐ6°Ð6Ð6Ð6‰zŒzˆzØ�#ˆ:ˆ:Ø—9’9˜S‘>”> QÒ&Ð&Ð&Ð(WÐQTÐ(WÐ(WÐ(WÑ&Ô&Ð&Ø/2¯yªy¸©~¬~Ñ,Ð# WØ#:×#AÒ#AÀ#ÀqÑ#IÔ#IÑ ˆN˜DØ"&Ð2Ð2¨Ð2Ð2ÐÐà/2¯zªz¸#¸qÑ/AÔ/AÑ,ˆNÐ,Ø#ˆDØˆGå”Ð.°Ñ?Ô?ˆàð 	à—;’;˜q‘>”>ð &ð ð ð ð >ñ	ô ð ð
  §¢¨A¡¤Ñ.ˆFÝ#×)Ò)¨%¯+ª+°a©.¬.Ñ9Ô9ˆJˆJà#ˆFØˆJÝ�zŠz˜&Ñ!Ô!ˆÝØØØØ!ð	
ñ 
ô 
ˆõ �1‰vŒv˜Š}ˆ}ˆ}¥ Q¡¤Ð2Ð2¨SÐ2Ð2‰}Œ}ˆ}Øˆr   rà   c                ó,   — | j         d uo| j         j        S r7   rÁ  r   s    r   rÃ  zArgument.is_write  ó   € àŒ dÐ*ÐG¨t¬Ô/GÐGr   c                ó¾   — | j         › }| j        r%|dv sJ ‚|                     dd| j        › d�¦  «        }| j        €|S d}| j        r
d| j        › �}|› d| j        › |› �S )N©rQ  zTensor?zTensor[]rQ  úTensor(r  r'   r  r
  )rN  rÂ  r…  r9   rV  )r   rN  Ú
mb_defaults      r   r   zArgument.__str__   s�   € Ø”)ˆ~ˆØŒ?ð 	HØÐ<Ð<Ð<Ð<Ð<Ø—<’< Ð*F°D´OÐ*FÐ*FÐ*FÑGÔGˆDØŒ9ÐØˆKàˆJØŒ|ð 0Ø/ ¤Ð/Ð/�
ØÐ4Ð4˜TœYÐ4¨
Ð4Ð4Ð4r   N©r   rþ  )r®  r   r   r,  rÛ  r   ©
r   r   r    r!   rÜ  r   rÍ   rE   rÃ  r   r"   r   r   r,  r,  Ó  s»   € € € € € € ð
 €I€I�IØ€J€J�JØÐÐÑð* "Ð!Ð!Ñ!àðð ð ñ „Xðð ð$ð $ð $ñ „\ð$ðL ðHð Hð Hñ „XðHð5ð 5ð 5ð 5ð 5ð 5r   r,  c                  ó~   — e Zd ZU ded<   ded<   ded<   edd„¦   «         Zedd„¦   «         Zedd„¦   «         Zdd„Z	dS )rw  r7  r9   rª  rN  rþ  rÂ  r   c                ó   — | j         S r7   rE  r   s    r   r   zReturn.alias_info4  r  r   r®  r   c                ó  — d| v r|                       dd¦  «        \  }}n| }d }t          j        d|¦  «        }|rg|                     d¦  «        dv s
J d¦   «         ‚d|                     d¦  «        z   }t                               |                     d¦  «        ¦  «        }n|}d }t                               |¦  «        }t          |||¬¦  «        }t          |¦  «        | k    sJ t          |¦  «        › d	| › �¦   «         ‚|S )
Nr
  r'  r  rd  r  r  rQ  ry  ræ  )	r	  r™  r£  r¤  rœ  rE   rª  rw  r   )r®  r  r9   r£  r  rÂ  rN  rÝ   s           r   rE   zReturn.parse8  s!  € ð �#ˆ:ˆ:Ø#&§:¢:¨c°1Ñ#5Ô#5Ñ ˆN˜D˜Dà ˆNØˆDÝ”Ð.°Ñ?Ô?ˆàð 	à—;’;˜q‘>”>ð &ð ð ð ð >ñ	ô ð ð
  §¢¨A¡¤Ñ.ˆFÝ#×)Ò)¨%¯+ª+°a©.¬.Ñ9Ô9ˆJˆJà#ˆFØˆJÝ�zŠz˜&Ñ!Ô!ˆÝØØØ!ð
ñ 
ô 
ˆõ
 �1‰vŒv˜Š}ˆ}ˆ}¥ Q¡¤Ð2Ð2¨SÐ2Ð2‰}Œ}ˆ}Øˆr   rà   c                ó,   — | j         d uo| j         j        S r7   rÁ  r   s    r   rÃ  zReturn.is_writeW  r  r   c                ó”   — | j         › }| j        r%|dv sJ ‚|                     dd| j        › d�¦  «        }| j        €|S |› d| j        › �S )Nr  rQ  r  r  r
  )rN  rÂ  r…  r9   )r   rN  s     r   r   zReturn.__str__[  sl   € Ø”)ˆ~ˆØŒ?ð 	HØÐ<Ð<Ð<Ð<Ð<Ø—<’< Ð*F°D´OÐ*FÐ*FÐ*FÑGÔGˆDØŒ9ÐØˆKàÐ(Ð(˜TœYÐ(Ð(Ð(r   Nr  )r®  r   r   rw  rÛ  r   r  r"   r   r   rw  rw  .  s­   € € € € € € àÐÐÑØ€J€J�JØ!Ð!Ð!Ñ!àðð ð ñ „Xðð ðð ð ñ „\ðð< ðHð Hð Hñ „XðHð)ð )ð )ð )ð )ð )r   rw  c                  ó   — e Zd ZU ded<   dS )ÚSelfArgumentr,  rY  N)r   r   r    r!   r"   r   r   r  r  g  s   € € € € € € àÐÐÑÐÐr   r  c                  ó@   — e Zd ZU ded<   ded<   ded<   ded<   d
d„Zd	S )ÚTensorOptionsArgumentsr,  ÚdtypeÚlayoutÚdeviceÚ
pin_memoryr   úSequence[Argument]c                ó6   — | j         | j        | j        | j        gS r7   ©r  r   r!  r"  r   s    r   ÚallzTensorOptionsArguments.allv  s   € Ø”
˜DœK¨¬°d´oÐFÐFr   N©r   r#  )r   r   r    r!   r&  r"   r   r   r  r  o  s]   € € € € € € à€O€O�OØÐÐÑØÐÐÑØÐÐÑðGð Gð Gð Gð Gð Gr   r  c                  ó¬  — e Zd ZU ded<   ded<   ded<   ded<   ded<   ded	<   ded
<   ed0d„¦   «         Zed0d„¦   «         Zed0d„¦   «         Zed0d„¦   «         Zed0d„¦   «         Z	ed1d„¦   «         Z
ed2d„¦   «         Zed3d„¦   «         Zed1d„¦   «         Zd4d„Zd5d„Zd5d„Zd5d„Zdd œd6d"„Zd7d#„Zd8d&„Zed9d*„¦   «         Zed:d+„¦   «         Zd;d,„Zd<d.„Zd/S )=r)  ztuple[Argument, ...]Úpre_self_positionalzSelfArgument | NonerX  rg  Úpre_tensor_options_kwarg_onlyzTensorOptionsArguments | Noner€  Úpost_tensor_options_kwarg_onlyr²  r   r#  c                ór   — g }|                      | j        ¦  «         |                      | j        ¦  «         |S r7   )rÚ   r5  r6  ©r   rJ  s     r   Úflat_non_outzArguments.flat_non_out‘  s6   € à ˆØ�
Š
�4Ô'Ñ(Ô(Ð(Ø�
Š
�4Ô'Ñ(Ô(Ð(Øˆ
r   c                ó¾   — g }|                      | j        ¦  «         | j        �|                     | j        j        ¦  «         |                      | j        ¦  «         |S r7   )rÚ   r)  rX  rt  rY  rg  r-  s     r   r5  zArguments.flat_positional˜  sU   € à ˆØ�
Š
�4Ô+Ñ,Ô,Ð,ØŒ=Ð$Ø�JŠJ�t”}Ô-Ñ.Ô.Ð.Ø�
Š
�4Ô,Ñ-Ô-Ð-Øˆ
r   c                ó$   — d„ | j         D ¦   «         S )Nc                ó    — g | ]}|j         ¯	|‘ŒS r"   )rÃ  r¦  s     r   r1   z:Arguments.post_self_positional_mutable.<locals>.<listcomp>£  s   € ÐCÐCÐC�a¸¼
ÐC�ÐCÐCÐCr   )rg  r   s    r   rW  z&Arguments.post_self_positional_mutable¡  s   € àCÐC˜4Ô4ÐCÑCÔCÐCr   c                óØ   — g }|                      | j        ¦  «         | j        �,|                      | j                             ¦   «         ¦  «         |                      | j        ¦  «         |S r7   )rÚ   r*  r€  r&  r+  r-  s     r   r6  zArguments.flat_kwarg_only¦  s`   € à ˆØ�
Š
�4Ô5Ñ6Ô6Ð6ØÔÐ*Ø�JŠJ�tÔ*×.Ò.Ñ0Ô0Ñ1Ô1Ð1Ø�
Š
�4Ô6Ñ7Ô7Ð7Øˆ
r   c                ó¦   — g }|                      | j        ¦  «         |                      | j        ¦  «         |                      | j        ¦  «         |S r7   )rÚ   r5  r6  r²  r-  s     r   r¸  zArguments.flat_all¯  sJ   € à ˆØ�
Š
�4Ô'Ñ(Ô(Ð(Ø�
Š
�4Ô'Ñ(Ô(Ð(Ø�
Š
�4”8ÑÔÐØˆ
r   ú:Sequence[Argument | SelfArgument | TensorOptionsArguments]c                ór   — g }|                      | j        ¦  «         |                      | j        ¦  «         |S r7   )rÚ   Ú
positionalÚ
kwarg_onlyr-  s     r   Únon_outzArguments.non_out·  s8   € ð GIˆØ�
Š
�4”?Ñ#Ô#Ð#Ø�
Š
�4”?Ñ#Ô#Ð#Øˆ
r   ú!Sequence[Argument | SelfArgument]c                ó´   — g }|                      | j        ¦  «         | j        �|                     | j        ¦  «         |                      | j        ¦  «         |S r7   )rÚ   r)  rX  rt  rg  r-  s     r   r6  zArguments.positionalÀ  sR   € à-/ˆØ�
Š
�4Ô+Ñ,Ô,Ð,ØŒ=Ð$Ø�JŠJ�t”}Ñ%Ô%Ð%Ø�
Š
�4Ô,Ñ-Ô-Ð-Øˆ
r   ú+Sequence[Argument | TensorOptionsArguments]c                ó´   — g }|                      | j        ¦  «         | j        �|                     | j        ¦  «         |                      | j        ¦  «         |S r7   )rÚ   r*  r€  rt  r+  r-  s     r   r7  zArguments.kwarg_onlyÉ  sT   € à79ˆØ�
Š
�4Ô5Ñ6Ô6Ð6ØÔÐ*Ø�JŠJ�tÔ*Ñ+Ô+Ð+Ø�
Š
�4Ô6Ñ7Ô7Ð7Øˆ
r   c                ó¦   — g }|                      | j        ¦  «         |                      | j        ¦  «         |                      | j        ¦  «         |S r7   )rÚ   r6  r7  r²  r-  s     r   r&  zArguments.allÒ  sH   € àFHˆØ�
Š
�4”?Ñ#Ô#Ð#Ø�
Š
�4”?Ñ#Ô#Ð#Ø�
Š
�4”8ÑÔÐØˆ
r   ú	list[str]c                ó$   — d„ | j         D ¦   «         S )Nc                óB   — g | ]}|j         ®	|j         j        ¯|j        ‘ŒS r7   )rÂ  rÃ  r9   r¦  s     r   r1   z/Arguments.mutable_arg_names.<locals>.<listcomp>Û  s6   € ð 
ð 
ð 
àØŒ|Ð'¨A¬LÔ,AÐ'ð ŒFà'Ð'Ð'r   )r¸  r   s    r   Úmutable_arg_nameszArguments.mutable_arg_namesÚ  s%   € ð
ð 
à”]ð
ñ 
ô 
ð 	
r   rà   c                ó>   — t          d„ | j        D ¦   «         ¦  «        S )Nc              3  óH   K  — | ]}|j                              ¦   «         V — Œd S r7   )rN  r½  r¦  s     r   r×   z+Arguments.has_tensor_arg.<locals>.<genexpr>â  ó0   è è € ÐFÐF¨q�1”6×(Ò(Ñ*Ô*ÐFÐFÐFÐFÐFÐFr   ©r·  r.  r   s    r   r�  zArguments.has_tensor_argá  ó"   € ÝÐFÐF°DÔ4EÐFÑFÔFÑFÔFÐFr   c                ó>   — t          d„ | j        D ¦   «         ¦  «        S )Nc              3  óH   K  — | ]}|j                              ¦   «         V — Œd S r7   )rN  rÄ  r¦  s     r   r×   z+Arguments.has_symint_arg.<locals>.<genexpr>å  rD  r   rE  r   s    r   r•  zArguments.has_symint_argä  rF  r   c                ó>   — t          d„ | j        D ¦   «         ¦  «        S )Nc              3  óH   K  — | ]}|j                              ¦   «         V — Œd S r7   )rN  rÁ  r¦  s     r   r×   z.Arguments.has_generator_arg.<locals>.<genexpr>è  s0   è è € ÐIÐI°!�1”6×+Ò+Ñ-Ô-ÐIÐIÐIÐIÐIÐIr   rE  r   s    r   r¹  zArguments.has_generator_argç  s"   € ÝÐIÐI°tÔ7HÐIÑIÔIÑIÔIÐIr   Fr‚  rs  c               ó”  ‡— dˆfd„}t          t          t          || j        ¦  «        ¦  «        | j        �"t           || j        j        ¦  «        ¦  «        nd t          t          || j        ¦  «        ¦  «        t          t          || j        ¦  «        ¦  «        t          t          || j	        ¦  «        ¦  «        z   d dd¬¦  «        S )Nr§  r,  r   c                óP   •— t          | j        | j        ‰s| j        nd d ¬¦  «        S )Nr  )r,  r9   rN  rV  )r§  rs  s    €r   Ústrip_arg_annotationz1Arguments.signature.<locals>.strip_arg_annotationí  s5   ø€ ÝØ”VØ”VØ)6Ð@˜œ	˜	¸DØð	ñ ô ð r   r"   ©r)  rX  rg  r*  r€  r+  r²  )r§  r,  r   r,  )
r)  r†  r‡  r)  rX  r  rY  rg  r*  r+  )r   rs  rM  s    ` r   rñ  zArguments.signatureê  sð   ø€ ð	ð 	ð 	ð 	ð 	ð 	õ Ý %ÝÐ(¨$Ô*BÑCÔCñ!ô !ð Œ}Ð(õ "Ð"6Ð"6°t´}Ô7MÑ"NÔ"NÑOÔOÐOàÝ!&ÝÐ(¨$Ô*CÑDÔDñ"ô "õ
 +0ÝÐ(¨$Ô*LÑMÔMñ+ô +õ •CÐ,¨dÔ.QÑRÔRÑSÔSñ+Tð  Ø+-àð+
ñ 
ô 
ð 	
r   c           	     ó–   — | j         €J ‚t          j        | t          t          j        | j         j        d ¬¦  «        ¦  «        ¬¦  «        S )NrE  )rX  )rX  Údataclassesr…  r  rY  r   s    r   Úremove_self_annotationz Arguments.remove_self_annotation	  sR   € ØŒ}Ð(Ð(Ð(ÝÔ"ØÝ!ÝÔ# D¤MÔ$:ÀtÐLÑLÔLñô ð
ñ 
ô 
ð 	
r   ro  úlist[Argument]c                ó|   — t          | j        ¦  «        dk    sJ ‚t          j        | t	          |¦  «        ¬¦  «        S )Nr   )r²  )ru  r²  rP  r…  r†  )r   ro  s     r   Úwith_out_argszArguments.with_out_args	  sA   € Ý�4”8‰}Œ} Ò!Ð!Ð!Ð!ÝÔ"ØÝ�d‘”ð
ñ 
ô 
ð 	
r   r>  r   ú5tuple[list[Argument], list[Argument], list[Argument]]c                ó(  — g }g }g }|}|                       d¦  «        D ]p}|sŒ|dk    r||u s
J d¦   «         ‚|}Œt                               |¦  «        }|j        �|j        j        r||u rn||u r|}n||usJ ‚|                     |¦  «         Œq|||fS )Nrü   rÉ  z:invalid syntax: kwarg-only specifier * can only occur once)rý   r,  rE   rÂ  rÃ  rt  )r>  r6  r7  r²  Úarguments_accr®  Úpargs          r   Ú	_preparsezArguments._preparse	  sä   € à%'ˆ
Ø%'ˆ
Ø ˆØ"ˆð —:’:˜dÑ#Ô#ð 	'ð 	'ˆCØð ØØ�cŠzˆzà! ZÐ/Ð/Ð/ØOñ 0Ô/Ð/à *�ØÝ—>’> #Ñ&Ô&ˆDð ŒÐ*¨t¬Ô/GÐ*Ø  JÐ.Ð.ØØ" jÐ0Ð0Ø$'�Møà$¨CÐ/Ð/Ð/Ð/Ø× Ò  Ñ&Ô&Ð&Ð&à˜: sÐ*Ð*r   c                óÈ  — t                                | ¦  «        \  }}}d}t          |¦  «        D ]\  }}|j        dk    r|} nŒ|�-|d|…         }t	          ||         ¦  «        }||dz   d…         }	ng }d}|}	g }
d}g }|
}dd
„} |dt
                               d¦  «        ¦  «         |dt
                               d¦  «        ¦  «         |dt
                               d¦  «        ¦  «         |dt
                               d¦  «        ¦  «        g}d}|t          |¦  «        k     rä|t          |¦  «        t          |¦  «        z
  k    rŽt          d„ t          ||||t          |¦  «        z   …         ¦  «        D ¦   «         ¦  «        rO||
u sJ ‚t          ||         ||dz            ||dz            ||dz            ¬¦  «        }|t          |¦  «        z  }|}ŒÄ|                     ||         ¦  «         |dz  }|t          |¦  «        k     °ät          t          |¦  «        |t          |	¦  «        t          |
¦  «        |t          |¦  «        t          |¦  «        ¬¦  «        S )z.
        Input: 'int x, int y, int z'
        Nr   r'  r9   r   Útyrª  r   úCallable[[Argument], bool]c                ó   ‡ ‡— ˆ ˆfd„S )Nc                óJ   •— | j         ‰k    o| j        ‰t          ‰¦  «        fv S r7   )r9   rN  r°  )r§  r9   r[  s    €€r   ú<lambda>z/Arguments.parse.<locals>.pred.<locals>.<lambda>g	  s&   ø€ ˜QœV tš^ÐP°´¸2½|ÈBÑ?OÔ?OÐ:PÐ0P€ r   r"   )r9   r[  s   ``r   ÚpredzArguments.parse.<locals>.predf	  s   øø€ ØPÐPÐPÐPÐPÐPr   r  rò   r   rÐ  r!  rÑ  r"  rà   r   c              3  ó2   K  — | ]\  }} ||¦  «        V — Œd S r7   r"   )r/   Úpr§  s      r   r×   z"Arguments.parse.<locals>.<genexpr>u	  sB   è è € ð ð á˜˜1ð �A�a‘D”Dðð ð ð ð ð r   rd  r\  r%  rN  )r9   r   r[  rª  r   r\  )r)  rY  Ú	enumerater9   r  rª  rE   ru  r&  rV  r  rt  r†  )r>  r6  r7  r²  Úself_ixÚir§  r)  rX  rg  r*  r€  r+  Úkwarg_only_accr`  Ú
predicatess                   r   rE   zArguments.parseA	  sË  € õ '0×&9Ò&9¸$Ñ&?Ô&?Ñ#ˆ
�J ð ˆÝ˜jÑ)Ô)ð 	ð 	‰DˆAˆqØŒv˜ÒÐØ�Ø�ð  ð ÐØ",¨X¨g¨XÔ"6ÐÝ# J¨wÔ$7Ñ8Ô8ˆHØ#-¨g¸©k¨m¨mÔ#<Ð Ð à"$ÐØˆHØ#-Ð ð 9;Ð%Ø8<ˆØ9;Ð&Ø6ˆð	Qð 	Qð 	Qð 	Qð ˆD��$Ÿ*š* \Ñ2Ô2Ñ3Ô3ØˆD��4Ÿ:š: hÑ/Ô/Ñ0Ô0ØˆD��4Ÿ:š: hÑ/Ô/Ñ0Ô0ØˆD��tŸzšz¨&Ñ1Ô1Ñ2Ô2ð	
ˆ
ð ˆØ•#�j‘/”/Ò!Ð!à•C˜
‘O”O¥c¨*¡o¤oÑ5Ò5Ð5åð ð å # J°
¸1¸qÅ3ÀzÁ?Ä?Ñ?RÐ;RÔ0SÑ TÔ Tðñ ô ñ ô ð ð *Ð-JÐJÐJÐJÐJå%;Ø(¨œmØ)¨!¨a©%Ô0Ø)¨!¨a©%Ô0Ø#-¨a°!©eÔ#4ð	&ñ &ô &�Nð �˜Z™œÑ(�AØ%C�NØØ×!Ò! *¨Q¤-Ñ0Ô0Ð0Ø�‰FˆAð) •#�j‘/”/Ò!Ð!õ, Ý %Ð&9Ñ :Ô :ØÝ!&Ð';Ñ!<Ô!<Ý*/Ð0MÑ*NÔ*NØ)Ý+0Ð1OÑ+PÔ+PÝ�c‘
”
ð
ñ 
ô 
ð 	
r   c                ó„  — g }|                      t          t          | j        ¦  «        ¦  «         | j        s| j        r|                     d¦  «         |                      t          t          | j        ¦  «        ¦  «         |                      t          t          | j        ¦  «        ¦  «         d                     |¦  «        S )NrÉ  rü   )rÚ   r‡  r   r5  r6  r²  rt  rÜ   )r   Úall_argumentss     r   r   zArguments.__str__‘	  s£   € Ø#%ˆØ×Ò�S¥ dÔ&:Ñ;Ô;Ñ<Ô<Ð<ØÔð 	& 4¤8ð 	&Ø× Ò  Ñ%Ô%Ð%Ø×Ò�S¥ dÔ&:Ñ;Ô;Ñ<Ô<Ð<Ø×Ò�S¥ d¤hÑ/Ô/Ñ0Ô0Ð0Ø�yŠy˜Ñ'Ô'Ð'r   r   c                ó¢   — | j         €	| j        rJ ‚| j        €	| j        rJ ‚d„ | j        D ¦   «         }t	          |¦  «        dk    s
J d¦   «         ‚d S )Nc                ó8   — g | ]}|j         ®	|j         j        ¯|‘ŒS r7   rÁ  r¦  s     r   r1   z+Arguments.__post_init__.<locals>.<listcomp>¤	  s4   € ð (
ð (
ð (
àØŒ|Ð'¨A¬LÔ,AÐ'ð à'Ð'Ð'r   r   zOmutable pre_self_positional arguments are not currently supported in the schema)rX  r)  r€  r+  ru  )r   Úmutable_pre_self_positionalss     r   r¼  zArguments.__post_init__š	  s‚   € ð Œ=Ð ØÔ/Ð/Ð/Ð/ØÔÐ&ØÔ:Ð:Ð:Ð:ð(
ð (
àÔ-ð(
ñ (
ô (
Ð$õ Ð,Ñ-Ô-°Ò2Ð2Ð2Ø\ñ 3Ô2Ð2Ð2Ð2r   Nr'  )r   r4  )r   r9  )r   r;  ©r   r>  rÛ  )rs  rà   r   r)  )r   r)  )ro  rR  r   r)  )r>  r   r   rU  )r>  r   r   r)  r   rÚ  )r   r   r    r!   rÜ  r.  r5  rW  r6  r¸  r8  r6  r7  r&  rA  r�  r•  r¹  rñ  rQ  rT  rÍ   rY  rE   r   r¼  r"   r   r   r)  r)  z  s®  € € € € € € ð
 .Ð-Ð-Ñ-Ø!Ð!Ð!Ñ!Ø.Ð.Ð.Ñ.à7Ð7Ð7Ñ7Ø1Ð1Ð1Ñ1ð 9Ð8Ð8Ñ8ð ÐÐÑàðð ð ñ „Xðð ðð ð ñ „Xðð ðDð Dð Dñ „XðDð ðð ð ñ „Xðð ðð ð ñ „Xðð ðð ð ñ „Xðð ðð ð ñ „Xðð ðð ð ñ „Xðð ðð ð ñ „Xðð
ð 
ð 
ð 
ðGð Gð Gð GðGð Gð Gð GðJð Jð Jð Jð 27ð !
ð !
ð !
ð !
ð !
ð !
ðF
ð 
ð 
ð 
ð
ð 
ð 
ð 
ð ð!+ð !+ð !+ñ „\ð!+ðF ðM
ð M
ð M
ñ „\ðM
ð^(ð (ð (ð (ð]ð ]ð ]ð ]ð ]ð ]r   r)  )r   ÚsubÚmulÚdivÚmodÚpowÚlshiftÚrshiftÚandÚxorÚorc                  ó\   — e Zd ZU ded<   ded<   ded<   dZded<   edd
„¦   «         Zdd„ZdS )rˆ  r   rÖ  rà   rÓ  r„  Fró  rî  r   c                ód  ‡— | dk    sJ ‚|                       d¦  «        r
J d¦   «         ‚t          j        d| ¦  «        }|�Ud}|                     d¦  «        Št	          ˆfd„t
          D ¦   «         ¦  «        rd}‰dd …         Šn0d}‰d	         d
k    sJ ‚nd}| Š‰d         dk    rd}‰d d…         Šnd}d}‰                      |¦  «        r!d}‰d t          |¦  «         …         Š|s|rJ ‚nd}t          ‰|||¬¦  «        }t          |¦  «        | k    sJ t          |¦  «        › d| › �¦   «         ‚|S )Nr'   r�  zs_out suffix is reserved and not permitted for operator names; did you mean to specify an out overload name instead?z^__([^_]+)__$Tr'  c              3  ó*   •K  — | ]}‰d |› �k    V — ŒdS )re  Nr"   )r/   ÚnrÖ  s     €r   r×   z)BaseOperatorName.parse.<locals>.<genexpr>ë	  s-   øè è € ÐGÐG q�4˜7˜q˜7˜7’?ÐGÐGÐGÐGÐGÐGr   Fr   re  r  Ú_Ú_functional)rÖ  rÓ  r„  ró  ræ  )	r~  r™  r£  r¤  r·  ÚAUGMENTED_ASSIGNMENT_NAMESru  rˆ  r   )rî  r!  r„  rÓ  Úfunctional_suffixró  rÝ   rÖ  s          @r   rE   zBaseOperatorName.parseà	  sœ  ø€ à�RŠxˆxˆxˆxØ—;’;˜vÑ&Ô&ð 	
ð 	
ðDñ	
ô 	
Ð&õ ŒHÐ% rÑ*Ô*ˆØˆ=Ø ˆMØ—7’7˜1‘:”:ˆDÝÐGÐGÐGÐGÕ,FÐGÑGÔGÑGÔGð 	&Ø�Ø˜A˜B˜B”x��à�ð
 ˜A”w #’~�~�~�~�~à!ˆMØˆDØ�BŒx˜3ŠˆØ�Ø˜C˜R˜C”y��à�ð *ÐØ�=Š=Ð*Ñ+Ô+ð 	(Ø"&ÐØÐ1�3Ð0Ñ1Ô1Ð1Ð1Ô2ˆDð %Ð4¨WÐ4Ð4Ð4Ð4à"'ÐåØØØ'Ø 3ð	
ñ 
ô 
ˆõ �1‰vŒv˜Š|ˆ|ˆ|¥ A¡¤Ð0Ð0¨BÐ0Ð0‰|Œ|ˆ|Øˆr   c                ó~   — | j         r| j        rdnd}d|› | j        › d�S | j        rdn
| j        rdnd}| j        › |› �S )Nre  r'   Ú__r|  r}  )r„  rÓ  rÖ  ró  )r   re  s     r   r   zBaseOperatorName.__str__
  ss   € ØÔð 	%Ø”|Ð+��¨ˆAØ(˜Ð(˜4œ9Ð(Ð(Ð(Ð(ð ”<ð��ð Ô+ð�]�]àð ð ”iÐ$ Ð$Ð$Ð$r   N)rî  r   r   rˆ  r   )r   r   r    r!   ró  rÍ   rE   r   r"   r   r   rˆ  rˆ  Æ	  s{   € € € € € € à€I€I�IØ€M€M�MØÐÐÑð( !&ÐÐ%Ð%Ð%Ñ%àð/ð /ð /ñ „\ð/ðb%ð %ð %ð %ð %ð %r   rˆ  c                  ó\   — e Zd ZU ded<   ded<   edd„¦   «         Zdd„Zdd	„Zdd
„Zdd„Z	dS )rf  rˆ  r9   r   ra  r  r   c                óú   — d| v r|                       dd¦  «        \  }}n| }d}t          t                               |¦  «        |¬¦  «        }t	          |¦  «        | k    sJ t	          |¦  «        › d| › �¦   «         ‚|S )Nú.r'  r'   r`  ræ  )rý   rf  rˆ  rE   r   )r  r9   ra  rÝ   s       r   rE   zOperatorName.parse(
  sˆ   € à�'ˆ>ˆ>Ø")§-¢-°°QÑ"7Ô"7ÑˆD�-�-àˆDØˆMÝÕ.×4Ò4°TÑ:Ô:È-ÐXÑXÔXˆÝ�1‰vŒv˜Ò Ð Ð ¥S¨¡V¤VÐ":Ð":°Ð":Ð":Ñ Ô Ð Øˆr   c                óB   — | j         r| j        › d| j         › �S | j        › S )Nr„  ©ra  r9   r   s    r   r   zOperatorName.__str__3
  ó0   € ØÔð 	"Ø”iÐ6Ð6 $Ô"4Ð6Ð6Ð6à”i�>Ð!r   c                óB   — | j         r| j        › d| j         › �S | j        › S )Nr|  r†  r   s    r   Úunambiguous_namezOperatorName.unambiguous_name>
  r‡  r   c                óv   — t          t          | j        j        d| j        j        ¬¦  «        | j        ¬¦  «        S ©NFrƒ  r`  )rf  rˆ  r9   rÖ  r„  ra  r   s    r   Úremove_inplacezOperatorName.remove_inplaceD
  sE   € ÝÝ!Ø”Y”^ØØ"œiÔ5ðñ ô ð
 Ô,ð
ñ 
ô 
ð 	
r   Úoverloadc                ól   — t          t          | j        j        d| j        j        ¬¦  «        |¬¦  «        S r‹  )rf  rˆ  r9   rÖ  r„  )r   r�  s     r   Úwith_overloadzOperatorName.with_overloadN
  sB   € ÝÝ!Ø”Y”^ØØ"œiÔ5ðñ ô ð
 #ð
ñ 
ô 
ð 	
r   N)r  r   r   rf  r   )r   rf  )r�  r   r   rf  )
r   r   r    r!   rÍ   rE   r   r‰  rŒ  r�  r"   r   r   rf  rf  #
  sœ   € € € € € € àÐÐÑØÐÐÑàðð ð ñ „\ðð"ð "ð "ð "ð"ð "ð "ð "ð
ð 
ð 
ð 
ð
ð 
ð 
ð 
ð 
ð 
r   rf  rê  r  Úbc                ó¬   — | j                              ¦   «         t          j        uo/|                     | ¦  «         o|                     |j        ¦  «        S r7   )r3  r³  r´  rÞ  r"  )rê  r  r�  s      r   Ú"gets_generated_out_inplace_wrapperr’  Y
  sI   € ð 	
Œ�Š‰Œ�ZÔ2Ð2ð 	'Ø—’˜Q‘”Ðð	'à�LŠL˜œÑ&Ô&ðr   c                  ót   — e Zd ZU ded<   ded<   ded<   dd„Zd	d
œdd„Zedd„¦   «         Zedd„¦   «         ZdS )ÚNativeFunctionsViewGroupr0  Úviewrã  Ú	view_copyÚview_inplacer   r   c                óŒ  — | j         j        sJ ‚| j        €St          | j         ¦  «        r>J t	          | j         j        j        ¦  «        › dt          | j         ¦  «        ›d�¦   «         ‚nÂ| j        j        j        j        j         	                    d¦  «        sJ ‚| j         j         
                    ¦   «         | j        j         
                    d¬¦  «        k    sJ ‚d| j        j        v sBJ t	          | j        j        j        ¦  «        t	          | j         j        ¦  «        f› d�¦   «         ‚| j        �@| j         j         
                    ¦   «         | j        j         
                    ¦   «         k    sJ ‚| j         j        r[| j        �T| j        j        sHJ t	          | j         j        j        ¦  «        › dt	          | j        j        j        ¦  «        › d	�¦   «         ‚| j         j        r[| j        �V| j        j        sLJ t	          | j         j        j        ¦  «        › dt	          | j        j        j        ¦  «        › d
�¦   «         ‚d S d S d S )Nz‰ appears to be a new operator that aliases its inputs. The codegen expects you to add a corresponding operator to native_functions.yaml: z3. See Note [view_copy NativeFunctions] for details.)r{  r|  TrŽ  r–  zÀ appears to be a view_copy operator. The codegen expects view_copy operators to be annotated with the 'view_copy' tag in native_functions.yaml. See Note [view_copy NativeFunction] for details.rç  z] must either both have CompositeImplicitAutograd kernels, or both not have composite kernels.zi must either both have CompositeImplicitAutogradNestedTensor kernels, or both not have composite kernels.)r•  rÑ  r–  Úgets_generated_view_copyr   r3  r9   Úget_view_copy_namerÖ  r~  rñ  rK  r—  rG  rH  r   s    r   r¼  z&NativeFunctionsViewGroup.__post_init__x
  s•  € ØŒyÔ#Ð#Ð#Ð#ØŒ>Ð!Ý/°´	Ñ:Ô:ð ð Ý�t”y”~Ô*Ñ+Ô+ð Eð Eå& t¤yÑ1Ô1ðEð Eð Eñô Ð:ð ð ”>Ô&Ô+Ô0Ô5×>Ò>Ð?TÑUÔUÐUÐUÐUØ”9”>×+Ò+Ñ-Ô-°´Ô1D×1NÒ1NØ%)ð 2Oñ 2ô 2ò ð ð ð ð  $¤.Ô"5Ð5Ð5Ð5Ý�t”~Ô*Ô/Ñ0Ô0µ#°d´i´nÑ2EÔ2EÐFð Dð Dð Dñ 6Ô5Ð5ð
 ÔÐ(Ø”9”>×+Ò+Ñ-Ô-°Ô1BÔ1G×1QÒ1QÑ1SÔ1SÒSÐSÐSÐSàŒ9Ô;ð 	ØÔ Ð,ØÔ(ÔOð ð Ý˜4œ9œ>Ô.Ñ/Ô/ð hð hµc¸$Ô:KÔ:PÔ:UÑ6VÔ6Vð hð hð hñô ÐOð Œ9ÔIð 	ØÔ Ð,ØÔ(Ô]ð ð Ý˜4œ9œ>Ô.Ñ/Ô/ð tð tµc¸$Ô:KÔ:PÔ:UÑ6VÔ6Vð tð tð tñô Ð]ð	ð 	Ø,Ð,ðð r   T)Úinclude_copyr›  rà   rü  c             #  óh   K  — | j         V — | j        �	| j        V — | j        �|r| j        V — d S d S d S r7   )r•  r—  r–  )r   r›  s     r   rò  z"NativeFunctionsViewGroup.functions›
  sX   è è € ØŒiˆˆˆØÔÐ(ØÔ#Ð#Ð#Ð#ØŒ>Ð%¨,Ð%Ø”.Ð Ð Ð Ð Ð ð &Ð%Ð%Ð%r   r   c                ó   — | j         j        S r7   )r•  r×  r   s    r   r×  z"NativeFunctionsViewGroup.root_name¢
  s   € àŒyÔ"Ð"r   c                ó   — | j         j        S r7   )r•  rG  r   s    r   Ú	compositez"NativeFunctionsViewGroup.composite¦
  s   € ð ŒyÔ?Ð?r   NrÚ  )r›  rà   r   rü  r   rÛ  )	r   r   r    r!   r¼  rò  rÜ  r×  rŸ  r"   r   r   r”  r”  n
  sº   € € € € € € àÐÐÑð %Ð$Ð$Ñ$à'Ð'Ð'Ñ'ð!ð !ð !ð !ðF 15ð !ð !ð !ð !ð !ð !ð ð#ð #ð #ñ „Xð#ð ð@ð @ð @ñ „Xð@ð @ð @r   r”  c                ó–   — | j         sdS | j        rdS d| j        v rdS | j        j        j        j                             d¦  «        rdS dS )NFrÅ  Ú_inverseT)rÑ  rG  rK  r3  r9   rÖ  r~  )rê  s    r   r™  r™  ­
  sa   € àŒ<ð Øˆuð 	Ô/ð Øˆuà˜œÐÐØˆuð 	„v„{ÔÔ×%Ò% jÑ1Ô1ð ØˆuØˆ4r   c                ó  — dg}t          | j        j        ¦  «        |vrt          | ¦  «        sJ ‚| j        j        j        j        › d�}t          t          |d| j        j        j        j        ¬¦  «        | j        j        j        ¬¦  «        }|S )NÚnarrowr{  Frƒ  r`  )	r   r3  r9   r™  rÖ  rf  rˆ  r„  ra  )rê  Ú-list_of_ops_with_explicit_view_copy_operatorsr‰  Úview_copy_names       r   rš  rš  Ä
  s›   € ð 6>°JÐ1Ý
ˆ1Œ6Œ;ÑÔÐLÐLÐLÝ'¨Ñ*Ô*Ð*Ð*Ð*à”6”;Ô#Ô(Ð/Ð/Ð/€IÝ!ÝØ E¸¼¼Ô9IÔ9Wð
ñ 
ô 
ð ”f”kÔ/ð	ñ ô €Nð Ðr   r?  r*  c                ó®   — | dk    rdS | d         dk    r| d         dk    r
| dd…         } t          d„ |                      d	¦  «        D ¦   «         ¦  «        S )
z$
    Input: '()'
    Output: []
    z()r"   r   r  r  r  r'  c              3  óJ   K  — | ]}t                                |¦  «        V — Œd S r7   )rw  rE   r­  s     r   r×   z parse_returns.<locals>.<genexpr>å
  s.   è è € ÐFÐF s•—’˜cÑ"Ô"ÐFÐFÐFÐFÐFÐFr   rü   )r†  rý   )r?  s    r   r;  r;  Ü
  sj   € ð
 �dÒÐØˆrØ�1„~˜ÒÐ ¨R¤°CÒ!7Ð!7Ø! ! B $Ô'ˆÝÐFÐF¨k×.?Ò.?ÀÑ.EÔ.EÐFÑFÔFÑFÔFÐFr   c                  óL   — e Zd ZU ded<   ded<   edd„¦   «         Zdd
„Zdd„ZdS )rs  zdict[str, list[Argument]]r…  rR  r   ÚsrcÚobjectr   c                ó  — t          | t          ¦  «        sJ ‚g }d| d         vr1| d                              d¦  «        }d„ |D ¦   «         }| d d…         } i }| D ]w}t          |t          ¦  «        sJ ‚d|v s
J d¦   «         ‚|                     d¦  «        \  }}d|vsJ d|› d�¦   «         ‚|                     d¦  «        }d	„ |D ¦   «         }|||<   Œxt	          ||¬
¦  «        }	|	                     ¦   «         | k    s
J d¦   «         ‚|	S )Nr¨  r  r[  c                óf   — g | ].}t                                |                     ¦   «         ¦  «        ‘Œ/S r"   ©r,  rE   rx  ©r/   r9   s     r   r1   z$Precompute.parse.<locals>.<listcomp>  s,   € ÐJÐJÐJ¸�Ÿš t§z¢z¡|¤|Ñ4Ô4ÐJÐJÐJr   zLprecomputed parameters without replacement are allowed only in the last liner
  zillegal kernel param name 'z' in precomputed parameters'c                óf   — g | ].}t                                |                     ¦   «         ¦  «        ‘Œ/S r"   r­  r®  s     r   r1   z$Precompute.parse.<locals>.<listcomp>  s,   € ÐQÐQÐQ¸t�hŸnšn¨T¯ZªZ©\¬\Ñ:Ô:ÐQÐQÐQr   )r…  r   zr.to_list() != src)rm  rq  rý   r   rs  Úto_list)
r©  Úadd_argsÚadd_listr…  Úraw_replace_itemr®  Úwith_list_rawÚ	with_listÚwith_list_argsrÝ   s
             r   rE   zPrecompute.parseó
  sT  € å˜#�tÑ$Ô$Ð$Ð$Ð$ð ˆØ˜˜RœÐ Ð Ø˜2”w—}’} SÑ)Ô)ˆHØJÐJÀÐJÑJÔJˆHØ�c�r�c”(ˆCàˆØ #ð 	*ð 	*ÐÝÐ.µÑ4Ô4Ð4Ð4Ð4ØÐ-Ð-Ð-Ð-ð5ñ .Ô-Ð-ð
 "2×!7Ò!7¸Ñ!?Ô!?ÑˆC�à˜3���ØN¨SÐNÐNÐNñ ”�à%×+Ò+¨CÑ0Ô0ˆIØQÐQÀyÐQÑQÔQˆNØ)ˆG�C‰LˆLå˜w¨HÐ5Ñ5Ô5ˆØ�yŠy‰{Œ{˜cÒ!Ð!Ð!Ð#7Ñ!Ô!Ð!Øˆr   r   c                óì   — | j         D ]&}|j                             ¦   «         |j        k    sJ ‚Œ'| j                             ¦   «         D ]+}|D ]&}|j                             ¦   «         |j        k    sJ ‚Œ'Œ,d S r7   )r   r9   Úupperr…  rù   )r   r§  r>  s      r   r¼  zPrecompute.__post_init__  s�   € ð ”ð 	,ð 	,ˆAØ”6—<’<‘>”> Q¤VÒ+Ð+Ð+Ð+Ð+Ø”L×'Ò'Ñ)Ô)ð 	0ð 	0ˆDØð 0ð 0�Ø”v—|’|‘~”~¨¬Ò/Ð/Ð/Ð/Ð/ð0ð	0ð 	0r   r>  c                óº   — g }| j                              ¦   «         D ]>\  }}d                     d„ |D ¦   «         ¦  «        }|                     |› d|› �¦  «         Œ?|S )Nrü   c              3  ó4   K  — | ]}t          |¦  «        V — Œd S r7   rì  )r/   Úparams     r   r×   z%Precompute.to_list.<locals>.<genexpr>$  s(   è è € Ð$PÐ$P°E¥S¨¡Z¤ZÐ$PÐ$PÐ$PÐ$PÐ$PÐ$Pr   r¨  )r…  r@   rÜ   rt  )r   Úreplace_listÚkernel_paramÚreplacement_paramsÚreplacementss        r   r°  zPrecompute.to_list!  sx   € ØˆØ04´×0BÒ0BÑ0DÔ0Dð 	Eð 	EÑ,ˆLÐ,ØŸ9š9Ð$PÐ$PÐ=OÐ$PÑ$PÔ$PÑPÔPˆLØ×Ò <Ð CÐ C°\Ð CÐ CÑDÔDÐDÐDàÐr   N)r©  rª  r   rs  rÚ  rm  )r   r   r    r!   rÍ   rE   r¼  r°  r"   r   r   rs  rs  ë
  sw   € € € € € € ð 'Ð&Ð&Ñ&àÐÐÑàð"ð "ð "ñ „\ð"ðH0ð 0ð 0ð 0ðð ð ð ð ð r   rs  r   )rß   r5   r   rà   )rê  r0  r  râ  r�  r  r   rà   )rê  r0  r   rà   )rê  r0  r   rf  )r?  r   r   r*  )qÚ
__future__r   rP  r3  r™  r   Úenumr   r   Útypingr   r   Útorchgen.utilsr	   r
   r   Úcollections.abcr   r   r   r$   r‚  rý   rÛ   rÙ   ÚAUTOGRAD_KEYSÚFRAGMENT_NAMESPACESr5   rÏ   rÞ   rÖ   rÕ   ÚhasattrrÝ   Úprintrõ  rx   rt   rs   rz   rê   rí   r‘   r    rQ   r˜   r’   r¡   r‚   rƒ   rn   ro   rp   rq   r¯   r°   r¶   r~   rœ   r«   r�   rº   rX   ry  rä   ræ   rè   rë   rî   Údispatch_device_maprò   rþ   r!   r  r  r  r  r  r	  r
  r  r  r  r&  r+  r0  r´  râ  rz  rƒ  r  r2  rœ  rª  rP  rO  r°  r²  r±  r,  rw  r  r  r)  r~  rˆ  rf  r’  r”  r™  rš  r;  rs  r"   r   r   ú<module>rÊ     sô  ðØ "Ð "Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ø Ð Ð Ð Ø 	€	€	€	Ø !Ð !Ð !Ð !Ð !Ð !Ø Ð Ð Ð Ð Ð Ð Ð Ø *Ð *Ð *Ð *Ð *Ð *Ð *Ð *à DÐ DÐ DÐ DÐ DÐ DÐ DÐ DÐ DÐ Dð ð 3Ø2Ð2Ð2Ð2Ð2Ð2Ð2Ð2ð: €�$ÐÑÔð*ð *ð *ð *ð *ñ *ô *ñ Ôð*ðð ð ð ð ˆdñ ô ð ð (Ð ð n×sÒsÑuÔuÐ ðð ð Ð ð (Ð(ð ,ð ,Ø,>ð,ñ ,ô ,ñ €ð #Ð$:Ð;Ð ð
_>ð _>ð _>ð _>ð _>�$ñ _>ô _>ð _>ðDð ð ð ð ˜Dñ ô ð ðð ð ð ð ð ð €BØ ð ð ˆØˆw�{ B¨¡GÑ,Ô,ð 	Ø+Ð+Ñ-Ô-ˆAØˆE�!‰HŒHˆHØ�,Øt˜2Ðt˜rÐtÐtÐqrÐtÐtñô ð ð	ðð „OØÔØ„OØ„Oð	Ð ð #Ô'¨¬Ð9Ð ð „OØÔØÔØÔØÔØ„OØ„OØÔØÔØÔØÔØÔØÔ)ØÔ5ØÔ)ØÔ6ØÔØÔ ØÔð ÔØÔØÔØÔØÔ ØÔð7€ðBð ð ð ðð ð ð ðð ð ð ð*ð *ð *ð *ð%ð %ð %ð %ð
 ,¨VÐ5HÈ%ÐPÐ ð+ð +ð +ð +ð +�ñ +ô +ð +ð\ 46€Ð 5Ð 5Ð 5Ñ 5à&˜JàŒØŒØŒØŒØÔðñô €ˆjÑ ð '˜J¨
Ô(8¸*Ô:KÐ'LÑMÔM€ˆjÑ Ø%˜:ØÔ˜jÔ6Ð7ñô €ˆiÑ ð % ZÔ0°=ÀÔ3LÑL€ˆeÑ Ø!.¨uÔ!5¸ÀiÔ8PÑ!P€ˆoÑ à�*Ô ¨iÔ 8Ñ8ð Ð"Ñ #ð;ð ;ð ;ð ;ð ;ˆtñ ;ô ;ð ;ð4ð ð ð ð �dñ ô ð ð
ð ð ð ð �Tñ ô ð ð$ €�$ÐÑÔða	Gð a	Gð a	Gð a	Gð a	Gñ a	Gô a	Gñ Ôða	GðHð ð ð ð �ñ ô ð ð €�$ÐÑÔðq
ð q
ð q
ð q
ð q
ñ q
ô q
ñ Ôðq
ðh €�$ÐÑÔð(ð (ð (ð (ð (ñ (ô (ñ Ôð(ð, €�$ÐÑÔð
ð 
ð 
ð 
ð 
ñ 
ô 
ñ Ôð
ð6 €�$ÐÑÔð8ð 8ð 8ð 8ð 8ñ 8ô 8ñ Ôð8ð` €�$ÐÑÔðq@ð q@ð q@ð q@ð q@ñ q@ô q@ñ Ôðq@ðx €�$ÐÑÔð1ð 1ð 1ð 1ð 1ñ 1ô 1ñ Ôð1ðt €�$ÐÑÔð2"ð 2"ð 2"ð 2"ð 2"ñ 2"ô 2"ñ Ôð2"ðlð ð ð ð ˆTñ ô ð ð. €�$ÐÑÔð*ð *ð *ð *ð *ˆtñ *ô *ñ Ôð*ð( €�$ÐÑÔð(ð (ð (ð (ð (�4ñ (ô (ñ Ôð(ð( €�$ÐÑÔðð ð ð ð �dñ ô ñ Ôðð@ €�$ÐÑÔðð ð ð ð ˆtñ ô ñ Ôðð* €�$ÐÑÔðW5ð W5ð W5ð W5ð W5ñ W5ô W5ñ ÔðW5ðt €�$ÐÑÔð4)ð 4)ð 4)ð 4)ð 4)ñ 4)ô 4)ñ Ôð4)ðp €�$ÐÑÔðð ð ð ð ñ ô ñ Ôðð €�$ÐÑÔðGð Gð Gð Gð Gñ Gô Gñ ÔðGð €�$ÐÑÔðp]ð p]ð p]ð p]ð p]ñ p]ô p]ñ Ôðp]ðl	ð ð Ð ð* €�$ÐÑÔðW%ð W%ð W%ð W%ð W%ñ W%ô W%ñ ÔðW%ðx €�$ÐÑÔð2
ð 2
ð 2
ð 2
ð 2
ñ 2
ô 2
ñ Ôð2
ðjð ð ð ð* €�$ÐÑÔð;@ð ;@ð ;@ð ;@ð ;@ñ ;@ô ;@ñ Ôð;@ð|ð ð ð ð.ð ð ð ð0	Gð 	Gð 	Gð 	Gð €�$ÐÑÔð;ð ;ð ;ð ;ð ;ñ ;ô ;ñ Ôð;ð ;ð ;r   