§
    ŠŠtj^" ã                  ób  — d dl mZ d dlZd dlZd dlZd dlZd dlZd dlmZ d dlm	Z	m
ZmZmZ d dlmZ d dlZd dlZd dlZd dlmZ d dlmZ d dlmZ d dlmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$ d d	l%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+ d d
l,m-Z- d dl.m/Z/ erd dl0m1Z1m2Z2 d dl%m3Z3 d dl4m5Z5 e(ej6        z  Z7 ed¦  «        Z8 ed¦  «        Z9 ed¦  «        Z:ej        j;        Z<g d¢Z=i Z>g Z?ej@        jA        jB        ZBdÜd„ZCdÝd„ZD eCg eBjE        jF        ‘eBjE        jG        ‘eBjH        jF        ‘eBjH        jG        ‘eBjI        jF        ‘eBjI        jG        ‘eBjJ        jF        ‘eBjJ        jK        ‘eBjJ        jG        ‘eBjJ        jL        ‘eBjM        jF        ‘eBjM        jK        ‘eBjM        jG        ‘eBjM        jL        ‘eBjN        jF        ‘eBjN        jK        ‘eBjN        j6        ‘eBjN        jO        ‘eBjN        jP        ‘eBjN        jQ        ‘eBjN        jG        ‘eBjN        jL        ‘eBjN        jR        ‘eBjN        jS        ‘eBjN        jT        ‘eBjN        jU        ‘eBjV        jF        ‘eBjV        jG        ‘eBjW        jF        ‘eBjW        jG        ‘eBjX        jF        ‘eBjX        jG        ‘eBjY        jF        ‘eBjY        jG        ‘eBjZ        jF        ‘eBjZ        jG        ‘eBj[        jF        ‘eBj[        jG        ‘R Ž Z\ eCeBj]        jF        eBj^        jF        eBj^        jG        eBj_        jF        eBj`        ja        eBj`        jb        eBjc        jF        eBjd        jF        eBjd        jG        eBje        jF        eBje        jG        ¦  «        ZfeBjg        fZhdÞd„Ziejj        dßd „¦   «         Zkdàd$„Zldád&„Zmdâd(„Zn ele>jo        ¦  «        dãd-„¦   «         Zp elek¦  «         elg e\¢¦  «        däd/„¦   «         ¦   «         Zq eleBjc        jF        ¦  «        dåd0„¦   «         Zr elejA        js        jt        jF        ¦  «        	 dædçd4„¦   «         Zt elejA        js        ju        jF        ¦  «        dèd6„¦   «         Zu elejA        js        jv        jF        ¦  «        	 dædéd7„¦   «         Zv eleBj`        jb        ¦  «         eleBj`        ja        ¦  «        däd8„¦   «         ¦   «         Zwdád9„Zx elex¦  «        däd:„¦   «         Zy eleBjz        jF        ¦  «        däd;„¦   «         Zz eleBj{        jF        ¦  «        däd<„¦   «         Z{dêd@„Z|dëdF„Z}dìdG„Z~dídK„ZdîdN„Z€ eleBj�        jF        ¦  «        	 dædïdT„¦   «         Z� eleBj‚        jF        ¦  «        	 	 dðdñdZ„¦   «         Z‚ eld[„ ¦  «        dòd\„¦   «         Zƒ	 	 	 dód^d_œdôdg„Z„ eleBj…        jF        ¦  «        	 	 	 dódõdh„¦   «         Z† eleBj„        jF        ¦  «        	 	 död÷dj„¦   «         Z‡ eleBjˆ        j‰        ¦  «        dødm„¦   «         ZŠ eleBj‹        jF        ¦  «        	 	 	 dódùdn„¦   «         Z‹ eleBjŒ        jF        ¦  «        	 	 	 dúdûdo„¦   «         ZŒ	 düdýdv„Z�dþdw„ZŽdÿdz„Z��d d}„Z��dd„Z‘�d d€„Z’	 	 	 dó�dd„„Z“ eleBj”        jF        ¦  «        �dd†„¦   «         Z” eleBj•        jF        ¦  «         eleBj–        jF        ¦  «        d^d‡œ�ddˆ„¦   «         ¦   «         Z— eleBj˜        jF        ¦  «        dd‰œ�ddŒ„¦   «         Z™ eleBjš        j6        ¦  «        	 dæ�dd�„¦   «         Z› elejA        jB        jœ        jF        ¦  «         elejA        jB        j�        jF        ¦  «        �dd’„¦   «         ¦   «         Zž elejA        jB        jŸ        jF        ¦  «        �dd”„¦   «         ZŸ elejA        jB        j         jF        ¦  «        �d	d•„¦   «         Z  elejA        jB        j¡        jF        ¦  «        	 dæ�d
d˜„¦   «         Z¡�ddš„Z¢ elejA        jB        j£        j6        ¦  «        	 	 	 	 �d�ddŸ„¦   «         Z¤ elejA        jB        j¥        jF        ¦  «        �dd¡„¦   «         Z¥ elejA        jB        j¦        jF        ¦  «        	 	 	 �dddd¢œ�dd©„¦   «         Z§ eldª„ ¦  «        dòd«„¦   «         Z¨�dd®„Z©�dd±„Zª eCd²d³d´¦  «        Z«dádµ„Z¬dßd¶„Z­ eld·„ ¦  «        �dd¹„¦   «         Z® eleBj¯        j6        ¦  «        dädº„¦   «         Z° eleBj±        jF        ¦  «        �dd¼„¦   «         Z² eleBj³        jF        ¦  «        dãd½„¦   «         Z³ eleBj´        jF        ¦  «         eleBjµ        jF        ¦  «         eleBj¶        jF        ¦  «         eleBj·        jF        ¦  «         eleBj¸        jF        ¦  «        däd¾„¦   «         ¦   «         ¦   «         ¦   «         ¦   «         Z¹ eleBjµ        jG        ¦  «         eleBj·        jG        ¦  «        däd¿„¦   «         ¦   «         Zº eleBj»        jF        ¦  «         eleBj¼        jF        ¦  «        dädÀ„¦   «         ¦   «         Z½ eleBj^        jF        ¦  «         eleBj^        jG        ¦  «         eleBj¾        jF        ¦  «         eleBj¿        jF        ¦  «        dòdÁ„¦   «         ¦   «         ¦   «         ¦   «         ZÀ eldÂ„ efD ¦   «         ¦  «        dòdÃ„¦   «         ZÁ eleBjÂ        jF        eBjÃ        jF        eBjÃ        jÄ        eBjÅ        jF        g¦  «        �ddÅ„¦   «         ZÆ elejA        jB        jÇ        jF        ¦  «        	 	 �d�ddÉ„¦   «         ZÇ elejA        jB        jÈ        jF        ¦  «        �ddÌ„¦   «         ZÈi ZÉ�ddÍ„ZÊ�ddÐ„ZËejÌ        f�ddÖ„ZÍ	 dü�ddÙ„ZÎejj        �ddÛ„¦   «         ZÏdS (  é    )ÚannotationsN©Úreduce)ÚAnyÚcastÚTYPE_CHECKINGÚTypeVar)Ú	ParamSpec)Úno_python_dispatcher)Ú
OpOverload)Úcanonicalize_dimÚelementwise_dtypesÚELEMENTWISE_TYPE_PROMOTION_KINDÚis_boolean_dtypeÚis_contiguousÚ(is_contiguous_for_memory_format_or_falseÚis_contiguous_or_falseÚis_float_dtypeÚis_integer_dtypeÚmake_contiguous_strides_forÚ	ShapeType)ÚDataDependentOutputExceptionÚDynamicOutputShapeExceptionÚ
FakeTensorÚin_kernel_invocation_managerÚrun_fallback_kernelÚUnsupportedOperatorException)Ú_normalize_function_or_error©Úcount_label)ÚCallableÚSequence)ÚFakeTensorMode)ÚIntLikeTypeÚ_PÚ_RÚ_T)Úop_implementations_checksÚget_fast_op_implsÚstride_incorrect_opÚhas_metaÚitemsÚreturnúdict[_T, bool]c                 ó8   — t                                | d¦  «        S )NT)ÚdictÚfromkeys)r,   s    úZ/var/www/html/CA-Chatbot/venv/lib/python3.11/site-packages/torch/_subclasses/fake_impls.pyÚordered_setr3   I   s   € Ý�=Š=˜ Ñ%Ô%Ð%ó    Údeviceútorch.deviceÚboolc                ó   — | j         dk    S )NÚhpu)Útype©r5   s    r2   Úis_noncontiguous_supportedr<   O   s   € ØŒ;˜%ÒÐr4   Útype_r   c                óÈ   — t           j        j                             ¦   «         }|                      |¦  «        p*t          d„ |                      ¦   «         D ¦   «         ¦  «        S )Nc              3  ó4   K  — | ]}t          |¦  «        V — Œd S ©N)Úcontains_tensor_types)Ú.0Úes     r2   ú	<genexpr>z(contains_tensor_types.<locals>.<genexpr>‘   s<   è è € ð 1ð 1Ø%&Õ˜aÑ Ô ð1ð 1ð 1ð 1ð 1ð 1r4   )ÚtorchÚ_CÚ
TensorTypeÚgetÚisSubtypeOfÚanyÚcontainedTypes)r=   Útensor_types     r2   rA   rA   �   sg   € Ý”(Ô%×)Ò)Ñ+Ô+€KØ×Ò˜[Ñ)Ô)ð ­Sð 1ð 1Ø*/×*>Ò*>Ñ*@Ô*@ð1ñ 1ô 1ñ .ô .ð r4   Úfuncr   c                óR  — t          | t          ¦  «        st          dt          | ¦  «        › �¦  «        ‚| j        }t          d„ |j        D ¦   «         ¦  «        rdS t          |j        ¦  «        dk    o4|j        d         j        t          j
        j                             ¦   «         u S )Nz func must be an OpOverload, got c              3  ó>   K  — | ]}t          |j        ¦  «        V — Œd S r@   )rA   r:   ©rB   Úargs     r2   rD   z)_is_tensor_constructor.<locals>.<genexpr>›   s-   è è € Ð
GÐ
G¨sÕ  ¤Ñ*Ô*Ð
GÐ
GÐ
GÐ
GÐ
GÐ
Gr4   Fé   r   )Ú
isinstancer   ÚAssertionErrorr:   Ú_schemarJ   Ú	argumentsÚlenÚreturnsrE   rF   rG   rH   )rM   Úschemas     r2   Ú_is_tensor_constructorrZ   –   sž   € å�d�JÑ'Ô'ð NÝÐLÅÀTÁ
Ä
ÐLÐLÑMÔMÐMØŒ\€FÝ
Ð
GÐ
G°fÔ6FÐ
GÑ
GÔ
GÑGÔGð Øˆuõ 	ˆFŒNÑÔ˜qÒ ÐX V¤^°AÔ%6Ô%;½u¼xÔ?R×?VÒ?VÑ?XÔ?XÐ%Xðr4   Úrun_impl_checkúUCallable[[OpOverload], bool] | OpOverload | list[OpOverload] | tuple[OpOverload, ...]ú.Callable[[Callable[_P, _R]], Callable[_P, _R]]c                ó   ‡ — dˆ fd„}|S )NÚop_implúCallable[_P, _R]r-   c                ó†  •— t          ‰t          ¦  «        r&‰t          v rt          d‰› �¦  «        ‚| t          ‰<   n„t          ‰t          t
          f¦  «        r‰D ]} t          |¦  «        | ¦  «         ŒnJt          ‰¦  «        st          dt          ‰¦  «        › �¦  «        ‚t           
                    ‰| f¦  «         | S )Nzduplicate registration: z%run_impl_check must be callable, got )rS   r   Úop_implementations_dictrT   ÚlistÚtupleÚregister_op_implÚcallabler:   r(   Úappend)r_   Úopr[   s     €r2   Úimpl_decoratorz(register_op_impl.<locals>.impl_decorator©   så   ø€ Ý�n¥jÑ1Ô1ð 	HØÕ!8Ð8Ð8Ý$Ð%PÀÐ%PÐ%PÑQÔQÐQØ6=Õ# NÑ3Ð3Ý˜­­u¨Ñ6Ô6ð 	HØ$ð .ð .�Ø$Õ  Ñ$Ô$ WÑ-Ô-Ð-Ð-ð.õ ˜NÑ+Ô+ð Ý$ØR½DÀÑ<PÔ<PÐRÐRñô ð õ &×,Ò,¨n¸gÐ-FÑGÔGÐGàˆr4   ©r_   r`   r-   r`   © )r[   ri   s   ` r2   re   re   £   s)   ø€ ðð ð ð ð ð ð" Ðr4   rh   c                ó   — | t           v S r@   ©rb   ©rh   s    r2   Ú_is_op_registered_to_fake_rulero   ½   s   € ØÕ(Ð(Ð(r4   ÚNonec                óœ   — t                                | d ¦  «         t          D ](\  }}|| u rt                               ||f¦  «          d S Œ)d S r@   )rb   Úpopr(   Úremove)rh   ÚcheckÚimpls      r2   Ú_deregister_op_implrv   Á   sb   € Ý×Ò  DÑ)Ô)Ð)Ý0ð ð ‰ˆˆtØ�Bˆ;ˆ;Ý%×,Ò,¨e°T¨]Ñ;Ô;Ð;ØˆEˆEð ðð r4   Ú	fake_moder#   ÚargsÚkwargsc                ó0   — t          |         | |g|¢R i |¤ŽS r@   rm   ©rw   rM   rx   ry   s       r2   Ú#dispatch_to_op_implementations_dictr|   É   s)   € õ # 4Ô(¨°DÐJ¸4ÐJÐJÐJÀ6ÐJÐJÐJr4   r   c                óÐ  — |t           v rt          d|› �¦  «        ‚t          |||d¬¦  «        \  }}|t          v r$|d         j        }|                     d¦  «        f}nt          j        d¦  «        }d}|                     dd ¦  «        }|�|n|}t          j        d¦  «        |d<   t          | ¦  «        5   ||i |¤Ž}d d d ¦  «         n# 1 swxY w Y   t          | ||¦  «        S )	Nz8func must not be in _non_kwarg_device_constructors, got T©rx   ry   Únormalize_to_only_use_kwargsÚinputÚcpurk   r5   Úmeta)	Ú_non_kwarg_device_constructorsrT   r   Ú_like_tensor_constructorsr5   rr   rE   r   r   )	rw   rM   rx   ry   Ú_Ú
new_kwargsÚdefault_deviceÚ
out_deviceÚrs	            r2   ÚconstructorsrŠ   Ð   sW  € ð
 Õ-Ð-Ð-ÝØMÀtÐMÐMñ
ô 
ð 	
õ 1Ø�4 ÀTðñ ô �M€A€zð Õ(Ð(Ð(Ø# GÔ,Ô3ˆà—’˜wÑ'Ô'Ð)ˆˆõ œ eÑ,Ô,ˆØˆØ—’ ¨$Ñ/Ô/€JØ)Ð5��¸>€JÝ œ<¨Ñ/Ô/€JˆxÑõ 
& iÑ	0Ô	0ð &ð &ØˆD�$Ð%˜*Ð%Ð%ˆð&ð &ð &ñ &ô &ð &ð &ð &ð &ð &ð &øøøð &ð &ð &ð &å�i  JÑ/Ô/Ð/s   Â7	CÃCÃCc                óÀ   — t          |||d¬¦  «        \  }}|                     d¦  «        }t          | ¦  «        5   ||¦  «        }d d d ¦  «         n# 1 swxY w Y   |S )NT©r   r€   )r   rr   r   )rw   rM   rx   ry   r…   r†   Úinpr‰   s           r2   Únon_kwarg_is_pinnedrŽ   ï   s¯   € õ 1Øˆd�F¸ðñ ô �M€A€zð �.Š.˜Ñ
!Ô
!€Cõ 
& iÑ	0Ô	0ð ð ØˆD�‰IŒIˆðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð à€Hs   »AÁAÁAÚnameÚstrúobject | Nonec                óÚ   — t          | ¦  «        5   |||¦  «        }d d d ¦  «         n# 1 swxY w Y   t          j        |d¬¦  «        }t          | |t          j        d¦  «        ¦  «        S )Nr‚   r;   r�   )r   rE   Ú
empty_liker   r5   )rw   rM   r�   rx   Úreal_handleÚmeta_handles         r2   Ú_record_function_enterr–      s«   € õ
 
& iÑ	0Ô	0ð 'ð 'Ø�d˜4 Ñ&Ô&ˆð'ð 'ð 'ñ 'ô 'ð 'ð 'ð 'ð 'ð 'ð 'øøøð 'ð 'ð 'ð 'õ Ô" ;°vÐ>Ñ>Ô>€Kå�i ­e¬l¸5Ñ.AÔ.AÑBÔBÐBs   �)©-°-Úhandlec                ó   — d S r@   rk   )rw   rM   r—   s      r2   Ú_record_function_exitr™     s	   € ð 	€Dr4   c                ól   — t          | ¦  «        5   |||¦  «        cd d d ¦  «         S # 1 swxY w Y   d S r@   ©r   )rw   rM   r�   rx   s       r2   Ú_record_function_enter_newrœ     s…   € õ 
& iÑ	0Ô	0ð  ð  Øˆt�D˜$ÑÔð ð  ð  ð  ñ  ô  ð  ð  ð  ð  ð  ð  øøøð  ð  ð  ð  ð  ð  s   �)©-°-c                óP  — t          |||d¬¦  «        \  }}|d         }|r|n|d         j        }t          j        d¦  «        |d<   |                     d¦  «        }t	          | ¦  «        5   ||fi |¤Ž}	d d d ¦  «         n# 1 swxY w Y   | j                             | |	|¦  «        S )NTrŒ   r5   r€   r‚   )r   r5   rE   rr   r   Úfake_tensor_converterÚfrom_meta_and_device)
rw   rM   rx   ry   r…   r†   Úinput_devicerˆ   r�   r‰   s
             r2   Únon_kwarg_tor¡      s
  € õ
 1Øˆd�F¸ðñ ô �M€A€zð ˜hÔ'€LØ!-ÐM��°:¸gÔ3FÔ3M€JÝ œ<¨Ñ/Ô/€JˆxÑØ
�.Š.˜Ñ
!Ô
!€CÝ	% iÑ	0Ô	0ð $ð $ØˆD�Ð#Ð#˜
Ð#Ð#ˆð$ð $ð $ñ $ô $ð $ð $ð $ð $ð $ð $øøøð $ð $ð $ð $ð Ô*×?Ò?Ø�1�jñô ð s   Á+
BÂBÂBc                ó   — dS ©NFrk   rn   s    r2   r*   r*   4  s   € Øˆ5r4   c           	     ó:  ‡— dd„Š| j         r�t          ˆfd„t          j        ||                     ¦   «         ¦  «        D ¦   «         ¦  «        }|s?t
                               ||f¦  «        \  }}t          | |||t          d¦  «        ¦  «        S t          |¦  «        ‚)	NÚxÚobjectr-   r7   c                ó¤   — t          | t          ¦  «        r| j        S t          | t          j        t          j        t          j        f¦  «        rdS dS )NTF)rS   r   Ú_has_symbolic_sizes_stridesrE   ÚSymIntÚSymFloatÚSymBool©r¥   s    r2   Úis_symbolicz3workaround_stride_incorrect_op.<locals>.is_symbolic?  sF   € Ý�a�Ñ$Ô$ð 	1ØÔ0Ð0Ý�a�%œ,­¬½¼ÐFÑGÔGð 	Ø�4Øˆur4   c              3  ó.   •K  — | ]} ‰|¦  «        V — Œd S r@   rk   )rB   r¥   r­   s     €r2   rD   z1workaround_stride_incorrect_op.<locals>.<genexpr>H  s<   øè è € ð 
ð 
Ø ˆKˆK˜‰NŒNð
ð 
ð 
ð 
ð 
ð 
r4   z2Cannot run fallback kernel for stride_incorrect_op)r¥   r¦   r-   r7   )
Úallow_fallback_kernelsrJ   Ú	itertoolsÚchainÚvaluesÚpytreeÚtree_flattenr   ÚRuntimeErrorr   )rw   rM   rx   ry   Úrequire_dynamicÚ	flat_argsÚ	args_specr­   s          @r2   Úworkaround_stride_incorrect_opr¹   9  sÏ   ø€ ðð ð ð ð Ô'ð Ýð 
ð 
ð 
ð 
Ý$-¤O°D¸&¿-º-¹/¼/Ñ$JÔ$Jð
ñ 
ô 
ñ 
ô 
ˆð ð 
	Ý#)×#6Ò#6¸¸f°~Ñ#FÔ#FÑ ˆI�yÝ&ØØØØõ ÐQÑRÔRñô ð õ ' tÑ
,Ô
,Ð,r4   c                ód   — t          | ¦  «        5   ||i |¤Žcd d d ¦  «         S # 1 swxY w Y   d S r@   r›   r{   s       r2   Ú
resize_as_r»   \  sˆ   € õ 
& iÑ	0Ô	0ð %ð %Øˆt�TÐ$˜VÐ$Ð$ð%ð %ð %ð %ñ %ô %ð %ð %ð %ð %ð %ð %øøøð %ð %ð %ð %ð %ð %s   �%¥)¬)c                ó$   — t          | |g|¢R i |¤ŽS r@   )rŠ   r{   s       r2   Ú(_sparse_coo_tensor_with_dims_and_tensorsr½   d  s$   € õ ˜	 4Ð9¨$Ð9Ð9Ð9°&Ð9Ð9Ð9r4   ÚoffsetsÚFakeTensorLikeúlist[int] | Nonec                ó  — t          | dd ¦  «        }|€t          | dd ¦  «        }t          |t          ¦  «        rd S |�|j        j        dk    rd S d„ |                     d¦  «                             ¦   «         D ¦   «         S )NÚconstantÚreal_tensorr�   c                ó,   — g | ]}t          |¦  «        ‘ŒS rk   )Úint)rB   Úoffsets     r2   ú
<listcomp>z+_spdiags_static_offsets.<locals>.<listcomp>s  s   € ÐDÐDÐD˜F�C�‰KŒKÐDÐDÐDr4   éÿÿÿÿ)ÚgetattrrS   r   r5   r:   ÚreshapeÚtolist)r¾   rÂ   s     r2   Ú_spdiags_static_offsetsrÌ   k  s‰   € Ý�w 
¨DÑ1Ô1€HØÐÝ˜7 M°4Ñ8Ô8ˆÝ�(�JÑ'Ô'ð ØˆtØÐ˜8œ?Ô/°5Ò8Ð8ØˆtØDÐD h×&6Ò&6°rÑ&:Ô&:×&AÒ&AÑ&CÔ&CÐDÑDÔDÐDr4   ú	list[int]ÚrowsrÅ   ÚcolsÚ	diag_colsc                ó¶   ‡— d}t          ||¦  «        }| D ]B}|dk    rt          ||z   |¦  «        Šn||z
  Št          j        ‰dk    ˆfd„¦  «         |‰z  }ŒC|S )Nr   c                 ó   •— d‰ › �S )Nz0Trying to create tensor with negative dimension rk   )Únnz_per_diags   €r2   ú<lambda>z_spdiags_nnz.<locals>.<lambda>€  s   ø€ ÐUÀ|ÐUÐU€ r4   )ÚminrE   Ú_check)r¾   rÎ   rÏ   rÐ   ÚnnzÚpos_offset_limitrÆ   rÓ   s          @r2   Ú_spdiags_nnzrÙ   v  sŠ   ø€ Ø
€CÝ˜4 Ñ+Ô+ÐØð 	ð 	ˆØ�QŠ;ˆ;Ý˜v¨™}¨iÑ8Ô8ˆLˆLà+¨fÑ4ˆLÝŒØ˜AÒØUÐUÐUÐUñ	
ô 	
ð 	
ð 	ˆ|ÑˆˆØ€Jr4   c                ó†   — t          | |¦  «        }t          t          ||¦  «        dz
  d¦  «        }t          ||d¦  «        S )NrR   r   ©rÕ   Úmax)rÎ   rÏ   rÐ   Únon_positive_offset_maxÚpositive_offset_maxs        r2   Ú_spdiags_max_nnz_per_diagrß   †  sE   € Ý! $¨	Ñ2Ô2ÐÝ�c $¨	Ñ2Ô2°QÑ6¸Ñ:Ô:ÐÝÐ&Ð(;¸QÑ?Ô?Ð?r4   Úmax_sizeú
int | Noneútorch.SymIntc               ó¤   — | j         �| j         j        st          |¦  «        ‚| j                              ¦   «         }ddlm}  ||d|¬¦  «         |S )Nr   ©Ú_constrain_range_for_sizerÛ   )Ú	shape_envÚallow_dynamic_output_shape_opsr   Úcreate_unbacked_symintÚ%torch.fx.experimental.symbolic_shapesrå   )rw   rM   rà   r×   rå   s        r2   Ú_spdiags_dynamic_sizerê   Œ  sn   € ð 	ÔÐ#ØÔ"ÔAð 	$õ *¨$Ñ/Ô/Ð/à
Ô
×
4Ò
4Ñ
6Ô
6€CàOÐOÐOÐOÐOÐOàÐ˜c q¨hÐ7Ñ7Ô7Ð7Ø€Jr4   Úvaluer¦   c                óX   — t          | t          ¦  «        ot          | t          ¦  «         S r@   )rS   rÅ   r7   )rë   s    r2   Ú_spdiags_is_static_intrí      s$   € Ý�e�SÑ!Ô!ÐA­*°U½DÑ*AÔ*AÐ&AÐAr4   Ú	diagonalsÚshapeúSequence[int]Úlayoutútorch.layout | Nonec                ó®	  ‡‡‡‡— |                      ¦   «         }t          j        |dv d„ ¦  «         t          j        t          |¦  «        dk    d„ ¦  «         ‰                      ¦   «         }t          j        |dv d„ ¦  «         |dk    rdn|                     d¦  «        Š|dk    rdn‰                     d¦  «        Št          j        ‰‰k    ˆˆfd	„¦  «         ‰�;t          j        ‰t          j        t          j        t          j        fv ˆfd
„¦  «         t          j        ‰j        t          j	        k    ˆfd„¦  «         t          j        |j
        j        dk    o‰j
        j        dk    d„ ¦  «         |\  }}	|dk    r|                     d¦  «        n|                     d¦  «        }
t          d„ ||	|
‰fD ¦   «         ¦  «        }t          ‰¦  «        }|�At          j        t          |¦  «        t          t          |¦  «        ¦  «        k    d„ ¦  «         ‰�‰nt          j        }|r|dk    s|	dk    rd}nL|�|rt          |||	|
¦  «        }n5|r	‰dk    rd}n*|r‰t!          ||	|
¦  «        z  nd }t#          | ||¬¦  «        }t%          | ¦  «        5  t          j        |f|j        d¬¦  «        }t          j                             d¦  «        5  |t          j        k    r‚t          j        d|ft          j	        d¬¦  «        }t-          |t.          ¦  «        r|dk    nd}t          j        j        j                             |||t          j
        d¦  «        |¬¦  «        }�n!|t          j        k    r‰t          j        |dz   ft          j	        d¬¦  «        }t          j        |ft          j	        d¬¦  «        }t          j        j        j                             |||||t          j
        d¦  «        ¬¦  «        }nˆt          j        |	dz   ft          j	        d¬¦  «        }t          j        |ft          j	        d¬¦  «        }t          j        j        j                             |||||t          j
        d¦  «        ¬¦  «        }d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   | j                             | ||j
        ¦  «        S )N)rR   é   c                 ó   — dS )Nz"Diagonals must be vector or matrixrk   rk   r4   r2   rÔ   z_spdiags.<locals>.<lambda>®  s   € Ð2V€ r4   rô   c                 ó   — dS )NzOutput shape must be 2drk   rk   r4   r2   rÔ   z_spdiags.<locals>.<lambda>¯  s   € Ð*C€ r4   )r   rR   c                 ó   — dS )Nz Offsets must be scalar or vectorrk   rk   r4   r2   rÔ   z_spdiags.<locals>.<lambda>²  s   € Ð0R€ r4   rR   r   c                 ó   •— d‰ › d‰› d�S )NzNumber of diagonals (z() does not match the number of offsets (ú)rk   )Ún_diagsÚ	n_offsetss   €€r2   rÔ   z_spdiags.<locals>.<lambda>¸  s   ø€ Ðe¨ÐeÐeÐYbÐeÐeÐe€ r4   c                 ó   •— d‰ › �S )NzFOnly output layouts (Sparse, SparseCsc, SparseCsr) are supported, got rk   )rñ   s   €r2   rÔ   z_spdiags.<locals>.<lambda>¾  s   ø€ ÐeÐ]cÐeÐe€ r4   c                 ó   •— d‰ j         › �S )Nz+Offset Tensor must have dtype Long but got ©Údtype)r¾   s   €r2   rÔ   z_spdiags.<locals>.<lambda>Â  s   ø€ ÐM¸g¼mÐMÐM€ r4   r�   c                 ó   — dS )Nz,_spdiags is only implemented for CPU tensorsrk   rk   r4   r2   rÔ   z_spdiags.<locals>.<lambda>Æ  s   € Ð>€ r4   c              3  ó4   K  — | ]}t          |¦  «        V — Œd S r@   )rí   )rB   rë   s     r2   rD   z_spdiags.<locals>.<genexpr>Ë  s<   è è € ð ð Ø*/Õ˜uÑ%Ô%ðð ð ð ð ð r4   c                 ó   — dS )Nz'Offset tensor contains duplicate valuesrk   rk   r4   r2   rÔ   z_spdiags.<locals>.<lambda>Ó  s   € Ð=€ r4   )rà   r‚   ©rÿ   r5   F)r5   Úis_coalesced)rñ   r5   )ÚdimrE   rÖ   rW   ÚsizeÚ
sparse_cooÚ
sparse_cscÚ
sparse_csrrÿ   Úlongr5   r:   ÚallrÌ   ÚsetrÙ   rß   rê   r   ÚemptyÚsparseÚcheck_sparse_tensor_invariantsrS   rÅ   ÚopsÚatenÚ_sparse_coo_tensor_unsafeÚdefaultÚ _sparse_compressed_tensor_unsaferž   rŸ   )rw   rM   rî   r¾   rï   rñ   Údiagonals_dimÚoffsets_dimrÎ   rÏ   rÐ   Ústatic_sizesÚstatic_offsetsÚ
out_layoutr×   Úmax_nnzr²   Úindicesr  ÚoutÚcrow_indicesÚcol_indicesÚccol_indicesÚrow_indicesrú   rû   s      ` `                  @@r2   Ú_spdiagsr!  ¤  s  øøøø€ ð —M’M‘O”O€MÝ	„L� &Ð(Ð*VÐ*VÑWÔWÐWÝ	„L•�U‘”˜q’Ð"CÐ"CÑDÔDÐDà—+’+‘-”-€KÝ	„L� Ð&Ð(RÐ(RÑSÔSÐSà  AÒ%Ð%ˆaˆa¨9¯>ª>¸!Ñ+<Ô+<€GØ  AÒ%Ð%��¨7¯<ª<¸©?¬?€IÝ	„LØ�9ÒØeÐeÐeÐeÐeñô ð ð
 ÐÝŒØ•uÔ'­Ô)9½5Ô;KÐLÐLØeÐeÐeÐeñ	
ô 	
ð 	
õ 
„LØŒ�œÒ#ØMÐMÐMÐMñô ð õ 
„LØÔÔ Ò&ÐG¨7¬>Ô+>À%Ò+GØ>Ð>ñô ð ð
 �J€Dˆ$Ø%2°aÒ%7Ð%7�	—’˜qÑ!Ô!Ð!¸Y¿^º^ÈAÑ=NÔ=N€IÝð ð Ø48¸$À	È9Ð3Uðñ ô ñ ô €Lõ -¨WÑ5Ô5€NØÐ!ÝŒÝ�ÑÔ¥3¥s¨>Ñ':Ô':Ñ#;Ô#;Ò;Ø=Ð=ñ	
ô 	
ð 	
ð
 "Ð-��µ5Ô3C€JØð G˜ š˜ d¨a¢i iØˆˆØ	Ð	#¨Ð	#Ý˜>¨4°°yÑAÔAˆˆØ	ð G˜) qš.˜.Øˆˆð ðˆIÕ1°$¸¸iÑHÔHÑHÐHàð 	õ
 $ I¨t¸gÐFÑFÔFˆå	% iÑ	0Ô	0ð "ð "Ý”˜c˜V¨9¬?À6ÐJÑJÔJˆÝŒ\×8Ò8¸Ñ?Ô?ð  	ð  	Ø�UÔ-Ò-Ð-Ýœ+ q¨# hµe´jÈÐPÑPÔP�Ý+5°c½3Ñ+?Ô+?ÐJ˜s ašx˜xÀU�Ý”i”nÔ>×FÒFØØØÝ œ<¨Ñ/Ô/Ø!-ð Gñ ô �‘ð �uÔ/Ò/Ð/Ý$œ{¨D°1©H¨;½e¼jÐQWÐXÑXÔX�Ý#œk¨3¨&½¼
È6ÐRÑRÔR�Ý”i”nÔE×MÒMØ ØØØØ%Ý œ<¨Ñ/Ô/ð Nñ ô ��õ  %œ{¨D°1©H¨;½e¼jÐQWÐXÑXÔX�Ý#œk¨3¨&½¼
È6ÐRÑRÔR�Ý”i”nÔE×MÒMØ ØØØØ%Ý œ<¨Ñ/Ô/ð Nñ ô �ð3 	ð  	ð  	ñ  	ô  	ð  	ð  	ð  	ð  	ð  	ð  	øøøð  	ð  	ð  	ð  	ð"ð "ð "ñ "ô "ð "ð "ð "ð "ð "ð "øøøð "ð "ð "ð "ðH Ô*×?Ò?Ø�3˜	Ô(ñô ð s7   Ê=R+ËF4RÒR+ÒR	ÒR+ÒR	ÒR+Ò+R/Ò2R/Úselfrÿ   útorch.dtype | NoneÚmasked_gradúbool | Nonec                óÌ  — |j         t          j        u r||�t          d¦  «        ‚t	          | ¦  «        5  t          j        t          |j        ¦  «        |j        d¬¦  «        }d d d ¦  «         n# 1 swxY w Y   t          | ||j
        ¦  «        S t	          | ¦  «        5   ||||¬¦  «        }d d d ¦  «         n# 1 swxY w Y   | j                             | ||j
        ¦  «        S )Nz2dtype argument is not supported by sparse_to_denser‚   r  )rÿ   r$  )rñ   rE   r  rµ   r   r  rd   rï   rÿ   r   Úfake_devicerž   rŸ   )rw   rM   r"  rÿ   r$  r  s         r2   Ú	_to_denser(    sl  € ð „{•eÔ&Ð&Ð&ØÐÝÐSÑTÔTÐTÝ)¨)Ñ4Ô4ð 	ð 	Ý”+Ý�d”jÑ!Ô!Ø”jØðñ ô ˆCð	ð 	ð 	ñ 	ô 	ð 	ð 	ð 	ð 	ð 	ð 	øøøð 	ð 	ð 	ð 	õ ˜) S¨$Ô*:Ñ;Ô;Ð;å	% iÑ	0Ô	0ð ?ð ?Øˆd�4˜u°+Ð>Ñ>Ô>ˆð?ð ?ð ?ñ ?ô ?ð ?ð ?ð ?ð ?ð ?ð ?øøøð ?ð ?ð ?ð ?àÔ*×?Ò?Ø�3˜Ô(ñô ð s#   ´/A/Á/A3Á6A3ÂB:Â:B>ÃB>c                óš   — t           j        j        | j        v o3| t          j        j        t          j        j        t          j	        j        fvS r@   )
rE   ÚTagÚdynamic_output_shapeÚtagsr  ÚindexÚTensorÚnonzeror  Úrepeat_interleave©rM   s    r2   rÔ   rÔ   *  s>   € •”Ô/°4´9Ð<ð TØÝŒJÔ�tœ|Ô3µTÔ5KÔ5RÐSð	Tð r4   c                ó    — t          |¦  «        ‚r@   )r   r{   s       r2   Ú	dyn_shaper3  )  s   € õ & dÑ
+Ô
+Ð+r4   TF©Úunique_consecutiverQ   r  ÚsortedÚreturn_inverseÚreturn_countsr5  ú)tuple[FakeTensor, FakeTensor, FakeTensor]c               óÖ  — | j         �| j         j        st          |¦  «        ‚|r|j        n|j        }|€|€Íddlm}	m}
  |
|                     ¦   «         ¦  «        s|                     ¦   «         dk    rd}nz| j          	                    ¦   «         }t          j        dz
  }|€|                     ¦   «         n|                     |¦  «        } |
|¦  «        st          |¦  «        } |	||¬¦  «         |€|r||_        n||_        |€|                     |f¦  «        g}n/ |j        g |j        d |…         ¢|‘|j        |dz   d …         ¢R Ž g}|d uo|j        t#          j        d¦  «        k    }|s|r7|                     |€|j        n|j        |         ft"          j        ¬¦  «        }n!|                     dt"          j        ¬¦  «        }|                     |¦  «         |s|rC|                     |€|d         j        n|d         j        |         ft"          j        ¬¦  «        }n!|                     dt"          j        ¬¦  «        }|                     |¦  «         t+          |¦  «        S )Nr   ©rå   Úhas_free_symbolsrR   ©rÜ   r�   rþ   )ræ   rç   r   Úunique_consecutive_memoÚunique_memoré   rå   r<  Únumelrè   ÚsysÚmaxsizer  rÅ   Ú	new_emptyrï   r'  rE   r5   Úint64rg   rd   )rw   rM   rQ   r  r6  r7  r8  r5  r×   rå   r<  Úmaxvalr@  ÚretÚreturn_if_dim_and_cpuÚinverseÚcountss                    r2   Ú_uniquerJ  4  s«  € ð 	ÔÐ#ØÔ"ÔAð 	$õ *¨$Ñ/Ô/Ð/à);Ð
Pˆ#Ô
%Ð
%ÀÄ€Cð €˜#˜+ð	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð
  Ð §	¢	¡¤Ñ,Ô,ð 	7°·²±´ÀÒ1AÐ1Að ˆCˆCàÔ%×<Ò<Ñ>Ô>ˆCå”[ 1‘_ˆFà#& ;�C—I’I‘K”K�K°C·H²H¸S±M´MˆEØ#Ð# EÑ*Ô*ð $Ý˜U™œ�à%Ð% c¨vÐ6Ñ6Ô6Ð6àˆ;Ø!ð &Ø.1�Ô+Ð+à"%�”à
€{à�}Š}˜c˜VÑ$Ô$Ð%ˆˆð ˆsŒ}ÐJ˜cœi¨¨¨œoÐJ¨sÐJ°S´Y¸sÀQ¹w¸y¸yÔ5IÐJÐJÐJÐKˆà t˜OÐV°´Å5Ä<ÐPUÑCVÔCVÒ0VÐØð 6Ð.ð 6Ø—-’-Ø˜ˆCŒIˆI¨3¬9°S¬>Ð*;Å5Ä;ð  ñ 
ô 
ˆˆð —-’- ­¬�-Ñ5Ô5ˆØ‡J‚JˆwÑÔÐàð 5Ð-ð 5Ø—’Ø˜KˆC�ŒFŒLˆL¨c°!¬f¬l¸3Ô.?Ð-AÍÌð ñ 
ô 
ˆˆð —’˜q­¬�Ñ4Ô4ˆØ‡J‚JˆvÑÔÐå�‰:Œ:Ðr4   c           	     ó,   — t          | ||d |||¦  «        S r@   ©rJ  )rw   rM   rQ   r6  r7  r8  s         r2   Úunique2rM  †  s   € õ �9˜d C¨¨v°~À}ÑUÔUÐUr4   útuple[FakeTensor, FakeTensor]c           	     ó<   — t          | ||d ||d¦  «        \  }}}||fS r£   rL  )rw   rM   rQ   r6  r7  ÚuniquesrH  Ú_countss           r2   ÚuniquerR  ’  s6   € õ !(Ø�4˜˜d F¨N¸Eñ!ô !Ñ€GˆW�gð �GÐÐr4   r-  r$   c                ór  ‡‡‡— ddl m} ‰j        rt          S ‰                     ¦   «         }t          j        |dk    d„ ¦  «         ‰dk    r‰n‰|z   Š‰                     ‰¦  «        } |‰|k    ¦  «        s |‰| k     ¦  «        rt          j        dˆˆˆfd„¦  «         t          ‰                     ¦   «         ¦  «        }t          ‰ 	                    ¦   «         ¦  «        }	d }
 |‰dk    ¦  «        r!‰ 
                    ¦   «         ‰|	‰         z  z   }
n2 |‰dk     ¦  «        r#‰ 
                    ¦   «         ‰|z   |	‰         z  z   }
|
€B| j        �| j        j        s| j        st          |¦  «        ‚| j                             ¦   «         }
|‰= |	‰= |
€t          d¦  «        ‚‰                     ||	|
¦  «        S )Nr   ©Úguard_or_falsec                 ó   — dS )Nz-select() cannot be applied to a 0-dim tensor.rk   rk   r4   r2   rÔ   zmeta_select.<locals>.<lambda>°  s   € Ð?€ r4   Fc                 óX   •— d‰› dt          ‰                     ¦   «         ¦  «        › d‰ › �S )Nzselect(): index z! out of range for tensor of size z at dimension )rc   r  )r  r-  r"  s   €€€r2   rÔ   zmeta_select.<locals>.<lambda>¹  s@   ø€ ð 6 uð 6ð 6Ý�D—I’I‘K”KÑ Ô ð6ð 6Ø03ð6ð 6€ r4   z#new_storage_offset must not be None)ré   rU  Ú	is_sparseÚNotImplementedr  rE   Ú_check_indexr  rc   ÚstrideÚstorage_offsetræ   Úallow_scalar_outputsr   rè   rT   Ú
as_strided)rw   rM   r"  r  r-  rU  Úndimr  Únew_sizeÚ
new_strideÚnew_storage_offsets     ```      r2   Úmeta_selectrc     s  øøø€ ð EÐDÐDÐDÐDÐDà„~ð ÝÐà�8Š8‰:Œ:€DÝ	ÔØ�Š	Ø?Ð?ñô ð ð
 ˜’�ˆ#ˆ#˜s T™z€CØ�9Š9�S‰>Œ>€Dà€~�e˜t’mÑ$Ô$ð 
¨¨°uÀ¸u²}Ñ(EÔ(Eð 
ÝÔØð6ð 6ð 6ð 6ð 6ð 6ñ	
ô 	
ð 	
õ �D—I’I‘K”KÑ Ô €HÝ�d—k’k‘m”mÑ$Ô$€JàÐØ€~�e˜q’jÑ!Ô!ð VØ!×0Ò0Ñ2Ô2°U¸ZÈ¼_Ñ5LÑLÐÐØ	ˆ˜ š	Ñ	"Ô	"ð VØ!×0Ò0Ñ2Ô2°e¸d±lÀjÐQTÄoÑ5UÑUÐàÐ!ØÔÐ&ØÔ#Ô8ð 'àÔ2ð 'õ /¨tÑ4Ô4Ð4ð 'Ô0×GÒGÑIÔIÐà�ˆØ�3ˆØÐ!ÝÐBÑCÔCÐCà�?Š?˜8 ZÐ1CÑDÔDÐDr4   c           
     óh   — t          | |||dk    r|n|t          |j        d¦  «        z  |||¦  «        S )Nr   rR   )rJ  rÜ   r_  )rw   rM   rQ   r  r6  r7  r8  s          r2   Ú
unique_dimre  Ù  sH   € õ ØØØà�aŠxˆxˆˆ˜S¥3 s¤x°Ñ#3Ô#3Ñ3ØØØñ	ô 	ð 	r4   c           
     ó0   — t          | |||d||d¬¦  «        S )NFTr4  rL  )rw   rM   rQ   r7  r8  r  s         r2   r5  r5  ï  s3   € õ ØØØØØØØØð	ñ 	ô 	ð 	r4   Ú	old_shapeúSequence[IntLikeType]Ú
old_strideÚ	new_shapeÚsize_obliviousúlist[IntLikeType] | Nonec                óh  ‡‡‡— ddl mŠmŠm} d
ˆˆfd„}d
ˆˆfd„}t	          | ¦  «        dk    rdgt	          |¦  «        z  S t          t          j        | d¦  «        } ||dk    ¦  «        }|r$ | || |¦  «        ¦  «        rt          |¦  «        S dgt	          |¦  «        z  }	|rjt          t	          |¦  «        dz
  d	d	¦  «        D ]F}
|
t	          |¦  «        dz
  k    rd|	|
<   Œt          ||
dz            d¦  «        |	|
dz            z  |	|
<   ŒG|	S t	          |¦  «        dz
  }
|d	         }d}d}t          t	          | ¦  «        dz
  d	d	¦  «        D ]Ù}|| |         z  }|dk    s3 || |dz
           dk    ¦  «        r® |||dz
           ||z  k    ¦  «        r“|
dk    rf |||k     ¦  «        s |||
         dk    ¦  «        rB||z  |	|
<   |||
         z  }|
dz  }
|
dk    r$ |||k     ¦  «        °- |||
         dk    ¦  «        °B |||k    ¦  «        r d S |dk    r||dz
           }d}d}ŒÚ|
d	k    rd S |	S )Nr   )rU  Úguard_or_trueÚsym_eqr¥   r   r-   c                ó"   •— ‰r ‰| ¦  «        S | S r@   rk   )r¥   rU  rk  s    €€r2   Úmaybe_guard_or_falsez-_compute_stride.<locals>.maybe_guard_or_false  s    ø€ Øð 	%Ø!�> !Ñ$Ô$Ð$àˆr4   c                ó"   •— ‰r ‰| ¦  «        S | S r@   rk   )r¥   rn  rk  s    €€r2   Úmaybe_guard_or_truez,_compute_stride.<locals>.maybe_guard_or_true  s    ø€ Øð 	$Ø �= Ñ#Ô#Ð#àˆr4   rR   rÈ   )r¥   r   r-   r   )ré   rU  rn  ro  rW   r   ÚoperatorÚmulrc   ÚrangerÜ   )rg  ri  rj  rk  ro  rq  rs  r@  Ú
zero_numelra  Úview_dÚchunk_base_strideÚtensor_numelÚ
view_numelÚtensor_drU  rn  s      `           @@r2   Ú_compute_strider}    sN  øøø€ ðð ð ð ð ð ð ð ð ð ðð ð ð ð ð ð ðð ð ð ð ð ð õ ˆ9�~„~˜ÒÐØˆs•S˜‘^”^Ñ#Ð#å•8”< ¨AÑ.Ô.€EØ%Ð% e¨q¢jÑ1Ô1€JØð  Ð*Ð*¨6¨6°)¸YÑ+GÔ+GÑHÔHð  Ý�JÑÔÐà%& C­#¨i©.¬.Ñ$8€Jàð Ý�C 	™NœN¨QÑ.°°BÑ7Ô7ð 	ð 	ˆFØ�˜Y™œ¨!Ñ+Ò+Ð+Ø%&�
˜6Ñ"Ð"õ ˜	 &¨1¡*Ô-¨qÑ1Ô1°J¸vÈ¹zÔ4JÑJð ˜6Ñ"Ð"ð Ðå�‰^Œ^˜aÑ€Fà%/°¤^ÐØ !€LØ€Jå�#˜i™.œ.¨1Ñ,¨b°"Ñ5Ô5ð ð ˆØ˜	 (Ô+Ñ+ˆà�qŠ=ˆ=ØÐ 	¨(°Q©,Ô 7¸1Ò <Ñ=Ô=ð à#Ð#Ø˜8 a™<Ô(¨LÐ;LÑ,LÒLñô ð ð ˜A’+�+Ø#Ð# J°Ò$=Ñ>Ô>ð à'Ð'¨	°&Ô(9¸QÒ(>Ñ?Ô?ð ð &0Ð2CÑ%C�
˜6Ñ"Ø˜i¨Ô/Ñ/�
Ø˜!‘�ð ˜A’+�+Ø#Ð# J°Ò$=Ñ>Ô>ð à'Ð'¨	°&Ô(9¸QÒ(>Ñ?Ô?ð ð #Ð" :°Ò#=Ñ>Ô>ð Ø�t�tà˜!Š|ˆ|Ø$.¨x¸!©|Ô$<Ð!Ø �Ø�
øØ�‚|€|ØˆtØÐr4   c                ó�   — t          | ¦  «        t          u r| S t          | t          j        ¦  «        rddlm}  || d ¬¦  «        S d S )Nr   )Úoptimization_hint)Úfallback)r:   rÅ   rS   rE   r©   ré   r  )rë   r  s     r2   Ú_optimization_hint_or_noner�  T  sY   € ÝˆE�{„{•cÐÐØˆÝ�%�œÑ&Ô&ð 7ØKÐKÐKÐKÐKÐKà Ð  °Ð6Ñ6Ô6Ð6Øˆ4r4   ÚlhsÚrhsc                ó¸   — ddl m}  || |k    ¦  «        rdS t          | ¦  «        }t          |¦  «        }|�|�||k    rdS t          j        | |k    ¦  «         dS )Nr   rT  TF)ré   rU  r�  rE   rÖ   )r‚  rƒ  rU  Úlhs_hintÚrhs_hints        r2   Ú
_hinted_eqr‡  ^  s~   € ØDÐDÐDÐDÐDÐDà€~�c˜S’jÑ!Ô!ð Øˆtå)¨#Ñ.Ô.€HÝ)¨#Ñ.Ô.€HØÐ˜8Ð+¨x¸8Ò/CÐ/CØˆuõ
 
„L�˜’ÑÔÐØˆ4r4   Úaútorch.Tensorc           	     ó¶  — ddl m}m}  ||                      ¦   «         dk     ¦  «        rdS t	          |                      ¦   «         ¦  «        }|€dS |dk     r,t          j        |                      ¦   «         dk     ¦  «         dS d}d}t          t          t          | j
        |                      ¦   «         ¦  «        ¦  «        ¦  «        D ]�\  }} ||dk    ¦  «        rŒt	          |¦  «        }|dk    rt          j        |dk    ¦  «         ŒCt          ||¦  «        st          ||¦  «        s dS | ||¦  «        r|nt          j        |d¦  «        z  }||z  }Œ‘dS )Nr   )rU  Úis_nested_intrô   TFrR   )ré   rU  r‹  r@  r�  rE   rÖ   Úreversedrd   Úziprï   r[  r‡  Úsym_max)	rˆ  rU  r‹  Ú
numel_hintÚexpected_strideÚexpected_stride_maxr  r[  Ú	size_hints	            r2   Ú!_is_contiguous_with_hinted_checksr“  p  s}  € ØSÐSÐSÐSÐSÐSÐSÐSà€~�a—g’g‘i”i !’mÑ$Ô$ð Øˆtå+¨A¯GªG©I¬IÑ6Ô6€JØÐØˆuØ�A‚~€~ÝŒ�Q—W’W‘Y”Y ’]Ñ#Ô#Ð#Øˆtà€OØÐÝ ¥¥s¨1¬7°A·H²H±J´JÑ'?Ô'?Ñ!@Ô!@ÑAÔAð  ð  ‰ˆˆfØˆ>˜$ !š)Ñ$Ô$ð 	Øå.¨tÑ4Ô4ˆ	Ø˜Š>ˆ>ÝŒL˜ šÑ#Ô#Ð#Øå˜& /Ñ2Ô2ð 	½:ØÐ'ñ<
ô <
ð 	ð �5�5à } }°TÑ':Ô':ÐV˜t˜tÅÄÈdÐTUÑ@VÔ@VÑVÐØ˜4Ñˆˆàˆ4r4   úShapeType | tuple[ShapeType]c                ó&  ‡— ddl mŠ t          j        |d¬¦  «        }t	          ˆfd„|                      ¦   «         D ¦   «         ¦  «        pGt	          ˆfd„|                      ¦   «         D ¦   «         ¦  «        pt	          ˆfd„|D ¦   «         ¦  «        S )Nr   ©Úhas_guarding_hintF©Úvalidatec              3  ó0   •K  — | ]} ‰|¦  «         V — Œd S r@   rk   ©rB   Úsr—  s     €r2   rD   z+_view_has_unbacked_input.<locals>.<genexpr>›  s2   øè è € Ð7Ð7¨Ð!Ð! !Ñ$Ô$Ð$Ð7Ð7Ð7Ð7Ð7Ð7r4   c              3  ó0   •K  — | ]} ‰|¦  «         V — Œd S r@   rk   r›  s     €r2   rD   z+_view_has_unbacked_input.<locals>.<genexpr>œ  s2   øè è € Ð<Ð<¨AÐ$Ð$ QÑ'Ô'Ð'Ð<Ð<Ð<Ð<Ð<Ð<r4   c              3  ó0   •K  — | ]} ‰|¦  «         V — Œd S r@   rk   r›  s     €r2   rD   z+_view_has_unbacked_input.<locals>.<genexpr>�  s2   øè è € Ð7Ð7¨AÐ$Ð$ QÑ'Ô'Ð'Ð7Ð7Ð7Ð7Ð7Ð7r4   )ré   r—  ÚutilsÚextract_shape_from_varargsrJ   r  r[  )rˆ  rï   r—  s     @r2   Ú_view_has_unbacked_inputr¡  “  s®   ø€ ð HÐGÐGÐGÐGÐGåÔ,¨U¸UÐCÑCÔC€Eõ 	Ð7Ð7Ð7Ð7¨a¯fªf©h¬hÐ7Ñ7Ô7Ñ7Ô7ð 	8ÝÐ<Ð<Ð<Ð<°·²±´Ð<Ñ<Ô<Ñ<Ô<ð	8åÐ7Ð7Ð7Ð7°Ð7Ñ7Ô7Ñ7Ô7ðr4   c                ó´  ‡‡— ddl }ddlm} ddlmŠ dˆfd„}ddl} ||                      ¦   «         ¦  «        } ||¦  «        }|r|sdS dd	lm}  |t          ¦  «        }	t          |¦  «        t          |¦  «        z   D ]2}
|	|
j        j                                      |
j        j        |
¦  «         Œ3g }|	                     ¦   «         D ]4}|                     ¦   «         ^}}|D ]}|                     ||f¦  «         ŒŒ5|sdS d
„ |D ¦   «         }d„ Š	  ||j        ˆfd„|                      ¦   «         D ¦   «         d¦  «        } ||j        ˆfd„|D ¦   «         d¦  «        }|                     ||z
                       |¦  «        ¦  «        }|dk    rdS n$# t(          t*          t,          |j        f$ r Y dS w xY w|D ]\  }}t1          j        ||k    ¦  «         ŒdS )aÀ  
    Collect candidate (x, y) pairs whose runtime hints match (so they
    *could* be equal), then test whether substituting them into the
    view's numel equation makes the equation symbolically zero.
    Only commit the equalities (adds the real Eq guards via bool(x == y)
    which triggers set_replacement) if the substitution actually solves
    the view validity check.

    This avoids polluting the shape env with spurious guards from probing.

    Returns True if at least one equality was committed.

    Conservative: only considers SymInts that appear as a top-level dim of
    the input or target (skipping the -1 marker), and skips already-equal
    pairs, and skips unbacked symbols.
    r   Nr   )Úfree_unbacked_symbolsr-   úlist[torch.SymInt]c                óä   •— g }| D ]i}t          |t          j        ¦  «        sŒ|j        j        }|j        }t          |¦  «        dk    s||vrŒH ‰|¦  «        rŒT|                     |¦  «         Œj|S )z>Keep only SymInts whose expr is a single bare *backed* symbol.rR   )rS   rE   r©   ÚnodeÚexprÚfree_symbolsrW   rg   )Údimsr  rœ  r§  Úfreer£  s        €r2   Ú_atomic_symsz3try_duck_specialization_first.<locals>._atomic_syms·  s‡   ø€ à"$ˆØð 		ð 		ˆAÝ˜a¥¤Ñ.Ô.ð ØØ”6”;ˆDØÔ$ˆDÝ�4‰yŒy˜AŠ~ˆ~ ¨TÐ!1Ð!1ØØ$Ð$ TÑ*Ô*ð ØØ�JŠJ�q‰MŒMˆMˆMØˆ
r4   F)Údefaultdictc                óB   — i | ]\  }}|j         j        |j         j        “ŒS rk   )r¦  r§  )rB   ÚcÚms      r2   ú
<dictcomp>z1try_duck_specialization_first.<locals>.<dictcomp>ã  s3   € ð *ð *ð *Ù%) Q¨ˆŒŒ�Q”V”[ð*ð *ð *r4   c                óR   — t          | t          j        ¦  «        r| j        j        n| S r@   )rS   rE   r©   r¦  r§  )rœ  s    r2   Ú_expr_ofz/try_duck_specialization_first.<locals>._expr_ofè  s!   € Ý(¨­E¬LÑ9Ô9Ð@ˆqŒvŒ{ˆ{¸qÐ@r4   c              3  ó.   •K  — | ]} ‰|¦  «        V — Œd S r@   rk   ©rB   rœ  r²  s     €r2   rD   z0try_duck_specialization_first.<locals>.<genexpr>ì  s+   øè è € Ð'FÐ'F¸¨¨°©¬Ð'FÐ'FÐ'FÐ'FÐ'FÐ'Fr4   rR   c              3  ó.   •K  — | ]} ‰|¦  «        V — Œd S r@   rk   r´  s     €r2   rD   z0try_duck_specialization_first.<locals>.<genexpr>í  s+   øè è € Ð+GÐ+G¸A¨H¨H°Q©K¬KÐ+GÐ+GÐ+GÐ+GÐ+GÐ+Gr4   T)r-   r¤  )rt  Ú	functoolsr   ré   r£  Úsympyr  Úcollectionsr¬  r0   rc   r¦  ÚhintÚ
setdefaultr§  r²   rg   ru  ÚsimplifyÚsubsÚ	TypeErrorÚ
ValueErrorÚAttributeErrorÚSympifyErrorrE   rÖ   )rˆ  rï   rt  r   r«  r·  Úa_symsÚtarget_symsr¬  Úbucketsrœ  Ú
candidatesÚmembersÚ	canonicalÚrestr¯  r¼  Úa_numelÚshape_numelÚdiffr®  r²  r£  s                        @@r2   Útry_duck_specialization_firstrË  ¡  s˜  øø€ ð" €O€O€OØ Ð Ð Ð Ð Ð àKÐKÐKÐKÐKÐKðð ð ð ð ð ð €L€L€Làˆ\˜!Ÿ&š&™(œ(Ñ#Ô#€FØ�,˜uÑ%Ô%€KØð ˜ð Øˆuð (Ð'Ð'Ð'Ð'Ð'à9D¸ÅTÑ9JÔ9J€GÝ�&‰\Œ\�D Ñ-Ô-Ñ-ð 8ð 8ˆà�””Ô×'Ò'¨¬¬°QÑ7Ô7Ð7Ð7à:<€JØ—>’>Ñ#Ô#ð .ð .ˆØ"Ÿ>š>Ñ+Ô+Ðˆ	�DØð 	.ð 	.ˆAØ×Ò˜y¨!˜nÑ-Ô-Ð-Ð-ð	.ð ð Øˆuð*ð *Ø-7ð*ñ *ô *€Dð
Að Að AðØ�&˜œÐ'FÐ'FÐ'FÐ'F¸Q¿VºV¹X¼XÐ'FÑ'FÔ'FÈÑJÔJˆØ�f˜Xœ\Ð+GÐ+GÐ+GÐ+GÀÐ+GÑ+GÔ+GÈÑKÔKˆØ�~Š~˜w¨Ñ4×:Ò:¸4Ñ@Ô@ÑAÔAˆØ�1Š9ˆ9Ø�5ð øå•z¥>°5Ô3EÐFð ð ð Øˆuˆuðøøøð ð ð ‰ˆˆ1ÝŒ�Q˜!’VÑÔÐÐØˆ4s   ÄA?F ÆF5Æ4F5Úsize_oblivious_enabledÚ
allow_copyÚtried_duck_specializec                óÌ  ‡ ‡— ddl m} ddlm}m} t          j        ‰d¬¦  «        Št          j        ‰‰                      ¦   «         ¦  «        Š‰ j	        dk    rP‰ }‰D ]:}	t          j        |	dk    ¦  «         t          j                             |d¦  «        }Œ;|‰ u r |‰ ¦  «        S |S t          ‰¦  «        dk    rU‰ }‰ j        D ]:}	t          j        |	dk    ¦  «         t          j                             |d¦  «        }Œ;|‰ u r |‰ ¦  «        S |S t#          t$          j        ‰d¦  «        }
t          j        ‰                      ¦   «         |
k    ˆ ˆfd„¦  «         t          ‰¦  «        t          ‰ j        ¦  «        k    r% | |‰‰ j        ¦  «        ¦  «        r |‰ ¦  «        S |rt)          ‰ ¦  «        r5nt+          ‰ ¦  «        r%t-          ‰¦  «        }‰                      ‰|¦  «        S t1          ‰                      ¦   «         ‰                      ¦   «         ‰|¬	¦  «        }|�‰                      ‰|¦  «        S |r³t          j        j        j        j        st?          ‰ ‰¦  «        rˆt          j        j        j        j         r&|s$tC          ‰ ‰¦  «        rtE          ‰ ‰d
|d
¬¦  «        S tG          ‰ ¦  «        r%t-          ‰¦  «        }‰                      ‰|¦  «        S tE          ‰ ‰d|¬¦  «        S |rCt-          ‰¦  «        }‰  $                    t          j%        ¬¦  «                             ‰|¦  «        S d‰ j        › d‰                      ¦   «         › d‰› d�}tM          |¦  «        ‚)Nr   )Úview_of©rU  ro  Fr˜  rR   rÈ   c                 ó    •— d‰ j         › d‰› d�S )Nz&Could not reshape a tensor with shape ú as a tensor with shape ú!)rï   )rˆ  rï   s   €€r2   rÔ   z%_view_unbacked_meta.<locals>.<lambda>%  s   ø€ Ðb¸¼ÐbÐbÐZ_ÐbÐbÐb€ r4   )rk  T)rÌ  rÍ  rÎ  )rÌ  rÍ  ©Úmemory_formatz Cannot view a tensor with shape z and strides rÓ  rÔ  )'Útorch._primsrÐ  ré   rU  ro  rŸ  r   Ú
infer_sizer@  r_  rE   rÖ   Ú_refsÚ	unsqueezerW   rï   Úsqueezer   rt  ru  r   r   r   r^  r}  r  r[  ÚfxÚexperimentalÚ_configÚbacked_size_obliviousr¡  Úunify_view_symbols_bso_metarË  Ú_view_unbacked_metar“  ÚcloneÚcontiguous_formatr¾  )rˆ  rï   rÌ  rÍ  rÎ  rÐ  rU  ro  Ú_aÚlengthrÉ  ÚstridesÚnew_stridesÚmsgs   ``            r2   rá  rá  ú  s²  øø€ ð %Ð$Ð$Ð$Ð$Ð$ØLÐLÐLÐLÐLÐLÐLÐLõ Ô,¨U¸UÐCÑCÔC€Eõ Ô˜U A§G¢G¡I¤IÑ.Ô.€Eð 	„v�‚{€{ØˆØð 	/ð 	/ˆFÝŒL˜ 1šÑ%Ô%Ð%Ý”×&Ò& r¨2Ñ.Ô.ˆBˆBØ�ˆ7ˆ7Ø�7˜1‘:”:ÐàˆIõ ˆ5�z„z�Q‚€ØˆØ”gð 	-ð 	-ˆFÝŒL˜ 1šÑ%Ô%Ð%Ý”×$Ò$ R¨Ñ,Ô,ˆBˆBØ�ˆ7ˆ7Ø�7˜1‘:”:ÐàˆIå�œ u¨aÑ0Ô0€Kå	„LØ	�Š‰	Œ	�[Ò ØbÐbÐbÐbÐbñô ð õ
 ˆ5�z„z•S˜œ‘\”\Ò!Ð! n n°V°V¸EÀ1Ä7Ñ5KÔ5KÑ&LÔ&LÐ!Øˆw�q‰zŒzÐà$:ð ,Õ˜aÑ Ô ð ,ð ,ÅÈaÑ@PÔ@Pð ,Ý-¨eÑ4Ô4ˆØ�|Š|˜E 7Ñ+Ô+Ð+å!Ø	�Š‰Œ�!—(’(‘*”*˜eÐ4Jðñ ô €Kð ÐØ�|Š|˜E ;Ñ/Ô/Ð/ð ð 
ÝŒÔÔ%Ô;ð
å# A uÑ-Ô-ð
õ ŒHÔ!Ô)ÔEð	à)ð	õ .¨a°Ñ7Ô7ð	õ
 'ØØØ'+Ø%Ø&*ðñ ô ð õ -¨QÑ/Ô/ð 	0Ý1°%Ñ8Ô8ˆGØ—<’<  wÑ/Ô/Ð/å"Øˆu¨U¸zð
ñ 
ô 
ð 	
ð ð YÝ-¨eÑ4Ô4ˆà�wŠw¥UÔ%<ˆwÑ=Ô=×HÒHÈÐPWÑXÔXÐXà
o¨Q¬WÐ
oÐ
oÀ1Ç8Â8Á:Ä:Ð
oÐ
oÐglÐ
oÐ
oÐ
o€CÝ
�S‰/Œ/Ðr4   úFakeTensor | Exceptionc           
     ó˜  — |j         s|j        rt          S t          j        g |¢|                     ¦   «         ‘R Ž }t          |¦  «        rBt          | ||g|¢R Ž }t          t          | 
                    t          j        ¬¦  «        ¦  «        S t          | |t          t          | 
                    t          j        ¬¦  «        ¦  «        g|¢R Ž S ©NrÕ  )rX  Ú	is_mkldnnrY  rŸ  rØ  r@  r   Ú
_view_metaÚtyping_castr   râ  rE   rã  )rw   rM   rˆ  rï   Úviews        r2   Ú_reshape_copyrð  f  sÚ   € ð 	„{ð �a”kð ÝÐõ ÔÐ/˜eÐ/ Q§W¢W¡Y¤YÐ/Ð/Ð/€EÝ˜aÑ Ô ð 
Ý˜) T¨1Ð5¨uÐ5Ð5Ð5ˆÝÝ˜Ÿ
š
µÔ1H˜
ÑIÔIñ
ô 
ð 	
õ ØØÝ�
 A§G¢G½%Ô:Q GÑ$RÔ$RÑSÔSð
ð ð	
ð 
ð 
ð 	
r4   ©rÍ  c               óü   — t           j        j        j        j        st          ||¦  «        r%t          t          t          |||¬¦  «        ¦  «        S t          t          t          j	        j
        |g|¢R d|iŽ¦  «        S )Nrñ  rÍ  )rE   rÜ  rÝ  rÞ  rß  r¡  rî  r   rá  rÙ  Ú_reshape_view_helper)rw   rM   rˆ  rÍ  rï   s        r2   rí  rí  }  sŽ   € õ „xÔÔ$Ô:ð 

Õ>VØ	ˆ5ñ?ô ?ð 

õ ÝÕ+¨A¨uÀÐLÑLÔLñ
ô 
ð 	
õ ÝÝŒKÔ,¨QÐN°ÐNÐNÐNÀ:ÐNÐNñ
ô 
ð 	
r4   )r  r  úFakeTensor | Nonec               óf   — t          | ||g|¢R ddiŽ}|�|S t                               d„ |¦  «        S )NrÍ  Tc                óB   — |                       t          j        ¬¦  «        S rë  )râ  rE   rã  r¬   s    r2   rÔ   z!_view_meta_copy.<locals>.<lambda>¤  s   € �!—'’'­Ô(?�'Ñ@Ô@€ r4   )rí  r³   Útree_map)rw   rM   rˆ  r  rï   Úresults         r2   Ú_view_meta_copyrù  “  sN   € õ ˜	 4¨ÐD¨UÐDÐDÐD¸tÐDÐD€Fà
€Øˆå�?Š?Ø@Ð@Øñô ð r4   ÚrepeatsÚoutput_sizeúIntLikeType | Nonec                óÈ   — |€L| j         �| j         j        st          |¦  «        ‚| j                              ¦   «         }ddlm}  ||¦  «         |                     |¦  «        S )Nr   rä   )ræ   rç   r   rè   ré   rå   rC  )rw   rM   rú  rû  rå   s        r2   Úrepeat_interleave_tensorrþ  ©  s   € ð ÐàÔÐ'ØÔ&ÔEð (õ .¨dÑ3Ô3Ð3àÔ)×@Ò@ÑBÔBˆð 	TÐSÐSÐSÐSÐSà!Ð! +Ñ.Ô.Ð.à×Ò˜[Ñ)Ô)Ð)r4   úBint | float | bool | torch.SymInt | torch.SymFloat | torch.SymBoolc                ó¾  — |j         x}�|S | j        �| j        j        s| j        st          |¦  «        ‚t	          |j        ¦  «        r| j                             ¦   «         }nst          |j        ¦  «        r| j                             ¦   «         }nEt          |j        ¦  «        r| j         
                    ¦   «         }nt          d|j        › �¦  «        ‚||_         |S )Nz local_scalar_dense/item NYI for )Ú	item_memoræ   r]  r   r   rÿ   Úcreate_unbacked_symfloatr   rè   r   Úcreate_unbacked_symboolÚNotImplementedError)rw   rM   rQ   r‰   s       r2   Úlocal_scalar_denser  Á  sè   € ð
 Œ]ÐˆÐ'ØˆØÔÐ"ØÔÔ4ð #àÔ.ð #õ
 +¨4Ñ0Ô0Ð0Ý�c”iÑ Ô ð RØÔ×8Ò8Ñ:Ô:ˆˆÝ	˜#œ)Ñ	$Ô	$ð RØÔ×6Ò6Ñ8Ô8ˆˆÝ	˜#œ)Ñ	$Ô	$ð RØÔ×7Ò7Ñ9Ô9ˆˆå!Ð"PÀSÄYÐ"PÐ"PÑQÔQÐQØ€C„MØ€Hr4   úlist[FakeTensor]c                óz   — t           j        j        j                             |¦  «                             d¦  «        S )NrR   )rE   r  r  r/  r  Úunbind)rw   rM   rQ   s      r2   Únonzero_numpyr	  Ú  s-   € õ Œ9Œ>Ô!×)Ò)¨#Ñ.Ô.×5Ò5°aÑ8Ô8Ð8r4   c                ó"  — | j         �| j         j        st          |¦  «        ‚|j        x}�€,ddlm}m} ddlm} ddl	m
}  ||                     ¦   «         ¦  «        s|                     ¦   «         dk    rd}nÙ| j                              ¦   «         }t          j        dz
  } ||                     ¦   «         ¦  «        s"t          |                     ¦   «         ¦  «        }net!          j        |j        ¦  «        j        }	 ||	j        |	j         j        ¦  «        }
t-          |
j        |¦  «        rt          j        dz
  }n|
j        } |||¬¦  «         ||_        |                     ||                     ¦   «         fd|ft4          j        ¬¦  «        S )Nr   r;  ©ÚIntInfinity©Úbound_sympyrR   r=  rþ   )ræ   rç   r   Únonzero_memoré   rå   r<  Útorch.utils._sympy.numbersr  Útorch.utils._sympy.value_rangesr  r@  rè   rA  rB  rÅ   ÚmathÚprodrï   r¦  r§  Úvar_to_rangerS   ÚupperÚnew_empty_stridedr  rE   rD  )rw   rM   rQ   r×   rå   r<  r  r  rE  Ú	prod_nodeÚ
prod_ranges              r2   r/  r/  á  s¸  € ð 	ÔÐ#ØÔ"ÔAð 	$õ *¨$Ñ/Ô/Ð/àÔÐˆÑ(ð	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	;Ð:Ð:Ð:Ð:Ð:Ø?Ð?Ð?Ð?Ð?Ð?àÐ §	¢	¡¤Ñ,Ô,ð 	7°·²±´ÀÒ1AÐ1Að ˆCˆCàÔ%×<Ò<Ñ>Ô>ˆCå”[ 1‘_ˆFà#Ð# C§I¢I¡K¤KÑ0Ô0ð 
.Ý˜SŸYšY™[œ[Ñ)Ô)��å œI c¤iÑ0Ô0Ô5�	Ø(˜[Ø”N IÔ$7Ô$Dñô �
õ ˜jÔ.°Ñ<Ô<ð .Ý œ[¨1™_�F�Fà'Ô-�Fà%Ð% c¨vÐ6Ñ6Ô6Ð6àˆÔØ× Ò  # s§w¢w¡y¤yÐ!1°A°s°8Å5Ä;Ð ÑOÔOÐOr4   ÚpaddedÚtotal_Lc                óø  — t          |¦  «        dk    r t          dt          |¦  «        › d�¦  «        ‚|€ž| j        �| j        j        st	          |¦  «        ‚| j                             ¦   «         }t          j        dz
  }ddlm	}m
}  ||                     ¦   «         ¦  «        s!t          |                     ¦   «         ¦  «        } ||d|¬¦  «         |g|j        dd …         ¢R }|                     |¦  «        S )NrR   z&Only one jagged dim is supported, got z offsetsr   r;  rÛ   rô   )rW   rT   ræ   rç   r   rè   rA  rB  ré   rå   r<  r@  rÅ   rï   rC  )	rw   rM   r  r¾   r  rE  rå   r<  Úoutput_shapes	            r2   Ú_padded_dense_to_jagged_forwardr    s)  € õ ˆ7�|„|�qÒÐÝØKµS¸±\´\ÐKÐKÐKñ
ô 
ð 	
ð €àÔÐ'ØÔ&ÔEð (õ .¨dÑ3Ô3Ð3àÔ%×<Ò<Ñ>Ô>ˆå”˜q‘ˆð	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð 	
ð
  Ð §¢¡¤Ñ/Ô/ð 	)Ý˜Ÿš™œÑ(Ô(ˆFà!Ð! '¨q°fÐ=Ñ=Ô=Ð=àÐ/˜fœl¨1¨2¨2Ô.Ð/Ð/€LØ×Ò˜LÑ)Ô)Ð)r4   r  c                óv  — ddl m}m}  | ||dk    || k    ¦  «        ¦  «        r|S  | ||dk     ||  k    ¦  «        ¦  «        r|| z   S  |||  k     ¦  «        rdS  ||| k    ¦  «        r| S  ||dk    ¦  «        rt          j        || ¦  «        S  ||dk     ¦  «        rt          j        || z   d¦  «        S d S )Nr   )rU  Úsym_and)ré   rU  r  rE   Úsym_minrŽ  )r  r-  rU  r  s       r2   Ú_compute_slice_indexr!  =  s  € ØMÐMÐMÐMÐMÐMÐMÐMà€~�g�g˜e qšj¨%°4ª-Ñ8Ô8Ñ9Ô9ð .ØˆØ	ˆ˜˜ ¨¢	¨5°T°Eª>Ñ:Ô:Ñ	;Ô	;ð 	.Ø�t‰|ÐØ	ˆ˜  šÑ	&Ô	&ð .ØˆqØ	ˆ˜ šÑ	%Ô	%ð .ØˆØ	ˆ˜ š
Ñ	#Ô	#ð .ÝŒ}˜U DÑ)Ô)Ð)Ø	ˆ˜ š	Ñ	"Ô	"ð .ÝŒ}˜U T™\¨1Ñ-Ô-Ð-àˆ4r4   rR   ÚstartÚendÚstepc                óº  — ddl m}m} | j        }	|                     ¦   «         }
|
dk    rt          d¦  «        ‚t          |                     ¦   «         |¦  «        }t          |                     ¦   «         ¦  «        }t          | 	                    ¦   «         ¦  «        }|dk    rt          d¦  «        ‚|€dnt          ||         |¦  «        } ||t          j        k    ¦  «        s|€||         nt          ||         |¦  «        }d }|�U|�S |||k    ¦  «        r||z
  |z   dz
  |z  }n5 |||k    ¦  «        rd}n#t          j        ||z
  d¦  «        }||z   dz
  |z  }|€[|	€t          d¦  «        ‚|	                     ¦   «         }t          j        |dk    ¦  «         t          j        |||         k    ¦  «         ||         |z  }|�!|                     ¦   «         |||         z  z   }n=|	€t          d¦  «        ‚|	                     ¦   «         }t          j        |dk    ¦  «         |||<   |||<   |j        rt)          d¦  «        ‚|                     |||¦  «        S )Nr   )rU  Ústatically_known_truez,slice() cannot be applied to a 0-dim tensor.zslice step must be positiverR   z$Must have shape_env to create symintz<Slice decomposition for quantized tensors aren't implemented)ré   rU  r&  ræ   r  rµ   r   rc   r  r[  r!  rA  rB  rE   rŽ  rT   rè   rÖ   r\  Úis_quantizedr  r^  )rw   rM   r"  r  r"  r#  r$  rU  r&  ræ   r_  Úsizesræ  Ústart_indexÚ	end_indexr`  rÊ  ra  r\  s                      r2   Úslice_forwardr+  P  s·  € ðð ð ð ð ð ð ð ð
 Ô#€IØ�8Š8‰:Œ:€DØˆq‚y€yÝÐIÑJÔJÐJÝ
˜4Ÿ8š8™:œ: sÑ
+Ô
+€CÝ�—’‘”ÑÔ€EÝ�4—;’;‘=”=Ñ!Ô!€Gàˆq‚y€yÝÐ8Ñ9Ô9Ð9ð �}�!�!Õ*>¸uÀS¼zÈ5Ñ*QÔ*Q€Kð !Ð  ­¬Ò!3Ñ4Ô4ð	3Ø8;¸ð 	ˆcŒ
ˆ
å! %¨¤*¨cÑ2Ô2ð ð $(€HØÐ 9Ð#8Øˆ>˜) {Ò2Ñ3Ô3ð 		1Ø! KÑ/°$Ñ6¸Ñ:¸tÑCˆHˆHØˆ^˜K¨9Ò4Ñ5Ô5ð 	1ØˆHˆHõ
 ”= ¨[Ñ!8¸!Ñ<Ô<ˆDØ˜t™ a™¨DÑ0ˆHð ÐØÐÝ Ð!GÑHÔHÐHØ×3Ò3Ñ5Ô5ˆÝŒ�X ’]Ñ#Ô#Ð#ÝŒ�X  s¤Ò+Ñ,Ô,Ð,ð ˜” Ñ$€Jð ÐØ×,Ò,Ñ.Ô.°¸wÀs¼|Ñ1KÑKˆˆàÐÝ Ð!GÑHÔHÐHØ"×9Ò9Ñ;Ô;ˆÝŒ�^ qÒ(Ñ)Ô)Ð)à€Eˆ#�JØ€GˆC�LØÔð ?Ý!ØJñ
ô 
ð 	
ð �Š˜u g¨~Ñ>Ô>Ð>r4   Úmaskc                ó\  — | j         �| j         j        st          |¦  «        ‚| j                              ¦   «         }t          j        dz
  }ddlm}m} ddl	m
} ddlm}	  ||                     ¦   «         ¦  «        s"t          |                     ¦   «         ¦  «        }
net          j        |j        ¦  «        j        } |	|j        |j         j        ¦  «        }t+          |j        |¦  «        rt          j        dz
  }
n|j        }
|
dk    r|
} |||¬¦  «         |                     |f¦  «        S )NrR   r   r;  r  r  rô   r=  )ræ   rç   r   rè   rA  rB  ré   rå   r<  r  r  r  r  r@  rÅ   r  r  rï   r¦  r§  r  rS   r  rC  )rw   rM   r"  r,  r×   rE  rå   r<  r  r  Únum_elementsr  r  s                r2   Úmasked_selectr/  ž  s_  € ð
 	ÔÐ#ØÔ"ÔAð 	$õ *¨$Ñ/Ô/Ð/à
Ô
×
4Ò
4Ñ
6Ô
6€Cõ Œ[˜1‰_€Fðð ð ð ð ð ð ð ð 7Ð6Ð6Ð6Ð6Ð6Ø;Ð;Ð;Ð;Ð;Ð;ð
 Ð˜DŸJšJ™LœLÑ)Ô)ð ,Ý˜4Ÿ:š:™<œ<Ñ(Ô(ˆˆå”I˜dœjÑ)Ô)Ô.ˆ	Ø �[ ¤°Ô1DÔ1QÑRÔRˆ
Ý�jÔ&¨Ñ4Ô4ð 	,Ýœ;¨™?ˆLˆLà%Ô+ˆLØ�aÒÐØˆàÐ˜c vÐ.Ñ.Ô.Ð.à�>Š>˜3˜&Ñ!Ô!Ð!r4   )r5   rñ   Útr(  útorch.Size | Noneræ  útuple[int, ...] | Noneútorch.device | Nonec               óø  — |�?|                      ¦   «         |k    r't          d|› d|                      ¦   «         › �¦  «        ‚|�?|                     ¦   «         |k    r't          d|› d|                     ¦   «         › �¦  «        ‚|�%|j        |k    rt          d|› d|j        › �¦  «        ‚|�%|j        |k    rt          d|› d|j        › �¦  «        ‚|�%|j        |k    rt          d|› d|j        › �¦  «        ‚d S d S )Nz!Tensor sizes mismatch! Expected: z, Got: z#Tensor strides mismatch! Expected: z!Tensor dtype mismatch! Expected: z"Tensor layout mismatch! Expected: z"Tensor device mismatch! Expected: )r  rT   r[  rÿ   rñ   r5   )rw   rM   r0  r(  ræ  rÿ   r5   rñ   s           r2   Úassert_tensor_metadatar5  Ê  sT  € ð ÐØ�6Š6‰8Œ8�uÒÐÝ ØL°EÐLÐLÀ!Ç&Â&Á(Ä(ÐLÐLñô ð ð ÐØ�8Š8‰:Œ:˜Ò Ð Ý ØR°gÐRÐRÀaÇhÂhÁjÄjÐRÐRñô ð ð ÐØŒ7�eÒÐÝ ØK°EÐKÐKÀ!Ä'ÐKÐKñô ð ð ÐØŒ8�vÒÐÝ ØN°VÐNÐNÀAÄHÐNÐNñô ð ð ÐØŒ8�vÒÐÝ ØN°VÐNÐNÀAÄHÐNÐNñô ð ð ÐØÐr4   c                ó2   — t           j        j        | j        v S r@   )rE   r*  Údata_dependent_outputr,  r1  s    r2   rÔ   rÔ   ò  s   € �uœyÔ>À$Ä)ÐK€ r4   c                ó    — t          |¦  «        ‚r@   )r   r{   s       r2   Údata_depr9  ò  s   € õ ' tÑ
,Ô
,Ð,r4   r  úlist[FakeTensor | None]c                óp   — |D ]2}|�.|j         t          j        t          j        fv rt	          | ¦  «        ‚Œ3d S r@   )rÿ   rE   r7   Úuint8r   )rM   r"  r  r-  s       r2   Úcheck_no_bool_index_tensorsr=  û  sG   € ð ð 4ð 4ˆØÐ ¤µ´½U¼[Ð0IÐ!IÐ!IÝ-¨dÑ3Ô3Ð3øð4ð 4r4   útuple[Any, ...]údict[str, Any]c                ó2  — t          |||d¬¦  «        \  }}|d         j        }t          | ¦  «        5   ||i |¤Ž}t          |¦  «        s|                     |j        ¦  «        }d d d ¦  «         n# 1 swxY w Y   ||d         u r|S t          | ||¦  «        S ©NTr~   r€   )r   r5   r   r<   rC  rï   r   )rw   rM   rx   ry   r…   r†   rˆ   r  s           r2   Ú)run_and_return_new_tensor_of_input_devicerB    s÷   € õ 1Ø�4 ÀTðñ ô �M€A€zð ˜GÔ$Ô+€JÝ	% iÑ	0Ô	0ð +ð +Øˆd�DÐ#˜FÐ#Ð#ˆÝ)¨*Ñ5Ô5ð 	+Ø—-’- ¤	Ñ*Ô*ˆCð+ð +ð +ñ +ô +ð +ð +ð +ð +ð +ð +øøøð +ð +ð +ð +ð
 ˆj˜Ô!Ð!Ð!Øˆ
Ý�i  jÑ1Ô1Ð1s   ³2A1Á1A5Á8A5r  ÚprimsÚprimc                ó   — | j         t          v S r@   )Ú	namespaceÚ_is_builtin_namespacesrn   s    r2   Ú
is_builtinrH    s   € ØŒ<Õ1Ð1Ð1r4   c                óf   — t           j                             |                      ¦   «         d¦  «        S )NÚMeta)rE   rF   Ú._dispatch_has_computed_kernel_for_dispatch_keyr�   r1  s    r2   r+   r+     s#   € ÝŒ8×BÒBÀ4Ç9Â9Á;Ä;ÐPVÑWÔWÐWr4   c                óŒ   — t          | ¦  «        o5|                      ¦   «                              d¦  «        ot          | ¦  «        S )Nzaten::_foreach_)rH  r�   Ú
startswithr+   r1  s    r2   rÔ   rÔ   %  s>   € •˜DÑ!Ô!ð Ø�	Š	‰Œ×ÒÐ0Ñ1Ô1ðå�‰Œð r4   úlist[FakeTensor] | Nonec                óø  ‡
— d„ t          j        ||                     ¦   «         ¦  «        D ¦   «         }	 t          | ¦  «        5   ||i |¤Ž}d d d ¦  «         n# 1 swxY w Y   n# t          $ r
 t
          cY S w xY w|s|S |st          d¦  «        ‚g }t          |¦  «        D ]X\  Š
}t          j	        |ˆ
fd„|D ¦   «         ¦  «        \  }}	| 
                    | j                             | ||¦  «        ¦  «         ŒY|S )Nc                ó¨   — g | ]O}t          |t          t          f¦  «        ¯t          |¦  «        ¯-t          |d          t          j        ¦  «        ¯M|‘ŒPS )r   )rS   rc   rd   rW   rE   r.  rP   s     r2   rÇ   z4foreach_run_and_map_input_device.<locals>.<listcomp>,  sf   € ð ð ð àÝ�c�D¥%˜=Ñ)Ô)ðõ �‰HŒHð	õ
 �s˜1”v�uœ|Ñ,Ô,ðØðð ð r4   ztensor_lists must not be emptyc                ó    •— g | ]
}|‰         ‘ŒS rk   rk   )rB   ÚtlÚis     €r2   rÇ   z4foreach_run_and_map_input_device.<locals>.<listcomp>B  s   ø€ Ð9WÐ9WÐ9WÀB¸"¸Q¼%Ð9WÐ9WÐ9Wr4   )r°   r±   r²   r   r  rY  rT   Ú	enumerater   Ú_find_common_devicerg   rž   rŸ   )rw   rM   rx   ry   Útensor_listsÚout_metaÚout_fakeÚmeta_tr5   r…   rS  s             @r2   Ú foreach_run_and_map_input_devicerZ  $  s‰  ø€ ðð å”? 4¨¯ª©¬Ñ9Ô9ðñ ô €LðÝ)¨)Ñ4Ô4ð 	-ð 	-Ø�t˜TÐ, VÐ,Ð,ˆHð	-ð 	-ð 	-ñ 	-ô 	-ð 	-ð 	-ð 	-ð 	-ð 	-ð 	-øøøð 	-ð 	-ð 	-ð 	-øøåð ð ð ÝÐÐÐðøøøð ð Øˆàð ?ÝÐ=Ñ>Ô>Ð>Ø€Hå˜xÑ(Ô(ð 
ð 
‰	ˆˆ6ÝÔ2°4Ð9WÐ9WÐ9WÐ9WÈ,Ð9WÑ9WÔ9WÑXÔX‰	ˆ�Ø�ŠØÔ+×@Ò@Ø˜6 6ñô ñ	
ô 	
ð 	
ð 	
ð €Os5   ´A$ Á	AÁA$ ÁAÁA$ ÁAÁ A$ Á$A8Á7A8c                óÆ   — ddl m} t          |||d¬¦  «        \  }}|d         j        }| 5   ||i |¤Ž}|                     |¦  «        cd d d ¦  «         S # 1 swxY w Y   d S )Nr   )Úmeta_index_TensorTr~   r€   )Útorch._meta_registrationsr\  r   r5   Úto)	rw   rM   rx   ry   r\  r…   r†   rˆ   r  s	            r2   Úindex_tensorr_  O  sÔ   € ð <Ð;Ð;Ð;Ð;Ð;å0Ø�4 ÀTðñ ô �M€A€zð ˜GÔ$Ô+€Jà	ð "ð "ØÐ Ð0¨Ð0Ð0ˆØ�vŠv�jÑ!Ô!ð"ð "ð "ð "ñ "ô "ð "ð "ð "ð "ð "ð "øøøð "ð "ð "ð "ð "ð "s   ¬AÁAÁAú5tuple[FakeTensor, FakeTensor, FakeTensor, FakeTensor]c                óV   — ddl m} | 5   ||i |¤Žcd d d ¦  «         S # 1 swxY w Y   d S )Nr   )Úmeta_embedding_bag)r]  rb  )rw   rM   rx   ry   rb  s        r2   Úembedding_bagrc  b  s“   € ð =Ð<Ð<Ð<Ð<Ð<à	ð 3ð 3Ø!Ð! 4Ð2¨6Ð2Ð2ð3ð 3ð 3ð 3ñ 3ô 3ð 3ð 3ð 3ð 3ð 3ð 3øøøð 3ð 3ð 3ð 3ð 3ð 3s   ‰ž"¥"c           	     ó6  — ddl m} t          |||d¬¦  «        \  }}|d         }|d         }|j        |j        k    r'|j        j        dk    r|j        j        dk    rt
          S | 5  t          t           ||i |¤Ž¦  «        cd d d ¦  «         S # 1 swxY w Y   d S )Nr   )Ú	embeddingTr~   Úweightr  r‚   )r]  re  r   r5   r:   rY  rî  r   )	rw   rM   rx   ry   Úmeta_embeddingr…   r†   rf  r  s	            r2   re  re  l  s  € ð FÐEÐEÐEÐEÐEå0Ø�4 ÀTðñ ô �M€A€zð ˜Ô!€FØ˜Ô#€GàŒ˜œÒ'Ð'ØŒMÔ &Ò(Ð(ØŒNÔ 6Ò)Ð)åÐà	ð Hð HÝ�: ~ ~°tÐ'F¸vÐ'FÐ'FÑGÔGðHð Hð Hð Hñ Hô Hð Hð Hð Hð Hð Hð Høøøð Hð Hð Hð Hð Hð Hs   Á&BÂBÂBc                ó&   — t          | |||¦  «        S r@   )rB  r{   s       r2   Úmulti_device_op_defaultri  ƒ  s   € õ 5°YÀÀdÈFÑSÔSÐSr4   c                óœ   — t          | ¦  «        5   ||i |¤Ž d d d ¦  «         n# 1 swxY w Y   t          |||d¬¦  «        \  }}|d         S rA  )r   r   )rw   rM   rx   ry   r…   r†   s         r2   Úmulti_device_op_outrk  �  s¬   € õ
 
& iÑ	0Ô	0ð ð ØˆˆdÐ�fÐÐÐðð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð õ 1Ø�4 ÀTðñ ô �M€A€zð �gÔÐs   �	%¥)¬)c                óH  ‡‡‡— t          ‰||d¬¦  «        \  }}|d         Š|d         j        Št          j        ‰‰j        k    p"‰j        dk    o‰                     ¦   «         dk    ˆˆˆfd„¦  «         t          | ‰||¦  «        }‰t          j        j	        u r|d         S |S )NTr~   r²   r€   r   rR   c                 ó&   •— d‰ › d‰› d‰j         › d�S )NzMismatching z device between self (z) and values (rù   r;   )rM   Úself_devicer²   s   €€€r2   rÔ   z index_put_impl.<locals>.<lambda>ª  s'   ø€ Ðf˜tÐfÐf¸;ÐfÐfÐV\ÔVcÐfÐfÐf€ r4   )
r   r'  rE   rÖ   r_  r@  rB  r  Ú
index_put_r  )	rw   rM   rx   ry   r…   r†   r  rn  r²   s	    `     @@r2   Úindex_put_implrp  ž  sÆ   øøø€ õ
 1Ø�4 ÀTðñ ô �M€A€zð ˜Ô!€FØ˜WÔ%Ô1€KÝ	„LØ�vÔ)Ò)ÐW¨f¬k¸QÒ.>Ð.VÀ6Ç<Â<Á>Ä>ÐUVÒCVØfÐfÐfÐfÐfÐfñô ð õ
 4°I¸tÀTÈ6Ñ
RÔ
R€CØ�tŒÔ&Ð&Ð&Ø˜'Ô"Ð"àˆ
r4   c                ó    — t          |¦  «        ‚r@   )r   r{   s       r2   Únested_tensors_unsupportedrr  ´  s   € õ ' tÑ
,Ô
,Ð,r4   c                óº   — g | ]X}|t           j        j        t           j        j        t           j        j        t           j        j        t           j        j        fv¯V|‘ŒYS rk   )r  Ú	is_pinnedr  r^  r5   Úprim_DeviceÚ_nested_tensor_from_tensor_listr  )rB   r¥   s     r2   rÇ   rÇ   ¿  se   € ð ð ð àØõ ŒNÔ"ÝŒGŒNÝŒGÔÝÔ0Ô8ÝÔ0Ô4ð
ð
ð 
ð 	
ð
ð 
ð 
r4   c                ó<   — |t           v rt          d|› �¦  «        ‚d S )NzNYI: )Ú_device_not_kwarg_opsrT   r{   s       r2   Únyiry  ¾  s,   € ð  Õ$Ð$Ð$Ý˜^ T˜^˜^Ñ,Ô,Ð,ð %Ð$r4   úKFakeTensor | tuple[FakeTensor | None, FakeTensor | None, FakeTensor | None]c           
     ót  ‡ ‡‡— t          |||d¬¦  «        \  }}|d         }|d         }|t          j        j        t          j        j        t          j        j        fv r>|j        |j        k    r.|j        s'‰ j        s t          d|j        › d|j        › d�¦  «        ‚|j
        Š‰ 5  |j        }dd	lmŠ t          ˆfd
„|j        D ¦   «         ¦  «        ot          ˆfd„|j        D ¦   «         ¦  «        }	|	sd }
nò|                     d¦  «        }t#          |d         |d         |d         |d         |d         |d         |¬¦  «        }|€|                     d¦  «        |d<   t%          j        j        ||fi |¤Ž}|dk    rJ|j        sC|j        s<|                     ¦   «                              d¦  «        }|                     d¦  «        }t$          j                             |||¦  «        }
d d d ¦  «         n# 1 swxY w Y   dˆˆ fd„}t3          ‰ ¦  «        5   |d i |¤Ž}|t          j        j        t          j        j        t          j        j        fv r |||
¦  «        cd d d ¦  «         S  ||d         |
¦  «         ||d         |
¦  «         ||d         d ¦  «        fcd d d ¦  «         S # 1 swxY w Y   d S )!NTr~   r€   rf  zInput type (z) and weight type (z) should be the samer   r–  c              3  ó.   •K  — | ]} ‰|¦  «        V — Œd S r@   rk   r›  s     €r2   rD   zconv.<locals>.<genexpr>ü  s/   øè è € ÐDÐD°!Ð*Ð*¨1Ñ-Ô-ÐDÐDÐDÐDÐDÐDr4   c              3  ó.   •K  — | ]} ‰|¦  «        V — Œd S r@   rk   r›  s     €r2   rD   zconv.<locals>.<genexpr>ü  sH   øè è € ð M
ð M
Ø%&ÐÐ˜aÑ Ô ðM
ð M
ð M
ð M
ð M
ð M
r4   Úbiasr[  ÚpaddingÚdilationÚ
transposedÚoutput_paddingÚgroups)r[  r  r€  r�  r‚  rƒ  r~  Ú
bias_sizesé   rô   r0  útorch.Tensor | NoneÚmem_fmtútorch.memory_format | Noner-   rô  c                ó(  •— | €| S |�{|                       ¦   «         dk    rM|t          j        k    r=|                      d¦  «                             |¬¦  «                             d¦  «        } n|                      |¬¦  «        } t          ‰| ‰¦  «        S )Nr…  rô   rÕ  )r  rE   Úchannels_lastrÚ  r^  rÛ  r   )r0  r‡  r5   rw   s     €€r2   Úconvertzconv.<locals>.convert!  sˆ   ø€ ð ˆ9ØˆHØÐà�uŠu‰wŒw˜!Š|ˆ| ­5Ô+>Ò >Ð >Ø—K’K ‘N”N×%Ò%°GÐ%Ñ<Ô<×DÒDÀQÑGÔG��à—D’D w�DÑ/Ô/�Ý˜) Q¨Ñ/Ô/Ð/r4   rR   )r0  r†  r‡  rˆ  r-   rô  rk   )r   r  Úconvolutionr  Ú_convolutionÚ
deprecatedrÿ   rì  Úallow_non_fake_inputsrµ   r'  r_  ré   r—  r  rï   rH   r0   rE   rF   Ú_select_conv_backendÚis_xpuÚ
contiguousrÚ  Ú%_conv_determine_backend_memory_formatr   )rw   rM   rx   ry   r…   r†   Úinput_rf  ÚkÚ
all_hintedr‡  r~  Úselect_kwargsÚconv_backendr‹  r  r5   r—  s   `               @@r2   Úconvr™  Ò  s#  øøø€ õ 1Ø�4 ÀTðñ ô �M€A€zð ˜Ô €FØ˜Ô!€Fð 	åÔÔ$ÝÔÔ%ÝÔÔ(ð
ð	
ð 	
ð ŒL˜FœLÒ(Ð(ØÔ ð )àÔ/ð )õ ð3˜6œ<ð 3ð 3Ø”ð3ð 3ð 3ñ
ô 
ð 	
ð Ô€Fà	ð *ð *àŒKˆð 	LÐKÐKÐKÐKÐKåÐDÐDÐDÐD°v´|ÐDÑDÔDÑDÔDð 
Íð M
ð M
ð M
ð M
Ø*0¬,ðM
ñ M
ô M
ñ J
ô J
ˆ
ð ð 	ð ˆGˆGð —>’> &Ñ)Ô)ˆDÝ/3Ø! (Ô+Ø" 9Ô-Ø# JÔ/Ø% lÔ3Ø)Ð*:Ô;Ø! (Ô+Øð0ñ 0ô 0ˆMð ˆ|Ø.8¯nªn¸\Ñ.JÔ.J�˜lÑ+Ý œ8Ô8Ø˜ðð Ø"/ðð ˆLð �AŠvˆv˜fÔ.ˆv°v´}ˆvà×*Ò*Ñ,Ô,×6Ò6°qÑ9Ô9�Ø×)Ò)¨!Ñ,Ô,�Ý”h×DÒDØ˜ ñô ˆGðQ*ð *ð *ñ *ô *ð *ð *ð *ð *ð *ð *øøøð *ð *ð *ð *ðX0ð 0ð 0ð 0ð 0ð 0ð 0õ 
& iÑ	0Ô	0ð ð ØˆdÐ Ð �ZÐ Ð ˆàÝÔÔ$ÝÔÔ%ÝÔÔ(ð
ð 
ð 
ð
 �7˜3 Ñ(Ô(ðð ð ð ñ ô ð ð ð �˜˜Aœ Ñ(Ô(Ø�˜˜Aœ Ñ(Ô(Ø�˜˜Aœ Ñ%Ô%ððð ð ð ñ ô ð ð ð ð ð ð øøøð ð ð ð ð ð s,   Â%EG6Ç6G:Ç=G:ÈAJ-É,4J-Ê-J1Ê4J1ÚinputsÚweightsÚ	minlengthc                ó¾  — | j         �| j         j        st          |¦  «        ‚| j                              ¦   «         }ddlm}  ||¦  «         t          j        ||k    ¦  «         |€!|                     |t          j	        ¬¦  «        S |j
        t          j        k    r!|                     |t          j        ¬¦  «        S |                     |t          j        ¬¦  «        S )Nr   rä   rþ   )ræ   rç   r   rè   ré   rå   rE   rÖ   rC  r
  rÿ   Úfloat32Úfloat64)rw   rM   rš  r›  rœ  r`  rå   s          r2   Úbincountr   ?  sÜ   € ð 	ÔÐ#ØÔ"ÔAð 	$õ *¨$Ñ/Ô/Ð/àÔ"×9Ò9Ñ;Ô;€HàOÐOÐOÐOÐOÐOàÐ˜hÑ'Ô'Ð'Ý	„L�˜YÒ&Ñ'Ô'Ð'à€Ø×Ò µ´
ÐÑ;Ô;Ð;Ø	Œ�%œ-Ò	'Ð	'Ø×Ò µ´ÐÑ>Ô>Ð>à×Ò µ´ÐÑ>Ô>Ð>r4   ÚlengthsÚbatch_firstc                óF  — | j         �| j         j        st          |¦  «        ‚| j                              ¦   «         }ddlm}  ||¦  «         |s|                     dd¦  «        }|j        dd …         }|                     |¦  «        }|                     |f¦  «        }	||	fS )Nr   rä   rR   )	ræ   rç   r   rè   ré   rå   Ú	transposerï   rC  )
rw   rM   rš  r¡  r¢  Únew_batch_sizerå   Úres_sizeÚpacked_dataÚ
batch_sizes
             r2   Ú_pack_padded_sequencer©  ]  sÃ   € ð 	ÔÐ#ØÔ"ÔAð 	$õ *¨$Ñ/Ô/Ð/àÔ(×?Ò?ÑAÔA€NàOÐOÐOÐOÐOÐOàÐ˜nÑ-Ô-Ð-àð (à×!Ò! ! QÑ'Ô'ˆàŒ|˜A˜B˜BÔ€HØ×"Ò" 8Ñ,Ô,€KØ×!Ò! >Ð"3Ñ4Ô4€JØ˜Ð$Ð$r4   c                ó   ‡ — dˆ fd„}|S )Nr_   r`   r-   c                ó   •— | t           ‰<   | S r@   )ÚFAST_OP_IMPLEMENTATIONS)r_   rM   s    €r2   ri   z-register_fast_op_impl.<locals>.impl_decorator…  s   ø€ Ø(/Õ Ñ%Øˆr4   rj   rk   )rM   ri   s   ` r2   Úregister_fast_op_implr­  ‚  s)   ø€ ðð ð ð ð ð ð Ðr4   Úbútuple[IntLikeType, ...]c                óÜ  ‡
‡‡— ddl m} t          | ¦  «        }t          |¦  «        }t          ||¦  «        }dg|z  }t	          |dz
  dd¦  «        D ]ŒŠ
|dz
  ‰
z
  }|dz
  |z
  }|dz
  |z
  }	|dk    r| |         ndŠ|	dk    r||	         ndŠt          j         |‰dk    ¦  «        p |‰dk    ¦  «        p‰‰k    ˆ
ˆˆfd„¦  «          |‰dk    ¦  «        r‰n‰|‰
<   Œ�t          |¦  «        S )Nr   rT  rR   rÈ   c                 ó   •— d‰› d‰› d‰ › d�S )NzThe size of tensor a (z#) must match the size of tensor b (z) at non-singleton dimension rù   rk   )rS  ÚsizeAÚsizeBs   €€€r2   rÔ   zinfer_size.<locals>.<lambda>ª  s5   ø€ ð /¨Uð /ð /Ø05ð/ð /à*+ð/ð /ð /€ r4   )ré   rU  rW   rÜ   rv  rE   rÖ   rd   )rˆ  r®  rU  ÚdimsAÚdimsBr_  ÚexpandedSizesrÆ   ÚdimAÚdimBrS  r²  r³  s             @@@r2   rØ  rØ  �  sT  øøø€ ð EÐDÐDÐDÐDÐDå�‰FŒF€EÝ�‰FŒF€EÝˆu�eÑÔ€DØ() s¨T¡z€MÝ�4˜!‘8˜R Ñ$Ô$ð Jð JˆØ˜‘˜A‘ˆØ�q‰y˜6Ñ!ˆØ�q‰y˜6Ñ!ˆØ 1š9˜9��$”�¨!ˆØ 1š9˜9��$”�¨!ˆõ 	ŒØˆN˜5 Aš:Ñ&Ô&ÐV¨.¨.¸À!ºÑ*DÔ*DÐVÈÐQVÊð/ð /ð /ð /ð /ð /ñ	
ô 	
ð 	
ð %3 N°5¸A²:Ñ$>Ô$>ÐI˜5˜5ÀEˆ�aÑÐÝ�ÑÔÐr4   Úslow_refúCallable[..., Any]Útype_promotion_kindr   úCallable[..., FakeTensor]c                ó   ‡ ‡— d	ˆ ˆfd„}|S )
NÚmoder#   rx   r   ry   r-   r   c           	     óâ  •‡ ‡‡— dˆˆˆ ˆfd„}t          d¦  «         ‰}d }|D ]9}t          |t          j        ¦  «        r|j        nd}|€|}t          ||¦  «        }Œ:|€t          d¦  «        ‚d	d
lm}m	}	 |D ]]}t          |t          j        ¦  «        rAt          |j        ¦  «        t          |¦  «        k    r | |	|j        |¦  «        ¦  «        r nŒ^ |d¦  «        S t          j        d¦  «        }
|
}d }d}|D ]f}t          |t          j        ¦  «        sd}Œ||
k    r|j        j        dk    r|j        }|€‰t          j        k    rd}ŒQ|j        }ŒY||j        k    rd}Œg|rt!          |d‰iŽ\  }}d	}d}|D ]w}t          |t          j        ¦  «        sŒ||
k    r<|                     ¦   «         d	k    r$|j        |
k    r||k    r |d¦  «        c S |dz  }Œ_|j        |k    r |d¦  «        c S Œxd}d}t%          |¦  «        rZ|D ]W}t          |t          j        ¦  «        sŒ|ot'          |t          j        ¬¦  «        }|ot'          |t          j        ¬¦  «        }ŒX|rAt          d¦  «         t-          ‰ t          j        ||dt          j        ¬¦  «        |¬¦  «        S |rAt          d¦  «         t-          ‰ t          j        ||dt          j        ¬¦  «        |¬¦  «        S  |d¦  «        S )Nrè  r�   r-   r   c                óp   •— t          d| › �¦  «         ‰5   ‰‰i ‰¤Žcd d d ¦  «         S # 1 swxY w Y   d S )Nzslow r   )rè  rx   ry   r¾  r¹  s    €€€€r2   Úslowz=make_fast_binary_impl.<locals>.fast_binary_impl.<locals>.slow·  s“   ø€ Ý˜ ˜˜Ñ&Ô&Ð&Øð 1ð 1Ø�x Ð0¨Ð0Ð0ð1ð 1ð 1ð 1ñ 1ô 1ð 1ð 1ð 1ð 1ð 1ð 1øøøð 1ð 1ð 1ð 1ð 1ð 1s   –+«/²/zattempt fastrk   zfinal_shape must not be Noner   rÑ  z#both tensors nontrivially broadcastr�   FTr»  rR   ÚerrorrÕ  zfast is_contiguousr‚   )rÿ   r5   rÖ  r;   zfast channels_lastzno contiguity match)rè  r�   r-   r   )r    rS   rE   r.  rï   rØ  rT   ré   rU  ro  rW   r5   r:   r   ÚDEFAULTrÿ   r   r  r<   r   rã  rŠ  r   r  )r¾  rx   ry   rÁ  ÚoperandsÚfinal_shaperh   rï   rU  ro  r�   Úcommon_deviceÚcommon_dtypeÚhas_different_input_dtypesr…   Úcurrent_cpu_scalars_on_non_cpuÚmax_cpu_scalars_on_non_cpuÚdefinitely_contiguousÚdefinitely_channels_lastr¹  r»  s   ```                €€r2   Úfast_binary_implz/make_fast_binary_impl.<locals>.fast_binary_impl¶  s#  øøøø€ ð	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1ð 	1õ
 	�NÑ#Ô#Ð#ð ˆð )-ˆØð 	9ð 	9ˆBÝ+5°b½%¼,Ñ+GÔ+GÐO˜rœx˜xÈRˆEØÐ"Ø#�õ
 % [°%Ñ8Ô8ˆKˆKØÐÝ Ð!?Ñ@Ô@Ð@àPÐPÐPÐPÐPÐPÐPÐPð ð 
	?ð 
	?ˆBå˜2�uœ|Ñ,Ô,ðå˜œ‘M”M¥S¨Ñ%5Ô%5Ò5Ð5à"�N 6 6¨"¬(°KÑ#@Ô#@ÑAÔAð 6ð �øð �4Ð=Ñ>Ô>Ð>õ Œl˜5Ñ!Ô!ˆØ&)ˆØ+/ˆØ%*Ð"Øð 	2ð 	2ˆBÝ˜b¥%¤,Ñ/Ô/ð à-1Ð*ØØ Ò#Ð#¨¬	¬¸%Ò(?Ð(?Ø "¤	�ØÐ#Ø&Õ*IÔ*QÒQÐQØ15Ð.Ð.à#%¤8�L�LØ ¤Ò)Ð)Ø-1Ð*øà%ð 	õ 1ØðØ/Bðð ‰OˆAˆ|ð *+Ð&Ø%&Ð"Øð 	%ð 	%ˆBÝ˜b¥%¤,Ñ/Ô/ð ØØ Ò#Ð#¨¯ª©¬°Aª¨¸"¼)ÀsÒ:JÐ:JØ1Ð5OÒOÐOØ˜4 ™=œ=Ð(Ð(Ð(Ø.°!Ñ3Ð.Ð.Ø”˜mÒ+Ð+Ø�t˜G‘}”}Ð$Ð$Ð$ð ,ð !%ÐØ#'Ð õ
 & mÑ4Ô4ð 	Øð ð �Ý! "¥e¤lÑ3Ô3ð Øà)ð Ý@Ø­%Ô*Aðñ ô ð &ð -ð Ý@Ø­%Ô*=ðñ ô ð )Ð(ð !ð 	åÐ,Ñ-Ô-Ð-ÝØÝ”ØØ&Ø!Ý"'Ô"9ð	ñ ô ð %ð	ñ 	ô 	ð 	ð $ð 	ÝÐ,Ñ-Ô-Ð-åØÝ”ØØ&Ø!Ý"'Ô"5ð	ñ ô ð %ð	ñ 	ô 	ð 	ð ˆtÐ)Ñ*Ô*Ð*r4   )r¾  r#   rx   r   ry   r   r-   r   rk   )r¹  r»  rÍ  s   `` r2   Úmake_fast_binary_implrÎ  ²  s7   øø€ ðK+ð K+ð K+ð K+ð K+ð K+ð K+ðZ Ðr4   r¥   Úinclude_realc                óX  — t          ¦   «         5  t          | ¦  «        5  t          j        j        j                             |¦  «        }d d d ¦  «         n# 1 swxY w Y   d d d ¦  «         n# 1 swxY w Y   |rt          | ||j        |j	        ¬¦  «        S t          | ||j        ¦  «        S )N)rÃ   )
r   r   rE   r  r  Údetachr  r   r5   rÃ   )rw   r¥   rÏ  r  s       r2   Úfast_detachrÒ  H  s  € õ 
Ñ	Ô	ð /ð /Õ!=¸iÑ!HÔ!Hð /ð /ÝŒiŒnÔ#×+Ò+¨AÑ.Ô.ˆð/ð /ð /ñ /ô /ð /ð /ð /ð /ð /ð /øøøð /ð /ð /ð /ð /ð /ð /ñ /ô /ð /ð /ð /ð /ð /ð /øøøð /ð /ð /ð /àð OÝ˜) S¨!¬(ÀÄÐNÑNÔNÐNÝ�i  a¤hÑ/Ô/Ð/s4   �A,Ÿ*AÁ	A,ÁA	ÁA,ÁA	ÁA,Á,A0Á3A0ú$dict[OpOverload, Callable[..., Any]]c                 óª  — dd l }  t          | j        j        j        j        ¦  «        t          | j        j        ¦  «        ¦  «          t          | j        j        j        j        ¦  «        t          | j        j        ¦  «        ¦  «          t          | j        j        j	        j        ¦  «        t          | j        j	        ¦  «        ¦  «          t          | j        j        j
        j        ¦  «        t          | j        j
        t          j        ¬¦  «        ¦  «          t          | j        j        j        j        ¦  «        t          ¦  «         t           S )Nr   )r»  )Útorch._refsr­  r  r  Úaddr.  rÎ  rÙ  Úsubru  Údivr   ÚINT_TO_FLOATrÑ  r  rÒ  r¬  )rE   s    r2   r)   r)   R  s'  € àÐÐÐà4Õ˜%œ)œ.Ô,Ô3Ñ4Ô4Ý˜eœkœoÑ.Ô.ñô ð ð 5Õ˜%œ)œ.Ô,Ô3Ñ4Ô4Ý˜eœkœoÑ.Ô.ñô ð ð 5Õ˜%œ)œ.Ô,Ô3Ñ4Ô4Ý˜eœkœoÑ.Ô.ñô ð ð 5Õ˜%œ)œ.Ô,Ô3Ñ4Ô4ÝØŒKŒOÝ ?Ô Lð	
ñ 	
ô 	
ñô ð ð 9Õ˜%œ)œ.Ô/Ô7Ñ8Ô8½ÑEÔEÐEÝ"Ð"r4   )r,   r'   r-   r.   )r5   r6   r-   r7   )r=   r   r-   r7   )rM   r   r-   r7   )r[   r\   r-   r]   )rh   r   r-   r7   )rh   r   r-   rp   )
rw   r#   rM   r   rx   r   ry   r   r-   r   )
rw   r#   rM   r   rx   r   ry   r   r-   r   )
rw   r#   rM   r   rx   r   ry   r   r-   r7   r@   )
rw   r#   rM   r   r�   r�   rx   r‘   r-   r   )rw   r#   rM   r   r—   r   r-   rp   )
rw   r#   rM   r   r�   r�   rx   r‘   r-   r   )r¾   r¿   r-   rÀ   )
r¾   rÍ   rÎ   rÅ   rÏ   rÅ   rÐ   rÅ   r-   rÅ   )rÎ   rÅ   rÏ   rÅ   rÐ   rÅ   r-   rÅ   )rw   r#   rM   r   rà   rá   r-   râ   )rë   r¦   r-   r7   )rw   r#   rM   r   rî   r¿   r¾   r¿   rï   rð   rñ   rò   r-   r   )NN)rw   r#   rM   r   r"  r   rÿ   r#  r$  r%  r-   r   )
rw   r#   rM   r   rx   r   ry   r   r-   rp   )TFF)rw   r#   rM   r   rQ   r   r  rá   r6  r7   r7  r7   r8  r7   r5  r7   r-   r9  )rw   r#   rM   r   rQ   r   r6  r7   r7  r7   r8  r7   r-   r9  )TF)rw   r#   rM   r   rQ   r   r6  r7   r7  r7   r-   rN  )rw   r#   rM   r   r"  r   r  rÅ   r-  r$   r-   r   )rw   r#   rM   r   rQ   r   r  rÅ   r6  r7   r7  r7   r8  r7   r-   r9  )FFN)rw   r#   rM   r   rQ   r   r7  r7   r8  r7   r  rá   r-   r9  )F)
rg  rh  ri  rh  rj  rh  rk  r7   r-   rl  )rë   r   r-   rá   )r‚  r   rƒ  r   r-   r7   )rˆ  r‰  r-   r7   )rˆ  r‰  rï   r”  r-   r7   )rˆ  r‰  rï   r”  rÌ  r7   rÍ  r7   rÎ  r7   r-   r‰  )
rw   r#   rM   r   rˆ  r   rï   r   r-   ré  )rw   r#   rM   r   rˆ  r   rï   r   rÍ  r7   r-   r   )rw   r#   rM   r   rˆ  r   rï   r$   r  rô  r-   r   )
rw   r#   rM   r   rú  r   rû  rü  r-   r   )rw   r#   rM   r   rQ   r   r-   rÿ  )rw   r#   rM   r   rQ   r   r-   r  )rw   r#   rM   r   rQ   r   r-   r   )rw   r#   rM   r   r  r   r¾   r  r  rü  r-   r   )r  r$   r-  r$   r-   rü  )r   NNrR   )rw   r#   rM   r   r"  r   r  rÅ   r"  rá   r#  rá   r$  rÅ   r-   r   )
rw   r#   rM   r   r"  r   r,  r   r-   r   )NNN)rw   r#   rM   r   r0  r   r(  r1  ræ  r2  rÿ   r#  r5   r3  rñ   rò   r-   rp   )rM   r   r"  r   r  r:  r-   rp   )
rw   r#   rM   r   rx   r>  ry   r?  r-   r   )
rw   r#   rM   r   rx   r   ry   r   r-   rN  )
rw   r#   rM   r   rx   r   ry   r   r-   r`  )
rw   r#   rM   r   rx   r   ry   r   r-   rz  )Nr   )rw   r#   rM   r   rš  r   r›  rô  rœ  r$   r-   r   )rw   r#   rM   r   rš  r   r¡  r   r¢  r7   r-   rN  )rM   r   r-   r]   )rˆ  rh  r®  rh  r-   r¯  )r¹  rº  r»  r   r-   r¼  )rw   r#   r¥   r   rÏ  r7   r-   r   )r-   rÓ  )ÐÚ
__future__r   r¶  r°   r  rt  rA  r   Útypingr   r   rî  r   r	   Útyping_extensionsr
   rE   Útorch._custom_opÚtorch._loggingÚtorch._prims_commonÚ_prims_commonrŸ  Útorch._dispatch.pythonr   Ú
torch._opsr   r   r   r   r   r   r   r   r   r   r   r   Útorch._subclasses.fake_tensorr   r   r   r   r   r   Útorch.fx.operator_schemasr   Útorch.utils._statsr    Úcollections.abcr!   r"   r#   Útorch.typesr$   r.  r¿   r%   r&   r'   Ú_pytreer³   Ú__all__rb   r(   Ú_opsr  r  r3   r<   r“   r  r  Ú	full_likeÚ	ones_likeÚ	rand_likeÚ	generatorÚgenerator_outÚ
randn_likeÚrandint_likeÚTensor_generatorÚ
Tensor_outÚTensor_generator_outÚ	low_dtypeÚlow_generator_dtypeÚlow_dtype_outÚlow_generator_dtype_outÚ
zeros_likerC  r  Únew_fullÚ	new_zerosÚnew_onesr„   Ú_resize_output_rv  Ú
pin_memoryr^  r5   ru  rt  Ú_pin_memoryÚ_resize_outputrx  Ú_list_to_tensorrƒ   rA   ÚcacherZ   re   ro   rv   Ú__contains__r|   rŠ   rŽ   Úprofilerr–   r™   rœ   r¡   r*   r¹   r»   r½   rÌ   rÙ   rß   rê   rí   r!  r(  r3  rJ  Ú_unique2rM  rR  ÚselectrÅ   rc  re  r5  r}  r�  r‡  r“  r¡  rË  rá  rð  rï  Ú_unsafe_viewrí  Ú	view_copyrù  r0  rþ  ÚitemÚ_local_scalar_denser  r	  r/  r  r!  Úslicer+  r/  Ú_assert_tensor_metadatar5  r9  r=  rB  rG  rH  r+   rZ  r-  r_  Ú_embedding_bagrc  re  Ú_unsafe_index_putÚcopyÚcopy_Úslice_scatterÚdiagonal_scatterri  rk  Ú	index_putro  rp  Ú_nested_view_from_bufferÚ_nested_view_from_buffer_copyrr  ry  rŒ  r�  rŽ  Úconvolution_backwardr™  r   r©  r¬  r­  rØ  rÃ  rÎ  rÒ  r)   rk   r4   r2   ú<module>r     sÒ  ðØ "Ð "Ð "Ð "Ð "Ð "à Ð Ð Ð Ø Ð Ð Ð Ø €€€Ø €€€Ø 
€
€
€
Ø Ð Ð Ð Ð Ð Ø CÐ CÐ CÐ CÐ CÐ CÐ CÐ CÐ CÐ CÐ CÐ CØ 'Ð 'Ð 'Ð 'Ð 'Ð 'à €€€Ø Ð Ð Ð Ø Ð Ð Ð Ø #Ð #Ð #Ð #Ð #Ð #Ø 7Ð 7Ð 7Ð 7Ð 7Ð 7Ø !Ð !Ð !Ð !Ð !Ð !ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ðð ð ð ð ð ð ð ð ð ð ð ð ð ð ð ð CÐ BÐ BÐ BÐ BÐ BØ *Ð *Ð *Ð *Ð *Ð *ð ð (Ø2Ð2Ð2Ð2Ð2Ð2Ð2Ð2à<Ð<Ð<Ð<Ð<Ð<Ø'Ð'Ð'Ð'Ð'Ð'ð ˜eœlÑ*€Ø€Yˆt�_„_€Ø€WˆT�]„]€Ø€WˆT�]„]€à	ŒÔ	€ðð ð €ð Ð àÐ ð „z„~Ô€ð&ð &ð &ð &ð ð  ð  ð  ð (˜Kð 'Ø„OÔð'à„OÔð'ð 	„NÔð'ð 	„NÔð	'ð
 	„NÔð'ð 	„NÔð'ð 	„NÔð'ð 	„NÔð'ð 	„NÔð'ð 	„NÔ ð'ð 	„OÔð'ð 	„OÔð'ð 	„OÔð'ð 	„OÔ!ð'ð 	ÔÔð'ð  	ÔÔð!'ð" 	ÔÔð#'ð$ 	ÔÔ&ð%'ð& 	ÔÔ ð''ð( 	ÔÔ*ð)'ð* 	ÔÔð+'ð, 	ÔÔ#ð-'ð. 	ÔÔð/'ð0 	ÔÔ)ð1'ð2 	ÔÔ#ð3'ð4 	ÔÔ-ð5'ð6 	„OÔð7'ð8 	„OÔð9'ð: 	„NÔð;'ð< 	„NÔð='ð> 	ÔÔ"ð?'ð@ 	ÔÔðA'ðB 	„MÔðC'ðD 	„MÔðE'ðF 	„NÔðG'ðH 	„NÔðI'ðJ 	„MÔðK'ðL 	„MÔðM'ð 'ð 'Ð ðT $˜ØÔÔ ØÔ(Ô0ØÔ(Ô,Ø„OÔØ„G„NØ„GÔØ„NÔØÔÔØÔÔØÔÔØÔÔñô Ð ð #'Ô"6Ð!8Ð ðð ð ð ð „ð	ð 	ð 	ñ „ð	ðð ð ð ð4)ð )ð )ð )ðð ð ð ð ÐÐ)Ô6Ñ7Ô7ðKð Kð Kñ 8Ô7ðKð ÐÐ(Ñ)Ô)ØÐÐ.Ð-Ð.Ñ/Ô/ð0ð 0ð 0ñ 0Ô/ñ *Ô)ð0ð: Ð�$”.Ô(Ñ)Ô)ðð ð ñ *Ô)ðð  Ð�%”)Ô$Ô;ÔCÑDÔDàRVð	Cð 	Cð 	Cð 	Cñ EÔDð	Cð Ð�%”)Ô$Ô:ÔBÑCÔCð	ð 	ð 	ñ DÔCð	ð Ð�%”)Ô$Ô?ÔGÑHÔHàRVð ð  ð  ð  ñ IÔHð ð Ð�$”'Ô%Ñ&Ô&ØÐ�$”'”.Ñ!Ô!ðð ð ñ "Ô!ñ 'Ô&ðð$ð ð ð ð
 ÐÐ%Ñ&Ô&ð-ð -ð -ñ 'Ô&ð-ðD Ð�$”/Ô)Ñ*Ô*ð%ð %ð %ñ +Ô*ð%ð Ð�$Ô?ÔGÑHÔHð:ð :ð :ñ IÔHð:ðEð Eð Eð Eðð ð ð ð @ð @ð @ð @ðð ð ð ð(Bð Bð Bð Bð Ð�$”-Ô'Ñ(Ô(ð #'ðfð fð fð fñ )Ô(ðfðR Ð�$”.Ô(Ñ)Ô)ð
 !%Ø#ðð ð ð ñ *Ô)ðð4 ÐðTð Tñô ð
,ð ,ð ,ñô ð
,ð Ø ØðOð  %ðOð Oð Oð Oð Oð Oðd Ð�$”-Ô'Ñ(Ô(ð
 Ø ØðVð Vð Vð Vñ )Ô(ðVð Ð�$”,Ô&Ñ'Ô'ð
 Ø ð
ð 
ð 
ð 
ñ (Ô'ð
ð Ð�$”+”/Ñ"Ô"ð5Eð 5Eð 5Eñ #Ô"ð5Eðp Ð�$”/Ô)Ñ*Ô*ð Ø Øðð ð ð ñ +Ô*ðð* Ð�$Ô)Ô1Ñ2Ô2ð
 !ØØðð ð ð ñ 3Ô2ðð2 !ð	Lð Lð Lð Lð Lð^ð ð ð ðð ð ð ñ$ ð  ð  ð  ñFð ð ð ñVð Vð Vð Vðx $(ØØ"'ðiñ ið ið ið iðX Ð�$Ô$Ô,Ñ-Ô-ñ
ð 
ð 
ñ .Ô-ð
ð, Ð�$”)Ô#Ñ$Ô$ØÐ�$Ô#Ô+Ñ,Ô,ð ð
ð 
ñ 
ð 
ð 
ñ -Ô,ñ %Ô$ð
ð( Ð�$”.Ô(Ñ)Ô)ð "ðð ñ ð ð ñ *Ô)ðð* Ð�$Ô(Ô/Ñ0Ô0ð
 '+ð	*ñ *ð *ð *ñ 1Ô0ð*ð. Ð�%”)”.Ô%Ô-Ñ.Ô.ØÐ�%”)”.Ô4Ô<Ñ=Ô=ñð ð ñ >Ô=ñ /Ô.ðð. Ð�%”)”.Ô.Ô6Ñ7Ô7ñ9ð 9ð 9ñ 8Ô7ð9ð Ð�%”)”.Ô(Ô0Ñ1Ô1ñ/Pð /Pð /Pñ 2Ô1ð/Pðd Ð�%”)”.Ô@ÔHÑIÔIð #'ð%*ñ %*ð %*ð %*ñ JÔIð%*ñPð ð ð ð& Ð�%”)”.Ô&Ô-Ñ.Ô.ð
 ØØØñJ?ñ J?ð J?ð J?ñ /Ô.ðJ?ðZ Ð�%”)”.Ô.Ô6Ñ7Ô7ñ("ð ("ð ("ñ 8Ô7ð("ðV Ð�%”)”.Ô8Ô@ÑAÔAð
  $Ø&*Ø $ñ#ð #'Ø"&ð#ð #ñ #ð #ð #ñ BÔAð#ðN ÐÐKÐKÑLÔLð-ð -ð -ñ MÔLð-ñ4ð 4ð 4ð 4ñ2ð 2ð 2ð 2ð* %˜ V¨W°fÑ=Ô=Ð ð2ð 2ð 2ð 2ðXð Xð Xð Xð
 Ððð ñô ñ
 ð  ð  ñô ð
 ðL Ð�$”*Ô#Ñ$Ô$ð"ð "ð "ñ %Ô$ð"ð$ Ð�$Ô%Ô-Ñ.Ô.ñ3ð 3ð 3ñ /Ô.ð3ð Ð�$”.Ô(Ñ)Ô)ðHð Hð Hñ *Ô)ðHð, Ð�$Ô(Ô0Ñ1Ô1ØÐ�$”)Ô#Ñ$Ô$ØÐ�$”*Ô$Ñ%Ô%ØÐ�$Ô$Ô,Ñ-Ô-ØÐ�$Ô'Ô/Ñ0Ô0ðTð Tð Tñ 1Ô0ñ .Ô-ñ &Ô%ñ %Ô$ñ 2Ô1ð
Tð Ð�$”)”-Ñ Ô ØÐ�$Ô$Ô(Ñ)Ô)ð
ð 
ð 
ñ *Ô)ñ !Ô ð
ð Ð�$”.Ô(Ñ)Ô)ØÐ�$”/Ô)Ñ*Ô*ðð ð ñ +Ô*ñ *Ô)ðð( Ð�$Ô6Ô>Ñ?Ô?ØÐ�$Ô6Ô:Ñ;Ô;ØÐ�$Ô/Ô7Ñ8Ô8ØÐ�$Ô4Ô<Ñ=Ô=ð-ð -ð -ñ >Ô=ñ 9Ô8ñ <Ô;ñ @Ô?ð-ð Ððð à&ðñ ô ñô ð-ð -ð -ñô ð-ð
 ÐàÔÔ ØÔÔ!ØÔÔ$ØÔ!Ô)ð	ñô ñbð bð bñô ðbðJ Ð�%”)”.Ô)Ô1Ñ2Ô2ð
 "&Øñ?ñ ?ð ?ð ?ñ 3Ô2ð?ð: Ð�%”)”.Ô6Ô>Ñ?Ô?ñ%ð %ð %ñ @Ô?ð%ð> Ð ñ
ð ð ð ñ" ð " ð " ð " ðN <[Ô;bðQñ Qð Qð Qð Qðn DIð0ñ 0ð 0ð 0ð 0ð „ñ#ð #ð #ñ „ð#ð #ð #r4   