o
    h)                     @   s  d dl 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l*m+Z+ d dl,m-Z- d dl.m/Z/m0Z0m1Z1 d dl2Z2ej3dddd	 Z4G d
d dZ5ddde6fddZ7dS )    N)OrderedDict)%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DictList   c               
   C   s   t tjjtjjtjtjd} tjtj	tj
tjtjtjtjtjtjtjf
D ]}|| t|< q$tjD ]}|| |j d|j < q0tjD ]}|| |j d|j < qAtjjtjjtjjtjjtjjfD ]
}|| d|j < q`tjj| d< | S )N)zcollections.OrderedDictztorch.nn.parameter.Parameterztorch.serialization._get_layoutz
torch.Sizeztorch.Tensor.ztorch._utils.z#torch._tensor._rebuild_from_type_v2)r   torchnn	Parameterserialization_get_layoutSizeTensor	complex32	complex64
complex128float16float32float64int8int16int32int64str_tensor_classes
__module____name___storage_classes_utils_rebuild_parameter_rebuild_tensor_rebuild_tensor_v2_rebuild_sparse_tensor_rebuild_meta_tensor_no_storage_tensor_rebuild_from_type_v2)rcttttsf rR   S/var/www/html/ai/venv/lib/python3.10/site-packages/torch/_weights_only_unpickler.py_get_allowed_globalsD   s>   	

rT   c                   @   s8   e Zd ZdddefddZdd Zdd	 Zd
d ZdS )	UnpicklerbytesencodingrX   c                C   s    || _ |j| _|j| _i | _d S N)rX   readlinereadmemo)selffilerX   rR   rR   rS   __init__r   s   
zUnpickler.__init__c                 C   s6  g | _ g | _| jj| _| j}| j}	 |d}|stt|ts!J |d td krZ| dd 	d}| dd 	d}| d| }|t
 v rS| t
 |  ntd| |d td kr| j }| j }|tjjurytd	| | tjj|  n|d td kr| j }| jd }	|	t
  vrtd
|	 |	| | jd< nm|d td kr| j }
| jd }t|tju r|j|
  nMt|tjju r||
 n>t|tu r|j|
 n0tdt| |d td kr| j }| jd }t|turtdt| || n|d td krF|  }| jd }t|tur?tdt| || n|d t d krc| j | j }}|| jd |< n|d t!d kr|  }t"dt#|dD ]}||d  | jd || < qxn|d t$d kr| j | j g | _| jj| _nu|d t%d kr|  }| t&| n_|d t'd kr| jd f| jd< nK|d t(d kr| jd | jd fg| jdd< n0|d t)d kr	| jd | jd | jd fg| jdd< n|d t*d kr| d n|d t+d kr)| d n|d t,d kr9| d n|d t-d krI| d n|d t.d krY| g  n|d t/d kri| i  n|d t0d krz| t1  n|d t2d kr| t3d|dd  n|d t4d kr| | dd  nt|d t5d kr| t3d|dd  n]|d t6d kr| t3d| dd  nE|d t7d krt3d|dd }|t8krtdt9||dd}| | n|d t:d kr%|dd }||}| j;dkr|	| j;d}| | n|d t<d kru| j }t|t&urJt|t=u rJtdt| t|t&u rlt#|dkrltj>?|d dkrltd|d  | | @| n|d tAd tBd fv r|d tAd kr|dnt3d|dd }| | jC|  ny|d tDd tEd fv r|d tDd kr|dnt3d|dd }|dk rtFd | jd | jC|< nD|d tGd kr|dd }||}| tH| n)|d tId kr|dd  n|d tJd kr| j }|S td!|d  q)"zRead a pickled object representation from the open file.

        Return the reconstituted object hierarchy specified in the file.
        Tr-   r   Nzutf-8r.   zUnsupported class z(Trying to instantiate unsupported class z0Trying to call reduce for unrecognized function z:Can only build Tensor, parameter or dict objects, but got z"Can only append to lists, but got zCan only extend lists, but got    FrR   z<i   z<Hz>d   z<IzString is too longsurrogatepassrV   strictz1persistent_load id must be tuple or int, but got storagez4Only persistent_load of storage is allowed, but got znegative argumentzUnsupported operand )K	metastackstackappendr[   rZ   EOFError
isinstancer   r   decoderT   RuntimeErrorr   popr/   r0   r1   r   valuesr   typer5   set___setstate__r   __dict__updater   listr   pop_markextendr   r    rangelenr   r#   tupler$   r%   r&   r   r   r   r   r   r   r   setr   r(   r   r	   r   r   r)   r@   r!   rX   r
   intr2   _maybe_decode_asciipersistent_loadr   r   r\   r   r   
ValueErrorr   r   r   r"   )r]   r[   rZ   keymodulename	full_pathargsclsfuncstateinstitemlist_objitemsvkistrlenstrvalstrdatapididxndatarM   rR   rR   rS   loadx   s&  










$,

,,

 zUnpickler.loadc                 C   s    | j }| j | _ | j j| _|S rY   )rj   ri   rp   rk   )r]   r   rR   rR   rS   rx     s   
zUnpickler.pop_markc                 C   s   t d)Nz%unsupported persistent id encountered)r'   )r]   r   rR   rR   rS   r   !  s   zUnpickler.persistent_loadN)rC   rB   __qualname__r@   r_   r   rx   r   rR   rR   rR   rS   rU   q   s     $rU   ASCIIrW   rX   c                C   s   t | |d S )NrW   )rU   r   )r^   rX   rR   rR   rS   r   %  s   r   )8	functools
_functoolscollectionsr   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(   sysr)   typingr*   r+   r,   r/   	lru_cacherT   rU   r@   r   rR   rR   rR   rS   <module>   s   '

, 5