Ë
    3êñihw  ã                  ó�  — d dl mZ d dlZd dlmZ d dlmZ d dlmc m	Z	 d dl
mZ d dlmZmZmZ d dlmZ d dlmZmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z# d d	l$m%Z% erd d
l&m'Z' ddgZ(ddgZ)g d¢Z*dgZ+	 	 	 	 dd„Z,dd„Z-dd„Z.dd„Z/	 	 	 	 d d„Z0dd„Z1	 	 	 	 	 	 d!d„Z2	 	 	 	 	 	 d"d„Z3d#d„Z4d$d„Z5ed%d„«       Z6ed%d„«       Z7y)&é    )ÚannotationsN)Údefaultdict)ÚTYPE_CHECKING)Ú	translate)ÚBindingÚDispatcherSignatureÚExpr)Úwith_native_function)Ú
AnnotationÚArgumentÚBackendIndexÚBackendMetadataÚBaseOperatorNameÚBaseTyÚBaseTypeÚDEFAULT_KERNEL_NAMESPACEÚDeviceCheckTypeÚDispatchKeyÚFunctionSchemaÚNativeFunctionÚNativeFunctionsGroupÚOperatorNameÚReturnÚ
SchemaKindÚVariant)Ú	concatMap)ÚSequencez'adaptive_avg_pool3d_backward.grad_inputz _slow_conv2d_backward.grad_inputÚ_cummax_helperÚ_cummin_helper)&Ú_assert_asyncz_assert_async.msgÚ_assert_tensor_metadataÚ_cslt_sparse_mm_searchÚ_assert_scalarÚ_dimIÚ_dimVÚ_has_same_storage_numelÚ_linalg_check_errorsÚ_local_scalar_denseÚ%_nested_tensor_from_mask_left_alignedÚ_nnzÚ_use_cudnn_ctc_lossz_use_cudnn_ctc_loss.TensorÚ_use_miopen_ctc_lossz_use_miopen_ctc_loss.TensorÚ#_validate_compressed_sparse_indicesÚallcloseÚ	dense_dimÚequalÚis_coalescedÚ	is_pinnedÚis_same_sizeÚ	is_set_toÚq_per_channel_axisÚq_scaleÚq_zero_pointÚqschemeÚrecord_streamÚ
sparse_dimÚsym_constrain_rangeÚsym_constrain_range_for_sizeÚ_nested_tensor_storage_offsetsÚ'_chunk_grad_outputs_efficient_attentionÚ_fused_sdp_choiceÚ_printÚ_sink_tokensÚ_nested_get_ragged_idxÚ
polygamma_c                óD  — t        t        «      }| D ]‹  }||j                  j                  «          }|j                  j	                  «       |v r3t        d|j                  j	                  «       › d|j                  › �«      ‚|||j                  j	                  «       <   Œ� |S )NzDuplicate schema kind z for )r   ÚdictÚfuncÚ	signatureÚkindÚAssertionError)Únative_functionsÚpre_grouped_native_functionsÚfÚds       úe/var/www/pod-logistic/pod-ai/venv/lib/python3.12/site-packages/torchgen/native_function_generation.pyÚpre_group_native_functionsrO   p   sŽ   € ô
 	”DÓð !ð ò ˆØ(¨¯©×)9Ñ)9Ó);Ñ<ˆØ�6‰6�;‰;‹=˜AÑÜ Ð#9¸!¿&¹&¿+¹+»-¸ÈÈaÏfÉfÈXÐ!VÓWÐWØˆˆ!�&‰&�+‰+‹-Òð	ð
 (Ð'ó    c                ó   — | sdS | › d�S )NÚoutÚ_out© )Úoverload_names    rN   Ú&get_expected_out_variant_overload_namerV      s   € Ù%ˆ5ÐA¨m¨_¸DÐ+AÐArP   c                ó€  — | j                  «       t        j                  k7  rt        d| j                  «       › �«      ‚| j                  j
                  €t        d«      ‚t        | j                  j                  «       j                  t        | j                  j                  «      «      | j                  j                  «       j                  t        d| j                  j
                  j                  j                   d | j                  j
                  j                  j"                  ¬«      g«      | j$                  ¬«      S )NzExpected inplace schema, got z Expected self_arg to be non-NonerR   ©ÚnameÚtypeÚdefaultÚ
annotation©rY   Ú	argumentsÚreturns)rH   r   ÚinplacerI   r^   Úself_argr   rY   Úremove_inplaceÚwith_overloadrV   rU   Úremove_self_annotationÚwith_out_argsr   ÚargumentrZ   r\   r_   )rF   s    rN   Úself_to_out_signaturerg   ˆ   sò   € à‡y�yƒ{”j×(Ñ(Ò(ÜÐ<¸T¿Y¹Y»[¸MÐJÓKÐKØ‡~�~×ÑÐ&ÜÐ?Ó@Ð@ô
 Ø�Y‰Y×%Ñ%Ó'×5Ñ5Ü2°4·9±9×3JÑ3JÓKó
ð —.‘.×7Ñ7Ó9×GÑGäØØŸ™×0Ñ0×9Ñ9×>Ñ>Ø Ø#Ÿ~™~×6Ñ6×?Ñ?×JÑJô	ðó	
ð —‘ôð rP   c                ó€  — | j                  «       t        j                  k7  rt        d| j                  «       › �«      ‚t	        | «      \  }}t        | j                  j                  t        | j                  j                  «      «      | j                  j                  «       j                  |«      t        |«      ¬«      S )Nz Expected functional schema, got r]   )rH   r   Ú
functionalrI   Úgenerate_out_args_from_schemar   rY   rc   rV   rU   r^   rG   re   Útuple©rF   Únew_returnsÚnew_out_argss      rN   Úfunctional_to_out_signaturero   «   s›   € à‡y�yƒ{”j×+Ñ+Ò+ÜÐ?ÀÇ	Á	Ã¸}ÐMÓNÐNä =¸dÓ CÑ€K�ô
 Ø�Y‰Y×$Ñ$Ü2°4·9±9×3JÑ3JÓKó
ð —.‘.×*Ñ*Ó,×:Ñ:Øó
ô �kÓ"ôð rP   c           
     óŠ  — t        d„ | j                  D «       «      rt        d«      ‚| j                  D �cg c]  }|j                  j	                  «       sŒ|‘Œ! }}t        |«      dk(  rt        d«      ‚t        d„ | j                  j                  «      }t        j                  D �cg c]	  }||vsŒ|‘Œ }}t        d„ | j                  D «       «      }g }g }t        | j                  «      D ]Ç  \  }	}|j                  j	                  «       r—t        t        | j                  «      dk(  rdnd|	› �|j                  d t        j                  ||	   › d	�«      ¬
«      }
|j!                  |
«       |sŒƒt#        d |
j                  |
j$                  ¬«      }|j!                  |«       Œ·|j!                  |«       ŒÉ ||fS c c}w c c}w )Nc              3  óh   K  — | ]*  }|j                   d uxr |j                   j                  –— Œ, y ­w©N)r\   Úis_write©Ú.0Úrs     rN   ú	<genexpr>z0generate_out_args_from_schema.<locals>.<genexpr>Æ   s+   è ø€ Ò
TÀ!ˆ1�<‰<˜tÐ#Ò=¨¯©×(=Ñ(=Ó=Ñ
Tùó   ‚02z8Mutable schema kinds should not return mutable argumentsr   z(Expected at least one tensor-like returnc                óJ   — | j                   €g S | j                   j                  S rr   )r\   Ú	alias_set)Úas    rN   ú<lambda>z/generate_out_args_from_schema.<locals>.<lambda>Î   s   € ˜Ÿ™Ð,�"€ °!·,±,×2HÑ2H€ rP   c              3  óh   K  — | ]*  }|j                   t        t        j                  «      k(  –— Œ, y ­wrr   )rZ   r   r   ÚTensorrt   s     rN   rw   z0generate_out_args_from_schema.<locals>.<genexpr>Ó   s"   è ø€ ÒWÀQ˜qŸv™v¬´&·-±-Ó)@Õ@ÑWùrx   é   rR   ú!rX   )rY   rZ   r\   )Úanyr_   rI   rZ   Úis_tensor_likeÚlenr   r^   Úflat_allÚstringÚascii_lowercaseÚallÚ	enumerater   r   ÚparseÚappendr   r\   )rF   rv   Útensorlike_retsÚused_annotationsÚxÚvalid_annotationsÚall_rets_are_tensorsrn   rm   ÚiÚnew_outÚnew_rets               rN   rj   rj   Á   s   € ô
 Ñ
TÀtÇ|Á|Ô
TÔTÜÐWÓXÐXà"&§,¡,ÖJ˜Q°!·&±&×2GÑ2GÕ2I’qÐJ€OÐJÜ
ˆ?Ó˜qÒ ÜÐGÓHÐHä ÙHØ�‰×ÑóÐô %+×$:Ñ$:ÖX˜q¸aÐGWÒ>WšÐXÐÐXäÑWÈ$Ï,É,ÔWÓWÐà#%€Lð !#€KÜ˜$Ÿ,™,Ó'ò "‰ˆˆ1Ø�6‰6× Ñ Ô"ÜÜ! $§,¡,Ó/°1Ò4‘U¸CÀ¸s¸)Ø—V‘VØÜ%×+Ñ+Ð/@ÀÑ/CÐ.DÀAÐ,FÓGô	ˆGð ×Ñ Ô(Ú#ô !Ø G§L¡L¸W×=OÑ=Oô�ð ×"Ñ" 7Õ+à×Ñ˜qÕ!ð#"ð$ ˜Ð$Ð$ùòG Kùò Ys   ¶F;ÁF;Â(	G Â2G c                ó€  — | j                  «       t        j                  k7  rt        d| j                  «       › �«      ‚t	        | «      \  }}t        | j                  j                  «       j                  t        | j                  j                  «      «      | j                  j                  |«      t        |«      ¬«      S )NzExpected mutable schema, got r]   )rH   r   ÚmutablerI   rj   r   rY   rb   rc   rV   rU   r^   re   rk   rl   s      rN   Úmutable_to_out_signaturer•   ô   s–   € à‡y�yƒ{”j×(Ñ(Ò(ÜÐ<¸T¿Y¹Y»[¸MÐJÓKÐKô !>¸dÓ CÑ€K�äØ�Y‰Y×%Ñ%Ó'×5Ñ5Ü2°4·9±9×3JÑ3JÓKó
ð —.‘.×.Ñ.¨|Ó<Ü�kÓ"ôð rP   c                óÞ  — ddl m} |t        j                  k(  �r| j                  j                  «       t        j                  k(  rt        d«      ‚| j                  j                  d¬«      j                  t        t        | j                  j                  j                  j                  d| j                  j                  j                  j                  | j                  j                  «       t        j                  k(  ¬«      | j                  j                  j                  ¬«      «      }nì|t        j                   k(  rÎ| j                  j                  «       t        j"                  k(  rt%        | j                  «      }n˜| j                  j                  «       t        j                  k(  rt'        | j                  «      }nW| j                  j                  «       t        j                  k(  rt)        | j                  «      }nt        d	«      ‚t        d
«      ‚|j                  «       t        j                   k(  r|j                  j+                  «       n|j                  |«      }| j                  j-                  «       r|dz  }t.        j0                  |j                  t3        |dt4        ¬«      ii}dht7        | j8                  h d£z  «      z  }t;        d'i d|“d| j<                  “dt>        j@                  h“dd“dd “dd “dd “dg “di “dd“dd“dd “dd “dd“dtB        jD                  “d| jF                  “dt7        «       “d | jH                  “d!d“d"d“d#d“d$d“d%|“d&| jJ                  “Ž|fS )(Nr   )Úcppz1Cannot generate functional from functional schemaT)Úkeep_return_namesF)Úbaser`   Údunder_methodÚfunctional_overload)rY   rU   z^We only bother generating out= functions from either inplace or mutable or functional variantszDWe currently only generate either functional or out= NativeFunctionsÚ_symint)ÚkernelÚ
structuredÚcpp_namespaceÚ	generated>   Ú	view_copyÚpt2_compliant_tagÚnondeterministic_seededrF   Ú!use_const_ref_for_mutable_tensorsÚvariantsrž   Ústructured_delegateÚstructured_inheritsÚprecomputedÚautogenÚufunc_inner_loopÚmanual_kernel_registrationÚmanual_cpp_bindingÚpython_moduleÚcategory_overrideÚdevice_guardÚdevice_checkÚlocÚ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ÚtagsÚ	namespacerT   )&Útorchgen.apir—   r   ri   rF   rH   rI   rG   Ú	with_namer   r   rY   r™   rš   r”   rU   rR   r`   rg   r•   ro   Úunambiguous_nameÚ
has_symintr   ÚCompositeExplicitAutogradr   r   Úsetr¸   r   r¤   r   Úfunctionr   ÚNoCheckr±   r³   r¹   )rL   Úkr—   rF   Úkernel_nameÚbackend_metadatar¸   s          rN   Úgenerate_functionrÅ     s:  € õ !àŒJ×!Ñ!Ó!Ø�6‰6�;‰;‹=œJ×1Ñ1Ò1Ü Ð!TÓUÐUð �v‰v×Ñ°$ÐÓ7×AÑAÜÜ%ØŸ™Ÿ™×)Ñ)×.Ñ.Ø!Ø"#§&¡&§+¡+×"2Ñ"2×"@Ñ"@à()¯©¯©«¼×9KÑ9KÑ(Kôð  Ÿf™fŸk™k×7Ñ7ô	ó
‰ð 
Œj�n‰nÒ	ð �6‰6�;‰;‹=œJ×.Ñ.Ò.Ü(¨¯©Ó0‰DØ�V‰V�[‰[‹]œj×0Ñ0Ò0Ü+¨A¯F©FÓ3‰DØ�V‰V�[‰[‹]œj×3Ñ3Ò3Ü.¨q¯v©vÓ6‰Dä Øpóð ô ØRó
ð 	
ð �9‰9‹;œ*Ÿ.™.Ò(ð 	�	‰	×"Ñ"Ô$à�X‰X�d‹^ð ð
 	‡v�v×ÑÔØ�yÑ ˆä×-Ñ-Ø�I‰I”Ø"Ø Ü6ôð0
ðÐð ˆ=œ3Ø	�‰ÒNÑNóñ €Dô
 	ò 	
Ùð	
à./×.QÒ.Qð	
ô ×&Ñ&Ñ'ð		
ñ
 ð	
ñ !%ð	
ñ !%ð	
ñ ð	
ñ ð	
ñ  ð	
ñ (-ð	
ñ  %ð	
ñ ð	
ñ #ð	
ñ ð	
ô  )×0Ò0ð!	
ð" —’ð#	
ô$ !$¤ð%	
ð& Ÿšð'	
ñ( 49ð)	
ñ* BGð+	
ñ, 48ð-	
ñ. CHð/	
ñ4 ð5	
ð6 —k’kð7	
ð: 	ð=ð rP   c                ól  — t        | «      }|j                  «       D �]•  }t        j                  |v }t        j                  |v }t        j
                  |v }t        j                  |v }t        d„ |j                  «       D «       «      }|s|s|s|sŒut        d„ |j                  «       D «       «      }	t        d„ |j                  «       D «       «      }
t        d„ |j                  «       D «       «      }|	s|
s|r|sŒÞ|r†t        |j                  «       «      dk(  rjt        |t        j                     j                  j                  «      t        vr2t        dt        |t        j                     j                  «      › �«      ‚�Œf|r8t        |t        j                     j                  j                  «      t        v r�Œ |r|t        j
                     n<|r|t        j                     n'|r|t        j                     n|t        j                     }|j                  j!                  «       t        j                  k(  xs& t        d„ |j                  j"                  D «       «      }t        d„ |j$                  D «       «      }| xr |xr |}|sn|slt        |j                  j                  «      t&        vrGt        |j                  j                  «      t(        vr"t        d	t        |j                  «      › d
�«      ‚|rWt+        |t        j                  «      \  }}||t        j                  <   t-        j.                  ||«       | j1                  |«       |r�Œ9|s|s�Œ?t+        |t        j                  «      \  }}||t        j                  <   t-        j.                  ||«       | j1                  |«       �Œ˜ y )Nc              3  ó8   K  — | ]  }d |j                   v –— Œ y­w)ÚcoreN)r¸   )ru   Úvariants     rN   rw   z1add_generated_native_functions.<locals>.<genexpr>”  s   è ø€ ÒG°�f §¡Ô,ÑGùs   ‚c              3  ó4   K  — | ]  }|j                   –— Œ y ­wrr   )r¬   ©ru   rL   s     rN   rw   z1add_generated_native_functions.<locals>.<genexpr>ž  s   è ø€ ÒF°a˜Q×1Õ1ÑFùó   ‚c              3  ó�   K  — | ]>  }|j                   xr, t        |j                  j                  j                  «      d k7  –— Œ@ y­w)Úset_N)Ú
is_view_opÚstrrF   rY   rË   s     rN   rw   z1add_generated_native_functions.<locals>.<genexpr>¢  s9   è ø€ ò ØEF�—‘Ò@¤ Q§V¡V§[¡[×%5Ñ%5Ó!6¸&Ñ!@Ó@ñùs   ‚AAc              3  ó4   K  — | ]  }|j                   –— Œ y ­wrr   )r´   rË   s     rN   rw   z1add_generated_native_functions.<locals>.<genexpr>©  s   è ø€ ò )Ø=>�×8Õ8ñ)ùrÌ   r   zEFound an out= operator that we could not find any other variants of: c              3  óP   K  — | ]  }|j                   j                  «       –— Œ  y ­wrr   )rZ   r‚   rt   s     rN   rw   z1add_generated_native_functions.<locals>.<genexpr>Û  s$   è ø€ ò MØ,-�—‘×%Ñ%×'ñMùs   ‚$&c              3  ó6   K  — | ]  }d t        |«      v –— Œ y­w)rR   N)rÐ   )ru   Úop_names     rN   rw   z1add_generated_native_functions.<locals>.<genexpr>ã  s   è ø€ ÒQ°g˜E¤S¨£\Ô1ÑQùs   ‚zBFound an operator that we could not generate an out= variant for: zã.
This type of operators don't have tensor-like return, making it difficult to generate a proper out= variant. If
out= variant is not needed, please add the function name into FUNCTIONAL_OPS_THAT_CANNOT_GET_AN_OUT_VARIANT list.)rO   Úvaluesr   ri   r`   r”   rR   r�   r‡   rƒ   rÐ   rF   rY   Ú&OUT_OPS_THAT_DONT_GET_GROUPED_PROPERLYrI   Ú*INPLACE_OPS_THAT_DONT_GET_GROUPED_PROPERLYrH   r_   r©   Ú*MUTABLE_OPS_THAT_CANNOT_GET_AN_OUT_VARIANTÚ-FUNCTIONAL_OPS_THAT_CANNOT_GET_AN_OUT_VARIANTrÅ   r   Ú
grow_indexrŠ   )ÚrsÚindicesrK   rM   Úhas_functionalÚhas_inplaceÚhas_mutableÚhas_outÚis_coreÚ
are_manualÚhas_view_opsÚare_composite_implicitÚbase_fnÚbase_fn_validÚ	needs_outÚgets_out_variantÚfnÚmetadatas                     rN   Úadd_generated_native_functionsrë   ‡  sH  € ô $>¸bÓ#AÐ Ø)×0Ñ0Ó2ó qˆÜ#×.Ñ.°!Ð3ˆÜ ×(Ñ(¨AÐ-ˆÜ ×(Ñ(¨AÐ-ˆÜ—.‘. AÐ%ˆÜÑG¸A¿H¹H»JÔGÓGˆñ ™+©²NäÑF¸1¿8¹8»:ÔFÓFˆJô ñ ØJKÏ(É(Ë*ôó ˆLô &)ñ )ØBCÇ(Á(Ã*ô)ó &Ð"ñ ™\Ñ-CÉGØÙœ3˜qŸx™x›z›?¨aÒ/ô ˜œ*Ÿ.™.Ñ)×.Ñ.×3Ñ3Ó4ÜAñBô )Ø_Ô`cÐdeÔfp×ftÑftÑdu×dzÑdzÓ`{Ð_|Ð}óð ñ ñ
 Ü˜œ*×,Ñ,Ñ-×2Ñ2×7Ñ7Ó8Ü=ñ>ñ ñ ð ”*×$Ñ$Ò%ñ ð ”z×)Ñ)Ò*ñ ð ”z—~‘~Ò&à”z×,Ñ,Ñ-ð ð" $ŸL™L×-Ñ-Ó/´:×3EÑ3EÑEò Ìñ MØ18·±×1EÑ1EôMó JˆMô ÑQÀÇÁÔQÓQˆIØ#*˜{ÒJ¨}ÒJÀÐÙ¡=ä˜Ÿ™×)Ñ)Ó*ÜEñFä˜GŸL™L×-Ñ-Ó.ÜHñIô )Ø^Ô_bÐcj×coÑcoÓ_pÐ^qð rrð uóð ñ  Ü0°¼*¿.¹.ÓI‘��HØ$&�”*—.‘.Ñ!Ü×'Ñ'¨°Ô:Ø—	‘	˜"”ó
 "¡wÓ2BÜ0°¼*×:OÑ:OÓP‘��HØ+-�”*×'Ñ'Ñ(Ü×'Ñ'¨°Ô:Ø—	‘	˜"–ñcqrP   c                ó4  — t        | «      t        |«      k7  r#t        dt        | «      › dt        |«      › �«      ‚t        | «      dk(  ryt        | «      dk(  r	d|d   › d�S dt        j                  | «      j	                  «       › dd	j                  |«      › d
�S )Nz#Returns and names length mismatch: z vs r   Ú r   zreturn ú;ú(ú, ú);)rƒ   rI   Ú
dispatcherÚreturns_typeÚcpp_typeÚjoin)ÚretsÚnamess     rN   Ú
return_strrø     sš   € Ü
ˆ4ƒy”C˜“JÒÜØ1´#°d³)°¸DÄÀUÃÀÐMó
ð 	
ô ˆ4ƒy�A‚~ØÜ	ˆT‹�aŠØ˜˜q™˜
 !Ð$Ð$àœ×0Ñ0°Ó6×?Ñ?ÓAÐBÀ!ÀDÇIÁIÈeÓDTÐCUÐUWÐXÐXrP   c                ó¾   — | j                  «       }g }t        | j                  «      dkD  }t        |«      D ]$  \  }}|�Œ	|j	                  |r	d|› d|› d�n|«       Œ& |S )Nr   ú	std::get<ú>(ú))Úaliased_return_namesrƒ   r_   rˆ   rŠ   )rF   Úout_varÚaliased_retsÚnon_aliased_namesÚis_out_var_a_tupler�   rv   s          rN   Úgather_nonaliased_inner_retsr    ss   € Ø×,Ñ,Ó.€LØÐÜ˜TŸ\™\Ó*¨QÑ.ÐÜ˜,Ó'ò ‰ˆˆ1Ø‰9Ø×$Ñ$Ù/A�)˜A˜3˜b  	¨Ñ+Àwõðð
 ÐrP   c                ó¦  — d| j                   j                  vry | j                  �%d| j                  j                  vr| j                  }nY| j                  �%d| j                  j                  vr| j                  }n(t	        t        | j                   j                  «      «      ‚t        | j                   j                  «      }t        |j                  «      }g }g }g }t        t        j                  | j                   j                  «      t        j                  |j                  «      «      D ]Þ  \  }}|j                  �©|j                  j                  r“|j                  d|j                  › d|j                  › d�«       |j                  t        |j                  › d�t        j                   ||j                  ¬«      ¬«      «       |j                  |j                  › d�«       Œ»|j                  t        j"                  |«      «       Œà dj%                  t'        ||j)                  «       «      D �	cg c]  }	|	j*                  ‘Œ c}	«      }
d	}t-        |j                  j.                  «      d
kD  rd|› d�nd}t1        |j                  |«      }t3        | j                   j                  j.                  ||z   «      }dj%                  |«      }d|j5                  |j                  «       | j6                  j                  j9                  «       rdndz   ¬«      › d|› d|› d|j                  j                  j;                  «       › d|
› d|› d�S c c}	w )Nr    zauto z_clone = clone_arg(rñ   Ú_clone)Úbinds)ÚexprrZ   rð   Úoutputr   z = rí   ú
rœ   ©rY   z {
  ú
  z
at::_ops::ú::call(ú);
  ú
}
)ri   r¸   r`   r”   rI   rÐ   rF   r   Úziprò   Újit_argumentsr\   rs   rŠ   rY   r	   Úargument_typerf   rõ   r   r^   r  rƒ   r_   r  rø   ÚdefnrR   r½   r¼   )ÚgÚtarget_fÚsigÚ
target_sigÚcontextÚclone_mutable_inputsÚcloned_return_namesÚa_currÚa_tgtÚeÚexprsÚout_nameÚmaybe_assignÚinner_return_namesÚret_strÚclone_mutable_inputs_strs                   rN   Úgen_composite_functional_kernelr"     sÏ  € ð ˜!Ÿ,™,×+Ñ+Ñ+Øà‡y�yÐ °A·I±I·N±NÑ!BØ—9‘9‰Ø	
�‰Ð	 ;°a·i±i·n±nÑ#DØ—9‘9‰ô œS §¡×!2Ñ!2Ó3Ó4Ð4ä
˜aŸl™l×/Ñ/Ó
0€CÜ$ X§]¡]Ó3€Jà$&€GØÐØÐô Ü× Ñ  §¡×!2Ñ!2Ó3Ü× Ñ  §¡Ó/óò 8‰ˆ�ð ×ÑÐ'¨E×,<Ñ,<×,EÒ,EØ ×'Ñ'Ø˜Ÿ™�}Ð$7¸¿¹°}ÀBÐGôð �N‰NÜØ"ŸK™K˜=¨Ð/Ü#×1Ñ1°&ÀÇÁÔLôôð  ×&Ñ&¨&¯+©+¨°fÐ'=Õ>à�N‰Nœ:×.Ñ.¨vÓ6Õ7ð#8ð$ �I‰I¤y°¸*×:NÑ:NÓ:PÓ'QÖR !�q—v“vÒRÓS€Eà€HÜ,/°·±×0EÑ0EÓ,FÈÒ,J�U˜8˜* CÑ(ÐPR€LÜ5°h·m±mÀXÓNÐÜØ	�‰×Ñ×!Ñ!Ð#5Ð8KÑ#Kó€Gð  $Ÿy™yÐ)=Ó>ÐðØ‡�ˆs�x‰x‹z¨!¯%©%¯*©*×*?Ñ*?Ô*A™YÀrÑJ€ÓKÐ Lð MØÐð Ø€.�
˜8Ÿ=™=×-Ñ-×>Ñ>Ó@ÐAÀÈÈð PØ
€)ð ð	ð ùò Ss   È6Mc                óŒ  — d| j                   j                  vry t        | j                   j                  «      }t        | j                  j                  «      }dj                  t        |j                  «       |j                  «       «      D �cg c]  }|j                  ‘Œ c}«      }g }d}t        | j                   j                  j                  j                   «      D ]n  \  }}t        | j                  j                  j                  «      dk(  r|nd|› d|› d�}	|j                  d|j                  › d|	› d	|j                  › d|	› d
�	«       Œp g }
t        | j                   j                  j                  «       «      D ]a  \  }}|�|
j                  |«       Œt        | j                  j                  j                  «      dk(  r|nd|› d|› d�}	|
j                  |	«       Œc dj                  |«      }d|j                  | j                   j                  j                  j!                  «       | j                   j                  j#                  «       rdndz   ¬«      › d|› d| j                  j                  j                  j!                  «       › d|› d|› dt%        | j                   j                  j                  |
«      › d�S c c}w )Nr    rð   Ú
tmp_outputr   rú   rû   rü   z  resize_out_helper(z);
  copy_arg(rñ   r  rœ   rí   r	  z
 {
  auto z = at::_ops::r  r  r
  r  )rR   r¸   r   rF   ri   rõ   r   r^   r  rˆ   rƒ   r_   rŠ   rY   rý   r  r¼   r½   rø   )r  r  r  r  r  Ú	copy_outsr  r�   Úout_argÚfunctional_return_namerö   Úret_nameÚcopy_outs_strs                rN   Úgen_composite_out_kernelr*  _  sƒ  € ð ˜!Ÿ%™%Ÿ*™*Ñ$Øô ˜aŸe™eŸj™jÓ
)€CÜ$ Q§\¡\×%6Ñ%6Ó7€Jà�I‰IÜ" 3§=¡=£?°J×4HÑ4HÓ4JÓKÖL�Aˆ�‹ÒLó€Eð €IØ€HÜ §¡§
¡
× 4Ñ 4× 8Ñ 8Ó9ò 

‰
ˆˆ7ô �1—<‘<×$Ñ$×,Ñ,Ó-°Ò2ñ à˜Q˜C˜r ( ¨1Ð-ð 	ð
 	×ÑðØ—\‘\�N "Ð%;Ð$<ð =Ø�L‰Lˆ>˜Ð2Ð3°2ð9õ	
ð

ð €Dô ! §¡§¡×!@Ñ!@Ó!BÓCò 	0‰ˆˆ8ØÐØ�K‰K˜Õ!ô �q—|‘|×(Ñ(×0Ñ0Ó1°QÒ6ñ à    2 h Z¨qÐ1ð #ð
 �K‰KÐ.Õ/ð	0ð —I‘I˜iÓ(€MðØ‡�ˆq�u‰u�z‰z�‰×/Ñ/Ó1À!Ç%Á%Ç*Á*×BWÑBWÔBY±YÐ_aÑb€ÓcÐ dð eØ€z�˜qŸ|™|×0Ñ0×5Ñ5×FÑFÓHÐIÈÐQVÐPWð XØ€/ð Üˆa�e‰e�j‰j× Ñ  $Ó'Ð(ð )ð	ð ùòG 	Ms   ÂK)rJ   zSequence[NativeFunction]Úreturnz6dict[FunctionSchema, dict[SchemaKind, NativeFunction]])rU   ú
str | Noner+  rÐ   )rF   r   r+  r   )rF   r   r+  z#tuple[list[Return], list[Argument]])rL   r   rÂ   r   r+  zMtuple[NativeFunction, dict[DispatchKey, dict[OperatorName, BackendMetadata]]])rÛ   zlist[NativeFunction]rÜ   z6dict[DispatchKey, dict[OperatorName, BackendMetadata]]r+  ÚNone)rö   ztuple[Return, ...]r÷   ú	list[str]r+  rÐ   )rF   r   rþ   rÐ   r+  r.  )r  r   r+  r,  )8Ú
__future__r   r…   Úcollectionsr   Útypingr   Útorchgen.api.dispatcherÚapirò   Útorchgen.api.translater   Útorchgen.api.typesr   r   r	   Útorchgen.contextr
   Útorchgen.modelr   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   Útorchgen.utilsr   Úcollections.abcr   rÖ   rØ   rÙ   r×   rO   rV   rg   ro   rj   r•   rÅ   rë   rø   r  r"  r*  rT   rP   rN   ú<module>r:     s=  ðÝ "ã Ý #Ý  ç ,Ð ,Ý ,ß AÑ AÝ 1÷÷ ÷ ÷ õ õ& %ñ Ý(ð .ð 'ð*Ð &ð àð	.Ð *ò'1Ð -ð^ ð.Ð *ð(Ø.ð(à;ó(óBóóFð,+%Ø
ð+%à(ó+%ófðHdØðdØ$ðdàRódð^yØðyàCðyð 
óyóx
Yó	ð ò9ó ð9ð| ò6ó ñ6rP   