ó
    Eñi…L  ã                   ó  • S SK r S SKrS SKrS SKJrJr  S SKJr  S SKJr  S SK	J
r
JrJrJrJr  S SKJr  S SKrS SKJr  S SKJrJrJrJrJrJrJr  S SKJr  S S	KJ r J!r!  \" S
5      r"\" S5      r#\S\S\RH                  S\4S j5       r%\S\S\RH                  S\4S j5       r%\S\S\RH                  S\4S j5       r%\SSS\RH                  SS4S j5       r%S r%S\S\&S\4S jr'S r( " S S5      r)S\S\4S jr* S0S\S\S\\RV                     4S jjr,S\S\-4S jr.S \S!\SS4S" jr/S#S$.S \S!\S%\-4S& jjr0S#S#S#S'.S(\1S%\-S)\-S*\-S\\\#\"4   /\\#\"4   4   4
S+ jjr2S,\4S- jr3S. r4S,\\#\"4   S\\#\\"\4   4   4S/ jr5g)1é    N)ÚCallableÚSequence)Úwraps)ÚGenericAlias)Ú
NamedTupleÚOptionalÚoverloadÚTypeVarÚUnion)Ú	ParamSpec)ÚCustomOutParamAnnotationÚELEMENTWISE_TYPE_PROMOTION_KINDÚNumberÚ
NumberTypeÚ	ShapeTypeÚ
TensorLikeÚTensorLikeType)Ú_pytree)Útree_flattenÚtree_unflattenÚ_TÚ_PÚaÚdtypeÚreturnc                 ó   • g ©N© ©r   r   s     ÚY/home/mande/repo/quber/.venv/lib/python3.13/site-packages/torch/_prims_common/wrappers.pyÚ_maybe_convert_to_dtyper!      ó   € ð 	ó    c                 ó   • g r   r   r   s     r    r!   r!   $   r"   r#   c                 ó   • g r   r   r   s     r    r!   r!   *   r"   r#   c                 ó   • g r   r   r   s     r    r!   r!   0   s   € àr#   c                 ób  ^• [        U [        5      (       a#  U R                  T:w  a  U R                  T5      $ U $ [        U [        5      (       a  [
        R                  " T5      " U 5      $ [        U [        5      (       a  [        U4S jU  5       5      $ U c  g [        S[        U 5       S35      e)Nc              3   ó<   >#   • U  H  n[        UT5      v •  M     g 7fr   ©r!   )Ú.0Úxr   s     €r    Ú	<genexpr>Ú*_maybe_convert_to_dtype.<locals>.<genexpr>>   s   øé € ÐBÂ¸1Ô,¨Q°×6Ð6Âùó   ƒzReceived unsupported type z+. Expected TensorLike, Number, or Sequence.)Ú
isinstancer   r   Útor   ÚutilsÚdtype_to_type_ctorr   ÚtupleÚ
ValueErrorÚtyper   s    `r    r!   r!   6   s˜   ø€ Ü�!”Z× Ñ Ø�7‰7�eÓØ—4‘4˜“;ÐØˆÜ�!”V×ÑÜ×'Ò'¨Ô.¨qÓ1Ð1Ü�!”X×ÑÜÔBÁÓBÓBÐBð 	�yØä
Ø
$¤T¨!£W IÐ-XÐYóð r#   Útypc                 óú   • [        U [        5      (       d  S[        U 5       S3n[        U5      e[        R
                  " [        U 5      U5      (       d   SU  S[        U 5       SU S3n[        U5      eU" U 5      $ )NzFound unknown type z  when trying to convert scalars!zScalar z	 of type z cannot be safely cast to type Ú!)r/   r   r5   r4   r1   Úis_weakly_lesser_type)r   r6   Úmsgs      r    Ú_maybe_convert_to_typer;   I   sv   € Ü�aœ× Ñ Ø#¤D¨£G 9Ð,LÐMˆÜ˜‹oÐÜ×&Ò&¤t¨A£w°×4Ñ4Ø˜�s˜)¤D¨£G 9Ð,KÈCÈ5ÐPQÐRˆÜ˜‹oÐáˆq‹6€Mr#   c                 ór   • [        US5      (       a$  UR                   H  n[        XS9(       d  M    g   gXL $ )NÚ__args__)r6   Ú
annotationTF)Úhasattrr=   Ú_annotation_has_type)r6   r>   r   s      r    r@   r@   T   s;   € Üˆz˜:×&Ñ&Ø×$Ô$ˆAÜ#¨×:Ñ:Ùñ %ð àÐÐr#   c                   óP   • \ rS rSrSrSS.S\S\\\      4S jjr	S\
S	\
4S
 jrSrg)Ú"elementwise_type_promotion_wrapperé^   aê  
Adds elementwise type promotion to a Python reference implementation.

Takes two kwargs, type_promoting_args and type_promotion_kind.

type_promoting_args must be a string Sequence specifying the argument names of all
arguments that participate in type promotion (and should be type promoted). If the
arg specifies a Sequence-type then every element of the Sequence will participate in
type promotion.

type_promotion_kind must be one of the kinds specified by ELEMENTWISE_TYPE_PROMOTION_KIND.
See its documentation for details.

The return_dtype will be coerced to the wrapped function's dtype arg if it is available and
not None.

Other type promotion behavior, like validating the Python type of scalar arguments, must
be handled separately.
N)Útype_promoting_argsÚtype_promotion_kindrD   c                ó   • X l         Xl        g r   ©Útype_promoting_arg_namesrE   )ÚselfrE   rD   s      r    Ú__init__Ú+elementwise_type_promotion_wrapper.__init__s   s   € ð )<Ô%Ø#6Õ r#   Úfnr   c                 ó˜   ^ ^^• [         R                  " T5      m[        R                  [	        T5      UU U4S j5       5       nTUl        U$ )Nc                  óÚ  >^	^
• TR                   " U 0 UD6m	[        U	4S jTR                   5       5      n[        R                  " U6 n[
        R                  " USTR                  06u  nm
TR                   Vs0 s H/  nUT	R                  ;   d  M  U[        T	R                  U   U5      _M1     nnT	R                  R                  U5        T" S0 T	R                  D6nST	R                  ;   a  T	R                  S   nU(       a  Um
[        U[        5      (       a  [        UT
5      $ [        U[        5      (       a  [        U
4S jU 5       5      $ [        S[        U5       35      es  snf )Nc              3   óf   >#   • U  H&  nUTR                   ;   d  M  TR                   U   v •  M(     g 7fr   )Ú	arguments)r*   r+   Úbounds     €r    r,   ÚKelementwise_type_promotion_wrapper.__call__.<locals>._fn.<locals>.<genexpr>…   s/   øé € ð (â6�AØ˜Ÿ™Ñ'ó #�—‘ Ö"Ú6ùs   ƒ1›1rE   r   c              3   ó<   >#   • U  H  n[        UT5      v •  M     g 7fr   r)   )r*   r+   Úresult_dtypes     €r    r,   rR   £   s   øé € ÐVÊvÈ!Ô4°Q¸×EÐEÊvùr.   zUnhandled result type: r   )Úbindr3   rH   ÚpytreeÚarg_tree_leavesr1   Úelementwise_dtypesrE   rP   r!   Úupdater/   r   r   ÚAssertionErrorr5   )ÚargsÚkwargsrD   Úflattened_type_promoting_argsÚcompute_dtyper+   Úpromoted_argsÚresultÚmaybe_dtyperQ   rT   rL   rI   Úsigs            @@€€€r    Ú_fnÚ8elementwise_type_promotion_wrapper.__call__.<locals>._fn�   sZ  ú€ ð —H’H˜dÐ- fÑ-ˆEÜ"'ô (à×6Ò6ó(ó #Ðô -3×,BÒ,BÐDWÐ,XÐ)Ü*/×*BÒ*BØ.ð+à$(×$<Ñ$<ñ+Ñ'ˆM˜<ð ×6Ò6óâ6�AØ˜Ÿ™Ñ'ó N�Ô*¨5¯?©?¸1Ñ+=¸}ÓMÒMÙ6ð ð ð
 �O‰O×"Ñ" =Ô1áÑ*˜%Ÿ/™/Ñ*ˆFð ˜%Ÿ/™/Ó)Ø#Ÿo™o¨gÑ6�ÞØ#.�Lä˜&¤*×-Ñ-Ü.¨v°|ÓDÐDÜ˜&¤(×+Ñ+ÜÔVÉvÓVÓVÐVÜ Ð#:¼4À»<¸.Ð!IÓJÐJùò's   Á9E(ÂE()ÚinspectÚ	signatureÚtorchÚ_disable_dynamor   Ú__signature__)rI   rL   rc   rb   s   `` @r    Ú__call__Ú+elementwise_type_promotion_wrapper.__call__|   sK   ú€ Ü×Ò Ó#ˆô 
×	Ñ	Ü	ˆr‹ö!	Kó 
ó 
ð!	KðF  ˆÔØˆ
r#   rG   )Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__Ú__doc__r   r   r   ÚstrrJ   r   rj   Ú__static_attributes__r   r#   r    rB   rB   ^   sA   † ñð0 8<ò	7ð =ð7ð & h¨s¡mÑ4õ	7ð+˜8ð +¨÷ +r#   rB   ÚoutÚshapec                 óÖ   • [         R                  " U R                  U5      (       a  gU R                  5       S:w  a.  S[	        U R                  5       S3n[
        R                  " USS9  g)NFr   zCAn output with one or more elements was resized since it had shape a   which does not match the required output shape {str(shape)}. This behavior is deprecated, and in a future PyTorch release outputs will not be resized unless they have zero elements. You can explicitly reuse an out tensor t by resizing it, inplace, to zero elements with t.resize_(0).é   )Ú
stacklevelT)r1   Ú
same_shapert   Únumelrq   ÚwarningsÚwarn)rs   rt   r:   s      r    Ú_resize_output_checkr|   «   sd   € ä×Ò˜Ÿ	™	 5×)Ñ)ØØ
‡y�yƒ{�aÓàQÔRUÐVY×V_ÑV_ÓR`ÐQað btð tð 	ô 	�Š�c aÒ(Ør#   Úmemory_formatc                 óD   • [        X5      (       a  U R                  XS9$ U $ )N)r}   )r|   Úresize_)rs   rt   r}   s      r    Ú_maybe_resize_outr€   ¼   s%   € ô
 ˜C×'Ñ'Ø�{‰{˜5ˆ{Ð>Ð>àˆ
r#   r+   c                 óh   • U R                  5       S:H  =(       a    U R                  R                  S:H  $ )Nr   Úcpu)ÚdimÚdevicer5   )r+   s    r    Úis_cpu_scalarr…   Ç   s$   € Ø�5‰5‹7�a‰<×2˜AŸH™HŸM™M¨UÑ2Ð2r#   Ú	copy_fromÚcopy_toc                 óˆ   • U R                   UR                   :w  a(  SU R                    SUR                    S3n[        U5      eg )NzAttempting to copy from device z to device z*, but cross-device copies are not allowed!)r„   ÚRuntimeError)r†   r‡   r:   s      r    Úcheck_copy_devicesrŠ   Ë   sR   € Ø×Ñ˜7Ÿ>™>Ó)à-¨i×.>Ñ.>Ð-?ð @Ø Ÿ™Ð(Ð(RðTð 	ô ˜3ÓÐð *r#   F)Úexact_dtyper‹   c                 óX  ^ ^• [        T 5      (       d
  [        T TS9  U(       a4  [        R                  " T R                  TR                  :H  U U4S j5        OC[        R                  " [
        R                  " T R                  TR                  S9U U4S j5        TR                  T 5      $ )N©r†   r‡   c                  ó>   >• ST R                    STR                    S3$ )Nz"Expected out tensor to have dtype z	 but got z instead©r   r�   s   €€r    Ú<lambda>Ú _safe_copy_out.<locals>.<lambda>ß   s%   ø€ Ð8¸¿¹Ð8Ið JØ—}‘}�o Xñ/r#   )Ú	cast_fromÚcast_toc                  ó>   >• ST R                    STR                    S3$ )NzAttempting to cast from z to out tensor with dtype z0, but this can't be cast because it is not safe!r�   r�   s   €€r    r�   r‘   å   s)   ø€ Ð.¨y¯©Ð.?Ð?YÐZa×ZgÑZgÐYhð i=ñ =r#   )r…   rŠ   rg   Ú_checkr   r1   Úcan_safe_cast_toÚcopy_©r†   r‡   r‹   s   `` r    Ú_safe_copy_outr™   Ô   s|   ù€ ô ˜×#Ñ#Ü Y¸Ò@ö Ü�ŠØ�O‰O˜wŸ}™}Ñ,õ/õ	
ô 	�ŠÜ×"Ò"¨Y¯_©_ÀgÇmÁmÑTõ=ô	
ð �=‰=˜Ó#Ð#r#   )r‹   Úpass_is_outÚpreserve_memory_formatÚ	out_namesrš   r›   c                 óÈ   ^ ^^^^^^• Sm[        T5      S:X  a  Tm[        T5      S:H  mU4S jmS[        [        [        4   S[        [        [        4   4UU UUUU4S jjnU$ )N)rs   r   é   c                 óB   >• T(       a  [         R                  " U 5      $ S $ r   )r1   Úsuggest_memory_format)Útr›   s    €r    Úmaybe_compute_memory_formatÚ0out_wrapper.<locals>.maybe_compute_memory_formatÿ   s   ø€ Þ1GŒu×*Ò*¨1Ó-ÐQÈTÐQr#   rL   r   c                 ó  >^ ^^^	^
• T(       a  [         O1[        [        [        S [        [	        T5      5       5       5      5      nT(       a  [         O<[
        R                  " [        [        S [        [	        T5      5       5       5      5      nT(       a  [         O.[        ST R                   3T Vs/ s H
  o3[         4PM     sn5      m	[        R                  " T 5      m
Sm[        U
4S jT 5       5      m[        T 5      S[        R                  S[        R                  4UUU UUUUUU	4	S jj5       n[        R                  " S	[        R                  R                   S
US9n[#        T
R$                  [&        [(        45      (       d:  T
R$                  T
R*                  X4;   d  [-        ST
R$                   SU SU 35      e/ T
R.                  R1                  5       QUP7n[3        US S9n[        R4                  " UT	S9Ul        [9        [;        T S0 5      5      Ul        XR<                  S	'   T	UR<                  S'   T(       a  TT:w  a  TS   UR<                  [>        '   S[@        RB                   S3Ul"        U$ s  snf )z/
Adds the out parameter to a Python reference.
c              3   ó.   #   • U  H  n[         v •  M     g 7fr   ©r   ©r*   Ú_s     r    r,   Ú4out_wrapper.<locals>._out_wrapper.<locals>.<genexpr>
  ó   é € ÐKÒ5J°Ÿ^™^Ò5Jùó   ‚c              3   ó.   #   • U  H  n[         v •  M     g 7fr   r¦   r§   s     r    r,   r©     rª   r«   Úreturn_types_)r„   r   c              3   ó@   >#   • U  H  oTR                   ;   v •  M     g 7fr   )Ú
parameters)r*   Úprb   s     €r    r,   r©   "  s   øé € ÐHº°A §¡Ö/ºùs   ƒr[   r\   c                  ó(  >	^ ^^• UR                  SS 5      mT(       a#  Tb   T
 H  n[        TU5      nX!;  d  M  X1U'   M     U 4S jn[        T[        [        45      (       a  T H  nU" U5        M     OU" T5        T(       a  T" T STS L0UD6mOT" T 0 UD6mT[
        L a  [
        $ [        T[        5      (       a  T(       du  [        T[        5      (       a  [        T5      [        T5      :X  dH  TR                  S:X  a  [        T[        [        45      (       d  [        S[        T5       ST ST 35      eTGbH  T(       ae  TR                  S:w  aU  [        T[        5      (       d  [        S[        T5       35      e[        TTR                  T" T5      5        [        TTT	S	9  OÞTR                  S:w  a-  [        T[        5      (       d  [        S
[        T5       35      eO2[        T[        [        45      (       d  [        S[        T5       35      e[        R                  " [        T5      [        T5      :H  UU4S j5        [!        TT5       H+  u  pe[        XVR                  T" U5      5        [        XeT	S	9  M-     OTmT(       a  T$ T" T6 $ )Nrs   c                 ó~   >• [        U [        5      (       a'  [        TS   [        5      (       a  [        TS   U S9  g g g )Nr   r�   )r/   r   rŠ   )rs   r[   s    €r    Úmaybe_check_copy_devicesÚPout_wrapper.<locals>._out_wrapper.<locals>._fn.<locals>.maybe_check_copy_devices-  s7   ø€ Ü˜c¤:×.Ñ.´:¸dÀ1¹gÄz×3RÑ3RÜ&°°a±À#ÓFð 4SÐ.r#   Úis_outÚunbindzUnexpected result type: z, is_tensor=z, out_names=zout must be TensorLike, got r˜   zout must be tuple, got zout must be list or tuple, got c                  ó8   >• S[        T5       S[        T 5       3$ )Nzexpected tuple of z elements but got )Úlen)rs   r`   s   €€r    r�   Ú@out_wrapper.<locals>._out_wrapper.<locals>._fn.<locals>.<lambda>x  s    ø€ Ð"4´S¸³[°MÐASÔTWÐX[ÓT\ÐS]Ñ ^r#   )ÚpopÚgetattrr/   r3   ÚlistÚNotImplementedr   r¸   rl   rZ   r5   r€   rt   r™   rg   Ú_check_typeÚzip)r[   r\   ÚkÚout_attrr³   ÚoÚrrs   r`   r‹   Úfactory_kwargsrL   Úis_factory_fnÚ	is_tensorr¢   rœ   rš   Úreturn_types   `      @@€€€€€€€€€r    rc   Ú.out_wrapper.<locals>._out_wrapper.<locals>._fn$  sf  û€ à—*‘*˜U DÓ)ˆCÞ ¡Û'�AÜ& s¨A›�HØ•Ø$,˜q›	ñ (õ
Gô ˜#¤¤t˜}×-Ñ-Û�AÙ,¨QÖ/ò ñ )¨Ô-æÙ˜TÐF¨3°d¨?ÐF¸vÑF‘á˜TÐ, VÑ,�ØœÒ'Ü%Ð%ä˜F¤J×/Ñ/¶Iä˜v¤u×-Ñ-Ü˜F›¤s¨9£~Ó5ð —K‘K 8Ó+´
¸6ÄDÌ%À=×0QÑ0Qô %Ø.¬t°F«|¨n¸LÈÈð T!Ø!* ð-óð ð
 Šö"  §¡°Ó!8Ü% c¬:×6Ñ6Ü,Ø:¼4À»9¸+ÐFóð ô &ØØŸ™Ù3°FÓ;ôô
 #Ø"(Ø #Ø$/óð —{‘{ hÓ.Ü)¨#¬u×5Ñ5Ü"0Ð3JÌ4ÐPSË9È+Ð1VÓ"WÐWð  6ô  *¨#´´e¨}×=Ñ=Ü"0Ø"AÄ$ÀsÃ)ÀÐ Mó#ð ô ×%Ò%Ü˜C›¤C¨£KÑ/Ý^ôô !$ F¨CÖ 0™˜ä)¨!¯W©WÑ6QÐRSÓ6TÔUÜ&°È;ÔWò !1ð
 �æ#�3Ð:©°cÐ):Ð:r#   rs   N)ÚkindÚdefaultr>   zUnexpected return annotation: z , expected str, TypeVar, empty, z, or c                 ó   • U R                   $ r   )rÉ   )r°   s    r    r�   Ú3out_wrapper.<locals>._out_wrapper.<locals>.<lambda>—  s   € ¨a¯fªfr#   )Úkey)r¯   Úreturn_annotationÚ__annotations__r   r   zThis function is wrapped by z.out_wrapper)#r   r   r3   Úranger¸   Útypesr   rl   re   rf   Úallr   r   r[   r\   Ú	ParameterÚKEYWORD_ONLYr/   rÎ   rq   r
   ÚemptyrZ   r¯   ÚvaluesÚsortedÚ	Signatureri   Údictr»   rÏ   r   Úout_wrapperrm   Ú!_torch_decompositions_out_wrapper)rL   Úout_typeÚbc_out_typerÂ   rc   Ú	out_paramÚparamsrÄ   rÅ   rÇ   rb   Údefault_out_namesr‹   rÆ   r¢   rœ   rš   s   `      @@@@€€€€€€r    Ú_out_wrapperÚ!out_wrapper.<locals>._out_wrapper  sV  ý€ ö õ äÜ”uÑK´U¼3¸y»>Ô5JÓKÓKóð 	ö õ ä×#Ò#Ü”uÑK´U¼3¸y»>Ô5JÓKÓKóð 	ö õ äØ §¡˜}Ð-á.7Ó8ªi¨”^Ó$©iÑ8óð 	ô ×Ò Ó#ˆØ,ˆÜÔH¹ÓHÓHˆä	ˆr‹ð\	;”r—w‘wð \	;¬"¯)©)÷ \	;ö \	;ó 
ð\	;ô| ×%Ò%ØÜ×"Ñ"×/Ñ/ØØñ	
ˆ	ô �s×,Ñ,¬s´G¨n×=Ñ=Ø×$Ñ$¨¯©°HÐ(JÓJä Ø0°×1FÑ1FÐ0Gð H1Ø19°
¸%À¸}ðNóð ð 5�#—.‘.×'Ñ'Ó)Ð4¨9Ñ4ˆô
 ˜Ñ$4Ñ5ˆä#×-Ò-ØØ)ñ
ˆÔô
 #¤7¨2Ð/@À"Ó#EÓFˆÔØ%-×Ñ˜EÑ"Ø(3ˆ×Ñ˜HÑ%ö ˜Ð&7Ó7Ø<EÀa¹LˆC×ÑÔ 8Ñ9ð +¬;×+AÑ+AÐ*BÀ,ÐOð 	Ô-ð ˆ
ùòe 9s   Â4I?
)r¸   r   r   r   )r‹   rš   r›   rœ   rá   rà   rÆ   r¢   s   ```` @@@r    rÚ   rÚ   ì   sg   þ€ ð !ÐÜ
ˆ9ƒ~˜Óà%ˆ	ä�I“ !Ñ#€IõRðlœ¤"¤b &Ñ)ð l¬h´r¼2°vÑ.>÷ lô lð\ Ðr#   rL   c                 ó.   • [         R                  " U S S9$ )Nc                 ó$   • [        U S5      (       + $ )NrÛ   )r?   )Úfs    r    r�   Ú+_maybe_remove_out_wrapper.<locals>.<lambda>¶  s   € œ7 1Ð&IÓJÕJr#   )Ústop)re   Úunwrap)rL   s    r    Ú_maybe_remove_out_wrapperré   ³  s   € Ü�>Š>Ø
ÙJñð r#   c                 óŽ   ^ ^^• U 4S jm " U4S jS[         R                  R                  5      m[        T 5      UU4S j5       nU$ )Nc                 ó†   >• [         R                  R                  5          T" U 0 UD6sS S S 5        $ ! , (       d  f       g = fr   )rg   Ú_CÚ_AutoDispatchBelowAutograd)r[   r\   Úprims     €r    Úredispatch_primÚ0backwards_not_supported.<locals>.redispatch_prim»  s,   ø€ Ü�X‰X×0Ñ0Õ2Ù˜Ð( Ñ(÷ 3×2×2ús	    2²
A c                   ó<   >• \ rS rSr\U 4S j5       r\S 5       rSrg)Ú6backwards_not_supported.<locals>.BackwardsNotSupportedi¿  c                 ó.   >• [        X!5      u  p4T" X45      $ r   )r   )ÚctxÚ	args_specÚ	flat_argsr[   r\   rï   s        €r    ÚforwardÚ>backwards_not_supported.<locals>.BackwardsNotSupported.forwardÀ  s   ø€ ô *¨)Ó?‰LˆDÙ" 4Ó0Ð0r#   c                 ó   • [        S5      e)Nzbackwards not supported on prim)r‰   )rô   r[   s     r    ÚbackwardÚ?backwards_not_supported.<locals>.BackwardsNotSupported.backwardÆ  s   € äÐ@ÓAÐAr#   r   N)rl   rm   rn   ro   Ústaticmethodr÷   rú   rr   )rï   s   €r    ÚBackwardsNotSupportedrò   ¿  s+   ø† Ø	ô	1ó 
ð	1ð 
ñ	Bó 
ó	Br#   rý   c                  ó¸   >• [        X45      u  p#[        R                  " 5       (       a*  [        S U 5       5      (       a  TR                  " U/UQ76 $ T" X5      $ )Nc              3   ó|   #   • U  H2  n[        U[        R                  5      (       d  M$  UR                  v •  M4     g 7fr   )r/   rg   ÚTensorÚrequires_grad)r*   r   s     r    r,   ÚBbackwards_not_supported.<locals>._autograd_impl.<locals>.<genexpr>Í  s&   é € ð +
Ú%. ´*¸QÄÇÁ×2M‹OˆA�OŽO¢Yùs   ‚#<©<)r   rg   Úis_grad_enabledÚanyÚapply)r[   r\   rö   rõ   rý   rï   s       €€r    Ú_autograd_implÚ/backwards_not_supported.<locals>._autograd_implÊ  s]   ø€ ä+¨T¨NÓ;Ñˆ	Ü× Ò ×"Ñ"¤sñ +
Ù%.ó+
÷ (
ñ (
ð )×.Ò.¨yÐE¸9ÒEÐEá" 4Ó0Ð0r#   )rg   ÚautogradÚFunctionr   )rî   r  rý   rï   s   ` @@r    Úbackwards_not_supportedr
  º  s@   ú€ õ)÷	B¤§¡× 7Ñ 7ô 	Bô ˆ4ƒ[õ1ó ð1ð& Ðr#   c                 óh   ^ • [         R                  " T 5      n[        T 5      U 4S j5       nXl        U$ )zI
Allows unary operators that accept tensors to work with Python numbers.
c                  óŽ  >• [        U 5      S:”  a®  [        U S   [        5      (       a–  [        R                  " [        U S   5      5      n[        U 5      n[        R                  " U S   US9US'   T" U0 UD6n[        U[        R                  5      (       d  [        S[        U5       35      eUR                  5       $ T" U 0 UD6$ )Nr   r�   zExpected torch.Tensor, got )r¸   r/   r   r1   Útype_to_dtyper5   r¼   rg   Útensorr   rZ   Úitem)r[   r\   r   Úargs_r`   rL   s        €r    rc   Ú-elementwise_unary_scalar_wrapper.<locals>._fnì  s¬   ø€ äˆt‹9�q‹=œZ¨¨Q©´×8Ñ8Ü×'Ò'¬¨T°!©W«Ó6ˆEÜ˜“JˆEÜ—|’| D¨¡G°5Ñ9ˆE�!‰Há˜Ð) &Ñ)ˆFÜ˜f¤e§l¡l×3Ñ3Ü$Ð'BÄ4ÈÃ<À.Ð%QÓRÐRØ—;‘;“=Ð ñ �4Ð"˜6Ñ"Ð"r#   )re   rf   r   ri   )rL   rb   rc   s   `  r    Ú elementwise_unary_scalar_wrapperr  ä  s8   ø€ ô ×
Ò
˜BÓ
€Cä
ˆ2ƒYô#ó ð#ð Ôà€Jr#   r   )6re   rÑ   rz   Úcollections.abcr   r   Ú	functoolsr   r   Útypingr   r   r	   r
   r   Útyping_extensionsr   rg   Útorch._prims_commonÚ_prims_commonr1   r   r   r   r   r   r   r   Útorch.utilsr   rV   Útorch.utils._pytreer   r   r   r   r   r!   r5   r;   r@   rB   r|   r}   r€   Úboolr…   rŠ   r™   rq   rÚ   ré   r
  r  r   r#   r    Ú<module>r     sq  ðã Û Û ß .Ý Ý ß AÕ AÝ 'ã Ý #÷÷ ñ õ *ß <ñ ˆTƒ]€Ùˆtƒ_€ð 
ð	˜~ð 	°e·k±kð 	Ànó 	ó 
ð	ð 
ð	˜zð 	°%·+±+ð 	À*ó 	ó 
ð	ð 
ð	˜xð 	°·±ð 	Àó 	ó 
ð	ð 
ð	˜tð 	¨E¯K©Kð 	¸Dó 	ó 
ð	ò
ð&˜jð ¨tð ¸
ô ò÷Iñ IðZ˜nð °Yô ð( 48ñØ	ðàðð ˜E×/Ñ/Ñ0õð3�^ð 3¨ô 3ð  ^ð  ¸nð  ÐQUô  ð PUò$Ø ð$Ø+9ð$ØHLõ$ð4 ØØ#(ò	DØðDàðDð ðDð !ð	Dð
 ˆx˜˜B˜ÑÐ  (¨2¨r¨6Ñ"2Ð2Ñ3õDðN (ô ò$ðTØ��R�Ñðàˆb�%˜˜J˜Ñ'Ð'Ñ(õr#   