§
    Ë²Åjn ã            &       ój"  — U d dl Z d dlZd dlZd dlT d dlmZmZ d dlZd dlmc m	Z
 d dlmZ d dlmZ ddlmZ g Zee         ed<   i Zeeef         ed	<   dÀd„Z	 	 	 dÁd„ZdÂd„Zdeddfd„Zdededededdf
d„Zd„ Zd„ Zd„ Z e j        ee¦  «        Z dee!         fd„Z"d„ Z#d„ Z$d„ Z%d„ Z& e ej'        j(        j)        j*        ej'        j(        j+        j*        ej'        j(        j,        j*        ej'        j(        j-        j*        ej'        j(        j.        j*        ej'        j(        j/        j*        ej'        j(        j0        j*        gd¦  «        d „ ¦   «         Z1 e ej'        j2        j3        j*        d¦  «        d!„ ¦   «         Z4 e ej'        j(        j5        j*        gd¦  «        d"„ ¦   «         Z6 e ej'        j(        j7        j*        d¦  «        d#„ ¦   «         Z8  e ej'        j(        j7        j9        d$¦  «        e8¦  «          e ej'        j(        j:        j*        d%¦  «        d&„ ¦   «         Z; e ej'        j(        j<        j*        d'¦  «        d(„ ¦   «         Z= e ej'        j(        j>        j*        d)¦  «        d*„ ¦   «         Z? e ej'        j(        j@        jA        d+¦  «        d,„ ¦   «         ZB e ej'        j(        jC        j*        d¦  «        d-„ ¦   «         ZD e ej'        j(        jE        j*        d.¦  «        d/„ ¦   «         ZF  e ej'        j(        jG        j*        d¦  «        e$¦  «          e ej'        j(        jH        j*        ej'        j(        jI        j*        ej'        j(        jJ        j*        ej'        j(        jK        j*        gd¦  «        d0„ ¦   «         ZL e ej'        j(        jM        j*        d¦  «        d1„ ¦   «         ZN e ej'        j(        jO        j*        d2¦  «        d3„ ¦   «         ZP e ej'        j(        jQ        j*        d4¦  «        d5„ ¦   «         ZR e ej'        j(        jS        j*        d6¦  «        d7„ ¦   «         ZT e ej'        j(        jU        j*        d8¦  «        d9„ ¦   «         ZV e ej'        j(        jW        jX        d:¦  «        d;„ ¦   «         ZY e ej'        j(        jW        j*        d<¦  «        d=„ ¦   «         ZZ e ej'        j(        j[        j\        d>¦  «        d?„ ¦   «         Z] e ej'        j(        j^        j*        d@¦  «        dA„ ¦   «         Z_ e ej'        j(        j`        j*        dB¦  «        dC„ ¦   «         Z` e ej'        j(        ja        j*        dD¦  «        dE„ ¦   «         Zb e ej'        j(        jc        jd        dF¦  «        dG„ ¦   «         Ze e ej'        j(        jf        j,        dH¦  «        dI„ ¦   «         Zg e ej'        j(        jh        j*        dJ¦  «        dK„ ¦   «         Zi e ej'        j(        jj        j*        dL¦  «        dM„ ¦   «         Zk e ej'        j(        jl        j*        dN¦  «        dO„ ¦   «         Zm e ej'        j(        jn        j*        dP¦  «        dQ„ ¦   «         Zo e ej'        j(        jp        j*        dR¦  «        dS„ ¦   «         Zq e ej'        j(        jr        j*        dT¦  «        dU„ ¦   «         Zs e ej'        j(        jt        j*        dV¦  «        dW„ ¦   «         Zt e ej'        j(        ju        j*        dX¦  «        dY„ ¦   «         Zu e ej'        j(        jv        jw        dZ¦  «        d[„ ¦   «         Zx e ej'        j(        jy        j*        d\¦  «        d]„ ¦   «         Zz e ej'        j(        j{        j*        d\¦  «        d^„ ¦   «         Z| e ej'        j(        j}        j*        d_¦  «        d`„ ¦   «         Z~da„ Z e ej'        j(        j€        j*        d<¦  «        db„ ¦   «         Z� e ej'        j(        j€        j‚        dc¦  «        dd„ ¦   «         Zƒ e ej'        j(        j„        jd        de¦  «        df„ ¦   «         Z… e ej'        j(        j†        j*        dg¦  «        dh„ ¦   «         Z‡ e ej'        j(        jˆ        j*        ej'        j(        j‰        j*        gdV¦  «        di„ ¦   «         ZŠ e ej'        j(        j‹        j*        dj¦  «        dk„ ¦   «         ZŒ e ej'        j(        j�        j*        dl¦  «        dm„ ¦   «         ZŽ e ej'        j(        j�        jd        dn¦  «        do„ ¦   «         Z� e ej'        j(        j‘        j\        dp¦  «        dq„ ¦   «         Z’ e ej'        j(        j“        j*        dr¦  «         e ej'        j(        j”        j*        dr¦  «        ds„ ¦   «         ¦   «         Z” e ej'        j(        j•        j*        dt¦  «        du„ ¦   «         Z– e ej'        j(        j—        j,        dc¦  «        dv„ ¦   «         Z˜ e ej'        j(        j—        j*        d<¦  «        dw„ ¦   «         Z™ e ej'        j(        jš        j›        dx¦  «        dy„ ¦   «         Zœ e ej'        j(        jš        j,        dz¦  «        d{„ ¦   «         Z� e ej'        j(        jž        j›        dx¦  «        d|„ ¦   «         ZŸ e ej'        j(        jž        j,        dz¦  «        d}„ ¦   «         Z  e ej'        j(        jž        j*        ej'        j(        jš        j*        ej'        j(        j¡        j*        ej'        j(        j¢        j*        gd¦  «        d~„ ¦   «         Z£ e ej'        j(        j¢        j,        dz¦  «        d„ ¦   «         Z¤ e ej'        j(        j¡        j,        dz¦  «        d€„ ¦   «         Z¥ e ej'        j(        j¦        j*        dx¦  «        d�„ ¦   «         Z§ e ej'        j(        j¨        j*        dx¦  «        d‚„ ¦   «         Z© e ej'        j(        jª        j*        dx¦  «        dƒ„ ¦   «         Z« e ej'        j(        j¬        j*        dx¦  «        d„„ ¦   «         Z­ e ej'        j(        j®        j*        dL¦  «        d…„ ¦   «         Z¯ e ej'        j(        j°        j*        d†¦  «        d‡„ ¦   «         Z± e ej'        j(        j²        j*        dˆ¦  «        d‰„ ¦   «         Z³ e ej'        j(        j´        j*        ej'        j(        jµ        j*        gd¦  «        dŠ„ ¦   «         Z¶ e ej'        j(        jž        j*        d¦  «        d‹„ ¦   «         Z· e ej'        j(        j¸        j*        dŒ¦  «        d�„ ¦   «         Z¹ e ej'        j(        jº        j*        dŽ¦  «        d�„ ¦   «         Z» e ej'        j(        j¼        j*        d�¦  «        d‘„ ¦   «         Z½ e ej'        j(        j¾        j*        d¦  «        d’„ ¦   «         Z¾ e ej'        j(        j¿        j*        d¦  «        d“„ ¦   «         Z¿ e ej'        j(        jÀ        j*        d¦  «        d”„ ¦   «         ZÀ e ej'        j(        jÁ        j*        d¦  «        d•„ ¦   «         ZÁ e ej'        j(        jÂ        j*        d¦  «        d–„ ¦   «         ZÂ e ej'        j(        jÃ        j*        d—¦  «        d˜„ ¦   «         ZÄ e ej'        j(        jÅ        j*        d™¦  «        dš„ ¦   «         ZÆ e ej'        j(        jÇ        j*        d›¦  «        dœ„ ¦   «         ZÈ e ej'        j(        jÉ        j*        ej'        j(        jÊ        j*        ej'        j(        jË        j*        gd�¦  «        dž„ ¦   «         ZÌ e ej'        j(        jÍ        j*        ej'        j(        jÎ        j*        ej'        j(        jÏ        j*        ej'        j(        jÐ        j*        ej'        j(        jÑ        j*        ej'        j(        jÒ        j*        gdŸ¦  «        d „ ¦   «         ZÓ e ej'        j(        jÔ        jÕ        d¡¦  «        d¢„ ¦   «         ZÖd d£l×mØZÙmÚZÛ d d¤lÜmÝZÝ  eÙjÞ        e¦  «        	 	 dÃd¦ej\        d§ej\        d¨ej\        d©e!dªeßd«eàd¬eeef         d­eßd®eßdeßej\        ej\        f         fd¯„¦   «         Zá eÛjÞ        e¦  «        	 	 dÃd¦ej\        d§ej\        d¨ej\        d°ej\        d±ej\        d²ej\        d³ej\        d´eâe!eÝf         dµeÝdªeßd«eàd¬eeef         d­eßd®eßdeßej\        ej\        ej\        eßeej\                 d¶f         f         fd·„¦   «         Zã e ej'        j(        jä        j*        d¸¦  «        d¹„ ¦   «         Zäejå         æ                    dºd»¦  «        5 Z(e( ç                    d¼eäd½¦  «         e( ç                    d¼eäd¾¦  «         e( ç                    d¼eäd¿¦  «         ddd¦  «         dS # 1 swxY w Y   dS )Äé    N)Ú*)ÚListÚOptional)Únormalize_function)Ú#jagged_scaled_dot_product_attentioné   ©ÚNestedTensorÚ__all__ÚJAGGED_OPS_TABLEFc                 óL  ‡ ‡— ddl m} t          |t          t          f¦  «        rU t          |¦  «        ˆ ˆfd„|D ¦   «         ¦  «        } t          |¦  «        t                               |¦  «        ¦  «        S |r |‰ |¦  «        }|dk    r|‰ k     sJ ‚|dk    r‰dz
  n|dz
  S )Nr   ©Úcanonicalize_dimsc              3   ó:   •K  — | ]}t          ‰|‰¦  «        V — Œd S ©N©Ú_outer_to_inner_dim)Ú.0ÚdÚndimÚ
ragged_dims     €€úKC:\Projects\Historical\venv\Lib\site-packages\torch/nested/_internal/ops.pyú	<genexpr>z&_outer_to_inner_dim.<locals>.<genexpr>   s0   øè è € ÐQÐQÈÕ.¨t°Q¸
ÑCÔCÐQÐQÐQÐQÐQÐQó    r   )Útorch._prims_commonr   Ú
isinstanceÚtupleÚlistÚtypeÚdictÚfromkeys)r   Údimr   Úcanonicalizer   Úoutputs   ` `   r   r   r      sÇ   øø€ Ø5Ð5Ð5Ð5Ð5Ð5å�#��t�}Ñ%Ô%ð 3Ø•�c‘”ÐQÐQÐQÐQÐQÈSÐQÑQÔQÑQÔQˆà�t�F‰|Œ|�DŸMšM¨&Ñ1Ô1Ñ2Ô2Ð2àð +ØÐ  cÑ*Ô*ˆà�!Š8ˆ8˜˜dš
˜
˜
Ð"ð ! AšX˜Xˆ:˜‰>ˆ>¨3°©7Ð2r   Tc                 óÔ   — ddl m}  || |¦  «        }||k    r|st          |› d�¦  «        ‚|dk    r|st          |› d�¦  «        ‚|rt          | ||¦  «        n|}	|r
|dk    }
|	|
fS |	S )Nr   r   z0(): not supported for NestedTensor on ragged dimz+(): not supported for NestedTensor on dim=0)r   r   ÚRuntimeErrorr   )r   r"   r   Úop_nameÚconvert_to_inner_dimÚallow_ragged_dimÚallow_batch_dimr   ÚwrappedÚretÚoperating_on_batchs              r   Ú_wrap_jagged_dimr.   '   s¿   € ð 6Ð5Ð5Ð5Ð5Ð5àÐ  cÑ*Ô*€GØ�*ÒÐÐ%5ÐÝ˜gÐWÐWÐWÑXÔXÐXØ	�AŠˆ˜oˆÝ˜gÐRÐRÐRÑSÔSÐSð  ð	Õ˜D '¨:Ñ6Ô6Ð6àð ð
 ð )ð %¨š\ÐØÐ'Ð(Ð(Ø€Jr   c                 óX  ‡ ‡‡	— ddl mŠ	 t          |t          t          f¦  «        sJ dt          |¦  «        › �¦   «         ‚ˆ	ˆ fd„|D ¦   «         }d|v }‰|v }t          ˆfd„|D ¦   «         ¦  «        }t          t                               ˆ ˆfd„|D ¦   «         ¦  «        ¦  «        }||||fS )zŽ
    For NestedTensor operators,
    wraps dimensions to non-negative values,
    and returns metadata related to reduction dimension(s).
    r   r   z<_wrap_jagged_dims(): cannot iterate over dimensions of type c                 ó(   •— g | ]} ‰‰|¦  «        ‘ŒS © r1   )r   r   r   r   s     €€r   ú
<listcomp>z%_wrap_jagged_dims.<locals>.<listcomp>P   s4   ø€ ð ð ð Ø'(ÐÐ˜$ Ñ"Ô"ðð ð r   c              3   ó0   •K  — | ]}|d k    o|‰k    V — ŒdS )r   Nr1   )r   r   Ú
ragged_idxs     €r   r   z$_wrap_jagged_dims.<locals>.<genexpr>V   s0   øè è € ÐPÐP¸a˜q AšvÐ9¨!¨zª/ÐPÐPÐPÐPÐPÐPr   c              3   ó:   •K  — | ]}t          ‰|‰¦  «        V — Œd S r   r   )r   r   r   r4   s     €€r   r   z$_wrap_jagged_dims.<locals>.<genexpr>Z   s0   øè è € ÐUÐUÀ1Õ)¨$°°:Ñ>Ô>ÐUÐUÐUÐUÐUÐUr   )	r   r   r   r   r   r   Úanyr    r!   )
r   Údimsr'   r4   Úwrapped_dimsÚoperate_on_batchÚoperate_on_raggedÚoperate_on_non_batchÚouter_to_inner_dimr   s
   `  `     @r   Ú_wrap_jagged_dimsr=   D   s  øøø€ ð 6Ð5Ð5Ð5Ð5Ð5åØ�u•dˆmñô ð Sð SàRÅdÈ4ÁjÄjÐRÐRñSô Sð ðð ð ð ð Ø,0ðñ ô €Lð ˜LÐ(ÐØ" lÐ2ÐÝÐPÐPÐPÐPÀ<ÐPÑPÔPÑPÔPÐõ Ý�ŠÐUÐUÐUÐUÐUÈÐUÑUÔUÑUÔUñô Ðð Ð/Ð1BÐDXÐXÐXr   Ú
schema_strÚreturnc                 ó¬  ‡— |                       d¦  «        }d„ |D ¦   «                              d¦  «        }t          |¦  «        |z
  }|d         dk    r|d d…         }nqt          |¦  «        |k    r t          |¦  «        t          |¦  «        k    s>t          d|j        › d| › d|› d	t          |¦  «        › d
t          |¦  «        › d�¦  «        ‚d„ d„ d„ d„ dœ}t          |¦  «        D ]é\  }}	|	                      d¦  «        \  }
}|                     d¦  «        }|r
|d d…         n|}||                     ¦   «         vrt          d|› �¦  «        ‚|t          |¦  «        k    r |st          d|j        › d| › d|
› �¦  «        ‚Œ›||         Š|fˆfd„	} |||         ¦  «        s.ddddddœ}t          d|j        › d| › d|
› d||         › �¦  «        ‚Œêd S )Nú, c                 ó8   — g | ]}|                      d ¦  «        ‘ŒS )ú?)Úendswith©r   Úxs     r   r2   z check_schema.<locals>.<listcomp>b   s"   € ÐBÐBÐB¨Q˜Ÿš C™œÐBÐBÐBr   Téÿÿÿÿú...úNestedTensor ú(z): expected at least z arguments and at most z arguments, but got: z
 argumentsc                 ób   — t          | t          j        ¦  «        ot          | t          ¦  «         S r   )r   ÚtorchÚTensorr
   ©rF   s    r   ú<lambda>zcheck_schema.<locals>.<lambda>q   s$   € •z !¥U¤\Ñ2Ô2ÐV½:ÀaÍÑ;VÔ;VÐ7V€ r   c                 óT   — t          | t          ¦  «        o| j        d u o
| j        dk    S ©Nr   )r   r
   Ú_lengthsÚ_ragged_idxrN   s    r   rO   zcheck_schema.<locals>.<lambda>r   s1   € �
 1¥lÑ3Ô3ð ØŒJ˜$ÐðàŒM˜QÒð r   c                 ó,   — t          | t          ¦  «        S r   ©r   r
   rN   s    r   rO   zcheck_schema.<locals>.<lambda>u   s   € �JØ�|ñ
ô 
€ r   c                 ó   — dS )NTr1   rN   s    r   rO   zcheck_schema.<locals>.<lambda>x   s   € ˜€ r   )ÚtÚjtÚjt_allr6   z: rC   zUnknown arg type: z) missing required argument: c                 ó<   •— |r| d u p
 ‰| ¦  «        S  ‰| ¦  «        S r   r1   )rF   Úis_optionalÚ	_check_fns     €r   Úcheck_fnzcheck_schema.<locals>.check_fn‹   s0   ø€ Øð $Ø˜D�yÐ0 I I¨a¡L¤LÐ0à �y ‘|”|Ð#r   Útensorzoptional tensorz%contiguous jagged layout NestedTensorzjagged layout NestedTensorz
<any type>)rW   zt?rX   rY   r6   z): expected z	 to be a )	ÚsplitÚcountÚlenÚ
ValueErrorÚ__name__Ú	enumeraterD   ÚkeysÚAssertionError)r>   ÚfuncÚargsÚkwargsÚnamed_arg_typesÚnum_optional_argsÚmin_argsÚarg_type_check_fnsÚiÚnamed_arg_typeÚnameÚarg_typer[   Únormalized_arg_typer]   Útype_to_descr\   s                   @r   Úcheck_schemart   `   sÚ  ø€ Ø ×&Ò& tÑ,Ô,€OØBÐB°/ÐBÑBÔB×HÒHÈÑNÔNÐÝ�?Ñ#Ô#Ð&7Ñ7€Hð �rÔ˜eÒ#Ð#Ø)¨#¨2¨#Ô.ˆˆå�D‘	”	˜XÒ%Ð%­#¨d©)¬)µs¸?Ñ7KÔ7KÒ*KÐ*KÝð) ¤ð )ð )°
ð )ð )ÐQYð )ð )Ý),¨_Ñ)=Ô)=ð)ð )å�t‘9”9ð)ð )ð )ñô ð ð WÐVðð ð
ð 
ð ˆ~ð	ð 	Ðõ ' Ñ7Ô7ð #ð #Ñˆˆ>Ø'×-Ò-¨dÑ3Ô3‰ˆˆhØ×'Ò'¨Ñ,Ô,ˆØ/:ÐH˜h s¨ sœm˜mÀÐØÐ&8×&=Ò&=Ñ&?Ô&?Ð?Ð?Ý Ð!KÐ6IÐ!KÐ!KÑLÔLÐLà•�D‘	”	Š>ˆ>Øð Ý ð9 D¤Mð 9ð 9°Jð 9ð 9Ø26ð9ð 9ñô ð ð à&Ð':Ô;ˆ	à$/ð 	$ð 	$ð 	$ð 	$ð 	$ð 	$ð ˆx˜˜QœÑ Ô ð 	àØ'Ø=Ø6Ø#ðð ˆLõ ð, ¤ð ,ð ,°
ð ,ð ,Èð ,ð ,Ø Ô)ð,ð ,ñô ð ð	ð/#ð #r   ÚaÚa_nameÚbÚb_namec           	      óŽ   — |j         |j                 |j         |j                 k    rt          d| j        › d|› d|› d�¦  «        ‚d S )NrI   z: expected ú and z' to have the same exact offsets tensor.)Ú_sizerS   r&   rc   )rg   ru   rv   rw   rx   s        r   Úcheck_ragged_dim_samer|       sk   € ð 	„wˆqŒ}Ô ¤¨¬Ô!7Ò7Ð7Ýð)˜DœMð )ð )°fð )ð )À6ð )ð )ð )ñ
ô 
ð 	
ð 8Ð7r   c                 óÖ   — | j         dz   }| j        d |…         }|d |…         }t          |¦  «        t          |¦  «        k    o&t          d„ t	          ||¦  «        D ¦   «         ¦  «        S )Nr   c              3   ó4   K  — | ]\  }}||k    p|d k    V — ŒdS )rG   Nr1   )r   ÚnsÚss      r   r   z%raggedness_matches.<locals>.<genexpr>²   s3   è è € ÐHÐH¡5 2 qˆB�!ŠGÐ�q˜B’wÐHÐHÐHÐHÐHÐHr   )rS   r{   ra   ÚallÚzip)ÚntÚsizeÚendÚ	nt_raggedÚsize_raggeds        r   Úraggedness_matchesrˆ   ­   sn   € Ø
Œ.˜1Ñ
€CØ”˜˜#˜”€IØ�t˜�t”*€KÝˆy‰>Œ>�S Ñ-Ô-Ò-ð ÝÐHÐH­C°	¸;Ñ,GÔ,GÐHÑHÔHÑHÔHðr   c                 óÔ   — |                       ¦   «         dk    rO| j        d         dk    r>|                      d¦  «        } |                       ¦   «         dk    r| j        d         dk    °>| S ©Nr   r   )r"   ÚshapeÚsqueeze)rW   s    r   Úsqueeze_leading_onesr�   ¶   sX   € ð& �%Š%‰'Œ'�AŠ+ˆ+˜!œ' !œ*¨š/˜/Ø�IŠI�a‰LŒLˆð �%Š%‰'Œ'�AŠ+ˆ+˜!œ' !œ*¨š/˜/à€Hr   c                 óz   ‡ ‡‡— t          ‰t          ¦  «        s‰gŠt          ‰ t          ¦  «        s‰ gŠ ˆˆˆ fd„}|S )Nc                 óF   •‡ — ‰D ]}ˆ ˆfd„}‰D ]} ||¦  «        ||<   ŒŒ‰ S )Nc                 ó   •‡ — ˆ ˆˆfd„}|S )Nc                  ó>   •— t          ‰‰g| ¢R i |¤Ž  ‰‰g| ¢R i |¤ŽS r   )rt   )rh   ri   Úaten_oprg   r>   s     €€€r   Úinnerz@register_func.<locals>.wrapper.<locals>.get_inner.<locals>.innerØ   sC   ø€ Ý  ¨TÐC°DÐCÐCÐC¸FÐCÐCÐCØ˜4 Ð9¨$Ð9Ð9Ð9°&Ð9Ð9Ð9r   r1   )r’   r“   rg   r>   s   ` €€r   Ú	get_innerz1register_func.<locals>.wrapper.<locals>.get_inner×   s.   øø€ ð:ð :ð :ð :ð :ð :ð :ð �r   r1   )rg   r’   r”   ÚtableÚaten_opsr>   Útabless   `   €€€r   Úwrapperzregister_func.<locals>.wrapperÔ   sa   øø€ Øð 
	4ð 
	4ˆGðð ð ð ð ð ð  ð 4ð 4�Ø!* ¨7Ñ!3Ô!3��g‘�ð4àˆr   )r   r   )r—   r–   r>   r˜   s   ``` r   Úregister_funcr™   Î   sa   øøø€ Ý�h¥Ñ%Ô%ð Ø�:ˆÝ�f�dÑ#Ô#ð Ø�ˆðð ð ð ð ð ð ð €Nr   c                 óø  — t                                | d ¦  «        }|�|S t          j        j        | j        v �rAddlm} |D ]'} ||¦  «        rt          d| j	        › d|› �¦  «        ‚Œ(t          d„ |D ¦   «         ¦  «        }|dk    rÁg }| j        j        D ]]}t          |j        t          j        ¦  «        r|                     |j        › d�¦  «          n|                     |j        › d�¦  «         Œ^|                     d	¦  «         d
                     |¦  «        }t'          || g|¢R i |¤Ž t)          j        t,          | ¦  «        S |dk    r+t'          d| g|¢R i |¤Ž t)          j        t.          | ¦  «        S d S )Nr   )Úis_nested_intrI   z: invalid argument c              3   óJ   K  — | ]}t          |t          j        ¦  «        V — Œd S r   )r   rL   rM   rE   s     r   r   z lookup_jagged.<locals>.<genexpr>û   s.   è è € ÐHÐH¸a�j¨­E¬LÑ9Ô9ÐHÐHÐHÐHÐHÐHr   r   z: jt_allz: anyrH   rA   é   zlhs: any, rhs: any, ...)r   ÚgetrL   ÚTagÚ	pointwiseÚtagsÚ%torch.fx.experimental.symbolic_shapesr›   r&   rc   ÚsumÚ_schemaÚ	argumentsr   r   Ú
TensorTypeÚappendrp   Újoinrt   Ú	functoolsÚpartialÚjagged_unary_pointwiseÚjagged_binary_pointwise)	rg   rh   ri   Údispatch_funcr›   ÚargÚnum_tensor_argsÚschema_partsÚcheck_schema_strs	            r   Úlookup_jaggedr²   è   sÙ  € Ý$×(Ò(¨¨tÑ4Ô4€MØÐ ØÐõ „yÔ˜dœiÐ'Ñ'ØGÐGÐGÐGÐGÐGð
 ð 	ð 	ˆCØˆ}˜SÑ!Ô!ð Ý"ØK D¤MÐKÐKÀcÐKÐKñô ð ðõ ÐHÐHÀ4ÐHÑHÔHÑHÔHˆØ˜aÒÐð ˆLØ”|Ô-ð <ð <�Ý˜cœh­Ô(8Ñ9Ô9ð <Ø ×'Ò'¨3¬8Ð(=Ð(=Ð(=Ñ>Ô>Ð>Ø�Eà ×'Ò'¨3¬8Ð(:Ð(:Ð(:Ñ;Ô;Ð;Ð;Ø×Ò Ñ&Ô&Ð&Ø#Ÿyšy¨Ñ6Ô6ÐÝÐ)¨4ÐA°$ÐAÐAÐA¸&ÐAÐAÐAÝÔ$Õ%;¸TÑBÔBÐBØ Ò!Ð!ÝÐ2°DÐJ¸4ÐJÐJÐJÀ6ÐJÐJÐJÝÔ$Õ%<¸dÑCÔCÐCàˆ4r   c                 óp   — |                       ¦   «         |                      ¦   «         | j        | j        dœ}|S )N©ÚoffsetsÚlengthsÚ_metadata_cacherS   r´   )r®   ri   s     r   Úextract_kwargsr¸     s6   € à—;’;‘=”=Ø—;’;‘=”=ØÔ.Ø”ð	ð €Fð €Mr   c                 óŽ   ‡— t          d„ |D ¦   «         ¦  «        Št           | ˆfd„|D ¦   «         i |¤Žfi t          ‰¦  «        ¤ŽS )Nc              3   óD   K  — | ]}t          |t          ¦  «        ¯|V — Œd S r   rU   ©r   r®   s     r   r   z)jagged_unary_pointwise.<locals>.<genexpr>  s1   è è € ÐDÐD�s¥j°µlÑ&CÔ&CÐDˆsÐDÐDÐDÐDÐDÐDr   c              3   ó2   •K  — | ]}|‰u r|j         n|V — Œd S r   ©Ú_values)r   r®   Únjts     €r   r   z)jagged_unary_pointwise.<locals>.<genexpr>  s1   øè è € ÐBÐB°c˜c S˜j˜jˆsŒ{ˆ{¨cÐBÐBÐBÐBÐBÐBr   ©Únextr
   r¸   )rg   rh   ri   r¿   s      @r   r«   r«     sm   ø€ å
ÐDÐD˜dÐDÑDÔDÑ
DÔ
D€CÝØˆÐBÐBÐBÐB¸TÐBÑBÔBÐMÀfÐMÐMðð å
˜Ñ
Ô
ðð ð r   c                 óR  ‡‡— |d         |d         }}t          |t          ¦  «        st          |t          ¦  «        sJ ‚d}t          |t          ¦  «        r”t          |t          ¦  «        rt          ||j        ¦  «        r7t           | |j        |j        g|dd …         ¢R i |¤Žfi t          |¦  «        ¤ŽS t          |                     | j        |j        |j        ¦  «        ¦  «        ‚t          |t          ¦  «        }|rt          |¦  «        nt          |¦  «        }|r||fn||f\  Š}| 	                    ¦   «         ‰ 	                    ¦   «         k    rt          d¦  «        ‚t          |¦  «        }	‰ 	                    ¦   «         |	 	                    ¦   «         dz   k    r7|r	‰j        |	fn|	‰j        f\  }
}t           | |
|g|dd …         ¢R i |¤Žfi |¤ŽS | 	                    ¦   «         | 	                    ¦   «         k    rô|j        d         |j        d         k    r3t          |                     | j        |j        |j        ¦  «        ¦  «        ‚ddlm} ‰j        }‰j        }|Š‰j        j        ‰j        dz
           }‰€|Š|                     ˆˆfd„t'          |j        ¦  «        D ¦   «         ¦  «        } ||‰j        ‰j        |||¬¦  «        }|r‰|fn|‰f\  }
} | |
|g|dd …         ¢R i |¤ŽS t          |                     | j        |j        |j        ¦  «        ¦  «        ‚)	Nr   r   zHcannot call binary pointwise function {} with inputs of shapes {} and {}r�   z+NYI: broadcasting NT with T with larger dim©Únested_from_paddedc                 ó4   •— g | ]\  }}|‰j         k    r|n‰‘ŒS r1   ©rS   )r   rn   rF   rƒ   Úpadded_max_Ss      €€r   r2   z+jagged_binary_pointwise.<locals>.<listcomp>^  s-   ø€ ÐWÐWÐW¹D¸A¸q�!�r”~Ò%Ð%ˆQˆQ¨<ÐWÐWÐWr   ©rµ   r4   Úsum_SÚ
min_seqlenÚ
max_seqlen)r   r
   rˆ   r{   r¾   r¸   r&   Úformatrc   r"   ÚNotImplementedErrorr�   r‹   Únested_tensorrÄ   Ú_maybe_min_seqlenÚ_maybe_max_seqlenrS   Úexpandrd   Ú_offsets)rg   rh   ri   ru   rw   Úmismatch_error_msgÚa_is_ntÚextracted_kwargsrW   Ú
t_squeezedÚlhsÚrhsrÄ   rÊ   rË   Útotal_LÚt_as_ntrƒ   rÇ   s                    @@r   r¬   r¬   $  s„  øø€ Ø�Œ7�D˜”G€q€AÝ�a�Ñ&Ô&ÐE­*°Q½Ñ*EÔ*EÐEÐEÐEð 	Sð õ �!•\Ñ"Ô"ð W¥z°!µ\Ñ'BÔ'Bð Wõ ˜a ¤Ñ)Ô)ð 	ÝØ��Q”Y ¤	Ð?¨D°°°¬HÐ?Ð?Ð?¸Ð?Ð?ðð ÝCQÐRSÑCTÔCTðð ð õ Ð-×4Ò4°T´]ÀAÄGÈQÌWÑUÔUÑVÔVÐVå˜�LÑ)Ô)€GØ,3ÐJ•~ aÑ(Ô(Ð(½ÈÑ9JÔ9JÐð Ð)ˆQ�ˆFˆF A q 6�E€Bˆà‡u‚u�w„w�—’‘”ÒÐÝ!Ð"OÑPÔPÐPÝ% aÑ(Ô(€JØ	‡v‚v�x„x�:—>’>Ñ#Ô# aÑ'Ò'Ð'Ø/6ÐT�B”J 
Ð+Ð+¸ZÈÌÐ<T‰ˆˆSÝ˜D˜D  cÐ?¨D°°°¬HÐ?Ð?Ð?¸Ð?Ð?ÐTÐTÐCSÐTÐTÐTð 	‡u‚u�w„w�!—%’%‘'”'ÒÐð Œ7�1Œ:˜œ œÒ#Ð#ÝØ"×)Ò)¨$¬-¸¼À!Ä'ÑJÔJñô ð ð 	6Ð5Ð5Ð5Ð5Ð5ð Ô)ˆ
ØÔ)ˆ
Ø!ˆØ”*Ô" 2¤>°AÑ#5Ô6ˆØÐà"ˆLð �HŠHØWÐWÐWÐWÐWÅIÈaÌgÑDVÔDVÐWÑWÔWñ
ô 
ˆð %Ð$ØØ”KØ”~ØØ!Ø!ð
ñ 
ô 
ˆð %,Ð>�B˜�=�=°'¸2°‰ˆˆSØˆt�C˜Ð2˜t A B BœxÐ2Ð2Ð2¨6Ð2Ð2Ð2õ Ð)×0Ò0°´ÀÄÈÌÑQÔQÑ
RÔ
RÐRr   c                 ón  — | t           j        j        j        u rt	          |i |¤ŽS | j        dk    r' | |d         j        g|dd …         ¢R i |¤Ž |d         S | j        dk    rødd„}t          |||d¬¦  «        \  }}|                     d	¦  «        }t          | 
                    ¦   «         |d
         |j        dd¬¦  «        }t          | 
                    ¦   «         |d         |j        dd¬¦  «        }||k    r|S t          j        t          j        |j        ||dz   …         ¦  «        }	g |j        d |…         ¢|	‘|j        |dz   d …         ¢R }
 |j        |
Ž S | j        dk    rÃdd„}t          |||d¬¦  «        \  }}|                     d	¦  «        }|                     d¦  «        }| 
                    ¦   «         |j        z
  dz
  }t%          |¦  «        |k    rt'          d¦  «        ‚t           j                             ¦   «         5   | |i |¤Žcd d d ¦  «         S # 1 swxY w Y   t+          | ¦  «        ‚)NÚapply_r   r   ÚflattenrG   c                 ó   — d S r   r1   )ÚinputÚ	start_dimÚend_dims      r   Ú_flatten_sigz+jagged_torch_function.<locals>._flatten_sig  ó   € ØˆDr   T©rh   ri   Únormalize_to_only_use_kwargsrß   rà   F)r(   rá   Úrms_normc                 ó   — d S r   r1   )rß   Únormalized_shapeÚweightÚepss       r   Ú_rms_norm_sigz,jagged_torch_function.<locals>._rms_norm_sig£  rã   r   rè   zNrms_norm(): Normalization over the ragged dim not supported for nested tensors)r   rG   )NN)rL   Ú_CÚ_nnÚscaled_dot_product_attentionr   rc   r¾   r   Úpopr.   r"   rS   r©   ÚreduceÚoperatorÚmulr‹   Úreshapera   rb   ÚDisableTorchFunctionSubclassrÍ   )rg   rh   ri   râ   Ú_Ú
new_kwargsÚinprà   rá   ÚproductÚ	new_shaperë   rè   Úmax_normalizables                 r   Újagged_torch_functionrû   r  së  € ð �uŒxŒ|Ô8Ð8Ð8Ý2°DÐC¸FÐCÐCÐCà„}˜Ò Ð ØˆˆT�!ŒWŒ_Ð2˜t A B BœxÐ2Ð2Ð2¨6Ð2Ð2Ð2Ø�AŒwˆð „}˜	Ò!Ð!ð	ð 	ð 	ð 	õ +Ø˜t¨FÐQUð
ñ 
ô 
‰ˆˆ:ð �nŠn˜WÑ%Ô%ˆõ %Ø�GŠG‰IŒIØ�{Ô#ØŒOØØ!&ð
ñ 
ô 
ˆ	õ #Ø�GŠG‰IŒIØ�yÔ!ØŒOØØ!&ð
ñ 
ô 
ˆð ˜ÒÐØˆJåÔ"¥8¤<°´¸9ÀwÐQRÁ{Ð;RÔ1SÑTÔTˆØP�c”i 
  
Ô+ÐP¨WÐP°s´yÀÈ1ÁÀÀÔ7OÐPÐPˆ	àˆsŒ{˜IÐ&Ð&ð „}˜
Ò"Ð"ð	ð 	ð 	ð 	õ +Ø ¨VÐRVð
ñ 
ô 
‰ˆˆ:ð �nŠn˜WÑ%Ô%ˆØ%Ÿ>š>Ð*<Ñ=Ô=Ðð Ÿ7š7™9œ9 s¤Ñ6¸Ñ:ÐÝÐÑ Ô Ð#3Ò3Ð3ÝØ`ñô ð õ ŒX×2Ò2Ñ4Ô4ð 	)ð 	)Ø�4˜Ð( Ð(Ð(ð	)ð 	)ð 	)ð 	)ñ 	)ô 	)ð 	)ð 	)ð 	)ð 	)ð 	)ð 	)øøøð 	)ð 	)ð 	)ð 	)õ ˜dÑ
#Ô
#Ð#s   ÈHÈH!È$H!zself: jt_allc                 óL  — | t           j        j        j        j        k    rdS | t           j        j        j        j        k    r|d         j        S | t           j        j        j        j        k    rt          |d         j        ¦  «        S | t           j        j        j	        j        t           j        j        j
        j        fv r{|d         j        �Ot          t          |d         j        ¦  «        t          j        |d         j        dd …         ¦  «        z  ¦  «        S |d         j         
                    ¦   «         S | t           j        j        j        j        k    r|d         j        S | t           j        j        j        j        k    r|d         j                             ¦   «         S d S )NFr   r�   )rL   ÚopsÚatenÚis_non_overlapping_and_denseÚdefaultÚsym_sizer{   r"   ra   Ú	sym_numelÚnumelrR   Úintr£   ÚmathÚprodr¾   Ú
sym_strideÚ_stridesÚsym_storage_offsetÚstorage_offset©rg   rh   ri   s      r   Útensor_attr_supported_getterr  º  sC  € ð �uŒyŒ~Ô:ÔBÒBÐBØˆuà�uŒyŒ~Ô&Ô.Ò.Ð.Ø�AŒwŒ}Ðà�uŒyŒ~Ô!Ô)Ò)Ð)Ý�4˜”7”=Ñ!Ô!Ð!à•”	”Ô(Ô0µ%´)´.Ô2FÔ2NÐOÐOÐOØ�Œ7ÔÐ'Ý•s˜4 œ7Ô+Ñ,Ô,­t¬y¸¸a¼¼ÀqÀrÀrÔ9JÑ/KÔ/KÑKÑLÔLÐLØ�AŒwŒ×$Ò$Ñ&Ô&Ð&à�uŒyŒ~Ô(Ô0Ò0Ð0Ø�AŒwÔÐà�uŒyŒ~Ô0Ô8Ò8Ð8Ø�AŒwŒ×-Ò-Ñ/Ô/Ð/ð 9Ð8r   c                 ó   — t           j        S r   )rL   Újaggedr  s      r   Úprim_layout_defaultr  Ü  s
   € åŒ<Ðr   c                 ób   — | t           j        j        j        j        k    rt          d¦  «        ‚d S )NznNestedTensor does not support directly calling torch.ops.aten.size; please use `nested_tensor.size()` instead.)rL   rý   rþ   r„   r   r&   r  s      r   Útensor_attr_unsupported_getterr  á  s8   € ð
 �uŒyŒ~Ô"Ô*Ò*Ð*Ýð9ñ
ô 
ð 	
ð +Ð*r   c                 ó"  — ddl m} t          | ||d¬¦  «        \  }}|                     d¦  «        }|                     ¦   «         �dS |                     dt          j        ¦  «        |d<   |d         t          j        k    rdS  ||j	        fi |¤ŽS )Nr   )Úis_contiguous_for_memory_formatTrä   rß   FÚmemory_format)
r   r  r   rï   r¶   rž   rL   Úcontiguous_formatÚpreserve_formatr¾   )rg   rh   ri   r  rõ   rö   r÷   s          r   Úis_contiguous_generalr  í  s²   € àCÐCÐCÐCÐCÐCå&Ø�4 ÀTðñ ô �M€A€zð �.Š.˜Ñ
!Ô
!€Cð ‡{‚{�}„}Ð Øˆuà",§.¢.Ø�Ô0ñ#ô #€JˆÑð �/Ô"¥eÔ&;Ò;Ð;ØˆtØ*Ð*¨3¬;ÐEÐE¸*ÐEÐEÐEr   z!self: jt_all, memory_format: any?z"input: jt_all, memory_format: any?c                 ó`  — t          | ||d¬¦  «        \  }}|                     d¦  «        }t          |¦  «        }|j        �U|d         t          j        k    r?ddlm} |j        dk    s
J d¦   «         ‚ || 	                    ¦   «         d ¬¦  «        \  }}|S t           | |j        fi |¤Žfi |¤ŽS )	NTrä   rß   r  r   )Újagged_from_listz;NJT with ragged_idx != 1 not supported for contiguous clone)rµ   )r   rï   r¸   rR   rL   r  rÎ   r  rS   Úunbindr
   r¾   )	rg   rh   ri   rõ   rö   r÷   Únew_metar  Úcontigs	            r   Úclone_defaultr    sä   € õ 'Ø�4 ÀTðñ ô �M€A€zð �.Š.˜Ñ
!Ô
!€Cå˜cÑ"Ô"€Hà
„|ÐØ�oÔ&­%Ô*AÒAÐAð 8Ð7Ð7Ð7Ð7Ð7ð ” 1Ò$Ð$Ð$ØLñ %Ô$Ð$à(Ð(¨¯ª©¬¸tÐDÑDÔD‰IˆF�AØˆMå˜˜˜Sœ[Ð7Ð7¨JÐ7Ð7ÐDÐD¸8ÐDÐDÐDr   zinput: jt, weight: t, bias: t?c                 ó¤   — t          | ||d¬¦  «        \  }}|                     d¦  «        }t           | |j        fi |¤Žfi t	          |¦  «        ¤ŽS ©NTrä   rß   ©r   rï   r
   r¾   r¸   ©rg   rh   ri   rõ   rö   r÷   s         r   Úlinear_defaultr"  #  óh   € å&Ø�4 ÀTðñ ô �M€A€zð �.Š.˜Ñ
!Ô
!€Cå˜˜˜Sœ[Ð7Ð7¨JÐ7Ð7ÐOÐO½>È#Ñ;NÔ;NÐOÐOÐOr   z6self: jt, grad_output: jt, weight: t, output_mask: anyc                 óº  — t          | ||d¬¦  «        \  }}|                     d¦  «        }|                     d¦  «        }|                     d¦  «        }|                     d¦  «        }d\  }	}
}t          | |d|d¦  «         |d	         r2t          t	          j        |j        |¦  «        fi t          |¦  «        ¤Ž}	|d
         rƒ|j                             d| 	                    d	¦  «        ¦  «        }|j                             d| 	                    d
¦  «        ¦  «        }t	          j        | 
                    ¦   «         |¦  «        }
|d         r|j        }|	|
|fS )NTrä   rß   Úgrad_outputré   Úoutput_mask)NNNÚselfr   r   rG   r�   )r   rï   r|   r
   rL   Úmatmulr¾   r¸   ró   r„   rW   )rg   rh   ri   rõ   rö   r÷   r%  ré   r&  ÚdsÚdwÚdbÚgrad_2dÚinput_2ds                 r   Úlinear_backward_defaultr.  .  sZ  € õ
 'Ø�4 ÀTðñ ô �M€A€zð �.Š.˜Ñ
!Ô
!€CØ—.’. Ñ/Ô/€KØ�^Š^˜HÑ%Ô%€FØ—.’. Ñ/Ô/€Kà!�J€BˆˆBÝ˜$  V¨[¸-ÑHÔHÐHØ�1„~ð 
ÝÝŒL˜Ô,¨fÑ5Ô5ð
ð 
Ý9GÈÑ9TÔ9Tð
ð 
ˆð �1„~ð 1ð Ô%×-Ò-¨b°&·+²+¸a±.´.ÑAÔAˆØ”;×&Ò& r¨6¯;ª;°q©>¬>Ñ:Ô:ˆÝŒ\˜'Ÿ)š)™+œ+ xÑ0Ô0ˆØ�1„~ð !àÔ ˆØ��Bˆ<Ðr   zinput: jt_all, dtype: anyc                 ó¤   — t          | ||d¬¦  «        \  }}|                     d¦  «        }t           | |j        fi |¤Žfi t	          |¦  «        ¤ŽS r  r   r!  s         r   Úto_dtyper0  Q  r#  r   c                 ó^  — ddl m} t          | ||d¬¦  «        \  }}|                     d¦  «        }|                     d¦  «          | |j        fi |¤Ž}|j                             |j        ¬¦  «        }d }	|j        � |j                             |j        ¬¦  «        }	dd	l	m
}
 dd
lm}m} |j        €|j        n|j        }|	€|n|	}t          ||
|f¦  «        r# ||¦  «        } ||¦  «        }|j        |_        n||         ||<   t!          |¦  «        }||d<   |	|d<   t#          |fi |¤Ž}|S )Nr   )Ú_tensor_symint_registryTrä   rß   Úlayout)Údevicer   )Ú
FakeTensor)ÚFunctionalTensorÚmb_unwrap_functional_tensorrµ   r¶   )rÎ   r2  r   rï   r¾   rÒ   Útor4  rR   Útorch._subclasses.fake_tensorr5  Ú#torch._subclasses.functional_tensorr6  r7  r   Únested_int_memor¸   r
   )rg   rh   ri   r2  rõ   rö   r÷   Ú
new_valuesÚnew_offsetsÚnew_lengthsr5  r6  r7  Úragged_sourceÚ	new_thingÚtgtÚsrcÚ
inp_kwargsr$   s                      r   Úto_copy_defaultrD  \  s   € à6Ð6Ð6Ð6Ð6Ð6å&Ø�4 ÀTðñ ô �M€A€zð �.Š.˜Ñ
!Ô
!€Cà‡N‚N�8ÑÔÐà��c”kÐ0Ð0 ZÐ0Ð0€JØ”,—/’/¨Ô):�/Ñ;Ô;€KØ€KØ
„|ÐØ”l—o’o¨ZÔ->�oÑ?Ô?ˆà8Ð8Ð8Ð8Ð8Ð8ðð ð ð ð ð ð ð ð
 %(¤LÐ$8�C”L�L¸c¼l€MØ*Ð2��¸€IÝ�)˜jÐ*:Ð;Ñ<Ô<ð Tà)Ð)¨)Ñ4Ô4ˆØ)Ð)¨-Ñ8Ô8ˆØ!Ô1ˆÔÐà-DÀ]Ô-SÐ 	Ñ*Ý Ñ$Ô$€JØ'€JˆyÑØ'€JˆyÑå˜*Ð3Ð3¨
Ð3Ð3€FØ€Mr   z-self: jt_all, src: jt_all, non_blocking: any?c                 ó  — t          | ||d¬¦  «        \  }}|                     d¦  «        }|                     d¦  «        }|j        |j        k    rt          d¦  «        ‚|j                             |j        ¦  «         |S )NTrä   rß   rB  zXcopy_ only supports Nested Tensors that have same size and the exact same offset tensor.)r   rï   r{   r&   r¾   Úcopy_)rg   rh   ri   rõ   rö   r÷   rB  s          r   Úcopy_defaultrG  …  sŒ   € õ 'Ø�4 ÀTðñ ô �M€A€zð �.Š.˜Ñ
!Ô
!€CØ
�.Š.˜Ñ
Ô
€CØ
„y�C”IÒÐÝØfñ
ô 
ð 	
ð „K×Ò�c”kÑ"Ô"Ð"Ø€Jr   c                 óÂ   — t          | ||d¬¦  «        \  }}|                     d¦  «        }t          j        |d<   t	           | |j        fi |¤Žfi t          |¦  «        ¤ŽS )NTrä   rß   r3  )r   rï   rL   Ústridedr
   r¾   r¸   r!  s         r   Úlike_factory_defaultrJ  Ÿ  sx   € õ 'Ø�4 ÀTðñ ô �M€A€zð �.Š.˜Ñ
!Ô
!€Cõ
 !œ=€JˆxÑå˜˜˜Sœ[Ð7Ð7¨JÐ7Ð7ÐOÐO½>È#Ñ;NÔ;NÐOÐOÐOr   c                 ó|   — t          | ||d¬¦  «        \  }}|                     d¦  «        } | |j        ¦  «         |S r  ©r   rï   r¾   r!  s         r   Úzero__defaultrM  ·  sM   € å&Ø�4 ÀTðñ ô �M€A€zð �.Š.˜Ñ
!Ô
!€CØ€DˆŒÑÔÐØ€Jr   z*self: jt_all, dim: any, half_to_float: anyc           
      ó(  — t          | ||d¬¦  «        \  }}t          |d         t          ¦  «        rt          d¦  «        ‚|                     d¦  «        }t          |                     ¦   «         |d         fd|j        ¦  «        \  |d<   }}}|rt          d¦  «        ‚|r|j        dk    rt          d	¦  «        ‚|r|j        �t          d
¦  «        ‚|d         d         |d<   |�rt          j
        j                             t          j        j                             |j                             |j        j        d         d¦  «        |j        g|j        gt+          d¦  «        ¬¦  «        |j        ¬¦  «        }	t          j        j                             |	|j        g|j        j        d         ¬¦  «        j        dg|j        j        dd …         ¢R Ž }
t/          |
fi t1          |¦  «        ¤ŽS t/           | |j        fi |¤Žfi t1          |¦  «        ¤ŽS )NTrä   r"   zHsoftmax(): not supported for dimensions of type 'tuple' for NestedTensorrß   ÚsoftmaxzRsoftmax(): not supported when reducing across the batch dimension for NestedTensorr   zesoftmax(): not supported when reducing along the ragged dimension for ragged_idx > 1 for NestedTensorzksoftmax(): not supported where lengths is not None if reducing across the ragged dimension for NestedTensorr   rG   z-inf)Úmax_lengthsÚpadding_value©r"   ©rÙ   )r   r   r   r&   rï   r=   r"   rS   rR   rL   ÚnnÚ
functionalrO  rý   rþ   Ú_jagged_to_padded_dense_forwardr¾   ró   r‹   rÒ   Ú_max_seqlenÚfloatÚ_padded_dense_to_jagged_forwardr
   r¸   )rg   rh   ri   rõ   rö   r÷   Úreduce_on_batchÚreduce_on_raggedÚ_reduce_on_non_batchÚpadded_softmax_valuesÚsoftmax_valuess              r   Ú_softmax_defaultr_  Â  s}  € õ 'Ø�4 ÀTðñ ô �M€A€zõ �*˜UÔ#¥UÑ+Ô+ð 
ÝØVñ
ô 
ð 	
ð �.Š.˜Ñ
!Ô
!€Cõ 	Ø�Š‰	Œ	Ø	�EÔ	ÐØØŒñ		ô 	ñØ�5ÑØØØð ð 
ÝØ`ñ
ô 
ð 	
ð ð 
˜CœO¨aÒ/Ð/ÝØsñ
ô 
ð 	
ð ð 
˜CœLÐ4ÝðIñ
ô 
ð 	
ð
 # 5Ô)Ø	ô€JˆuÑð ñ CÝ %¤Ô 3× ;Ò ;ÝŒIŒN×:Ò:Ø”×#Ò#Ø”KÔ% aÔ(¨"ñô ð ”�Ø œ_Ð-Ý# F™mœmð ;ñ ô ð ”ð !<ñ 
!
ô 
!
Ðõ œœ×GÒGØ!ØŒ\ˆNØ”KÔ%Øôð Hñ 
ô 
ô Øð
ð ”Ô" 1 2 2Ô&ð
ð 
ð 
ˆõ ˜NÐBÐB­n¸SÑ.AÔ.AÐBÐBÐBå˜˜˜Sœ[Ð7Ð7¨JÐ7Ð7ÐOÐO½>È#Ñ;NÔ;NÐOÐOÐOr   z7grad_output: jt, output: jt, dim: any, input_dtype: anyc                 óÚ   — t          | ||d¬¦  «        \  }}|                     d¦  «        }|                     d¦  «        }t           | |j        |j        fi |¤Žfi t	          |¦  «        ¤ŽS )NTrä   r%  r$   r   )rg   rh   ri   rõ   rö   Úgrad_outr$   s          r   Ú_softmax_backwardrb    sŒ   € õ
 'Ø�4 ÀTðñ ô �M€A€zð �~Š~˜mÑ,Ô,€HØ�^Š^˜HÑ%Ô%€FÝØˆˆXÔ˜vœ~Ð<Ð<°Ð<Ð<ðð Ý@NÈxÑ@XÔ@Xðð ð r   z!self: jt, float: any, train: any?c                 óâ   — t          | ||d¬¦  «        \  }}|                     d¦  «        } | |j        fi |¤Ž\  }}t          |fi t	          |¦  «        ¤Žt          |fi t	          |¦  «        ¤ŽfS r  ©r   rï   r¾   r
   r¸   )rg   rh   ri   rõ   rö   r÷   Úout1Úout2s           r   Únative_dropout_defaultrg    s•   € õ 'Ø�4 ÀTðñ ô �M€A€zð �.Š.˜Ñ
!Ô
!€CØ��c”kÐ0Ð0 ZÐ0Ð0�J€Dˆ$å�TÐ1Ð1�^¨CÑ0Ô0Ð1Ð1Ý�TÐ1Ð1�^¨CÑ0Ô0Ð1Ð1ðð r   z%grad_output: jt, mask: jt, scale: anyc                 óÚ   — t          | ||d¬¦  «        \  }}|                     d¦  «        }|                     d¦  «        }t           | |j        |j        fi |¤Žfi t	          |¦  «        ¤ŽS )NTrä   r%  Úmaskr   )rg   rh   ri   rõ   rö   r%  ri  s          r   Únative_dropout_backward_defaultrj  ,  sŒ   € õ
 'Ø�4 ÀTðñ ô �M€A€zð —.’. Ñ/Ô/€KØ�>Š>˜&Ñ!Ô!€DÝØˆˆ[Ô  $¤,Ð=Ð=°*Ð=Ð=ðð å
˜Ñ
%Ô
%ðð ð r   z2self: jt_all, dim: any, keepdim: any?, dtype: any?c                 ó&   — t          | ddg|¢R i |¤ŽS )Nr  r   ©Ú_apply_reductionr  s      r   Úprod_dim_intrn  <  s&   € õ
 ˜D &¨!Ð=¨dÐ=Ð=Ð=°fÐ=Ð=Ð=r   zself: jt_all, dtype: any?c                 ót   — t          | ||d¬¦  «        \  }}|                     d¦  «        } | |j        fi |¤ŽS r  rL  r!  s         r   Úprod_defaultrp  D  óP   € å&Ø�4 ÀTðñ ô �M€A€zð �.Š.˜Ñ
!Ô
!€Càˆ4�”Ð*Ð*˜zÐ*Ð*Ð*r   z$self: jt, split_size: any, dim: any?c                 ó  ‡— t          | ||d¬¦  «        \  }}|                     d¦  «        Št          ‰                     ¦   «         |d         ‰j        d¦  «        |d<   t          ˆfd„ | ‰j        fi |¤ŽD ¦   «         ¦  «        S )NTrä   rß   r"   r_   c              3   óN   •K  — | ]}t          dd |it          ‰¦  «        ¤ŽV — Œ dS )ÚvaluesNr1   ©r
   r¸   ©r   rF   r÷   s     €r   r   zsplit_tensor.<locals>.<genexpr>]  sR   øè è € ð ð àõ 	Ð5Ð5˜AÐ5¥°Ñ!4Ô!4Ð5Ð5ðð ð ð ð ð r   )r   rï   r.   r"   rS   r   r¾   r!  s        @r   Úsplit_tensorrw  O  s³   ø€ õ 'Ø�4 ÀTðñ ô �M€A€zð �.Š.˜Ñ
!Ô
!€Cå(Ø�Š‰	Œ	�:˜eÔ$ c¤o°wñô €JˆuÑõ ð ð ð ð à��c”kÐ0Ð0 ZÐ0Ð0ðñ ô ñ ô ð r   z%self: jt, split_sizes: any, dim: any?c                 óò   ‡— t          | ||d¬¦  «        \  }}|                     d¦  «        Št          ‰                     ¦   «         |d         ‰j        d¦  «        |d<   ˆfd„ | ‰j        fi |¤ŽD ¦   «         S )NTrä   rß   r"   Úsplit_with_sizesc           	      óF   •— g | ]}t          dd |it          ‰¦  «        ¤Ž‘ŒS ©rt  r1   ru  rv  s     €r   r2   z,split_with_sizes_default.<locals>.<listcomp>q  sD   ø€ ð ð ð àõ 	Ð5Ð5˜AÐ5¥°Ñ!4Ô!4Ð5Ð5ðð ð r   )r   rï   r.   r"   rS   r¾   r!  s        @r   Úsplit_with_sizes_defaultr|  c  s¥   ø€ õ 'Ø�4 ÀTðñ ô �M€A€zð �.Š.˜Ñ
!Ô
!€Cå(Ø�Š‰	Œ	�:˜eÔ$ c¤oÐ7Iñô €JˆuÑðð ð ð à��c”kÐ0Ð0 ZÐ0Ð0ðñ ô ð r   z+self: jt, dim: any, start: any, length: anyc                 ó*  — t          | ||d¬¦  «        \  }}|                     d¦  «        }t          |                     ¦   «         |d         |j        d¦  «        } | |j        ||d         |d         ¬¦  «        }t          |fi t          |¦  «        ¤ŽS )	NTrä   rß   r"   ÚnarrowÚstartÚlength©r"   r  r€  )r   rï   r.   r"   rS   r¾   r
   r¸   )rg   rh   ri   rõ   rö   r÷   r"   rt  s           r   r~  r~  w  s¨   € õ 'Ø�4 ÀTðñ ô �M€A€zð �.Š.˜Ñ
!Ô
!€Cå
˜3Ÿ7š7™9œ9 j°Ô&7¸¼È(Ñ
SÔ
S€CØˆTØŒØØ˜Ô!Ø˜(Ô#ð	ñ ô €Fõ ˜Ð6Ð6¥.°Ñ"5Ô"5Ð6Ð6Ð6r   z self: jt, chunks: any, dim: any?c                 ó¤  ‡‡‡— t          | ||d¬¦  «        \  }}|                     d¦  «        Št          ‰                     ¦   «         |d         ‰j        dd¬¦  «        \  |d<   }|rÐ|d         }‰j        d         }t          j        ||z  ¦  «        }‰j         	                    ¦   «         }	|	 
                    |¦  «        }
d	„ |
D ¦   «         }d
„ |D ¦   «         }ˆfd„|D ¦   «         Šd„ |
D ¦   «         }‰j                             |¦  «        Šˆˆfd„t          dt          ‰¦  «        ¦  «        D ¦   «         S ˆfd„ | ‰j        fi |¤ŽD ¦   «         S )NTrä   rß   r"   Úchunk©r*   Úchunksr   c                 ó:   — g | ]}t          j        |d ¬¦  «        ‘ŒS )r   rR  )rL   ÚcumsumrE   s     r   r2   z!chunk_default.<locals>.<listcomp>ž  s'   € ÐKÐKÐK°a�5œ<¨¨qÐ1Ñ1Ô1ÐKÐKÐKr   c                 ó<   — g | ]}t          j        |d d¬¦  «        ‘ŒS )©r   r   r   )Úvalue)ÚFÚpadrE   s     r   r2   z!chunk_default.<locals>.<listcomp>Ÿ  s)   € ÐNÐNÐN¸�1œ5  F°!Ð4Ñ4Ô4ÐNÐNÐNr   c                 ó$   •— g | ]}|‰j         d œ‘ŒS ))rµ   rS   rÆ   )r   Úper_offsetsr÷   s     €r   r2   z!chunk_default.<locals>.<listcomp>   s3   ø€ ð 
ð 
ð 
àð $°C´OÐDÐDð
ð 
ð 
r   c                 óZ   — g | ](}|                      ¦   «                              ¦   «         ‘Œ)S r1   )r£   ÚitemrE   s     r   r2   z!chunk_default.<locals>.<listcomp>¦  s(   € Ð?Ð?Ð?¨!�q—u’u‘w”w—|’|‘~”~Ð?Ð?Ð?r   c                 óD   •— g | ]}t          dd ‰|         i‰|         ¤Ž‘ŒS r{  r	   )r   rn   Úchunk_valuesÚnested_kwargss     €€r   r2   z!chunk_default.<locals>.<listcomp>«  sE   ø€ ð 
ð 
ð 
àõ ÐFÐF ¨Q¤ÐF°MÀ!Ô4DÐFÐFð
ð 
ð 
r   c           	      óF   •— g | ]}t          dd |it          ‰¦  «        ¤Ž‘ŒS r{  ru  rv  s     €r   r2   z!chunk_default.<locals>.<listcomp>°  sD   ø€ ð 
ð 
ð 
àõ Ð9Ð9 Ð9¥^°CÑ%8Ô%8Ð9Ð9ð
ð 
ð 
r   )r   rï   r.   r"   rS   r{   r  ÚceilrÒ   Údiffrƒ  r¾   r_   Úrangera   )rg   rh   ri   rõ   rö   r-   r…  Ú	dim0_sizeÚ
chunk_sizer¶   Úchunked_lengthsÚchunked_offsetsÚsplit_sizesr’  r÷   r“  s                @@@r   Úchunk_defaultr�  Š  sÆ  øøø€ å&Ø�4 ÀTðñ ô �M€A€zð �.Š.˜Ñ
!Ô
!€Cå,<Ø�Š‰	Œ	�:˜eÔ$ c¤o°wÐPTð-ñ -ô -Ñ)€JˆuÑÐ)ð ð 
Ø˜HÔ%ˆØ”I˜a”Lˆ	Ý”Y˜y¨6Ñ1Ñ2Ô2ˆ
ð ”,×#Ò#Ñ%Ô%ˆØ!Ÿ-š-¨Ñ/Ô/ˆØKÐK¸?ÐKÑKÔKˆØNÐN¸oÐNÑNÔNˆð
ð 
ð 
ð 
à.ð
ñ 
ô 
ˆð @Ð?¨Ð?Ñ?Ô?ˆØ”{×(Ò(¨Ñ5Ô5ˆð
ð 
ð 
ð 
ð 
å˜1�c ,Ñ/Ô/Ñ0Ô0ð
ñ 
ô 
ð 	
ð

ð 
ð 
ð 
à�T˜#œ+Ð4Ð4¨Ð4Ð4ð
ñ 
ô 
ð 	
r   zself: jt_all, dim: any?c                 ó  ‡
‡‡‡— t          | ||d¬¦  «        \  }}|d         }|dk    rt          d¦  «        ‚|                     d¦  «        }|                     ¦   «         Š|                     ¦   «         }|                     ¦   «         }|j        Šddt          t                   dt          t          t                            fˆˆfd	„}	|€K| 
                    ¦   «                              ¦   «         Š
 |	‰
¦  «         t          j        ‰‰
‰d
z
  ¬¦  «        S ‰dk    rt          d¦  «        ‚|                     ¦   «         Š
|                     ¦   «         Š |	‰
‰¦  «         ˆ
ˆˆˆfd„t          |j        d         ¦  «        D ¦   «         S )NTrä   r"   r   z2unbind(): only supported for NestedTensor on dim=0rß   rR   rÒ   c                 ó,  •— d}‰j         ‰dz
           }t          t          | ¦  «        ¦  «        D ]p}t          j        | |         ¦  «         t          j        | |         |k    ¦  «         || |         z  }|�)t          j        ||         | |         z   |k    d„ ¦  «         Œqt          j        ||k    ¦  «         |�Wt          t          |¦  «        ¦  «        D ]<}t          j        ||         ¦  «         t          j        ||         |k    ¦  «         Œ;d S d S )Nr   r   c                  ó   — dS )NzMunbind(): nested tensor offsets and lengths do not match ragged_idx dimensionr1   r1   r   r   rO   z2unbind_int.<locals>._torch_check.<locals>.<lambda>Û  s   € Ðk€ r   )r‹   r—  ra   rL   Ú_check_is_sizeÚ_check)rR   rÒ   Úlengths_sumÚragged_dim_sizern   r4   rt  s        €€r   Ú_torch_checkz unbind_int.<locals>._torch_checkÇ  s&  ø€ ð ˆØ œ, z°A¡~Ô6ˆÝ•s˜8‘}”}Ñ%Ô%ð 		ð 		ˆAÝÔ  ¨!¤Ñ-Ô-Ð-ÝŒL˜ !œ¨Ò7Ñ8Ô8Ð8à˜8 Aœ;Ñ&ˆKØÐ#Ý”Ø˜Q”K (¨1¤+Ñ-°Ò@ØkÐkñô ð øõ 	Œ�[ OÒ3Ñ4Ô4Ð4àÐÝ�3˜x™=œ=Ñ)Ô)ð =ð =�ÝÔ$ X¨a¤[Ñ1Ô1Ð1Ý”˜X aœ[¨OÒ;Ñ<Ô<Ð<Ð<ð  Ðð=ð =r   r   rR  zAunbind(): nested tensor ragged_idx out of bounds (should be >= 1)c           	      ó^   •— g | ])}t          j        ‰‰d z
  ‰|         ‰|         ¬¦  «        ‘Œ*S )r   r�  )rL   r~  )r   rn   Úlengths_scalarsÚoffsets_scalarsr4   rt  s     €€€€r   r2   zunbind_int.<locals>.<listcomp>ô  sV   ø€ ð ð ð ð õ 	ŒØØ˜a‘Ø! !Ô$Ø" 1Ô%ð		
ñ 	
ô 	
ðð ð r   r   )r   r&   rï   rt  rµ   r¶   rS   r   r  r   r–  ÚtolistrL   r_   r—  r‹   )rg   rh   ri   rõ   rö   r"   r÷   rµ   r¶   r¥  r§  r¨  r4   rt  s             @@@@r   Ú
unbind_intrª  ¶  sµ  øøøø€ õ 'Ø�4 ÀTðñ ô �M€A€zð �UÔ
€CØ
ˆa‚x€xÝÐOÑPÔPÐPà
�.Š.˜Ñ
!Ô
!€CØ�ZŠZ‰\Œ\€FØ�kŠk‰mŒm€GØ�kŠk‰mŒm€GØ”€Jð=ð =�t¥Cœyð =µH½TÅ#¼YÔ4Gð =ð =ð =ð =ð =ð =ð =ð: €Ø!Ÿ,š,™.œ.×/Ò/Ñ1Ô1ˆØˆ�_Ñ%Ô%Ð%åŒ{˜6 ?¸Àa¹ÐIÑIÔIÐIà�Q‚€ÝØOñ
ô 
ð 	
ð —n’nÑ&Ô&€OØ—n’nÑ&Ô&€Oà€L� /Ñ2Ô2Ð2ðð ð ð ð ð ð õ �w”} QÔ'Ñ(Ô(ðñ ô ð r   zself: jt, dim: anyc                 ó  — t          | ||d¬¦  «        \  }}|                     d¦  «        }|j        }t          t	          |j        ¦  «        |d         |j        d¦  «        |d<   t           | |fi |¤Žfi t          |¦  «        ¤ŽS )NTrä   rß   r"   rŒ   )	r   rï   r¾   r.   ra   r{   rS   r
   r¸   )rg   rh   ri   rõ   rö   r÷   rt  s          r   Úsqueeze_dimr¬  ÿ  s›   € å&Ø�4 ÀTðñ ô �M€A€zð �.Š.˜Ñ
!Ô
!€CØŒ[€Få(ÝˆCŒI‰Œ˜
 5Ô)¨3¬?¸Iñô €JˆuÑõ ˜˜˜VÐ2Ð2 zÐ2Ð2ÐJÐJµnÀSÑ6IÔ6IÐJÐJÐJr   zself: jt_all, dim: anyc                 óf  — t          | ||d¬¦  «        \  }}|                     d¦  «        }|j        }|d         }t          t	          |j        ¦  «        dz   ||j        dd¬¦  «        |d<   t          |¦  «        }|d         |j        dz
  k    r|dxx         dz  cc<   t           | |fi |¤Žfi |¤ŽS )	NTrä   rß   r"   r   Ú	unsqueeze)r)   rS   )	r   rï   r¾   r.   ra   r{   rS   r¸   r
   )	rg   rh   ri   rõ   rö   r÷   rt  r"   Úoutput_kwargss	            r   Úunsqueeze_defaultr°    sç   € å&Ø�4 ÀTðñ ô �M€A€zð �.Š.˜Ñ
!Ô
!€CØŒ[€Fð �UÔ
€CÝ(ÝˆCŒI‰Œ˜Ñ˜C ¤°+ÐPTðñ ô €JˆuÑõ
 # 3Ñ'Ô'€MØ�%Ô˜CœO¨aÑ/Ò/Ð/Ø�mÐ$Ð$Ô$¨Ñ)Ð$Ð$Ñ$å˜˜˜VÐ2Ð2 zÐ2Ð2ÐDÐD°mÐDÐDÐDr   ztensors: any, dim: anyc                 ó’  ‡— t          | ||d¬¦  «        \  }}|                     d¦  «        }d„ |D ¦   «         }t          |¦  «        dk    sJ ‚|d         Šˆfd„|D ¦   «         }|d         }t          t          ‰j        ¦  «        |‰j        d¦  «        |d<   t           | d	„ |D ¦   «         fi |¤Žfi t          |d         ¦  «        ¤ŽS )
NTrä   Útensorsc                 ó    — g | ]}|j         ¯	|‘ŒS r1   )Ú	is_nested©r   rW   s     r   r2   zcat_default.<locals>.<listcomp>.  s   € Ð0Ð0Ð0�A A¤KÐ0ˆaÐ0Ð0Ð0r   r   c                 óL   •— g | ] }|j         r|n|                     ‰¦  «        ‘Œ!S r1   )r´  Ú	expand_as)r   rW   Úfirsts     €r   r2   zcat_default.<locals>.<listcomp>1  s0   ø€ ÐIÐIÐI¸A�A”KÐ7ˆqˆq Q§[¢[°Ñ%7Ô%7ÐIÐIÐIr   r"   Úcatc                 ó   — g | ]	}|j         ‘Œ
S r1   r½   rµ  s     r   r2   zcat_default.<locals>.<listcomp>:  ó   € Ð)Ð)Ð)˜AˆaŒiÐ)Ð)Ð)r   )r   rï   ra   r.   r‹   rS   r
   r¸   )	rg   rh   ri   rõ   rö   r²  Únestedr"   r¸  s	           @r   Úcat_defaultr½  %  s	  ø€ å&Ø�4 ÀTðñ ô �M€A€zð �nŠn˜YÑ'Ô'€Gð 1Ð0˜Ð0Ñ0Ô0€FÝˆv‰;Œ;˜Š?ˆ?ˆ?ˆ?Ø�1ŒI€EØIÐIÐIÐIÀÐIÑIÔI€Gð �UÔ
€CÝ(ÝˆEŒKÑÔ˜#˜uÔ0°%ñô €JˆuÑõ ØˆÐ)Ð) Ð)Ñ)Ô)Ð8Ð8¨ZÐ8Ð8ðð Ý<JÈ7ÐSTÌ:Ñ<VÔ<Vðð ð r   zself: jt_all, other: anyc                 óž  ‡ — t          ‰ ||d¬¦  «        \  }}|                     d¦  «        }|                     d¦  «        }ˆ fd„}ˆ fd„}|j        rÀ|j        s¹|                     ¦   «         dk    r6|                     ¦   «         |                     ¦   «         k    r |||¦  «        S |                     ¦   «         dk    rQ|                     ¦   «         |                     ¦   «         k    r't	           ‰ |j        |fi |¤Žfi t          |¦  «        ¤ŽS �n|j        �r|j        �r|                     ¦   «         dk    r[|                     ¦   «         dk    rCt          ||j        ¦  «        r.t	           ‰ |j        |j        ¦  «        fi t          |¦  «        ¤ŽS |                     ¦   «         dk    r‚|                     ¦   «         dk    rj|j	        dk    r_|j	        d	k    rT| 
                    |j	        ¦  «        | 
                    |j	        ¦  «        k    rt          j         |||¦  «        ¦  «        S t          d
|j        › d|j        › �¦  «        ‚)NTrä   rß   Úotherc                 ó„   •— ˆfd„t          |                      ¦   «         |                     ¦   «         ¦  «        D ¦   «         S )Nc                 ó.   •— g | ]\  }} ‰||¦  «        ‘ŒS r1   r1   )r   Úa_compÚb_comprg   s      €r   r2   z8matmul_default.<locals>._unbind_impl.<locals>.<listcomp>H  s6   ø€ ð 
ð 
ð 
Ù%5 f¨fˆDˆD�˜Ñ Ô ð
ð 
ð 
r   )r‚   r  )ru   rw   rg   s     €r   Ú_unbind_implz$matmul_default.<locals>._unbind_implG  sH   ø€ ð
ð 
ð 
ð 
Ý9<¸Q¿XºX¹Z¼ZÈÏÊÉÌÑ9TÔ9Tð
ñ 
ô 
ð 	
r   c                 óh  •— | j         r|j         rJ ‚| }ddlm} |j        }|j        }|}|j        j        |j        dz
           }|€|}g |j        d |j        …         ¢|‘|j        |j        dz   d …         ¢R }|                     d|¬¦  «        }	 | ‰
|	|¦  «        |j	        |j        |||¬¦  «        S )Nr   rÃ   ç        ©Úoutput_sizerÈ   )
r´  rÎ   rÄ   rÏ   rÐ   r¾   r‹   rS   Úto_padded_tensorrÒ   )ru   rw   rƒ   rÄ   rÊ   rË   rÇ   rÙ   Úpadded_shapeÚ	padded_ntrg   s             €r   Ú_padded_implz$matmul_default.<locals>._padded_implL  s  ø€ ØŒ{Ð. 1¤;Ð.Ð.Ð.Øˆà5Ð5Ð5Ð5Ð5Ð5àÔ)ˆ
ØÔ)ˆ
Ø!ˆØ”*Ô" 2¤>°AÑ#5Ô6ˆØÐà"ˆLð
ØŒXÐ&˜œÐ&Ô'ð
àð
ð ŒX�b”n qÑ(Ð*Ð*Ô+ð
ð 
ˆð
 ×'Ò'¨¸Ð'ÑFÔFˆ	Ø!Ð!ØˆD�˜AÑÔØ”KØ”~ØØ!Ø!ð
ñ 
ô 
ð 	
r   é   r�   r   z1matmul(): not supported between inputs of shapes rz   )r   rï   r´  r"   r
   r¾   r¸   rˆ   r{   rS   r„   rL   Ústackr&   r‹   )	rg   rh   ri   rõ   rö   r÷   r¿  rÄ  rÌ  s	   `        r   Úmatmul_defaultrÏ  >  sd  ø€ å&Ø�4 ÀTðñ ô �M€A€zð �.Š.˜Ñ
!Ô
!€CØ�NŠN˜7Ñ#Ô#€Eð
ð 
ð 
ð 
ð 
ð

ð 
ð 
ð 
ð 
ð> „}ð 9˜Uœ_ð 9à�7Š7‰9Œ9˜Š>ˆ>˜cŸgšg™iœi¨5¯9ª9©;¬;Ò6Ð6à�<  UÑ+Ô+Ð+ð
 �YŠY‰[Œ[˜AÒÐ #§'¢'¡)¤)¨e¯iªi©k¬kÒ"9Ð"9ÝØ��S”[ %Ð6Ð6¨:Ð6Ð6ðð Ý:HÈÑ:MÔ:Mðð ð ùð 
Œñ 9˜5œ?ñ 9ð �7Š7‰9Œ9�qŠ=ˆ=˜UŸYšY™[œ[¨1š_˜_Õ1CÀCÈÌÑ1UÔ1U˜_Ý   S¤[°%´-Ñ @Ô @ÐXÐXÅNÐSVÑDWÔDWÐXÐXÐXð �GŠG‰IŒI˜ŠNˆNØ—	’	‘”˜qÒ Ð Ø” 1Ò$Ð$ØÔ! QÒ&Ð&Ø—’˜œÑ)Ô)¨U¯ZªZ¸Ô8IÑ-JÔ-JÒJÐJõ ”;˜|˜|¨C°Ñ7Ô7Ñ8Ô8Ð8å
ØY¸C¼IÐYÐYÈEÌKÐYÐYñô ð r   zself: jt_all, mat2: anyc                 ór  — t          | ||d¬¦  «        \  }}|                     d¦  «        }|                     d¦  «        }|                     ¦   «         dk    rt          d¦  «        ‚|                     ¦   «         dk    rt          d¦  «        ‚t	          t
          j        j        j        j	        ||¦  «        S )NTrä   rß   Úmat2rÍ  zbmm(): input must be 3Dzbmm(): mat2 must be 3D)
r   rï   r"   rb   rÏ  rL   rý   rþ   r(  r   ©rg   rh   ri   rõ   rö   r÷   r¿  s          r   Úbmm_defaultrÓ  �  s¥   € å&Ø�4 ÀTðñ ô �M€A€zð �.Š.˜Ñ
!Ô
!€CØ�NŠN˜6Ñ"Ô"€Eà
‡w‚w�y„y�A‚~€~ÝÐ2Ñ3Ô3Ð3Ø‡y‚y�{„{�aÒÐÝÐ1Ñ2Ô2Ð2å�%œ)œ.Ô/Ô7¸¸eÑDÔDÐDr   z'self: jt_all, size: any, implicit: any?c                 ó¦  ‡‡— t          | ||d¬¦  «        \  }}|                     d¦  «        Š|d         Šd|vs|                     d¦  «        rJ ‚t          ‰‰¦  «        st          d‰j        › d‰› �¦  «        ‚ˆˆfd„t          d	‰                     ¦   «         ¦  «        D ¦   «         }t           | ‰j        |¦  «        fi t          ‰¦  «        ¤ŽS )
NTrä   rß   r„   Úimplicitzexpand(): cannot expand shape z -> c                 ó:   •— g | ]}|‰j         k    rd n‰|         ‘ŒS )rG   rÆ   )r   r   r÷   r„   s     €€r   r2   z"expand_default.<locals>.<listcomp>¯  s-   ø€ ÐWÐWÐW¸a˜˜Sœ_Ò,Ð,�"�"°$°q´'ÐWÐWÐWr   r   )
r   rï   rˆ   r&   r{   r—  r"   r
   r¾   r¸   )rg   rh   ri   rõ   rö   Ú
expand_argr÷   r„   s         @@r   Úexpand_defaultrØ     sô   øø€ õ 'Ø�4 ÀTðñ ô �M€A€zð �.Š.˜Ñ
!Ô
!€CØ�fÔ€Dà˜jÐ(Ð(°*·.².ÀÑ2LÔ2LÐ(Ð(ÐMÝ˜c 4Ñ(Ô(ð SÝÐQ¸C¼IÐQÐQÈ4ÐQÐQÑRÔRÐRàWÐWÐWÐWÐWÅ5ÈÈCÏGÊGÉIÌIÑCVÔCVÐWÑWÔW€JÝ˜˜˜Sœ[¨*Ñ5Ô5ÐMÐM½ÈÑ9LÔ9LÐMÐMÐMr   zself: t, other: jtc                 óÔ   — t          | ||d¬¦  «        \  }}|                     d¦  «        }|                     d¦  «        }t           | ||j        ¦  «        fi t	          |¦  «        ¤ŽS )NTrä   rß   r¿  r   rÒ  s          r   Úexpand_as_defaultrÚ  ³  ss   € å&Ø�4 ÀTðñ ô �M€A€zð �.Š.˜Ñ
!Ô
!€CØ�NŠN˜7Ñ#Ô#€Eå˜˜˜S %¤-Ñ0Ô0ÐJÐJµNÀ5Ñ4IÔ4IÐJÐJÐJr   zself: jt_all, size: anyc           
      óŽ  — t          | ||d¬¦  «        \  }}|                     d¦  «        }|                     d¦  «        }t          |¦  «        |                     ¦   «         k    rR|                     g d„ t          |                     ¦   «         t          |¦  «        z
  ¦  «        D ¦   «         ¢|¢¦  «        S t          d¦  «        ‚)NTrä   rß   r„   c              3   ó   K  — | ]}d V — ŒdS )r   Nr1   )r   rõ   s     r   r   zbroadcast_to.<locals>.<genexpr>É  s"   è è € ÐEÐE 1˜QÐEÐEÐEÐEÐEÐEr   zwbroadcast_to(): broadcasting to a higher-dim shape is currently not supported for nested tensors with the jagged layout)r   rï   ra   r"   rÑ   r—  rb   )rg   rh   ri   rõ   rö   r÷   r„   s          r   Úbroadcast_torÝ  ¿  s¾   € å&Ø�4 ÀTðñ ô �M€A€zð �.Š.˜Ñ
!Ô
!€CØ�>Š>˜&Ñ!Ô!€Då
ˆ4�y„y�C—G’G‘I”IÒÐØ�zŠzÐMÐEÐE­¨c¯gªg©i¬i½#¸d¹)¼)Ñ.CÑ(DÔ(DÐEÑEÔEÐMÈÐMÑNÔNÐNå
ð	4ñô ð r   ztensors: anyc           
      ó¼  — t          | ||d¬¦  «        \  }}|                     d¦  «        }t          |¦  «        dk    rt          d¦  «        ‚t          |¦  «        dk    r|d         S g }t	          j        d„ |D ¦   «         Ž }t          d„ |D ¦   «         ¦  «        }|D ]°}	|	j        r)|                     |	 	                    |¦  «        ¦  «         Œ2|	 
                    ¦   «         t          |¦  «        k     rK|                     t          |	 	                    |j        j        ¦  «        fi t          |¦  «        ¤Ž¦  «         Œ¢t          d	¦  «        ‚t          |¦  «        S )
NTrä   r²  r   z7broadcast_tensors(): expected at least one tensor inputr   c              3   ó$   K  — | ]}|j         V — Œd S r   )r‹   rµ  s     r   r   z$broadcast_tensors.<locals>.<genexpr>Þ  s$   è è € Ð.HÐ.H¸1¨q¬wÐ.HÐ.HÐ.HÐ.HÐ.HÐ.Hr   c              3   óD   K  — | ]}t          |t          ¦  «        ¯|V — Œd S r   rU   rµ  s     r   r   z$broadcast_tensors.<locals>.<genexpr>à  s1   è è € ÐAÐA�Q¥Z°µ<Ñ%@Ô%@ÐAˆqÐAÐAÐAÐAÐAÐAr   zubroadcast_tensors(): broadcasting nested tensors with dense tensors of equal or higher dim is not currently supported)r   rï   ra   rb   rL   Úbroadcast_shapesrÁ   r´  r§   rÝ  r"   r
   r¾   r‹   r¸   r   )
rg   rh   ri   rõ   rö   r²  ÚoutsÚbroadcast_shaper¿   rW   s
             r   Úbroadcast_tensorsrä  Ñ  sr  € å&Ø�4 ÀTðñ ô �M€A€zð �nŠn˜YÑ'Ô'€GÝ
ˆ7�|„|�qÒÐÝÐRÑSÔSÐSÝ
ˆ7�|„|�qÒÐØ�qŒzÐà€DÝÔ,Ð.HÐ.HÀÐ.HÑ.HÔ.HÐI€Oå
ÐAÐA˜'ÐAÑAÔAÑ
AÔ
A€CØð ð ˆØŒ;ð 
	Ø�KŠK˜Ÿš Ñ7Ô7Ñ8Ô8Ð8Ð8Ø�UŠU‰WŒW•s˜?Ñ+Ô+Ò+Ð+Ø�KŠKÝ˜QŸ^š^¨C¬KÔ,=Ñ>Ô>ÐVÐVÅ.ÐQTÑBUÔBUÐVÐVñô ð ð õ ð;ñô ð õ
 �‰;Œ;Ðr   z(condition: jt_all, self: any, other: anyc                 óD  — t          | ||d¬¦  «        \  }}|                     d¦  «        }|                     d¦  «        }|                     d¦  «        }t          j        |||¦  «        \  }}}t	           | |j        |j        |j        fi |¤Žfi t          |¦  «        ¤ŽS )NTrä   Ú	conditionrß   r¿  )r   rï   rL   rä  r
   r¾   r¸   )rg   rh   ri   rõ   rö   ræ  r÷   r¿  s           r   Ú
where_selfrç  ñ  s¾   € õ 'Ø�4 ÀTðñ ô �M€A€zð —’˜{Ñ+Ô+€IØ
�.Š.˜Ñ
!Ô
!€CØ�NŠN˜7Ñ#Ô#€Eõ "Ô3°I¸sÀEÑJÔJÑ€Iˆs�EåØˆˆYÔ ¤¨U¬]ÐIÐI¸jÐIÐIðð å
˜Ñ
#Ô
#ðð ð r   zself: jt, device: any?c                 ó¤   — t          | ||d¬¦  «        \  }}|                     d¦  «        }t           | |j        fi |¤Žfi t	          |¦  «        ¤ŽS r  r   r!  s         r   Ú_pin_memory_defaultré    r#  r   c                 ót   — t          | ||d¬¦  «        \  }}|                     d¦  «        } | |j        fi |¤ŽS r  rL  r!  s         r   Úis_pinned_defaultrë    rq  r   zself: jt_all, other: jt_allc                 ó:   — |d         j         |d         j         k    S rŠ   )r{   r  s      r   Úis_same_size_defaultrí    s   € ð �Œ7Œ=˜D œGœMÒ)Ð)r   c                 ó~  ‡‡— t          | ||d¬¦  «        \  }}|                     d¦  «        Š|d         d u p:t          |d         t          t          f¦  «        ot          |d         ¦  «        dk    }|r� | ‰j        fi |¤Ž}|                     dd¦  «        r[t          |t          t          f¦  «        r% t          |¦  «        ˆfd„|D ¦   «         ¦  «        }n| 	                    ‰j
        ¦  «        }|S |d         }	t          |d         t          t          f¦  «        }
|
s|	g}	t          ‰                     ¦   «         |	|› ‰j
        ¦  «        \  }}}}|
s|d         }||d<   |r‰j        �t          |› d	�¦  «        ‚dd
lm} |r�|r3 | ‰j        fi |¤Ž}|                     dd¦  «        r |d„ |¦  «        }|S |rt          |› d�¦  «        ‚|                     d¦  «         |
r‰j
        gn‰j
        } | ‰                     |¦  «        fd|i|¤ŽS |rt          |› d�¦  «        ‚ | ‰j        fi |¤Ž}t%          ‰¦  «        Š|                     dd¦  «        sVt          |d         t          t          f¦  «        r|d         n|d         g}|D ] }|‰j
        dz
  k     r‰dxx         dz  cc<   Œ! |ˆfd„|¦  «        S )NTrä   rß   r"   r   ÚkeepdimFc              3   óL   •K  — | ]}|                      ‰j        ¦  «        V — Œd S r   )r®  rS   )r   Úor÷   s     €r   r   z#_apply_reduction.<locals>.<genexpr>3  s1   øè è € ÐJÐJÀ §¢¨C¬OÑ <Ô <ÐJÐJÐJÐJÐJÐJr   zf(): reducing across the ragged dimension is not supported for non-contiguous nested tensors with holes)Útree_mapc                 ó,   — |                       d¦  «        S )Nr   )r®  )rñ  s    r   rO   z"_apply_reduction.<locals>.<lambda>_  s   € ¨¯ª°Q©¬€ r   zW(): reducing along a ragged and non-batch dimension is not supported for nested tensorszg(): reducing along the batch dimension but not the ragged dimension is not supported for nested tensorsr   rS   c                 ó   •— t          | fi ‰¤ŽS r   r	   )rñ  Ú
out_kwargss    €r   rO   z"_apply_reduction.<locals>.<lambda>Š  s   ø€ ¥,¨qÐ"?Ð"?°JÐ"?Ð"?€ r   )r   rï   r   r   r   ra   r¾   rž   r   r®  rS   r=   r"   rR   r&   Útorch.utils._pytreerò  rÉ  r¸   )rg   Ú	func_nameÚidentity_elementrh   ri   rõ   rö   Úfull_reductionÚoutÚdim_to_convertÚ
is_dimlistÚconverted_dimrZ  r[  Úreduce_on_non_batchrò  Údim_to_passÚdimlistr   r÷   rõ  s                      @@r   rm  rm  #  sÖ  øø€ Ý&Ø�4 ÀTðñ ô �M€A€zð �.Š.˜Ñ
!Ô
!€Cð   Ô&¨$Ð.ð Ý�:˜eÔ$¥u­d mÑ4Ô4ÐT½¸ZÈÔ=NÑ9OÔ9OÐSTÒ9Tð ð ð Øˆd�3”;Ð-Ð- *Ð-Ð-ˆØ�>Š>˜) UÑ+Ô+ð 	5Ý˜#¥¥t˜}Ñ-Ô-ð 5à•d˜3‘i”iÐJÐJÐJÐJÀcÐJÑJÔJÑJÔJ��à—m’m C¤OÑ4Ô4�Øˆ
ð   Ô&€NÝ˜J uÔ-µµt¨}Ñ=Ô=€JØð *Ø(Ð)ˆõ 	Ø�Š‰	Œ	ØØˆØŒñ		ô 	ñØØØØð ð )à% aÔ(ˆØ%€JˆuÑàð 
˜CœLÐ4ÝØð ;ð ;ð ;ñ
ô 
ð 	
ð
 -Ð,Ð,Ð,Ð,Ð,ð ð 2Fàð 	à�$�s”{Ð1Ð1 jÐ1Ð1ˆCØ�~Š~˜i¨Ñ/Ô/ð >à�hÐ7Ð7¸Ñ=Ô=�ØˆJð #ð Ý"Ø ð :ð :ð :ñô ð ð �NŠN˜5Ñ!Ô!Ð!Ø/9ÐN˜3œ?Ð+Ð+¸s¼ˆKØ�4Ø×$Ò$Ð%5Ñ6Ô6ðð Ø<GðØKUðð ð ð ð 	ÝØð Kð Kð Kñô ð ð ˆd�3”;Ð-Ð- *Ð-Ð-ˆÝ# CÑ(Ô(ˆ
Ø�~Š~˜i¨Ñ/Ô/ð 
	3õ ˜j¨Ô/µ%½°Ñ?Ô?ð)�
˜5Ô!Ð!à  Ô'Ð(ð ð
 ð 3ð 3�à�s”¨Ñ*Ò*Ð*Ø˜}Ð-Ð-Ô-°Ñ2Ð-Ð-Ñ-øð ˆxÐ?Ð?Ð?Ð?ÀÑEÔEÐEr   c                 ót   — t          | ||d¬¦  «        \  }}|                     d¦  «        } | |j        fi |¤ŽS r  rL  r!  s         r   Úsum_defaultr  �  rq  r   z3self: jt_all, dim: any?, keepdim: any?, dtype: any?c                 ó&   — t          | ddg|¢R i |¤ŽS )Nr£   r   rl  r  s      r   Úsum_dim_IntListr  ˜  s&   € õ
 ˜D %¨Ð<¨TÐ<Ð<Ð<°VÐ<Ð<Ð<r   z"self: jt_all, dim0: any, dim1: anyc           
      ó~  — t          | ||d¬¦  «        \  }}ddlm} |                     d¦  «        } ||                     ¦   «         |d         |d         f¦  «        \  }}||j        k    s||j        k    r¾|dk    s|dk    rt          d¦  «        ‚||j        k    r|}	n|}	t          |¦  «        }
|	|
d	<   t          | 	                    ¦   «          
                    t          t          |j        ¦  «        ||j        ¦  «        t          t          |j        ¦  «        ||j        ¦  «        ¦  «        fi |
¤ŽS t          |                     ¦   «         |d         |j        d
¦  «        |d<   t          |                     ¦   «         |d         |j        d
¦  «        |d<   t           | |j        fi |¤Žfi t          |¦  «        ¤ŽS )NTrä   r   r   rß   Údim0Údim1z?Transpose is not supported on the batch dimension for jagged NTrS   Ú	transpose)r   r   r   rï   r"   rS   rb   r¸   r
   rt  r  r   ra   r{   r.   r¾   )rg   rh   ri   rõ   rö   r   r÷   r  r  Úto_dimrC  s              r   Útranspose_intr
     sè  € õ 'Ø�4 ÀTðñ ô �M€A€zð 6Ð5Ð5Ð5Ð5Ð5à
�.Š.˜Ñ
!Ô
!€CØ"Ð" 3§7¢7¡9¤9¨z¸&Ô/AÀ:ÈfÔCUÐ.VÑWÔW�J€Dˆ$ð
 ˆsŒÒÐ $¨#¬/Ò"9Ð"9Ø�1Š9ˆ9˜ š	˜	ÝØQñô ð ð �3”?Ò"Ð"ØˆFˆFàˆFÝ# CÑ(Ô(ˆ
Ø$*ˆ
�=Ñ!ÝØ�JŠJ‰LŒL×"Ò"Ý#¥C¨¬	¡N¤N°D¸#¼/ÑJÔJÝ#¥C¨¬	¡N¤N°D¸#¼/ÑJÔJñô ð
ð 
ð
 ð
ð 
ð 	
õ *Ø�Š‰	Œ	�:˜fÔ% s¤¸ñô €JˆvÑõ *Ø�Š‰	Œ	�:˜fÔ% s¤¸ñô €JˆvÑõ ˜˜˜Sœ[Ð7Ð7¨JÐ7Ð7ÐOÐO½>È#Ñ;NÔ;NÐOÐOÐOr   zself: jt_all, dims: anyc                 óâ  ‡
‡— t          | ||d¬¦  «        \  }}|                     d¦  «        Š
|                     d¦  «        }t          ‰
¦  «        }t          ‰
j        ¦  «        Š‰t          |¦  «        k    r't          d‰› d�dt          |¦  «        › d�z   ¦  «        ‚d	d
lm}  |‰|¦  «        }t          |¦  «        t          t          |¦  «        ¦  «        k    rt          d¦  «        ‚‰
j	        �t          d¦  «        ‚|d	         d	k    rt          d¦  «        ‚| 
                    ‰
j        ¦  «        |d<   ˆ
ˆfd„|dd …         D ¦   «         }	|	|d<   t           | ‰
j        fi |¤Žfi |¤ŽS )NTrä   rß   r7   z5permute(): number of dimensions in the tensor input (z) zAdoes not match the length of the desired ordering of dimensions (ú).r   r   z*permute(): duplicate dims are not allowed.zBpermute(): not supported on jagged layout nested tensor with holesz=Permute is not supported on the batch dimension for jagged NTrS   c                 ó<   •— g | ]}t          ‰|‰j        ¦  «        ‘ŒS r1   )r   rS   )r   r"   r÷   Úinp_dims     €€r   r2   z#permute_default.<locals>.<listcomp>î  s7   ø€ ð ð ð àõ 	˜G S¨#¬/Ñ:Ô:ðð ð r   r   )r   rï   r¸   ra   r{   rb   r   r   ÚsetrR   ÚindexrS   r
   r¾   )rg   rh   ri   rõ   rö   r7   rC  r   Úcanonicalized_dimsÚ
inner_dimsr÷   r  s             @@r   Úpermute_defaultr  Í  sÛ  øø€ å&Ø�4 ÀTðñ ô �M€A€zð �.Š.˜Ñ
!Ô
!€CØ�>Š>˜&Ñ!Ô!€DÝ Ñ$Ô$€JÝ�#”)‰nŒn€Gð •#�d‘)”)ÒÐÝØOÀGÐOÐOÐOØ_ÕRUÐVZÑR[ÔR[Ð_Ð_Ð_ñ`ñ
ô 
ð 	
ð
 6Ð5Ð5Ð5Ð5Ð5à*Ð*¨7°DÑ9Ô9Ðå
ÐÑÔ¥#¥cÐ*<Ñ&=Ô&=Ñ">Ô">Ò>Ð>ÝÐEÑFÔFÐFà
„|ÐÝØPñ
ô 
ð 	
ð ˜!Ô Ò!Ð!ÝØKñ
ô 
ð 	
ð !3× 8Ò 8¸¼Ñ IÔ I€Jˆ}Ñðð ð ð ð à% a b bÔ)ðñ ô €Jð $€JˆvÑÝ˜˜˜Sœ[Ð7Ð7¨JÐ7Ð7ÐFÐF¸:ÐFÐFÐFr   c                 óÌ  ‡‡‡— t          | ||d¬¦  «        \  }}|                     d¦  «        Š|                     d¦  «        Š‰j        dk    r@t          ‰j        ¦  «        t          ‰¦  «        k    rt          d‰j        › d‰› d�¦  «        ‚t          ‰¦  «        d	k     st          ‰‰¦  «        st          d
‰j        › d‰› �¦  «        ‚ˆˆfd„Šˆfd„t          t          ‰¦  «        dz
  ¦  «        D ¦   «         }t          j
        ‰                     ¦   «         ¦  «        5  t           | ‰j        |¦  «        fi t          ‰¦  «        ¤Žcd d d ¦  «         S # 1 swxY w Y   d S )NTrä   rß   r„   r   zVview(): does not support ragged_idx != 1 except when inp._size == size. inp._size is (z) and size is (r  rÍ  zview(): cannot view shape z as c                 ój   •— | ‰j         dz
  k    r‰j                             | ¦  «        S ‰| dz            S rQ   )rS   r¾   r„   )Ú	inner_idxr÷   r„   s    €€r   Úget_inner_sizez$view_default.<locals>.get_inner_size  s:   ø€ à˜œ¨!Ñ+Ò+Ð+Ø”;×#Ò# IÑ.Ô.Ð.à˜	 A™Ô&Ð&r   c                 ó&   •— g | ]} ‰|¦  «        ‘ŒS r1   r1   )r   rn   r  s     €r   r2   z view_default.<locals>.<listcomp>!  s#   ø€ ÐBÐBÐB¨�.�. Ñ#Ô#ÐBÐBÐBr   )r   rï   rS   r   r{   r&   ra   rˆ   r—  rL   Úinference_modeÚis_inferencer
   r¾   r¸   )	rg   rh   ri   rõ   rö   Ú
inner_sizer  r÷   r„   s	         @@@r   Úview_defaultr  ö  sþ  øøø€ õ
 'Ø�4 ÀTðñ ô �M€A€zð �.Š.˜Ñ
!Ô
!€CØ�>Š>˜&Ñ!Ô!€Dà
„˜!ÒÐ¥ c¤iÑ 0Ô 0µE¸$±K´KÒ ?Ð ?Ýð@Ø œYð@ð @Ø7;ð@ð @ð @ñ
ô 
ð 	
õ ˆ4�y„y�1‚}€}Õ.¨s°DÑ9Ô9€}ÝÐM¸¼	ÐMÐMÀtÐMÐMÑNÔNÐNð 'ð 'ð 'ð 'ð 'ð 'ð CÐBÐBÐB­Uµ3°t±9´9¸q±=Ñ-AÔ-AÐBÑBÔB€Jõ 
Ô	˜c×.Ò.Ñ0Ô0Ñ	1Ô	1ð Rð RÝ˜D˜D ¤¨jÑ9Ô9ÐQÐQ½^ÈCÑ=PÔ=PÐQÐQðRð Rð Rð Rñ Rô Rð Rð Rð Rð Rð Rð Røøøð Rð Rð Rð Rð Rð Rs   Ä#)EÅEÅ EzHinput: jt_all, normalized_shape: any, weight: any?, bias: any?, eps: anyc                 ó  — t          | ||d¬¦  «        \  }}|                     d¦  «        }|                     ¦   «         dk    rt          d¦  «        ‚|d         }|j        |j                 }|                     ¦   «         t          |¦  «        z
  }|dk    rt          d¦  «        ‚||v r|j        �t          d	¦  «        ‚||v �rt          j	        j
                             |j                             |j        ¬
¦  «        |j        g|j        g¬¦  «        }	t          j	        j
                             t          j        |j        j        d         df|j        |j        ¬¦  «        |j        g|j        g¬¦  «                             |	j        ¦  «        }
|j                             ¦   «                              d¦  «                             d¦  «        |	j        d         z  }t          j        |	dd¬¦  «        |z  }|	|z
  |
z  }t          j        t          j        |¦  «        dd¬¦  «        |z  }t          j        ||d         z   ¦  «        }||z  }t          j	        j
                             ||j        g|j        j        d         ¬¦  «                             d|j        |j        dz   d …         ¦  «        }t7          |fi t9          |¦  «        ¤Ž||fS  | |j        fi |¤Ž\  }}}t7          |fi t9          |¦  «        ¤Ž||fS )NTrä   rß   r�   zOlayer_norm(): not supported for NestedTensor objects with 2 or fewer dimensionsrè   r   zVlayer_norm(): not supported when normalizing over the batch dimension for NestedTensorzklayer_norm(): not supported where lengths is not None if operating on the ragged dimension for NestedTensor©rà   )rP  r   )r4  Údtype)r   r�   )r"   rï  rê   rS  rG   )r   rï   r"   r&   r‹   rS   ra   rR   rL   rý   rþ   rV  r¾   rÝ   rÒ   rW  Úonesr4  r  rÑ   r–  r®  r£   ÚsquareÚsqrtrY  Ú	unflattenr
   r¸   )rg   rh   ri   rõ   rö   r÷   rè   Úragged_sizeÚnum_dims_not_normalizedÚpadded_inputÚpadded_maskÚragged_lengthsÚmeanÚpadded_normalizedÚvarianceÚstdÚpadded_layer_normÚjagged_layer_norm_valuesr$   s                      r   Únative_layer_norm_defaultr/  )  sn  € õ
 'Ø�4 ÀTðñ ô �M€A€zð �.Š.˜Ñ
!Ô
!€Cà
‡w‚w�y„y�A‚~€~ÝØ]ñ
ô 
ð 	
ð "Ð"4Ô5ÐØ”)˜CœOÔ,€Kà!Ÿgšg™iœi­#Ð.>Ñ*?Ô*?Ñ?Ðð 	  1Ò$Ð$åØdñ
ô 
ð 	
ð Ð&Ð&Ð&¨3¬<Ð+CÝØyñ
ô 
ð 	
ð
 	Ð'Ð'Ñ'å”y”~×EÒEØŒK×ÒØœ/ð  ñ ô ð Œ\ˆNØœÐ)ð Fñ 
ô 
ˆõ ”i”n×DÒDÝŒJ˜œÔ)¨!Ô,¨aÐ0¸¼È3Ì9ÐUÑUÔUØŒ\ˆNØœÐ)ð Eñ 
ô 
÷ Š&ØÔñ
ô 
ð	 	ð ŒL×ÒÑÔ×)Ò)¨!Ñ,Ô,×6Ò6°qÑ9Ô9¸LÔ<NÈqÔ<QÑQð 	õ
 ŒIØØØðñ ô ð
 ñð 	ð ˜4ÑØñÐõ
 ŒIÝ”Ð.Ñ/Ô/ØØðñ ô ð
 ñð 	õ Œj˜ J¨uÔ$5Ñ5Ñ6Ô6ˆØ-°Ñ3Ðå#(¤9¤>×#QÒ#QØØŒ\ˆNØ”KÔ%Øôð $Rñ $
ô $
÷ Š)Ø�”	˜#œ/¨AÑ-Ð/Ð/Ô0ñ
ô 
ð 	!õ Ð1ÐIÐIµ^ÀCÑ5HÔ5HÐIÐIØØð
ð 	
ð ˜˜Sœ[Ð7Ð7¨JÐ7Ð7Ñ€FˆD�#Ý˜Ð7Ð7¥>°#Ñ#6Ô#6Ð7Ð7¸¸sÐCÐCr   zpgrad_out: jt, input: jt, normalized_shape: any, mean: any, rstd: any, weight: any?, bias: any?, output_mask: anyc                 óú   — t          | ||d¬¦  «        \  }}|                     d¦  «        }|                     d¦  «        } | |j        |j        fi |¤Ž\  }}}	|€d ||	fS t          |fi t	          |¦  «        ¤Ž||	fS )NTrä   ra  rß   rd  )
rg   rh   ri   rõ   rö   ra  r÷   Úd_inputÚd_gammaÚd_betas
             r   Ú"native_layer_norm_backward_defaultr4  Ž  s¥   € õ
 'Ø�4 ÀTðñ ô �M€A€zð �~Š~˜jÑ)Ô)€HØ
�.Š.˜Ñ
!Ô
!€CØ#˜t HÔ$4°c´kÐPÐPÀZÐPÐPÑ€GˆW�fØ€Ø�g˜vÐ&Ð&å˜Ð8Ð8¥N°3Ñ$7Ô$7Ð8Ð8¸'À6ÐJÐJr   z"self: jt_all, dim: any, index: anyc                 óÎ  — t          | ||d¬¦  «        \  }}|                     d¦  «        }t          |                     ¦   «         |d         |j        dd¬¦  «        \  |d<   }|r |                     ¦   «         |d                  S |j        �t          d¦  «        ‚t          |¦  «        }|d         |j        d	z
  k     r|d
xx         d	z  cc<   t           | |j
        fi |¤Žfi |¤ŽS )NTrä   rß   r"   Úselectr„  r  zSselect(): not yet supported on dim != 0 for non-contiguous nested tensor with holesr   rS   )r   rï   r.   r"   rS   r  rR   rb   r¸   r
   r¾   )rg   rh   ri   rõ   rö   r÷   r-   rõ  s           r   Ú
select_intr7  Ÿ  s  € å&Ø�4 ÀTðñ ô �M€A€zð �.Š.˜Ñ
!Ô
!€CÝ,<Ø�Š‰	Œ	�:˜eÔ$ c¤o°xÐQUð-ñ -ô -Ñ)€JˆuÑÐ)ð ð 1Ø�zŠz‰|Œ|˜J wÔ/Ô0Ð0à
„|ÐÝØañ
ô 
ð 	
õ
   Ñ$Ô$€JØ�%Ô˜3œ?¨QÑ.Ò.Ð.Ø�=Ð!Ð!Ô! QÑ&Ð!Ð!Ñ!å˜˜˜Sœ[Ð7Ð7¨JÐ7Ð7ÐFÐF¸:ÐFÐFÐFr   z7self: jt, dim: any?, start: any?, end: any?, step: any?c                 ó  — t          | ||d¬¦  «        \  }}|                     d¦  «        }t          |                     ¦   «         |d         |j        d¦  «        |d<   t           | |j        fi |¤Žfi t          |¦  «        ¤ŽS )NTrä   rß   r"   Úslice)r   rï   r.   r"   rS   r
   r¾   r¸   r!  s         r   Úslice_tensorr:  ¼  s˜   € õ
 'Ø�4 ÀTðñ ô �M€A€zð �.Š.˜Ñ
!Ô
!€CÝ(Ø�Š‰	Œ	�:˜eÔ$ c¤o°wñô €JˆuÑõ ˜˜˜Sœ[Ð7Ð7¨JÐ7Ð7ÐOÐO½>È#Ñ;NÔ;NÐOÐOÐOr   z8input: jt_all, indices: any, values: t, accumulate: any?c                 ó’  — t          | ||d¬¦  «        \  }}|                     d¦  «        }|                     d¦  «        }t          |¦  «        |                     ¦   «         k    sJ ‚t          |¦  «        |j        dz   k     �r|                     ¦   «         st          d¦  «        ‚ddlm} |j	        }|j
        }	|	}
|j        j        |j        dz
           }|
€|}
g |j        d |j        …         ¢|
‘|j        |j        dz   d …         ¢R }|                     d|¬	¦  «        } | | ||fi |¤Ž|j        |j        |||	¬
¦  «        }| t          j        j        j        j        k    r.|j                             |                     ¦   «         ¦  «         |S |S |                     ¦   «         €'|                     ¦   «                              ¦   «         }n|                     ¦   «         }t          j        t          j        ||j                 |k     ¦  «        d¦  «         |                     ¦   «         |d                  ||j                 z   }|d|j        …         |gz   ||j        dz   d …         z   }| t          j        j        j        j        k    r | |j        |fi |¤Ž|_        |S t7           | |j        |fi |¤Žfi t9          |¦  «        ¤ŽS )NTrä   rß   Úindicesr   z[index_put(): If ragged dimension is not part of indices, this only works on contiguous NJTsrÃ   rÆ  rÇ  rÈ   z7Some indices in the ragged dimension are out of bounds!r   )r   rï   ra   r"   rS   Úis_contiguousr&   rÎ   rÄ   rÏ   rÐ   r¾   r‹   rÉ  rÒ   rL   rý   rþ   Ú
index_put_r   rF  rt  r¶   rµ   r–  Ú_assert_asyncr�   r
   r¸   )rg   rh   ri   rõ   rö   r÷   r<  rÄ   rÊ   rË   rÇ   rÙ   rÊ  Ú
padded_inpÚnew_njtr¶   Úragged_indicesÚfunc_indicess                     r   r>  r>  Í  s  € õ 'Ø�4 ÀTðñ ô �M€A€zð #Ÿš wÑ/Ô/€Cð �nŠn˜YÑ'Ô'€Gåˆw‰<Œ<˜3Ÿ7š7™9œ9Ò$Ð$Ð$Ð$å
ˆ7�|„|�c”o¨Ñ)Ò)Ñ)Ø× Ò Ñ"Ô"ð 	ÝØmñô ð ð 	6Ð5Ð5Ð5Ð5Ð5àÔ*ˆ
ØÔ*ˆ
Ø!ˆØ”+Ô# C¤O°aÑ$7Ô8ˆØÐà"ˆLð
ØŒYÐ(˜œÐ(Ô)ð
àð
ð ŒY�s”¨Ñ*Ð,Ð,Ô-ð
ð 
ˆð
 ×)Ò)¨#¸<Ð)ÑHÔHˆ
Ø$Ð$ØˆD�˜WÐ3Ð3¨
Ð3Ð3Ø”LØ”ØØ!Ø!ð
ñ 
ô 
ˆð •5”9”>Ô,Ô4Ò4Ð4ØŒK×Ò˜gŸnšnÑ.Ô.Ñ/Ô/Ð/ØˆJØˆð
 ‡{‚{�}„}ÐØ—+’+‘-”-×$Ò$Ñ&Ô&ˆˆà—+’+‘-”-ˆÝ	ÔÝŒ	�'˜#œ/Ô*¨WÒ4Ñ5Ô5ØAñô ð ð —[’[‘]”] 7¨1¤:Ô.°¸¼Ô1IÑI€Nð 	��C”OÐ#Ô$àÐ
ñ	ð �#”/ AÑ%Ð'Ð'Ô
(ñ		)ð ð �uŒyŒ~Ô(Ô0Ò0Ð0Ø�d˜3œ;¨ÐCÐC¸
ÐCÐCˆŒØˆ
åØˆˆSŒ[˜,Ð5Ð5¨*Ð5Ð5ðð å
˜Ñ
Ô
ðð ð r   z{input: jt, weight: t, bias: t?, stride: any, padding: any, dilation: any, transposed: any, output_padding: any, groups: anyc                 ó¤   — t          | ||d¬¦  «        \  }}|                     d¦  «        }t           | |j        fi |¤Žfi t	          |¦  «        ¤ŽS r  r   r!  s         r   Úconvolution_defaultrE  )  sj   € õ 'Ø�4 ÀTðñ ô �M€A€zð �.Š.˜Ñ
!Ô
!€Cå˜˜˜Sœ[Ð7Ð7¨JÐ7Ð7ÐOÐO½>È#Ñ;NÔ;NÐOÐOÐOr   c                 óN  — t          | ||d¬¦  «        \  }}|d         }t          |                     ¦   «         |d         d|j        ¦  «        \  }}}}|rÁ|s¿|rJ ‚|d         }	d|d<   t	          t
          j        j        j        j	        ddfi |¤Ž}
|j
        �|j
        n|j                             ¦   «         }t          |
                     ¦   «         dz
  ¦  «        D ]}|                     d	¦  «        }Œ|
|z  }|	s|                     |j        ¦  «        }|S d
}t	          | d|fi |¤ŽS )NTrä   rß   r"   r)  rï  r   r   rG   gáz®GáÚ?)r   r=   r"   rS   rm  rL   rý   rþ   r£   Údim_IntListrR   rÒ   r–  r—  r®  rŒ   )rg   rh   ri   rõ   rö   r÷   rZ  r[  rþ  rï  Úintermediate_sumr¶   rú  Úintermediate_values                 r   Úmean_dimrJ  8  st  € õ 'Ø�4 ÀTðñ ô �M€A€zð �WÔ
€CÝBSØ�Š‰	Œ	Ø�5ÔØØŒñ	Cô CÑ?€QˆÐ)Ð+>ð ð  ð Ø&Ð&Ð&Ð&à˜YÔ'ˆØ $ˆ
�9ÑÝ+ÝŒIŒNÔÔ*¨F°Að
ð 
Ø9Cð
ð 
Ðð
 #&¤,Ð":�#”,�,ÀÄ×@QÒ@QÑ@SÔ@SˆÝÐ'×+Ò+Ñ-Ô-°Ñ1Ñ2Ô2ð 	,ð 	,ˆAØ×'Ò'¨Ñ+Ô+ˆGˆGØ Ñ(ˆØð 	/Ø—+’+˜cœoÑ.Ô.ˆCØˆ
ð
 ÐÝ˜D &Ð*<ÐKÐKÀ
ÐKÐKÐKr   c                 ót   — t          | ||d¬¦  «        \  }}|                     d¦  «        } | |j        fi |¤ŽS r  rL  r!  s         r   Úmean_defaultrL  a  rq  r   z&self: jt_all, dim: any?, keepdim: any?c                 ó&   — t          | ddg|¢R i |¤ŽS )Nr6   Frl  r  s      r   Úany_dimsrN  l  s$   € å˜D %¨Ð@°Ð@Ð@Ð@¸Ð@Ð@Ð@r   z%self: jt_all, dim: any, keepdim: any?c                 ó’   — t          | ||d¬¦  «        \  }}|d         g|d<   t          t          j        j        j        j        fi |¤ŽS ©NTrä   r"   )r   rN  rL   rý   rþ   r6   r7   ©rg   rh   ri   rõ   rö   s        r   Úany_dimrR  q  óW   € å&Ø�4 ÀTðñ ô �M€A€zð
 $ EÔ*Ð+€JˆuÑÝ•E”I”NÔ&Ô+Ð:Ð:¨zÐ:Ð:Ð:r   c                 ó&   — t          | ddg|¢R i |¤ŽS )Nr�   Trl  r  s      r   Úall_dimsrU  |  s$   € å˜D %¨Ð?°Ð?Ð?Ð?¸Ð?Ð?Ð?r   c                 ó’   — t          | ||d¬¦  «        \  }}|d         g|d<   t          t          j        j        j        j        fi |¤ŽS rP  )r   rU  rL   rý   rþ   r�   r7   rQ  s        r   Úall_dimrW  �  rS  r   c                 ót   — t          | ||d¬¦  «        \  }}|                     d¦  «        } | |j        fi |¤ŽS r  rL  r!  s         r   Úall_any_max_min_defaultrY  Œ  sR   € õ 'Ø�4 ÀTðñ ô �M€A€zð �.Š.˜Ñ
!Ô
!€Càˆ4�”Ð*Ð*˜zÐ*Ð*Ð*r   c                 óš   — t          | ||d¬¦  «        \  }}t          j        |d         j        ¦  «        j        }t          | d|g|¢R i |¤ŽS )NTrä   rß   Úmin©r   rL   Úfinfor  Úmaxrm  ©rg   rh   ri   rõ   rö   Ú	dtype_maxs         r   Úmin_dimra  Ÿ  óa   € å&Ø�4 ÀTðñ ô �M€A€zõ ”˜J wÔ/Ô5Ñ6Ô6Ô:€IÝ˜D %¨ÐD°TÐDÐDÐD¸VÐDÐDÐDr   c                 óš   — t          | ||d¬¦  «        \  }}t          j        |d         j        ¦  «        j        }t          | d|g|¢R i |¤ŽS )NTrä   rß   r^  ©r   rL   r]  r  r[  rm  ©rg   rh   ri   rõ   rö   Ú	dtype_mins         r   Úmax_dimrg  ©  rb  r   c                 óš   — t          | ||d¬¦  «        \  }}t          j        |d         j        ¦  «        j        }t          | d|g|¢R i |¤ŽS )NTrä   rß   Úaminr\  r_  s         r   Úamin_defaultrj  ³  óc   € õ 'Ø�4 ÀTðñ ô �M€A€zõ ”˜J wÔ/Ô5Ñ6Ô6Ô:€IÝ˜D &¨)ÐE°dÐEÐEÐE¸fÐEÐEÐEr   c                 óš   — t          | ||d¬¦  «        \  }}t          j        |d         j        ¦  «        j        }t          | d|g|¢R i |¤ŽS )NTrä   rß   Úamaxrd  re  s         r   Úamax_defaultrn  ¿  rk  r   c                 óš   — t          | ||d¬¦  «        \  }}t          j        |d         j        ¦  «        j        }t          | d|g|¢R i |¤ŽS )NTrä   rß   Úargminr\  r_  s         r   Úargmin_defaultrq  Ë  óc   € õ 'Ø�4 ÀTðñ ô �M€A€zõ ”˜J wÔ/Ô5Ñ6Ô6Ô:€IÝ˜D (¨IÐG¸ÐGÐGÐGÀÐGÐGÐGr   c                 óš   — t          | ||d¬¦  «        \  }}t          j        |d         j        ¦  «        j        }t          | d|g|¢R i |¤ŽS )NTrä   rß   Úargmaxrd  re  s         r   Úargmax_defaultru  ×  rr  r   c                 ó`  — t          | ||d¬¦  «        \  }}|                     d¦  «        }|D ]�}t          |t          ¦  «        st	          d¦  «        ‚|                     ¦   «         |d                              ¦   «         k    rt	          d¦  «        ‚t          ||d         j        ¦  «        st	          d¦  «        ‚Œ�t          |d                              ¦   «         dz   |d	         |d         j	        d
¦  «        |d	<   t           | d„ |D ¦   «         fi |¤Žfi t          |d         ¦  «        ¤ŽS )NTrä   r²  z+stack(): expected all nested tensors inputsr   z9stack(): expected all nested tensors to have the same dimzFstack(): expected all nested tensors to have the same nested structurer   r"   rÎ  c                 ó   — g | ]	}|j         ‘Œ
S r1   r½   rµ  s     r   r2   z!stack_default.<locals>.<listcomp>þ  r»  r   )r   rï   r   r
   r&   r"   rˆ   r‹   r.   rS   r¸   )rg   rh   ri   rõ   rö   r²  rW   s          r   Ústack_defaultrx  ã  sb  € å&Ø�4 ÀTðñ ô �M€A€zð
 �nŠn˜YÑ'Ô'€GØð ð ˆÝ˜!�\Ñ*Ô*ð 	NÝÐLÑMÔMÐMà�5Š5‰7Œ7�g˜a”j—n’nÑ&Ô&Ò&Ð&ÝØKñô ð õ " ! W¨Q¤ZÔ%5Ñ6Ô6ð 	ÝØXñô ð ð	õ
 )Ø�Œ
�ŠÑÔ˜1Ñ˜j¨Ô/°¸´Ô1GÈñô €JˆuÑõ ØˆÐ)Ð) Ð)Ñ)Ô)Ð8Ð8¨ZÐ8Ð8ðð Ý<JÈ7ÐSTÌ:Ñ<VÔ<Vðð ð r   zQweight: t, indices: jt, padding_idx: any?, scale_grad_by_freq: any?, sparse: any?c                 óÐ   — t          | ||d¬¦  «        \  }}|                     d¦  «        }|                     d¦  «        }t           | ||j        fi |¤Žfi t	          |¦  «        ¤ŽS )NTrä   r<  ré   r   )rg   rh   ri   rõ   rö   r<  ré   s          r   Úembedding_defaultrz    s‰   € õ
 'Ø�4 ÀTðñ ô �M€A€zð
 �nŠn˜YÑ'Ô'€GØ�^Š^˜HÑ%Ô%€FåØˆˆV�W”_Ð3Ð3¨
Ð3Ð3ðð Ý7EÀgÑ7NÔ7Nðð ð r   zYgrad_output: jt, indices: jt, num_weights: any, padding_idx: any, scale_grad_by_freq: anyc                 óª   — t          | ||d¬¦  «        \  }}|                     d¦  «        }|                     d¦  «        } | |j        |j        fi |¤ŽS )NTrä   r<  r%  rL  )rg   rh   ri   rõ   rö   r<  r%  s          r   Ú embedding_dense_backward_defaultr|    sh   € õ
 'Ø�4 ÀTðñ ô �M€A€zð �nŠn˜YÑ'Ô'€GØ—.’. Ñ/Ô/€KØˆ4�Ô# W¤_ÐCÐC¸
ÐCÐCÐCr   c                 óŠ   — t          | ||d¬¦  «        \  }}|                     d¦  «        }|j                             ¦   «         S r  )r   rï   r¾   Údetachr!  s         r   Úvalues_defaultr  "  sN   € õ 'Ø�4 ÀTðñ ô �M€A€zð �.Š.˜Ñ
!Ô
!€Cð Œ;×ÒÑÔÐr   c                 óx   — t          | ||d¬¦  «        \  }}|                     d¦  «        } | |j        ¦  «        S r  rL  r!  s         r   Úall_defaultr�  5  sH   € å&Ø�4 ÀTðñ ô �M€A€zð �.Š.˜Ñ
!Ô
!€Càˆ4�”ÑÔÐr   z-self: jt_all, padding: any, output_size: any?c                 óv  — t          | ||d¬¦  «        \  }}|                     d¦  «        }|j        �t          d¦  «        ‚|d         }|�||j                 }n(|j        �|j        n|j                             d¦  «        }| 	                    ¦   «         }|j        dk    r| 
                    |j        dz
  d¦  «        }|j        }	|                     ¦   «         dk    r|                     d¬	¦  «        }n-|                     ¦   «         dk    r|                     d
¦  «        }|j        t           j        u }
|
r&|j        r|                     t           j        ¦  «        }t           j        j                             ||j        g|g|d         ¦  «        }|
r&|j        r|                     t           j        ¦  «        }t3          |	¦  «        dk    r|                     d
|	dd …         ¦  «        }n(t3          |	¦  «        dk    r|                     d
¦  «        }|j        dk    r| 
                    |j        d¦  «        }|S )NTrä   rß   z?to_padded_tensor(): not supported for nested tensors with holesrÈ  r   r   r�   r  rG   Úpadding)r   rï   rR   r&   rS   Ú_max_seqlen_tensorrW  r¾   r„   rt  r  r‹   r"   rÝ   r®  r  rL   ÚboolÚis_cudar8  Úhalfrý   rþ   rV  rÒ   ra   r#  rŒ   )rg   rh   ri   rõ   rö   r÷   rÈ  Úmax_seq_lenrt  Úvalues_shapeÚis_boolÚ
padded_outs               r   Úto_padded_tensor_defaultrŒ  @  s>  € õ
 'Ø�4 ÀTðñ ô �M€A€zð �.Š.˜Ñ
!Ô
!€Cà
„|ÐÝØMñ
ô 
ð 	
ð
 ˜]Ô+€KØÐØ! #¤/Ô2ˆˆð Ô%Ð1ð ŒOˆOà”×!Ò! !Ñ$Ô$ð 	ð �ZŠZ‰\Œ\€FØ
„˜ÒÐØ×!Ò! #¤/°AÑ"5°qÑ9Ô9ˆØ”<€LØ‡z‚z�|„|�aÒÐØ—’¨!�Ñ,Ô,ˆˆØ	�Š‰Œ˜Ò	Ð	Ø×!Ò! "Ñ%Ô%ˆð Œl�eœjÐ(€GØð '�6”>ð 'Ø—’�5œ:Ñ&Ô&ˆÝ””×?Ò?ØØ	ŒˆØ	ˆØ�9Ôñ	ô €Jð ð /�:Ô%ð /Ø—]’]¥5¤:Ñ.Ô.ˆ
õ ˆ<ÑÔ˜1ÒÐØ×)Ò)¨"¨l¸1¸2¸2Ô.>Ñ?Ô?ˆ
ˆ
Ý	ˆ\Ñ	Ô	˜aÒ	Ð	Ø×'Ò'¨Ñ+Ô+ˆ
Ø
„˜ÒÐØ×)Ò)¨#¬/¸1Ñ=Ô=ˆ
àÐr   zcpadded: t, offsets: t, dummy: jt, ragged_idx: any?, min_seqlen: any?, max_seqlen: any?, sum_S: any?c                 óð  — t          | ||d¬¦  «        \  }}|d         |d         }}|                     dd¦  «        }|dk    r|                     |d¦  «        }|j        }|                     ¦   «         dk    r|                     d¬	¦  «        }n-|                     ¦   «         dk     r|                     d
¦  «        }|j        t          j	        u }	|	r&|j
        r|                     t          j        ¦  «        }t          j        j                             ||g|d         ¦  «        }
|	r&|
j
        r|
                     t          j	        ¦  «        }
t!          |¦  «        dk    r|
                     d
|dd …         ¦  «        }
n(t!          |¦  «        dk     r|
                     d
¦  «        }
|dk    r|
                     |dz
  d¦  «        }
|d         }|d         }i }|�||d<   |�||d<   t'          |
|||¬¦  «        S )NTrä   Úpaddedrµ   r4   r   rÍ  r�   r  rG   rÉ   r   rÊ   rË   )rS   r·   )r   rž   r  r‹   r"   rÝ   r®  r  rL   r…  r†  r8  r‡  rý   rþ   rY  ra   r#  rŒ   r
   )rg   rh   ri   rõ   rö   rŽ  rµ   r4   Úpadded_ragged_dim1_shaperŠ  rt  rÊ   rË   Úmetadata_caches                 r   Ú"_nested_from_padded_tensor_defaultr‘    s  € õ
 'Ø�4 ÀTðñ ô �M€A€zð ! Ô*¨J°yÔ,AˆG€FØ—’ ¨aÑ0Ô0€Jð �A‚~€~Ø×!Ò! *¨aÑ0Ô0ˆØ%œ|ÐØ‡z‚z�|„|�aÒÐØ—’¨!�Ñ,Ô,ˆˆØ	�Š‰Œ˜Ò	Ð	Ø×!Ò! "Ñ%Ô%ˆð Œl�eœjÐ(€GØð '�6”>ð 'Ø—’�5œ:Ñ&Ô&ˆÝŒYŒ^×;Ò;Ø��	˜: gÔ.ñô €Fð ð '�6”>ð 'Ø—’�5œ:Ñ&Ô&ˆõ Ð#Ñ$Ô$ qÒ(Ð(Ø×!Ò! "Ð&>¸q¸r¸rÔ&BÑCÔCˆˆÝ	Ð%Ñ	&Ô	&¨Ò	*Ð	*Ø—’ Ñ#Ô#ˆØ�A‚~€~Ø×!Ò! *¨q¡.°!Ñ4Ô4ˆà˜LÔ)€JØ˜LÔ)€JØ€NØÐØ'1ˆ�|Ñ$ØÐØ'1ˆ�|Ñ$åØØØØ&ð	ñ ô ð r   zcvalues: t, offsets: t, dummy: jt_all, lengths: t?, ragged_idx: any?, min_seqlen: t?, max_seqlen: t?c                 óÖ   — t          | ||d¬¦  «        \  }}|d         |d         |d         }}}|d         }|d         }	|d         }
i }|	�|	|d<   |
�|
|d<   t          |||||¬	¦  «        S )
NTrä   rß   rµ   r¶   r4   rÊ   rË   )r¶   rS   r·   )r   r
   )rg   rh   ri   rõ   rö   rt  rµ   r¶   r4   rÊ   rË   r�  s               r   Ú _nested_view_from_jagged_defaultr“  ¸  s³   € õ
 'Ø�4 ÀTðñ ô �M€A€zð
 	�7ÔØ�9ÔØ�9Ôð ˆG€Fð
 ˜LÔ)€JØ˜LÔ)€JØ˜LÔ)€JØ€NØÐØ'1ˆ�|Ñ$ØÐØ'1ˆ�|Ñ$åØØØØØ&ðñ ô ð r   c                 óf   — t          | ||d¬¦  «        \  }}|                     d¦  «        }|j        S r  )r   rï   rÒ   r!  s         r   Ú_nested_get_offsetsr•  Ø  ó>   € å&Ø�4 ÀTðñ ô �M€A€zð �.Š.˜Ñ
!Ô
!€CØŒ<Ðr   c                 óf   — t          | ||d¬¦  «        \  }}|                     d¦  «        }|j        S r  )r   rï   rR   r!  s         r   Ú_nested_get_lengthsr˜  â  r–  r   c                 óf   — t          | ||d¬¦  «        \  }}|                     d¦  «        }|j        S r  )r   rï   rS   r!  s         r   Ú_nested_get_ragged_idxrš  ì  s>   € å&Ø�4 ÀTðñ ô �M€A€zð �.Š.˜Ñ
!Ô
!€CØŒ?Ðr   c                 óŽ   — t          | ||d¬¦  «        \  }}|                     d¦  «        }|j                             dd ¦  «        S )NTrä   rß   rÊ   ©r   rï   r·   rž   r!  s         r   Ú_nested_get_min_seqlenr�  ö  óO   € å&Ø�4 ÀTðñ ô �M€A€zð �.Š.˜Ñ
!Ô
!€CØÔ×"Ò" <°Ñ6Ô6Ð6r   c                 óŽ   — t          | ||d¬¦  «        \  }}|                     d¦  «        }|j                             dd ¦  «        S )NTrä   rß   rË   rœ  r!  s         r   Ú_nested_get_max_seqlenr    	  rž  r   zself: jt, mask: anyc                 ó<  — t          | ||d¬¦  «        \  }}|                     d¦  «        }|                     d¦  «        }|j        dk    rt          d¦  «        ‚|j        |j        k    rt          d|j        › d|j        › �¦  «        ‚|j                             |                     ¦   «         ¦  «        }t          j	        |                     ¦   «          
                    d	¬
¦  «        d¦  «        }t          |¦  «        }||j                 |d<   t          dd|i|¤ŽS )NTrä   rß   ri  r�   z3masked_select only support 2-D selections currentlyzMask with shape z& is not compatible with input's shape r   rR  r‰  rµ   rt  r1   )r   rï   r   r&   r‹   r¾   Úmasked_selectrt  r‹  rŒ  r‡  r¸   rÒ   r
   )	rg   rh   ri   rõ   rö   r÷   ri  Ú
res_valuesÚmask_cumsums	            r   Úmasked_select_defaultr¥  	  s(  € å&Ø�4 ÀTðñ ô �M€A€zð �.Š.˜Ñ
!Ô
!€CØ�>Š>˜&Ñ!Ô!€Dà
„x�!‚|€|ÝÐPÑQÔQÐQØ	Œ�d”jÒ	 Ð	 ÝØ\˜tœzÐ\Ð\ÐQTÔQZÐ\Ð\ñ
ô 
ð 	
ð ”×*Ò*¨4¯;ª;©=¬=Ñ9Ô9€JÝ”%˜Ÿš™œ×,Ò,°Ð,Ñ3Ô3°VÑ<Ô<€Kå˜#ÑÔ€DØ! #¤,Ô/€Dˆ�OÝð ð Øðà
ðð ð r   z2grad_output: t, self: jt_all, dim: any, index: anyc                 ó&  — t          | ||d¬¦  «        \  }}|                     d¦  «        }|                     d¦  «        }t          j        ||j        ¬¦  «        }|                     |d         |d         ¦  «                             |¦  «         |S )NTrä   rß   r%  )r  r"   r  )r   rï   rL   Ú
zeros_liker  r6  rF  )rg   rh   ri   rõ   rö   r÷   r%  Ú
grad_inputs           r   Ú_nested_select_backward_defaultr©  $	  s•   € õ
 'Ø�4 ÀTðñ ô �M€A€zð �.Š.˜Ñ
!Ô
!€CØ—.’. Ñ/Ô/€KåÔ! #¨[Ô->Ð?Ñ?Ô?€JØ×Ò�j Ô'¨°GÔ)<Ñ=Ô=×CÒCÀKÑPÔPÐPàÐr   zself: jt_all, s: anyc                 óž   — |d         }|d         } | |j         |¦  «          | |j        |¦  «         |j        � | |j        |¦  «         d S d S rŠ   )r¾   rÒ   rR   )rg   rh   ri   r÷   Ústreams        r   Úrecord_stream_defaultr¬  6	  sf   € à
ˆqŒ'€CØ�!ŒW€Fà€DˆŒ�fÑÔÐØ€DˆŒ�vÑÔÐØ
„|ÐØˆˆSŒ\˜6Ñ"Ô"Ð"Ð"Ð"ð  Ðr   zRself: jt_all, size: any, dtype: any?, layout: any?, device: any?, pin_memory: any?c                 óÄ   — t          | ||d¬¦  «        \  }}|                     d¦  «        }t          |d         ¦  «        dk    r | |j        fi |¤ŽS t	          d¦  «        ‚)NTrä   rß   r„   r   z2new_empty() not supported for NJT with shape != ())r   rï   ra   r¾   r&   r!  s         r   Únew_empty_defaultr®  A	  sy   € õ 'Ø�4 ÀTðñ ô �M€A€zð �.Š.˜Ñ
!Ô
!€Cå
ˆ:�fÔÑÔ !Ò#Ð#Øˆt�C”KÐ.Ð. :Ð.Ð.Ð.å
ÐKÑ
LÔ
LÐLr   zself: jt_all, ...c                 óˆ   — t          d„ |D ¦   «         ¦  «        }t           | d„ |D ¦   «         i |¤Žfi t          |¦  «        ¤ŽS )Nc              3   óD   K  — | ]}t          |t          ¦  «        ¯|V — Œd S r   rU   r»   s     r   r   z&activation_backward.<locals>.<genexpr>c	  s1   è è € ÐLÐL˜s­j¸½lÑ.KÔ.KÐL�sÐLÐLÐLÐLÐLÐLr   c              3   óR   K  — | ]"}t          |t          ¦  «        r|j        n|V — Œ#d S r   )r   r
   r¾   r»   s     r   r   z&activation_backward.<locals>.<genexpr>f	  s7   è è € ÐTÐTÈ�Z¨­\Ñ:Ô:ÐCˆcŒkˆkÀÐTÐTÐTÐTÐTÐTr   rÀ   )rg   rh   ri   r%  s       r   Úactivation_backwardr²  V	  sq   € õ ÐLÐL dÐLÑLÔLÑLÔL€KÝØˆØTÐTÈtÐTÑTÔTð	
àð	
ð 	
ðð õ
 ˜Ñ
%Ô
%ðð ð r   zself: jt_all, value: anyc                 óx   — t          | ||d¬¦  «        \  }}|                     d¦  «        } | |j        fi |¤Ž |S r  rL  r!  s         r   Úfill__Scalarr´  m	  sU   € å&Ø�4 ÀTðñ ô �M€A€zð �.Š.˜Ñ
!Ô
!€Cà€DˆŒÐ#Ð#˜
Ð#Ð#Ð#Ø€Jr   )Úflex_attentionÚflex_attention_backward)ÚGraphModuler1   ÚqueryÚkeyrŠ  Ú	score_modÚ
block_maskÚscaleÚkernel_optionsÚscore_mod_other_buffersÚmask_mod_other_buffersc	                 óæ  — |                       ¦   «         dk    r0|                      ¦   «         dk    r|                      ¦   «         dk    sJ ‚t          d„ ||z   D ¦   «         ¦  «        rt          d¦  «        ‚t          |                      ¦   «                              d¦  «        |                     ¦   «                              d¦  «        |                     ¦   «                              d¦  «        ||||||¬¦	  «	        }	t          j                             |	d          	                    dd¦  «         
                    d¦  «        | j        | j        | j        | j        ¬¦  «         	                    dd¦  «        }
t          j                             |	d          	                    dd¦  «         
                    d¦  «        | j        | j        | j        | j        ¬¦  «         	                    dd¦  «        }|
|fS )	Né   c              3   óX   K  — | ]%}t          |t          j        ¦  «        o|j        V — Œ&d S r   )r   rL   rM   r´  )r   Úbufs     r   r   zflex_njt.<locals>.<genexpr>�	  sI   è è € ð ð àõ 	�3�œÑ%Ô%Ð7¨#¬-ðð ð ð ð ð r   z‹flex_attention(): Nested tensor score_mod / mask_mod buffers are not currently supported. Please file an issue if this is important to you.r   )rº  r»  r¼  r½  r¾  r¿  r   r�   ©rÊ   rË   )r"   r6   r&   Úflex_attention_hoprt  r®  rL   r¼  Únested_tensor_from_jaggedr  rŒ   rÒ   rR   rÏ   rÐ   )r¸  r¹  rŠ  rº  r»  r¼  r½  r¾  r¿  r$   Ú
output_njtÚlogsumexp_njts               r   Úflex_njtrÉ  €	  så  € ð �9Š9‰;Œ;˜!ÒÐ §¢¡	¤	¨Q¢ °5·9²9±;´;À!Ò3CÐ3CÐ3CÐCõ ð ð à*Ð-CÑCðñ ô ñ ô ð 
õ ðUñ
ô 
ð 	
õ  Ø�Š‰Œ× Ò  Ñ#Ô#Ø�
Š
‰Œ×Ò˜qÑ!Ô!Ø�Š‰Œ× Ò  Ñ#Ô#ØØØØ%Ø 7Ø5ð
ñ 
ô 
€Fõ ”×7Ò7ØˆqŒ	×Ò˜A˜qÑ!Ô!×)Ò)¨!Ñ,Ô,ØŒØŒØÔ*ØÔ*ð 8ñ ô ÷ ‚i��1�o„oð õ ”L×:Ò:ØˆqŒ	×Ò˜A˜qÑ!Ô!×)Ò)¨!Ñ,Ô,ØŒØŒØÔ*ØÔ*ð ;ñ ô ÷ ‚i��1�o„oð ð ˜Ð&Ð&r   rú  Ú	logsumexpra  Úgrad_logsumexpÚfw_graphÚjoint_graph.c                 ó  — t          |                      ¦   «                              d¦  «        |                     ¦   «                              d¦  «        |                     ¦   «                              d¦  «        |                     ¦   «                              d¦  «        |                     ¦   «                              d¦  «        |                     ¦   «                              d¦  «        |                     ¦   «                              d¦  «        |||	|
|||¬¦  «        }|\  }}}}t          j                             |                     dd¦  «                             d¦  «        | j        | j	        | j
        | j        ¬¦  «                             dd¦  «        }t          j                             |                     dd¦  «                             d¦  «        |j        |j	        |j
        |j        ¬¦  «                             dd¦  «        }t          j                             |                     dd¦  «                             d¦  «        |j        |j	        |j
        |j        ¬¦  «                             dd¦  «        }||||fS )Nr   )rú  rÊ  ra  rË  rÌ  rÍ  r»  r¼  r½  r¾  r¿  r   r�   rÄ  )Úflex_attention_backward_hoprt  r®  rL   r¼  rÆ  r  rŒ   rÒ   rR   rÏ   rÐ   )r¸  r¹  rŠ  rú  rÊ  ra  rË  rÌ  rÍ  r»  r¼  r½  r¾  r¿  r$   Údense_q_gradÚdense_k_gradÚdense_v_gradÚscore_mod_other_buffer_gradsÚ
njt_q_gradÚ
njt_k_gradÚ
njt_v_grads                         r   Úflex_njt_backwardr×  ¹	  s>  € õ& )Ø�Š‰Œ× Ò  Ñ#Ô#Ø�
Š
‰Œ×Ò˜qÑ!Ô!Ø�Š‰Œ× Ò  Ñ#Ô#Ø�JŠJ‰LŒL×"Ò" 1Ñ%Ô%Ø×"Ò"Ñ$Ô$×.Ò.¨qÑ1Ô1Ø—’Ñ"Ô"×,Ò,¨QÑ/Ô/Ø%×,Ò,Ñ.Ô.×8Ò8¸Ñ;Ô;ØØØØØ%Ø 7Ø5ðñ ô €Fð$ NTÑJ€L�, Ð.JÝ”×7Ò7Ø×Ò˜q !Ñ$Ô$×,Ò,¨QÑ/Ô/ØŒØŒØÔ*ØÔ*ð 8ñ ô ÷ ‚i��1�o„oð õ ”×7Ò7Ø×Ò˜q !Ñ$Ô$×,Ò,¨QÑ/Ô/ØŒØŒØÔ(ØÔ(ð 8ñ ô ÷ ‚i��1�o„oð õ ”×7Ò7Ø×Ò˜q !Ñ$Ô$×,Ò,¨QÑ/Ô/ØŒØŒØÔ*ØÔ*ð 8ñ ô ÷ ‚i��1�o„oð ð ˜
 JÐ0LÐMÐMr   z	self: anyc                 ó"   — ddl m}  |¦   «         S )Nr   )Ú_nt_view_dummy)Ú$torch.nested._internal.nested_tensorrÙ  )rg   rh   ri   rÙ  s       r   Ú_nested_get_jagged_dummyrÛ  ù	  s"   € àCÐCÐCÐCÐCÐCàˆ>ÑÔÐr   rþ   ÚIMPLrÛ  ÚCPUÚCUDAÚMeta)F)TFF)r   )r1   r1   )èr©   r  rñ   Útypingr   r   rL   Útorch.nn.functionalrT  rU  r‹  Útorch.fx.operator_schemasr   Útorch.nested._internal.sdpar   rÎ   r
   r   ÚAnyÚ__annotations__r   ÚDictr   r.   r=   Ústrrt   r|   rˆ   r�   r™   rª   Úregister_jagged_funcÚCallabler²   r¸   r«   r¬   rû   rý   rþ   rÿ   r   r  r"   r  r  r  r	  r  Úprimr3  r  r„   r  r=  r  r  Úcloner  Úlinearr"  Úlinear_backwardr.  r8  r  r0  Ú_to_copyrD  rF  rG  r~  Ú
empty_likeÚ	ones_liker§  Ú
randn_likerJ  Úzero_rM  Ú_softmaxr_  Ú_softmax_backward_datarb  Únative_dropoutrg  Únative_dropout_backwardrj  r  Údim_intrn  rp  r_   rM   rw  ry  r|  r~  rƒ  r�  r  r  rª  rŒ   r¬  r®  r°  r¹  r½  r(  rÏ  ÚbmmrÓ  rÑ   rØ  r·  rÚ  rÝ  rä  Úwherer'  rç  Ú_pin_memoryré  Ú	is_pinnedrë  Úis_same_sizerí  rm  r£   r  rG  r  r  r
  Úpermuter  ÚviewÚ_unsafe_viewr  Únative_layer_normr/  Únative_layer_norm_backwardr4  r6  r7  r9  r:  Ú	index_putr>  ÚconvolutionrE  r)  rJ  rL  r6   r7   rN  rR  r�   rU  rW  r^  r[  rY  ra  rg  ri  rj  rm  rn  rp  rq  rt  ru  rÎ  rx  Ú	embeddingrz  Úembedding_dense_backwardr|  rt  Ú_nested_get_valuesr  r�  rÉ  rŒ  Ú_nested_from_padded_tensorr‘  Ú_nested_view_from_jaggedr“  r•  r˜  rš  r�  r   r¢  r¥  Ú_nested_select_backwardr©  Úrecord_streamr¬  Ú	new_emptyÚ	new_zerosÚnew_onesr®  Úelu_backwardÚhardshrink_backwardÚhardsigmoid_backwardÚhardtanh_backwardÚsoftplus_backwardÚsoftshrink_backwardr²  Úfill_ÚScalarr´  Ú&torch._higher_order_ops.flex_attentionrµ  rÅ  r¶  rÏ  Útorch.fx.graph_moduler·  Úpy_implÚTuplerX  rÉ  ÚUnionr×  rÛ  ÚlibraryÚ_scoped_libraryÚimplr1   r   r   ú<module>r     sü  ðà Ð Ð Ð Ð Ø €€€Ø €€€Ø Ð Ð Ð Ø !Ð !Ð !Ð !Ð !Ð !Ð !Ð !à €€€Ø Ð Ð Ð Ð Ð Ð Ð Ð Ø 8Ð 8Ð 8Ð 8Ð 8Ð 8Ø KÐ KÐ KÐ KÐ KÐ Kà 'Ð 'Ð 'Ð 'Ð 'Ð 'ð €ˆˆcŒÐ Ð Ñ à#%Ð �$�s˜C�x”.Ð %Ð %Ñ %ð3ð 3ð 3ð 3ð. ØØðð ð ð ð:Yð Yð Yð Yð8=˜Sð =¸Dð =ð =ð =ð =ð@
Øð
Ø#&ð
Ø+7ð
ØADð
à	ð
ð 
ð 
ð 
ðð ð ðð ð ð0ð ð ð. )�yÔ(¨Ð8HÑIÔIÐ ð&¨H°XÔ,>ð &ð &ð &ð &ðRð ð ðð ð ðKSð KSð KSð\E$ð E$ð E$ðP ÐàŒ	ŒÔ3Ô;ØŒ	ŒÔÔ'ØŒ	ŒÔÔ"ØŒ	ŒÔÔ$ØŒ	ŒÔ Ô(ØŒ	ŒÔ!Ô)ØŒ	ŒÔ)Ô1ðð ñô ð0ð 0ñô ð0ð, Ð�e”i”nÔ+Ô3°^ÑDÔDðð ñ EÔDðð ÐØ
„Y„^ÔÔ Ð!Øñô ð
ð 
ñ	ô ð
ð Ð�e”i”nÔ2Ô:¸NÑKÔKðFð Fñ LÔKðFð(Ð Ð Ø	„I„NÔ Ô.Ð0Sñô àñô ð ð
 ÐØ	„I„NÔÔ Ð"Fñô ðEð Eñô ðEð2 Ð�e”i”nÔ+Ô3Ð5UÑVÔVðPð Pñ WÔVðPð ÐØ	„I„NÔ"Ô*Ø<ñô ðð ñ	ô ðð> Ð�e”i”nÔ'Ô-Ð/JÑKÔKðPð Pñ LÔKðPð Ð�e”i”nÔ-Ô5°~ÑFÔFð%ð %ñ GÔFð%ðP ÐØ	„I„NÔÔ Ð"Qñô ðð ñô ðð$ DÐ Ð �U”Y”^Ô*Ô2°NÑ CÔ CØñô ð ð
 ÐàŒ	ŒÔ!Ô)ØŒ	ŒÔ Ô(ØŒ	ŒÔ!Ô)ØŒ	ŒÔ!Ô)ð	ð ñô ðPð Pñô ðPð Ð�e”i”nÔ*Ô2°NÑCÔCðð ñ DÔCðð ÐØ	„I„NÔÔ#Ð%Qñô ðEPð EPñô ðEPðP ÐØ	„I„NÔ)Ô1Ø=ñô ðð ñ	ô ðð ÐØ	„I„NÔ!Ô)Ð+Nñô ð
ð 
ñô ð
ð ÐØ	„I„NÔ*Ô2Ø+ñô ð	ð 	ñ	ô ð	ð ÐØ	„I„NÔÔØ8ñô ð>ð >ñ	ô ð>ð Ð�e”i”nÔ)Ô1Ð3NÑOÔOð+ð +ñ PÔOð+ð ÐØ	„I„NÔÔÐ!Gñô ðð ñô ðð" ÐØ	„I„NÔ#Ô+Ð-Tñô ðð ñô ðð" ÐØ	„I„NÔÔ!Ð#Pñô ð7ð 7ñô ð7ð  Ð�e”i”nÔ*Ô2Ð4VÑWÔWð(
ð (
ñ XÔWð(
ðV Ð�e”i”nÔ+Ô/Ð1JÑKÔKðEð Eñ LÔKðEðP Ð�e”i”nÔ,Ô0Ð2FÑGÔGðKð Kñ HÔGðKð Ð�e”i”nÔ.Ô6Ð8PÑQÔQðEð Eñ RÔQðEð, Ð�e”i”nÔ(Ô0Ð2JÑKÔKðð ñ LÔKðð0 Ð�e”i”nÔ+Ô3Ð5OÑPÔPðMð Mñ QÔPðMð` Ð�e”i”nÔ(Ô0Ð2KÑLÔLðEð Eñ MÔLðEð  ÐØ	„I„NÔÔ!Ð#Lñô ðNð Nñô ðNð  Ð�e”i”nÔ.Ô6Ð8LÑMÔMðKð Kñ NÔMðKð Ð�e”i”nÔ1Ô9Ð;TÑUÔUðð ñ VÔUðð" Ð�e”i”nÔ6Ô>ÀÑOÔOðð ñ PÔOðð> ÐØ	„I„NÔÔÐIñô ðð ñô ðð$ Ð�e”i”nÔ0Ô8Ð:RÑSÔSðPð Pñ TÔSðPð Ð�e”i”nÔ.Ô6Ð8PÑQÔQð+ð +ñ RÔQð+ð ÐØ	„I„NÔÔ'Ð)Fñô ð*ð *ñô ð*ðgFð gFð gFðT Ð�e”i”nÔ(Ô0Ð2MÑNÔNð+ð +ñ OÔNð+ð ÐØ	„I„NÔÔ"Ø9ñô ð=ð =ñ	ô ð=ð ÐØ	„I„NÔÔ Ð"Fñô ð'Pð 'Pñô ð'PðT Ð�e”i”nÔ,Ô4Ð6OÑPÔPð%Gð %Gñ QÔPð%GðP ÐØ
„Y„^ÔÔ  %¤)¤.Ô"=Ô"EÐFØñô ð,Rð ,Rñ	ô ð,Rð^ ÐØ	„I„NÔ$Ô,ØNñô ð^Dð ^Dñ	ô ð^DðB ÐØ	„I„NÔ-Ô5Øvñô ð
Kð 
Kñ	ô ð
Kð Ð�e”i”nÔ+Ô/Ð1UÑVÔVðGð Gñ WÔVðGð8 ÐØ	„I„NÔÔØ=ñô ð
Pð 
Pñ	ô ð
Pð ÐØ	„I„NÔÔ$Ø>ñô ð ÐØ	„I„NÔÔ%Ø>ñô ðQð Qñ	ô ñ	ô ðQðh ÐØ	„I„NÔÔ&ðGñô ð
Pð Pñô ð
Pð ÐØ	„I„NÔÔÐRñô ð#Lð #Lñô ð#LðL Ð�e”i”nÔ)Ô1Ð3NÑOÔOð+ð +ñ PÔOð+ð Ð�e”i”nÔ(Ô-Ð/WÑXÔXðAð Añ YÔXðAð Ð�e”i”nÔ(Ô,Ð.UÑVÔVð;ð ;ñ WÔVð;ð Ð�e”i”nÔ(Ô-Ð/WÑXÔXð@ð @ñ YÔXð@ð Ð�e”i”nÔ(Ô,Ð.UÑVÔVð;ð ;ñ WÔVð;ð ÐàŒ	ŒÔÔ"ØŒ	ŒÔÔ"ØŒ	ŒÔÔ"ØŒ	ŒÔÔ"ð	ð ñô ð+ð +ñô ð+ð Ð�e”i”nÔ(Ô,Ð.UÑVÔVðEð Eñ WÔVðEð Ð�e”i”nÔ(Ô,Ð.UÑVÔVðEð Eñ WÔVðEð ÐØ	„I„NÔÔÐ!Iñô ðFð Fñô ðFð ÐØ	„I„NÔÔÐ!Iñô ðFð Fñô ðFð ÐØ	„I„NÔÔ!Ð#Kñô ðHð Hñô ðHð ÐØ	„I„NÔÔ!Ð#Kñô ðHð Hñô ðHð Ð�e”i”nÔ*Ô2Ð4LÑMÔMðð ñ NÔMðð< ÐØ	„I„NÔÔ$ØWñô ðð ñ	ô ðð ÐØ	„I„NÔ+Ô3Ø_ñô ðDð Dñ	ô ðDð ÐàŒ	ŒÔÔ%ØŒ	ŒÔ)Ô1ðð ñô ð	 ð 	 ñô ð	 ð Ð�e”i”nÔ(Ô0°.ÑAÔAðð ñ BÔAðð ÐØ	„I„NÔ#Ô+Ø3ñô ð8ð 8ñ	ô ð8ðv ÐØ	„I„NÔ-Ô5Øiñô ð2ð 2ñ	ô ð2ðj ÐØ	„I„NÔ+Ô3Øiñô ðð ñ	ô ðð8 Ð�e”i”nÔ8Ô@À.ÑQÔQðð ñ RÔQðð Ð�e”i”nÔ8Ô@À.ÑQÔQðð ñ RÔQðð Ð�e”i”nÔ;ÔCÀ^ÑTÔTðð ñ UÔTðð Ð�e”i”nÔ;ÔCÀ^ÑTÔTð7ð 7ñ UÔTð7ð Ð�e”i”nÔ;ÔCÀ^ÑTÔTð7ð 7ñ UÔTð7ð Ð�e”i”nÔ2Ô:Ð<QÑRÔRðð ñ SÔRðð0 ÐØ	„I„NÔ*Ô2Ø8ñô ðð ñ	ô ðð Ð�e”i”nÔ2Ô:Ð<RÑSÔSð#ð #ñ TÔSð#ð ÐàŒ	ŒÔ Ô(ØŒ	ŒÔ Ô(ØŒ	ŒÔÔ'ðð
 Yñô ð
Mð 
Mñô ð
Mð ÐàŒ	ŒÔ#Ô+ØŒ	ŒÔ*Ô2ØŒ	ŒÔ+Ô3ØŒ	ŒÔ(Ô0ØŒ	ŒÔ(Ô0ØŒ	ŒÔ*Ô2ðð ñ
ô 
ð	ð 	ñ
ô 
ð	ð Ð�e”i”nÔ*Ô1Ð3MÑNÔNðð ñ OÔNððð ð ð ð ð ð ð ð .Ð -Ð -Ð -Ð -Ð -ð ÐÔ˜LÑ)Ô)ð &(Ø$&ð5'ð 5'ØŒ<ð5'à	Œð5'ð Œ<ð5'ð ð	5'ð
 ð5'ð ð5'ð ˜˜c˜”Nð5'ð #ð5'ð "ð5'ð ˆ5Œ<˜œÐ%Ô&ð5'ð 5'ð 5'ñ *Ô)ð5'ðp %ÐÔ$ \Ñ2Ô2ð &(Ø$&ð;Nð ;NØŒ<ð;Nà	Œð;Nð Œ<ð;Nð 
Œð	;Nð
 Œ|ð;Nð Œlð;Nð ”Lð;Nð �H˜kÐ)Ô*ð;Nð ð;Nð ð;Nð ð;Nð ˜˜c˜”Nð;Nð #ð;Nð "ð;Nð Ø	„L�%”, ¤¨e°H¸U¼\Ô4JÈCÐ4OÔ.PÐPôð;Nð ;Nð ;Nñ 3Ô2ð;Nð~ Ð�e”i”nÔ=ÔEÀ{ÑSÔSðð ñ TÔSðð „]×"Ò" 6¨6Ñ2Ô2ð L°dØ‡I‚IÐ(Ð*BÀEÑJÔJÐJØ‡I‚IÐ(Ð*BÀFÑKÔKÐKØ‡I‚IÐ(Ð*BÀFÑKÔKÐKðLð Lð Lñ Lô Lð Lð Lð Lð Lð Lð Lð Løøøð Lð Lð Lð Lð Lð Ls   ÁCAAD(ÁD(AD,ÁD/AD,