a
    7Sicë ă                   @   s€  d 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mZm	Z	m
Z
mZmZmZmZmZ ddlZddlZddl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 g dąZe  dĄee ddd	Z!e  dĄee dd
dZ"e  dĄeeef dddZ#edddZ$ee
 e	e
 dddZ%eee
 e
dddZ&eedZ'eedZ(eedZ)e  dĄeee
e	e f eee*f f dddZ+ee
e	e f dddZ,dd Z-e  dĄee dd d!Z.ee/d"d#d$Z0d%d& Z1d'd( Z2G d)d* d*eZ3G d+d, d,e4Z5G d-d. d.e5d/Z6G d0d1 d1e6Z7ej8ed dd2d3Z9G d4d5 d5eZ:ej8dd6d7ed dd8d9Z;ej8ee6 dd:d;Z<G d<d= d=Z=dS )>aE  
Python implementation of ``__torch_function__``

While most of the torch API and handling for ``__torch_function__`` happens
at the C++ level, some of the torch API is written in Python so we need
python-level handling for ``__torch_function__`` overrides as well. The main
developer-facing functionality in this file are handle_torch_function and
has_torch_function. See torch/functional.py and test/test_overrides.py
for usage examples.

Note
----
heavily inspired by NumPy's ``__array_function__`` (see:
https://github.com/pytorch/pytorch/issues/24015 and
https://www.numpy.org/neps/nep-0018-array-function-protocol.html
)

If changing this file in a way that can affect ``__torch_function__`` overhead,
please report the benchmarks in ``benchmarks/overrides_benchmark``. See the
instructions in the ``README.md`` in that directory.
é    N)	ÚDictÚSetÚListÚAnyÚCallableÚIterableÚTypeÚIteratorÚTuple)Ú_has_torch_functionÚ_has_torch_function_unaryÚ_has_torch_function_variadicÚ_add_docstrÚ_set_torch_function_modeÚ_get_torch_function_mode)Ú_enable_modeÚ
_push_modeÚ	_ModeInfoÚ
_wrap_initÚMetaInitErrorInfo)
Úget_ignored_functionsÚget_overridable_functionsÚget_testing_overridesÚhandle_torch_functionÚhas_torch_functionÚresolve_nameÚis_tensor_likeÚis_tensor_method_or_propertyÚwrap_torch_functionÚenable_reentrant_dispatch)Úreturnc               Ï   C   sȘ  t j} t jt jt jt jt jt jt jt j	t j
t jt jt jt jt jt jt jt jt jt jt jt jt jt jt jt jt jt jt jt jt jt j t j!t j"t j#t j$t j%t j&t j't j(t j)t j*t j+t j,t j-t j.t j/t j0t j1t j2t j3t j4t j5t j6t j7t j8t j9t j:t j;t j<t j=t j>t j?t j@t jAt jBt jCt jDt jEt jFt jGt jHt jIt jJt jKjLt jKjMt jNt jOt jPt jQt jRt jSt jTt jUt jVt jWt jXt jYt jZt j[t j\t j]t j^t j_t j`t jat jbt jct jdt jet jft jgt jht jit jjt jkt jlt jmt jnt jot jpjqt jrjsjtt jrjsjut jrjsjvt jrjsjwt jrjsjxt jrjsjyt jrjsjzt jrjsj{t jrjsj|t jrjsj}t jrjsj~t jrjjt jrjjt jrjj\t jrjjt jrjjJt jrjjt jrjjt jrjjt jrjjt jrjjt jrjjt jrjjtxt{t jt jt jt jt jt jt jt jt jt jt jt jt jt jrjsjt jt jt jt jt jt jt jt jt j t jĄt jąt jŁt j€t j„t jŠt j§| jš| j©| jȘ| j«| jŹ| j­| jź| jŻ| j°| j±| jČ| jł| jŽ| j”| j¶| j·| jž| jč| jș| j»| jŒ| jœ| jŸ| jż| jÀ| jÁ| jÂ| jĂ| jÄ| jĆ| jÆ| jÇ| jÈ| jÉ| jÊjË| jÌ| jÍ| jÎ| jÏ| jĐ| jŃ| jÒhÏS )a%  
    Return public functions that cannot be overridden by ``__torch_function__``.

    Returns
    -------
    Set[Callable]
        A tuple of functions that are publicly available in the torch API but cannot
        be overridden with ``__torch_function__``. Mostly this is because none of the
        arguments of these functions are tensors or tensor-likes.

    Examples
    --------
    >>> torch.Tensor.as_subclass in torch.overrides.get_ignored_functions()
    True
    >>> torch.add in torch.overrides.get_ignored_functions()
    False
    )ÓÚtorchÚTensorÚtypenameÚ	is_tensorÚ
is_storageÚset_default_tensor_typeÚset_rng_stateÚget_rng_stateÚmanual_seedÚinitial_seedÚseedÚsaveÚloadÚset_printoptionsÚforkÚget_default_dtypeÚget_num_interop_threadsÚget_num_threadsÚinit_num_threadsÚimport_ir_moduleÚimport_ir_module_from_bufferÚis_anomaly_enabledÚis_grad_enabledÚmerge_type_from_type_commentÚparse_irÚparse_schemaÚparse_type_commentÚset_anomaly_enabledÚset_flush_denormalÚset_num_interop_threadsÚset_num_threadsÚwaitZ	as_tensorÚ
from_numpyÚ
get_deviceÚtensorÚdefault_generatorÚhas_cudaÚ	has_cudnnÚ
has_lapackÚdeviceÚdtypeÚfinfoÚhas_mklÚhas_mpsÚ
has_mkldnnÚ
has_openmpÚiinfoÚmemory_formatÚqschemeÚset_grad_enabledÚno_gradÚenable_gradÚinference_modeÚis_inference_mode_enabledÚlayoutZalign_tensorsZarangeÚ
as_stridedZbartlett_windowZblackman_windowZbroadcast_shapesZcan_castZcudnn_affine_grid_generatorZcudnn_batch_normZcudnn_convolutionZcudnn_convolution_transposeZcudnn_convolution_reluZcudnn_convolution_add_reluZcudnn_grid_samplerZcudnn_is_acceptableÚemptyÚempty_stridedZempty_quantizedZeyeÚfftZfftfreqZrfftfreqÚ	from_fileÚfullÚfillZhamming_windowZhann_windowZkaiser_windowZlinspaceZlogspaceZmkldnn_adaptive_avg_pool2dZmkldnn_convolutionZmkldnn_max_pool2dZmkldnn_max_pool3dZmkldnn_linear_backward_weightsZnested_tensorZnormalZonesZpromote_typesÚrandÚrandnÚrandintZrandpermÚrangeÚresult_typeZscalar_tensorZsparse_coo_tensorZsparse_compressed_tensorZsparse_csr_tensorZsparse_csc_tensorZsparse_bsr_tensorZsparse_bsc_tensorZtril_indicesZtriu_indicesÚvanderÚzerosZ_jit_internalZboolean_dispatchÚnnÚ
functionalZassert_int_or_pairZupsampleZupsample_bilinearZupsample_nearestr   Úhas_torch_function_unaryÚhas_torch_function_variadicr   ÚsigmoidÚhardsigmoidÚtanhÚinitZcalculate_gainÚuniformÚconstantZdiracZxavier_uniformZxavier_normalZkaiming_uniformZkaiming_normalZ
orthogonalÚsparseÚset_autocast_enabledÚis_autocast_enabledÚclear_autocast_cacheÚset_autocast_cpu_enabledÚis_autocast_cpu_enabledÚset_autocast_cpu_dtypeÚget_autocast_cpu_dtypeÚget_autocast_gpu_dtypeÚset_autocast_gpu_dtypeÚautocast_increment_nestingÚautocast_decrement_nestingÚis_autocast_cache_enabledÚset_autocast_cache_enabledÚ	hardswishZis_vulkan_availableÚ$are_deterministic_algorithms_enabledÚuse_deterministic_algorithmsÚ-is_deterministic_algorithms_warn_only_enabledÚset_deterministic_debug_modeÚget_deterministic_debug_modeÚset_float32_matmul_precisionÚget_float32_matmul_precisionÚunify_type_listÚis_warn_always_enabledÚset_warn_alwaysÚvitals_enabledÚ	set_vitalÚread_vitalsZ
frombufferÚasarrayÚ__delitem__Ú__dir__Ú__getattribute__Ú__init__Ú__iter__Ú__init_subclass__Ú__delattr__Ú__setattr__Ú__torch_function__Ú__torch_dispatch__Ú__new__Ú	__class__Ú__subclasshook__Úas_subclassÚ	reinforceÚnewÚ
new_tensorÚ	new_emptyÚnew_empty_stridedÚ	new_zerosÚnew_onesÚnew_fullZ_make_subclassÚsolveÚstrideÚ	unflattenÚto_sparse_cooÚto_sparse_csrÚto_sparse_cscÚto_sparse_bsrÚto_sparse_bscÚ_reduce_ex_internalÚ_fix_weakrefÚ_make_wrapper_subclassÚ_python_dispatchÚ__get__Ú_conjÚ_conj_physicalÚ	_neg_viewÚ_is_zerotensorÚ_addmm_activationÚ_nested_tensor_layer_normÚto_padded_tensor©r"   © rž   úK/var/www/html/django/DPS/env/lib/python3.9/site-packages/torch/overrides.pyr   4   s€    Żr   c                  C   s   t j} | jj| jj| jjhS )a  
    Return public functions that do not wrap in a subclass when invoked by
    the default ``Tensor.__torch_function__`` that preserves subclasses.  Typically,
    these functions represent field accesses (i.e., retrieving a Tensor that
    is stored somewhere on the Tensor) as opposed to computation.  Users of
    these functions expect object identity to be preserved over multiple accesses
    (e.g., ``a.grad is a.grad``) which cannot be upheld if we're wrapping on
    the fly every time (furthermore, the tensor stored here might already be
    the subclass, in which case wrapping really ought not to happen).

    Not ALL property accessors have this property; for example ``Tensor.T`` actually
    just creates a new transposed tensor on the fly, and so we SHOULD interpose on
    these calls (you need to check the implementation of the function to see if
    this is the case or not).  Additionally, if a property accessor doesn't return a Tensor,
    it doesn't have to be on this list (though it is harmless if it is).
    )r!   r"   Ú_baserŻ   ÚgradÚ_gradr·   rž   rž   rč   Úget_default_nowrap_functions  s
    ęrœ   c            
     C   sÊ;  t j} t jdÀddt jdÁddt jdd t jdd t jdÂddt jdd t jdĂd	dt j	dÄd
dt j
dĆddt jdÆddt jdÇddt jdÈddt jdÉddt jdÊddt jdËddt jdÌddt jdd t jdÍddt jdÎddt jdÏddt jdĐddt jdŃddt jdÒddt jdÓddt jdÔddt jd d t jd!d t jdŐd"dt jdÖd#dt jd$d t j dŚd%dt j!dŰd&dt j"dÙd'dt j#dÚd(dt j$dÛd)dt j%dÜd*dt j&dĘd+dt j'dȚd,dt j(dßd-dt j)d.d t j*d/d t j+d0d t j,dàd3dt j-dád4dt j.d5d t j/d6d t j0d7d t j1d8d t j2d9d t j3d:d t j4d;d t j5d<d t j6dâd=dt j7d>d t j8dăd@dt j9dädAdt j:dćdBdt j;dædCdt j<dçdDdt j=dèdEdt j>dédFdt j?dêdGdt j@dëdHdt jAdId t jBdìdJdt jCdKd t jDdLd t jEdídMdt jFdNd t jGdîdOdt jHdïdPdt jIdđdSdt jJdńdTdt jKdòdVdt jLddWdXdt jMdYd t jNdódZdt jOjNdôd[dt jOjPdőd\dt jQdöd]dt jRdśd^dt jSd_d t jTdűd`dt jUdùdadt jVdúdbdt jWdûdcdt jXdüdddt jYdędedt jZdțdfdt j[dgd t j\dÿdidt j]djd t j^d dkdt j_dld t jOj`ddmdt jaddndt jbddodt jcddpdt jdddqdt jeddrdt jfddsdt jgddtdt jhd	dudt jidvd t jjd
dwdt jkddxdt jlddydt jmddzdt jnd{d t jodd|dt jpdd}dt jqdd~dt jrdddt jsdd t jtdddt jOjtdddt judddt jvdddt jwdddt jxdddt jydddt jzdddt j{dddt j|dddt j}dd t j~dd t jOj~dd t jdd t jdddt jdddt jdddt jdddt jd ddt jOjd!ddt jd"ddt jd#ddt jd$ddt jd%ddt jd&ddt jd'ddt jd(ddt jdd t jdd t jd d t jd)dĄdt jd*dądt jOjd+dŁdt jOjd,d€dt jOjd-dŠdt jOjd.d§dt jdšd t jd/d©dt jd0dȘdt jd1d«dt jd2dŹdt jd­d t jd3dźdt jd4dŻdt jd5d°dt jd6d±dt jd7dČdt jd8dłdt j dŽd t jĄd”d t jąd9d¶dt jŁd·d t j€džd t j„dčd t jŠdșd t j§d»d t jšdŒd t j©dœd t jȘdŸd t j«dżd t jŹjŹd:dÀdt jŹj­d;dÁdt jŹjźd<dÂdt jŹjŻd=dĂdt jŹj°d>dÄdt jŹj±d?dĆdt jŹjČd@dÇdt jŹjłdAdÈdt jŹjŽdBdÉdt jŹj”dCdÊdt jŹj¶dDdËdt jŹj·dEdÌdt jŹjždFdÍdt jŹjčdGdÎdt jŹjșdHdÏdt jŹj»dIdĐdt jŹjŒdJdŃdt jŹjœdKdÒdt jŹjŸdLdÓdt jŹjżdMdÔdt jŹjŹdNdŐdt jÀdOdÖdt jÁdPdŚdt jÂdŰd t jĂdÙd t jÄdÚd t jĆdQdÛdt jÆdRdÜdt jÇdĘd t jÈdSdȚdt jÉdTdßdt jÊdUdàdt jËdVdádt jÌddt jÍddfdâdt jÎdWdădt jÏdXdädt jĐdYdćdt jŃdZdædt jÒd[dçdt jÓd\dèdt jÔd]dédt jŐd^dêdt jÖd_dëdt jŚd`dìdt jŰdadídt jÙdîd t jÚdïd t jÛdđd t jÜdbdńdt jĘdòd t jȚdcdódt jßdddôdt jàdedődt jádfdśdt jâdgdűdt jădhdùdt jädidûdt jćdjdüdt jædkdędt jOjçdțd t jèdldÿdt jéd d t jêdmddt jëdnddt jìdoddt jídpddt jîdqddt jïdd t jđdd t jńdrddt jòdsd	dt jód
d t jôdtddt jődd t jöduddt jśdd t jűdd t jùdvddt júdwddt jûdd t jüdd t jędxddt jOjțdyddt jOjÿdzddt j dd t jdd t jdd t jdd t jdd t jdd t jdd t jdd t jdd t j	d{d dt j
d!d t jd|d"dt jd}d#dt jd$d t jd~d%dt jOjdd&dt jOjdd'dt jOjdd(dt jdd)dt jdd*dt jdd+dt jdd,dt jdd-dt jdd.dt jdd/dt jdd0dt jdd1dt jdd2dt jdd3dt jdd4dt jdd5dt jdd6dt j dd7dt j!d8d t j"dd9dt j#dd:dt j$dd;dt j%dd<dt j&dd=dt j'dd>dt j(dd?dt j'dd@dt j)dAd t j*ddBdt j+ddCdt j,ddDdt j-ddEdt j.ddFdt j/ddGdt j0ddHdt j1dId t j2dJd t j3d dKdt j4dĄdLdt jOj.dądMdt jOj5dŁdNdt jOj6d€dOdt jOj4d„dPdt j7dQd t jOj7dŠdRdt j8d§dSdt jOj8dšdTdt jOj9d©dUdt j:dVd t jOj:dWd t j;dȘdXdt j<d«dYdt j=dŹdZdt j>d­d[dt j?dźd\dt j@dŻd]dt jAd°d^dt jBd±d_dt jCdČd`dt jDdłdadt jEdŽdbdt jFdcd t jGd”dddt jHd¶dedt jId·dfdt jJdgd t jKdhd t jLdid t jMdjd t jNdkd t jOdždldt jPdčdmdt jQdnd t jRdod t jSdșdpdt jTd»dqdt jUdŒdrdt jVdœdsdt jWdŸdtdt jXdud t jYdvd t jZdwd t j[dżdydt j\dzd t j]d{d t j^dÀd|dt j_d}d t j`dÁd~dt j`dÂddt j`dĂddt jadd t jbdÄddt jcdĆddt jddÆddt jedÇddt jfdÈddt jgjhjidd t jgjhjjdd t jgjhjdÉddt jgjhjkdÊddt jgjhjldËddt jgjhjmdÌddt jgjhjndÍddt jgjhjodÎddt jgjhjpdÏddt jgjhjdĐddt jgjhjqdŃddt jgjhjrdÒddt jgjhj.dÓddt jgjhj7dÔddt jgjhjsdŐddt jgjhj8dÖddt jgjhjKdŚddt jgjhjpdŰddt jgjhjtdÙddt jgjhjudÚddt jgjhjdÛddt jgjhjudÜddt jgjhjvdĘddt jgjhjwdȚd dt jgjhjxdßdĄdt jgjhjdàdądt jgjhjdádŁdt jgjhjȘdâd€dt jgjhjydăd„dt jgjhjzdädŠdt jgjhj{dćd§dt jgjhj|dædšdt jgjhj}dçd©dt jgjhj~dèd«dt jgjhjdéd­dt jgjhjdêdźdt jgjhjdëd±dt jgjhjÜdìdČdt jgjhjdídŽdt jgjhjádîd”dt jgjhjdïd·dt jgjhjădđdždt jgjhjûdńdčdt jgjhjdòd»dt jgjhjdódŒdt jgjhjdôdœdt jgjhjdődŸdt jgjhjdödÀdt jgjhjdśdÁdt jgjhjdűdÄdt jgjhjdùdÆdt jgjhjdÇd t jgjhjdúdÈdt jgjhjdûdÉdt jgjhj0düdÊdt jgjhj>dędËdt jgjhjAdțdÌdt jgjhj?dÿdÍdt jgjhjd dÎdt jgjhj@ddÏdt jgjhjddĐdt jgjhjddŃdt jgjhjddÒdt jgjhjddÓdt jgjhjddÔdt jgjhjddŐdt jgjhjddÖdt jgjhjd	dŚdt jgjhjd
dŰdt jgjhjddÙdt jgjhjddÛdt jgjhjddÜdt jgjhjddȚdt jgjhjddßdt jgjhjddàdt jgjhjdád t jgjhjddâdt jgjhjddădt jgjhjddædt jgjhj ddçdt jgjhjĄddèdt jgjhjąddédt jgjhjŁddêdt jgjhj€ddëdt jgjhj„ddìdt jgjhjŠddídt jgjhj§ddîdt jgjhjšddđdt jgjhj©ddńdt jgjhjȘdòd t jgjhj«dód t jgjhjŹddôdt jgjhj­ddődt jgjhjźddUdd?dödśdt jgjhjŻd dűdt jgj°j±d!dùdt jgj°jČdúd t jgj°jłd"dûdt jgj°jČdüd t jgj°jŽd#dÿdt j”d$d dt j¶dd t j·d%ddt jOj·d&ddt jOjžd'ddt jOjčd(ddt jșd)ddt j»d*ddt jŒd	d t jœd
d t jŸd+ddt jd,ddt jżdd t jÀd-ddt jÁd.ddt jÂd/ddt jOjĂd0ddt jÄdd t jĆdd t jÆd1ddt jdd t jÇd2ddt jÈd3ddt jdd t jÉd4ddt jÊd5ddt jËd6ddt jÌd7ddt jÍdd t jÎdd t jÏd d t jĐd!d t jŃd"d t jÒd8d#dt jOjÒd9d%dt jÓd:d'dt jÔd;d(dt jŐd)d t jÖd*d t jŚd+d t jŰd,d t jÙd-d t jÚd.d t jÛtÜ d/d0dfd1dt jĘtÜ d2d3dfd4dt jȚd5d t jßd6d t jàd<d7dt jád=d8dt jâdt jÍddfd9dt jăd>d:dt jäd;d t jćd?d<dt jæd@d=dt jçd>d t jèd?d t jédAd@dt jdBdAdt jêdCdBdt jëdDdCdt jìdEdDdt jídEd t jîdFd t jïdFdGdt jđdHd t jńdGdIdt jòdHdJdt jódIdLdt jôdJdMdt jődKdNdt jödOd t jdLdPdt jśdMdQdt jűdNdRdt jùdOdSdt júdTd t jûdUd t jüdPdVdt jędQdWdt jțdRdYdt jÿdZd t j d[d t jdSd\dt j dTd]dt jdUd^dt jdVd_dt jdWd`dt jdXdadt jdYdbdt jdZdcdt jd[dddt j	ded t jOj	dfd t j
dgd t jdhd t jŠd\didt jOjd]djdt jd^dddkdldt jd_dmdt jd`dndt jdadodt jdbdpdt jdcdqdt jdddrdt jdedsdt jdfdtdt jdgdudt jdhdwdt jdidxdt jdjdydt jdkdzdt jdld{dt jdmd|dt jdnd~dt jOjdoddt jOjdpddt jdqddt j dd t j!dd t j"j#dd t j"jdd t j"jdd t j"j$dd t j"jdd t j"jdd t j"jdd t j"j%dd t j"jÇdrddt j"jdd t j"j&dd t j"j'dsddt j"j(dtddt j"j)dd t j"jÔdd t j"j*dd t j"j+dd t j"j,dd t j"j(dd t j"j'duddt j"jdd t j"jdvddt j"jôdd t j"jdd t j"jŠdwddt j"j-dd t j"j.dd t j"j/dd t j"j0d d t j"j"dxdĄdt j"j1dydądt j"j2dzdŁdt j3d€d t j4d„d t j5d{dŠdt j6d|d§dt j7d}dšdt jOj8d~d©dt jOj9ddȘdt j:dd«dt j;ddŹdt jŹdd­dt j<dźd t j=ddŻdt j>d°d t j?d±d t j@ddČdt jAddłdt jBddŽdt jOjCdd”dt jDdd¶dt j­dd·dt jEddždt jFdčd t jGddșdt jHdd»dt jIddŒdt jJddœdt jKddŸdt jLddżdt jMddÀdt jNddÁdt jOjOddÂdt jPddĂdt jQddÄdt jRdĆd t jSddÆdt jTddÇdt jUddÈdt jVdÉd t jWdÊd t jXdËd t jYdÌd t jZdÍd t j[dÎd t j\ddÏdt j]dĐd t j^ddŃdt j_ddÒdÓdt jZdÔd t j`dŐd t jadÖd t jbdŚd t jcdŰd t jdddÙdt jeddÚdt jfddÛdt jgdÜd t jgdĘd t jhdȚd t jidßd t jjdàd t jkdád t jldâd t jmdăd t jndäd t jodćd t jpdæd t jqdçd t jrdèd t jsddédt jtdêd t jtdëd t judìd t jvdíd | jwdîd | jxdïd | jydđd | jzdńd | j{dòd | j|dód | j}dôd | j~dőd | jdöd | jdśd | jdűd | jdùd | jdúd | jdûd | jdüd | jdęd | jdțd | jdÿd | jd d | jdd | jdd | jdd | jdd | jdd | jdd | jdd | jdd | jd	d | jd
d | jdd | jdd | jdd | jdd | jdd | jdd | jdd | jdddd| jdd | jdd | jjdd | j jdd | jĄjdd | jąjdd | jŁjdd | j€jdd | j„jdd | jŠjdd | j§jdd | jšjdd | j©jd d | jȘjd!d | j«d"d | jŹd#d | j­jd$d | jźjd%d | jŻjd&d | j°jd'd | j±jd(d | jČjd)d | jłjd*d | jŽjd+d | j”jd,d | j¶jd-d | j·jd.d | jžjd/d | jčjd0d | jșjd1d | j»jd2d | jŒjd3d | jœjd4d | jŸjd5d | jżjd6d | jÀjd7d | jÁjd8d | jÂjd9d | jĂjd:d | jÄjd;d | jĆjd<d | jćjd=d | jîjd>d | jÆjd?d | jÇdd@d| jÈdAd | jÉdBd | jÊdCd | jËdDd | jÌdEd | jÍdFd | jÎdGd | jÏdHd | jĐdId | jŃdJd | jÒdKd | jÓdLd | jdMd | jÔdNd | jŐdOd | jÖdPd | jŚdQd | jŰdRd | jÙd dSd| jÚt jÛfdTd| jÜt jÛfdUd| jĘt jÛfdVd| jȚt jÛfdWd| jßdĄddXdYd| jàdZd | jÈd[d | ját jâfd\d| jădąd]d| jät jÛfd^d| jćt jÛfd_d| jæt jÛfd`d| jçt jÛfdad| jèdbd | jédcd | jdŁddd| jêded | jët jÛfdfd| jìt jÛfdgd| jídhd | jîdid | jïdjd | jđd€ddXdkd| jńdld | jòdmd | jót jÛfdnd| jôt jÛfdod| jőddXdpd| jödqd | jśt jÛfdrd| jűt jÛfdsd| jùdtd | júdud | jût jÛfdvd| jüdwd | jędxd | jdyd | jțdzd | jÿd{d | j d|d | jd}d | jd„ddXd~d| jdd | jt jÛfdd| jdd | jdd | jOdd | jZdd | jdd | jdd | jłdd | jdd | jżdd | j	dd | j
dŠdd| jdd | jd§ddXdd| jdd | jdd | jdd | jdd | jdd | jdšdd| jdd | jdd | jdd | jdd | jdd | jdd | jd©dd| j dd | jdd | jt jÛfdd| jdd | jdȘdd| jd d | jdĄd | jdąd | j dŁd | jd«d€d| j!d„d | j"dŠd | j#d§d | j$dšd | j%d©d | j<dȘd | j&ddt jÛfd«d| j'dŹdŹd| j(d­d­d| j)dźd | j*dŻd | j+d°d | j,d±d | jŻdČd | j±dźdłd| j-dŽd | j.d”d | j/d¶d | j0d·d | j1dŻdžd| j2dčd t jOj+d°dșdi}i }t3 }| 4Ą D ]ú\}}|j5|j5d» dŒ|j5 dŒ dœ|j5 dŒ dŸ|j5 dŒ g}|j5 6dżĄ;rt|j5t7dżd }| 8dŒ| dŒ dœ| dŒ dŸ| dŒ gĄ |D ]<}t9| |d}	t:|	;rx|	|v;rx|	|v;rx|||	< ;qx:qŸ| ;|Ą |S (±  ar  Return a dict containing dummy overrides for all overridable functions

    Returns
    -------
    Dict[Callable, Callable]
        A dictionary that maps overridable functions in the PyTorch API to
        lambda functions that have the same signature as the real function
        and unconditionally return -1. These lambda functions are useful
        for testing API coverage for a type that defines ``__torch_function__``.

    Examples
    --------
    >>> import inspect
    >>> my_add = torch.overrides.get_testing_overrides()[torch.add]
    >>> inspect.signature(my_add)
    <Signature (input, other, out=None)>
    Nc                 S   s   dS ©Néÿÿÿÿrž   ©ÚinputÚoutrž   rž   rč   Ú<lambda>S  ó    z'get_testing_overrides.<locals>.<lambda>c                 S   s   dS rŸ   rž   rÀ   rž   rž   rč   rĂ   T  rÄ   c                 S   s   dS rŸ   rž   ©rÁ   Úoutput_sizerž   rž   rč   rĂ   U  rÄ   c                 S   s   dS rŸ   rž   )ÚinputsrÆ   rž   rž   rč   rĂ   V  rÄ   c                 S   s   dS rŸ   rž   rÀ   rž   rž   rč   rĂ   W  rÄ   c                 S   s   dS rŸ   rž   ©rÁ   rž   rž   rč   rĂ   X  rÄ   c                 S   s   dS rŸ   rž   rÀ   rž   rž   rč   rĂ   Y  rÄ   c                 S   s   dS rŸ   rž   rÀ   rž   rž   rč   rĂ   Z  rÄ   c                 S   s   dS rŸ   rž   rÀ   rž   rž   rč   rĂ   [  rÄ   c                 S   s   dS rŸ   rž   ©rÁ   ÚotherrÂ   rž   rž   rč   rĂ   \  rÄ   é   c                 S   s   dS rŸ   rž   ©rÁ   Zbatch1Zbatch2ÚalphaÚbetarÂ   rž   rž   rč   rĂ   ]  rÄ   c                 S   s   dS rŸ   rž   ©rÁ   Ztensor1Ztensor2ÚvaluerÂ   rž   rž   rč   rĂ   ^  rÄ   c                 S   s   dS rŸ   rž   rÏ   rž   rž   rč   rĂ   _  rÄ   c                 S   s   dS rŸ   rž   ©rÁ   Úmat1Úmat2rÎ   rÍ   rÂ   rž   rž   rč   rĂ   `  rÄ   c                 S   s   dS rŸ   rž   )rÁ   ÚmatÚvecrÎ   rÍ   rÂ   rž   rž   rč   rĂ   a  rÄ   c                 S   s   dS rŸ   rž   )rÁ   Úvec1Úvec2rÎ   rÍ   rÂ   rž   rž   rč   rĂ   b  rÄ   c                 S   s   dS rŸ   rž   ©ÚthetaÚsizeÚalign_cornersrž   rž   rč   rĂ   c  rÄ   c                 S   s   dS rŸ   rž   ©rÁ   Údimrž   rž   rč   rĂ   d  rÄ   çńhă”űä>ç:0âyE>Fc                 S   s   dS rŸ   rž   )rÁ   rÊ   ZtrolÚatolÚ	equal_nanrž   rž   rč   rĂ   e  rÄ   c                 S   s   dS rŸ   rž   ©rÁ   ÚpÚtrainÚinplacerž   rž   rč   rĂ   f  rÄ   c                 S   s   dS rŸ   rž   rÜ   rž   rž   rč   rĂ   g  rÄ   c                 S   s   dS rŸ   rž   rÜ   rž   rž   rč   rĂ   h  rÄ   c                 S   s   dS rŸ   rž   ©rÁ   rĘ   ÚkeepdimrÂ   rž   rž   rč   rĂ   i  rÄ   c                 S   s   dS rŸ   rž   rÀ   rž   rž   rč   rĂ   j  rÄ   c                 S   s   dS rŸ   rž   ræ   rž   rž   rč   rĂ   k  rÄ   c                 S   s   dS rŸ   rž   rÈ   rž   rž   rč   rĂ   l  rÄ   c                 S   s   dS rŸ   rž   rÈ   rž   rž   rč   rĂ   m  rÄ   c                 S   s   dS rŸ   rž   rÜ   rž   rž   rč   rĂ   n  rÄ   c                 S   s   dS rŸ   rž   rÀ   rž   rž   rč   rĂ   o  rÄ   c                 S   s   dS rŸ   rž   rÈ   rž   rž   rč   rĂ   p  rÄ   c                 S   s   dS rŸ   rž   rÀ   rž   rž   rč   rĂ   q  rÄ   c                 S   s   dS rŸ   rž   rÀ   rž   rž   rč   rĂ   r  rÄ   c                 S   s   dS rŸ   rž   rÀ   rž   rž   rč   rĂ   s  rÄ   c                 S   s   dS rŸ   rž   rÀ   rž   rž   rč   rĂ   t  rÄ   c                 S   s   dS rŸ   rž   rÀ   rž   rž   rč   rĂ   u  rÄ   c                 S   s   dS rŸ   rž   rÉ   rž   rž   rč   rĂ   v  rÄ   c                 S   s   dS rŸ   rž   rÉ   rž   rž   rč   rĂ   w  rÄ   c                 S   s   dS rŸ   rž   rÀ   rž   rž   rč   rĂ   x  rÄ   c                 S   s   dS rŸ   rž   rÀ   rž   rž   rč   rĂ   y  rÄ   c                  W   s   dS rŸ   rž   ©Útensorsrž   rž   rč   rĂ   z  rÄ   c                  W   s   dS rŸ   rž   rè   rž   rž   rč   rĂ   {  rÄ   c                  W   s   dS rŸ   rž   rè   rž   rž   rč   rĂ   |  rÄ   r   Tc                 S   s   dS rŸ   rž   )rÁ   Úkernel_sizer€   ÚpaddingÚ	ceil_modeÚcount_include_padrž   rž   rč   rĂ   }  rÄ   c                 S   s   dS rŸ   rž   rÌ   rž   rž   rč   rĂ   ~  rÄ   c	           	      S   s   dS rŸ   rž   )	rÁ   ÚweightÚbiasÚrunning_meanÚrunning_varÚtrainingÚmomentumÚepsÚcudnn_enabledrž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   )Úgrad_outrÁ   ÚmeanÚinvstdrî   Zsum_dyZ
sum_dy_xmuZcount_tensorrž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   )rö   rÁ   rś   rű   rî   Zinput_gZweight_gZbias_grž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   )rÁ   rî   rï   rś   rű   rô   rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   ©rÁ   rś   rű   rđ   rń   ró   rô   Úcountrž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   rù   rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   ©rÁ   rô   rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   )rÁ   rđ   rń   ró   rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   )rÁ   Ú	generatorrÂ   rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   ©Úinput1Úinput2rî   rï   rž   rž   rč   rĂ     rÄ   rś   c                 S   s   dS rŸ   rž   ©rÁ   Útargetrî   Úsize_averageÚreduceÚ	reductionZ
pos_weightrž   rž   rč   rĂ     s    c                 S   s   dS rŸ   rž   )rÁ   ÚweightsÚ	minlengthrž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   )rú   Zprobrü   rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   rÉ   rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   rÀ   rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   rÉ   rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   rÉ   rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   rÉ   rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   rÉ   rž   rž   rč   rĂ     rÄ   c                  W   s   dS rŸ   rž   rè   rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   ©rÁ   rÓ   rÂ   rž   rž   rč   rĂ     rÄ   c                  W   s   dS rŸ   rž   rè   rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   ©ÚselfrÚ   rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   )rÁ   Z
boundariesÚ	out_int32ÚrightrÂ   rž   rž   rč   rĂ     rÄ   c                  W   s   dS rŸ   rž   rè   rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   ©ré   rĘ   rÂ   rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   r  rž   rž   rč   rĂ     rÄ   ç       @Ú#use_mm_for_euclid_dist_if_necessaryc                 S   s   dS rŸ   rž   )Úx1Úx2ră   Zcompute_moderž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   rÀ   rž   rž   rč   rĂ     rÄ   ç      đ?c                 S   s   dS rŸ   rž   )rÁ   Zalhparć   rž   rž   rč   rĂ     rÄ   )rÂ   c                 W   s   dS rŸ   rž   )rÂ   Zmatricesrž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   ©rÁ   Úgroupsrž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   ©rÁ   ÚupperrÂ   rž   rž   rč   rĂ      rÄ   c                 S   s   dS rŸ   rž   rÀ   rž   rž   rč   rĂ   Ą  rÄ   c                 S   s   dS rŸ   rž   ©rÁ   Úcheck_errorsrÂ   rž   rž   rč   rĂ   ą  rÄ   c                 S   s   dS rŸ   rž   r  rž   rž   rč   rĂ   Ł  rÄ   c                 S   s   dS rŸ   rž   )rț   rÿ   r  rÂ   rž   rž   rč   rĂ   €  rÄ   c                 S   s   dS rŸ   rž   )rÁ   ÚnumelZn_binsÚratioZ	bit_widthrž   rž   rč   rĂ   „  rÄ   c                 S   s   dS rŸ   rž   ©rÁ   ÚchunksrĘ   rž   rž   rč   rĂ   Š  rÄ   c                 S   s   dS rŸ   rž   ©rÁ   ÚminÚmaxrÂ   rž   rž   rč   rĂ   §  rÄ   c                 S   s   dS rŸ   rž   r  rž   rž   rč   rĂ   š  rÄ   c                 S   s   dS rŸ   rž   )rÁ   r  rÂ   rž   rž   rč   rĂ   ©  rÄ   c                 S   s   dS rŸ   rž   )rÁ   r  rÂ   rž   rž   rč   rĂ   Ș  rÄ   c                 S   s   dS rŸ   rž   ©ré   rÂ   rž   rž   rč   rĂ   «  rÄ   c                 S   s   dS rŸ   rž   )rÁ   Z
correctionZfweightsZaweightsrž   rž   rč   rĂ   Ź  rÄ   c                 S   s   dS rŸ   rž   rÈ   rž   rž   rč   rĂ   ­  rÄ   é   c                 S   s   dS rŸ   rž   )rÁ   ÚrZwith_replacementrž   rž   rč   rĂ   ź  rÄ   c                 S   s   dS rŸ   rž   )ÚrealÚimagrž   rž   rč   rĂ   Ż  rÄ   c                 S   s   dS rŸ   rž   rÉ   rž   rž   rč   rĂ   °  rÄ   c                 S   s   dS rŸ   rž   )ÚabsÚangrž   rž   rč   rĂ   ±  rÄ   c                 S   s   dS rŸ   rž   )rÁ   Úordrž   rž   rč   rĂ   Č  rÄ   c                 S   s   dS rŸ   rž   rÀ   rž   rž   rč   rĂ   ł  rÄ   c                 S   s   dS rŸ   rž   rÀ   rž   rž   rč   rĂ   Ž  rÄ   c                 S   s   dS rŸ   rž   rÀ   rž   rž   rč   rĂ   ”  rÄ   c                 S   s   dS rŸ   rž   rÀ   rž   rž   rč   rĂ   ¶  rÄ   c                 S   s   dS rŸ   rž   )rÁ   ÚpadrĐ   rž   rž   rč   rĂ   ·  rÄ   c                 S   s   dS rŸ   rž   ©rÁ   rî   rï   r€   rë   Údilationr  rž   rž   rč   rĂ   ž  rÄ   c                 S   s   dS rŸ   rž   r(  rž   rž   rč   rĂ   č  rÄ   c                 S   s   dS rŸ   rž   r(  rž   rž   rč   rĂ   ș  rÄ   c	           	      S   s   dS rŸ   rž   )	rÁ   rî   rï   r€   rë   r)  Z
transposedZoutput_addingr  rž   rž   rč   rĂ   »  rÄ   c                 S   s   dS rŸ   rž   )rÁ   rî   rï   r'  rž   rž   rč   rĂ   Œ  rÄ   c                 S   s   dS rŸ   rž   ©rÁ   rî   rï   r€   rë   Úoutput_paddingr  r)  rž   rž   rč   rĂ   œ  rÄ   c                 S   s   dS rŸ   rž   r*  rž   rž   rč   rĂ   Ÿ  rÄ   c                 S   s   dS rŸ   rž   r*  rž   rž   rč   rĂ   ż  rÄ   c                 S   s   dS rŸ   rž   rÈ   rž   rž   rč   rĂ   À  rÄ   c                 S   s   dS rŸ   rž   rÀ   rž   rž   rč   rĂ   Á  rÄ   c                 S   s   dS rŸ   rž   ©rț   rÿ   r  Úmarginr  r  r  rž   rž   rč   rĂ   Â  rÄ   c                 S   s   dS rŸ   rž   rÀ   rž   rž   rč   rĂ   Ă  rÄ   c                 S   s   dS rŸ   rž   )r  r  rĘ   rô   rž   rž   rč   rĂ   Ä  rÄ   c                 S   s   dS rŸ   rž   rÈ   rž   rž   rč   rĂ   Ć  rÄ   c                 S   s   dS rŸ   rž   ©rÁ   rÊ   rĘ   rÂ   rž   rž   rč   rĂ   Æ  rÄ   rż   c                 S   s   dS rŸ   rž   r.  rž   rž   rč   rĂ   Ç  rÄ   c                 S   s   dS rŸ   rž   ©Z	log_probsÚtargetsZinput_lengthsZtarget_lengthsÚblankr  Zzero_infinityrž   rž   rč   rĂ   È  s    c                 S   s   dS rŸ   rž   ©rÁ   rĘ   rÂ   rž   rž   rč   rĂ   Ê  rÄ   c                 S   s   dS rŸ   rž   r2  rž   rž   rč   rĂ   Ë  rÄ   c                 S   s   dS rŸ   rž   ©rÁ   rĘ   rÂ   rI   rž   rž   rč   rĂ   Ì  rÄ   c                 S   s   dS rŸ   rž   r3  rž   rž   rč   rĂ   Í  rÄ   c                 S   s   dS rŸ   rž   ©ÚyÚxrĘ   rž   rž   rč   rĂ   Î  rÄ   c                 S   s   dS rŸ   rž   r2  rž   rž   rč   rĂ   Ï  rÄ   c                 S   s   dS rŸ   rž   rÀ   rž   rž   rč   rĂ   Đ  rÄ   c                 S   s   dS rŸ   rž   rÈ   rž   rž   rč   rĂ   Ń  rÄ   c                 S   s   dS rŸ   rž   rÈ   rž   rž   rč   rĂ   Ò  rÄ   c                 S   s   dS rŸ   rž   rÈ   rž   rž   rč   rĂ   Ó  rÄ   c                 S   s   dS rŸ   rž   rÈ   rž   rž   rč   rĂ   Ô  rÄ   c                 S   s   dS rŸ   rž   ©rÁ   ÚdiagonalrÂ   rž   rž   rč   rĂ   Ő  rÄ   c                 S   s   dS rŸ   rž   r7  rž   rž   rč   rĂ   Ö  rÄ   c                 S   s   dS rŸ   rž   )rÁ   Úoffsetrž   rž   rč   rĂ   Ś  rÄ   c                 S   s   dS rŸ   rž   )rÁ   ÚnrĘ   ÚprependÚappendrÂ   rž   rž   rč   rĂ   Ű  rÄ   c                 S   s   dS rŸ   rž   ©rÁ   r9  Údim1Údim2rž   rž   rč   rĂ   Ù  rÄ   éțÿÿÿc                 S   s   dS rŸ   rž   r=  rž   rž   rč   rĂ   Ú  rÄ   c                 S   s   dS rŸ   rž   )rÁ   Úsrcr9  r>  r?  rž   rž   rč   rĂ   Û  rÄ   c                 S   s   dS rŸ   rž   rÀ   rž   rž   rč   rĂ   Ü  rÄ   c                 S   s   dS rŸ   rž   )rÁ   rÊ   ră   rž   rž   rč   rĂ   Ę  rÄ   c                 S   s   dS rŸ   rž   ©rÁ   rÊ   Úrounding_moderÂ   rž   rž   rč   rĂ   Ț  rÄ   c                 S   s   dS rŸ   rž   rB  rž   rž   rč   rĂ   ß  rÄ   c                 S   s   dS rŸ   rž   rÉ   rž   rž   rč   rĂ   à  rÄ   c                 S   s   dS rŸ   rž   râ   rž   rž   rč   rĂ   á  rÄ   c                 S   s   dS rŸ   rž   ©rÁ   rÓ   rž   rž   rč   rĂ   â  rÄ   c                 S   s   dS rŸ   rž   )rÒ   rÓ   rž   rž   rč   rĂ   ă  rÄ   c                 S   s   dS rŸ   rž   ©rÁ   Úindices_or_sectionsrž   rž   rč   rĂ   ä  rÄ   c                 S   s   dS rŸ   rž   r  rž   rž   rč   rĂ   ć  rÄ   c                 S   s   dS rŸ   rž   )rÁ   ÚeigenvectorsrÂ   rž   rž   rč   rĂ   æ  rÄ   c                 S   s   dS rŸ   rž   rÀ   rž   rž   rč   rĂ   ç  rÄ   c                 S   s   dS rŸ   rž   rÀ   rž   rž   rč   rĂ   è  rÄ   ÚLc                 S   s   dS rŸ   rž   ©rÁ   ZUPLOrÂ   rž   rž   rč   rĂ   é  rÄ   c                 S   s   dS rŸ   rž   rI  rž   rž   rč   rĂ   ê  rÄ   c                 W   s   dS rŸ   rž   )ZequationZoperandsrž   rž   rč   rĂ   ë  rÄ   c                 S   s   dS rŸ   rž   ©rÁ   rî   Úpadding_idxÚmax_normÚ	norm_typeÚscale_grad_by_freqrp   rž   rž   rč   rĂ   ì  s    c
           
      S   s   dS rŸ   rž   )
rÁ   rî   ÚoffsetsrL  rM  rN  Úmoderp   Úper_sample_weightsrK  rž   rž   rč   rĂ   î  s    c                 S   s   dS rŸ   rž   ©rÁ   rI   rW   rH   Úrequires_gradrž   rž   rč   rĂ   đ  rÄ   c                 S   s   dS rŸ   rž   rÉ   rž   rž   rč   rĂ   ń  rÄ   c                 S   s   dS rŸ   rž   ©rÁ   rÊ   rž   rž   rč   rĂ   ò  rÄ   c                 S   s   dS rŸ   rž   rÀ   rž   rž   rč   rĂ   ó  rÄ   c                 S   s   dS rŸ   rž   rÀ   rž   rž   rč   rĂ   ô  rÄ   c                 S   s   dS rŸ   rž   rÀ   rž   rž   rč   rĂ   ő  rÄ   c                 S   s   dS rŸ   rž   rÀ   rž   rž   rč   rĂ   ö  rÄ   c                 S   s   dS rŸ   rž   rÀ   rž   rž   rč   rĂ   ś  rÄ   c                 S   s   dS rŸ   rž   rÀ   rž   rž   rč   rĂ   ű  rÄ   c                 S   s   dS rŸ   rž   )rÁ   ÚscaleÚ
zero_pointÚaxisÚ	quant_minÚ	quant_maxrž   rž   rč   rĂ   ù  rÄ   c                 S   s   dS rŸ   rž   )rÁ   rU  rV  rX  rY  rž   rž   rč   rĂ   ú  rÄ   c                 S   s   dS rŸ   rž   )r6  Zobserver_onZfake_quant_onZaveraging_constZrunning_minZrunning_maxrU  rV  rX  rY  Zch_axisZper_row_fake_quantZsymmetric_quantrž   rž   rč   rĂ   û  s    c                 S   s   dS rŸ   rž   ©rÁ   Zpacked_weightrï   rž   rž   rč   rĂ   ț  rÄ   c                 S   s   dS rŸ   rž   rZ  rž   rž   rč   rĂ   ÿ  rÄ   c                 S   s   dS rŸ   rž   ©rÁ   rî   ÚpackedZcol_offsetsZweight_scaleZweight_zero_pointrï   rž   rž   rč   rĂ      rÄ   c                 S   s   dS rŸ   rž   r[  rž   rž   rč   rĂ     s    c                 S   s   dS rŸ   rž   rÈ   rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   rÈ   rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   )rÁ   ÚaÚbrž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   ©rÁ   ră   rä   rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   r_  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   ©rÁ   r:  rĘ   Únormrž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   r`  rž   rž   rč   rĂ   	  rÄ   c                 S   s   dS rŸ   rž   r`  rž   rž   rč   rĂ   
  rÄ   c                 S   s   dS rŸ   rž   r`  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   r`  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   r`  rž   rž   rč   rĂ     rÄ   ©r@  rż   c                 S   s   dS rŸ   rž   ©rÁ   ÚsrĘ   ra  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   rc  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   rc  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   rc  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   rc  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   rc  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   rc  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   rc  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   rc  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   rc  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   rc  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   rc  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   rÜ   rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   rÜ   rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   r`  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   rÀ   rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   )rÁ   Z	start_dimZend_dimrž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   ©rÁ   Údimsrž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   rÈ   rž   rž   rč   rĂ      rÄ   c                 S   s   dS rŸ   rž   rÈ   rž   rž   rč   rĂ   !  rÄ   c                 S   s   dS rŸ   rž   ræ   rž   rž   rč   rĂ   "  rÄ   c                 S   s   dS rŸ   rž   rÀ   rž   rž   rč   rĂ   #  rÄ   c                 S   s   dS rŸ   rž   rT  rž   rž   rč   rĂ   $  rÄ   c                 S   s   dS rŸ   rž   ©rÁ   ÚexponentrÂ   rž   rž   rč   rĂ   %  rÄ   c                 S   s   dS rŸ   rž   rÉ   rž   rž   rč   rĂ   &  rÄ   c                 S   s   dS rŸ   rž   rÀ   rž   rž   rč   rĂ   '  rÄ   c                 S   s   dS rŸ   rž   rÀ   rž   rž   rč   rĂ   (  rÄ   c                 S   s   dS rŸ   rž   )rÁ   Z
fill_valuerÂ   rI   rW   rH   rS  rž   rž   rč   rĂ   )  rÄ   c                 S   s   dS rŸ   rž   )ÚLU_dataÚ	LU_pivotsZunpack_dataZunpack_pivotsrž   rž   rč   rĂ   *  rÄ   c                 S   s   dS rŸ   rž   )rÁ   rĘ   ÚindexrÂ   Zsparse_gradrž   rž   rč   rĂ   +  rÄ   c                 S   s   dS rŸ   rž   rÉ   rž   rž   rč   rĂ   ,  rÄ   c                 S   s   dS rŸ   rž   rÉ   rž   rž   rč   rĂ   -  rÄ   c                 S   s   dS rŸ   rž   rÉ   rž   rž   rč   rĂ   .  rÄ   c                 S   s   dS rŸ   rž   rÀ   rž   rž   rč   rĂ   /  rÄ   c                 S   s   dS rŸ   rž   rÀ   rž   rž   rč   rĂ   0  rÄ   c                 S   s   dS rŸ   rž   rÉ   rž   rž   rč   rĂ   1  rÄ   c                 S   s   dS rŸ   rž   ©rÁ   rŚ   rÂ   rž   rž   rč   rĂ   2  rÄ   c                 S   s   dS rŸ   rž   rl  rž   rž   rč   rĂ   3  rÄ   c                 S   s   dS rŸ   rž   )rÁ   ÚspacingrĘ   Z
edge_orderrž   rž   rč   rĂ   4  rÄ   c                 S   s   dS rŸ   rž   ©rÁ   ÚgridZinterpolation_modeÚpadding_moderÛ   rž   rž   rč   rĂ   5  rÄ   c                 S   s   dS rŸ   rž   rn  rž   rž   rč   rĂ   6  rÄ   c                 S   s   dS rŸ   rž   rn  rž   rž   rč   rĂ   7  rÄ   c                 S   s   dS rŸ   rž   )rÁ   Ú
num_groupsrî   rï   rô   rő   rž   rž   rč   rĂ   8  rÄ   c	           	      S   s   dS rŸ   rž   )	rÁ   ÚhxÚparamsÚ
has_biasesÚ
num_layersZgropouträ   ÚbidirectionalÚbatch_firstrž   rž   rč   rĂ   9  rÄ   c                 S   s   dS rŸ   rž   ©rÁ   rr  Úw_ihÚw_hhÚb_ihÚb_hhrž   rž   rč   rĂ   :  rÄ   c                 S   s   dS rŸ   rž   rÉ   rž   rž   rč   rĂ   ;  rÄ   c                 S   s   dS rŸ   rž   rÉ   rž   rž   rč   rĂ   <  rÄ   ç      à?c                 S   s   dS rŸ   rž   ©rÁ   Úlambdrž   rž   rč   rĂ   =  rÄ   c                 S   s   dS rŸ   rž   )rÁ   ÚvaluesrÂ   rž   rž   rč   rĂ   >  rÄ   c                 S   s   dS rŸ   rž   ©rÁ   r  r-  r  r  r  rž   rž   rč   rĂ   ?  rÄ   éd   c                 S   s   dS rŸ   rž   )rÁ   Úbinsr  r  rÂ   rž   rž   rč   rĂ   @  rÄ   c                 S   s   dS rŸ   rž   )rÁ   r  r  r  rî   ÚdensityrÂ   rž   rž   rč   rĂ   A  rÄ   c                 S   s   dS rŸ   rž   )rÁ   r  rb   rî   r  rž   rž   rč   rĂ   B  rÄ   c                 S   s   dS rŸ   rž   ©rÁ   Útaurž   rž   rč   rĂ   C  rÄ   c                 S   s   dS rŸ   rž   )rÒ   rÓ   rÂ   rž   rž   rč   rĂ   D  rÄ   c                 S   s   dS rŸ   rž   rE  rž   rž   rč   rĂ   E  rÄ   c                 S   s   dS rŸ   rž   r  rž   rž   rč   rĂ   F  rÄ   c                 S   s   dS rŸ   rž   rÉ   rž   rž   rč   rĂ   G  rÄ   c                 S   s   dS rŸ   rž   rÉ   rž   rž   rč   rĂ   H  rÄ   c                 S   s   dS rŸ   rž   rÉ   rž   rž   rč   rĂ   I  rÄ   c                 S   s   dS rŸ   rž   rÀ   rž   rž   rč   rĂ   J  rÄ   c                 S   s   dS rŸ   rž   ©rÁ   rĘ   rk  Úsourcerž   rž   rč   rĂ   K  rÄ   c                 S   s   dS rŸ   rž   r  rž   rž   rč   rĂ   L  rÄ   c                 S   s   dS rŸ   rž   )rÁ   Úindicesr  Ú
accumulaterž   rž   rč   rĂ   M  rÄ   c                 S   s   dS rŸ   rž   )rÁ   rĘ   rk  rÂ   rž   rž   rč   rĂ   N  rÄ   c                 S   s   dS rŸ   rž   )rÁ   rĘ   rk  rĐ   rž   rž   rč   rĂ   O  rÄ   c                 S   s   dS rŸ   rž   )rÁ   rĘ   rk  r  r  Zinclude_inputrž   rž   rč   rĂ   P  rÄ   c                 S   s   dS rŸ   rž   ©rC   rž   rž   rč   rĂ   Q  rÄ   c                 S   s   dS rŸ   rž   )ÚeÚteZassume_uniqueÚinvertrž   rž   rč   rĂ   R  rÄ   c                 S   s   dS rŸ   rž   r  rž   rž   rč   rĂ   S  rÄ   c                 S   s   dS rŸ   rž   r  rž   rž   rč   rĂ   T  rÄ   c                 S   s   dS rŸ   rž   rÀ   rž   rž   rč   rĂ   U  rÄ   c                 S   s   dS rŸ   rž   rÀ   rž   rž   rč   rĂ   V  rÄ   c	           	      S   s   dS rŸ   rž   )	rÁ   rđ   rń   rî   rï   Úuse_input_statsró   rô   rő   rž   rž   rč   rĂ   W  s    c                 S   s   dS rŸ   rž   rÈ   rž   rž   rč   rĂ   Y  rÄ   c                 S   s   dS rŸ   rž   rÀ   rž   rž   rč   rĂ   Z  rÄ   c                 S   s   dS rŸ   rž   rÀ   rž   rž   rč   rĂ   [  rÄ   c                 S   s   dS rŸ   rž   r  rž   rž   rč   rĂ   \  rÄ   c                 S   s   dS rŸ   rž   rÈ   rž   rž   rč   rĂ   ]  rÄ   c                 S   s   dS rŸ   rž   rÈ   rž   rž   rč   rĂ   ^  rÄ   c                 S   s   dS rŸ   rž   rÈ   rž   rž   rč   rĂ   _  rÄ   c                 S   s   dS rŸ   rž   rÈ   rž   rž   rč   rĂ   `  rÄ   c                 S   s   dS rŸ   rž   rÈ   rž   rž   rč   rĂ   a  rÄ   c                 S   s   dS rŸ   rž   rÈ   rž   rž   rč   rĂ   b  rÄ   c                 S   s   dS rŸ   rž   rÈ   rž   rž   rč   rĂ   c  rÄ   c                 S   s   dS rŸ   rž   rT  rž   rž   rč   rĂ   d  rÄ   c                 S   s   dS rŸ   rž   rÈ   rž   rž   rč   rĂ   e  rÄ   c                 S   s   dS rŸ   rž   )rÁ   rÊ   Zrtolrà   rá   rž   rž   rč   rĂ   f  rÄ   c                 S   s   dS rŸ   rž   rÈ   rž   rž   rč   rĂ   g  rÄ   c
           
      S   s   dS rŸ   rž   )
rÁ   Ún_fftÚ
hop_lengthÚ
win_lengthÚwindowÚcenterÚ
normalizedÚonesidedÚlengthÚreturn_complexrž   rž   rč   rĂ   h  s    c                 S   s   dS rŸ   rž   ©rÁ   r  r  r  r  Z
log_targetrž   rž   rč   rĂ   j  rÄ   c                 S   s   dS rŸ   rž   rT  rž   rž   rč   rĂ   k  rÄ   c                 S   s   dS rŸ   rž   )rÁ   ÚkrĘ   rç   rÂ   rž   rž   rč   rĂ   l  rÄ   c                 S   s   dS rŸ   rž   )rÁ   Ú	hermitianr  rÂ   rž   rž   rč   rĂ   m  rÄ   c                 S   s   dS rŸ   rž   )rÁ   r  rÂ   rž   rž   rč   rĂ   n  rÄ   c                 S   s   dS rŸ   rž   )ÚLDÚpivotsÚBr  rÂ   rž   rž   rč   rĂ   o  rÄ   c                 S   s   dS rŸ   rž   )rÁ   Únormalized_shaperî   rï   Zesprő   rž   rž   rč   rĂ   p  rÄ   c                 S   s   dS rŸ   rž   rÉ   rž   rž   rč   rĂ   q  rÄ   c                 S   s   dS rŸ   rž   rÉ   rž   rž   rč   rĂ   r  rÄ   c                 S   s   dS rŸ   rž   rÉ   rž   rž   rč   rĂ   s  rÄ   c                 S   s   dS rŸ   rž   rÉ   rž   rž   rč   rĂ   t  rÄ   c                 S   s   dS rŸ   rž   )rÁ   Úendrî   rÂ   rž   rž   rč   rĂ   u  rÄ   c                 S   s   dS rŸ   rž   rÀ   rž   rž   rč   rĂ   v  rÄ   c                 S   s   dS rŸ   rž   )rÁ   r  r  ÚXr:  ZiKÚniterÚtolZlargestÚmethodZtrackerZortho_iparamsZortho_fparamsZortho_bparamsrž   rž   rč   rĂ   w  s    c                 S   s   dS rŸ   rž   rÀ   rž   rž   rč   rĂ   y  rÄ   c                 S   s   dS rŸ   rž   ©rÁ   rĘ   rI   rž   rž   rč   rĂ   z  rÄ   c                 S   s   dS rŸ   rž   rÀ   rž   rž   rč   rĂ   {  rÄ   c                 S   s   dS rŸ   rž   rÀ   rž   rž   rč   rĂ   |  rÄ   c                 S   s   dS rŸ   rž   rÀ   rž   rž   rč   rĂ   }  rÄ   c                 S   s   dS rŸ   rž   rÉ   rž   rž   rč   rĂ   ~  rÄ   c                 S   s   dS rŸ   rž   rÉ   rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   rÈ   rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   )r6  r5  rÂ   rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   rÉ   rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   rÀ   rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   rÉ   rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   rÉ   rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   ©rÁ   Únamesrç   rÂ   rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   rû   rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   rŠ  rž   rž   rč   rĂ     rÄ   c	           	      S   s   dS rŸ   rž   )	ÚdataÚbatch_sizesrr  rs  rt  ru  Údropouträ   rv  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   rx  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   )rÁ   ÚArÂ   rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   rÉ   rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   rÉ   rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   )r«  ÚpivotÚ	get_infosrÂ   rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   )r^  ri  rj  rÂ   rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   r,  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   )rÁ   ÚmaskrĐ   rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   )rÁ   rź  r  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   )rÁ   rź  rÂ   rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   rÉ   rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   ©rÁ   rŹ  rÂ   rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   rŻ  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   )rÁ   rŹ  r  rÂ   rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   rÉ   rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   )rÁ   r:  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   ©rÁ   r:  rÂ   rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   )rÁ   rŁ  Z	symmetricrž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   )rÁ   rŁ  r  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   r  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   rÈ   rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   rÈ   rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   rÀ   rž   rž   rč   rĂ      rÄ   c                 S   s   dS rŸ   rž   rÉ   rž   rž   rč   rĂ   Ą  rÄ   c                 S   s   dS rŸ   rž   rÉ   rž   rž   rč   rĂ   ą  rÄ   c                 S   s   dS rŸ   rž   ©rÁ   rê   r€   rë   r)  rì   rž   rž   rč   rĂ   Ł  rÄ   c                 S   s   dS rŸ   rž   r±  rž   rž   rč   rĂ   €  rÄ   c                 S   s   dS rŸ   rž   r±  rž   rž   rč   rĂ   „  rÄ   c                 S   s   dS rŸ   rž   ©rÁ   rê   r€   rë   r)  Úreturn_indicesrì   rž   rž   rč   rĂ   Š  s    c                 S   s   dS rŸ   rž   rÜ   rž   rž   rč   rĂ   š  rÄ   c                 S   s   dS rŸ   rž   )rÁ   rĘ   rç   rI   rÂ   rž   rž   rč   rĂ   ©  rÄ   c                 S   s   dS rŸ   rž   rÜ   rž   rž   rč   rĂ   Ș  rÄ   c                 S   s   dS rŸ   rž   rÜ   rž   rž   rč   rĂ   «  rÄ   c                  _   s   dS rŸ   rž   )ré   Úkwargsrž   rž   rč   rĂ   Ź  rÄ   c                 S   s   dS rŸ   rž   rÀ   rž   rž   rč   rĂ   ­  rÄ   c                 S   s   dS rŸ   rž   rÉ   rž   rž   rč   rĂ   ź  rÄ   c                 S   s   dS rŸ   rž   rÉ   rž   rž   rč   rĂ   Ż  rÄ   c                 S   s   dS rŸ   rž   )rÁ   rî   rï   rđ   rń   rò   Zexponential_average_factorÚepsilonrž   rž   rč   rĂ   °  s    c	           	      S   s   dS rŸ   rž   ©	rÁ   rî   rï   rë   r€   r)  r  Ú	benchmarkÚdeterministicrž   rž   rč   rĂ   Č  rÄ   c
           
      S   s   dS rŸ   rž   )
rÁ   rî   rï   rë   r+  r€   r)  r  r·  rž  rž   rž   rč   rĂ   ł  s    c	           	      S   s   dS rŸ   rž   r¶  rž   rž   rč   rĂ   ”  s    c                 S   s   dS rŸ   rž   )rÁ   rî   Zweight_stride0rr  ZcxrP  Zhidden_sizeru  rw  rȘ  rä   rv  r©  Zdropout_staterž   rž   rč   rĂ   ·  s    c                 S   s   dS rŸ   rž   r  rž   rž   rč   rĂ   č  rÄ   c                 S   s   dS rŸ   rž   ræ   rž   rž   rč   rĂ   ș  rÄ   c                 S   s   dS rŸ   rž   ©rÁ   r  Údestinationrž   rž   rč   rĂ   »  rÄ   c                 S   s   dS rŸ   rž   rč  rž   rž   rč   rĂ   Œ  rÄ   c                 S   s   dS rŸ   rž   )rÁ   Ú
descendingrÂ   rž   rž   rč   rĂ   œ  rÄ   c                 S   s   dS rŸ   rž   rÉ   rž   rž   rč   rĂ   Ÿ  rÄ   c                 S   s   dS rŸ   rž   rÉ   rž   rž   rč   rĂ   ż  rÄ   c                 S   s   dS rŸ   rž   )rÁ   Znum_samplesÚreplacementrÂ   rž   rž   rč   rĂ   À  rÄ   c                 S   s   dS rŸ   rž   )rÁ   rŐ   rÂ   rž   rž   rč   rĂ   Á  rÄ   c                 S   s   dS rŸ   rž   ©rÁ   ră   rž   rž   rč   rĂ   Â  rÄ   c                 S   s   dS rŸ   rž   ©rÁ   rĘ   Ústartr  rž   rž   rč   rĂ   Ă  rÄ   c                 S   s   dS rŸ   rž   rŸ  rž   rž   rč   rĂ   Ä  rÄ   ç        c                 S   s   dS rŸ   rž   )rÁ   ÚnanZposinfZneginfrÂ   rž   rž   rč   rĂ   Ć  rÄ   c                 S   s   dS rŸ   rž   )rÁ   rî   rï   rđ   rń   rò   ró   rô   rž   rž   rč   rĂ   Æ  rÄ   c                 S   s   dS rŸ   rž   r_  rž   rž   rč   rĂ   Ç  rÄ   c                 S   s   dS rŸ   rž   ©rÁ   r  rî   rï   rô   rž   rž   rč   rĂ   È  rÄ   c                 S   s   dS rŸ   rž   )rÁ   rî   rï   ÚNÚCZHxWÚgrouprô   rž   rž   rč   rĂ   É  rÄ   c                 S   s   dS rŸ   rž   rœ  rž   rž   rč   rĂ   Ê  rÄ   c                 S   s   dS rŸ   rž   rœ  rž   rž   rč   rĂ   Ë  rÄ   c                 S   s   dS rŸ   rž   )rÁ   ră   rĘ   rç   rI   rž   rž   rč   rĂ   Ì  rÄ   c                 S   s   dS rŸ   rž   r  rž   rž   rč   rĂ   Í  rÄ   c                 S   s   dS rŸ   rž   rÉ   rž   rž   rč   rĂ   Î  rÄ   c                 S   s   dS rŸ   rž   rÉ   rž   rž   rč   rĂ   Ï  rÄ   c                 S   s   dS rŸ   rž   rÀ   rž   rž   rč   rĂ   Đ  rÄ   c                 S   s   dS rŸ   rž   rÀ   rž   rž   rč   rĂ   Ń  rÄ   c                 S   s   dS rŸ   rž   rÉ   rž   rž   rč   rĂ   Ò  rÄ   c                 S   s   dS rŸ   rž   rĆ   rž   rž   rč   rĂ   Ó  rÄ   c                 S   s   dS rŸ   rž   rĆ   rž   rž   rč   rĂ   Ô  rÄ   c                 S   s   dS rŸ   rž   ©rÁ   rÆ   rł  rž   rž   rč   rĂ   Ő  rÄ   c                 S   s   dS rŸ   rž   rÆ  rž   rž   rč   rĂ   Ö  rÄ   c                 S   s   dS rŸ   rž   rÆ  rž   rž   rč   rĂ   Ś  rÄ   c                 S   s   dS rŸ   rž   rÆ  rž   rž   rč   rĂ   Ű  rÄ   c                 S   s   dS rŸ   rž   rÆ  rž   rž   rč   rĂ   Ù  rÄ   c                 S   s   dS rŸ   rž   rÆ  rž   rž   rč   rĂ   Ú  rÄ   c                 S   s   dS rŸ   rž   rŰ   rž   rž   rč   rĂ   Û  rÄ   c                 S   s   dS rŸ   rž   ©rÁ   ră   rò   rć   rž   rž   rč   rĂ   Ü  rÄ   c                 S   s   dS rŸ   rž   ©rÁ   rê   r€   rë   rì   rí   Zdivisor_overriderž   rž   rč   rĂ   Ę  s    c                 S   s   dS rŸ   rž   rÈ  rž   rž   rč   rĂ   ß  s    çč?c                 S   s   dS rŸ   rž   )rÁ   rđ   rń   rî   rï   rò   ró   rô   rž   rž   rč   rĂ   á  s    c                 S   s   dS rŸ   rž   rę   rž   rž   rč   rĂ   ă  rÄ   c                 S   s   dS rŸ   rž   ©rÁ   r  rî   r  r  r  rž   rž   rč   rĂ   ä  s    c                 S   s   dS rŸ   rž   r   rž   rž   rč   rĂ   æ  s    c                 S   s   dS rŸ   rž   ©rÁ   rÍ   rć   rž   rž   rč   rĂ   è  rÄ   c                 S   s   dS rŸ   rž   r,  rž   rž   rč   rĂ   é  s    éÿÿÿc                 S   s   dS rŸ   rž   )rÁ   r  rî   r  Úignore_indexr  r  Zlabel_smoothingrž   rž   rč   rĂ   ë  s    c                 S   s   dS rŸ   rž   r/  rž   rž   rč   rĂ   í  s    c                 S   s   dS rŸ   rž   rÇ  rž   rž   rč   rĂ   ï  rÄ   c                 S   s   dS rŸ   rž   rÇ  rž   rž   rč   rĂ   đ  rÄ   c                 S   s   dS rŸ   rž   rÇ  rž   rž   rč   rĂ   ń  rÄ   c                 S   s   dS rŸ   rž   rÇ  rž   rž   rč   rĂ   ò  rÄ   c                 S   s   dS rŸ   rž   rË  rž   rž   rč   rĂ   ó  rÄ   c                 S   s   dS rŸ   rž   rJ  rž   rž   rč   rĂ   ô  s    c                 S   s   dS rŸ   rž   )rÁ   rî   rO  rL  rM  rN  rP  rp   rQ  Zinclude_last_offsetrK  rž   rž   rč   rĂ   ö  s    c                 S   s   dS rŸ   rž   rÇ  rž   rž   rč   rĂ   ù  rÄ   c                 S   s   dS rŸ   rž   )rÁ   rÆ   rê   r)  rë   r€   rž   rž   rč   rĂ   ú  rÄ   c                 S   s   dS rŸ   rž   ©rÁ   rê   rÆ   Zoutput_ratiorł  Z_random_samplesrž   rž   rč   rĂ   û  s    c                 S   s   dS rŸ   rž   rÎ  rž   rž   rč   rĂ   ț  s    c                 S   s   dS rŸ   rž   rÎ  rž   rž   rč   rĂ      s    c                 S   s   dS rŸ   rž   rÎ  rž   rž   rč   rĂ     s    çí” śÆ°>c                 S   s   dS rŸ   rž   )rÁ   r  Úvarr]   rô   r  rž   rž   rč   rĂ     rÄ   Únonec                 S   s   dS rŸ   rž   )rÁ   Zapproximaterž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   rÜ   rž   rž   rč   rĂ     rÄ   Úbilinearre   c                 S   s   dS rŸ   rž   )rÁ   ro  rP  rp  rÛ   rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   )rÁ   rq  rî   rï   rô   rž   rž   rč   rĂ   	  rÄ   ç»œŚÙß|Û=c                 S   s   dS rŸ   rž   )Zlogitsr  Zhardrô   rĘ   rž   rž   rč   rĂ   
  rÄ   c                 S   s   dS rŸ   rž   r~  rž   rž   rč   rĂ     rÄ   ç      đżc                 S   s   dS rŸ   rž   )rÁ   Zmin_valZmax_valrć   rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   r  rž   rž   rč   rĂ     s    c                 S   s   dS rŸ   rž   )rÁ   rđ   rń   rî   rï   r  ró   rô   rž   rž   rč   rĂ     s    Únearestc                 S   s   dS rŸ   rž   )rÁ   rÚ   Zscale_factorrP  rÛ   Zrecompute_scale_factorZ	antialiasrž   rž   rč   rĂ     s    c                 S   s   dS rŸ   rž   r  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   ©rÁ   r  r  r  r  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   rÂ  rž   rž   rč   rĂ     rÄ   ç{źGáz?c                 S   s   dS rŸ   rž   )rÁ   Znegative_sloperć   rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   )rÁ   rî   rï   rž   rž   rč   rĂ     rÄ   ç-Cëâ6?ç      è?c                 S   s   dS rŸ   rž   )rÁ   rÚ   rÍ   rÎ   r  rž   rž   rč   rĂ     rÄ   é   c                 S   s   dS rŸ   rž   ©rÁ   rĘ   Z_stacklevelrI   rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   rÈ   rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   ©rÁ   rM  rê   r€   rì   rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   rÜ  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   r,  rž   rž   rč   rĂ     s    c                 S   s   dS rŸ   rž   ©rÁ   rê   r€   rë   r)  rì   rł  rž   rž   rč   rĂ     s    c                 S   s   dS rŸ   rž   rČ  rž   rž   rč   rĂ   !  s    c                 S   s   dS rŸ   rž   rĘ  rž   rž   rč   rĂ   #  s    c                 S   s   dS rŸ   rž   rČ  rž   rž   rč   rĂ   %  s    c                 S   s   dS rŸ   rž   rČ  rž   rž   rč   rĂ   '  s    c                 S   s   dS rŸ   rž   rČ  rž   rž   rč   rĂ   )  s    c                 S   s   dS rŸ   rž   ©rÁ   r  rê   r€   rë   rÆ   rž   rž   rč   rĂ   +  rÄ   c                 S   s   dS rŸ   rž   rȚ  rž   rž   rč   rĂ   ,  rÄ   c                 S   s   dS rŸ   rž   rȚ  rž   rž   rč   rĂ   -  rÄ   c                 S   s   dS rŸ   rž   rÖ  rž   rž   rč   rĂ   .  rÄ   c                 S   s   dS rŸ   rž   )ÚqueryÚkeyrĐ   Zembed_dim_to_checkZ	num_headsZin_proj_weightZin_proj_biasZbias_kZbias_vZadd_zero_attnZ	dropout_pZout_proj_weightZout_proj_biasrò   Zkey_padding_maskZneed_weightsZ	attn_maskZuse_separate_proj_weightZq_proj_weightZk_proj_weightZv_proj_weightZstatic_kZstatic_vZaverage_attn_weightsrž   rž   rč   rĂ   0  s    c                 S   s   dS rŸ   rž   )rÁ   r  ră   r-  rî   r  r  r  rž   rž   rč   rĂ   4  s    c                 S   s   dS rŸ   rž   rÖ  rž   rž   rč   rĂ   6  s    c                 S   s   dS rŸ   rž   rÊ  rž   rž   rč   rĂ   8  s    c                 S   s   dS rŸ   rž   )rÁ   r  rî   r  rÍ  r  r  rž   rž   rč   rĂ   :  s    çê-q=c                 S   s   dS rŸ   rž   )rÁ   ră   rĘ   rô   rÂ   rž   rž   rč   rĂ   <  rÄ   c                 S   s   dS rŸ   rž   )rC   Znum_classesrž   rž   rč   rĂ   =  rÄ   ro   c                 S   s   dS rŸ   rž   )rÁ   r'  rP  rĐ   rž   rž   rč   rĂ   >  rÄ   c                 S   s   dS rŸ   rž   ©r  r  ră   rô   rç   rž   rž   rč   rĂ   ?  rÄ   c                 S   s   dS rŸ   rž   )rÁ   r  Ú	log_inputr]   r  rô   r  r  rž   rž   rč   rĂ   @  s    c                 S   s   dS rŸ   rž   ©rÁ   rî   rž   rž   rč   rĂ   B  rÄ   c                 S   s   dS rŸ   rž   ©rÁ   rć   rž   rž   rč   rĂ   C  rÄ   c                 S   s   dS rŸ   rž   rć  rž   rž   rč   rĂ   D  rÄ   ç      À?çUUUUUUŐ?c                 S   s   dS rŸ   rž   ©rÁ   Úlowerr  rò   rć   rž   rž   rč   rĂ   E  rÄ   c                 S   s   dS rŸ   rž   rć  rž   rž   rč   rĂ   F  rÄ   c                 S   s   dS rŸ   rž   rć  rž   rž   rč   rĂ   G  rÄ   c                 S   s   dS rŸ   rž   rć  rž   rž   rč   rĂ   H  rÄ   c                 S   s   dS rŸ   rž   )rÁ   r  r  r  r  rÎ   rž   rž   rč   rĂ   I  rÄ   c                 S   s   dS rŸ   rž   )rÁ   r  r  Údeltarž   rž   rč   rĂ   J  rÄ   c                 S   s   dS rŸ   rž   rÖ  rž   rž   rč   rĂ   K  rÄ   c                 S   s   dS rŸ   rž   rÛ  rž   rž   rč   rĂ   L  rÄ   c                 S   s   dS rŸ   rž   rÛ  rž   rž   rč   rĂ   M  rÄ   é   c                 S   s   dS rŸ   rž   )rÁ   rÎ   Ú	thresholdrž   rž   rč   rĂ   N  rÄ   c                 S   s   dS rŸ   rž   r~  rž   rž   rč   rĂ   O  rÄ   c                 S   s   dS rŸ   rž   rÈ   rž   rž   rč   rĂ   P  rÄ   c                 S   s   dS rŸ   rž   rÈ   rž   rž   rč   rĂ   Q  rÄ   c                 S   s   dS rŸ   rž   ©rÁ   rì  rĐ   rć   rž   rž   rč   rĂ   R  rÄ   c
           
      S   s   dS rŸ   rž   ©
ÚanchorÚpositiveÚnegativer-  ră   rô   Úswapr  r  r  rž   rž   rč   rĂ   S  s    )Údistance_functionr-  rò  r  c                S   s   dS rŸ   rž   )rï  rđ  rń  ró  r-  rò  r  rž   rž   rč   rĂ   U  s    c                 S   s   dS rŸ   rž   )rÁ   rê   r)  rë   r€   rž   rž   rč   rĂ   X  rÄ   c                 S   s   dS rŸ   rž   )rC   r]  r^  rž   rž   rč   rĂ   Y  rÄ   c                 S   s   dS rŸ   rž   ©rC   Úvalrž   rž   rč   rĂ   Z  rÄ   c                 S   s   dS rŸ   rž   )rC   rś   Ústdrž   rž   rč   rĂ   [  rÄ   c                 S   s   dS rŸ   rž   rô  rž   rž   rč   rĂ   \  rÄ   Úfan_inÚ
leaky_reluc                 S   s   dS rŸ   rž   )rC   r]  rP  Znonlinearityrž   rž   rč   rĂ   ]  rÄ   c                 S   s   dS rŸ   rž   )rÁ   Úas_tuplerž   rž   rč   rĂ   ^  rÄ   c                 S   s   dS rŸ   rž   rÈ   rž   rž   rč   rĂ   _  rÄ   Úfroc                 S   s   dS rŸ   rž   ©rÁ   ră   rĘ   rç   rÂ   rI   rž   rž   rč   rĂ   `  rÄ   c                 S   s   dS rŸ   rž   ©rÁ   r&  rĘ   rç   rÂ   rI   rž   rž   rč   rĂ   a  rÄ   c                 S   s   dS rŸ   rž   rü  rž   rž   rč   rĂ   b  rÄ   c                 S   s   dS rŸ   rž   rü  rž   rž   rč   rĂ   c  rÄ   c                 S   s   dS rŸ   rž   )ÚvÚpowrĘ   rž   rž   rč   rĂ   d  rÄ   c                 S   s   dS rŸ   rž   rû  rž   rž   rč   rĂ   e  rÄ   c                 S   s   dS rŸ   rž   rÈ   rž   rž   rč   rĂ   f  rÄ   c                 S   s   dS rŸ   rž   r  rž   rž   rč   rĂ   g  rÄ   c                 S   s   dS rŸ   rž   )rÁ   rÿ   Zinput3ÚleftÚ	transposerž   rž   rč   rĂ   h  rÄ   c                 S   s   dS rŸ   rž   râ  rž   rž   rč   rĂ   i  rÄ   c                 S   s   dS rŸ   rž   ©r	  rĘ   rž   rž   rč   rĂ   j  rÄ   c                 S   s   dS rŸ   rž   )rÁ   Úqr  rą  rž   rž   rč   rĂ   k  rÄ   c                 S   s   dS rŸ   rž   rœ  rž   rž   rč   rĂ   l  rÄ   çVçŻÒ<c                 S   s   dS rŸ   rž   )rÁ   Úrcondrž   rž   rč   rĂ   m  rÄ   c                 S   s   dS rŸ   rž   )rÁ   r  r  rž   rž   rč   rĂ   n  rÄ   c                 S   s   dS rŸ   rž   )rÁ   Zupscale_factorrž   rž   rč   rĂ   o  rÄ   c                 S   s   dS rŸ   rž   )rÁ   Zdownscale_factorrž   rž   rč   rĂ   p  rÄ   c                 S   s   dS rŸ   rž   )rÁ   rü   rž   rž   rč   rĂ   q  rÄ   c                 S   s   dS rŸ   rž   )rÁ   r  ră  r]   rô   r  rž   rž   rč   rĂ   r  rÄ   c                 S   s   dS rŸ   rž   r°  rž   rž   rč   rĂ   s  rÄ   c                 S   s   dS rŸ   rž   rÀ   rž   rž   rč   rĂ   t  rÄ   c                 S   s   dS rŸ   rž   rä  rž   rž   rč   rĂ   u  rÄ   c                 S   s   dS rŸ   rž   rR  rž   rž   rč   rĂ   v  rÄ   c                 S   s   dS rŸ   rž   rg  rž   rž   rč   rĂ   w  rÄ   c                 S   s   dS rŸ   rž   )rÁ   rI   rž   rž   rč   rĂ   x  rÄ   c                 S   s   dS rŸ   rž   )rÁ   rk  r  r  rž   rž   rč   rĂ   y  rÄ   c                 S   s   dS rŸ   rž   rÈ   rž   rž   rč   rĂ   z  rÄ   c                 S   s   dS rŸ   rž   rÈ   rž   rž   rč   rĂ   {  rÄ   c                 S   s   dS rŸ   rž   rÈ   rž   rž   rč   rĂ   |  rÄ   c                 S   s   dS rŸ   rž   rÈ   rž   rž   rč   rĂ   }  rÄ   c                 S   s   dS rŸ   rž   rÈ   rž   rž   rč   rĂ   ~  rÄ   c                 S   s   dS rŸ   rž   )rÁ   ÚsomerÂ   rž   rž   rč   rĂ     rÄ   Úreducedc                 S   s   dS rŸ   rž   )rÁ   rP  rÂ   rž   rž   rč   rĂ     rÄ   Úlinearc                 S   s   dS rŸ   rž   ©rÁ   r  rĘ   rç   ZinterpolationrÂ   rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   r  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   )rÁ   ÚscalesÚzero_pointsrW  rI   rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   )rÁ   rU  rV  rI   rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   )rÁ   rI   Zreduce_rangerž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   )rÁ   rî   rï   rś   rĐ  rô   Zoutput_scaleZoutput_zero_pointrž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   ©rÁ   rr  ry  rz  r{  r|  Z	packed_ihZ	packed_hhZcol_offsets_ihZcol_offsets_hhZscale_ihZscale_hhZzero_point_ihZzero_point_hhrž   rž   rč   rĂ     s    c                 S   s   dS rŸ   rž   r  rž   rž   rč   rĂ     s    )r   )rË   c                 S   s   dS rŸ   rž   r±  rž   rž   rč   rĂ     s    )r   r   )rË   rË   c                 S   s   dS rŸ   rž   r±  rž   rž   rč   rĂ     s    c                 S   s   dS rŸ   rž   r  rž   rž   rč   rĂ     s    c                 S   s   dS rŸ   rž   r  rž   rž   rč   rĂ     s    c                 S   s   dS rŸ   rž   rÀ   rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   rR  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   )rÁ   ÚhighrI   rW   rH   rS  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   rR  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   rÈ   rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   rÀ   rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   rÉ   rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   rÈ   rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   rÈ   rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   rÀ   rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   rć  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   rÉ   rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   )rÁ   ră   rĘ   ZmaxnormrÂ   rž   rž   rč   rĂ      rÄ   c                 S   s   dS rŸ   rž   rÜ   rž   rž   rč   rĂ   Ą  rÄ   c                 S   s   dS rŸ   rž   )rÁ   Úshaperž   rž   rč   rĂ   ą  rÄ   c	           	      S   s   dS rŸ   rž   ©	rÁ   rr  rs  rt  ru  rȘ  rä   rv  rw  rž   rž   rč   rĂ   Ł  rÄ   c                 S   s   dS rŸ   rž   rx  rž   rž   rč   rĂ   €  rÄ   c	           	      S   s   dS rŸ   rž   r  rž   rž   rč   rĂ   „  rÄ   c                 S   s   dS rŸ   rž   rx  rž   rž   rč   rĂ   Š  rÄ   c                 S   s   dS rŸ   rž   )rÁ   Zshiftsrf  rž   rž   rč   rĂ   §  rÄ   ©r   rË   c                 S   s   dS rŸ   rž   )rÁ   r  rf  rž   rž   rč   rĂ   š  rÄ   c                 S   s   dS rŸ   rž   rÀ   rž   rž   rč   rĂ   ©  rÄ   c                 S   s   dS rŸ   rž   r  rž   rž   rč   rĂ   Ș  rÄ   c                 S   s   dS rŸ   rž   )rî   rź  Zcompressed_indices_dtyperž   rž   rč   rĂ   «  rÄ   c                 S   s   dS rŸ   rž   rè  rž   rž   rč   rĂ   Ź  rÄ   c                 S   s   dS rŸ   rž   rÀ   rž   rž   rč   rĂ   ­  rÄ   c                 S   s   dS rŸ   rž   )rÁ   rÊ   rÍ   rž   rž   rč   rĂ   ź  rÄ   c                 S   s   dS rŸ   rž   rŃ   rž   rž   rč   rĂ   Ż  rÄ   c                 S   s   dS rŸ   rž   ©rÁ   rĘ   rk  rA  rž   rž   rč   rĂ   °  rÄ   c                 S   s   dS rŸ   rž   r  rž   rž   rč   rĂ   ±  rÄ   c                 S   s   dS rŸ   rž   )rÁ   rĘ   rk  rA  r  Zinclude_selfrž   rž   rč   rĂ   Č  rÄ   c                 S   s   dS rŸ   rž   )Zsorted_sequencerÁ   r
  r  rÂ   rž   rž   rč   rĂ   ł  rÄ   r  c                 S   s   dS rŸ   rž   )rš  r  Úlengthsr  rW  Úunsaferž   rž   rč   rĂ   Ž  rÄ   c                 S   s   dS rŸ   rž   )rÁ   rĘ   rk  rž   rž   rč   rĂ   ”  rÄ   c                 S   s   dS rŸ   rž   )rÁ   rA  rĘ   rk  rž   rž   rč   rĂ   ¶  rÄ   c                 S   s   dS rŸ   rž   )rÁ   rA  rĘ   rż  r   Ústeprž   rž   rč   rĂ   ·  rÄ   c                 S   s   dS rŸ   rž   rć  rž   rž   rč   rĂ   ž  rÄ   c                 S   s   dS rŸ   rž   rÀ   rž   rž   rč   rĂ   č  rÄ   c                 S   s   dS rŸ   rž   rÀ   rž   rž   rč   rĂ   ș  rÄ   c                 S   s   dS rŸ   rž   rÀ   rž   rž   rč   rĂ   »  rÄ   c                 S   s   dS rŸ   rž   rÀ   rž   rž   rč   rĂ   Œ  rÄ   c                 S   s   dS rŸ   rž   rÀ   rž   rž   rč   rĂ   œ  rÄ   c                 S   s   dS rŸ   rž   rÀ   rž   rž   rč   rĂ   Ÿ  rÄ   c                 S   s   dS rŸ   rž   rÀ   rž   rž   rč   rĂ   ż  rÄ   c                 S   s   dS rŸ   rž   rÈ   rž   rž   rč   rĂ   À  rÄ   c                 S   s   dS rŸ   rž   rÈ   rž   rž   rč   rĂ   Á  rÄ   c                 S   s   dS rŸ   rž   rD  rž   rž   rč   rĂ   Â  rÄ   c                 S   s   dS rŸ   rž   rD  rž   rž   rč   rĂ   Ă  rÄ   c                 S   s   dS rŸ   rž   r„  rž   rž   rč   rĂ   Ä  rÄ   c                 S   s   dS rŸ   rž   rÉ   rž   rž   rč   rĂ   Ć  rÄ   )ÚstablerÂ   c                S   s   dS rŸ   rž   )rÁ   rĘ   r»  r  rÂ   rž   rž   rč   rĂ   Æ  rÄ   c                 S   s   dS rŸ   rž   ©rC   Zsplit_size_or_sectionsrĘ   rž   rž   rč   rĂ   Ç  rÄ   c                 S   s   dS rŸ   rž   r  rž   rž   rč   rĂ   È  rÄ   c                 S   s   dS rŸ   rž   rÀ   rž   rž   rč   rĂ   É  rÄ   c                 S   s   dS rŸ   rž   rÀ   rž   rž   rč   rĂ   Ê  rÄ   c                 S   s   dS rŸ   rž   r2  rž   rž   rč   rĂ   Ë  rÄ   c                 S   s   dS rŸ   rž   rŃ   rž   rž   rč   rĂ   Ì  rÄ   c                 S   s   dS rŸ   rž   r  rž   rž   rč   rĂ   Í  rÄ   c                 S   s   dS rŸ   rž   rÜ   rž   rž   rč   rĂ   Î  rÄ   c                 S   s   dS rŸ   rž   rÜ   rž   rž   rč   rĂ   Ï  rÄ   Úreflectc
           
      S   s   dS rŸ   rž   )
rÁ   r  r  r  r  r  Úpad_moder  r  r  rž   rž   rč   rĂ   Đ  s    c                 S   s   dS rŸ   rž   rÉ   rž   rž   rč   rĂ   Ò  rÄ   c                 S   s   dS rŸ   rž   rÉ   rž   rž   rč   rĂ   Ó  rÄ   c                 S   s   dS rŸ   rž   rÜ   rž   rž   rč   rĂ   Ô  rÄ   c                 S   s   dS rŸ   rž   rÜ   rž   rž   rč   rĂ   Ő  rÄ   c                 S   s   dS rŸ   rž   )rÁ   r  Z
compute_uvrÂ   rž   rž   rč   rĂ   Ö  rÄ   é   c                 S   s   dS rŸ   rž   )rÁ   r  rą  ÚMrž   rž   rč   rĂ   Ś  rÄ   c                 S   s   dS rŸ   rž   )rÁ   Zfull_matricesrÂ   rž   rž   rč   rĂ   Ű  rÄ   c                 S   s   dS rŸ   rž   rÀ   rž   rž   rč   rĂ   Ù  rÄ   c                 S   s   dS rŸ   rž   )rÁ   rG  r  rÂ   rž   rž   rč   rĂ   Ú  rÄ   c                 S   s   dS rŸ   rž   ©rÁ   Údim0r>  rž   rž   rč   rĂ   Û  rÄ   c                 S   s   dS rŸ   rž   )rÁ   Zaxis0Zaxis1rž   rž   rč   rĂ   Ü  rÄ   c                 S   s   dS rŸ   rž   rÈ   rž   rž   rč   rĂ   Ę  rÄ   c                 S   s   dS rŸ   rž   rÈ   rž   rž   rč   rĂ   Ț  rÄ   c                 S   s   dS rŸ   rž   rÈ   rž   rž   rč   rĂ   ß  rÄ   c                 S   s   dS rŸ   rž   rÈ   rž   rž   rč   rĂ   à  rÄ   c                 S   s   dS rŸ   rž   rÈ   rž   rž   rč   rĂ   á  rÄ   c                 S   s   dS rŸ   rž   rÈ   rž   rž   rč   rĂ   â  rÄ   c                 S   s   dS rŸ   rž   rÈ   rž   rž   rč   rĂ   ă  rÄ   c                 S   s   dS rŸ   rž   rÈ   rž   rž   rč   rĂ   ä  rÄ   c                 S   s   dS rŸ   rž   r°  rž   rž   rč   rĂ   ć  rÄ   c                 S   s   dS rŸ   rž   rÈ   rž   rž   rč   rĂ   æ  rÄ   c                 S   s   dS rŸ   rž   rÈ   rž   rž   rč   rĂ   ç  rÄ   c                 S   s   dS rŸ   rž   rÉ   rž   rž   rč   rĂ   è  rÄ   c                 S   s   dS rŸ   rž   rÉ   rž   rž   rč   rĂ   é  rÄ   c                 S   s   dS rŸ   rž   rÈ   rž   rž   rč   rĂ   ê  rÄ   c                 S   s   dS rŸ   rž   rÈ   rž   rž   rč   rĂ   ë  rÄ   c                 S   s   dS rŸ   rž   rÈ   rž   rž   rč   rĂ   ì  rÄ   c                 S   s   dS rŸ   rž   rÈ   rž   rž   rč   rĂ   í  rÄ   c                 S   s   dS rŸ   rž   rÈ   rž   rž   rč   rĂ   î  rÄ   c                 S   s   dS rŸ   rž   rÈ   rž   rž   rč   rĂ   ï  rÄ   c                 S   s   dS rŸ   rž   ræ   rž   rž   rč   rĂ   đ  rÄ   c                 S   s   dS rŸ   rž   rÈ   rž   rž   rč   rĂ   ń  rÄ   c                 S   s   dS rŸ   rž   r„  rž   rž   rč   rĂ   ò  rÄ   c                 S   s   dS rŸ   rž   rÈ   rž   rž   rč   rĂ   ó  rÄ   c                 S   s   dS rŸ   rž   rÈ   rž   rž   rč   rĂ   ô  rÄ   c                 S   s   dS rŸ   rž   r„  rž   rž   rč   rĂ   ő  rÄ   c                 S   s   dS rŸ   rž   rœ  rž   rž   rč   rĂ   ö  rÄ   c                 S   s   dS rŸ   rž   rÈ   rž   rž   rč   rĂ   ś  rÄ   c                 S   s   dS rŸ   rž   rÈ   rž   rž   rč   rĂ   ű  rÄ   c                 S   s   dS rŸ   rž   rÈ   rž   rž   rč   rĂ   ù  rÄ   c                 S   s   dS rŸ   rž   rÉ   rž   rž   rč   rĂ   ú  rÄ   c                 S   s   dS rŸ   rž   rÉ   rž   rž   rč   rĂ   û  rÄ   c                 S   s   dS rŸ   rž   )r	  rÊ   rÂ   rž   rž   rč   rĂ   ü  rÄ   c                 S   s   dS rŸ   rž   rÈ   rž   rž   rč   rĂ   ę  rÄ   c                 S   s   dS rŸ   rž   )rÁ   rk  rž   rž   rč   rĂ   ț  rÄ   c                 S   s   dS rŸ   rž   )rÁ   r  rĘ   rÂ   rž   rž   rč   rĂ   ÿ  rÄ   c                 S   s   dS rŸ   rž   rÀ   rž   rž   rč   rĂ      rÄ   c                 S   s   dS rŸ   rž   rÀ   rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   )r]  Úindrž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   )r]  r^  rf  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   )r]  r^  rf  rÂ   rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   )rÁ   rF  rĘ   rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   rí  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   re  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   )rÁ   r  rĘ   r»  rÂ   rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   rÈ   rž   rž   rč   rĂ   	  rÄ   c                 S   s   dS rŸ   rž   r  rž   rž   rč   rĂ   
  rÄ   c                 S   s   dS rŸ   rž   r4  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   r4  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   )rÁ   r«  r  r   Úunitriangularrž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   )rÁ   r  r  rÿ  r  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   r7  rž   rž   rč   rĂ     rÄ   c
           
      S   s   dS rŸ   rž   rî  rž   rž   rč   rĂ     s    c                 S   s   dS rŸ   rž   r7  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   rT  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   rÀ   rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   rÜ   rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   )rÁ   ÚsortedÚreturn_inverseÚreturn_countsrĘ   rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   )rÁ   r  r   rĘ   rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   r  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   r  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   r  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   r2  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   )r6  rĂ  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   rÜ   rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   rÜ   rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   rE  rž   rž   rč   rĂ      rÄ   c                 S   s   dS rŸ   rž   r  rž   rž   rč   rĂ   !  rÄ   c                 S   s   dS rŸ   rž   )Ú	conditionr6  r5  rž   rž   rč   rĂ   "  rÄ   c                 S   s   dS rŸ   rž   rR  rž   rž   rč   rĂ   #  rÄ   c                 S   s   dS rŸ   rž   )r	  Úlevelrž   rž   rč   rĂ   $  rÄ   c                 S   s   dS rŸ   rž   )ÚprimalÚtangentr"  rž   rž   rč   rĂ   %  rÄ   c                 S   s   dS rŸ   rž   ©r	  rž   rž   rč   rĂ   &  rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ   '  rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ   (  rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ   )  rÄ   c                 S   s   dS rŸ   rž   )r	  rÚ   r€   Ústorage_offsetrž   rž   rč   rĂ   *  rÄ   c                 S   s   dS rŸ   rž   r  rž   rž   rč   rĂ   +  rÄ   c                 S   s   dS rŸ   rž   )r	  r9  r>  r?  rž   rž   rč   rĂ   ,  rÄ   )Úimplicitc                S   s   dS rŸ   rž   )r	  rÚ   r'  rž   rž   rč   rĂ   -  rÄ   c                 S   s   dS rŸ   rž   )r	  rĘ   rż  r  rž   rž   rč   rĂ   .  rÄ   c                 S   s   dS rŸ   rž   )r	  rf  rž   rž   rč   rĂ   /  rÄ   c                 S   s   dS rŸ   rž   ©r	  rÚ   r€   rž   rž   rč   rĂ   0  rÄ   c                 S   s   dS rŸ   rž   )r	  rĘ   rk  rž   rž   rč   rĂ   1  rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ   2  rÄ   c                 S   s   dS rŸ   rž   )r	  rĘ   rż  r   r  rž   rž   rč   rĂ   3  rÄ   c                 S   s   dS rŸ   rž   )r	  Ú
split_sizerĘ   rž   rž   rč   rĂ   4  rÄ   c                 S   s   dS rŸ   rž   )r	  Zsplit_sizesrĘ   rž   rž   rč   rĂ   5  rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ   6  rÄ   c                 S   s   dS rŸ   rž   r  rž   rž   rč   rĂ   7  rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ   8  rÄ   c                 S   s   dS rŸ   rž   )r	  r  r>  rž   rž   rč   rĂ   9  rÄ   c                 S   s   dS rŸ   rž   r  rž   rž   rč   rĂ   :  rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ   ;  rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ   <  rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ   =  rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ   >  rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ   ?  rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ   @  rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ   A  rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ   B  rÄ   c                 S   s   dS rŸ   rž   r  rž   rž   rč   rĂ   C  rÄ   c                 S   s   dS rŸ   rž   r  rž   rž   rč   rĂ   D  rÄ   c                 S   s   dS rŸ   rž   ©r	  rI   rž   rž   rč   rĂ   E  rÄ   c                 S   s   dS rŸ   rž   ©r	  Ú	dimensionrÚ   r  rž   rž   rč   rĂ   F  rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ   G  rÄ   c                 S   s   dS rŸ   rž   ©r	  rÊ   rž   rž   rč   rĂ   H  rÄ   c                 S   s   dS rŸ   rž   r-  rž   rž   rč   rĂ   I  rÄ   c                 S   s   dS rŸ   rž   r-  rž   rž   rč   rĂ   J  rÄ   c                 S   s   dS rŸ   rž   r-  rž   rž   rč   rĂ   K  rÄ   c                 S   s   dS rŸ   rž   r-  rž   rž   rč   rĂ   L  rÄ   c                 S   s   dS rŸ   rž   r-  rž   rž   rč   rĂ   M  rÄ   c                 S   s   dS rŸ   rž   r-  rž   rž   rč   rĂ   N  rÄ   c                 S   s   dS rŸ   rž   r-  rž   rž   rč   rĂ   O  rÄ   c                 S   s   dS rŸ   rž   r-  rž   rž   rč   rĂ   P  rÄ   c                 S   s   dS rŸ   rž   r-  rž   rž   rč   rĂ   Q  rÄ   c                 S   s   dS rŸ   rž   r-  rž   rž   rč   rĂ   R  rÄ   c                 S   s   dS rŸ   rž   r-  rž   rž   rč   rĂ   S  rÄ   c                 S   s   dS rŸ   rž   r-  rž   rž   rč   rĂ   T  rÄ   c                 S   s   dS rŸ   rž   r-  rž   rž   rč   rĂ   U  rÄ   c                 S   s   dS rŸ   rž   r-  rž   rž   rč   rĂ   V  rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ   W  rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ   X  rÄ   c                 S   s   dS rŸ   rž   r*  rž   rž   rč   rĂ   Y  rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ   Z  rÄ   c                 S   s   dS rŸ   rž   r-  rž   rž   rč   rĂ   [  rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ   \  rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ   ]  rÄ   c                 S   s   dS rŸ   rž   r-  rž   rž   rč   rĂ   ^  rÄ   c                 S   s   dS rŸ   rž   r-  rž   rž   rč   rĂ   _  rÄ   c                 S   s   dS rŸ   rž   r-  rž   rž   rč   rĂ   `  rÄ   c                 S   s   dS rŸ   rž   )r	  Úarrayrž   rž   rč   rĂ   a  rÄ   c                 S   s   dS rŸ   rž   )r	  Úidxrž   rž   rč   rĂ   b  rÄ   c                 S   s   dS rŸ   rž   )r	  Úmemorž   rž   rč   rĂ   c  rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ   d  rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ   e  rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ   f  rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ   g  rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ   h  rÄ   c                 S   s   dS rŸ   rž   )r	  Úformat_specrž   rž   rč   rĂ   i  rÄ   c                 S   s   dS rŸ   rž   )r	  Úprotorž   rž   rč   rĂ   j  rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ   k  rÄ   )Útensor_contentsc                S   s   dS rŸ   rž   )r	  r3  rž   rž   rč   rĂ   l  rÄ   c                 S   s   dS rŸ   rž   )r	  r  rę  rž   rž   rč   rĂ   m  rÄ   c                 S   s   dS rŸ   rž   )r	  Údrž   rž   rč   rĂ   n  rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ   o  rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ   p  rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ   q  rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ   r  rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ   s  rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ   t  rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ   u  rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ   v  rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ   w  rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ   x  rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ   y  rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ   z  rÄ   c                 S   s   dS rŸ   rž   )r	  Úcuda_enabledÚcpu_enabledZ
cuda_dtypeZ	cpu_dtyperž   rž   rč   rĂ   {  rÄ   c                 S   s   dS rŸ   rž   )r	  r5  r6  rž   rž   rč   rĂ   |  rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ   }  rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ   ~  rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ     rÄ   c                 [   s   dS rŸ   rž   )r	  rI   Únon_blockingrŽ  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ      rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ   Ą  rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ   ą  rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ   Ł  rÄ   c                 S   s   dS rŸ   rž   )r	  r§  rć   rž   rž   rč   rĂ   €  rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ   „  rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ   Š  rÄ   c                 S   s   dS rŸ   rž   r-  rž   rž   rč   rĂ   §  rÄ   c                 S   s   dS rŸ   rž   )r	  ÚorderÚellipsis_idxrž   rž   rč   rĂ   š  rÄ   c                 S   s   dS rŸ   rž   )r	  Úcallablerž   rž   rč   rĂ   ©  rÄ   c                 S   s   dS rŸ   rž   r(  rž   rž   rč   rĂ   Ș  rÄ   c                 S   s   dS rŸ   rž   r(  rž   rž   rč   rĂ   «  rÄ   c                 S   s   dS rŸ   rž   )r	  ÚgradientÚretain_graphÚcreate_graphrÇ   rž   rž   rč   rĂ   Ź  rÄ   c                 S   s   dS rŸ   rž   ©r	  rP   rž   rž   rč   rĂ   ­  rÄ   c                 S   s   dS rŸ   rž   r>  rž   rž   rč   rĂ   ź  rÄ   c                 S   s   dS rŸ   rž   r>  rž   rž   rč   rĂ   Ż  rÄ   c                 S   s   dS rŸ   rž   r>  rž   rž   rč   rĂ   °  rÄ   )rü   c                S   s   dS rŸ   rž   )r	  ÚmedianÚsigmarü   rž   rž   rč   rĂ   ±  rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ   Č  rÄ   c                 S   s   dS rŸ   rž   )r	  Ú	coalescedrž   rž   rč   rĂ   ł  rÄ   c                 S   s   dS rŸ   rž   r>  rž   rž   rč   rĂ   Ž  rÄ   c                 S   s   dS rŸ   rž   )r	  rA  r7  rž   rž   rč   rĂ   ”  rÄ   c                 S   s   dS rŸ   rž   r>  rž   rž   rč   rĂ   ¶  rÄ   c                 S   s   dS rŸ   rž   r>  rž   rž   rč   rĂ   ·  rÄ   c                 S   s   dS rŸ   rž   r>  rž   rž   rč   rĂ   ž  rÄ   c                 S   s   dS rŸ   rž   r>  rž   rž   rč   rĂ   č  rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ   ș  rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ   »  rÄ   c                 S   s   dS rŸ   rž   )r	  rA  r9  r>  r?  rž   rž   rč   rĂ   Œ  rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ   œ  rÄ   c                 S   s   dS rŸ   rž   r>  rž   rž   rč   rĂ   Ÿ  rÄ   c                 S   s   dS rŸ   rž   r>  rž   rž   rč   rĂ   ż  rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ   À  rÄ   c                 S   s   dS rŸ   rž   r  rž   rž   rč   rĂ   Á  rÄ   c                 S   s   dS rŸ   rž   r-  rž   rž   rč   rĂ   Â  rÄ   c                S   s   dS rŸ   rž   )r	  r  rü   rž   rž   rč   rĂ   Ă  rÄ   c                 S   s   dS rŸ   rž   ©r	  rĐ   rž   rž   rč   rĂ   Ä  rÄ   c                 S   s   dS rŸ   rž   rB  rž   rž   rč   rĂ   Ć  rÄ   c                 S   s   dS rŸ   rž   r>  rž   rž   rč   rĂ   Æ  rÄ   c                 S   s   dS rŸ   rž   r>  rž   rž   rč   rĂ   Ç  rÄ   c                S   s   dS rŸ   rž   )r	  ră   rü   rž   rž   rč   rĂ   È  rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ   É  rÄ   c                 S   s   dS rŸ   rž   r>  rž   rž   rč   rĂ   Ê  rÄ   c                 S   s   dS rŸ   rž   r>  rž   rž   rč   rĂ   Ë  rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ   Ì  rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ   Í  rÄ   c                 S   s   dS rŸ   rž   r>  rž   rž   rč   rĂ   Î  rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ   Ï  rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ   Đ  rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ   Ń  rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ   Ò  rÄ   c                 S   s   dS rŸ   rž   )r	  rC   rž   rž   rč   rĂ   Ó  rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ   Ô  rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ   Ő  rÄ   c                S   s   dS rŸ   rž   )r	  rś   rö  rü   rž   rž   rč   rĂ   Ö  rÄ   c                 S   s   dS rŸ   rž   r  rž   rž   rč   rĂ   Ś  rÄ   c                 S   s   dS rŸ   rž   r>  rž   rž   rč   rĂ   Ű  rÄ   c                 S   s   dS rŸ   rž   )r	  rC   r:  rž   rž   rč   rĂ   Ù  rÄ   c                 S   s   dS rŸ   rž   )r	  r6  r5  r:  rž   rž   rč   rĂ   Ú  rÄ   c                 S   s   dS rŸ   rž   )r	  rÓ   rž   rž   rč   rĂ   Û  rÄ   c                 S   s   dS rŸ   rž   )r	  r,  rż  r  rž   rž   rč   rĂ   Ü  rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ   Ę  rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ   Ț  rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ   ß  rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ   à  rÄ   c                 S   s   dS rŸ   rž   r  rž   rž   rč   rĂ   á  rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ   â  rÄ   c                 S   s   dS rŸ   rž   )r	  r  rC   r  rž   rž   rč   rĂ   ă  rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ   ä  rÄ   c                S   s   dS rŸ   rž   )r	  Úfrom_Útorü   rž   rž   rč   rĂ   ć  rÄ   c                 S   s   dS rŸ   rž   ©r	  Ústreamrž   rž   rč   rĂ   æ  rÄ   c                 S   s   dS rŸ   rž   )r	  r§  rž   rž   rč   rĂ   ç  rÄ   c                 S   s   dS rŸ   rž   )r	  Úhookrž   rž   rč   rĂ   è  rÄ   c                 S   s   dS rŸ   rž   )r	  Únamerž   rž   rč   rĂ   é  rÄ   c                 W   s   dS rŸ   rž   r  rž   rž   rč   rĂ   ê  rÄ   c                 S   s   dS rŸ   rž   )r	  rS  rž   rž   rč   rĂ   ë  rÄ   c                 S   s   dS rŸ   rž   r-  rž   rž   rč   rĂ   ì  rÄ   c                 W   s   dS rŸ   rž   r  rž   rž   rč   rĂ   í  rÄ   c                 S   s   dS rŸ   rž   r  rž   rž   rč   rĂ   î  rÄ   c                 S   s   dS rŸ   rž   r-  rž   rž   rč   rĂ   ï  rÄ   c                 S   s   dS rŸ   rž   r-  rž   rž   rč   rĂ   đ  rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ   ń  rÄ   c                 S   s   dS rŸ   rž   )r	  r  r&  rÚ   r€   rž   rž   rč   rĂ   ò  rÄ   c                 S   s   dS rŸ   rž   )r	  rA  rĘ   rk  rž   rž   rč   rĂ   ó  rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ   ô  rÄ   c                 S   s   dS rŸ   rž   r>  rž   rž   rč   rĂ   ő  rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ   ö  rÄ   c                 S   s   dS rŸ   rž   )r	  rA  rĘ   rż  r   r  rž   rž   rč   rĂ   ś  rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ   ű  rÄ   c                 S   s   dS rŸ   rž   )r	  rź  rž   rž   rč   rĂ   ù  rÄ   c                 S   s   dS rŸ   rž   ©r	  Zsize1Zsize2Ú	dense_dimrž   rž   rč   rĂ   ú  rÄ   c                 S   s   dS rŸ   rž   rI  rž   rž   rč   rĂ   û  rÄ   c                 S   s   dS rŸ   rž   )r	  rÒ   rÓ   rÎ   rÍ   rÂ   rž   rž   rč   rĂ   ü  rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ   ę  rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ   ț  rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ   ÿ  rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ      rÄ   c                 S   s   dS rŸ   rž   r  rž   rž   rč   rĂ     rÄ   c                 W   s   dS rŸ   rž   )r	  Zrepsrž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   )r	  rI   r7  ÚcopyrP   rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   r*  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   r*  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   r-  rž   rž   rč   rĂ   	  rÄ   c                 S   s   dS rŸ   rž   r+  rž   rž   rč   rĂ   
  rÄ   c                 S   s   dS rŸ   rž   )r	  rC  rD  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   )r	  r  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   r-  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   rE  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   r%  rž   rž   rč   rĂ     rÄ   c                 S   s   dS rŸ   rž   )r	  r^  ÚcondZdriverrž   rž   rč   rĂ     rÄ   Ú_Ú__Z__iZ__rZbitwise_)N)N)N)N)N)N)N)rË   rË   N)rË   N)rË   N)rË   rË   N)rË   rË   N)rË   rË   N)N)rȚ   rß   F)F)N)N)NFN)N)NFN)N)N)N)N)N)N)N)N)N)N)N)Nr   FT)rË   rË   N)NN)NNNrś   N)Nr   )N)N)N)N)N)N)N)N)FFN)r   N)r   N)r  r  )N)r  F)FN)N)FN)FN)FN)r   )NNN)NNN)N)N)N)rË   NN)r   F)N)N)N)N)N)N)r   )NrË   r   rË   rË   )NrË   r   rË   rË   )NrË   r   rË   rË   )r   )NrË   r   r   rË   rË   )NrË   r   r   rË   rË   )NrË   r   r   rË   rË   )N)r   NNrś   )N)rË   rß   )NN)rż   N)r   rś   F)N)N)NN)NN)Nrż   )N)N)r   N)r   N)r   )rË   rż   NNN)r   r   rË   )r   r@  rż   )r   r   rË   )N)r   )NN)NN)N)F)N)FN)N)N)rH  N)rH  N)NNr  FF)Nr   Frś   FNN)NNNF)N)N)N)N)N)N)N)FF)Nrż   N)Nrż   N)Nrż   N)Nrż   N)Nrż   N)Nrż   N)Nrb  N)Nrb  N)Nrż   N)Nrż   N)NNN)NNN)NNN)NNN)Nrb  N)Nrb  N)Nrb  N)Nrb  N)N)N)Nrż   N)N)r   rż   )NFN)N)N)N)N)N)TT)NF)N)N)N)N)N)N)N)N)NNrË   )NNrȚ   T)NN)N)N)r}  )N)r  NNrś   )r  r   r   N)r  NNNFN)NNF)N)N)N)N)N)N)F)N)T)FF)N)N)N)N)FN)rȚ   rß   F)NNNTFNNF)NNrś   F)NFN)FFN)FN)FN)NNrȚ   T)N)N)N)N)N)N)NNNNNNNNNNNNN)N)N)N)N)N)N)N)N)N)N)N)N)FN)N)FN)NN)N)N)N)TFN)N)r   NNrś   )N)N)TN)TN)TFN)N)N)NF)NF)N)N)N)N)Nr   rË   F)Nr   rË   F)Nr   rË   F)Nr   rË   FF)N)NFNN)N)N)N)N)N)N)rż   FN)FN)N)N)FN)N)rÀ  NNN)NNrȚ   )r   )r   )r   NFN)N)N)N)N)N)F)F)F)F)F)F)N)r}  FF)Nr   FTN)Nr   FTN)NNFrÉ  rȚ   )N)NNNrś   )NNNrś   N)r  F)r   NNrś   )NNrÌ  Nrś   rÀ  )r   rś   F)r}  TF)r}  TF)r}  TF)r}  TF)r  F)NNr  FF)	NNr   Frś   FNFN)r}  FF)rË   r   rË   )NNFN)NNFN)NNFN)NNFN)FrÏ  rś   )rŃ  )rż   )rÒ  re   N)NNrȚ   )rË   FrÓ  rż   )r}  )rÔ  r  F)r  NNrś   )NNNNTrÉ  rȚ   )NNrŐ  NNF)NNrś   F)NNrś   )NNrȚ   )rŚ  F)N)rŰ  rÙ  r  )NrÚ  N)NF)NF)r   NNrś   )Nr   rË   FF)Nr   rË   FF)Nr   rË   FF)Nr   rË   FF)Nr   rË   FF)Nr   rË   FF)Nr   N)Nr   N)Nr   N)NNrś   )TNTNFNNNNNN)rË   r  NNNrś   )NNrś   )NNNrś   )NNrÌ  Nrś   )r   rË   rá  N)rż   )ro   r   )r  rÏ  F)TFNrß   Nrś   )F)F)ræ  rç  FF)F)F)F)NNrś   r  )rś   r  )NNrś   )NrÚ  N)NrÚ  N)rË   rë  )r}  )F)r  r   rÏ  FNNrś   )rË   r   rË   )rÀ  r  )rÀ  r  )r   rś  rű  )F)rú  NFNN)NNFNN)r   NFNN)rú  rb  FNN)r   r   )rú  NFNN)TF)r  rÏ  F)NTr   )r   )r  )r  F)N)N)N)NNNF)N)N)F)TN)r  N)NFr  N)NFr  N)N)NNNF)NNNF)N)N)N)F)N)N)N)NN)NN)N)rË   r  )N)N)ræ  rç  FF)N)rË   )rË   rË   N)T)FFN)r  NNr   F)r   NNrË   )F)N)N)N)N)N)N)N)N)N)rż   F)r   )r   )N)N)NN)rË   rË   N)r   N)N)N)NNNTr  FTN)N)N)N)N)TTN)r  r   N)TN)N)FTN)N)N)N)FN)N)N)N)N)N)NN)N)N)r   )N)r   N)r   )F)rż   FN)Nrż   )Nrż   )TFF)TF)r   N)r  r   rÏ  FNNrś   )r   N)N)r   )TFFN)FFN)r   )r   )r   )N)N)N)N)N)NN)NNNF)N)r   r   rË   )r   NNrË   )r   )r   )r   )NF)NNFN)r   rË   )F)r   r   rË   )rË   )rË   r   )F)r   N)T)Nr   NN)r   NNrË   )rË   rË   N)N)N)r   rË   )N)NN(<  r!   r"   r$  ÚabsoluteZadaptive_avg_pool1dZadaptive_max_pool1dÚacosÚadjointÚarccosÚacoshÚarccoshÚaddÚaddbmmÚaddcdivÚaddcmulÚaddmmÚaddmvÚaddrZaffine_grid_generatorÚallÚallcloseZalpha_dropoutÚamaxÚaminÚaminmaxÚangleÚanyÚargmaxÚargminÚargsortÚasinZ_assert_asyncÚarcsinÚasinhÚarcsinhÚatanÚarctanÚatan2Úarctan2ÚatanhÚarctanhZ
atleast_1dZ
atleast_2dZ
atleast_3dZ
avg_pool1dÚbaddbmmZ
batch_normZbatch_norm_backward_elemtZbatch_norm_backward_reduceZbatch_norm_elemtZbatch_norm_gather_statsZ#batch_norm_gather_stats_with_countsZbatch_norm_statsZbatch_norm_update_statsÚ	bernoullirÒ  Z binary_cross_entropy_with_logitsÚbincountZbinomialÚbitwise_andÚbitwise_notÚ
bitwise_orÚbitwise_xorÚbitwise_left_shiftÚbitwise_right_shiftZ
block_diagÚbmmZbroadcast_tensorsÚbroadcast_toZ	bucketizeZcartesian_prodÚcatÚconcatZcdistÚceilZceluZchain_matmulZchannel_shuffleÚcholeskyÚlinalgZcholesky_exÚcholesky_inverseÚcholesky_solveZchoose_qparams_optimizedÚchunkÚclampÚclipÚ	clamp_minÚ	clamp_maxZcolumn_stackÚcovÚcloneÚcombinationsÚcomplexÚcopysignZpolarrL  ÚconjÚconj_physicalÚresolve_conjÚresolve_negZconstant_pad_ndZconv1dZconv2dZconv3dZconvolutionZconv_tbcZconv_transpose1dZconv_transpose2dZconv_transpose3dÚcorrcoefÚcosZcosine_embedding_lossÚcoshZcosine_similarityÚcount_nonzeroÚcrossZctc_lossÚcummaxÚcumminÚcumprodÚcumsumZcumulative_trapezoidÚlogcumsumexpÚdeg2radÚ
dequantizeÚdetÚdetachÚdiagÚ
diag_embedÚdiagflatÚdiffr8  Údiagonal_scatterÚdigammaÚdistÚdivÚdivideÚdotrȘ  ZdsmmZhsmmÚdsplitZdstackÚeigZeigvalsZeighZeigvalshZeinsumZ	embeddingZembedding_bagZ
empty_likeÚeqÚequalÚerfÚerfcÚerfinvÚexpÚexp2Úexpm1Z fake_quantize_per_channel_affineZfake_quantize_per_tensor_affineZfused_moving_avg_obs_fake_quantZfbgemm_linear_fp16_weightZ)fbgemm_linear_fp16_weight_fp32_activationZfbgemm_linear_int8_weightZ)fbgemm_linear_int8_weight_fp32_activationZfbgemm_linear_quantize_weightZfbgemm_pack_gemm_matrix_fp16Zfbgemm_pack_quantized_matrixZfeature_alpha_dropoutZfeature_dropoutr[   ZifftZrfftZirfftZhfftZihfftZhfft2Zihfft2ZhfftnZihfftnZfftnZifftnZrfftnZirfftnZfft2Zifft2Zrfft2Zirfft2ZfftshiftZ	ifftshiftÚfixÚflattenÚflipÚfliplrÚflipudZfrobenius_normÚfloorÚfloor_divideÚfloat_powerÚfmodÚfracÚfrexpZ	full_likeÚstridedÚ	lu_unpackÚgatherÚgcdÚgeÚgreater_equalÚgeqrfÚi0ÚinnerÚouterÚgerr;  Zgrid_samplerZgrid_sampler_2dZgrid_sampler_3dZ
group_normÚgruZgru_cellÚgtÚgreaterÚ
hardshrinkÚ	heavisideZhinge_embedding_lossÚhistcÚ	histogramÚhistogramddZhouseholder_productZhspmmÚhsplitZhstackÚhypotÚigammaÚigammacr#  Ú	index_addÚ
index_copyÚ	index_putÚindex_selectÚ
index_fillÚindex_reduceÚisfiniteÚisinÚisinfÚisrealÚisposinfÚisneginfZinstance_normÚint_reprÚinverseÚinvZinv_exÚ
is_complexÚis_conjÚis_negÚis_distributedÚis_inferenceÚis_floating_pointÚ
is_nonzeroÚis_same_sizeÚ	is_signedÚiscloseÚisnanÚistftZkl_divÚkronÚkthvalueZldl_factor_exZ
ldl_factorZ	ldl_solveZ
layer_normÚlcmÚldexpÚleÚ
less_equalÚlerpÚlgammaÚlobpcgÚlogÚlog_softmaxÚlog10Úlog1pÚlog2Ú	logaddexpÚ
logaddexp2ÚlogdetÚxlogyÚlogical_andÚlogical_notÚ
logical_orÚlogical_xorÚ	logsumexpÚlogitÚlstmZ	lstm_cellÚlstsqÚltÚlessÚluÚlu_solveZmargin_ranking_lossÚmasked_fillÚmasked_scatterÚmasked_selectÚmatmulZ	lu_factorZlu_factor_exÚmatrix_powerZmatrix_rankZ	multi_dotÚ
matrix_expr  ÚmaximumÚfmaxZ
max_pool1dZ
max_pool2dZ
max_pool3dZmax_pool1d_with_indicesrś   Únanmeanr?  Ú	nanmedianZmeshgridr  ÚminimumÚfminZmiopen_batch_normZmiopen_convolutionZmiopen_convolution_transposeZmiopen_depthwise_convolutionZ
miopen_rnnÚmmrP  ÚmovedimÚmoveaxisÚmsortÚmulÚmultiplyÚmultinomialÚmvÚmvlgammaÚnarrowÚnarrow_copyÚ
nan_to_numZnative_batch_normZnative_dropoutZnative_layer_normZnative_group_normZnative_normZnative_channel_shuffleÚneÚ	not_equalÚnegrń  Ú	nextafterrf   rg   Úadaptive_avg_pool2dÚadaptive_avg_pool3dZ adaptive_max_pool1d_with_indicesÚadaptive_max_pool2dZ adaptive_max_pool2d_with_indicesÚadaptive_max_pool3dZ adaptive_max_pool3d_with_indicesZaffine_gridÚ
avg_pool2dÚ
avg_pool3dÚbinary_cross_entropyZcross_entropyZ	dropout1dZ	dropout2dZ	dropout3dÚeluÚfoldÚfractional_max_pool2dZ"fractional_max_pool2d_with_indicesÚfractional_max_pool3dZ"fractional_max_pool3d_with_indicesZgaussian_nll_lossÚgeluÚgluZgrid_sampleZgumbel_softmaxÚhardtanhZinterpolateÚl1_lossrű  r  Zlocal_response_normZ
logsigmoidZ	lp_pool1dZ	lp_pool2dÚmax_pool2d_with_indicesÚmax_pool3d_with_indicesZmax_unpool1dÚmax_unpool2dÚmax_unpool3dÚmse_lossZmulti_head_attention_forwardÚmulti_margin_lossÚmultilabel_margin_lossZmultilabel_soft_margin_lossÚnll_lossÚ	normalizeÚone_hotr'  Zpairwise_distanceZpoisson_nll_lossÚpreluÚreluÚrelu6ZrreluZseluÚsiluÚmishÚsmooth_l1_lossÚ
huber_lossÚsoft_margin_lossÚsoftmaxZsoftminÚsoftplusÚ
softshrinkZsoftsignZ
tanhshrinkrì  Ztriplet_margin_lossZ!triplet_margin_with_distance_lossÚunfoldrm   Úuniform_Z	constant_Únormal_Zkaiming_uniform_ÚnonzeroÚargwherera  Zvector_normZmatrix_normZnorm_except_dimZnuclear_normr  ÚorgqrÚormqrÚpermuteZpca_lowrankZpdistÚpinverseZpinvZpixel_shuffleZpixel_unshuffleZpoissonÚ	polygammarđ  Z	ones_likerț  ÚprodÚputÚq_per_channel_axisÚq_per_channel_scalesÚq_per_channel_zero_pointsÚq_scaleÚq_zero_pointÚqrÚquantileÚnanquantileZquantize_per_channelZquantize_per_tensorZquantize_per_tensor_dynamicZquantized_batch_normZquantized_gru_cellZquantized_lstm_cellZquantized_max_pool1dÚtupleZquantized_max_pool2dZquantized_rnn_relu_cellZquantized_rnn_tanh_cellÚrad2degÚ	rand_likeZrandint_likeZ
randn_likeÚravelr"  ÚvdotÚview_as_realZview_as_complexÚ
reciprocalÚ	remainderÚrenormÚrepeat_interleaveÚreshapeÚrnn_reluZrnn_relu_cellÚrnn_tanhZrnn_tanh_cellÚrollÚrot90ÚroundZ	row_stackZ_rowwise_pruneÚrsqrtÚrsubZsaddmmÚscatterÚscatter_addÚscatter_reduceZsearchsortedZsegment_reduceÚselectÚselect_scatterÚslice_scatterrj   ÚsignÚsignbitÚsgnÚsinÚsincÚsinhÚslogdetÚsmmZspmmrŁ   ÚsortÚsplitÚsplit_with_sizesÚsqrtÚsquareÚsqueezeÚsspaddmmÚstackrö  Zstd_meanÚstftÚsubÚsubtractÚsumÚnansumÚsvdZsvd_lowrankZsvdvalsÚsymeigÚswapaxesÚswapdimsÚspecialZentrZerfcxZexpitÚpsiZgammaincZ	gammainccZgammalnZi0eÚi1Zi1eZmultigammalnZndtriZndtrZlog_ndtrZxlog1pyÚzetaÚtÚtakeÚtake_along_dimÚtanrl   Z	tensorinvZtensorsolveZ	tensordotÚtensor_splitÚtileÚtopkÚtracer   ZtrapzZ	trapezoidÚtriangular_solveZsolve_triangularÚtrilÚtriuÚtrue_divideÚtruncÚunbindÚuniqueÚunique_consecutiveÚunsafe_chunkÚunsafe_splitÚunsafe_split_with_sizesÚ	unsqueezerd   rĐ  Zvar_meanÚvsplitZvstackÚwhereZ
zeros_likeZ_fw_primal_copyZ_make_dual_copyZview_as_real_copyZview_as_complex_copyZ
_conj_copyZ_neg_view_copyZas_strided_copyZ_sparse_broadcast_to_copyZdiagonal_copyZexpand_copyZpermute_copyZ_reshape_alias_copyZselect_copyZdetach_copyZ
slice_copyZ
split_copyZsplit_with_sizes_copyZsqueeze_copyZt_copyZtranspose_copyZunsqueeze_copyZ_indices_copyZ_values_copyZindices_copyZvalues_copyZcrow_indices_copyZcol_indices_copyZccol_indices_copyZrow_indices_copyZunbind_copyZ	view_copyZunfold_copyZ
alias_copyÚ__floordiv__Ú__rfloordiv__Ú__ifloordiv__Ú__truediv__Ú__rtruediv__Ú__itruediv__Ú
__lshift__Ú__rlshift__Ú__ilshift__Ú
__rshift__Ú__rrshift__Ú__irshift__Ú__and__Ú__or__Ú__xor__Ú	__float__Ú__complex__Ú	__array__Ú__bool__Ú__contains__Ú__neg__Ú
__invert__Ú__mod__Ú__rmod__Ú__imod__Ú__array_wrap__Ú__getitem__Ú__deepcopy__Ú__int__Ú__long__Ú__hash__Ú	__index__Ú__len__Ú
__format__Ú__reduce_ex__Ú__reversed__Ú__repr__Ú__setitem__Ú__setstate__ÚTrŻ   ÚHÚmTÚmHÚ_backward_hooksrș   Ú_cdatar»   rŒ   Ú_grad_fnÚgrad_fnÚ_versionÚ_autocast_to_reduced_precisionÚ_autocast_to_full_precisionrš  rH   rI   Úis_cudaÚis_xpuÚis_ipuÚis_leafÚretains_gradÚis_metaÚis_mpsÚ	is_nestedÚis_ortÚ	is_mkldnnÚis_quantizedÚ	is_sparseÚis_sparse_csrÚ	is_vulkanrW   rH  r§  ÚndimÚ	output_nrrS  r  ÚvolatileÚ__cuda_array_interface__ÚtypeÚ_coalesced_Ú_dimIÚ_dimVÚ_indicesÚ_is_viewÚ_nnzÚcrow_indicesÚcol_indicesÚccol_indicesÚrow_indicesÚ_update_namesÚ_valuesÚalign_asÚalign_toÚapply_rX   Úas_strided_ÚbackwardÚbfloat16Zpreserve_formatÚboolÚbyteÚcharÚcauchy_ÚcoalesceÚ
contiguousÚcontiguous_formatÚcopy_ÚcpuÚcudaÚxpuÚipuÚdata_ptrrJ  rĘ   ÚdoubleÚcdoubleÚelement_sizeÚexpandÚ	expand_asÚexponential_Úfill_Úfill_diagonal_ÚfloatÚcfloatÚ
geometric_rB   ÚhalfÚchalfÚ	has_namesr  ÚintÚis_coalescedÚis_contiguousÚ	is_pinnedÚ	is_set_toÚ	is_sharedÚitemÚlog_normal_ÚlongÚmap_Úmap2_Ú
ndimensionÚnelementÚnumpyÚ
pin_memoryÚput_rQ   Úrandom_Úrecord_streamÚrefine_namesÚregister_hookÚrenameÚrepeatÚrequires_grad_Ú
reshape_asÚresizeÚresize_Ú	resize_asÚresize_as_sparse_Úretain_gradÚset_Úshare_memory_ÚshortrÚ   Ú
sparse_dimÚsparse_maskÚsparse_resize_Úsparse_resize_and_clear_ÚstorageÚ_storager&  Ústorage_typeÚsum_to_sizerD  Úto_denseÚ	_to_denseÚ	to_sparseÚtolistÚ	to_mkldnnÚtype_asr  ÚviewÚview_asÚzero_Ú
__dlpack__Ú__dlpack_device__r   ÚitemsÚ__name__Ú
startswithÚlenÚextendÚgetattrr:  Úupdate)
r"   ÚretZret2Úignoredr  rę  r§  ÚsubnamerH  Úfuncrž   rž   rč   r   7  s   


















ÿ











ÿ






ÿÿ


ț
















ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
 ț
ÿ
 ÿ
ÿ
 ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
  ę
ÿ
ÿ
ÿ
ÿ
ÿ
ÿ
țÿ
ÿ
ÿ
ț
       À       Jûę r   ©Ú
dispatcherc                    s    fdd}|S )a  Wraps a given function with ``__torch_function__`` -related functionality.

    Parameters
    ----------
    dispatcher: Callable
        A callable that returns an iterable of Tensor-likes passed into the function.

    Note
    ----
    This decorator may reduce the performance of your code. Generally, it's enough to express
    your code as a series of functions that, themselves, support __torch_function__. If you
    find yourself in the rare situation where this is not the case, e.g. if you're wrapping a
    low-level library and you also need it to work for Tensor-likes, then this function is available.

    Examples
    --------
    >>> def dispatcher(a): # Must have the same signature as func
    ...     return (a,)
    >>> @torch.overrides.wrap_torch_function(dispatcher)
    >>> def func(a): # This will make func dispatchable by __torch_function__
    ...     return a + 0
    c                    s   t   Ą fddS )Nc                     s<    | i |€}t |r.t|g| ąR i |€S | i |€S ©N)r   r   )ÚargsrŽ  Úrelevant_args)r]  r[  Úwrappedrž   rč   ra  L  s    z3wrap_torch_function.<locals>.inner.<locals>.wrapped©Ú	functoolsÚwraps©r[  r\  )r[  ra  rč   rĆ  K  s    z"wrap_torch_function.<locals>.innerrž   )r]  rĆ  rž   r\  rč   r   4  s    r   )r`  r    c                 C   sŠ   t j Ą sg S t }g }| D ]}t|}||vrt|dr|jt jjkr|r| |Ą t	|}t
|D ]\}}t|t|rf|} qqf| ||Ą q|h}|g}q|S )a  Returns a list of arguments on which to call __torch_function__.

    Checks arguments in relevant_args for __torch_function__ implementations,
    storing references to the arguments and their types in overloaded_args and
    overloaded_types in order of calling precedence. Only distinct types are
    considered. If a type is a subclass of another type it will have higher
    precedence, otherwise the precedence order is the same as the order of
    arguments in relevant_args, that is, from left-to-right in the argument list.

    The precedence-determining algorithm implemented in this function is
    described in `NEP-0018`_.

    See torch::append_overloaded_arg for the equivalent function in the C++
    implementation.

    Parameters
    ----------
    relevant_args : iterable of array-like
        Iterable of array-like arguments to check for __torch_function__
        methods.

    Returns
    -------
    overloaded_args : list
        Arguments from relevant_args on which to call __torch_function__
        methods, in the order in which they should be called.

    .. _NEP-0018:
       https://numpy.org/neps/nep-0018-array-function-protocol.html
    r   )r!   Ú_CÚ_is_torch_function_enabledÚsetrđ  Úhasattrr   Ú_disabled_torch_function_implrU  rT  Ú	enumerateÚ
issubclassÚinsert)r`  Zoverloaded_typesÚoverloaded_argsÚargZarg_typerk  ÚiZold_argrž   rž   rč   Ú_get_overloaded_argsX  s(     
ÿ
rq  )Ú
public_apir`  r    c                 O   s  t |}ttt|}t }|durft   | | |||Ą}W d   n1 sP0    Y  |turf|S |D ]T}|j}	t|	dr |	j	|u r |	t
jjur t dtĄ |	| |||}|turj|  S qjd | j| jĄ}
d |
dd |D Ą}|durü|d| 7 }t|dS )	a=  Implement a function with checks for ``__torch_function__`` overrides.

    See torch::autograd::handle_torch_function for the equivalent of this
    function in the C++ implementation.

    Arguments
    ---------
    public_api : function
        Function exposed by the public torch API originally called like
        ``public_api(*args, **kwargs)`` on which arguments are now being
        checked.
    relevant_args : iterable
        Iterable of arguments to check for __torch_function__ methods.
    args : tuple
        Arbitrary positional arguments originally passed into ``public_api``.
    kwargs : tuple
        Arbitrary keyword arguments originally passed into ``public_api``.

    Returns
    -------
    object
        Result from calling ``implementation`` or an ``__torch_function__``
        method, as appropriate.

    Raises
    ------
    TypeError : if no implementation is found.

    Example
    -------
    >>> def func(a):
    ...     if has_torch_function_unary(a):
    ...         return handle_torch_function(func, (a,), a)
    ...     return a + 0
    NÚ__self__zDefining your `__torch_function__ as a plain method is deprecated and will be an error in future, please define it as a classmethod.z{}.{}zOno implementation found for '{}' on types that implement __torch_function__: {}c                 S   s   g | ]}t |qS rž   )rđ  )Ú.0ro  rž   rž   rč   Ú
<listcomp>ă  rÄ   z)handle_torch_function.<locals>.<listcomp>z nor in mode )rq  ra  Úmaprđ  r   Ú_no_torch_function_moder   ÚNotImplementedri  rs  r!   rf  rj  ÚwarningsÚwarnÚDeprecationWarningÚformatÚ
__module__rR  Ú	TypeError)rr  r`  r_  rŽ  rn  ÚtypesrP  ÚresultZoverloaded_argZtorch_func_methodÚ	func_nameÚmsgrž   rž   rč   r     s6    &.
ÿț
ÿęr   aù  Check for __torch_function__ implementations in the elements of an iterable
    or if a __torch_function__ mode is enabled.  Considers exact ``Tensor`` s
    and ``Parameter`` s non-dispatchable.  Use this to guard a call to
    :func:`handle_torch_function`; don't use it to test if something
    is Tensor-like, use :func:`is_tensor_like` instead.
    Arguments
    ---------
    relevant_args : iterable
        Iterable or aguments to check for __torch_function__ methods.
    Returns
    -------
    bool
        True if any of the elements of relevant_args have __torch_function__
        implementations, False otherwise.
    See Also
    ________
    torch.is_tensor_like
        Checks if something is a Tensor-like, including an exact ``Tensor``.
    zÓSpecial case of `has_torch_function` for single inputs.
    Instead of:
      `has_torch_function((t,))`
    call:
      `has_torch_function_unary(t)`
    which skips unnecessary packing and unpacking work.
    a'  Special case of `has_torch_function` that skips tuple creation.

    This uses the METH_FASTCALL protocol introduced in Python 3.7

    Instead of:
      `has_torch_function((a, b))`
    call:
      `has_torch_function_variadic(a, b)`
    which skips unnecessary packing and unpacking work.
    c            
      C   s  t  tĄ} i }dttjttjj fdtjtjjfdtj	jttj	jfdtj	j
ttj	j
fdtjttjfdtjttjfdtjttjfdtjttjfg}|D ]Ü\}}}|D ]Ê}d	}|tjur| d
ĄrÖqČn@| dĄræd}n0| dĄröd}n |d  Ą s
d}n|dkrBqČn*t||}tt|d |kr6qČ|dkrBqČt||}|tju rltt|d |krlqČt|tjr|qČt|tjrqČt|st|dr| d| d||j< | d| d||j< |rÖqČ|jt v r
d}	|jt vsČJ |	 ||j ĄqČn| |  !|jĄ qČt|s(qČ| d| ||< |rBqČ|t v rpd}	|t vsČJ |	 ||j ĄqČ| |  !|Ą qČqą| |fS )Nr!   ztorch.functionalztorch.nn.functionalztorch.nn.initztorch.Tensorztorch.linalgz	torch.fftztorch.specialFrN  rM  Tr   Ú
unique_dimÚ__weakref__rŻ   Ú.z.__get__z.__set__zk{}.{} is in the tuple returned by torch._overrides.get_ignored_functions but still has an explicit override)"ÚcollectionsÚdefaultdictÚlistr!   Ú__all__Údirrf  Ú_VariableFunctionsrg   rf   rm   r"   r  r[   r  rS  ÚendswithÚislowerrV  ÚobjectÚ
isinstancer  Ú
ModuleTypeÚ
__future__Ú_Featurer:  ri  rŻ   Ú__set__r   r   r|  rR  r<  )
Úoverridable_funcsrk  Ztested_namespacesZnamespace_strÚ	namespaceZns_funcsr  Úignorer[  r  rž   rž   rč   Ú_get_overridable_functions  sv    
ű









r  c                   C   s
   t  d S )a  List functions that are overridable via __torch_function__

    Returns
    -------
    Dict[Any, List[Callable]]
        A dictionary that maps namespaces that contain overridable functions
        to functions in that namespace that can be overridden.
    r   )r  rž   rž   rž   rč   r   d  s    	r   c                 C   s&   t | tjjrt| S t d  | ĄS )a-  Get a human readable string name for a function passed to
    __torch_function__

    Arguments
    ---------
    callable : Callable
        Function to resolve the name of.

    Returns
    -------
    str
        Name of the function; if eval'ed it should give back the input
        function.
    rË   )r  r!   Z_opsZ
OpOverloadÚstrr  Úget©Úfrž   rž   rč   r   o  s    r   c                  C   s   t  } t| tj }|S )z> Returns a set of the overridable methods on ``torch.Tensor`` )r   rh  r!   r"   )r  Úmethodsrž   rž   rč   Ú_get_tensor_methods  s    r  )r[  r    c                 C   s   | t  v p| jdkS )aw  
    Returns True if the function passed in is a handler for a
    method or property belonging to ``torch.Tensor``, as passed
    into ``__torch_function__``.

    .. note::
       For properties, their ``__get__`` method must be passed in.

    This may be needed, in particular, for the following reasons:

    1. Methods/properties sometimes don't contain a `__module__` slot.
    2. They require that the first passed-in argument is an instance
       of ``torch.Tensor``.

    Examples
    --------
    >>> is_tensor_method_or_property(torch.Tensor.add)
    True
    >>> is_tensor_method_or_property(torch.add)
    False
    rŻ   )r  rR  re  rž   rž   rč   r     s    r   c                 C   s   t | tju ptt | dS )a9  
    Returns ``True`` if the passed-in input is a Tensor-like.

    Currently, this occurs whenever there's a ``__torch_function__``
    attribute on the type of the input.

    Examples
    --------
    A subclass of tensor is generally a Tensor-like.

    >>> class SubTensor(torch.Tensor): ...
    >>> is_tensor_like(SubTensor([0]))
    True

    Built-in or user types aren't usually Tensor-like.

    >>> is_tensor_like(6)
    False
    >>> is_tensor_like(None)
    False
    >>> class NotATensor: ...
    >>> is_tensor_like(NotATensor())
    False

    But, they can be made Tensor-like by implementing __torch_function__.

    >>> class TensorLike:
    ...     @classmethod
    ...     def __torch_function__(cls, func, types, args, kwargs):
    ...         return -1
    >>> is_tensor_like(TensorLike())
    True
    r   )rđ  r!   r"   ri  )Úinprž   rž   rč   r   Ą  s    "r   c                    s   t   Ą fdd}|S )Nc                    sD   t | j&  | g|ąR i |€W  d    S 1 s60    Y  d S r^  )Úenable_torch_function_moderĆ  )r	  r_  rŽ  r  rž   rč   ra  Ç  s    z%_wrap_torch_function.<locals>.wrappedrb  )r  ra  rž   r  rč   Ú_wrap_torch_functionÆ  s    r   c                       s   e Zd Z fddZ  ZS )Ú_TorchFunctionMetaInitErrorInfoc                    s   t  jddd d S )NZTorchDispatchModeZtorch_dispatch)Zmode_class_nameÚ	mode_name)Úsuperr   r%  ©r   rž   rč   r   Ü  s    z(_TorchFunctionMetaInitErrorInfo.__init__)rR  r}  Ú__qualname__r   Ú__classcell__rž   rž   r€  rč   rĄ  Û  s   rĄ  c                       s    e Zd ZdZ fddZ  ZS )ÚTorchFunctionModeMetaas  
    Metaclass for :class:`TorchFunctionMode`; it does two things:

        * Adds an implicit ``inner`` kwarg to ``__init__``, to
          allow the modes to be chained together to form a stack.

        * Reenables the inner mode, so that by default PyTorch API calls
          will compositionally proceed to the next mode on the stack.

    The default behavior for the second bullet is important, as it is easy to
    accidentally write ``__torch_function__`` implementations that are not
    compositional, and the wrapping here makes the obvious code do the
    right thing (aka, this is why there is a metaclass).
    c                    sF   d|v rt |d t |d< d|v r4t|d |d< t  | |||ĄS )Nr   r   )r   rĄ  r   rŁ  r   )ÚmetaclsrH  ÚbasesÚdctr€  rž   rč   r   ï  s
    zTorchFunctionModeMeta.__new__)rR  r}  r„  Ú__doc__r   rŠ  rž   rž   r€  rč   r§  à  s   r§  c                   @   s8   e Zd ZU dZd ed< dd ZdddZed	d
 ZdS )ÚTorchFunctionModea'  
    A ``TorchFunctionMode`` allows you to override the meaning of all
    ``__torch_function__`` overrideable functions within a dynamic scope,
    without having to actually create a tensor subclass or manually
    monkey-patch functions in the PyTorch API.  Some common situations
    where you should use a mode:

        * You want to override the meaning of factory functions, or other
          functions that do not otherwise take a tensor as an argument
          (these cannot be overridden with tensor subclasses).

        * You want to override the behavior of all functions without needing
          to wrap your inputs in tensor subclasses; e.g., if you are just
          interested in logging intermediate computations.

        * You want to control the order of execution of various tensor
          subclasses explicitly, rather than implicitly via the return of
          ``NotImplemented``.

    Independent subclasses of :class:`TorchFunctionMode` are compositional:
    modes can be pushed onto a stack with :func:`push_torch_function_mode`.
    When you call functions in the PyTorch API inside your
    ``__torch_function__`` implementation, by default, they will forward on to
    the next mode on the mode stack.  If you want recursively call back into
    your current ``__torch_function__`` implementation, either explicitly
    invoke ``self.__torch_function__(...)``, or use the context manager
    ``enable_torch_function_mode(self, replace=self.inner)`` to make PyTorch
    API self-referential (beware of infinite loops, in this case!)
    rĆ  c                 C   s   d S r^  rž   r%  rž   rž   rč   r     s    zTorchFunctionMode.__init__rž   Nc                 C   s
   t  d S r^  )ÚNotImplementedError©r	  r[  r  r_  rŽ  rž   rž   rč   r     s    z$TorchFunctionMode.__torch_function__c                 O   s   t tj| g|ąR i |€S r^  )Úpush_torch_function_moderc  Úpartial)Úclsr_  rŽ  rž   rž   rč   Úpush  s    zTorchFunctionMode.push)rž   N)	rR  r}  r„  r«  Ú__annotations__r   r   ÚclassmethodrČ  rž   rž   rž   rč   rŹ  ś  s   

rŹ  )Ú	metaclassc                   @   s   e Zd ZdddZdS )ÚBaseTorchFunctionModerž   Nc                 C   s   |d u ri }||i |€S r^  rž   rź  rž   rž   rč   r   $  s    z(BaseTorchFunctionMode.__torch_function__)rž   N)rR  r}  r„  r   rž   rž   rž   rč   r¶  #  s   r¶  c                  c   s0   t  } td  zd V  W t|  n
t|  0 d S r^  )r   r   )Úoldrž   rž   rč   rw  -  s
    rw  c                       s,   e Zd Z fddZdd Zdd Z  ZS )Ú_TorchFunctionModeInfoc                    s   t  jdttd d S )NZtorch_function)rą  Z
mode_classZbase_mode_class)rŁ  r   rŹ  r¶  r%  r€  rž   rč   r   8  s    
ÿz_TorchFunctionModeInfo.__init__c                 C   s   t  S r^  )r   r%  rž   rž   rč   Úget_mode<  s    z_TorchFunctionModeInfo.get_modec                 C   s   t |S r^  )r   )r	  rP  rž   rž   rč   Úset_mode?  s    z_TorchFunctionModeInfo.set_mode)rR  r}  r„  r   rč  rș  rŠ  rž   rž   r€  rč   rž  7  s   rž  F©ÚreplaceÚignore_preexistingc                C   s   t | t ||dS )a^  
    Context manager that sets the current :class:`TorchFunctionMode`; see the
    class for more information on what modes are.  This function is
    non-compositional; if there is already an existing mode, it will raise an
    error; prefer using :func:`push_torch_function_mode` if your
    ``__torch_function__`` implementation can defer to an inner mode.

    This function is safe to use inside a ``__torch_function__`` mode handler,
    as the mode is guaranteed to be disabled in this context.  You can use
    this context manager to reinstate the mode so that calls to overridable
    APIs recursively call back into your mode handler (this can easily cause
    infinite loops, so use with care!)

    Args:
        mode (:class:`TorchFunctionMode`, Tensor-like class or None): the
            mode to set as current mode.  If you pass a Tensor-like class,
            it will be treated as a non-compositional mode with no state,
            which is convenient if you have an existing tensor subclass
            that you'd like to apply globally in a quick and dirty way.
            Passing None will disable the current mode.
        replace (:class:`TorchFunctionMode` or Tensor-like class): the
            mode to replace.  You can use this argument to change the mode in
            a situation where you know what the current mode is (and you are
            intentionally overwriting it.)  If you don't know what the current
            mode is, use ``ignore_preexisting`` instead.
        ignore_preexisting (bool): if True, ignore any preexisting mode
            and overwrite it with the passed mode.
    r»  )r   rž  )rP  rŒ  rœ  rž   rž   rč   r  C  s    r  c                 C   s   t | t S )a  
    Context manager that pushes a :class:`TorchFunctionMode` onto the current
    mode stack; see the class for more information on what modes are.  Stacked
    modes can delegate to each other by invoking the ``__torch_function__``
    method for the ``inner`` mode.

    Args:
        ctor: a function that when invoked as ``ctor(inner=...)`` produces
            a :class:`TorchFunctionMode`.  If your :class:`TorchFunctionMode`
            has no ``__init__`` implementation, you can simply pass the class
            itself (e.g., ``push_torch_function_mode(MyMode)``); otherwise,
            use ``functools.partial`` to partially apply the constructor with all
            non-inner arguments (e.g.,
            ``push_torch_function_mode(partial(MyMode, arg))``)
    )r   rž  )Zctorrž   rž   rč   rŻ  c  s    rŻ  c                   @   s(   e Zd Zdd ZeeeddddZdS )r   c                 C   s   t j Ą | _d S r^  )r!   rf  Z_RestorePythonTLSSnapshotÚ_raii_guardr%  rž   rž   rč   Ú	__enter__w  s    z#enable_reentrant_dispatch.__enter__N)Úexc_typeÚ	exc_valueÚ	tracebackr    c                 C   s   | ` d S r^  )rŸ  )r	  rÀ  rÁ  rÂ  rž   rž   rč   Ú__exit__z  s    z"enable_reentrant_dispatch.__exit__)rR  r}  r„  rż  r   rĂ  rž   rž   rž   rč   r   v  s   r   )>r«  r  r  rc  r  ry  Útypingr   r   r   r   r   r   r   r	   r
   Ú
contextlibr!   Útorch._Cr   r   r   r   r   r   Ztorch.utils._mode_utilsr   r   r   r   r   r  Ú	lru_cacher   rœ   r   r   rq  r   r   rh   ri   r  r  r   r   r  r  r   r   r   rĄ  rđ  r§  rŹ  r¶  Úcontextmanagerrw  rž  r  rŻ  r   rž   rž   rž   rč   Ú<module>   s~   ,  i        $C
ÿNțțț,K%,
	