+
    ˜°³j®  ã                   óø   € ^ RI Ht ^ RIHtHtHt ^ RIHt ^ RIt^ RI	H
t
Ht . ROt]! R]R7      R R	 l4       tR
 R lt]! R]]]4      t]RR R ll4       t]RR R ll4       tRR ltRR R lltRR R lltR# )é    )ÚSequence)ÚAnyÚoverloadÚTypeVar)Ú
deprecatedN)ÚGatherÚScatterzC`is_namedtuple` is deprecated, please use the python checks instead)Úcategoryc                ó0   € V ^8„  d   QhR\         R\        /# ©é   ÚobjÚreturn©r   Úbool)Úformats   "Úa/home/luca/screen-checking/.venv/lib/python3.14/site-packages/torch/nn/parallel/scatter_gather.pyÚ__annotate__r      s   € ÷ ñ ”sð œtñ ó    c                 ó   € \        V 4      # ©N)Ú_is_namedtuple©r   s   &r   Úis_namedtupler      s   € ô ˜#ÓÐr   c                ó0   € V ^8„  d   QhR\         R\        /# r   r   )r   s   "r   r   r      s   € ÷ ñ œð ¤ñ r   c                 ór   € \        V \        4      ;'       d!    \        V R 4      ;'       d    \        V R4      # )Ú_asdictÚ_fields)Ú
isinstanceÚtupleÚhasattrr   s   &r   r   r      s1   € ô 	�3œÓ×VÐV¤7¨3°	Ó#:×VÐV¼wÀsÈIÓ?Vðr   ÚTc          
      óÊ   € V ^8„  d   QhR\         P                  R\        \        \         P                  ,          ,          R\        R\
        \         P                  R3,          /# )r   ÚinputsÚtarget_gpusÚdimr   .)ÚtorchÚTensorr   ÚintÚdevicer    )r   s   "r   r   r   "   sP   € ÷ #ñ #Ü�L‰Lð#äœ#¤§¡Õ,Õ-ð#ô 
ð#ô Œ5�<‰<˜ÐÕñ	#r   c                 ó   € R # r   © ©r$   r%   r&   s   &&&r   Úscatterr.   !   s   € ñ
  #r   c          	      óž   € V ^8„  d   QhR\         R\        \        \        P                  ,          ,          R\        R\
        \         ,          /# )r   r$   r%   r&   r   )r"   r   r)   r'   r*   Úlist)r   s   "r   r   r   *   sB   € ÷ ñ Üðäœ#¤§¡Õ,Õ-ðô 
ðô 
Œ!…Wñ	r   c                 ó   € R # r   r,   r-   s   &&&r   r.   r.   )   s   € ñ
 r   c                ó@   aaa€ VVV3R lo S! V 4      pRoV#   Roi ; i)zŽSlice tensors into approximately equal chunks and distributes them across given GPUs.

Duplicates references to objects that are not tensors.
c                 óF  <€ \        V \        P                  4      '       d   \        P                  ! SR SV 4      # \        V 4      '       d3   \        \        SV 4      RR/  Uu. uF  p\        V 4      ! V!  NK  	  up# \        V \        4      '       d/   \        V 4      ^ 8”  d   \        \        \        SV 4      RR/ 4      # \        V \        4      '       d?   \        V 4      ^ 8”  d/   \        \        SV 4      RR/  Uu. uF  p\        V4      NK  	  up# \        V \        4      '       dS   \        V 4      ^ 8”  dC   \        \        SV P                  4       4      RR/  Uu. uF  p\        V 4      ! V4      NK  	  up# S Uu. uF  q0NK  	  up# u upi u upi u upi u upi )NÚstrictF)r   r'   r(   r	   Úapplyr   ÚzipÚmapÚtyper    Úlenr0   ÚdictÚitems)r   ÚargsÚiÚ_r&   Úscatter_mapr%   s   &   €€€r   r?   Úscatter.<locals>.scatter_map7   sr  ø€ Ü�cœ5Ÿ<™<×(Ò(Ü—=’= ¨d°C¸Ó=Ð=Ü˜#×Òô  ¤ [°#Ó!6ÐE¸uÒEóñ F�Dô �S”	˜4Ô áEñð ô
 �cœ5×!Ò!¤c¨#£h°¤läœœS ¨cÓ2ÐA¸5ÑAÓBÐBÜ�cœ4× Ò ¤S¨£X°¤\ä%(¬#¨k¸3Ó*?Ð%NÈÒ%NÓOÑ%N ”D˜–GÑ%NÑOÐOÜ�cœ4× Ò ¤S¨£X°¤\ô œc +¨s¯y©y«{Ó;ÐJÀEÒJóñ K�Aô �S”	˜!–áJñð ñ
 )Ó)™[˜’™[Ñ)Ð)ùò#ùò Pùòùò
 *s   Á#FÃ?FÅ!FÆ
FNr,   )r$   r%   r&   Úresr?   s   &ff @r   r.   r.   1   s*   ú€ ÷*ð8Ù˜&Ó!ˆàˆØ€Jøð ‰úó   � ™c                óV  € V ^8„  d   QhR\         \        R3,          R\        \        \        3,          R,          R\        \
        \        P                  ,          ,          R\
        R\         \         \        R3,          \         \        \        \        3,          R3,          3,          /# )r   r$   .ÚkwargsNr%   r&   r   )r    r   r:   Ústrr   r)   r'   r*   )r   s   "r   r   r   Z   s�   € ÷ <ñ <Ü”#�s�(�Oð<ä””c��N˜TÕ!ð<ô œ#¤§¡Õ,Õ-ð<ô 
ð	<ô
 Œ5”�c��?œE¤$¤s¬C x¥.°#Ð"5Õ6Ð6Õ7ñ<r   c           	     óÔ  € V '       d   \        WV4      M. pV'       d   \        WV4      M. p\        V4      \        V4      8  d<   VP                  R \        \        V4      \        V4      ,
          4       4       4       MS\        V4      \        V 4      8  d;   VP                  R \        \        V4      \        V4      ,
          4       4       4       \	        V4      \	        V4      3# )z+Scatter with support for kwargs dictionary.c              3   ó&   "  € T F  pRx € K	  	  R # 5i)Nr,   r,   ©Ú.0r>   s   & r   Ú	<genexpr>Ú!scatter_kwargs.<locals>.<genexpr>d   ó   é € ð  
ÙL�1�BÓLùó   ‚c              3   ó&   "  € T F  p/ x € K	  	  R # 5ir   r,   rH   s   & r   rJ   rK   h   rL   rM   )r.   r9   ÚextendÚranger    )r$   rD   r%   r&   Úscattered_inputsÚscattered_kwargss   &&&&  r   Úscatter_kwargsrS   Z   sÊ   € ÷ =C”w˜v°CÔ8ÈÐß<B”w˜v°CÔ8ÈÐÜ
ÐÓœsÐ#3Ó4Ô4Ø×Ññ  
ÜœcÐ"2Ó3´cÐ:JÓ6KÕKÔLó 
õ 	
ô 
ÐÓ	¤ V£Ô	,Ø×Ññ  
ÜœcÐ"2Ó3´cÐ:JÓ6KÕKÔLó 
ô 	
ô Ð!Ó"¤EÐ*:Ó$;Ð;Ð;r   c                ór   € V ^8„  d   QhR\         R\        \        P                  ,          R\        R\         /# )r   ÚoutputsÚtarget_devicer&   r   )r   r)   r'   r*   )r   s   "r   r   r   n   s1   € ÷ (ñ (”Cð (¬¬e¯l©lÕ(:ð (Äð (ÌSñ (r   c                ó@   aaa€ VVV3R lo S! V 4      pRoV#   Roi ; i)am  Gather tensors from different GPUs on a specified device.

This function is useful for gathering the results of a distributed computation.
It takes a sequence of objects, one for each GPU, and returns a single object
on the specified device.

Args:
    outputs (Any): A sequence of objects (potentially tensors) to gather.
    target_device (Union[int, torch.device]): The device to gather the tensors to.
        Use 'cpu' for CPU to avoid a deprecation warning.
    dim (int, optional): The dimension along which to gather. Default: 0.

Returns:
    Any: A gathered object (potentially tensor) on the specified device.
c           
      óV  <a a€ S ^ ,          o\        S\        P                  4      '       d   \        P                  ! SS.S O5!  # Sf   R# \        S\
        4      '       dh   \        ;QJ d    V3R lS  4       F  '       d   K   RM	  RM! V3R lS  4       4      '       g   \        R4      h\        S4      ! VV 3R lS 4       4      # \        S4      '       d.   \        S4      P                  \        S\        S RR/ 4      4      # \        S4      ! \        S\        S RR/ 4      4      # )r   Nc              3   óR   <"  € T F  p\        S4      \        V4      8H  x € K  	  R # 5ir   )r9   )rI   ÚdÚouts   & €r   rJ   Ú-gather.<locals>.gather_map.<locals>.<genexpr>†   s   øé € Ð;±7¨a”s˜3“x¤3 q£6Ö)³7ùs   ƒ$'FTz+All dicts must have the same number of keysc           	   3   ól   <"  € T F$  qS! S Uu. uF  q"V,          NK  	  up4      3x € K&  	  R # u upi 5ir   r,   )rI   ÚkrZ   Ú
gather_maprU   s   &  €€r   rJ   r\   ‰   s/   øé € ÐSÉsÈ!¡¹7Ó,C¹7°a¨q¯T¨T¹7Ñ,CÓ!DÕEËsùÒ,Cùs   ƒ4Ž/Ÿ4r4   )r   r'   r(   r   r5   r:   ÚallÚ
ValueErrorr8   r   Ú_maker7   r6   )rU   r[   r&   r_   rV   s   f@€€€r   r_   Úgather.<locals>.gather_map   sÙ   ú€ Ø�a�jˆÜ�cœ5Ÿ<™<×(Ò(Ü—<’< ¨sÐ=°WÓ=Ð=ØŠ;ÙÜ�cœ4× Ò ß“3Ô;±7Ó;—3—3’3Ô;±7Ó;×;Ò;Ü Ð!NÓOÐOä˜”9ÕSÉsÓSÓSÐSÜ˜#×Òä˜“9—?‘?¤3 z´3¸Ð3MÈÑ3MÓ#NÓOÐOä�CŒyœ˜Z¬¨gÐ)C¸dÑ)CÓDÓEÐEr   Nr,   )rU   rV   r&   rA   r_   s   &ff @r   Úgatherrd   n   s+   ú€ ÷"Fð&Ù˜Ó!ˆàˆ
Ø€Jøð ‰
úrB   )r.   rS   rd   ).)r   )Úcollections.abcr   Útypingr   r   r   Útyping_extensionsr   r'   Útorch.nn.parallel._functionsr   r	   Ú__all__ÚFutureWarningr   r   r:   r0   r    r"   r.   rS   rd   r,   r   r   Ú<module>rk      s‘   ðå $ß )Ñ )Ý (ã ß 8ò 2€ñ ØIØôôó	ðõ
ñ ˆC��t˜UÓ#€ð 
ö#ó 
ð#ð 
öó 
ðô&÷R<÷((ñ (r   