
    h              
          S SK JrJrJrJrJrJrJrJr  SSK	J
r
  SSKJr  \" S5      r\" S5      r\" S5      r\\\      r\\   r\
R$                  " S5      S	\\\   \\   4   S
\\\   \\   4   4S j5       rS\\\   \\   4   S\\   S\S
\\\   \4   4S jrS\\   S
\\\   \\   4   4S jrS\\   S\\   S
\\   4S jr  SS\\\   \\   4   S\\\      S\\\      S
S4S jjrg)    )AnyCallableListOptionalSequenceTupleTypeVarcast   )registry)ModelInItemTOutItemTItemTzwith_flatten.v2layerreturnc                 H    [        SU R                   S3[        U /[        S9$ )Nzwith_flatten())layersinit)r   nameforwardr   )r   s    V/home/james-whalen/.local/lib/python3.13/site-packages/thinc/layers/with_flatten_v2.pywith_flatten_v2r      s$     =A.dSS    modelXnestis_trainc                    ^^	 U R                   S   n[        U5      u  nm	U" XB5      u  nm[        UT	5      nS[        [           S[        [
           4UU	4S jjnXg4$ )Nr   dYnestr   c                 J   > [        U 5      u  pT" U5      n[        UT5      nU$ N)_flatten
_unflatten)r    dYflat_dXflatdXnestbackprop_layerlenss        r   backpropforward.<locals>.backprop   s*    V$	'FD)r   )r   r#   r$   NestedTr   r   )
r   r   r   r   XflatYflatYnestr+   r)   r*   s
           @@r   r   r      sf    
 5:LLOE5/KE4!%2E>ud#E) gh.?   ?r   nestedc                     / n/ nU  H.  nUR                  U5        UR                  [        U5      5        M0     [        [        [
           U5      U4$ r"   )extendappendlenr
   FlatTr   )r1   flatr*   items       r   r#   r#   )   sJ    DDDCI  ed#T))r   r7   r*   c                 L    / nU H  nUR                  U S U 5        XS  n M     U$ r"   )r4   )r7   r*   r1   ls       r   r$   r$   2   s3    Fd2AhBx  Mr   NXYc                     U R                   S   R                  Ub  [        U5      S   OS Ub7  U R                   S   R                  R                  R                  U5      5        g S 5        g )Nr   )r   
initializer#   opsxphstack)r   r;   r<   s      r   r   r   :   sY    
 
LLO-AT,-MQ%%a(?Cr   )NN)typingr   r   r   r   r   r   r	   r
   configr   r   r   r   r   r   r-   r6   r   r   boolr   intr#   r$   r    r   r   <module>rG      s   P P P  
)
:
tE{
U 
"#Twx01T
77WX../T $T!78#4457  78h&'	(*WU^ *eElDI.E(F *U5\ c wu~  %)%)!78#445 ! !" 
	r   