Ë
    g^(hõ  ã                   ó"  — d dl Z d dlmZ d dlmZ d dlmZmZ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Z	d dlZ	d dlZ	d dlmZ  e j&                  d«      d„ «       Z e j&                  d«      d„ «       Z G d„ d	e	j,                  j.                  «      Zy)
é    N)ÚSequence)Únullcontext)ÚAnyÚCallableÚOptional)Útorch_function_passthroughc            	      ó  — t         t         j                  ft         j                  t         j                  j                  ft         j                  j                  t         j                  j                  j                  ft         j                  t         j                  j                  ft         j
                  t         j                  j
                  ft         j                  t         j                  j                  fg} i t         j                  j                  t         j                  j                  “t         j                  j                  t         j                  j                  “t         j                  j                  t         j                  j                  “t         j                  j                  t         j                  j                  “t         j                  j                   t         j                  j"                  “t         j                  j$                  t         j                  j&                  “t         j                  j(                  t         j                  j*                  “t         j                  j,                  t         j                  j.                  “t         j                  j0                  t         j                  j2                  “t         j                  j4                  t         j                  j6                  “t         j                  j8                  t         j                  j:                  “t         j                  j<                  t         j                  j<                  “t         j                  j>                  t         j                  j>                  “t         j                  j@                  t         j                  j@                  “t         j                  jB                  t         j                  jB                  “t         j                  jD                  t         j                  jD                  “t         j                  jF                  t         j                  jF                  “t         j                  jH                  t         j                  jH                  t         j                  jJ                  t         j                  jJ                  t         j                  jL                  t         jN                  jP                  t         j                  jR                  t         jN                  jR                  i¥}| D ]M  \  }}|jT                  D ]9  }|jV                  jY                  |«      ||jV                  jY                  |«      <   Œ; ŒO t[        t         j                  «      D ]c  }|t         j                  jT                  v sŒ t         j                  jV                  jY                  |«      |t]        t         j                  |«      <   Œe t         j                  j^                  jT                  D ]e  }t]        t         j                  |d«      xs t]        t         |«      }t         j                  j^                  jV                  jY                  |«      ||<   Œg |S )z}
    Mapping of torch API functions to torch._refs functions.
    E.g. torch_to_refs_map()[torch.add] == torch._refs.add
    N)0ÚtorchÚ_refsÚnnÚ
functionalÚspecialÚfftÚlinalgÚTensorÚ
__invert__Úbitwise_notÚ__xor__Úbitwise_xorÚ__and__Úbitwise_andÚ__or__Ú
bitwise_orÚ__eq__ÚeqÚ__rsub__ÚrsubÚ__rtruediv__ÚrtruedivÚ__floordiv__Úfloor_divideÚ__rfloordiv__Ú	rfloordivÚ__pow__ÚpowÚ__rpow__ÚrpowÚ	new_emptyÚnew_fullÚ	new_zerosÚnew_onesÚfill_Úzero_ÚtoÚsum_to_sizeÚcopy_Ú_primsÚcopy_toÚresizeÚ__all__Ú__dict__ÚgetÚdirÚgetattrÚ_conversions)ÚmodulesÚrÚ	mod_torchÚmod_refsÚsÚtensor_attrs         úR/var/www/skyplay_api_hub/venv/lib/python3.12/site-packages/torch/_prims/context.pyÚtorch_to_refs_maprA      s0  € ô 
”—‘ÐÜ	�‰”5—;‘;—>‘>Ð"Ü	�‰×	Ñ	œeŸk™kŸn™n×7Ñ7Ð8Ü	�‰œŸ™×+Ñ+Ð,Ü	�‰”E—K‘K—O‘OÐ$Ü	�‰”u—{‘{×)Ñ)Ð*ð€GðÜ�‰×Ñ¤§¡×!8Ñ!8ðä�‰×ÑœeŸk™k×5Ñ5ðô 	�‰×ÑœeŸk™k×5Ñ5ðô 	�‰×ÑœUŸ[™[×3Ñ3ð	ô
 	�‰×ÑœUŸ[™[Ÿ^™^ðô 	�‰×ÑœuŸ{™{×/Ñ/ðô 	�‰×!Ñ!¤5§;¡;×#7Ñ#7ðô 	�‰×!Ñ!¤5§;¡;×#;Ñ#;ðô 	�‰×"Ñ"¤E§K¡K×$9Ñ$9ðô 	�‰×ÑœeŸk™kŸo™oðô 	�‰×ÑœuŸ{™{×/Ñ/ðô 	�‰×Ñ¤§¡× 5Ñ 5ðô 	�‰×ÑœuŸ{™{×3Ñ3ðô 	�‰×Ñ¤§¡× 5Ñ 5ðô 	�‰×ÑœuŸ{™{×3Ñ3ðô  	�‰×ÑœEŸK™K×-Ñ-ð!ô" 	�‰×ÑœEŸK™K×-Ñ-ð#ô$ 	�‰�‰œŸ™Ÿ™Ü�‰× Ñ ¤%§+¡+×"9Ñ"9ä�‰×ÑœEŸL™L×0Ñ0Ü�‰×ÑœUŸ\™\×0Ñ0ñ-€Að0  'ò DÑˆ	�8Ø×!Ñ!ò 	DˆAØ+3×+<Ñ+<×+@Ñ+@ÀÓ+CˆAˆi× Ñ ×$Ñ$ QÓ'Ò(ñ	DðDô
 ”—‘Óò FˆØ”—‘×#Ñ#Ò#Ü*/¯+©+×*>Ñ*>×*BÑ*BÀ1Ó*EˆAŒg”e—l‘l AÓ&Ò'ðFô
 �[‰[×%Ñ%×-Ñ-ò BˆÜœeŸl™l¨A¨tÓ4ÒI¼ÄÀqÓ8IˆÜŸ™×1Ñ1×:Ñ:×>Ñ>¸qÓAˆˆ+ŠðBð €Hó    c                  óª   — t         j                  j                  D � ch c]+  } t         j                  j                  j	                  | «      ’Œ- c} S c c} w )zJ
    Set of all prim functions, e.g., torch._prims.add in all_prims()
    )r
   r1   r4   r5   r6   )r>   s    r@   Ú	all_primsrD   I   s7   € ô
 38·,±,×2FÑ2FÖG¨QŒE�L‰L×!Ñ!×%Ñ% aÕ(ÒGÐGùÒGs   �0Ac            
       óJ   — e Zd ZdZdd„ efd„Z	 	 ddededee   d	e	e
   fd
„Zy)ÚTorchRefsModeaB  
    Switches the interpretation of torch.* functions and Tensor methods to
    use PrimTorch refs in torch._refs.  (Direct calls to _refs are unaffected.)

    >>> # xdoctest: +SKIP
    >>> with TorchRefsMode():
    ...     torch.add(x, y)  # calls torch._refs.add(x, y)

    By default, this context manager will fall back on the torch.* if the
    ref does not exist; set strict=True to error if this occurs.
    If the ref exists we still would like to fall back on the torch.* sometimes,
    this behavior can be customized by passing a function to should_fallback_fn.
    Fc                   ó   — y)NF© )Ú_s    r@   ú<lambda>zTorchRefsMode.<lambda>c   s   � rB   c                 ó.   — || _         || _        || _        y )N)ÚstrictÚshould_fallback_fnÚprims_mode_cls)ÚselfrL   rM   rN   s       r@   Ú__init__zTorchRefsMode.__init__`   s   € ð ˆŒØ"4ˆÔØ,ˆÕrB   NÚ	orig_funcÚtypesÚargsÚkwargsc                 ót  — |€i }|t         v s|t        «       v r"| j                  «       5   ||i |¤Žcd d d «       S t        «       }|j	                  |d «      }|€Ot        |t        j                  j                  «      r+t        j                  j                  j	                  |d «      }n‡|€…t        |t        j                  j                  «      rat        |dd «      }|€&|j                  rt        ||j                  d   d «      }|�*t        j                  j                  j	                  |d «      }|�1| j                  | ||||«      r ||i |¤ŽS | 5   ||i |¤Žcd d d «       S | j                  r+t!        dt        j"                  j%                  |«      › �«      ‚ ||i |¤ŽS # 1 sw Y   �ŒpxY w# 1 sw Y   ŒUxY w)NÚdefaultr   zno _refs support for )r   rD   rN   rA   r6   Ú
isinstancer
   Ú_opsÚ
OpOverloadÚ_decompÚdecomposition_tableÚOpOverloadPacketr8   Ú_dirrM   rL   ÚRuntimeErrorÚ	overridesÚresolve_name)rO   rQ   rR   rS   rT   ÚmappingÚfuncrV   s           r@   Ú__torch_function__z TorchRefsMode.__torch_function__j   s£  € ð ˆ>ØˆFð Ô2Ñ2°iÄ9Ã;Ñ6NØ×$Ñ$Ó&ñ 2Ù  $Ð1¨&Ñ1÷2ñ 2ä#Ó%ˆØ�{‰{˜9 dÓ+ˆð ˆ<œJ y´%·*±*×2GÑ2GÔHÜ—=‘=×4Ñ4×8Ñ8¸ÀDÓI‰DØˆ\œj¨´E·J±J×4OÑ4OÔPÜ˜i¨°DÓ9ˆGØˆ 9§>¢>Ü! )¨Y¯^©^¸AÑ->ÀÓE�ØÐ"Ü—}‘}×8Ñ8×<Ñ<¸WÀdÓK�àÐà×&Ñ& t¨Y¸¸dÀFÔKÙ  $Ð1¨&Ñ1Ð1àñ -Ù˜TÐ, VÑ,÷-ñ -à�;Š;ÜØ'¬¯©×(DÑ(DÀYÓ(OÐ'PÐQóð ñ ˜$Ð) &Ñ)Ð)÷?2ñ 2ú÷2-ð -ús   ©F!ÅF.Æ!F+Æ.F7)rH   N)Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   rP   r   r   r   r   Údictrc   rH   rB   r@   rF   rF   Q   sR   „ ñð  Ù+Ø"ó	-ð !Ø!%ñ+*àð+*ð ð+*ð �s‰mð	+*ð
 ˜‘ô+*rB   rF   )Ú	functoolsÚcollections.abcr   Ú
contextlibr   Útypingr   r   r   r
   Útorch._decompÚtorch._primsÚtorch._refsÚtorch._refs.nnÚtorch._refs.nn.functionalÚtorch._refs.specialÚtorch.overridesÚtorch._prims_commonr   Ú	lru_cacherA   rD   r_   ÚTorchFunctionModerF   rH   rB   r@   ú<module>rw      sŒ   ðã Ý $Ý "ß *Ñ *ã Û Û Û Û Û  Û Û Ý :ð €×Ñ�TÓñ3ó ð3ðl €×Ñ�TÓñHó ðHôD*�E—O‘O×5Ñ5õ D*rB   