+
    –°³j�  ã                  óÔ   a € 0 t $ ^ RIHt ^ RIt^ RIt]P
                  ! ]4      t/ tR]	R&   R R lt
R R ltR	 R
 ltR R ltR R ltR R ltR R ltR R ltR R ltR R ltR# )é    )ÚannotationsNz2dict[torch._ops.OpOverload, torch._ops.OpOverload]Ú_manual_out_variant_registryc               ó$   € V ^8„  d   QhRRRRRR/# )é   Úfunctional_opútorch._ops.OpOverloadÚout_opÚreturnÚNone© )Úformats   "Ú\/home/luca/screen-checking/.venv/lib/python3.14/site-packages/torch/_library/_out_variant.pyÚ__annotate__r      s&   € ÷ 9ñ 9Ø(ð9à!ð9ð 
ñ9ó    c                ó   € V\         V &   R# )z0Register a functional op -> out variant mapping.N)r   )r   r	   s   &&r   Úregister_out_variantr      s   € ð
 39Ô  Ó/r   c               ó    € V ^8„  d   QhRRRR/# ©r   Úopr   r
   ztorch._ops.OpOverload | Noner   )r   s   "r   r   r      s   € ÷ 0ñ 0Øð0à!ñ0r   c                ó,   € \         P                  V 4      # )z;Return the manually registered out variant for op, or None.)r   Úget)r   s   &r   Úlookup_manual_out_variantr      s   € ô (×+Ñ+¨BÓ/Ð/r   c               ó    € V ^8„  d   QhRRRR/# )r   Úschemaútorch._C.FunctionSchemar
   Úboolr   )r   s   "r   r   r      s   € ÷ =ñ =Ð2ð =°tñ =r   c                ó&  € V P                   P                  R4      R,          pVP                  R4      '       d   R# \        ;QJ d0    R V P                   4       F  '       g   K   R'       * # 	  R'       * # ! R V P                   4       4      '       * # )zX
A schema is functional if no argument is written to and the name doesn't
end with '_'.
ú::Ú_Fc              3  ó8   "  € T F  qP                   x € K  	  R # 5i©N)Úis_write)Ú.0Úargs   & r   Ú	<genexpr>Ú!_is_functional.<locals>.<genexpr>'   s   é € Ð<Ñ+; C—<–<Ó+;ùs   ‚Téÿÿÿÿ)ÚnameÚsplitÚendswithÚanyÚ	arguments)r   Úop_names   & r   Ú_is_functionalr.      so   € ð
 �k‰k×Ñ Ó% bÕ)€GØ×Ñ˜×ÒÙß‹sÑ<¨6×+;Ò+;Ó<�sŒsÔ<Ð<ŠsÔ<Ð<ˆsÑ<¨6×+;Ò+;Ó<Ó<Ô<Ð<r   c               ó    € V ^8„  d   QhRRRR/# )r   r$   ztorch._C.Argumentr
   r   r   )r   s   "r   r   r   *   s   € ÷ Bñ BÐ*ð B¨tñ Br   c                óZ   € V P                   R J;'       d    V P                   P                  # r!   )Ú
alias_infor"   )r$   s   &r   Ú_is_mutable_argr2   *   s#   € Ø�>‰> Ð%×AÐA¨#¯.©.×*AÑ*AÐAr   c               ó$   € V ^8„  d   QhRRRRRR/# )r   Úschema_ar   Úschema_br
   r   r   )r   s   "r   r   r   .   s&   € ÷ ñ Ø%ðà%ðð 
ñr   c                ó  € V P                    Uu. uF  p\        V4      '       d   K  VNK  	  ppVP                    Uu. uF  p\        V4      '       d   K  VNK  	  pp\        V4      \        V4      8w  d   R# \        W44       Fq  w  rVVP                  VP                  8w  d    R# \        VP                  4      \        VP                  4      8w  d    R# VP                  VP                  8w  g   Kp   R# 	  R# u upi u upi )zOCompare two schemas by their non-mutable arguments (name, type, default value).FT)r,   r2   ÚlenÚzipr(   ÚstrÚtypeÚdefault_value)r4   r5   r$   Únon_mutable_args_aÚnon_mutable_args_bÚaÚbs   &&     r   Ú_signatures_matchr@   .   sÊ   € ð
 *2×);Ò);ÓXÑ); #Ä?ÐSV×CWŸ#˜#Ñ);ÐÐXØ)1×);Ò);ÓXÑ); #Ä?ÐSV×CWŸ#˜#Ñ);ÐÐXÜ
ÐÓ¤#Ð&8Ó"9Ô9ÙÜÐ&Ö;‰ˆØ�6‰6�Q—V‘VÔÚÜˆq�v‰v‹;œ#˜aŸf™f›+Ô%ÚØ�?‰?˜aŸo™oÖ-Úñ <ñ ùò YùÚXs   �C:§C:½C?ÁC?c               ó$   € V ^8„  d   QhRRRRRR/# )r   r   r   Úmutable_argszlist[torch._C.Argument]r
   r   r   )r   s   "r   r   r   A   s&   € ÷ ñ Ø#ðà)ðð 
ñr   c                óh  € \        V P                  4      ^ 8X  d   R# \        V P                  4      \        V4      8w  d   R# \        V P                  V4       FV  w  r#VP                  e   VP                  f    R# VP                  P                  VP                  P                  8w  g   KU   R# 	  R# )zFOut variant must return either nothing or the mutable args themselves.TF)r7   Úreturnsr8   r1   Ú
before_set)r   rB   Úretr$   s   &&  r   Ú_has_valid_out_variant_returnsrG   A   s„   € ô
 ˆ6�>‰>Ó˜aÔÙä
ˆ6�>‰>Óœc ,Ó/Ô/Ùô ˜Ÿ™¨Ö5‰ˆØ�>‰>Ò! S§^¡^Ò%;ÚØ�>‰>×$Ñ$¨¯©×(AÑ(AÖAÚñ	 6ñ
 r   c               ó    € V ^8„  d   QhRRRR/# )r   r	   r   r
   z	list[str]r   )r   s   "r   r   r   U   s   € ÷ Jñ JÐ3ð J¸	ñ Jr   c                ó–   € V P                   pVP                   Uu. uF"  p\        V4      '       g   K  VP                  NK$  	  up# u upi )z5Get the names of out arguments for an out variant op.)Ú_schemar,   r2   r(   )r	   r   r$   s   &  r   Úget_out_arg_namesrK   U   s8   € à�^‰^€FØ &× 0Ò 0ÓIÑ 0˜´OÀC×4HŒHˆC�HŒHÑ 0ÑIÐIùÒIs
   ›A³Ac               ó    € V ^8„  d   QhRRRR/# r   r   )r   s   "r   r   r   [   s   € ÷ ,ñ ,Ð,ð ,Ð1Mñ ,r   c                óÀ  € V P                   p\        V4      '       g   \        RV  RV 24      hV P                  pVP                  P                  R4      ^,          p\        \        \        P                  V4      V4      pVP                  4        FÄ  p\        P                  P                  VP                  9  d   K.  VP                   p\        W4      '       g   KM  VP                   Uu. uF  p\        V4      '       g   K  VNK  	  pp\!        V4      \!        VP"                  4      8w  d   K   \%        Wh4      '       g   \        RV RV 24      hVu # 	  R# u upi )zM
Given a functional operator overload, return its corresponding out variant.
z#Failed to find out variant for op 'z&' as its schema is not functional. 
  r   zOut variant z^ has invalid returns. Expected either no returns or returns that alias the mutable args, got: N)rJ   r.   ÚRuntimeErrorÚ	namespacer(   r)   ÚgetattrÚtorchÚopsÚop_overloadsÚTagÚoutÚtagsr@   r,   r2   r7   rD   rG   )	r   r   rO   r-   Útorch_packetÚ	candidateÚcandidate_schemar$   rB   s	   &        r   Úto_out_variantrZ   [   sG  € ð �Z‰Z€Fä˜&×!Ò!ÜØ1°"°ð 6Ø�ðó
ð 	
ð —‘€IØ�k‰k×Ñ Ó% aÕ(€GÜœ7¤5§9¡9¨iÓ8¸'ÓB€Lð "×.Ñ.Ö0ˆ	ä�9‰9�=‰= 	§¡Ô.Ùà$×,Ñ,Ðä  ×:Ò:Ùð ,×5Ò5ó
Ù5�C¼È×9M�CˆCÑ5ð 	ð 
ô ˆ|Ó¤ F§N¡NÓ 3Ô3Ùä-Ð.>×MÒMÜØ˜y˜kð *à(Ð)ð+óð ð Òñ1 1ñ4 ùò
s   Ã,EÄEc               ó$   € V ^8„  d   QhRRRRRR/# )r   r   r   Úexpected_out_opr
   r   r   )r   s   "r   r   r   Š   s$   € ÷ 
ñ 
Ø(ð
Ø;Pð
à	ñ
r   c           	     ó¦   € \        V 4      pVf'   \        V 4      p\        RT  RT;'       g    R 24      hW!8w  d   \        RV  RV RV R24      hR# )	z‰
Checks that to_out_variant returns the expected out variant for a functional op.
Raises AssertionError if the out variant is not valid.
Nz#We did not find an out variant for at  . Some common mistakes include:
  1. The out variant is missing the torch.Tag.out tag.
  2. The out variant is not an overload of the original op (e.g., 'op.out' or 'op.overload_out') 
  3. The out variant's input arguments does not match the functional op's signature (excluding the mutable args).
  4. The original operator is not functional.
Overloads tagged with out:
z  (none)zto_out_variant(z) returned z, but expected z8. The out variant name does not match the functional op.)rZ   Ú_get_out_variants_infoÚAssertionError)r   r\   r	   Útagged_infos   &&  r   Úcheck_out_variantra   Š   s‹   € ô ˜MÓ*€FØ‚~Ü,¨]Ó;ˆÜØ1°-°ð A+ð ×(Ð(˜jÐ)ð+ó
ð 	
ð Ô ÜØ˜m˜_¨K¸°xð @Ø+Ð,ð -EðFó
ð 	
ñ !r   c               ó   € V ^8„  d   QhRR/# )r   r
   r9   r   )r   s   "r   r   r   ¥   s   € ÷ %ñ %¨Sñ %r   c                ó¼  € V P                   pV P                  P                  P                  R4      ^,          p\	        \	        \
        P                  V4      V4      p. pVP                  4        FZ  p\	        W54      p\
        P                  P                  VP                  9   g   K9  VP                  RV RVP                   24       K\  	  RP                  V4      # )zBCollect information about overloads tagged with out for debugging.r   z  - z: Ú
)rO   rJ   r(   r)   rP   rQ   rR   Ú	overloadsrT   rU   rV   ÚappendÚjoin)r   rO   r-   rW   Úoverloads_infoÚoverload_namerX   s   &      r   r^   r^   ¥   s®   € à×'Ñ'€IØ×#Ñ#×(Ñ(×.Ñ.¨tÓ4°QÕ7€GÜœ7¤5§9¡9¨iÓ8¸'ÓB€Là "€NØ%×/Ñ/Ö1ˆÜ˜LÓ8ˆ	ä�9‰9�=‰=˜IŸN™NÖ*Ø×!Ñ! D¨¨°r¸)×:KÑ:KÐ9LÐ"MÖNñ	 2ð �9‰9�^Ó$Ð$r   )Ú__conditional_annotations__Ú
__future__r   ÚloggingrQ   Ú	getLoggerÚ__name__Úlogr   Ú__annotations__r   r   r.   r2   r@   rG   rK   rZ   ra   r^   )rj   s   @r   Ú<module>rq      si   øðß "Ð "ã ã ð ×Ò˜Ó!€ð
 TVÐ ÐPÓ Uõ9õ0õ=õBõõ&õ(Jõ,õ^
÷6%r   