Ë
    P/æjcQ  ã                   óV  — U d dl Z d dlZd dlZd dlZd dlZd dlZd dlZd dlmZmZm	Z	m
Z
mZmZmZmZmZ d dlmZ ddlmZ d dlmZmZ erddlmZ g d¢Z ed	¬
«       G d„ de«      «       Zi Ze	ee
ej8                     f   ed<   d„ Z e«       ee j>                  <    G d„ d«      Z e jB                  e jD                  e jF                  ejH                  e jJ                  jL                  ejN                  e jP                   e «        e)d«      e jT                   ejV                  d«      dœZ, e-e«      D ]  Z. e/ee.«      e,e.<   Œ dddefd„Z0de jb                  jd                  dej8                  fd„Z3i Z4e	ee5e5f   ej8                  f   ed<   de jb                  jd                  dej8                  fd„Z6 ed	¬
«      deded   de	e5df   fd „«       Z7 ed	¬
«      d1d!ed"e8fd#„«       Z9 ed	¬
«      d$„ «       Z: ed	¬
«      d%ed&efd'„«       Z; ed	¬
«      	 	 	 d2dedee   dee	e5ef      d(eee      d)ee	e5ef      d*e8dee   fd+„«       Z< ed	¬
«      	 	 d3d,e jz                  j|                  de5dee   dee	e5ef      d*e8dee   fd-„«       Z?d.ej8                  deed/f   de	e5ef   d*e8dee   f
d0„Z@y)4é    N)	ÚAnyÚCallableÚDictÚListÚOptionalÚTupleÚ
NamedTupleÚcastÚTYPE_CHECKING)Úboolean_dispatchedé   )Úcompatibility)ÚOpOverloadPacketÚ
OpOverload)ÚArgument)ÚArgsKwargsPairÚcheck_for_mutable_operationÚget_signature_for_torch_opÚcreate_type_hintÚtype_matchesÚnormalize_functionÚnormalize_moduleF)Úis_backward_compatiblec                   ó:   — e Zd ZU dZeedf   ed<   eeef   ed<   y)r   z<
    Simple named tuple for wrapping args/kwargs pairs.
    .ÚargsÚkwargsN)	Ú__name__Ú
__module__Ú__qualname__Ú__doc__r   r   Ú__annotations__r   Ústr© ó    ú\/root/repos/pocs/video-evals/.venv/lib/python3.12/site-packages/torch/fx/operator_schemas.pyr   r      s%   … ñð ��S�‰/ÓØ��c�‰NÔr$   r   Ú_manual_overridesc                  ó´   — g } d„ }| j                  t        j                  |«      «       dt        fd„}| j                  t        j                  |«      «       | S )Nc                  ó   — y ©Nr#   )Úselfs    r%   Únonzeroz!_nonzero_schemas.<locals>.nonzero!   ó   € Ør$   Úas_tuplec                 ó   — y r)   r#   )r*   r-   s     r%   r+   z!_nonzero_schemas.<locals>.nonzero%   r,   r$   )ÚappendÚinspectÚ	signatureÚbool)Ú
signaturesr+   s     r%   Ú_nonzero_schemasr4      sP   € Ø€Jòà×Ñ”g×'Ñ'¨Ó0Ô1ð¤Dó à×Ñ”g×'Ñ'¨Ó0Ô1àÐr$   c                   ó   — e Zd Zd„ Zy)Ú_FakeGlobalNamespacec                 ó.   — |dk(  rt         S t        d«      ‚)NÚtorchz!Expected a torch namespace lookup)r8   ÚRuntimeError)r*   Únames     r%   Ú__getattr__z _FakeGlobalNamespace.__getattr__.   s   € Ø�7Š?ÜˆLÜÐ>Ó?Ð?r$   N)r   r   r   r;   r#   r$   r%   r6   r6   -   s   „ ó@r$   r6   Út)ÚTensorÚDeviceÚLayoutÚnumberÚFutureÚAnyEnumTypeÚQSchemeÚ	__torch__ÚNoneTypeÚStorager<   Úts_typeztorch._C.JitTypeÚreturnc                 ó6   — t        | j                  t        «      S )zç
    Convert a TorchScript type to a Python type (including subtypes) via
    eval'ing the annotation_str. _type_eval_globals sets up expressions
    like "List" and "Future" to map to actual types (typing.List and jit.Future)
    )ÚevalÚannotation_strÚ_type_eval_globals)rG   s    r%   Ú _torchscript_type_to_python_typerM   <   s   € ô �×&Ñ&Ô(:Ó;Ð;r$   Ú	ts_schemac           	      óh  — ddl m} g }| j                  D �]#  }t        |j                  «      }|j                  «       r|j                  n|j                  }|j                  dk7  r|j                  nd}|j                  r|j                  n|j                  }|dk(  r‚||j                  k(  sJ ‚|j                  }t        |«      D ]W  \  }}	|	j                  |j                  k(  sJ ‚ ||	j                  |j                  |	j                  |	j                   ¬«      ||<   ŒY |j#                   |||||¬«      «       �Œ& | j$                  D �
cg c]  }
t        |
j                  «      ‘Œ }}
t'        |«      dk(  rd }nt'        |«      dk(  r|d   }nt)        |«      }t        j*                  ||¬«      S c c}
w )	Nr   )Ú	Parameterr*   ÚinputÚfrom)r:   ÚkindÚdefaultÚ
annotationr   )Úreturn_annotation)r0   rP   Ú	argumentsrM   ÚtypeÚhas_default_valueÚdefault_valueÚemptyr:   Ú
kwarg_onlyÚKEYWORD_ONLYÚPOSITIONAL_OR_KEYWORDÚPOSITIONAL_ONLYÚ	enumeraterS   rT   rU   r/   ÚreturnsÚlenÚtupleÚ	Signature)rN   rP   Ú
parametersÚargÚarg_typerT   r:   rS   ÚidxÚpÚretÚreturn_typesÚreturn_types                r%   Ú%_torchscript_schema_to_signature_implrm   D   s›  € Ý!Ø#%€JØ×"Ñ"ó aˆÜ3°C·H±HÓ=ˆØ'*×'<Ñ'<Ô'>�#×#Ò#ÀIÇOÁOˆð Ÿ8™8 vÒ-ˆs�xŠx°7ˆØ),¯ªˆy×%Ò%¸Y×=\Ñ=\ˆà�6Š>Ø˜9×:Ñ:Ò:Ð:Ð:ð ×,Ñ,ˆDä# JÓ/ò E‘��QØ—v‘v ×!@Ñ!@Ò@Ð@Ð@Ù"+°·±¸i×>WÑ>WÐab×ajÑajÐwx÷  xDñ  xDô  #E�
˜3’ðEð 	×Ñ™)¨°DÀ'ÐV^Ô_Ö`ð)að* KT×J[ÑJ[Ö\À3Ô4°S·X±XÕ>Ð\€LÐ\Ü
ˆ<Ó˜AÒØ‰Ü	ˆ\Ó	˜aÒ	Ø" 1‘o‰ä˜LÓ)ˆä×Ñ˜Z¸;ÔGÐGùò ]s   Å
F/Ú_SCHEMA_TO_SIGNATURE_CACHEc                 ó�   — | j                   | j                  f}t        j                  |«      }|�|S t	        | «      }|t        |<   |S r)   )r:   Úoverload_namern   Úgetrm   )rN   Ú	cache_keyÚ	cache_valÚress       r%   Ú _torchscript_schema_to_signatureru   h   sL   € à—‘ 	× 7Ñ 7Ð7€IÜ*×.Ñ.¨yÓ9€IØÐØÐä
/°	Ó
:€CØ,/Ô˜yÑ)Ø€Jr$   Útargetr   )r   .r   r   c                 ó6  — t        | d¬«      \  }}|rq|rng }t        ||«      D ]+  \  }}	  |j                  |i |¤Ž |j                  ||f«       Œ- d„ }	t        |«      dk(  ry t        |«      dk(  r|d   \  }
} |	|«       y y y y # t        $ r
}Y d }~Œpd }~ww xY w)NT)Úreturn_schemasc                 ó:   — | j                   rt        d| › d�«      ‚y )Nz!Tried to trace mutable operation z|. FX only supports functional code, so operations that mutate operands in-place (e.g. via `out` arguments) are not supported)Ú
is_mutabler9   )Úschemas    r%   Úthrow_if_mutablez5check_for_mutable_operation.<locals>.throw_if_mutable„   s/   € Ø× Ò Ü"Ð%FÀvÀhð O7ð $8ó 9ð 9ð !r$   r   r   )r   ÚzipÚbindr/   Ú	TypeErrorrb   )rv   r   r   r3   ÚschemasÚmatched_schemasÚcandidate_signaturer{   Úer|   Ú_Úschema_to_checks               r%   r   r   s   sÆ   € ä4°VÈDÔQÑ€J�á‘gØˆô
 ,/¨z¸7Ó+Cò 	Ñ'Ð ðØ(Ð#×(Ñ(¨$Ð9°&Ò9Ø×&Ñ&Ð(;¸VÐ'DÕEð	ò	9ô ˆÓ 1Ò$àÜ�Ó! QÒ&à!0°Ñ!3ÑˆAˆÙ˜_Õ-ð ð; €zøô ò Üûðús   ª%BÂ	BÂBÚoprx   c                 óô  — t        | t        «      r| j                  g}n±t        | t        «      r2| j	                  «       D �cg c]  }t        | |«      j                  ‘Œ }}not        j                  | «      }|r|r|dfS dS t        j                  j                  j                  | «      }|€|rdS dS t        j                  j                  |«      }|D �cg c]  }t        |«      ‘Œ }}|r||fS |S c c}w c c}w )a„  
    Given an operator on the `torch` namespace, return a list of `inspect.Signature`
    objects corresponding to the overloads of that op.. May return `None` if a signature
    could not be retrieved.

    Args:
        op (Callable): An operator on the `torch` namespace to look up a signature for

    Returns:
        Optional[List[inspect.Signature]]: A list of signatures for the overloads of this
            operator, or None if the operator signatures could not be retrieved. If
            return_schemas=True, returns a tuple containing the optional Python signatures
            and the optional TorchScript Function signature
    N)NN)Ú
isinstancer   Ú_schemar   Ú	overloadsÚgetattrr&   rq   r8   ÚjitÚ	_builtinsÚ_find_builtinÚ_CÚ_jit_get_schemas_for_operatorru   )r†   rx   r€   ÚoverloadÚoverrideÚaten_fnr{   r3   s           r%   r   r   –   sæ   € ô  �"”jÔ!Ø—:‘:�,‰Ü	�BÔ(Ô	)ØACÇÁÃÖP°X”7˜2˜xÓ(×0Ó0ÐPˆÑPä$×(Ñ(¨Ó,ˆÙÙ'5�H˜dÐ#Ð?¸4Ð?ä—)‘)×%Ñ%×3Ñ3°BÓ7ˆàˆ?Ù#1�<Ð;°tÐ;Ü—(‘(×8Ñ8¸ÓAˆàIPÖQ¸vÔ2°6Õ:ÐQ€JÐQÙ$2ˆJ˜Ð ÐB¸
ÐBùò Qùò Rs   ÁC0ÃC5c                 óp  — 	 t        | t        t        f«      rnt        | t        «      rd„ }nd„ }t        | «      dk(  r |t        «      S | d   }| D ]+  }t        ||«      rŒt        ||«      r|}Œ |t        «      c S   ||«      S 	 | S # t        $ r#}t        j                  d| › �«       Y d}~| S d}~ww xY w)aË  
    Produces a type hint for the given argument.

    The :func:`create_type_hint` looks for a type hint compatible with the input argument `x`.

    If `x` is a `list` or `tuple`, it looks for an object in the list whose type is a superclass
    of the rest, and uses that as `base_type` for the `List` or `Tuple` to be returned.
    If no such object is found, it defaults to `List[Any]`.

    If `x` is neither a `list` nor a `tuple`, it returns `x`.
    c                 ó   — t         |    S r)   )r   ©Úxs    r%   Úret_typez"create_type_hint.<locals>.ret_typeÉ   s   € Ü ™7�Nr$   c                 ó   — t         | df   S )N.)r   r–   s    r%   r˜   z"create_type_hint.<locals>.ret_typeÌ   s   € Ü   C ™=Ð(r$   r   z@We were not able to successfully create type hint from the type N)	rˆ   Úlistrc   rb   r   Ú
issubclassÚ	ExceptionÚwarningsÚwarn)r—   r˜   Ú	base_typer<   rƒ   s        r%   r   r   ¸   sÈ   € ð^Ü�aœ$¤˜Ô'ä˜!œTÔ"ó#ò)ä�1‹v˜Š{Ù¤“}Ð$Ø˜!™ˆIØò )�Ü˜a Ô+ØÜ 	¨1Ô-Ø !‘Iá#¤C›=Ò(ð)ñ ˜IÓ&Ð&ð% (ð, €Høô ò ^ä�‰ÐXÐYZÐX[Ð\×]Ð]Ø€Hûð^ús$   ‚AB	 Á	3B	 Á=B	 Â		B5ÂB0Â0B5Úsignature_typeÚargument_typec                 óÚ  ‡‡— t        | d| «      }| ‰u ry|t        j                  u r%| ‰k7  r | j                  }t	        ˆfd„|D «       «      S | t
        t           u r	‰t        u ryt        | dd «      t        t
        hv r}| j                  d   Št        j                  ‰«      st        j                  d| › d�«       yt        ‰dd «      t        t
        hv rt        ‰j                  d   ‰«      S ˆfd„} |‰«      S | t        u r‰t        j                  u ry| t        j                   u r‰t        t"        hv ryt        j                  ‰«      r!t        j                  | «      rt        ‰| «      S y)	NÚ
__origin__Tc              3   ó6   •K  — | ]  }t        |‰«      –— Œ y ­wr)   )r   )Ú.0Úcr¡   s     €r%   ú	<genexpr>ztype_matches.<locals>.<genexpr>é   s   øè ø€ ÒI°a”<  =×1ÑIùs   ƒr   z.Does not support nested parametric types, got z. Please file a bug.Fc                 ó˜   •— t        | dd «      t        t        hvry| j                  }| j                  dk(  ryt	        ˆfd„|D «       «      S )Nr£   F)r#   Tc              3   óJ   •K  — | ]  }|t         u xs t        |‰«      –— Œ y ­wr)   )ÚEllipsisr›   )r¥   r¦   Úsig_el_types     €r%   r§   z=type_matches.<locals>.is_homogeneous_tuple.<locals>.<genexpr>þ   s$   øè ø€ ÒXÈ˜œX˜ÒD¬*°Q¸Ó*DÓDÑXùs   ƒ #)r‹   rc   r   Ú__args__Úall)r<   Ú	containedr«   s     €r%   Úis_homogeneous_tuplez*type_matches.<locals>.is_homogeneous_tupleø   sD   ø€ Ü�q˜,¨Ó-´e¼U°^ÑCØØŸ
™
ˆIØ�z‰z˜UÒ"ØÜÓXÈiÔXÓXÐXr$   )r‹   ÚtypingÚUnionr¬   Úanyr   Úintrš   r0   Úisclassr�   rž   r›   r8   ÚdtypeÚnumbersÚNumberÚfloat)r    r¡   Úsig_origin_typeÚsig_containedr¯   r«   s    `   @r%   r   r   Þ   sK  ù€ ä˜n¨l¸NÓK€Oà˜Ñ&Øð œ&Ÿ,™,Ñ&¨>¸]Ò+JØ&×/Ñ/ˆÜÓI¸=ÔIÓIÐIàœœc™Ñ" }¼Ñ';àäˆ~˜|¨TÓ2´t¼T°lÑBØ$×-Ñ-¨aÑ0ˆÜ�‰˜{Ô+Ü�M‰MØ@ÀÐ@PÐPdÐeôgàÜ�= ,°Ó5¼$Ä¸ÑEÜ˜m×4Ñ4°QÑ7¸ÓEÐEô	Yñ $ MÓ2Ð2ð œÑ ´%·+±+Ñ!=ØàœŸ™Ñ'¨M¼cÄ5¸\Ñ,IØÜ‡��}Ô%¬'¯/©/¸.Ô*IÜ˜-¨Ó8Ð8àr$   Ú	arg_typesÚkwarg_typesÚnormalize_to_only_use_kwargsc                 óì  — |€i }d}t        | t        j                  «      sÌt        | t        t        f«      s¶| }| t
        v rgt        | t        «      rJ ‚t
        |    }|d   |d   }
}	t        j                  |	«      j                  t        j                  |
«      j                  k7  ry|	}t        |«      sJ ‚t        j                  t        j                  |«      «      }t        ||||«      }|S t        | «      sJ ‚t        | «      }g }|�r;|D ]&  }	  |j                  |i |¤Ž |j                  |«       Œ( t#        |«      dk(  r	 |S t#        |«      dk(  rt        |d   |||«      }|S |€|�ž|r|nt%        t&        t(           d«      }|r|ni }|D ]v  }d}	  |j                  |i |¤Ž}|j*                  j-                  «       D ].  \  }}|j                  |   }|xr t/        |j0                  |«      }Œ0 	 |sŒgt        ||||«      } |S  |S d	j3                  d
„ |D «       «      }t5        dt7        j8                  | «      › d|› �«      ‚|S # t         $ r}Y d}~�ŒJd}~ww xY w# t         $ r}d}Y d}~Œ|d}~ww xY w)að  
    Returns normalized arguments to PyTorch functions. This means that
    `args/kwargs` will be matched up to the functional's
    signature and return exclusively kwargs in positional order if
    `normalize_to_only_use_kwargs` is True.
    Also populates default values. Does not support positional-only
    parameters or varargs parameters (*args, **kwargs). Does not support modules.

    May require `arg_types` and `kwarg_types` in order to disambiguate overloads.

    Args:
        target (Callable): Function that we are normalizing
        args (Tuple[Any]): Tuple of args to the function
        kwargs (Optional[Dict[str, Any]]): Dict of kwargs to the function
        arg_types (Optional[Tuple[Any]]): Tuple of arg types for the args
        kwarg_types (Optional[Dict[str, Any]]): Dict of arg types for the kwargs
        normalize_to_only_use_kwargs (bool): Whether to normalize to only use kwargs.

    Returns:

        Returns normalized_args_and_kwargs, or `None` if not successful.
    NÚif_trueÚif_falser   r   r#   TFú
c              3   ó2   K  — | ]  }t        |«      –— Œ y ­wr)   )r"   )r¥   r{   s     r%   r§   z%normalize_function.<locals>.<genexpr>i  s   è ø€ Ò0[À´°V·Ñ0[ùs   ‚z Tried to normalize arguments to zy but the schema match was ambiguous! Please provide argument types to the normalize_arguments() call. Available schemas:
)rˆ   ÚtypesÚBuiltinFunctionTyper   r   r   r"   r0   r1   re   ÚcallableÚunwrapÚ&_args_kwargs_to_normalized_args_kwargsr   r~   r/   r   rb   r
   r   r   rW   Úitemsr   rU   Újoinr9   r8   Útypename)rv   r   r   r»   r¼   r½   Únew_args_and_kwargsÚtarget_for_analysisÚ
dispatchedr¿   rÀ   ÚsigÚtorch_op_schemasr�   r‚   rƒ   Úsig_matchesÚbound_typesÚarg_namerg   ÚparamÚschema_printoutss                         r%   r   r     sñ  € ð6 €~ØˆØÐÜ�fœe×7Ñ7Ô8Ü�6Ô,¬jÐ9Ô:à$ÐØÔ'Ñ'ô
 " &¬#Ô.Ð.Ð.Ü+¨FÑ3ˆJØ *¨9Ñ 5°zÀ*Ñ7M�XˆGÜ× Ñ  Ó)×4Ñ4¼×8IÑ8IÈ(Ó8S×8^Ñ8^Ò^ØØ")ÐäÐ+Ô,Ð,Ð,Ü×Ñ¤§¡Ð/BÓ CÓDˆÜDÀSÈ$ÐPVÐXtÓuÐð` Ðô] ˜ÔÐÐÜ5°fÓ=ÐØˆÚð (8ò Ð#ðØ,Ð'×,Ñ,¨dÐ=°fÒ=Ø#×*Ñ*Ð+>Õ?ðô �?Ó# qÒ(àð< Ðô; �_Ó%¨Ò*ä&LÈ_Ð]^ÑM_ÐaeÐgmØMió'kÐ#ð6 Ðð1 Ð(¨KÐ,CÙ-6¡	¼DÄÄsÁÈRÓ<P�IÙ1<¡+À"�KØ/?ò "Ð+Ø&*˜ð0Ø*BÐ*=×*BÑ*BÀIÐ*]ÐQ\Ñ*]˜KØ6A×6KÑ6K×6QÑ6QÓ6Sò gÑ 2 ¨(Ø(;×(FÑ(FÀxÑ(P Ø.9Ò.f¼lÈ5×K[ÑK[Ð]eÓ>f¡ñgò
 'Ü2XÐYlÐnrÐtzØYuó3wÐ/à!ð Ðð+"ð* Ðð (,§y¡yÑ0[È?Ô0[Ó'[Ð$Ü&Ð)IÌ%Ï.É.ÐY_ÓJ`ÐIað b^à^nÐ]oð(qó rð rð ÐøôG !ò Ýûðûô*  )ò 0Ø*/�Kûð0ús+   Ä#IÆAIÉ	IÉIÉ	I3É'I.É.I3Úrootc                 óž  — 	 | j                  |«      }t        |j                  d«      r„|j                  j
                  }t        t        j                  |d«      |j                  k(  rFt        j                  t        j                  |j                  «      «      }|€i }t        ||||«      }	|	S y# t        $ r}t        d|› d�«      |‚d}~ww xY w)a(  
    Returns normalized arguments to PyTorch modules. This means that
    `args/kwargs` will be matched up to the functional's
    signature and return exclusively kwargs in positional order if
    `normalize_to_only_use_kwargs` is True.
    Also populates default values. Does not support positional-only
    parameters or varargs parameters (*args, **kwargs).

    Args:
        root (nn.Module): root module upon which we query modules
        target (Callable): Function that we are normalizing
        args (Tuple[Any]): Tuple of args to the function
        kwargs (Optional[Dict[str, Any]]): Dict of kwargs to the function
        normalize_to_only_use_kwargs (bool): Whether to normalize to only use kwargs.

    Returns:

        Returns normalized_args_and_kwargs, or `None` if not successful.
    z$Tried to normalize node with target z# but root did not have that target!Nr   )Úget_submoduleÚAttributeErrorr9   ÚhasattrÚ	__class__r   r‹   r8   Únnr0   r1   rÆ   ÚforwardrÇ   )
rÕ   rv   r   r   r½   Úsubmodrƒ   Ú	classnamerÎ   rË   s
             r%   r   r   p  sÏ   € ð.8Ø×#Ñ# FÓ+ˆô ˆv×Ñ Ô,Ø×$Ñ$×-Ñ-ˆ	Ü”5—8‘8˜Y¨Ó-°×1AÑ1AÒAÜ×#Ñ#¤G§N¡N°6·>±>Ó$BÓCˆCØˆ~Ø�Ü"HÈÈdÐTZØIeó#gÐà&Ð&Øøô ò 8ÜÐAÀ&Àð J/ð 0ó 1Ø67ð	8ûð8ús   ‚B. Â.	CÂ7CÃCrÎ   .c                 óH  ‡	— t         j                  j                  t         j                  j                  hŠ	t	        ˆ	fd„| j
                  j                  «       D «       «      r)t        | j
                  j                  «       «      g d¢k7  ry | j                  |i |¤Ž}|j                  «        i }g }t        | j
                  «      D ]F  \  }}|s-|t        |«      k  r|j                  |j                  |   «       Œ5|j                  |   ||<   ŒH t        t!        |«      |«      S )a…  
    Given a call target, args, and kwargs, return the arguments normalized into
    an ArgsKwargsPair, or None if the type signature is not supported by
    this normalization.

    Args:

        sig (inspect.Signature): Signature object for the target
        args (Tuple): Arguments that appear at the callsite for `target`
        kwargs (Dict): Keyword arguments that appear at the callsite for `target`
        normalize_to_only_use_kwargs (bool): Whether to normalize to only use kwargs.

    Returns:

        Optional[ArgsKwargsPair]: Normalized args and kwargs for `target`, or `None` if
            this target is not supported.
    c              3   ó:   •K  — | ]  }|j                   ‰v–— Œ y ­wr)   )rS   )r¥   ri   Úsupported_parameter_typess     €r%   r§   z9_args_kwargs_to_normalized_args_kwargs.<locals>.<genexpr>°  s   øè ø€ Ò
T°qˆ1�6‰6Ð2Ô2Ñ
Tùs   ƒ)rQ   rR   ÚtoÚ	generatorN)r0   rP   r^   r]   r²   re   Úvaluesrš   Úkeysr~   Úapply_defaultsr`   rb   r/   rW   r   rc   )
rÎ   r   r   r½   Ú
bound_argsÚ
new_kwargsÚnew_argsÚirÓ   rá   s
            @r%   rÇ   rÇ   —  sù   ø€ ô0 	×Ñ×/Ñ/´×1BÑ1B×1OÑ1Oð!QÐä
Ó
T¸C¿N¹N×<QÑ<QÓ<SÔ
TÔTô
 �—‘×#Ñ#Ó%Ó&Ò*NÒNØà�—‘˜4Ð* 6Ñ*€JØ×ÑÔà"$€JØ€HÜ˜cŸn™nÓ-ò <‰ˆˆ5Ù+°´C¸³I²Ø�O‰O˜J×0Ñ0°Ñ7Õ8à *× 4Ñ 4°UÑ ;ˆJ�uÒð	<ô œ% ›/¨:Ó6Ð6r$   )F)NNNF)NF)Ar8   r0   r¶   rÃ   r°   Úenumr�   r   r   r   r   r   r   r	   r
   r   Útorch._jit_internalr   Ú_compatibilityr   Ú
torch._opsr   r   Únoder   Ú__all__r   r&   rd   r!   r4   r+   r6   r=   ÚdeviceÚlayoutr·   rŒ   rA   ÚEnumÚqschemerX   ÚUntypedStorageÚTypeVarrL   ÚdirÚkr‹   rM   r�   ÚFunctionSchemarm   rn   r"   ru   r   r2   r   r   r   r   rÛ   ÚModuler   rÇ   r#   r$   r%   ú<module>rû      s¶  ðä Û Û Û Û Û Û ß ^× ^Õ ^Ý 2Ý )ß 3áÝòE€ñ  eÔ,ô�Zó ó -ðð ?AÐ �D˜ 4¨×(9Ñ(9Ñ#:Ð:Ñ;Ó @òñ $4Ó#5Ð �%—-‘-Ñ  ÷@ñ @ð "'§¡¸%¿,¹,ÐSX×S_ÑS_Ø!(§¡¸E¿I¹I×<LÑ<LØ&*§i¡i¸U¿]¹]Ù#7Ó#9ÁtÈDÃzØ!&×!5Ñ!5Ø)˜6Ÿ>™>¨#Ó.ñ0Ð ñ 
ˆV‹ò /€AÙ# F¨AÓ.Ð�qÒð/ð<Ð/Að <Àcó <ð H°e·h±h×6MÑ6Mð  HÐRY×RcÑRcó  HðD IKÐ ˜T %¨¨S¨¡/°7×3DÑ3DÐ"DÑEÓ Jð	°·±×1HÑ1Hð 	ÈW×M^ÑM^ó 	ñ  eÔ,ð ¨ð  ¸%ÀÑ:Pð  Ð[_Ð`cÐeoÐ`oÑ[pò  ó -ð ñD  eÔ,ñC Hð C¸tò Có -ðCñB  eÔ,ñ#ó -ð#ñJ  eÔ,ð- #ð -°sò -ó -ð-ñ^  eÔ,ày}Ø15Ø.3ñ_Øð_Ø % c¡
ð_Ø5=¸dÀ3ÈÀ8¹nÑ5Mð_ØbjÐkpÐqtÑkuÑbvð_à˜t C¨ H™~Ñ.ð_ð (,ð_ð 9AÀÑ8Pò_ó -ð_ñB  eÔ,àbfØ.3ñ$Ø�h‰h�o‰oð$Ø'*ð$Ø27¸±*ð$ØGOÐPTÐUXÐZ]ÐU]ÑP^ÑG_ð$à'+ð$à8@ÀÑ8Pò$ó -ð$ðL,7°×1BÑ1Bð ,7È5ÐQTÐVYÐQYÉ?ð ,7Ø48¸¸c¸±Nð,7àJNð,7àS[Ð\jÑSkô,7r$   