
    Ǆg5                        d dl Z d dlZd dlZd dlZd dlmZ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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j>                  j@                  Z!g d	Z"i Z#g Z$ejJ                  jL                  jN                  Z'd
 Z(d Z) e(e'jT                  jV                  e'jT                  jX                  e'jZ                  jV                  e'jZ                  jX                  e'j\                  jV                  e'j\                  jX                  e'j^                  jV                  e'j^                  jX                  e'j`                  jV                  e'j`                  jX                  e'jb                  jV                  e'jb                  jX                  e'jb                  jd                  e'jb                  jf                  e'jh                  jV                  e'jh                  jX                  e'jj                  jV                  e'jj                  jX                  e'jl                  jV                  e'jl                  jX                  e'jn                  jV                  e'jn                  jX                  e'jp                  jV                  e'jp                  jX                  e'jr                  jV                  e'jr                  jX                        Z: e(e'jv                  jV                  e'jx                  jV                  e'jx                  jX                  e'jz                  jV                  e'j|                  j~                  e'j|                  j                  e'j                  jV                  e'j                  jV                  e'j                  jX                  e'j                  jV                  e'j                  jX                        ZDe'j                  fZFd ZG e j                  d      defd       ZIdeeegeJf   ef   fdZK eKe#j                        d        ZM eKeI       eKg e:      d               ZN eKe'j                  jV                        d        ZO eKe'j|                  j                         eKe'j|                  j~                        d               ZPd ZQ eKeQ      d        ZR eKe'j                  jV                        d        ZS eKe'j                  jV                        d        ZT eKd       d        ZU	 d;dZV eKe'j                  jV                        	 d;d       ZX eKe'j                  jV                        	 d;d       ZY eKe'j                  j                        d<d       Z\ eKejL                  jN                  j                  jV                         eKejL                  jN                  j                  jV                        d               Z_ eKejL                  jN                  j                  jV                        d         Z` eKejL                  jN                  j                  jV                        d!        Za eKd"       d#        Zbd$ Zcd% Zd e(d&d'd(      Zed) Zfd* Zg eKd+       d,        Zh eKe'j                  j                        d-        Zj eKe'j                  jV                        d.        Zl eKe'j                  jV                         eKe'j                  jV                         eKe'j                  jV                         eKe'j                  jV                        d/                             Zq eKe'j                  jX                         eKe'j                  jX                        d0               Zr eKe'j                  jV                         eKe'j                  jV                        d1               Zu eKe'jx                  jV                         eKe'jx                  jX                         eKe'j                  jV                         eKe'j                  jV                        d2                             Zx eKeDD  cg c]q  } | e'j                  jV                  e'j|                  j~                  e'j|                  j                  e'jx                  jV                  e'jx                  jX                  fvr| s c}       d3        Zy eKe'j                  jV                  e'j                  jV                  g      d4        Z| eKejL                  jN                  j                  jV                        d5        Z}i Z~defd6Zd7 Zd8 Zd9 Z e j                  d      d:        Zyc c} w )=    N)CallableUnion)no_python_dispatcher)
OpOverload)elementwise_dtypesELEMENTWISE_TYPE_PROMOTION_KINDis_boolean_dtypeis_float_dtypeis_integer_dtype)DataDependentOutputExceptionDynamicOutputShapeException
FakeTensorin_kernel_invocation_managerrun_fallback_kernelUnsupportedOperatorException)normalize_functioncount_label)op_implementations_checksget_fast_op_implsstride_incorrect_ophas_metac                  .    t         j                  | d      S )NT)dictfromkeys)itemss    d/home/mcse/projects/flask_80/flask-venv/lib/python3.12/site-packages/torch/_subclasses/fake_impls.pyordered_setr   1   s    ==%%    c                      | j                   dk7  S )Nhpu)typedevices    r   is_noncontiguous_supportedr%   7   s    ;;%r   c                     t         j                  j                  j                         }| j	                  |      xs  t        d | j                         D              S )Nc              3   2   K   | ]  }t        |        y wN)contains_tensor_types).0es     r   	<genexpr>z(contains_tensor_types.<locals>.<genexpr>m   s      0%&a 0s   )torch_C
TensorTypegetisSubtypeOfanycontainedTypes)r"   tensor_types     r   r)   r)   k   sO    ((%%))+KK( C 0*.*=*=*?0 - r   funcc                 .   t        | t              sJ | j                  }t        d |j                  D              ryt        |j                        dk(  xrA |j                  d   j                  t        j                  j                  j                         u S )Nc              3   F   K   | ]  }t        |j                          y wr(   )r)   r"   )r*   args     r   r,   z)_is_tensor_constructor.<locals>.<genexpr>v   s     
Gs *
Gs   !F   r   )
isinstancer   _schemar2   	argumentslenreturnsr"   r-   r.   r/   r0   )r5   schemas     r   _is_tensor_constructorr@   r   sv    dJ'''\\F

Gf6F6F
GG 	FNNq XV^^A%6%;%;uxx?R?R?V?V?X%Xr   run_impl_checkc                       fd}|S )Nc                 
   t        t              rt        vs
J d        | t        <   | S t        t        t        f      rD ]  } t        |      |         | S t              sJ t        j                  | f       | S )Nzduplicate registration: )	r:   r   op_implementations_dictlisttupleregister_op_implcallabler   append)op_imploprA   s     r   impl_decoratorz(register_op_impl.<locals>.impl_decorator   s    nj1&==;).)9:;=6=#N3  u6$ .$ $W-.  N+++%,,ng-FGr    )rA   rL   s   ` r   rG   rG   ~   s     r   c                 (    t        |   | |g|i |S r(   )rD   	fake_moder5   argskwargss       r   #dispatch_to_op_implementations_dictrS      s    "4(DJ4J6JJr   c                    |t         vsJ t        |||d      \  }}d|v rt        d      |t        v r"|d   j                  }|j                  d      f}nt        j                  d      }d}|j                  dd       }||n|}t        j                  d	      |d<   t        |       5   ||i |}d d d        t        | |      S # 1 sw Y   xY w)
NTrQ   rR   normalize_to_only_use_kwargsnamesz+torch.compile doesn't support named tensorsinputcpurM   r$   meta)	_non_kwarg_device_constructorsr   r   _like_tensor_constructorsr$   popr-   r   r   )	rP   r5   rQ   rR   _
new_kwargsdefault_device
out_devicers	            r   constructorsrc      s     5555&4TMAz &*9
 	
 ((#G,33w') e,$/J)5>J <</Jx 
&i	0 &$%*%&iJ//& &s   (	CCc                     t        |||d      \  }}|j                  d      }t        |       5   ||      }d d d        |S # 1 sw Y   S xY w)NTrV   rX   )r   r]   r   )rP   r5   rQ   rR   r^   r_   inprb   s           r   non_kwarg_is_pinnedrg      sV    &dFMAz ..
!C 
&i	0 IHHs   	AAc                 4   t        |||d      \  }}|d   }|r|n|d   j                  }t        j                  d      |d<   |j                  d      }t	        |       5   ||fi |}	d d d        | j
                  j                  | 	|      S # 1 sw Y   &xY w)NTre   r$   rX   rZ   )r   r$   r-   r]   r   fake_tensor_converterfrom_meta_and_device)
rP   r5   rQ   rR   r^   r_   input_devicera   rf   rb   s
             r   non_kwarg_torl      s     'dFMAz h'L!-:g3F3M3MJ <</Jx
..
!C	%i	0 $#
#$ **??1j $ $s   
BBc                     | j                   dvry| t        j                  j                  u ry| j	                         }d|v ryy)N)atenprimsFfftT)	namespacern   _fft_c2cdefaultname)rK   op_names     r   r   r      s@    	||,,	T]]"""ggiGr   c                     d | j                   rat        fdt        j                  ||j	                               D              }|s)t
        j                  ||f      \  }}t        | |||d       S t        |      )Nc                     t        | t              r| j                  S t        | t        j                  t        j
                  t        j                  f      ryy)NTF)r:   r   _has_symbolic_sizes_stridesr-   SymIntSymFloatSymBoolxs    r   is_symbolicz3wordaround_stride_incorrect_op.<locals>.is_symbolic   s;    a$000a%,,FGr   c              3   .   K   | ]  } |        y wr(   rM   )r*   r}   r~   s     r   r,   z1wordaround_stride_incorrect_op.<locals>.<genexpr>   s      
 KN
s   )	allow_fallback_kernelsr2   	itertoolschainvaluespytreetree_flattenr   r   )rP   r5   rQ   rR   require_dynamic	flat_args	args_specr~   s          @r   wordaround_stride_incorrect_opr      sw     '' 
$-OOD&--/$J
 
 #)#6#6f~#F Iy&y$	9dSS
&t
,,r   c                 T    t        |       5   ||i |cd d d        S # 1 sw Y   y xY wr(   )r   rO   s       r   
resize_as_r      s,    	%i	0 %T$V$% % %s   'c                 "    t        | |g|i |S r(   )rc   rO   s       r   (_sparse_coo_tensor_with_dims_and_tensorsr      s     	49$9&99r   c                     t         j                  j                  | j                  v xrO | t        j
                  j                  t        j                  j                  t        j                  j                  fvS r(   )
r-   Tagdynamic_output_shapetagsrn   indexTensornonzerors   repeat_interleaver5   s    r   <lambda>r     sU    //499< TJJt||33T5K5K5R5RS	T r   c                     t        |      r(   )r   rO   s       r   	dyn_shaper     s     &d
++r   c                 &   | j                   | j                   j                  st        |      ||j                  x}ddlm}m}	  |	|j                               s|j                         dk(  rd}nm| j                   j                         }t        j                  dz
  }
||j                         n|j                  |      } |	|      st        |      }
 |||
       |||_        ||j                  |f      g}n4 |j                  g |j                  d | ||j                  |dz   d   g}|d uxr" |j                  t!        j"                  d      k(  }|s|r.|j                  ||j                  n|j                  |   f      }n|j                  d      }|j%                  |       |s|r4|j                  ||d   j                  n|d   j                  |   f      }n|j                  d      }|j%                  |       t'        |      S )Nr   _constrain_range_for_sizehas_free_symbolsr9   maxrY   )	shape_envallow_dynamic_output_shape_opsr   unique_memo%torch.fx.experimental.symbolic_shapesr   r   numelcreate_unbacked_symintsysmaxsizesizeint	new_emptyshapefake_devicer-   r$   rI   rF   )rP   r5   r8   dimsortedreturn_inversereturn_countsnnzr   r   maxvalr   retreturn_if_dim_and_cpuinversecountss                   r   _uniquer     s    	#""AA *$// #//13:	

  		,1A C%%<<>C[[1_F#&;CIIKCHHSME#E*U%cv6;!CO
{}}cV$%s}}JciioJsJSYYsQwy5IJKtOV5<<PUCV0V.--S[		syy~>OP--"JJw-s{s1v||QcAR@TUq!JJv:r   c           	      $    t        | ||d |||      S r(   )r   )rP   r5   r8   r   r   r   s         r   unique2r   N  s     9dCv~}UUr   c           
      `    t        | |||dk\  r|n|t        |j                  d      z  |||      S )Nr   r9   )r   r   ndim)rP   r5   r8   r   r   r   r   s          r   
unique_dimr   U  s>     axS3sxx#33	 	r   c                     |U| j                   | j                   j                  st        |      | j                   j                         }ddlm}  ||       |j                  |      S )Nr   r   )r   r   r   r   r   r   r   )rP   r5   repeatsoutput_sizer   s        r   repeat_interleave_tensorr   e  sa    '&&EE-d33))@@B 	T!+.[))r   c                    |j                   x}|S | j                  "| j                  j                  s| j                  st        |      t	        |j
                        r| j                  j                         }nxt        |j
                        r| j                  j                         }nHt        |j
                        r| j                  j                         }nt        d|j
                         ||_         |S )Nz local_scalar_dense/item NYI for )	item_memor   allow_scalar_outputsr   r
   dtypecreate_unbacked_symfloatr   r   r	   create_unbacked_symboolNotImplementedError)rP   r5   r8   rb   s       r   local_scalar_denser   x  s     ]]'"44.. +400cii 88:	#))	$668	#))	$779!$DSYYK"PQQCMHr   c                    | j                   | j                   j                  st        |      |j                  x}ddlm}m}  ||j                               s|j                         dk(  rd}nf| j                   j                         }t        j                  dz
  } ||j                               st        |j                               } |||       ||_        |j                  ||j                         ft        j                        S )Nr   r   r9   r   )r   )r   r   r   nonzero_memor   r   r   r   r   r   r   r   r   r   r-   int64)rP   r5   r8   r   r   r   r   s          r   r   r     s     	#""AA *$//(	

  		,1A C%%<<>C[[1_F#CIIK0SYY[)%cv6==#swwy)===r   c                    | j                   | j                   j                  st        |      | j                   j                         }t        j
                  dz
  }ddlm}m} ddl	m
} ddlm}	  ||j                               st        |j                               }
nt        j                   |j"                        j$                  } |	|j&                  |j                   j(                        }t+        |j,                  |      rt        j
                  dz
  }
n|j,                  }
|
dkD  r|
} |||       |j/                  |f      S )Nr9   r   r   )IntInfinity)bound_sympy   r   )r   r   r   r   r   r   r   r   r   torch.utils._sympy.numbersr   torch.utils._sympy.value_rangesr   r   r   mathprodr   nodeexprvar_to_ranger:   upperr   )rP   r5   selfmaskr   r   r   r   r   r   num_elements	prod_node
prod_ranges                r   masked_selectr     s     	#""AA *$//



4
4
6C [[1_F 7;
 DJJL)4::<(IIdjj)..	 1D1D1Q1QR
j&&4;;?L%++Lacv.>>3&!!r   c                 N    t         j                  j                  | j                  v S r(   )r-   r   data_dependent_outputr   r   s    r   r   r     s    uyy>>$))K r   c                     t        |      r(   )r   rO   s       r   data_depr     s    
&t
,,r   c                     |D ]<  }||j                   t        j                  t        j                  fv s3t	        |        y r(   )r   r-   booluint8r   )r5   r   indicesr   s       r   check_no_bool_index_tensorsr     s:     4U[[0I!I-d334r   c                    t        |||d      \  }}|d   j                  }t        |       5   ||i |}t        |      s|j	                  |j
                        }d d d        |d   u r|S t        | ||      S # 1 sw Y   xY wNTrU   rX   )r   r$   r   r%   r   r   r   )rP   r5   rQ   rR   r^   r_   ra   outs           r   )run_and_return_new_tensor_of_input_devicer     s    &4TMAz G$++J	%i	0 +D#F#)*5--		*C+
 j!!
ij11+ +s   /A::Brn   ro   primc                 &    | j                   t        v S r(   )rq   _is_builtin_namespaces)rK   s    r   
is_builtinr     s    <<111r   c                 ^    t         j                  j                  | j                         d      S )NMeta)r-   r.   ._dispatch_has_computed_kernel_for_dispatch_keyrt   r   s    r   r   r     s     88BB499;PVWWr   c                 Z    t        |       xr d| j                         v xr t        |       S )Nforeach)r   rt   r   r   s    r   r   r     s$    D!Qi499;&>Q8D> r   c           	      z   g }t        j                  ||j                               D ]T  }t        |t        t
        f      st        |      s&t        |d   t        j                        sD|j                  |       V 	 t        |       5   ||i |}d d d        s|S |sJ g }t        |      D ][  \  }	}
t        j                  ||D cg c]  }||	   	 c}      \  }}|j                  | j                   j#                  | |
|             ] |S # 1 sw Y   ~xY w# t        $ r}t        cY d }~S d }~ww xY wc c}w Nr   )r   r   r   r:   rE   rF   r=   r-   r   rI   r   r   NotImplemented	enumerater   _find_common_deviceri   rj   )rP   r5   rQ   rR   tensor_listsr8   out_metanot_implemented_errorout_fakeimeta_ttlr$   r^   s                 r    foreach_run_and_map_input_devicer    s+    LtV]]_5 %sT5M*C3q65<<0$%))4 	-T,V,H	-
 <Hx( 
	6224,9WB"Q%9WX	++@@66	

 O'	- 	-  :Xs<   ?D 
	DD 
D8DD 	D5%D0*D50D5c                     ddl m} t        |||d      \  }}|d   j                  }| 5   ||i |}|j	                  |      cd d d        S # 1 sw Y   y xY w)Nr   )meta_index_TensorTrU   rX   )torch._meta_registrationsr  r   r$   to)	rP   r5   rQ   rR   r  r^   r_   ra   r   s	            r   index_tensorr  2  sa    ;&4TMAz G$++J	 "00vvj!" " "s   AAc                 N    ddl m} | 5   ||i |cd d d        S # 1 sw Y   y xY w)Nr   )meta_embedding_bag)r  r  )rP   r5   rQ   rR   r  s        r   embedding_bagr	  C  s*    <	 3!42623 3 3s   $c                     t        | |||      S r(   )r   rO   s       r   multi_device_op_defaultr  L  s    
 5YdFSSr   c                     t        |       5   ||i |}d d d        t        |||d      \  }}|d   S # 1 sw Y    xY wr   )r   r   )rP   r5   rQ   rR   r   r^   r_   s          r   multi_device_op_outr  U  sV     
&i	0 $D#F#$ '4TMAz g$ $s   	4=c                 R   t        ||d      \  }}|d   |d   j                  t        j                  j                  k(  xs$ j                  dk(  xr j                         dk(  fd       t        | ||      }t        j                  j                  u r|d   S |S )NTrU   r   rX   r   r9   c                  0    d  d dj                    dS )NzMismatching z device between self (z) and values ()r#   )r5   self_devicer   s   r   r   z index_put_impl.<locals>.<lambda>m  s&    ,tf$:;-~V\VcVcUddef r   )
r   r   r-   _checkr   r   r   rn   
index_put_rs   )	rP   r5   rQ   rR   r^   r_   r   r  r   s	    `     @@r   index_put_implr  b  s     '4TMAz !FW%11K	LLv)))WfkkQ.>.V6<<>UVCVf
 4ItT6
RCt&&&'""
r   c                     t        d      )Nz3torch.compile does not support strided NestedTensor)r   rO   s       r   nested_tensors_unsupportedr  w  s    
 '= r   c                 (    |t         vs
J d|        y )NzNYI: )_device_not_kwarg_opsrO   s       r   nyir    s      ,,<dVn<,r   c                 t    t        |||d      \  }}|d   j                   5  |d   j                  }|d   j                  d   }ddlm}  ||      sd }n|dk(  r!|d   j                  s|d   j                  sd }n|t        j                  j                  u r t        j                  j                  di |}	nDt        j                  j                  |d   |d   d |d   |d	   |d
   |d   |d   |d   |d   
      }	t        j                  j                  |d   |d   |	      }d d d         fd}
t               5   |di |}|t        j                  j                  u r |
|      cd d d        S  |
|d          |
|d   |       |
|d   d       fcd d d        S # 1 sw Y   }xY w# 1 sw Y   y xY w)NTrU   rX   weightr   )has_hint   stridepaddingdilation
transposedoutput_paddinggroups
bias_sizes)biasr  r  r   r!  r"  r#  r$  c                 N    | | S || j                  |      } t        |       S )Nmemory_format)r  r   )tmem_fmtr$   rP   s     r   convertzconv.<locals>.convert  s2    9H7+A)Q//r   r9   r   rM   )r   r   r   r   r   r  	is_mkldnnis_xpurn   convolutionrs   r-   r.   _select_conv_backend%_conv_determine_backend_memory_formatr   )rP   r5   rQ   rR   r^   kbatchr  r*  conv_backendr+  r   r$   s   `           @r   convr4    s   "4TIAv G_((F	  8!!w%%a( 	C G!VF7O55fWo>T>TGt''///$xx<<FvF$xx<<7O8$!(+"9-#J/%l3#)*:#;!(+%l3  =   hhDDw!1<G= D0 
&i	0 
nVn4##+++3(	
 
 A(A(A%
 
S   R
 
s   D F"?-F.6"F."F+.F7c                 @   | j                   | j                   j                  st        |      | j                   j                         }ddlm}  ||       |s|j                  dd      }|j                  dd  }|j                  |      }|j                  |f      }	||	fS )Nr   r   r9   )	r   r   r   r   r   r   	transposer   r   )
rP   r5   inputslengthsbatch_firstnew_batch_sizer   res_sizepacked_data
batch_sizes
             r   _pack_padded_sequencer>    s     	#""AA *$//((??ANOn-!!!Q'||ABH""8,K!!>"34J$$r   c                       fd}|S )Nc                     | t         <   | S r(   )FAST_OP_IMPLEMENTATIONS)rJ   r5   s    r   rL   z-register_fast_op_impl.<locals>.impl_decorator  s    (/%r   rM   )r5   rL   s   ` r   register_fast_op_implrB    s     r   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(        xs  |dk(        xs k(  
fd        |dk(        rn|
<   ~ t        |      S )Nr   )guard_size_obliviousr9   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  rM   )r   sizeAsizeBs   r   r   zinfer_size.<locals>.<lambda>  s'    ,UG 4005w 7**+A/ r   )r   rD  r=   r   ranger-   r  rF   )abrD  dimsAdimsBr   expandedSizesoffsetdimAdimBr   rG  rH  s             @@@r   
infer_sizerR    s    JFEFEueDC$JM4!8R$ PAqy6!qy6!19$!19$! 	 !, #EQJ/~/		
 %9!$D5%a5P6 r   c                       fd}|S )Nc           	           fd}t        d       }d}d}d }|D ]M  }t        |t        j                        r|j                  nd}	t        |	      dk(  rd}nd}||	}t        ||	      }O |J ddlm}
m	} |D ]Z  }t        |t        j                        st        |j                        t        |      k(  s@ |
 ||j                  |            sZ n	  |d      S t        j                  d	      }|}d }d }d}|D ]j  }t        |t        j                        sd} ||k(  r%|j                  j                  d	k(  s|j                  }||j                  }Y||j                  k7  sid}l |rt        |d
t        j                  i\  }}d}d}|D ]r  }t        |t        j                        s||k7  r7|j!                         dk(  r$|j                  |k(  r||k\  r
 |d      c S |dz  }Z|j                  |k7  sj |d      c S  d}d}t#        |      rj|D ]e  }t        |t        j                        s|xr  |j%                  t        j&                        }|xr  |j%                  t        j(                        }g |r>t        d       t+         t        j,                  ||dt        j&                        |      S |r>t        d       t+         t        j,                  ||dt        j(                        |      S  |d      S )Nc                 `    t        d|         5   i cd d d        S # 1 sw Y   y xY w)Nzslow r   )msgrQ   rR   modeslow_refs    r   slowz=make_fast_binary_impl.<locals>.fast_binary_impl.<locals>.slow  s6    %u& 1001 1 1s   $-zattempt fastFrM   r   T)rD  sym_eqz#both tensors nontrivially broadcastrY   type_promotion_kindr9   errorr'  zfast is_contiguousrZ   )r   r$   r(  r#   zfast channels_lastzno contiguity match)r   r:   r-   r   r   r=   rR  r   rD  rZ  r$   r"   r   r   r   DEFAULTr   r%   is_contiguouscontiguous_formatchannels_lastr   empty)rW  rQ   rR   rY  operandshas_scalarshas_tensorsfinal_shaperK   r   rD  rZ  rY   common_devicecommon_dtypeoutput_dtypehas_different_input_dtypesr^   current_cpu_scalars_on_non_cpumax_cpu_scalars_on_non_cpur^  is_channels_lastrX  s   ```                   r   fast_binary_implz/make_fast_binary_impl.<locals>.fast_binary_impl  s1   	1
 	N#   	9B *2u|| <BHH"E5zQ"""# %[%8K	9 &&&V  	?B2u||,MS%55(+)FG	? =>> ll5!%*" 	2Bb%,,/-1*#BIINNe,C "		#!xx)-1*	2 & 1/N/V/VOA| *+&%&" 	%Bb%,,/#A"))s:J15OO=(.!3.m+G}$	%  &m4 !"ell3 - !"2B2B"'"9"9 3C 3 $4 $8H8H"'"5"5 9I 9  ,-&!"'"9"9	 %	 	 ,-&!"'"5"5	 %	 	 )**r   rM   )rX  rm  s   ` r   make_fast_binary_implrn    s    E+N r   c                    t               5  t        |       5  t        j                  j                  j
                  j                  |      }d d d        d d d        t        | |j                        S # 1 sw Y   (xY w# 1 sw Y   ,xY wr(   )	r   r   r-   opsrn   detachrs   r   r$   )rP   r}   r   s      r   fast_detachrr    sk    		 /!=i!H /iinn##++A./ /iahh/// / / /s"   A>4A2A>2A;	7A>>B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                  j                  j                  j                        t               t        S r   )torch._refsrB  rp  rn   addr   rn  _refssubmuldivrq  rs   rr  rA  )r-   s    r   r   r     s   4%))..,,334ekkoo. 5%))..,,334ekkoo. 5%))..,,3345J5;;??5[\4%))..,,334ekkoo. 9%))..//778E""r   )TFFr(   )	functoolsr   r   r   typingr   r   r-   torch._custom_optorch._loggingtorch._dispatch.pythonr   
torch._opsr   torch._prims_commonr   r   r	   r
   r   torch._subclasses.fake_tensorr   r   r   r   r   r   torch.fx.operator_schemasr   torch.utils._statsr   utils_pytreer   __all__rD   r   _opsrp  rn   r   r%   
empty_likers   r   	full_like	ones_like	rand_like
randn_likerandint_like	low_dtypelow_dtype_out
zeros_liker   new_empty_stridednew_full	new_zerosnew_onesr\   _resize_output__nested_tensor_from_tensor_list
pin_memoryr  r$   prim_Device	is_pinned_pin_memory_resize_outputr  _list_to_tensorr[   r)   	lru_cacher@   r   rG   __contains__rS   rc   rg   rl   r   r   r   r   r   r   _unique2r   r   r   r   r   item_local_scalar_denser   r   r   r   r   r   r   r   r   r  r   r  _embedding_bagr	  _unsafe_index_putcopycopy_slice_scatterr  r  	index_putr  r  _nested_view_from_buffer_nested_view_from_buffer_copyr  r  r.  convolution_backwardr4  r>  rA  rB  rR  rn  rr  r   r|   s   0r   <module>r     s      
 "    7 !   9 * 
		    zz~~&  (OOOONNNNNNNNNNNNOOOO##OOOONNNN""MMMMNNNNMMMM5 < $  ((00((,,OOGGNNGGNN  #'"6"6!8  T  U8ZL$4F+G+S%T & )667K 8K ().-./0 0 *08 $..(()	 *	 $''%%&$''..! " ' 	 %&- '-0 $//))*% +%
 $??GGH: I: T
,
,
 QV<~ $--''(KPV )V $//))*PU + $((//0* 1*$ %))..%%--.%))..44<<= > /* %))..((001%> 2%>P %))....667&" 8&"T KL- M-42  %VWf= 2X QH $**##$" %"  $%%--.3 /3 $((001$))##$$**$$%$$$,,-T . & % 2T
 $))-- $$$(() * ! $..(()$//))* + *& $66>>?$66::;$//778$44<<= > 9 < @  ' NN""GGNNGG00880044

 	
== 4##++T-F-F-N-NOP9 Q9x %))..66>>?% @%0  

 " JHZ0 T# #_	s   /A6e
