
    9idY                        U d dl Zd dlZd dlmZ d dlmZmZ d dlm	Z	 d dl
mZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZmZm Z m!Z!m"Z"m#Z#m$Z$m%Z%m&Z&m'Z'm(Z(m)Z)m*Z*m+Z+m,Z,m-Z-m.Z.m/Z/ d dl0m1Z1 d dl2m3Z3 d dl4m5Z5 d dl6Z6d d	l7m8Z8m9Z9m:Z: g d
Z; e<            a=e<e	e>e	e?f         z           e@d<   deAe	e>e	e?f         z           fdZBdeAe	e>e	e?f         z           fdZCd ZDdeAe	e>e	e?f         z           fdZE G d d          ZFd ZGd ZH ejI        d          d             ZJde	de>e?e?f         fdZKde<e?         fdZL G d d          ZMddd e?fd!ZNdS )"    N)encode)CounterOrderedDict)Callable)%APPENDAPPENDSBINFLOATBINGETBININTBININT1BININT2	BINPERSIDBINPUT
BINUNICODEBUILDbytes_typesdecode_long
EMPTY_DICT
EMPTY_LIST	EMPTY_SETEMPTY_TUPLEGLOBALLONG1LONG_BINGETLONG_BINPUTMARKNEWFALSENEWOBJNEWTRUENONEPROTOREDUCESETITEMSETITEMSSHORT_BINSTRINGSTOPTUPLETUPLE1TUPLE2TUPLE3UnpicklingError)unpack)maxsize)Any)_sparse_tensors_to_validateIMPORT_MAPPINGNAME_MAPPING)sysosposixnt_marked_safe_globals_setsafe_globalsc                 T    t                               t          |                     a d S N)r6   unionsetr7   s    P/var/www/icac/venv/lib/python3.11/site-packages/torch/_weights_only_unpickler.py_add_safe_globalsr>   Z   s$    7==c,>O>OPP    returnc                  *    t          t                    S r9   )listr6    r?   r=   _get_safe_globalsrD   _   s    ()))r?   c                  "    t                      ad S r9   )r;   r6   rC   r?   r=   _clear_safe_globalsrF   d   s    "uur?   globals_to_removec                 4    t           t          |           z
  a d S r9   )r6   r;   )rG   s    r=   _remove_safe_globalsrI   i   s      8#>O:P:PPr?   c                   H    e Zd Zdeeeeef         z           fdZd Zd Z	dS )_safe_globalsr7   c                     || _         d S r9   r<   )selfr7   s     r=   __init__z_safe_globals.__init__q   s    (r?   c                 .    t          | j                   d S r9   )r>   r7   )rM   s    r=   	__enter__z_safe_globals.__enter__t   s    $+,,,,,r?   c                 .    t          | j                   d S r9   )rI   r7   )rM   typevaluetbs       r=   __exit__z_safe_globals.__exit__w   s    T./////r?   N)
__name__
__module____qualname__rB   r   tuplestrrN   rP   rU   rC   r?   r=   rK   rK   p   s`        )T(U8S=5I*I%J ) ) ) )- - -0 0 0 0 0r?   rK   c                  t   i } t           D ]}t          |t                    r~t          |          dk    rt	          dt          |                     t          |d                   t          ur%t          dt          |d                              |\  }}|| |<   |j        |j	        }}|| | d| <   | S )N   zYExpected tuple of length 2 (global, str of callable full path), but got tuple of length:    zHExpected second item in tuple to be str of callable full path, but got: .)
r6   
isinstancerY   len
ValueErrorrR   rZ   	TypeErrorrW   rX   )rcfnamemodules       r=   _get_user_allowed_globalsrg      s    B% ' 'a 	'1vv{{ xpstupvpvxx   AaDzz$$k_cdefgdh_i_ikk   GAtBtHH<DF%&B&!!4!!""Ir?   c                     t           j        j        t           j        j        t           j        j        t           j        j        t           j        j        t           j        j        t           j        j        t           j        j	        t           j        j
        t           j        j        t           j        j        t           j        j        hS r9   )torch_utils_rebuild_parameter_rebuild_parameter_with_state_rebuild_qtensor_rebuild_tensor_rebuild_tensor_v2_rebuild_tensor_v3_rebuild_sparse_tensor_rebuild_meta_tensor_no_storage_rebuild_nested_tensor_rebuild_wrapper_subclass!_rebuild_device_tensor_from_numpy&_rebuild_device_tensor_from_cpu_tensorrC   r?   r=   _tensor_rebuild_functionsrw      sp    '2%$''+4+. 	6 	;# r?   r]   c                     t           t          t          j        j        t          j        j        t          j        t          j        t          j	        t          t          t          t          d} t          j                                        D ]}|| t!          |          <   t          j                                        D ]}|| t!          |          <   d t%          dd          D             D ]}|| t!          |          <   d t%          dd          D             D ]}|| t!          |          <   t          j        D ]}|| |j         d|j         <   t          j        D ]q}|t          j        j        t          j        j        fvr7t          j                            |j                  | |j         d|j         <   ]|| |j         d|j         <   rt          j        t          j        t          j        t          j        t          j        fD ]}|| t!          |          <   t?                      D ]}|| d|j         <   t          j         j!        | d<   | S )	N)zcollections.OrderedDictzcollections.Counterztorch.nn.parameter.Parameterztorch.serialization._get_layoutz
torch.Sizeztorch.Tensorztorch.devicez_codecs.encodezbuiltins.bytearrayzbuiltins.setzbuiltins.complexc                 >    g | ]}t          t          d |           S )uintgetattrri   .0xs     r=   
<listcomp>z(_get_allowed_globals.<locals>.<listcomp>   s(    >>>QgeZAZZ((>>>r?   r]      c                 >    g | ]}t          t          d |           S )intr{   r}   s     r=   r   z(_get_allowed_globals.<locals>.<listcomp>   s(    ===AgeY1YY''===r?   r^   ztorch._utils.z#torch._tensor._rebuild_from_type_v2)"r   r   ri   nn	Parameterserialization_get_layoutSizeTensordevicer   	bytearrayr;   complexstorage_dtype_to_storage_type_maprZ   _new_dtypesrange_tensor_classesrW   rV   _storage_classesTypedStorageUntypedStorageStorageTypeper_tensor_affineper_tensor_symmetricper_channel_affineper_channel_symmetric per_channel_affine_float_qparamsrw   _tensor_rebuild_from_type_v2)rc   ttttsqtrd   s         r=   _get_allowed_globalsr      sK    $/&(-(:+0+>+Jj '# B ]5577  3q66

]&&((  3q66

>>%1++>>>  3q66

==q!===  3q66

 # 2 2/1bm++bk++,,$ 6 6em0%-2NOOO383F3R3R4 4B"-//"+//00 46B"-//"+//00 	" #.   3r77&(( - -+,'1:''(( 160SB,-Ir?   readlinec                     |             d d                              d          } |             d d                              d          }||ft          v rt          ||f         \  }}n|t          v rt          |         }||fS )Nutf-8)decoder1   r0   )r   rf   re   s      r=   _read_global_instructionr      s    XZZ_##G,,F8::crc?!!'**D 	~%%#VTN3	>	!	!'4<r?   c                 X   t                      }| j        }| j        }i t          d         dt          d         dt
          d         dt          d         dt          d         dt          d         dt          d         dt          d         dt          d         dt          d         dt          d         dt          d         dt          d         dt           d         dt"          d         dt$          d         dt&          d         dt(          d         dt*          d         dt,          d         dt.          d         dt0          d         dt2          d         dt4          d         dt6          d         dt8          d         dt:          d         dt<          d         di}	  |d          }|st>          tA          |tB                    sJ |d         tD          d         k    r.tG          |          \  }}|$                    | d|            n|d         |v r||d                  }|r ||           n|d         tJ          d         k    rEtM          d |d                    d         }	|	tN          k    rtQ          d	           ||	           n|d         tR          d         tT          d         hv r |d          d         }	 ||	           nZ|d         tV          d         k    r |d          d          n1|d         tX          d         k    r|S tQ          d
|d                    )Nr      r]   r\   r   Tr^   <IString is too longUnsupported operand )-r;   readr   r   r"   r   r   r   r#   r$   r   r'   r(   r)   r*   r    r   r   r   r   r   r   r   r   r   r   r	   r
   r   r   r   EOFErrorr_   r   r   r   addr   r,   r-   r+   r%   r   r!   r&   )
fileglobals_in_checkpointr   r   op_to_bytes_to_readkeyrf   re   bytes_to_readstrlens
             r=   get_globals_in_pklr      sH   EE9D}Hq	1q	1 	a! 	q	1	
 	
A 	
A 	Q 	Q 	a! 	q	1 	q	1 	q	1 	Q 	Q 	
A  	A!" 	1q#$ 	1q!a!aq	1
A
AQq	1Aq	1A9 <Cd1gg 	N#{+++++q6VAY3H==LFD!%%&8&8$&8&89999V***/A7M $]###Vz!}$$D$$q''**1-F%&:;;;DLLLLV*E!H555T!WWQZFDLLLLVuQxDGGAJJJVtAw((!"AQ"A"ABBB7Cr?   c                   >    e Zd ZdddefdZd Zd ZdefdZd	 Zd
S )	Unpicklerbytesencodingr   c                `    || _         |j        | _        |j        | _        i | _        d| _        d S )Nr   )r   r   r   memoproto)rM   r   r   s      r=   rN   zUnpickler.__init__3  s-     I	$&	


r?   c           	      h   g | _         g | _        | j        j        | _        | j        }	  |d          }|st          t          |t                    sJ |d         t          d         k    rTt          | j	                  \  }}| d| }|t          v rt          d| d| d          |t                      v r)|                     t                      |                    n|t                      v r)|                     t                      |                    n|dv rt          d	          |d
v rt          d          d}||v r`||dt          |                   k    rE|t          |          d         }t          |          dk    r|d         dk    r
|dd         n||z   }t          d| d| d| d          |d         t          d         k    r| j                                        }| j                                        }|t"          j        j        u r(|                     t#          j        j        |            nn|t                                                      v s"|t                                                      v rP |j        |g|R  }	|t"          j        v rd|j        v rt1          j        |	           |                     |	           nt          d|           |d         t2          d         k    r| j                                        }| j        d         }
|
t                                                      vrS|
t                                                      vr1d|
 }t5          |
d          r|d|
j         z  }t          |           |
| }	|
t"          j        v rd|
j        v rt1          j        |	           |	| j        d<   n|d         t8          d         k    r| j                                        }| j        d         }t;          |          t"          j        u r |j        |  nut;          |          t"          j        j        u r|                     |           n>t;          |          tB          u r|j"        #                    |           nt;          |          t                                                      v s/t;          |          t                                                      v rt5          |d          r|                     |           
nd}t          |tH                    rt          |          dk    r|\  }}|r|j"        #                    |           |r+|%                                D ]\  }}tM          |||           
nt          dt;          |                     |d         tN          d         k    rr| j                                        }| j        d         }t;          |          tP          urt          dt;          |                     |                    |           	ne|d         tR          d         k    rm| *                                }| j        d         }t;          |          tP          urt          dt;          |                     |+                    |           n|d         tX          d         k    rY| j                                        | j                                        }}| -                    d           || j        d         |<   nq|d         t\          d         k    rk| *                                }| -                    d           t_          dt          |          d          D ]!}||dz            | j        d         ||         <   "n|d         t`          d         k    r9| j                             | j                   g | _        | j        j        | _        n|d         tb          d         k    r8| *                                }|                     tI          |                     nP|d         td          d         k    r| j        d         f| j        d<   n!|d         tf          d         k    r'| j        d         | j        d         fg| j        dd<   n|d         th          d         k    r3| j        d          | j        d         | j        d         fg| j        d d<   n|d         tj          d         k    r|                     d           nk|d         tl          d         k    r|                     d!           n=|d         tn          d         k    r|                     d           n|d         tp          d         k    r|                     d"           n|d         tr          d         k    r|                     g            n|d         tt          d         k    r|                     i            n|d         tv          d         k    r#|                     ty                                 nK|d         tz          d         k    r4|                     t}          d# |d$                    d                    n |d         t~          d         k    r0|                     |                     d          d                    n|d         t          d         k    r4|                     t}          d% |d                    d                    nn|d         t          d         k    r>|                     t}          d&|                     d'                    d                    n|d         t          d         k    rjt}          d( |d$                    d         }|t          k    rt          d)          t           ||          d*d+          }|                     |           n|d         t          d         k    rY |d          d         } ||          }| jF        d,k    r|G                    | jF        d-          }|                     |           n(|d         t          d         k    r| j                                        }t;          |          tH          ur5t;          |          t          urt          d.t;          |                     t;          |          tH          u rat          |          dk    rNt"          jJ        K                    |d                   d/k    r%t          d0t;          |d                              |                     | L                    |                     n|d         t          d         t          d         fv rc|d         t          d         k    r |d          nt}          d( |d$                    d         }|                     | jO        |                    n|d         t          d         t          d         fv rl|d         t          d         k    r |d          nt}          d( |d$                    d         }|dk     rt          d1          | j        d         | jO        |<   n|d         t          d         k    r? |d          d         } ||          }|                     t          |                     n|d         t          d         k    rA |d          d         | _V        | jV        dk    rt          jX        d2| jV         d3d4           nJ|d         t          d         k    r| j                                        }|S t          d5|d                    )6zRead a pickled object representation from the open file.

        Return the reconstituted object hierarchy specified in the file.
        Tr]   r   r^   z"Trying to load unsupported GLOBAL z whose module z is blocked.)z1torch.nested._internal.nested_tensor.NestedTensorz1torch.nested._internal.nested_tensor._rebuild_njtz"torch._dynamo.decorators._DimRangez\``torch.nested`` and ``torch._dynamo`` must be imported to load nested jagged tensors (NJTs))z(torch.distributed.device_mesh.DeviceMeshz2torch.distributed.tensor._dtensor_spec.DTensorSpecz1torch.distributed.tensor._dtensor_spec.TensorMetaz torch.distributed.tensor.DTensorz0torch.distributed.tensor.placement_types.Partialz2torch.distributed.tensor.placement_types.Replicatez.torch.distributed.tensor.placement_types.Shardz>``torch.distributed.tensor`` must be imported to load DTensorsbuiltinsNzUnsupported global: GLOBAL zY was not an allowed global by default. Please use `torch.serialization.add_safe_globals([z.])` or the `torch.serialization.safe_globals([zN])` context manager to allowlist this global if you trust this class/function.sparsezbCan only create new object for nn.Parameter or classes allowlisted via `add_safe_globals` but got r   z0Trying to call reduce for unrecognized function __self__z which belongs to __setstate__r\   zcCan only build Tensor, Parameter, OrderedDict or types allowlisted via `add_safe_globals`, but got z"Can only append to lists, but got zCan only extend lists, but got r#   r$   FrC   z<ir   z<Hz>dr   r   r   r   surrogatepassr   strictz1persistent_load id must be tuple or int, but got r   z4Only persistent_load of storage is allowed, but got znegative argumentzDetected pickle protocol z in the checkpoint, which was not the default pickle protocol used by `torch.load` (2). The weights_only Unpickler might not support all instructions implemented by this protocol, please file an issue for adding support if you encounter this.)
stacklevelr   )Z	metastackstackappendr   r   r_   r   r   r   r   _blocklisted_modulesr+   r   rg   r`   r   popri   r   r   values__new__r   rW   r/   r"   hasattrr   r   rR   r   set_r   r   __dict__updaterY   itemssetattrr   rB   r   pop_markextendr#   _check_set_item_targetr$   r   r   r'   r(   r)   r*   r    r   r   r   r   r   r   r;   r   r,   r   r   r	   r   r-   rZ   r%   r   r   r   r   r   _maybe_decode_asciipersistent_loadr
   r   r   r   r   ra   r   r   r!   r   warningswarnr&   )rM   r   r   rf   re   	full_pathbuiltins_nameargsclsresultfunc	error_msgstateinst	slotstatekvitemlist_objr   ir   strvalstrdatapididxndatarc   s                                r=   loadzUnpickler.load:  s   
  "
j'yt	G$q''C c;/////1v""7FF%....	111)jYjjV\jjj    4 6 666KK 4 6 6y ABBBB";"="===KK 9 ; ;I FGGGG  *v   
 
 *X   %/M%22)Y7K]9K9K7K-LLL$-c-.@.@.B.B$C	  #9~~11ilc6I6I &abbMM!.!: "
 *<i < <MV< <>G< < <   Q6!9$$z~~''jnn&&%(,,,KK 2D 9::::466==????244;;====(S[4t444Fe333CN8R8R3:6BBBKK'''')@:=@ @   Q6!9$$z~~''z"~ 4 6 6 = = ? ???$=$?$?$F$F$H$HHH R4QQ  tZ00 J!%I$-%I%II	))444t5000X5P5P/6v>>>!'
2Q58##
((z"~::-- DIu%%%$ZZ58#555%%e,,,,$ZZ;..M((////JJ";"="="D"D"F"FFFDzz%9%;%;%B%B%D%DDDt^44 4))%0000 %)	%eU33 5E

a/4,E9  8 M00777$ 4(1(9(9 4 41 'a 3 3 3 3)H;?::H H  
 Q6!9$$z~~'':b>>>--)MT(^^MM   %%%%Q71:%%:b>>>--)J$x..JJ   &&&&Q71:%%*..**DJNN,<,<A++I666$%
2q!!Q8A;&&++J777q#e**a00 < <A/4QU|DJrN58,,<Q47""%%dj111
"j/Q58##E%LL))))Q6!9$$"&*R.!2
2Q6!9$$$(JrNDJrN#C"D
233Q6!9$$$(JrNDJrNDJrN#S"T
233Q47""D!!!!Q8A;&&E""""Q71:%%D!!!!Q;q>))BQ:a=((BQ:a=((BQ9Q<''CEE""""Q6!9$$F4a11!45555Q71:%%DIIaLLO,,,,Q71:%%F4a11!45555Q8A;&&F4166q9::::Q:a=((dd1gg..q1G##)*>???TT&\\7ODDF####Q?1---a$v,,=G++%nnT]HEEGG$$$$Q9Q<''jnn&&99E))d3iis.B.B)WDQTIIWW   II&&C1+??AGG9TT)]tTWXYTZ||]]   D00556666QF1I{1~666"%a&F1I"5"5ttAwww6$Q;P;PRSTDIcN++++QF1I{1~666 #A&) 3 3TT!WWWdd1gg9N9NPQRq55$%8999#z"~	!Q58##DGGAJtAwwK--....Q58##!T!WWQZ
:??MYDJ Y Y Y $%    Q47""Z^^%%	%&ESV&E&EFFFit	Gr?   c                 r    | j         }| j                                        | _         | j         j        | _        |S r9   )r   r   r   r   )rM   r   s     r=   r   zUnpickler.pop_mark:  s/    
^''))
j'r?   opcodec           	          t          | j        d                   t          t          t          fvr-t          d| dt          | j        d                              d S )Nr   z	Can only zA for dict, collections.OrderedDict, collections.Counter, but got )rR   r   dictr   r   r+   )rM   r   s     r=   r   z Unpickler._check_set_item_target@  sn    
2k7'CCC!GF G G04TZ^0D0DG G   DCr?   c                      t          d          )Nz%unsupported persistent id encountered)r+   )rM   r   s     r=   r   zUnpickler.persistent_loadG  s    EFFFr?   N)	rV   rW   rX   rZ   rN   r   r   r   r   rC   r?   r=   r   r   2  s        07   #    }G }G }G@  S    G G G G Gr?   r   ASCIIr   r   c                H    t          | |                                          S )Nr   )r   r   )r   r   s     r=   r   r   K  s!    TH---22444r?   )O	functools
_functoolsr   _codecsr   collectionsr   r   collections.abcr   pickler   r   r	   r
   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r   r    r!   r"   r#   r$   r%   r&   r'   r(   r)   r*   r+   structr,   r2   r-   typingr.   ri   torch._utilsr/   r0   r1   r   r;   r6   rY   rZ   __annotations__rB   r>   rD   rF   rI   rK   rg   rw   	lru_cacher   r   r   r   r   rC   r?   r=   <module>r     sT  2             , , , , , , , , $ $ $ $ $ $& & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & & &N                    R R R R R R R R R R
    BE #hx})==> F F FQDE(C-4H)H$I Q Q Q Q
*453+? ?@ * * * *
% % %
QHuXs]';;<Q Q Q Q0 0 0 0 0 0 0 0$  (  . a   5 5 ! 5p	x 	E#s(O 	 	 	 	=CC =C =C =C =C@VG VG VG VG VG VG VG VGr #* 5 5 5C 5 5 5 5 5 5r?   