§
    Ë²ÅjÕÕ  ã                  ó  — d Z 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Zddlm	Z	 ddl
mZ ddlmZmZmZmZmZmZ ddlmZmZ g d	¢Z ej        ej        d
¬¦  «        Z ed¦  «         ej        d¦  «         ej        ddd¦  «        dÌd„¦   «         ¦   «         ¦   «         Z ed¦  «        dÍd„¦   «         Z  ed¦  «         ej        dd¦  «        dÍd„¦   «         ¦   «         Z! ed¦  «         ej        dd¦  «        dÍd„¦   «         ¦   «         Z" ed¦  «        dÍd„¦   «         Z# ed ¦  «         ej        d¦  «         ej        dd!d¦  «        dÍd"„¦   «         ¦   «         ¦   «         Z$ ed#¦  «        	 dÎdÍd%„¦   «         Z% ed&¦  «         ej        dd!¦  «        dÍd'„¦   «         ¦   «         Z& ed( ej'        d)d*d+¦  «        g¬,¦  «         ed- ej'        d.d/d+¦  «        g¬,¦  «         ed0 ej'        d1d2d+¦  «        g¬,¦  «         ed3 ej'        d4d*d5¦  «        g¬,¦  «         ed6 ej'        d7d/d5¦  «        g¬,¦  «         ed8 ej'        d9d2d5¦  «        g¬,¦  «         ed: ej'        d;d/d<¦  «        g¬,¦  «        dÏdB„¦   «         ¦   «         ¦   «         ¦   «         ¦   «         ¦   «         ¦   «         Z( edC¦  «         ej        dd$d$d$d$d$d$¦  «        dÍdD„¦   «         ¦   «         Z) edE¦  «         ej        dd!dd¦  «        dÎdÍdF„¦   «         ¦   «         Z* edG¦  «         ej        dd!dd¦  «        dÍdH„¦   «         ¦   «         Z+ edI¦  «         ej        dd!dJ¦  «        dÐdÍdK„¦   «         ¦   «         Z, edL¦  «        dÍdM„¦   «         Z- edN¦  «        dÍdO„¦   «         Z. edP¦  «        dÍdQ„¦   «         Z/ edR¦  «        dÍdS„¦   «         Z0 edT¦  «        dÍdU„¦   «         Z1 edV¦  «        dÍdW„¦   «         Z2 edX¦  «        dÐdÍdY„¦   «         Z3 edZ¦  «        dÍd[„¦   «         Z4 ed\¦  «        dÍd]„¦   «         Z5 ed^¦  «        dÍd_„¦   «         Z6 ed`¦  «         ej        d¦  «        dÍda„¦   «         ¦   «         Z7 edb¦  «        dÍdc„¦   «         Z8 edd¦  «         ej        dd!d!d!¦  «        dÍde„¦   «         ¦   «         Z9 edf¦  «         ej        dd!d!d!d!¦  «        dÍdg„¦   «         ¦   «         Z: edh¦  «         ej        ddd!d!d!dJ¦  «        dÐdÍdi„¦   «         ¦   «         Z; edj¦  «         ej        dd!d!dJ¦  «        dÐdÍdk„¦   «         ¦   «         Z< edl¦  «         ej        dd!d!dJ¦  «        dÐdÍdm„¦   «         ¦   «         Z= edn¦  «         ej        dd!¦  «        dÑdÍdo„¦   «         ¦   «         Z> edp¦  «        dÍdq„¦   «         Z? edr¦  «         ej        ddd!d!¦  «        dÐdÍds„¦   «         ¦   «         Z@ edt¦  «         ej        ddd!d!¦  «        dÐdÍdu„¦   «         ¦   «         ZA edv¦  «         ej        dd!d!¦  «        dÒdÍdw„¦   «         ¦   «         ZBdÍdx„ZC edy¦  «        dÐdÍdz„¦   «         ZD ed{¦  «         ed|¦  «         ed}¦  «        dÍd~„¦   «         ¦   «         ¦   «         ZE ed¦  «         ed€¦  «         ed�¦  «        dÍd‚„¦   «         ¦   «         ¦   «         ZF edƒ¦  «        dÓdˆ„¦   «         ZG ed‰¦  «        dÍdŠ„¦   «         ZH ed‹¦  «        dÍdŒ„¦   «         ZI ed�¦  «        dÍdŽ„¦   «         ZJ ed�¦  «         ej        dd!¦  «        dÍd�„¦   «         ¦   «         ZK ed‘¦  «         ej        dd$¬’¦  «        dÐdÍd“„¦   «         ¦   «         ZL ed”¦  «        dÐdÍd•„¦   «         ZM ed–¦  «        dÍd—„¦   «         ZN ed˜¦  «        dÍd™„¦   «         ZO edš¦  «        dÍd›„¦   «         ZP edœ¦  «        dÍd�„¦   «         ZQ edž¦  «        dÍdŸ„¦   «         ZR ed ¦  «         ed¡¦  «        dÍd¢„¦   «         ¦   «         ZS ed£¦  «         ed¤¦  «        dÍd¥„¦   «         ¦   «         ZTdÍd¦„ZUdÍd§„ZVdÍd¨„ZW ed©¦  «         ej        ddªdªdªdª¦  «        dÍd«„¦   «         ¦   «         ZX ed¬¦  «        dÍd­„¦   «         ZY ed®¦  «         ej        dd$d$¦  «         ej        dd!d!¦  «        dÍd¯„¦   «         ¦   «         ¦   «         ZZ ed°¦  «         ej        dddªd±d¦  «        dÔdµ„¦   «         ¦   «         Z[ ed¶¦  «         ej        dddd!d!d!dd!d!¦	  «	        dÍd·„¦   «         ¦   «         Z\ ed¸¦  «         ej        dddd¦  «        dÍd¹„¦   «         ¦   «         Z] edº¦  «        dÍd»„¦   «         Z^ ed¼¦  «        	 	 	 	 	 	 dÕdÍd½„¦   «         Z_ ed¾¦  «        dÖdÀ„¦   «         Z` edÁ¦  «        dÖdÂ„¦   «         Za edÃ¦  «        dÖdÄ„¦   «         Zb edÅ¦  «        dÍdÆ„¦   «         Zc edÇ¦  «        d×dÉ„¦   «         Zd edÊ¦  «        d×dË„¦   «         ZedS )Øz(This file exports ONNX ops for opset 11.é    )ÚannotationsN)ÚSequence)Ú_C)Ú_onnx)Ú_type_utilsÚerrorsÚsymbolic_helperÚsymbolic_opset10Úsymbolic_opset9Úutils)Ú	jit_utilsÚregistration)9ÚaddÚappendÚarangeÚargsortÚ
atleast_1dÚ
atleast_2dÚ
atleast_3dÚcatÚchunkÚ	clamp_maxÚ	clamp_minÚclampÚconstant_pad_ndÚcumsumÚDeleteÚembedding_bagÚembedding_renormÚflattenÚgatherÚhardtanhÚhstackÚim2colÚ
index_fillÚindexÚ
index_copyÚ	index_putÚinsertÚ
linalg_detÚlinalg_vector_normÚlogdetÚmasked_scatterÚmasked_selectÚmmÚnarrowÚnormalÚpadÚpixel_shuffleÚpopÚprim_constant_chunkÚreflection_padÚrelu6Ú	remainderÚreplication_padÚroundÚscatterÚselectÚsizeÚsortÚsplit_with_sizesÚsplitÚsqueezeÚstackÚtopkÚunbindÚ
unique_dimÚ	unsqueezeÚvstacké   )Úopsetzaten::hardtanhTÚvÚfÚgújit_utils.GraphContextÚselfú_C.ValueÚmin_valÚfloatÚmax_valc                óˆ  — t           j                             |t           j        j        ¦  «        }|                      dt          j        ||                     ¦   «         ¬¦  «        ¬¦  «        }|                      dt          j        ||                     ¦   «         ¬¦  «        ¬¦  «        }t          j	        | d|||d¬¦  «        S )NÚConstant©Údtype©Úvalue_tÚClipé   ©Úopset_before)
r   ÚJitScalarTypeÚ
from_valueÚFLOATÚopÚtorchÚtensorrV   r	   Ú_op_with_optional_float_cast)rL   rN   rP   rR   Úscalar_types        úLC:\Projects\Historical\venv\Lib\site-packages\torch/onnx/symbolic_opset11.pyr"   r"   \   sÆ   € õ Ô+×6Ò6Ø�kÔ'Ô-ñô €Kð �dŠdØÝ”˜W¨K×,=Ò,=Ñ,?Ô,?Ð@Ñ@Ô@ð ñ ô €Gð �dŠdØÝ”˜W¨K×,=Ò,=Ñ,?Ô,?Ð@Ñ@Ô@ð ñ ô €Gõ Ô7Ø	ˆ6�4˜ '¸ðñ ô ð ó    zaten::clampc                ó.  ‡ — ˆ fd„}t           j                             |t           j        j        ¦  «        }|t           j        j        k    r |||¦  «        } |||¦  «        }t	          j        |¦  «        rt          ‰ ||¦  «        S t	          j        |¦  «        rt          ‰ ||¦  «        S t	          j        |¦  «        dk    r2t	          j        |¦  «        dk    rt	          j	        ‰ d|||d¬¦  «        S t          ‰ t          ‰ ||¦  «        |¦  «        S )Nc                óˆ   •— | �>t          j        | ¦  «        s*‰                     d| |                     ¦   «         ¬¦  «        S | S )NÚCast©Úto_i)r	   Ú_is_noner`   Ú	onnx_type)rb   rV   rL   s     €re   Ú_cast_if_not_nonez clamp.<locals>._cast_if_not_noner   sN   ø€ ØÐ¥oÔ&>¸vÑ&FÔ&FÐØ—4’4ØØØ—_’_Ñ&Ô&ð ñ ô ð ð ˆMrf   r   rY   rZ   r[   )
r   r]   r^   Ú	UNDEFINEDr	   rl   r   r   Ú_get_tensor_rankrc   )rL   rN   ÚminÚmaxrn   rd   s   `     re   r   r   p   s7  ø€ ðð ð ð ð õ Ô+×6Ò6Ø�kÔ'Ô1ñô €Kð •kÔ/Ô9Ò9Ð9ØÐ  [Ñ1Ô1ˆØÐ  [Ñ1Ô1ˆåÔ Ñ$Ô$ð >Ý˜˜D #Ñ&Ô&Ð&Ý	Ô	! #Ñ	&Ô	&ð >Ý˜˜D #Ñ&Ô&Ð&õ Ô,¨SÑ1Ô1°QÒ6Ð6ÝÔ0°Ñ5Ô5¸Ò:Ð:å"Ô?Ø�6˜4  c¸ðñ ô ð õ ˜Q¥	¨!¨T°3Ñ 7Ô 7¸Ñ=Ô=Ð=rf   zaten::clamp_minc                óN  — |                       d|t          j                             |¦  «                             ¦   «         ¬¦  «        }t          j        |¦  «        dk    r.t          j        | ¦  «        }t          j	        | d|||d¬¦  «        S t          j	        | d||d¬¦  «        S )Nri   rj   r   rY   rZ   r[   ÚMax©
r`   r   r]   r^   rm   r	   rp   Úopset9Úunusedrc   )rL   rN   rq   rr   s       re   r   r   “   ó«   € ð �$Š$ˆv�s¥Ô!:×!EÒ!EÀdÑ!KÔ!K×!UÒ!UÑ!WÔ!Wˆ$Ñ
XÔ
X€CÝÔ'¨Ñ,Ô,°Ò1Ð1ÝŒm˜AÑÔˆÝÔ;Øˆv�t˜S #°Bð
ñ 
ô 
ð 	
õ Ô;Øˆu�d˜C¨bð
ñ 
ô 
ð 	
rf   zaten::clamp_maxc                óN  — |                       d|t          j                             |¦  «                             ¦   «         ¬¦  «        }t          j        |¦  «        dk    r.t          j        | ¦  «        }t          j	        | d|||d¬¦  «        S t          j	        | d||d¬¦  «        S )Nri   rj   r   rY   rZ   r[   ÚMinru   )rL   rN   rr   rq   s       re   r   r   ¢   rx   rf   zaten::relu6c                óx  — t           j                             |t           j        j        ¦  «        }|                      dt          j        d|                     ¦   «         ¬¦  «        ¬¦  «        }|                      dt          j        d|                     ¦   «         ¬¦  «        ¬¦  «        }t          | |||¦  «        S )NrT   r   rU   rW   é   )	r   r]   r^   r_   r`   ra   rb   rV   r   )rL   Úinputrd   rP   rR   s        re   r7   r7   ±   s±   € åÔ+×6Ò6Ø�{Ô(Ô.ñô €Kð �dŠdØÝ”˜Q k×&7Ò&7Ñ&9Ô&9Ð:Ñ:Ô:ð ñ ô €Gð �dŠdØÝ”˜Q k×&7Ò&7Ñ&9Ô&9Ð:Ñ:Ô:ð ñ ô €Gõ ��E˜7 GÑ,Ô,Ð,rf   zaten::selectÚic                ó4   — |                       d|||¬¦  «        S )NÚGather©Úaxis_i©r`   )rL   rN   Údimr&   s       re   r<   r<   Á   s   € ð
 �4Š4�˜$ ¨cˆ4Ñ2Ô2Ð2rf   zaten::index_putFc           
     ó,  ‡ ‡— t          j        |¦  «        rt          j        |¦  «        }n|g}t          j        |d¦  «        }t	          |¦  «        dk    r|S t	          |¦  «        dk    rºt          t	          |¦  «        ¦  «        D ];}t          j        ||         ¦  «        r‰                      d||         ¦  «        ||<   Œ<|d         }|dd …         D ]}t          j	        ‰ ||¦  «        }Œ‰                      d|¦  «        Šˆˆ fd„|D ¦   «         } ‰ j        dg|¢R dd	iŽ}nó|d         }|}	t          j        |	¦  «        r¨t          j
        |¦  «        }
|
�|
dk    rt          j        ‰ ||	|¦  «        S t          j
        |	¦  «        }t          j
        |¦  «        }|�9|�7||k    r1t          j        ‰ |	t          t          ||¦  «        ¦  «        ¦  «        }	t          ‰ ||	|¦  «        S ‰                      d|¦  «        Št          j        ‰ |d	g¦  «        }t          j        ‰ ‰                      d|¦  «        dgt	          |¦  «        gt           j        g¬
¦  «        }‰                      d‰|d¬¦  «        }t          j
        |¦  «        }
|
�|
dk    rt          j        ‰ ||d ¦  «        }t          j        ‰ ||¦  «        }t(          j                             |t(          j        j        ¦  «        }|t(          j        j        k    r`t(          j                             |t(          j        j        ¦  «        }||k    r*‰                      d||                     ¦   «         ¬¦  «        }n|rt3          j        d|¦  «        ‚|r}‰                      d‰                      d|¦  «        t7          j        dg|                     ¦   «         ¬¦  «        ¬¦  «        }‰                      d|||¦  «        }t          ‰ ||¦  «        }n‰                      d|||¦  «        }|S )NÚbr   é   ÚNonZeroÚShapec                óh   •— g | ].}t          j        ‰t          j        ‰|‰d ¦  «        dg¦  «        ‘Œ/S )Néÿÿÿÿ)r	   Ú_unsqueeze_helperrv   Úexpand)Ú.0ÚindÚbroadcast_index_shaperL   s     €€re   ú
<listcomp>zindex_put.<locals>.<listcomp>ß   sR   ø€ ð 
ð 
ð 
ð õ Ô-Ø•6”=  CÐ)>ÀÑEÔEÈÀtñô ð
ð 
ð 
rf   ÚConcatr‚   r‹   ©ÚaxesÚstartsÚendsr�   ri   rj   z'self does not have a valid scalar type.ÚConstantOfShaperU   rW   Ú	ScatterND)r	   Ú_is_packed_listÚ_unpack_listÚ
_parse_argÚlenÚrangeÚ_is_boolr`   rv   r   rp   Úmasked_fillrŒ   Úlistr-   Ú_slice_helperÚsysÚmaxsizer�   Ú_reshape_helperr   r]   r^   ro   rm   r   ÚSymbolicValueErrorra   rb   rV   )rL   rN   Úindices_list_valueÚvaluesÚ
accumulateÚindices_listÚidx_r&   r�   Úbool_inpÚrankÚ	mask_rankÚ	self_rankÚsub_data_shapeÚvalues_shapeÚself_scalar_typeÚvalues_scalar_typeÚzerosÚresultr�   s   `                  @re   r(   r(   É   sS  øø€ õ Ô&Ð'9Ñ:Ô:ð ,Ý&Ô3Ð4FÑGÔGˆˆà*Ð+ˆÝ Ô+¨J¸Ñ<Ô<€Jå
ˆ<ÑÔ˜AÒÐØˆå
ˆ<ÑÔ˜1ÒÐÝ�#˜lÑ+Ô+Ñ,Ô,ð 	Ið 	IˆDÝÔ'¨°TÔ(:Ñ;Ô;ð IØ%&§T¢T¨)°\À$Ô5GÑ%HÔ%H�˜TÑ"øØ˜Q”ˆà   Ô#ð 	.ð 	.ˆCÝ”J˜q %¨Ñ-Ô-ˆEˆEØ !§¢ W¨eÑ 4Ô 4Ðð
ð 
ð 
ð 
ð 
ð $ð	
ñ 
ô 
ˆð �”�XÐ8 Ð8Ð8Ð8°RÐ8Ð8ˆˆðP ˜Q”ˆØˆÝÔ# HÑ-Ô-ð 	=Ý"Ô3°FÑ;Ô;ˆDØÐ D¨A¢I IÝÔ)¨!¨T°8¸VÑDÔDÐDÝ'Ô8¸ÑBÔBˆIÝ'Ô8¸Ñ>Ô>ˆIàÐ%ØÐ)Ø 	Ò)Ð)õ +Ô<Ø�x¥¥e¨I°yÑ&AÔ&AÑ!BÔ!Bñô �õ " ! T¨8°VÑ<Ô<Ð<Ø !§¢ W¨eÑ 4Ô 4ÐÝÔ1°!°U¸R¸DÑAÔAˆÝ$Ô2Ø	ˆ1�4Š4�˜ÑÔ a Sµ#°lÑ2CÔ2CÐ1DÍCÌKÈ=ðñ ô €Nð —4’4˜Ð"7¸ÐPQ�4ÑRÔR€LåÔ+¨FÑ3Ô3€DØÐ˜D AšI˜IÝ”˜q &¨,¸Ñ=Ô=ˆÝÔ,¨Q°¸ÑEÔE€Få"Ô0×;Ò;Ø�kÔ'Ô1ñô Ðð �;Ô4Ô>Ò>Ð>Ý(Ô6×AÒAØ•KÔ-Ô7ñ
ô 
Ðð Ð1Ò1Ð1Ø—T’T˜& &Ð/?×/IÒ/IÑ/KÔ/K�TÑLÔLˆFøØ	ð YÝÔ'Ð(QÐSWÑXÔXÐXàð 	8Ø—’ØØ�DŠD�˜$ÑÔÝ”L ! Ð,<×,BÒ,BÑ,DÔ,DÐEÑEÔEð ñ 
ô 
ˆð
 —’�k 5¨%°Ñ8Ô8ˆÝ�Q˜˜fÑ%Ô%ˆˆà—’�k 4¨°Ñ7Ô7ˆà€Mrf   zaten::pixel_shufflec                ó–   — t          j        |¦  «        }|�|dk    rt          j        dd¦  «        S |                      d||d¬¦  «        S )Né   r3   zonly support 4d inputÚDepthToSpaceÚCRD)Úblocksize_iÚmode_s)r	   rp   Ú_unimplementedr`   )rL   rN   Úupscale_factorr¬   s       re   r3   r3   E  sP   € õ Ô+¨DÑ1Ô1€DØÐ˜D AšI˜IÝÔ-¨oÐ?VÑWÔWÐWØ�4Š4� °.Èˆ4ÑOÔOÐOrf   zaten::upsample_nearest1dÚupsample_nearest1dé   Únearest)Údecoratezaten::upsample_nearest2dÚupsample_nearest2dr¶   zaten::upsample_nearest3dÚupsample_nearest3dé   zaten::upsample_linear1dÚupsample_linear1dÚlinearzaten::upsample_bilinear2dÚupsample_bilinear2dzaten::upsample_trilinear3dÚupsample_trilinear3dzaten::upsample_bicubic2dÚupsample_bicubic2dÚcubicÚnameÚstrr„   ÚintÚinterpolate_modec                ó.   — t          j        | ||¦  «        S ©N)r	   Ú_interpolate_helper)rÊ   r„   rÍ   s      re   Ú_interpolaterÑ   N  s   € õ: Ô.¨t°SÐ:JÑKÔKÐKrf   zaten::__interpolatec           	     ó6   — t          j        | ||||||¦  «        S rÏ   )r	   Ú__interpolate_helper)rL   r}   r=   Úscale_factorÚmodeÚalign_cornersÚrecompute_scale_factorÚ	antialiass           re   Ú__interpolaterÙ   n  s)   € õ Ô/Ø	ˆ5�$˜ d¨MÐ;Qñô ð rf   zaten::gatherc                óˆ   — t          j        |d¦  «        rt          j        dd¦  «        S |                      d|||¬¦  «        S )Nr~   r!   zsparse_grad == TrueÚGatherElementsr�   )r	   Ú_maybe_get_constr»   r`   )rL   rN   r„   r&   Úsparse_grads        re   r!   r!     sI   € õ Ô'¨°SÑ9Ô9ð OÝÔ-¨hÐ8MÑNÔNÐNØ�4Š4Ð  $¨°cˆ4Ñ:Ô:Ð:rf   zaten::scatterc           
     óô  — t           j                             |¦  «        }t          j        |¦  «        }t          j        |¦  «        r|                      d||||¬¦  «        S t           j                             |¦  «        |k    rG|                      d|t           j                             |¦  «                             ¦   «         ¬¦  «        }|                      d||t          j	        | ||¦  «        |¬¦  «        S )NÚScatterElementsr�   ri   rj   )
r   r]   r^   r	   Ú_maybe_get_scalarÚ	_is_valuer`   rm   rv   Ú	expand_as)rL   rN   r„   r&   ÚsrcÚsrc_types         re   r;   r;   ‡  sî   € õ Ô(×3Ò3°CÑ8Ô8€HÝ
Ô
+¨CÑ
0Ô
0€CÝÔ  Ñ%Ô%ð 
Ø�tŠtÐ% t¨U°CÀˆtÑDÔDÐDõ Ô$×/Ò/°Ñ5Ô5¸ÒAÐAØ—$’$ØØÝ Ô.×9Ò9¸$Ñ?Ô?×IÒIÑKÔKð ñ ô ˆCð
 �tŠtØ˜t U­FÔ,<¸QÀÀUÑ,KÔ,KÐTWð ñ 
ô 
ð 	
rf   zaten::cumsumÚnonec                ó   — |                       dt          j        |t          j        ¬¦  «        ¬¦  «        }|r}|                     ¦   «                              ¦   «         dk    rSt          j        |dd¦  «        }|                       d|t          j	        |¦  «         
                    ¦   «         ¬¦  «        }n|}|                       d	||¦  «        }|S )
NrT   rU   rW   zprim::Constantr~   rV   ri   rj   ÚCumSum)r`   ra   rb   rÌ   ÚnodeÚkindr	   Ú
_get_constr   r]   rm   )rL   rN   r„   rV   Ú
dim_tensorÚparsed_dtypeÚcastÚcsums           re   r   r   œ  s¾   € ð —’�j­%¬,°sÅ%Ä)Ð*LÑ*LÔ*L�ÑMÔM€JØð �—’‘”×"Ò"Ñ$Ô$Ð(8Ò8Ð8Ý&Ô1°%¸¸gÑFÔFˆØ�tŠtØ�D�{Ô8¸ÑFÔF×PÒPÑRÔRð ñ 
ô 
ˆˆð ˆØ�4Š4�˜$ 
Ñ+Ô+€DØ€Krf   zaten::masked_selectc                ó‚   — t          j        | t          j        | ||¦  «        ¦  «        }|                      d||¦  «        S )NÚGatherND)rv   Únonzerorâ   r`   )rL   rN   Úmaskr&   s       re   r.   r.   «  s8   € åŒN˜1�fÔ.¨q°$¸Ñ=Ô=Ñ>Ô>€EØ�4Š4�
˜D %Ñ(Ô(Ð(rf   zaten::masked_scatterc                ó¢  — t          j        | t          j        | ||¦  «        ¦  «        }t          j        | |t          j        dg¦  «        ¦  «        }t          j        | |t          j        dg¦  «        t          j        dg¦  «        t          j        | |t          j        dg¦  «        ¦  «        ¬¦  «        }|  	                    d|||¦  «        S )Nr‹   r   r“   r˜   )
rv   rñ   râ   r	   r¤   ra   Ú
LongTensorr¡   r=   r`   )rL   rN   rò   Úsourcer&   s        re   r-   r-   ±  sº   € åŒN˜1�fÔ.¨q°$¸Ñ=Ô=Ñ>Ô>€Eõ Ô,¨Q°½Ô8HÈ"ÈÑ8NÔ8NÑOÔO€FÝÔ*Ø	ØÝÔ˜q˜cÑ"Ô"ÝÔ  Ñ$Ô$ÝŒ[˜˜E¥5Ô#3°Q°CÑ#8Ô#8Ñ9Ô9ðñ ô €Fð �4Š4�˜T 5¨&Ñ1Ô1Ð1rf   z	aten::lenc           
     óJ  — t          j        |¦  «        s*|                     ¦   «                              ¦   «         dk    r|                      d|¦  «        S t          | ||                      dt          j        dg¦  «        ¬¦  «        ¦  «        }t          j        | |dg¦  «        S )Nzonnx::SplitToSequenceÚSequenceLengthrT   r   rW   )	r	   Ú_is_tensor_listrè   ré   r`   r=   ra   rô   Ú_squeeze_helper)rL   rN   Úsz_0s      re   Ú_lenrû   Â  s‘   € õ 	Ô'¨Ñ-Ô-ð,à�9Š9‰;Œ;×ÒÑÔÐ!8Ò8Ð8à�tŠtÐ$ dÑ+Ô+Ð+Ý��4˜Ÿš˜jµ%Ô2BÀAÀ3Ñ2GÔ2G˜ÑHÔHÑIÔI€DÝÔ*¨1¨d°Q°CÑ8Ô8Ð8rf   zaten::__getitem_c                ó~   — t          j        |¦  «        r|                      d||¦  «        S ddlm}  || ||¦  «        S )NÚ
SequenceAtr   )Ú
__getitem_)r	   rø   r`   Útorch.onnx.symbolic_opset9rþ   )rL   rN   r~   Úgetitems       re   rþ   rþ   Í  sQ   € åÔ& tÑ,Ô,ð #à�tŠt�L $¨Ñ*Ô*Ð*àDÐDÐDÐDÐDÐDàˆw�q˜$ Ñ"Ô"Ð"rf   zaten::_set_itemc                ó`   — |                       d||¦  «        }|                       d|||¦  «        S )NÚSequenceEraseÚSequenceInsertrƒ   )rL   Útensor_listr~   rJ   s       re   Ú	_set_itemr  Ø  s0   € à—$’$�¨°QÑ7Ô7€KØ�4Š4Ð  +¨q°!Ñ4Ô4Ð4rf   zaten::appendc                ó0   — |                       d||¦  «        S ©Nr  rƒ   )rL   rN   rb   s      re   r   r   Þ  s   € à�4Š4Ð  $¨Ñ/Ô/Ð/rf   z	aten::addc                ój  — t          j        |¦  «        r‰t          j        |¦  «        ru|                     ¦   «         }|                     ¦   «         dk    rt          j        dd¦  «        S t          j        |¦  «        }|}|D ]}|                      d||¦  «        }Œ|S t          j	        | |||¦  «        S )Nzprim::ListConstructr   z6does not support adding dynamic tensor list to anotherr  )
r	   rá   rø   rè   ré   r»   rš   r`   rv   r   )rL   rN   ÚotherÚalphaÚtensor_list_nodeÚtensorsÚlÚts           re   r   r   ã  sÁ   € åÔ  Ñ&Ô&ð 
­?Ô+JÈ4Ñ+PÔ+Pð 
Ø Ÿ:š:™<œ<ÐØ× Ò Ñ"Ô"Ð&;Ò;Ð;Ý"Ô1ØÐOñô ð õ "Ô.¨uÑ5Ô5ˆØˆØð 	-ð 	-ˆAØ—’Ð% q¨!Ñ,Ô,ˆAˆAØˆåŒ:�a˜˜u eÑ,Ô,Ð,rf   zaten::insertc                ó2   — |                       d|||¦  «        S r  rƒ   )rL   rN   Úposrb   s       re   r)   r)   ô  s   € à�4Š4Ð  $¨°Ñ4Ô4Ð4rf   z	aten::popc                ó0   — |                       d||¦  «        S ©Nr  rƒ   ©rL   r  r„   s      re   r4   r4   ù  ó   € à�4Š4� ¨cÑ2Ô2Ð2rf   zaten::Deletec                ó0   — |                       d||¦  «        S r  rƒ   r  s      re   r   r   þ  r  rf   z	aten::catc                ó²   — t          j        |¦  «        rt          j        | ||¦  «        S t          j        |dd¦  «        }|                      d||¬¦  «        S )Nr~   r„   ÚConcatFromSequencer�   )r	   r™   rv   r   rê   r`   r  s      re   r   r     sY   € õ Ô& {Ñ3Ô3ð CÝŒz˜!˜[¨#Ñ.Ô.Ð.åÔ(¨¨c°5Ñ9Ô9ˆØ�tŠtÐ(¨+¸cˆtÑBÔBÐBrf   zaten::stackc                ó´   — t          j        |¦  «        rt          j        | ||¦  «        S t          j        |dd¦  «        }|                      d||d¬¦  «        S )Nr~   r„   r  r‡   ©r‚   Ú
new_axis_i)r	   r™   rv   rB   rê   r`   r  s      re   rB   rB     sY   € åÔ& {Ñ3Ô3ð QÝŒ|˜A˜{¨CÑ0Ô0Ð0åÔ(¨¨c°5Ñ9Ô9ˆØ�tŠtÐ(¨+¸cÈaˆtÑPÔPÐPrf   zaten::_unique2c                óH   — |                       d||d¬¦  «        \  }}}}|||fS )NÚUniquer¶   )Úsorted_iÚoutputsrƒ   )	rL   rN   ÚsortedÚreturn_inverseÚreturn_countsÚuÚ_indicesÚinverse_indicesÚcountss	            re   Ú_unique2r&    s=   € ð ,-¯4ª4Ø�$ °ð ,0ñ ,ô ,Ñ(€A€x� &ð ˆo˜vÐ%Ð%rf   zaten::unique_dimc                óJ   — |                       d|||d¬¦  «        \  }}}}	|||	fS )Nr  r¶   )r‚   r  r  rƒ   )
rL   rN   r„   r  r   r!  r"  r#  r$  r%  s
             re   rE   rE     s?   € ð
 ,-¯4ª4Ø�$˜s¨V¸Qð ,0ñ ,ô ,Ñ(€A€x� &ð ˆo˜vÐ%Ð%rf   z
aten::topkc           	     ó8   — t          j        | ||||||¬¦  «        S )N)Úlargestr  Úout)r	   Ú_topk_helper)rL   rN   Úkr„   r)  r  r*  s          re   rC   rC   *  s-   € õ Ô'Ø	ˆ4��C °¸Sðñ ô ð rf   z
aten::sortc                ó4   — t          j        | ||||¬¦  «        S ©N)Ú	decendingr*  ©r	   Ú_sort_helper)rL   rN   r„   r/  r*  s        re   r>   r>   2  s    € õ Ô'¨¨4°À	ÈsÐSÑSÔSÐSrf   zaten::argsortc                ó>   — t          j        | ||||¬¦  «        \  }}|S r.  r0  )rL   rN   r„   r/  r*  Ú_Úindicess          re   r   r   8  s1   € õ !Ô-Ø	ˆ4� 	¨sðñ ô �J€A€wð €Nrf   zaten::roundc                óÈ  — t          j        |¦  «        s|S |dk    r|                      d|¦  «        S |                      d||                      dt          j        t          d|¦  «        ¦  «        ¬¦  «        ¦  «        }|                      d|¦  «        }|                      d||                      dt          j        t          dd|z  ¦  «        ¦  «        ¬¦  «        ¦  «        S )Nr   ÚRoundÚMulrT   é
   rW   r‹   )r	   Ú_is_fpr`   ra   rb   Úpow)rL   rN   ÚdecimalsÚmulr:   s        re   r:   r:   A  sÊ   € õ Ô! $Ñ'Ô'ð ØˆØ�1‚}€}Ø�tŠt�G˜TÑ"Ô"Ð"Ø
�$Š$ˆu�d˜AŸDšD µU´\Å#ÀbÈ(ÑBSÔBSÑ5TÔ5T˜DÑUÔUÑ
VÔ
V€CØ�DŠD�˜#ÑÔ€EØ�4Š4Øˆu�a—d’d˜:­u¬|½CÀÀBÈÁMÑ<RÔ<RÑ/SÔ/S�dÑTÔTñô ð rf   zaten::remainderc                ó°   — t          j        |¦  «        st          j        |¦  «        rt          j        | ||¦  «        S |                      d||d¬¦  «        S )NÚModr   )Úfmod_i)r	   r9  rv   r8   r`   )rL   r}   r	  s      re   r8   r8   O  sV   € åÔ˜eÑ$Ô$ð 1­Ô(>¸uÑ(EÔ(Eð 1ÝÔ  5¨%Ñ0Ô0Ð0Ø�4Š4��u˜e¨Aˆ4Ñ.Ô.Ð.rf   zaten::splitc           
     ó"  ‡ ‡— t          j        ||¦  «        �s`‰                      d|||¬¦  «        Š|€‰S t          j        |¦  «        �rt	          t          j        |¦  «        ¦  «        |k    ríˆ fd„t          j        |¦  «        D ¦   «         }‰                      dt          j        dgt          j        ¬¦  «        ¬¦  «        }‰                      dt          j        |gt          j        ¬¦  «        ¬¦  «        }g }t          |¦  «        D ]M}	‰                      d|||	         ¦  «        }
| 
                    ‰                      d	|||
|¦  «        ¦  «         |
}ŒN|S ˆ ˆfd
„t          |¦  «        D ¦   «         S t          j        ‰ ||||¦  «        S )NÚSplitToSequencer�   c                ó>   •— g | ]}t          j        ‰|d g¦  «        ‘ŒS ©r   )r	   rŒ   )rŽ   rJ   rL   s     €re   r‘   zsplit.<locals>.<listcomp>b  s:   ø€ ð ð ð àõ  Ô1°!°Q¸¸Ñ<Ô<ðð ð rf   rT   r   rU   rW   ÚAddÚSlicec                ó¦   •— g | ]M}‰                      d ‰‰                      dt          j        |gt          j        ¬¦  «        ¬¦  «        ¦  «        ‘ŒNS )rý   rT   rU   rW   )r`   ra   rb   Úlong)rŽ   r~   rL   Ú	split_outs     €€re   r‘   zsplit.<locals>.<listcomp>p  se   ø€ ð 
ð 
ð 
ð ð �DŠDØØØ—’�Z­¬°q°cÅÄÐ)LÑ)LÔ)L�ÑMÔMñô ð
ð 
ð 
rf   )r	   Ú_is_split_staticr`   r™   rœ   rš   ra   rb   rG  r�   r   rv   r@   )rL   rN   Úsplit_size_or_sizesr„   Ú_outputsÚsplit_sizesÚstartÚaxisÚresr~   ÚendrH  s   `          @re   r@   r@   V  s¾  øø€ õ Ô+Ð,?ÀÑJÔJñ  IØ—D’DÐ*¨DÐ2EÈc�DÑRÔRˆ	ØÐØÐõ Ô+Ð,?Ñ@Ô@ñ	å•OÔ0Ð1DÑEÔEÑFÔFÈ(ÒRÐRðð ð ð å(Ô5Ð6IÑJÔJðñ ô ˆKð —D’D˜­U¬\¸1¸#ÅUÄZÐ-PÑ-PÔ-P�DÑQÔQˆEØ—4’4˜
­E¬L¸#¸ÅeÄjÐ,QÑ,QÔ,Q�4ÑRÔRˆDØˆCÝ˜8‘_”_ð ð �Ø—d’dØ˜5 +¨a¤.ñô �ð —
’
˜1Ÿ4š4 ¨¨u°c¸4Ñ@Ô@ÑAÔAÐAØ��ØˆJð
ð 
ð 
ð 
ð 
õ ˜8‘_”_ð
ñ 
ô 
ð 	
õ Œ|˜A˜tÐ%8¸#¸xÑHÔHÐHrf   zaten::split_with_sizesc                ó(   — t          | ||||¦  «        S rÏ   )r@   )rL   rN   rL  r„   rK  s        re   r?   r?   |  s   € õ ��D˜+ s¨HÑ5Ô5Ð5rf   zaten::unbindc                óÎ   — |€M|                       d||                       dt          j        dt          j        ¬¦  «        ¬¦  «        |d¬¦  «        S t	          j        | |||¦  «        S )NrA  rT   r‡   rU   rW   r   )r‚   Ú
keepdims_i)r`   ra   rb   rG  rv   rD   )rL   rN   r„   rK  s       re   rD   rD   ‚  sm   € ð ÐØ�tŠtØØØ�DŠD�¥U¤\°!½5¼:Ð%FÑ%FÔ%FˆDÑGÔGØØð ñ 
ô 
ð 	
õ Œ}˜Q  c¨8Ñ4Ô4Ð4rf   c                óf  — t          j        |¦  «        sAt          j        |¦  «        r-t          j        |¦  «        r|                      d|dd¬¦  «        }t          j        | ||                      dt          j        dg¦  «        ¬¦  «        ¦  «        }t          j	        |¦  «        }|€+|                      d|                      d	|¦  «        ¦  «        }n5|                      dt          j        |t          j
        ¬
¦  «        ¬¦  «        }|                      d|                      d||                      dt          j        dt          j
        ¬
¦  «        ¬¦  «        ¦  «        |¦  «        }|                      d|t          j        j        ¬¦  «        }|                      d||                      d|t          j        dgt          j
        ¬
¦  «        ¬¦  «        d¬¦  «        }t          j        | ||                      dt          j        ddg¦  «        ¬¦  «        ¦  «        }|                      dt          j        | |dg¦  «        ddg¬¦  «        }t          j        | ||                      dt          j        dg¦  «        ¬¦  «        ¦  «        }|                      d|t          j        j        ¬¦  «        }|S )a!  Generate paddings in ONNX order based on pad in pytorch.

    Args:
        input: the input tensor.
        pad: the paddings in pytorch.
            The order is dim_n_begin, dim_n_end, dim_n-1_begin, dim_n-1_end, ..., dim_m_begin, dim_m_end,
            where m is in range [0, n].
    r  r   r‡   r  rT   rW   NÚSizer‰   rU   ÚSubr7  é   ri   rj   r’   r—   r�   r‹   Ú	Transpose©Úperm_i)r	   r™   Ú_is_listÚ_is_scalar_listr`   rv   r=   ra   rb   rp   Úint64Ú_C_onnxÚTensorProtoDataTypeÚINT64r¤   Úopset10Úflip)rL   r}   r2   Úpad_lenr¬   Ú	extensionÚpaddingsÚ	padding_cs           re   Ú_prepare_onnx_paddingsrg  ‘  sl  € õ Ô+¨CÑ0Ô0ðFåÔ$ SÑ)Ô)ðFõ Ô+¨CÑ0Ô0ðFð
 �dŠdÐ'¨°QÀ1ˆdÑEÔEˆõ
 Œk˜!˜S !§$¢$ z½5¼<ÈÈÑ;LÔ;L $Ñ"MÔ"MÑNÔN€GåÔ+¨EÑ2Ô2€DØ€|Ø�tŠt�F˜AŸDšD ¨%Ñ0Ô0Ñ1Ô1ˆˆà�tŠt�J­¬°TÅÄÐ(MÑ(MÔ(MˆtÑNÔNˆØ—’ØØ	�ŠˆU�D˜!Ÿ$š$˜zµ5´<ÀÍÌÐ3UÑ3UÔ3U˜$ÑVÔVÑWÔWØñô €Ið �$Š$ˆv�s¥Ô!<Ô!Bˆ$Ñ
CÔ
C€CØ�tŠtØØØ	�ŠØ˜yµ%´,À¸sÍ%Ì+Ð2VÑ2VÔ2Vð 	ñ 	
ô 	
ð ð ñ ô €Hõ Ô.Ø	ˆ8�Q—T’T˜*­e¬l¸BÀ¸7Ñ.CÔ.C�TÑDÔDñô €Hð �tŠt�K¥¤¨a°¸A¸3Ñ!?Ô!?ÈÈAÈˆtÑOÔO€HÝÔ.Ø	ˆ8�Q—T’T˜*­e¬l¸B¸4Ñ.@Ô.@�TÑAÔAñô €Hð —’�V˜X­GÔ,GÔ,M�ÑNÔN€IØÐrf   zaten::constant_pad_ndc                ó®   — d}t          j        |¦  «        }t          j        ||¦  «        }t          | ||¦  «        }|                      d||||¬¦  «        S )NÚconstantÚPad©rº   )r	   rà   Ú_if_scalar_type_asrg  r`   )rL   r}   ÚpaddingÚvaluerÕ   r2   s         re   r   r   Ê  sV   € à€DÝÔ-¨eÑ4Ô4€EÝÔ.¨u°eÑ<Ô<€EÝ
   E¨7Ñ
3Ô
3€CØ�4Š4��u˜c 5°ˆ4Ñ6Ô6Ð6rf   zaten::reflection_pad1dzaten::reflection_pad2dzaten::reflection_pad3dc                óZ   — d}t          | ||¦  «        }|                      d|||¬¦  «        S )NÚreflectrj  rk  ©rg  r`   ©rL   r}   rm  rÕ   re  s        re   r6   r6   Ó  s4   € ð €DÝ% a¨°Ñ8Ô8€HØ�4Š4��u˜h¨tˆ4Ñ4Ô4Ð4rf   zaten::replication_pad1dzaten::replication_pad2dzaten::replication_pad3dc                óZ   — d}t          | ||¦  «        }|                      d|||¬¦  «        S )NÚedgerj  rk  rq  rr  s        re   r9   r9   Ü  s4   € ð €DÝ% a¨°Ñ8Ô8€HØ�4Š4��u˜h¨tˆ4Ñ4Ô4Ð4rf   z	aten::padr}   r2   rÕ   rn  c                ó   — t          j        |d¦  «        }|dk    rt          | ||¦  «        S |dk    rt          | ||¦  «        S |dk    rt	          | |||¦  «        S |dk    rt          j        | ||¦  «        S t          j        d|› �|¦  «        ‚)NÚsÚ	replicaterp  ri  ÚcircularzUnrecognized padding mode )	r	   r›   r9   r6   r   rv   Ú_pad_circularr   r¥   )rL   r}   r2   rÕ   rn  s        re   r2   r2   å  s«   € õ Ô% d¨CÑ0Ô0€DØˆ{ÒÐÝ˜q %¨Ñ-Ô-Ð-Ø	�Ò	Ð	Ý˜a ¨Ñ,Ô,Ð,Ø	�Ò	Ð	Ý˜q %¨¨eÑ4Ô4Ð4Ø	�Ò	Ð	ÝÔ# A u¨cÑ2Ô2Ð2åÔ'Ð(KÀTÐ(KÐ(KÈUÑSÔSÐSrf   zaten::linalg_detc                ó.   — |                       d|¦  «        S )NÚDetrƒ   )rL   rN   s     re   r*   r*   ú  s   € à�4Š4��tÑÔÐrf   zaten::logdetc                óH   — t          j        | t          | |¦  «        ¦  «        S rÏ   )rv   Úlogr*   )rL   r}   s     re   r,   r,   ÿ  s   € åŒ:�a� A uÑ-Ô-Ñ.Ô.Ð.rf   úaten::arangec                ó~  — d„ }t          |¦  «        dk    rÊt          d„ |D ¦   «         ¦  «        r±t          j        }|                      dt          j        |d         |¬¦  «        ¬¦  «        }|                      dt          j        |d         |¬¦  «        ¬¦  «        }|                      dt          j        d|¬¦  «        ¬¦  «        }|                      d	|||¦  «        S t          |¦  «        dk    st          |¦  «        d
k    rÛt          |¦  «        dk    rd }n ||d         ¦  «        }t          j        | |d         |¬¦  «        \  }}}}|                      dt          j        d|                     ¦   «         ¬¦  «        ¬¦  «        }	|                      dt          j        d|                     ¦   «         ¬¦  «        ¬¦  «        }|                      d	|	||¦  «        S t          |¦  «        dk    st          |¦  «        dk    rot          |¦  «        dk    rd }n ||d         ¦  «        }t          j        | |d         |d         |d         |¬¦  «        \  }
}}}|                      d	|||¦  «        S t          |¦  «        dk    r� ||d         ¦  «        }t          j        | |d         |d         |¬¦  «        \  }}}}|                      dt          j        d|                     ¦   «         ¬¦  «        ¬¦  «        }|                      d	|||¦  «        S t          j	        ddt          |¦  «        › d�¦  «        S )Nc                ó0   — t          j        | d¦  «        } | S )Nr~   )r	   rÜ   rU   s    re   Ú_get_arange_dtypez!arange.<locals>._get_arange_dtype  s   € ÝÔ0°¸Ñ<Ô<ˆØˆrf   rW  c              3  ó@   K  — | ]}t          |t          ¦  «        V — Œd S rÏ   )Ú
isinstancerÌ   )rŽ   Úvals     re   ú	<genexpr>zarange.<locals>.<genexpr>
  s,   è è € ÐCÐC°s�j¨­cÑ2Ô2ÐCÐCÐCÐCÐCÐCrf   rT   r   rU   rW   r‡   ÚRangerÃ   )rP  rV   r¶   é   r¾   )rM  rP  ÚsteprV   r|   )rM  rP  rV   r~  zwith z
 arguments)
rœ   Úallra   r]  r`   rb   r	   Ú_arange_cast_helperrV   r»   )rL   Úargsr�  rV   rM  rP  Údelta_defaultÚtype_rˆ  Ústart_defaultr3  s              re   r   r     sX  € ðð ð õ ˆ4�y„y�A‚~€~�#ÐCÐC¸dÐCÑCÔCÑCÔC€~å”ˆà—’ØÝ”L  a¤°Ð6Ñ6Ô6ð ñ 
ô 
ˆð
 �dŠdØÝ”L  a¤°Ð6Ñ6Ô6ð ñ 
ô 
ˆð
 ŸšØÝ”L ¨%Ð0Ñ0Ô0ð ñ 
ô 
ˆð �tŠt�G˜U C¨Ñ7Ô7Ð7Ý	ˆT‰Œ�aŠˆ�3˜t™9œ9¨š>˜>Ýˆt‰9Œ9˜Š>ˆ>àˆEˆEð &Ð% d¨1¤gÑ.Ô.ˆEÝ"1Ô"EØ�4˜”7 %ð#
ñ #
ô #
Ñˆˆs�E˜4ð ŸšØÝ”L ¨%¯+ª+©-¬-Ð8Ñ8Ô8ð ñ 
ô 
ˆð ŸšØÝ”L ¨%¯+ª+©-¬-Ð8Ñ8Ô8ð ñ 
ô 
ˆð �tŠt�G˜]¨C°Ñ?Ô?Ð?Ý	ˆT‰Œ�aŠˆ�3˜t™9œ9¨š>˜>Ýˆt‰9Œ9˜Š>ˆ>àˆEˆEð &Ð% d¨1¤gÑ.Ô.ˆEÝ-ÔAØ�T˜!”W $ q¤'°°Q´¸uð
ñ 
ô 
Ñˆˆ3��tð �tŠt�G˜U C¨Ñ.Ô.Ð.Ý	ˆT‰Œ�aŠˆà!Ð! $ q¤'Ñ*Ô*ˆÝ"1Ô"EØ�T˜!”W $ q¤'°ð#
ñ #
ô #
Ñˆˆs�E˜4ð ŸšØÝ”L ¨%¯+ª+©-¬-Ð8Ñ8Ô8ð ñ 
ô 
ˆð �tŠt�G˜U C¨Ñ7Ô7Ð7åÔ-ØÐ9¥C¨¡I¤IÐ9Ð9Ð9ñ
ô 
ð 	
rf   zaten::_dim_arangec           
     óÖ   — |                       d|¦  «        }|                       d||                       dt          j        |¦  «        ¬¦  «        d¬¦  «        }t          | |dd d d ¦  «        S )Nr‰   r€   rT   rW   r   r�   r¶   )r`   ra   rb   r   )rL   Úliker„   Ú
like_shapeÚstops        re   Ú_dim_aranger“  L  sm   € ð —’�g˜tÑ$Ô$€JØ�4Š4Ø�*˜aŸdšd :µu´|ÀCÑ7HÔ7H˜dÑIÔIÐRSð ñ ô €Dõ �!�T˜1˜d D¨$Ñ/Ô/Ð/rf   z
aten::size)Úquantize_outputc                ó^   — |€|                       d|¦  «        S t          j        | ||¦  «        S )Nr‰   )r`   r	   Ú_size_helper©rL   rN   r„   s      re   r=   r=   V  s2   € ð €{Ø�tŠt�G˜TÑ"Ô"Ð"ÝÔ'¨¨4°Ñ5Ô5Ð5rf   zaten::squeezec                ó  — |€|                       d|¦  «        S t          j        |¦  «        st          j        | ||g¦  «        S t          j        |dd¦  «        }t          j        |¦  «        }|}|�|dk     r||z  }t          j        ||¦  «        }|dk     r|�|�€|                       dt          j        |g¦  «        ¬¦  «        }t          j	        | ||¦  «        }|                       dt          j
        dt          j        ¬¦  «        ¬¦  «        }|                       d	||¦  «        }	t          j        | d
|	d¬¦  «        \  }
\  }}}t          j        |||g¦  «        }t          j        |j        |¦  «         |                      d|¦  «        }t          j        |j        |¦  «         |
S |}|dk    rEt#          j        dt'          |¦  «        z   dz   dz   t'          |¦  «        z   dz   dz   dz   ¦  «         |S t          j        | ||g¦  «        S )NÚSqueezer~   r„   r   rT   rW   r‡   rU   ÚEqualÚIfrW  )Ún_blocksÚIdentityz5This model contains a squeeze operation on dimension z. The size of z%this dimension in the given input is z. The model will zWbe exported without the squeeze node. If the model is intended to be used with dynamic z7input shapes, please export with dynamic_axes argument.)r`   r	   Ú_is_constantrù   rê   rp   Ú_get_tensor_dim_sizera   rb   r–  Úonesr]  r   Úadd_op_with_blocksr   Ú_add_output_to_blockÚblockÚwarningsÚwarnrË   )rL   rN   r„   Ú
input_rankÚadjusted_dimÚdim_sizeÚdim_constantr=   Ú	const_oneÚcondÚif_opÚ
if_contextÚelse_contextr3  Úsqueeze_Ú	identity_s                   re   rA   rA   ^  s>  € à
€{Ø�tŠt�I˜tÑ$Ô$Ð$õ Ô'¨Ñ,Ô,ð ?ÝÔ.¨q°$¸¸Ñ>Ô>Ð>å
Ô
$ S¨#¨uÑ
5Ô
5€Cå Ô1°$Ñ7Ô7€JØ€LØÐ #¨¢' 'Ø˜
Ñ"ˆÝÔ3°D¸,ÑGÔG€HØˆaŠˆ�JÐ&¨8Ñ+;ð —t’t˜Jµ´¸c¸UÑ0CÔ0C�tÑDÔDˆÝÔ+¨A¨t°\ÑBÔBˆØ—D’D˜­U¬Z¸ÅÄÐ-MÑ-MÔ-M�DÑNÔNˆ	Ø�tŠt�G˜T 9Ñ-Ô-ˆå/8Ô/KØˆt�T Að0
ñ 0
ô 0
Ñ,ˆÑ)�
˜L¨1õ #Ô2°:¸tÀcÀUÑKÔKˆÝÔ" :Ô#3°XÑ>Ô>Ð>Ø —O’O J°Ñ5Ô5ˆ	ÝÔ" <Ô#5°yÑAÔAÐAØˆð €CØ�!‚|€|ÝŒØCÝ�#‰hŒhñàñð 6ñ6õ �(‰mŒmñ	ð
 "ñ"ð hñhð HñHñ		
ô 		
ð 		
ð ˆÝÔ*¨1¨d°S°EÑ:Ô:Ð:rf   zaten::unsqueezec                ó„   — t          j        |¦  «        rt          j        |dd¦  «        }t          j        | ||g¦  «        S )Nr~   r„   )r	   rž  rê   rŒ   r—  s      re   rF   rF   ‘  s@   € åÔ# CÑ(Ô(ð :ÝÔ(¨¨c°5Ñ9Ô9ˆåÔ,¨Q°°s°eÑ<Ô<Ð<rf   zaten::mmc                ó6   — |                       d||dd¬¦  «        S )NÚGemmg        g      ð?)Úbeta_fÚalpha_frƒ   )rL   rN   r	  s      re   r/   r/   ™  s   € à�4Š4�˜˜e¨C¸ˆ4Ñ=Ô=Ð=rf   zaten::indexc                óÈ  — t          j        |¦  «        rt          j        |¦  «        }n|g}t          |¦  «        dk    rŽ|d         }t          j        |¦  «        srt          j        |¦  «        s2t          j                             |¦  «        t          j        j	        k    r,t          j        | |¦  «        }|                      d||¦  «        S t          j        | ||¦  «        S )Nr‡   r   rð   )r	   r™   rš   rœ   rl   rž   r   r]   r^   ÚUINT8rv   rñ   r`   r&   )rL   rN   r&   r4  s       re   r&   r&   ž  sÔ   € åÔ& uÑ-Ô-ð Ý!Ô.¨uÑ5Ô5ˆˆà�'ˆõ ˆ7�|„|�qÒÐØ˜”
ˆÝÔ'¨Ñ.Ô.ð 	1ÝÔ$ UÑ+Ô+ð	1åÔ(×3Ò3°EÑ:Ô:ÝÔ(Ô.ò/ð /õ ”N 1 eÑ,Ô,ˆEØ—4’4˜
 D¨%Ñ0Ô0Ð0ÝŒ<˜˜4 Ñ'Ô'Ð'rf   zaten::index_fillc                óÜ   — t          j        | |||¦  «        \  }}t          j        |¦  «        }t          j        ||¦  «        }t	          j        | ||d ¦  «        }t          | ||||¦  «        S rÏ   )r	   Ú_index_fill_reshape_helperrà   rl  rv   r�   r;   )rL   rN   r„   r&   rn  Úexpanded_index_shapeÚexpanded_indexÚexpanded_values           re   r%   r%   ²  ss   € å+:Ô+UØ	ˆ4��eñ,ô ,Ñ(Ð˜.õ Ô-¨eÑ4Ô4€EÝÔ.¨u°dÑ;Ô;€EÝ”] 1 eÐ-AÀ4ÑHÔH€NÝ�1�d˜C °Ñ@Ô@Ð@rf   zaten::index_copyc                ó\   — t          j        | |||¦  «        \  }}t          | ||||¦  «        S rÏ   )r	   r¹  r;   )rL   rN   r„   r&   rõ   Ú_expanded_index_shaper»  s          re   r'   r'   ½  s;   € å,;Ô,VØ	ˆ4��eñ-ô -Ñ)Ð˜>õ �1�d˜C °Ñ8Ô8Ð8rf   zaten::bitwise_right_shiftzaten::__rshift_c                ó´  — t           j                             |t           j        j        ¦  «        t           j                             |¦  «        k    rG|                      d|t           j                             |¦  «                             ¦   «         ¬¦  «        }t           j                             |t           j        j        ¦  «        t           j        j        k    r|                      d||d¬¦  «        S |                      dt          j        dt          j	        ¬¦  «        ¬	¦  «        }t          j        |¦  «        s'|                      d|t          j        j        ¬¦  «        }|                      d
||¦  «        }|                      d|t           j                             |¦  «                             ¦   «         ¬¦  «        }|                      d||¦  «        }|S )Nri   rj   ÚBitShiftÚRIGHT©Údirection_srT   rW  rU   rW   ÚPowÚDiv©r   r]   r^   ro   r`   rm   r·  ra   rb   Úfloat32r	   r9  r^  r_  r_   )rL   rN   r	  ÚtwoÚtwo_powÚrshifts         re   Ú	__rshift_rË  Å  s–  € õ
 Ô ×+Ò+Ø�{Ô(Ô2ñô å	Ô	"×	-Ò	-¨dÑ	3Ô	3ò4ð 4ð —’ØØÝÔ*×5Ò5°dÑ;Ô;×EÒEÑGÔGð ñ 
ô 
ˆõ 	Ô!×,Ò,¨Tµ;Ô3LÔ3VÑWÔWÝÔ$Ô*ò	+ð 	+ð �tŠt�J  e¸ˆtÑAÔAÐAà
�$Š$ˆz¥5¤<°½¼Ð#GÑ#GÔ#Gˆ$Ñ
HÔ
H€CåÔ! $Ñ'Ô'ð LØ—’�V˜U­Ô)DÔ)J�ÑKÔKˆØ�dŠd�5˜#˜uÑ%Ô%€GØ�dŠdØØÝÔ&×1Ò1°$Ñ7Ô7×AÒAÑCÔCð ñ ô €Gð
 �TŠT�%˜˜wÑ'Ô'€FØ€Mrf   zaten::bitwise_left_shiftzaten::__lshift_c                ó´  — t           j                             |t           j        j        ¦  «        t           j                             |¦  «        k    rG|                      d|t           j                             |¦  «                             ¦   «         ¬¦  «        }t           j                             |t           j        j        ¦  «        t           j        j        k    r|                      d||d¬¦  «        S |                      dt          j        dt          j	        ¬¦  «        ¬	¦  «        }t          j        |¦  «        s'|                      d|t          j        j        ¬¦  «        }|                      d
||¦  «        }|                      d|t           j                             |¦  «                             ¦   «         ¬¦  «        }|                      d||¦  «        }|S )Nri   rj   rÀ  ÚLEFTrÂ  rT   rW  rU   rW   rÄ  r7  rÆ  )rL   rN   r	  rÈ  rÉ  Úlshifts         re   Ú	__lshift_rÏ  ç  s–  € õ
 Ô ×+Ò+Ø�{Ô(Ô2ñô å	Ô	"×	-Ò	-¨dÑ	3Ô	3ò4ð 4ð —’ØØÝÔ*×5Ò5°dÑ;Ô;×EÒEÑGÔGð ñ 
ô 
ˆõ 	Ô!×,Ò,¨Tµ;Ô3LÔ3VÑWÔWÝÔ$Ô*ò	+ð 	+ð �tŠt�J  e¸ˆtÑ@Ô@Ð@à
�$Š$ˆz¥5¤<°½¼Ð#GÑ#GÔ#Gˆ$Ñ
HÔ
H€CåÔ! $Ñ'Ô'ð LØ—’�V˜U­Ô)DÔ)J�ÑKÔKˆØ�dŠd�5˜#˜uÑ%Ô%€GØ�dŠdØØÝÔ&×1Ò1°$Ñ7Ô7×AÒAÑCÔCð ñ ô €Gð
 �TŠT�%˜˜wÑ'Ô'€FØ€Mrf   c                ó<  — |                       d||                       dt          j        |dz  ¦  «        ¬¦  «        ¦  «        }|                       d||                       dt          j        ||dz
  z  ¦  «        ¬¦  «        ¦  «        }|                       d|                       dt          j        d¦  «        ¬¦  «        ||                       dt          j        |¦  «        ¬¦  «        ¦  «        }t          j        d||z  |¦  «        }|                       d|                     d¦  «        ¬¦  «        }t          j        | |dg¦  «        }t          j        | ||                       dt          j        d	dg¦  «        ¬¦  «        ¦  «        }	|                       d||	¦  «        }
|
S )
NrD  rT   rW  rW   rV  r‡   r†  r   r‹   )r`   ra   rb   r   rF   r	   rŒ   r¤   )rL   Úinput_dÚkernel_size_dÚ
dilation_dÚ	padding_dÚstride_dÚblocks_dÚblocks_d_indicesÚkernel_gridÚkernel_maskÚ
block_masks              re   Ú_get_im2col_indices_along_dimrÛ  	  s…  € ð �tŠtØˆw˜Ÿš˜Zµ´¸iÈ!¹mÑ1LÔ1L˜ÑMÔMñô €Hð �tŠtØØØ	�ŠˆZ¥¤¨j¸MÈAÑ<MÑ.NÑ!OÔ!OˆÑPÔPñô €Hð —t’tØØ	�ŠˆZ¥¤¨a¡¤ˆÑ1Ô1ØØ	�ŠˆZ¥¤¨hÑ!7Ô!7ˆÑ8Ô8ñ	ô Ðõ ”,˜q -°*Ñ"<¸jÑIÔI€KØ—$’$�z¨;×+@Ò+@ÀÑ+CÔ+C�$ÑDÔD€Kõ 'Ô8Ø	Ð˜a˜Sñô Ðõ "Ô1Ø	ˆ;˜Ÿš˜Zµ´¸rÀ1¸gÑ1FÔ1F˜ÑGÔGñô €Kð —’�eÐ-¨{Ñ;Ô;€JàÐrf   c           	     ó�   — |                       dt          j        dd||gdz  ¦  «        ¬¦  «        }|                       d||¦  «        S )NrT   r   rW  rW   rj  )r`   ra   rô   )rL   r}   Ú	padding_hÚ	padding_wr2   s        re   Ú_get_im2col_padded_inputrß  4  sI   € ð �$Š$ˆz¥5Ô#3°Q¸¸9ÀiÐ4PÐSTÑ4TÑ#UÔ#Uˆ$Ñ
VÔ
V€CØ�4Š4��u˜cÑ"Ô"Ð"rf   c                ó<  — t          | ||                      dt          j        d¦  «        ¬¦  «        ¦  «        }t          | ||                      dt          j        d¦  «        ¬¦  «        ¦  «        }|                      d||                      dt          j        ||z  ¦  «        ¬¦  «        ¦  «        }|                      dt	          j        | |dg¦  «        t	          j        | |dg¦  «        |                      dt          j        dg¦  «        ¬¦  «        d¬¦  «        S )	NrT   r   rW   r‡   r7  r’   r‹   r�   )r=   r`   ra   rb   r	   rŒ   )rL   r}   Úkernel_hÚkernel_wÚ	batch_dimÚchannel_dimÚchannel_unfoldeds          re   Ú_get_im2col_output_shaperæ  <  sù   € Ý�Q˜˜qŸtšt J½¼ÀQ¹¼˜tÑHÔHÑIÔI€IÝ�q˜% §¢ j½%¼,Àq¹/¼/ Ñ!JÔ!JÑKÔK€KØ—t’tØˆ{˜AŸDšD µU´\À(ÈXÑBUÑ5VÔ5V˜DÑWÔWñô Ðð �4Š4ØÝÔ)¨!¨Y¸¸Ñ<Ô<ÝÔ)¨!Ð-=À¸sÑCÔCØ	�ŠˆZ¥¤¨r¨dÑ!3Ô!3ˆÑ4Ô4Øð ñ ô ð rf   zaten::im2colÚisc           
     ó¾  — t          | ||                      dt          j        d¦  «        ¬¦  «        ¦  «        }t          | ||                      dt          j        d¦  «        ¬¦  «        ¦  «        }|d         |d         }	}|d         |d         }}
|d         |d         }}|d         |d         }}t	          | ||||
|¦  «        }t	          | |||||	¦  «        }t          | |||¦  «        }t          | ||
|¦  «        }|                      d||d¬¦  «        }|                      d||d	¬¦  «        }|                      d
|g d¢¬¦  «        }t          j        | ||¦  «        S )NrT   rW  rW   r¾   r   r‡   r€   r�   r¶   rX  )r   r‡   rW  r¶   r¾   rÃ   rY  )	r=   r`   ra   rb   rÛ  ræ  rß  r	   r¤   )rL   r}   Úkernel_sizeÚdilationrm  ÚstrideÚinput_hÚinput_wÚstride_hÚstride_wrÝ  rÞ  Ú
dilation_hÚ
dilation_wrá  râ  Úblocks_row_indicesÚblocks_col_indicesÚoutput_shapeÚpadded_inputÚoutputs                        re   r$   r$   L  sg  € õ �1�e˜QŸTšT *µe´lÀ1±o´o˜TÑFÔFÑGÔG€GÝ�1�e˜QŸTšT *µe´lÀ1±o´o˜TÑFÔFÑGÔG€Gà œ F¨1¤Iˆh€HØ" 1œ: w¨q¤zˆy€IØ% aœ[¨(°1¬+�
€JØ$ Qœ¨°Q¬ˆh€Hå6Ø	ˆ7�H˜j¨)°Xñô Ðõ 7Ø	ˆ7�H˜j¨)°Xñô Ðõ ,¨A¨u°hÀÑIÔI€LÝ+¨A¨u°iÀÑKÔK€Lð2 �TŠT�(˜LÐ*<ÀQˆTÑGÔG€FØ�TŠT�(˜FÐ$6¸qˆTÑAÔA€FØ�TŠT�+˜vÐ.@Ð.@Ð.@ˆTÑAÔA€FÝÔ*¨1¨f°lÑCÔCÐCrf   zaten::narrowc                ób   — |                       d||¦  «        }t          j        | ||||¬¦  «        S )NrD  r“   )r`   r	   r¡   )rL   r}   r„   rM  ÚlengthrP  s         re   r0   r0   �  s4   € à
�$Š$ˆu�e˜VÑ
$Ô
$€CÝÔ(¨¨E¸ÀEÐPSÐTÑTÔTÐTrf   zaten::flattenc                ór  — t          j        |¦  «        }|dk    r|S |dk    r*|dk    s|�!||dz
  k    r|                      d||¬¦  «        S n2|dk    r,|dk    s|�$||dz
  k    r|                      d||dz   ¬¦  «        S |€t          j        dd	¦  «        S |dk     r||z   }t          j        | ||||¦  «        S )
Nr‡   r‹   ÚFlattenr�   r   éþÿÿÿrW  r„   zfONNX and PyTorch use different strategies to split the input. Input rank must be known at export time.)r	   rp   r`   r»   Ú_flatten_helper)rL   r}   Ú	start_dimÚend_dimr„   s        re   r    r    ‡  sî   € õ Ô
*¨5Ñ
1Ô
1€CØ
ˆa‚x€xØˆà�A‚~€~Ø�bŠ=ˆ=˜S˜_°¸CÀ!¹GÒ1CÐ1CØ—4’4˜	 5°�4Ñ;Ô;Ð;øØ	�aŠˆØ�bŠ=ˆ=˜S˜_°¸CÀ!¹GÒ1CÐ1CØ—4’4˜	 5°¸1±�4Ñ=Ô=Ð=Ø
€{ÝÔ-Øð7ñ
ô 
ð 	
ð �‚{€{Ø˜‘-ˆåÔ*¨1¨e°YÀÈÑMÔMÐMrf   zaten::linalg_vector_normr†   úSequence[int] | NoneÚkeepdimÚboolc                ó4   — t          j        | |||||¦  «        S rÏ   )r	   Ú_linalg_vector_norm_helper)rL   rN   Úordr„   r   rV   s         re   r+   r+   ¢  s    € õ Ô5°a¸¸sÀCÈÐRWÑXÔXÐXrf   zaten::embedding_bagc
                ó<   — t          j        | |||||||||	¦
  «
        S rÏ   )r	   Ú_embedding_bag_helper)
rL   Úembedding_matrixr4  ÚoffsetsÚscale_grad_by_freqrÕ   ÚsparseÚper_sample_weightsÚinclude_last_offsetÚpadding_idxs
             re   r   r   ¯  s7   € õ Ô0Ø	ØØØØØØØØØñô ð rf   zaten::embedding_renormc           
     ó¸  — |                       d|¦  «        }|                       d||¦  «        }t          |¦  «        }|dk    rd}n"|dk    rd}nt          j        d|› d�|¦  «        ‚|                       ||dgd¬	¦  «        }|                       d
||                       dt	          j        d¦  «        ¬¦  «        ¦  «        }	t	          j        |¦  «        }|                       d||	¦  «        }
|                       d||
¦  «        }|                       d|                       d||¦  «        ||¦  «        }|                       d|t          j        | |dg¦  «        |¦  «        S )Nr  r€   r‡   ÚReduceL1rW  ÚReduceL2z8Unsupported: ONNX export of embedding_renorm with norm: z. Only 1. and 2. are supported.)Úaxes_irS  rD  rT   gH¯¼šò×z>rW   rÅ  r7  ÚWhereÚGreaterr˜   )r`   rÌ   r   r¥   ra   rb   r	   rŒ   )rL   Úweightr4  Úmax_normÚ	norm_typeÚunique_indicesÚpartial_weightÚnorm_iÚpartial_weight_normÚpartial_weight_norm_ÚscalesÚpartial_weight_renorms               re   r   r   Ë  s  € ð —T’T˜( GÑ,Ô,€NØ—T’T˜( F¨NÑ;Ô;€NÝ�‰^Œ^€FØ�‚{€{Øˆ	ˆ	Ø	�1ŠˆØˆ	ˆ	åÔ'ð,Àvð ,ð ,ð ,àñ
ô 
ð 	
ð
 Ÿ$š$˜y¨.À!ÀÐQR˜$ÑSÔSÐð Ÿ4š4ØÐ" A§D¢D¨½U¼\È$Ñ=OÔ=O DÑ$PÔ$Pñô Ðõ Œ|˜HÑ%Ô%€HØ�TŠT�%˜Ð#7Ñ8Ô8€FØŸDšD ¨¸Ñ?Ô?ÐØŸDšDØØ	�ŠˆYÐ+¨XÑ6Ô6ØØñ	ô Ðð �4Š4ØØÝÔ)¨!¨^¸a¸SÑAÔAØñ	ô ð rf   zaten::chunkc                ó  — |                       d|                       d|¦  «        |d¬¦  «        }|                       d||                       dt          j        dgt          j        ¬¦  «        ¬	¦  «        ¦  «        }|                       d
|                       d||¦  «        |¦  «        }t	          j        | ||d ¦  «        |                       d||                       d||¦  «        ¦  «        g} | j         dg|¢R ddiŽ}t          | |||¦  «        S )Nr€   r‰   r   r�   rV  rT   r‡   rU   rW   rÅ  rD  r7  r’   r‚   )r`   ra   rb   rG  rv   r�   r@   )rL   rN   Úchunksr„   r¨  Úchunk_size_sÚ
chunk_sizeÚ	chunk_vecs           re   r   r   ò  s  € ð �tŠt�H˜aŸdšd 7¨DÑ1Ô1°3¸qˆtÑAÔA€HØ—4’4Øˆv�q—t’t˜Jµ´¸a¸SÍÌ
Ð0SÑ0SÔ0S�tÑTÔTñô €Lð —’�e˜QŸTšT %¨°<Ñ@Ô@À&ÑIÔI€Jõ 	Œ�a˜ \°4Ñ8Ô8Ø	�ŠˆU�H˜aŸdšd 5¨*°lÑCÔCÑDÔDð€Ið �”�XÐ4 	Ð4Ð4Ð4°!Ð4Ð4€IÝ��D˜) SÑ)Ô)Ð)rf   zaten::normalc	                óÒ   — |�+t          j        |¦  «        st          j        | ||d ¦  «        }t          j        | ||                      d|¦  «        ¦  «        }	t          | |	|¦  «        S )NÚRandomNormalLike)r	   rl   rv   r�   r<  r`   r   )
rL   ÚmeanÚstdÚsizesÚ	generatorrV   ÚlayoutÚdeviceÚ
pin_memoryr´   s
             re   r1   r1     sc   € ð" Ð¥Ô!9¸%Ñ!@Ô!@ÐÝŒ}˜Q  e¨TÑ2Ô2ˆÝŒZ˜˜3 §¢Ð%7¸Ñ >Ô >Ñ?Ô?€FÝˆq�&˜$ÑÔÐrf   zaten::atleast_1dútorch._C.Valuec                ó6  — t          j        |¦  «        r¬t          j        |¦  «        r˜t          j        |¦  «        }g }|D ]q}|}t          j        |¦  «        }|dk    r>t          j        | ||                      dt          j        dg¦  «        ¬¦  «        ¦  «        }| 	                    |¦  «         Œr | j        dg|¢R Ž S t          j        |¦  «        }|dk    r>t          j        | ||                      dt          j        dg¦  «        ¬¦  «        ¦  «        }|S )Nr   rT   r‡   rW   ÚSequenceConstruct)
r	   rá   r™   rš   rp   r¤   r`   ra   rb   r   ©rL   rN   r  Únew_tensor_listrb   Ú
new_tensorÚtensor_ranks          re   r   r     s-  € õ
 Ô  Ñ&Ô&ð ;­?Ô+JÈ4Ñ+PÔ+Pð ;Ý%Ô2°4Ñ8Ô8ˆØˆØ!ð 	/ð 	/ˆFØˆJÝ)Ô:¸6ÑBÔBˆKØ˜aÒÐÝ,Ô<Ø�z 1§4¢4¨
½E¼LÈ!ÈÑ<MÔ<M 4Ñ#NÔ#Nñô �
ð ×"Ò" :Ñ.Ô.Ð.Ð.ØˆqŒtÐ'Ð:¨/Ð:Ð:Ð:Ð:å!Ô2°4Ñ8Ô8€KØ�aÒÐÝÔ.Øˆt�Q—T’T˜*­e¬l¸A¸3Ñ.?Ô.?�TÑ@Ô@ñ
ô 
ˆð €Krf   zaten::atleast_2dc                ó¶  — t          j        |¦  «        rÌt          j        |¦  «        r¸t          j        |¦  «        }g }|D ]‘}|}t          j        |¦  «        }|dk    r@t          j        | ||                      dt          j        ddg¦  «        ¬¦  «        ¦  «        }n|dk    rt          j	        | |dg¬¦  «        }| 
                    |¦  «         Œ’ | j        dg|¢R Ž S t          j        |¦  «        }|dk    r@t          j        | ||                      dt          j        ddg¦  «        ¬¦  «        ¦  «        }n|dk    rt          j	        | |dg¬¦  «        }|S )Nr   rT   r‡   rW   ©r  r.  ©r	   rá   r™   rš   rp   r¤   r`   ra   rb   rŒ   r   r/  s          re   r   r   4  s†  € õ Ô  Ñ&Ô&ð ;­?Ô+JÈ4Ñ+PÔ+Pð ;Ý%Ô2°4Ñ8Ô8ˆØˆØ!ð 	/ð 	/ˆFØˆJÝ)Ô:¸6ÑBÔBˆKØ˜aÒÐÝ,Ô<Ø�z 1§4¢4¨
½E¼LÈ!ÈQÈÑ<PÔ<P 4Ñ#QÔ#Qñô �
�
ð  Ò!Ð!Ý,Ô>Ø�z¨1¨#ðñ ô �
ð ×"Ò" :Ñ.Ô.Ð.Ð.ØˆqŒtÐ'Ð:¨/Ð:Ð:Ð:Ð:å!Ô2°4Ñ8Ô8€KØ�aÒÐÝÔ.Øˆt�Q—T’T˜*­e¬l¸A¸q¸6Ñ.BÔ.B�TÑCÔCñ
ô 
ˆˆð 
˜Ò	Ð	ÝÔ0°°DÀ!ÀÐEÑEÔEˆØ€Krf   zaten::atleast_3dc                ó”  — t          j        |¦  «        �rt          j        |¦  «        rït          j        |¦  «        }g }|D ]È}|}t          j        |¦  «        }|dk    r@t          j        | ||                      dt          j        g d¢¦  «        ¬¦  «        ¦  «        }nU|dk    r1t          j	        | |dg¬¦  «        }t          j	        | |dg¬¦  «        }n|dk    rt          j	        | |dg¬¦  «        }| 
                    |¦  «         ŒÉ | j        d	g|¢R Ž S t          j        |¦  «        }|dk    r@t          j        | ||                      dt          j        g d¢¦  «        ¬¦  «        ¦  «        }nU|dk    r1t          j	        | |dg¬¦  «        }t          j	        | |dg¬¦  «        }n|dk    rt          j	        | |dg¬¦  «        }|S )
Nr   rT   )r‡   r‡   r‡   rW   r‡   r4  r‹   rW  r.  r5  r/  s          re   r   r   U  s  € õ Ô  Ñ&Ô&ñ ;­?Ô+JÈ4Ñ+PÔ+Pð ;Ý%Ô2°4Ñ8Ô8ˆØˆØ!ð 	/ð 	/ˆFØˆJÝ)Ô:¸6ÑBÔBˆKØ˜aÒÐÝ,Ô<Ø�z 1§4¢4¨
½E¼LÈÈÈÑ<SÔ<S 4Ñ#TÔ#Tñô �
�
ð  Ò!Ð!Ý,Ô>Ø�z¨1¨#ðñ ô �
õ -Ô>Ø�z¨2¨$ðñ ô �
�
ð  Ò!Ð!Ý,Ô>Ø�z¨2¨$ðñ ô �
ð ×"Ò" :Ñ.Ô.Ð.Ð.ØˆqŒtÐ'Ð:¨/Ð:Ð:Ð:Ð:å!Ô2°4Ñ8Ô8€KØ�aÒÐÝÔ.Øˆt�Q—T’T˜*­e¬l¸9¸9¸9Ñ.EÔ.E�TÑFÔFñ
ô 
ˆˆð 
˜Ò	Ð	ÝÔ0°°DÀ!ÀÐEÑEÔEˆÝÔ0°°DÀ"ÀÐFÑFÔFˆˆØ	˜Ò	Ð	ÝÔ0°°DÀ"ÀÐFÑFÔFˆØ€Krf   zprim::ConstantChunkc           
     óš  — |                       d|¦  «        }|                       dt          j        |gt          j        ¬¦  «        ¬¦  «        }|                       d||d¬¦  «        }|                       dt          j        dgt          j        ¬¦  «        ¬¦  «        }|                       dt          j        |gt          j        ¬¦  «        ¬¦  «        }|                       dt          j        |dz
  gt          j        ¬¦  «        ¬¦  «        }	|                       d	||	¦  «        }
|                       d
|
|¦  «        }g }t	          |¦  «        D ]€}|                       dt          j        |dz   gt          j        ¬¦  «        ¬¦  «        }|                       d||¦  «        }|                     |                       d||||¦  «        ¦  «         |}Œ�|S )Nr‰   rT   rU   rW   r€   r   r�   r‡   rD  rÅ  r7  rE  )r`   ra   rb   rG  r�   r   )rL   rN   r  r„   Úinput_shaperN  Úinput_shape_dimrM  r!  Úchunk_size_minus_1Úinput_shape_dim_shiftÚ	chunk_dimrO  r~   r&   rP  s                   re   r5   r5   �  s—  € à—$’$�w Ñ%Ô%€KØ�4Š4�
¥E¤L°#°½e¼jÐ$IÑ$IÔ$Iˆ4ÑJÔJ€DØ—d’d˜8 [°$¸q�dÑAÔA€OØ�DŠD�¥U¤\°1°#½U¼ZÐ%HÑ%HÔ%HˆDÑIÔI€EØ—’�j­%¬,¸°xÅuÄzÐ*RÑ*RÔ*R�ÑSÔS€JØŸšØ�EœL¨&°1©*¨½U¼ZÐHÑHÔHð ñ ô Ðð ŸDšD ¨Ð9KÑLÔLÐØ—’�UÐ1°:Ñ>Ô>€IØ
€CÝ�6‰]Œ]ð ð ˆØ—’�Z­¬°q¸1±u°gÅUÄZÐ)PÑ)PÔ)P�ÑQÔQˆØ�dŠd�5˜) UÑ+Ô+ˆØ�
Š
�1—4’4˜  u¨c°4Ñ8Ô8Ñ9Ô9Ð9ØˆˆØ€Jrf   zaten::hstackr  c                ó  — t          | |¦  «        }|                      d||                      dt          j        dt          j        ¬¦  «        ¬¦  «        ¦  «        }|                      d|¦  «        }|                      d|¦  «        }|                      dt          j        dt          j        ¬¦  «        ¬¦  «        }|                      d	||¦  «        }t          j        | d
|dd¬¦  «        \  }\  }}	}
|                     d|dd¬¦  «        }t          j        |j	        |¦  «         |	                     d|dd¬¦  «        }t          j        |	j	        |¦  «         | 
                    ¦   «                              ¦   «         }|S )Nrý   rT   r   rU   rW   r‰   rU  r‡   rš  r›  rW  )rœ  r  r  r  )r   r`   ra   rb   rG  r   r¡  r   r¢  r£  rè   rö  )rL   r  Úfirst_tensorÚfirst_tensor_shapeÚfirst_tensor_dimrª  Úequal_to_oneÚif_op_greaterÚif_context_equalÚelse_context_equalr3  Ú	result_ifÚresult_elser´   s                 re   r#   r#   –  s  € å˜Q Ñ,Ô,€KØ—4’4ØØØ	�ŠˆZ¥¤¨aµu´zÐ!BÑ!BÔ!BˆÑCÔCñô €Lð
 Ÿš˜g |Ñ4Ô4ÐØ—t’t˜FÐ$6Ñ7Ô7Ðà—’�Z­¬°a½u¼zÐ)JÑ)JÔ)J�ÑKÔK€IØ—4’4˜Ð!1°9Ñ=Ô=€Lõ 	Ô$ Q¨¨lÀQÐPQÐRÑRÔRñ	ØÙ.Ð	Ð-Ø	à ×#Ò#Ø˜k°!Àð $ñ ô €Iõ 
ÔÐ/Ô5°yÑAÔAÐAØ$×'Ò'Ø˜k°!Àð (ñ ô €Kõ 
ÔÐ1Ô7¸ÑEÔEÐEØ×ÒÑ!Ô!×(Ò(Ñ*Ô*€Fà€Mrf   zaten::vstackc                óT   — t          | |¦  «        }|                      d|dd¬¦  «        S )Nr  r   r  )r   r`   )rL   r  s     re   rG   rG   ¶  s,   € å˜Q Ñ,Ô,€KØ�4Š4Ð$ k¸!Èˆ4ÑJÔJÐJrf   )rL   rM   rN   rO   rP   rQ   rR   rQ   )rL   rM   )F)rÊ   rË   r„   rÌ   rÍ   rË   rÏ   rC  )r   N)
rL   rM   r}   rO   r2   rO   rÕ   rO   rn  rO   )rL   rM   r„   rÿ  r   r  )NNNNNN)rL   rM   rN   r,  )rL   rM   r  rO   )fÚ__doc__Ú
__future__r   Ú	functoolsr¢   r¤  Útypingr   ra   r   Útorch._Cr   r^  Ú
torch.onnxr   r   r	   r
   ra  r   rv   r   Útorch.onnx._internalr   r   Ú__all__ÚpartialÚonnx_symbolicÚ_onnx_symbolicÚquantized_argsÚ
parse_argsr"   r   r   r   r7   r<   r(   r3   Ú_apply_paramsrÑ   rÙ   r!   r;   r   r.   r-   rû   rþ   r  r   r   r)   r4   r   r   rB   r&  rE   rC   r>   r   r:   r8   r@   r?   rD   rg  r   r6   r9   r2   r*   r,   r   r“  r=   rA   rF   r/   r&   r%   r'   rË  rÏ  rÛ  rß  ræ  r$   r0   r    r+   r   r   r   r1   r   r   r   r5   r#   rG   © rf   re   ú<module>rW     s¬  ðð /Ð .à "Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ø 
€
€
€
Ø €€€Ø Ð Ð Ð Ð Ð à €€€Ø Ð Ð Ð Ð Ð Ø %Ð %Ð %Ð %Ð %Ð %ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð 9Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8Ð 8ð:ð :ð :€ðx #�Ô" <Ô#=ÀRÐHÑHÔH€ð €Ð Ñ!Ô!Ø€Ô Ñ%Ô%Ø€Ô˜C  cÑ*Ô*ðð ð ñ +Ô*ñ &Ô%ñ "Ô!ðð" €�ÑÔð>ð >ð >ñ Ôð>ðD €Ð!Ñ"Ô"Ø€Ô˜C Ñ%Ô%ð

ð 

ð 

ñ &Ô%ñ #Ô"ð

ð €Ð!Ñ"Ô"Ø€Ô˜C Ñ%Ô%ð

ð 

ð 

ñ &Ô%ñ #Ô"ð

ð €�ÑÔð-ð -ð -ñ Ôð-ð €�ÑÔà€Ô Ñ%Ô%Ø€Ô˜C  cÑ*Ô*ð3ð 3ð 3ñ +Ô*ñ &Ô%ñ  Ôð3ð €Ð!Ñ"Ô"àLQðxð xð xð xñ #Ô"ðxðv €Ð%Ñ&Ô&Ø€Ô˜C Ñ%Ô%ðPð Pð Pñ &Ô%ñ 'Ô&ðPð €ØØ+ˆoÔ+Ð,@À!ÀYÑOÔOÐPðñ ô ð €ØØ+ˆoÔ+Ð,@À!ÀYÑOÔOÐPðñ ô ð €ØØ+ˆoÔ+Ð,@À!ÀYÑOÔOÐPðñ ô ð €ØØ+ˆoÔ+Ð,?ÀÀHÑMÔMÐNðñ ô ð €ØØ+ˆoÔ+Ð,AÀ1ÀhÑOÔOÐPðñ ô ð €Ø Ø+ˆoÔ+Ð,BÀAÀxÑPÔPÐQðñ ô ð €ØØ+ˆoÔ+Ð,@À!ÀWÑMÔMÐNðñ ô ðLð Lð Lñ	ô ñ	ô ñ	ô ñ	ô ñ	ô ñ	ô ñ	ô ð8Lð €Ð%Ñ&Ô&Ø€Ô  e¨U°E¸5À%ÈÑOÔOðð ð ñ PÔOñ 'Ô&ðð €�ÑÔØ€Ô˜C  c¨3Ñ/Ô/ð;ð ;ð ;ð ;ñ 0Ô/ñ  Ôð;ð €�Ñ Ô Ø€Ô˜C  c¨3Ñ/Ô/ð
ð 
ð 
ñ 0Ô/ñ !Ô ð
ð& €�ÑÔØ€Ô˜C  fÑ-Ô-ð
ð 
ð 
ð 
ñ .Ô-ñ  Ôð
ð €Ð%Ñ&Ô&ð)ð )ð )ñ 'Ô&ð)ð
 €Ð&Ñ'Ô'ð2ð 2ð 2ñ (Ô'ð2ð  €�ÑÔð9ð 9ð 9ñ Ôð9ð €Ð"Ñ#Ô#ð#ð #ð #ñ $Ô#ð#ð €Ð!Ñ"Ô"ð5ð 5ð 5ñ #Ô"ð5ð
 €�ÑÔð0ð 0ð 0ñ  Ôð0ð €�ÑÔð-ð -ð -ð -ñ Ôð-ð  €�ÑÔð5ð 5ð 5ñ  Ôð5ð €�ÑÔð3ð 3ð 3ñ Ôð3ð €�ÑÔð3ð 3ð 3ñ  Ôð3ð €�ÑÔØ€Ô Ñ%Ô%ðCð Cð Cñ &Ô%ñ ÔðCð €�ÑÔðQð Qð Qñ ÔðQð €Ð Ñ!Ô!Ø€Ô˜C  c¨3Ñ/Ô/ð&ð &ð &ñ 0Ô/ñ "Ô!ð&ð €Ð"Ñ#Ô#Ø€Ô˜C  c¨3°Ñ4Ô4ð&ð &ð &ñ 5Ô4ñ $Ô#ð&ð €�ÑÔØ€Ô˜C  c¨3°°VÑ<Ô<ðð ð ð ñ =Ô<ñ Ôðð €�ÑÔØ€Ô˜C  c¨6Ñ2Ô2ðTð Tð Tð Tñ 3Ô2ñ ÔðTð €�Ñ Ô Ø€Ô˜C  c¨6Ñ2Ô2ðð ð ð ñ 3Ô2ñ !Ô ðð €�ÑÔØ€Ô˜C Ñ%Ô%ð	ð 	ð 	ð 	ñ &Ô%ñ Ôð	ð €Ð!Ñ"Ô"ð/ð /ð /ñ #Ô"ð/ð €�ÑÔØ€Ô˜C  c¨3Ñ/Ô/ð!Ið !Ið !Ið !Iñ 0Ô/ñ Ôð!IðH €Ð(Ñ)Ô)Ø€Ô˜C  c¨3Ñ/Ô/ð6ð 6ð 6ð 6ñ 0Ô/ñ *Ô)ð6ð €�ÑÔØ€Ô˜C  cÑ*Ô*ð
5ð 
5ð 
5ð 
5ñ +Ô*ñ  Ôð
5ð6ð 6ð 6ð 6ðr €Ð'Ñ(Ô(ð7ð 7ð 7ð 7ñ )Ô(ð7ð €Ð(Ñ)Ô)Ø€Ð(Ñ)Ô)Ø€Ð(Ñ)Ô)ð5ð 5ð 5ñ *Ô)ñ *Ô)ñ *Ô)ð5ð €Ð)Ñ*Ô*Ø€Ð)Ñ*Ô*Ø€Ð)Ñ*Ô*ð5ð 5ð 5ñ +Ô*ñ +Ô*ñ +Ô*ð5ð €�ÑÔðTð Tð Tñ ÔðTð( €Ð"Ñ#Ô#ðð ð ñ $Ô#ðð €�ÑÔð/ð /ð /ñ  Ôð/ð €�ÑÔðD
ð D
ð D
ñ  ÔðD
ðN €Ð#Ñ$Ô$Ø€Ô˜C Ñ%Ô%ð0ð 0ð 0ñ &Ô%ñ %Ô$ð0ð €�ÑÔØ€Ô °eÐ<Ñ<Ô<ð6ð 6ð 6ð 6ñ =Ô<ñ Ôð6ð €�Ñ Ô ð/;ð /;ð /;ð /;ñ !Ô ð/;ðd €Ð!Ñ"Ô"ð=ð =ð =ñ #Ô"ð=ð €�
ÑÔð>ð >ð >ñ Ôð>ð €�ÑÔð(ð (ð (ñ Ôð(ð& €Ð"Ñ#Ô#ðAð Að Añ $Ô#ðAð €Ð"Ñ#Ô#ð9ð 9ð 9ñ $Ô#ð9ð €Ð+Ñ,Ô,Ø€Ð!Ñ"Ô"ðð ð ñ #Ô"ñ -Ô,ðð@ €Ð*Ñ+Ô+Ø€Ð!Ñ"Ô"ðð ð ñ #Ô"ñ ,Ô+ðð@(ð (ð (ð (ðV#ð #ð #ð #ðð ð ð ð  €�ÑÔØ€Ô˜C  t¨T°4Ñ8Ô8ð0Dð 0Dð 0Dñ 9Ô8ñ  Ôð0Dðf €�ÑÔðUð Uð Uñ  ÔðUð
 €�Ñ Ô Ø€Ô  e¨UÑ3Ô3Ø€Ô˜C  cÑ*Ô*ðNð Nð Nñ +Ô*ñ 4Ô3ñ !Ô ðNð0 €Ð*Ñ+Ô+Ø€Ô˜C  d¨C°Ñ5Ô5ðYð Yð Yñ 6Ô5ñ ,Ô+ðYð €Ð%Ñ&Ô&Ø€Ô˜C  c¨3°°S¸#¸sÀCÑHÔHðð ð ñ IÔHñ 'Ô&ðð4 €Ð(Ñ)Ô)Ø€Ô˜C  c¨3Ñ/Ô/ð"ð "ð "ñ 0Ô/ñ *Ô)ð"ðJ €�ÑÔð*ð *ð *ñ Ôð*ð  €�ÑÔð
 ØØ
ØØØð ð  ð  ð  ñ  Ôð ð, €Ð"Ñ#Ô#ðð ð ñ $Ô#ðð2 €Ð"Ñ#Ô#ðð ð ñ $Ô#ðð@ €Ð"Ñ#Ô#ð(ð (ð (ñ $Ô#ð(ðV €Ð%Ñ&Ô&ðð ð ñ 'Ô&ðð( €�ÑÔðð ð ñ  Ôðð> €�ÑÔðKð Kð Kñ  ÔðKð Kð Krf   