a �DOgj�@s�gd�ZiZddd�Zdd�ZzeWney8Yn0dd�Zeeee�dd �Zd Ze e j �Z d d �Z d d�Zdd�Zdd�ZiZiZiZdd�Zdd�Zdd�ZdS))�pickle� constructor� add_extension�remove_extension�clear_extension_cacheNcCs,t|�std��|t|<|dur(t|�dS)Nz$reduction functions must be callable)�callable� TypeError�dispatch_tabler)�ob_type�pickle_function�constructor_ob�r �/usr/lib64/python3.9/copyreg.pyr s rcCst|�std��dS)Nzconstructors must be callable)rr)�objectr r r rsrcCst|j|jffS�N)�complex�real�imag)�cr r r �pickle_complex"srcCs<|turt�|�}n$|�||�}|jtjkr8|�||�|Sr)r�__new__�__init__)�cls�base�state�objr r r �_reconstructor)s     ric Cs |j}|jD]:}t|d�r(|jt@s(qL|j}t|t�r |j|ur qLq t }|t urZd}n"||urtt d|j �d���||�}|||f}z |j }WnXt y�t|dd�r�t d|j �d|���d�z |j}Wnt y�d}Yn0Yn0|�}|�rt||fSt|fSdS)N� __flags__zcannot pickle z object� __slots__zf object: a class that defines __slots__ without defining __getstate__ cannot be pickled with protocol )� __class__�__mro__�hasattrr� _HEAPTYPEr� isinstance� _new_type�__self__rr�__name__� __getstate__�AttributeError�getattr�__dict__r) �self�protorr�newr�args�getstate�dictr r r � _reduce_ex7s>      ��   r0cGs|j|g|�R�Sr�r)rr-r r r � __newobj__^sr2cCs|j|g|�Ri|��Srr1)rr-�kwargsr r r � __newobj_ex__asr4cCs�|j�d�}|dur|Sg}t|d�s(n�|jD]�}d|jvr.|jd}t|t�rV|f}|D]^}|dvrjqZqZ|�d�r�|�d�s�|j� d�}|r�|� d||f�q�|� |�qZ|� |�qZq.z ||_ Wn Yn0|S)N� __slotnames__r)r)� __weakref__�__�_z_%s%s) r)�getr rr"�str� startswith�endswithr%�lstrip�appendr5)r�namesr�slots�name�strippedr r r � _slotnamesgs2         rCcCs�t|�}d|krdks&ntd��||f}t�|�|krNt�|�|krNdS|tvrjtd|t|f��|tvr�td|t|f��|t|<|t|<dS)N�i���zcode out of rangez)key %s is already registered with code %sz$code %s is already in use for key %s)�int� ValueError�_extension_registryr9�_inverted_registry��modulerA�code�keyr r r r�s$ � � �rcCsR||f}t�|�|ks$t�|�|kr4td||f��t|=t|=|tvrNt|=dS)Nz%key %s is not registered with code %s)rGr9rHrF�_extension_cacherIr r r r�s ��rcCs t��dSr)rM�clearr r r r r�sr)N)�__all__rrrr� NameErrorrrr!�typerErr#r0r2r4rCrGrHrMrrrr r r r �s,     '<