
    idY                     `   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j                  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!ZNy)"    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         j                  t        |             a y N)r6   unionsetr7   s    W/var/www/html/engine/venv/lib/python3.12/site-packages/torch/_weights_only_unpickler.py_add_safe_globalsr>   Z   s    7==c,>OP    returnc                       t        t              S r9   )listr6    r?   r=   _get_safe_globalsrD   _   s    ())r?   c                      t               ay r9   )r;   r6   rC   r?   r=   _clear_safe_globalsrF   d   s
    "ur?   globals_to_removec                 (    t         t        |       z
  a y r9   )r6   r;   )rG   s    r=   _remove_safe_globalsrI   i   s      8#>O:PPr?   c                   :    e Zd Zdeeeeef   z     fdZd Zd Z	y)_safe_globalsr7   c                     || _         y r9   r<   )selfr7   s     r=   __init__z_safe_globals.__init__q   s
    (r?   c                 .    t        | j                         y r9   )r>   r7   )rM   s    r=   	__enter__z_safe_globals.__enter__t   s    $++,r?   c                 .    t        | j                         y 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 )-0r?   rK   c                  @   i } t         D ]  }t        |t              r^t        |      dk7  rt	        dt        |             t        |d         t        urt        dt        |d                |\  }}|| |<   q|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1v{ opstupvowx  AaDz$^_cdefgdh_i^jk  GAtBtH<<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      s    ''22%%$$''''++44++.. 	6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                  j                         D ]  }|| t!        |      <    t        j                  j#                         D ]  }|| t!        |      <    t%        dd      D cg c]  }t'        t        d|        c}D ]  }|| t!        |      <    t%        dd      D cg c]  }t'        t        d|        c}D ]  }|| t!        |      <    t        j(                  D ]   }|| |j*                   d|j,                   <   " t        j.                  D ]  }|t        j                  j0                  t        j                  j2                  fvrFt        j
                  j5                  |j,                        | |j*                   d|j,                   <   || |j*                   d|j,                   <    t        j6                  t        j8                  t        j:                  t        j<                  t        j>                  fD ]  }|| t!        |      <    tA               D ]  }|| d|j,                   <    t        jB                  jD                  | d<   | S c c}w c c}w )	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.complexr]      uintintr^   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getattr_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xtttsqtrd   s          r=   _get_allowed_globalsr      ss    $/&(-(:(:+0+>+>+J+Jjj '#B ]]557 3q6
]]&&( 3q6
271+>QgetA3Z(> 3q6
16q!=Ages1#Y'= 3q6
 ## 2/1bmm_Abkk]+,2 $$ 6emm00%--2N2NOO383F3F3R3R4B"--"++/0 46B"--"++/06 	""  ##..  3r7 '( -+,]1::,'(-
 160S0SB,-IC ?=s   1K!/K&readlinec                      |        d d j                  d      } |        d d j                  d      }||ft        v rt        ||f   \  }}||fS |t        v r	t        |   }||fS )Nutf-8)decoder1   r0   )r   rf   re   s      r=   _read_global_instructionr      s|    Z_##G,F:cr?!!'*D 	~%#VTN3 4< 
>	!'4<r?   c                    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        |      \  }}|jI                  | d|        n|d   |v r||d      }|r ||       n|d   tJ        d   k(  r2tM        d |d            d   }	|	tN        kD  rtQ        d       ||	       nh|d   tR        d   tT        d   hv r |d      d   }	 ||	       n=|d   tV        d   k(  r |d      d    n"|d   tX        d   k(  r|S tQ        d	|d          )
Nr      r]   r\   ry   r^   <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      s   E99D}}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< 1gN#{+++q6VAY3H=LFD!%%$&89V**/A7M]#Vz!}$D$q'*1-F%&:;;LV*E!H55!WQZFLVuQxGAJVtAw((!$8Q"ABB7 r?   c                   <    e Zd ZdddefdZd Zd ZdefdZd	 Zy
)	Unpicklerbytesencodingr   c                r    || _         |j                  | _        |j                  | _        i | _        d| _        y )Nr   )r   r   r   memoproto)rM   r   r   s      r=   rN   zUnpickler.__init__3  s-     II	$&	
r?   c           	      r   g | _         g | _        | j                  j                  | _        | j                  }	  |d      }|st        t        |t              sJ |d   t        d   k(  rt        | j                        \  }}| d| }|t        v rt        d| d| d      |t               v r| j                  t               |          nk|t               v r| j                  t               |          nA|dv rt        d	      |d
v rt        d      d}||v r?||dt        |       k(  r.|t        |      d }t        |      dkD  r|d   dk(  r|dd n||z   }t        d| d| d| d      |d   t        d   k(  r| j                  j!                         }| j                  j!                         }|t"        j$                  j&                  u r-| j                  t#        j$                  j&                  |        n<|t               j)                         v s|t               j)                         v r[ |j*                  |g| }	|t"        j,                  v r#d|j.                  v rt1        j                  |	       | j                  |	       
nt        d|       |d   t2        d   k(  r| j                  j!                         }| j                  d   }
|
t               j)                         vrH|
t               j)                         vr.d|
 }t5        |
d      r|d|
j6                   z  }t        |       |
| }	|
t"        j,                  v r#d|
j.                  v rt1        j                  |	       |	| j                  d<   	n|d   t8        d   k(  r| j                  j!                         }| j                  d   }t;        |      t"        j<                  u r |j>                  |  	nUt;        |      t"        j$                  j&                  u r|jA                  |       	nt;        |      tB        u r|jD                  jG                  |       nt;        |      t               j)                         v s#t;        |      t               j)                         v rt5        |d      r|jA                  |       nd}t        |tH              rt        |      dk(  r|\  }}|r|jD                  jG                  |       |rE|jK                         D ]  \  }}tM        |||        nt        dt;        |             |d   tN        d   k(  rd| j                  j!                         }| j                  d   }t;        |      tP        urt        dt;        |             |j                  |       n|d   tR        d   k(  rZ| jU                         }| j                  d   }t;        |      tP        urt        dt;        |             |jW                  |       n+|d   tX        d   k(  rY| j                  j!                         | j                  j!                         }}| j[                  d       || j                  d   |<   n|d   t\        d   k(  rY| jU                         }| j[                  d       t_        dt        |      d      D ]  }||dz      | j                  d   ||   <    n[|d   t`        d   k(  rI| j                   j                  | j                         g | _        | j                  j                  | _        n|d   tb        d   k(  r,| jU                         }| j                  tI        |             n|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(  r<| j                  d    | j                  d   | j                  d   fg| j                  d d n|d   tj        d   k(  r| j                  d       n|d   tl        d   k(  r| j                  d!       n|d   tn        d   k(  r| j                  d       n|d   tp        d   k(  r| j                  d"       n|d   tr        d   k(  r| j                  g        nh|d   tt        d   k(  r| j                  i        nF|d   tv        d   k(  r| j                  ty                      n|d   tz        d   k(  r&| j                  t}        d# |d$            d          n|d   t~        d   k(  r%| j                  | j                  d      d          n|d   t        d   k(  r&| j                  t}        d% |d            d          n~|d   t        d   k(  r/| j                  t}        d&| j                  d'            d          n@|d   t        d   k(  rOt}        d( |d$            d   }|t        kD  rt        d)      t         ||      d*d+      }| j                  |       n|d   t        d   k(  rQ |d      d   } ||      }| j                  d,k7  r|j                  | j                  d-      }| j                  |       n|d   t        d   k(  r| j                  j!                         }t;        |      tH        ur(t;        |      t        urt        d.t;        |             t;        |      tH        u rMt        |      dkD  r?t"        j                  j                  |d         d/k7  rt        d0t;        |d                | j                  | j                  |             n|d   t        d   t        d   fv rL|d   t        d   k(  r |d      nt}        d( |d$            d   }| j                  | j                  |          n=|d   t        d   t        d   fv rY|d   t        d   k(  r |d      nt}        d( |d$            d   }|dk  rt        d1      | j                  d   | j                  |<   n|d   t        d   k(  r. |d      d   } ||      }| j                  t        |             n|d   t        d   k(  rE |d      d   | _V        | j                  dk7  rbt        j                  d2| j                   d3d4       n<|d   t        d   k(  r| j                  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>dry   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   
  "
jj''yyq'Cc;///1v"7F%hav.	11)<YK~V\U]]ij   4 66KK 4 6y AB";"==KK 9 ;I FG *v  
 *X  %/M%2)Y7K]9K-LL$-c-.@.B$C	  #9~1ilc6I &abM!.!: "
 *5i[ AMMVK X>>G[ I<<  Q6!9$zz~~'jjnn&%((,,,KK 2 2D 9:46==??24;;==(S[[4t4Fe333CNN8R3::6BKK')::=@  Q6!9$zz~~'zz"~ 4 6 = = ??$=$?$F$F$HH K4&Q  tZ0!'9$--%II	))44t5000X5P/66v>!'

2Q58#

(zz"~:- DIIu%$Z588#5#55%%e,$Z;.MM((/J";"="D"D"FFDz%9%;%B%B%DDt^4))%0 %)	%eU3E
a/4,E9  MM007$(1(9 41 'a 34 *;;?:,H 
 Q6!9$zz~~'::b>>-)<T(^<LM  %Q71:%::b>>-)9$x.9IJ  &Q71:%**..*DJJNN,<A++I6$%

2q!Q8A;&++J7q#e*a0 <A/4QU|DJJrN58,<Q47"%%djj1
"jj//Q58#E%L)Q6!9$"&**R.!2

2Q6!9$$(JJrNDJJrN#C"D

23Q6!9$$(JJrNDJJrNDJJrN#S"T

23Q47"D!Q8A;&E"Q71:%D!Q;q>)BQ:a=(BQ:a=(BQ9Q<'CE"Q6!9$F4a1!45Q71:%DIIaLO,Q71:%F4a1!45Q8A;&F416q9:Q:a=(d1g.q1G#)*>??T&\7ODF#Q?1--av,==G+%nnT]]HEGG$Q9Q<'jjnn&9E)d3is.B)KDQTI;W  I&C1++??AG9T)NtTWXYTZ|n]  D0056QF1I{1~66"%a&F1I"5tAw6$Q;PRSTDIIcN+QF1I{1~66 #A&) 3T!Wd1g9NPQRq5$%899#zz"~		!Q58#GAJAwK-.Q58#!!WQZ
::?MM3DJJ< @Y Y $% Q47"ZZ^^%	%(<SVH&EFFi r?   c                     | j                   }| j                  j                         | _         | j                   j                  | _        |S r9   )r   r   r   r   )rM   r   s     r=   r   zUnpickler.pop_mark:  s5    

^^'')
jj''r?   opcodec           	          t        | j                  d         t        t        t        fvr't        d| dt        | j                  d                y )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@  sV    

2k7'CC!F8 $004TZZ^0D/EG  Dr?   c                     t        d      )Nz%unsupported persistent id encountered)r+   )rM   r   s     r=   r   zUnpickler.persistent_loadG  s    EFFr?   N)	rV   rW   rX   rZ   rN   r   r   r   r   rC   r?   r=   r   r   2  s0    07 # }G@S Gr?   r   ASCIIr   r   c                8    t        | |      j                         S )Nr   )r   r   )r   r   s     r=   r   r   K  s    TH-22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
  BE #hx})==> FQDE(C-4H)H$I Q
*453+? ?@ *
%
QHuXs]';;<Q0 0$(. a 5 !5p	x 	E#s(O 	=CC =C@VG VGr #* 5C 5r?   