ó
    
Þšj1  ã                  óÄ   • S SK Jr  S SKJr  S SKJrJr  S SKJr  S SK	J
r
  S SK	Jr  S SKJrJr  SSS	.SS
 jjjrS r " S S\
5      r " S S\
5      r " S S\
5      rS rg)é    )Úannotations)ÚCallable)ÚpartialÚwraps)Úcontextmanager)ÚModule)Ú
Sequential)ÚexistsÚtree_flatten_with_inverseN©Úrequires_gradc               óÔ   ^• [        U 5      (       d  [        [        TS9$ U4S jn[        U [        5      (       a'  [        U [        5      (       a  [        U5      U l        U $ U" U 5      $ )Nr   c                óJ   >• [        U4S jU R                  5        5       5      $ )Nc              3  óˆ   >#   • U  H7  n[        T5      (       a  UR                  T:X  d  M%  UR                  5       v •  M9     g 7f©N)r
   r   Únumel)Ú.0Úpr   s     €Ú£C:\Users\johnn\AppData\Local\Packages\PythonSoftwareFoundation.Python.3.13_qbz5n2kfra8p0\LocalCache\local-packages\Python313\site-packages\torch_einops_utils/nn.pyÚ	<genexpr>Ú3count_parameters.<locals>._count.<locals>.<genexpr>   s6   øé € ÐzÒ&8 ÄÀ}×@UÑ@UÐYZ×YhÑYhÐlyÑYy“9�1—7‘7—9�9Ò&8ùs
   ƒ$A«A)ÚsumÚ
parameters)Úmodelr   s    €r   Ú_countÚ count_parameters.<locals>._count   s   ø€ ÜÔz e×&6Ñ&6Ô&8ÓzÓzÐzó    )	r
   r   Úcount_parametersÚ
isinstanceÚtypeÚ
issubclassr   ÚpropertyÚnum_parameters)Úmodel_or_classr   r   s    ` r   r   r      s[   ø€ Ü�.×!Ñ!ÜÔ'¸ÑGÐGõ{ô �.¤$×'Ñ'¬J°~Äv×,NÑ,NÜ(0°Ó(8ˆÔ%ØÐá�.Ó!Ð!r   c                 ó.   • [        [        [        U 5      6 $ r   )ÚPyTorchSequentialÚfilterr
   )Úmoduless    r   r	   r	      s   € Üœf¤V¨WÓ5Ð6Ð6r   c                  ó   • \ rS rSrS rSrg)ÚIdentityé    c                ó   • U$ r   © ©ÚselfÚtÚargsÚkwargss       r   ÚforwardÚIdentity.forward!   s   € Øˆr   r-   N)Ú__name__Ú
__module__Ú__qualname__Ú__firstlineno__r3   Ú__static_attributes__r-   r   r   r*   r*       s   † õr   r*   c                  ó2   ^ • \ rS rSrSU 4S jjrS rSrU =r$ )ÚLambdaé$   c                ó.   >• [         TU ]  5         Xl        g r   ©ÚsuperÚ__init__Úfn©r/   rA   Ú	__class__s     €r   r@   ÚLambda.__init__%   ó   ø€ Ü‰ÑÔØ�r   c                ó.   • U R                   " U/UQ70 UD6$ r   ©rA   r.   s       r   r3   ÚLambda.forward)   s   € Ø�wŠw�qÐ*˜4Ò* 6Ñ*Ð*r   rG   ©rA   r   ©r5   r6   r7   r8   r@   r3   r9   Ú__classcell__©rC   s   @r   r;   r;   $   s   ø† ÷÷+ð +r   r;   c                  ó2   ^ • \ rS rSrSU 4S jjrS rSrU =r$ )ÚResidualé,   c                ó.   >• [         TU ]  5         Xl        g r   r>   rB   s     €r   r@   ÚResidual.__init__-   rE   r   c                óh   • U R                   " U/UQ70 UD6n[        U5      u  tpVnU" XQ-   /UQ75      $ r   )rA   r   )r/   Úxr1   r2   ÚoutÚfirstÚrestÚinverses           r   r3   ÚResidual.forward1   s@   € Ø�gŠg�aÐ)˜$Ò) &Ñ)ˆä";¸CÓ"@Ñˆˆ˜Ù˜™	Ð) DÑ)Ó*Ð*r   rG   rI   rJ   rL   s   @r   rN   rN   ,   s   ø† ÷÷+ð +r   rN   c                ó†   ^ • [        T [        5      (       a  [        U 4S j5       nU" 5       $ [        T 5      U 4S j5       nU$ )Nc               3  óœ   >#   • TR                   n TR                  5         S v •  TR                  U 5        g ! TR                  U 5        f = f7fr   ©ÚtrainingÚevalÚtrain)Úwas_trainingÚfn_or_modules    €r   ÚinnerÚtemp_eval.<locals>.inner;   s<   øé € à'×0Ñ0ˆLØ×ÑÔÛØ!×'Ñ'¨Õ5ø�\×'Ñ'¨Õ5üs   ƒA 6 ¤A¶A	Á	Ac                ó¢   >• U R                   nU R                  5         T" U /UQ70 UD6U R                  U5        $ ! U R                  U5        f = fr   r[   )r/   r1   r2   r_   r`   s       €r   ra   rb   C   s@   ø€ à—}‘}ˆØ�	‰	ŒÙ  Ð7¨Ò7°Ñ7Ø—‘˜LÕ)ø�—‘˜LÕ)ús	   ž; »A)r   r   r   r   )r`   ra   s   ` r   Ú	temp_evalrd   9   sI   ø€ Ü�,¤×'Ñ'Ü	ô	6ó 
ð	6ñ
 ‹wˆä
ˆ<Óô*ó ð*ð
 €Lr   r   )r   zbool | None)Ú
__future__r   Útypingr   Ú	functoolsr   r   Ú
contextlibr   Útorch.nnr   r	   r&   Ú%torch_einops_utils.torch_einops_utilsr
   r   r   r*   r;   rN   rd   r-   r   r   Ú<module>rk      sY   ðÝ "å ß $Ý %å Ý 4ç Sð"ÈD÷ "ð "ò7ô
ˆvô ô+ˆVô +ô	+ˆvô 	+ór   