Sindbad~EG File Manager

Current Path : /proc/2568807/root/usr/local/lib/python3.12/test/__pycache__/
Upload File :
Current File : //proc/2568807/root/usr/local/lib/python3.12/test/__pycache__/pickletester.cpython-312.opt-2.pyc

�

&Μg߫�
��
�ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
Z
ddlZddlZddlZddlmZddlmZ	ddlZddlmZddlmZddlmZmZmZmZmZm Z ddl!m"Z"ddl#m$Z$dd	lm%Z%dd
l&m'Z'ddlm(Z(	e'�5ddl)Z*ddd�ejVejXdkd
�Z-e.ej^dz�Z0d�Z1d�Z2d�Z3Gd�dejh�Z5Gd�de6�Z7Gd�d�Z8Gd�d�Z9Gd�de9�Z:Gd�de9�Z;ddl<Z<e9e<_9de9_=e:e<_:de:_=e;e<_;de;_=Gd�d �Z>Gd!�d"�Z?Gd#�d$e@�ZAGd%�d&e9�ZBGd'�d(eC�ZDGd)�d*e6eD�+�ZEGd,�d-eC�ZFd.�ZGGd/�d0eH�ZIGd1�d2eJ�ZKe�
Gd3�d4�ZLd5ZMd6ZNd7ZOd8ZPd9ZQd:ZRd;ZSd<ZTd=ZUd>ZVd?ZWd@ZXdAZYdBZZge[�e\�e]�e^�e_�e`�ea�eb�ec�ed�ee�ef�eg�eh�e�ei�ej�ek�el�em�en�eo�ep�eq�er�es�et�eu�ev�ew�ex�ey�ez�e{�e|�e}�e~�e�e��e��e��e��e��e���Z�dCZ�dDZ�dE�Z�GdF�dG�Z�GdH�dI�Z�GdJ�dK�Z�GdL�dM�Z�GdN�dO�Z�GdP�dQ�Z�GdR�dSe6�Z�GdT�dUe6�Z�GdV�dWe6�Z�GdX�dYe6�Z�GdZ�d[e6�Z�Gd\�d]e6�Z�Gd^�d_e6�Z�Gd`�dae6�Z�Gdb�dc�Z�Gdd�de�Z�Gdf�dg�Z�Gdh�died�Z�Gdj�dk�Z�e��Z�Gdl�dme��Z�Gdn�doe@�Z�Gdp�dqe��Z�Gdr�dse��Z�Gdt�due��Z�Gdv�dwe��Z�Gdx�dye��Z�Gdz�d{e��Z�Gd|�d}e��Z�Gd~�de��Z�Gd��d�e��Z�e�e�e�e�e�e�e�e�e�e�g
Z�Gd��d�e@�Z�Gd��d�e��Z�Gd��d�e��Z�Gd��d�e@�a�Gd��d��tj�Z�Gd��d��tj�Z�Gd��d��Z�Gd��d��Z�Gd��d��Z�Gd��d��Z�Gd��d��Z�Gd��d��Z�d�Z�Gd��d�e6�Z�Gd��d�e6�Z�d��Z�Gd��d��Z�Gd��d��Z�Gd��d��Z�e�dk(r�dd�l	m�Z�e��Z�e.ej^dz�D]�Z�e�j�e�eȫZ�e�d��j�eȫ�e.de�eʫd��D](Z�eHe�e�e�d�z�Z�e�d��j�eϫ��*e�d��e˫e�d��j�eȫ�e�d��j�eȫ�e�eʫe�d��e˫��yy#e$rdZY���wxYw#1swY���xYw#e$rdZ*Y���wxYw)��N)�dedent)�SimpleCookie)�support)�	os_helper)�
TestFailed�run_with_locale�
no_tracing�_2G�_4G�
bigmemtest)�forget)�TESTFN)�threading_helper)�save_restore_warnings_filters)�bytes_typeslz(test is only meaningful on 32-bit builds�c��tj|�D]&\}}}|j|jd�k(s�&yy)N�latin-1TF��pickletools�genops�code�decode)r�pickle�op�dummys    �./usr/local/lib/python3.12/test/pickletester.py�opcode_in_pickler;s;��'�.�.�v�6���E�5�
�7�7�d�k�k�)�,�,��7��c��d}tj|�D]*\}}}|j|jd�k(s�&|dz
}�,|S)Nrrrr)rr�nrrs     r�count_opcoder"BsH��	�A�'�.�.�v�6���E�5�
�7�7�d�k�k�)�,�,�
��F�A�7�
�Hrc��|S�N���xs r�identityr(Js���Hrc�$�eZdZd�Zd�Zd�Zd�Zy)�UnseekableIOc��t�r$)�NotImplementedError��self�argss  r�peekzUnseekableIO.peekOs��!�!rc��y)NFr%�r.s r�seekablezUnseekableIO.seekableRs��rc�"�tj�r$��io�UnsupportedOperationr-s  r�seekzUnseekableIO.seekU����%�%�%rc�"�tj�r$r5r2s r�tellzUnseekableIO.tellXr9rN)�__name__�
__module__�__qualname__r0r3r8r;r%rrr*r*Ns��"��&�&rr*c��eZdZ	d�Zy)�	MinimalIOc�
�tj|�|_|jj|_|jj|_|jj
|_|jj|_yr$)r6�BytesIO�_bio�getvalue�read�readline�writer-s  r�__init__zMinimalIO.__init__`sR���J�J��%��	��	�	�*�*��
��I�I�N�N��	��	�	�*�*��
��Y�Y�_�_��
rN�r<r=r>rHr%rrr@r@\s���%rr@c��eZdZd�Zd�Zy)�ExtensionSaverc���||_|tjvrJtj||_tj|jd|jd|�yd|_y�Nrr)r�copyreg�_inverted_registry�pair�remove_extension)r.rs  rrHzExtensionSaver.__init__usR����	��7�-�-�-��2�2�4�8�D�I��$�$�T�Y�Y�q�\�4�9�9�Q�<��F��D�Irc���|j}tjj|�}|�tj|d|d|�|j
}|�tj|d|d|�yyrM)rrNrO�getrQrP�
add_extension)r.r�curpairrPs    r�restorezExtensionSaver.restore~so���y�y���,�,�0�0��6�����$�$�W�Q�Z����T�B��y�y�����!�!�$�q�'�4��7�D�9�rN)r<r=r>rHrVr%rrrKrKrs���:rrKc��eZdZd�Zy)�Cc�4�|j|jk(Sr$)�__dict__�r.�others  r�__eq__zC.__eq__�s���}�}����.�.rN)r<r=r>r]r%rrrXrX�s��/rrXc��eZdZd�Zy)�Dc��yr$r%)r.�args  rrHz
D.__init__����rNrIr%rrr_r_����
rr_c��eZdZd�Zy)�Ec��y�Nr%r%r2s r�__getinitargs__zE.__getinitargs__�s��rN)r<r=r>rhr%rrrere�s��rre�__main__c��eZdZy)�ObjectN�r<r=r>r%rrrkrk����rrkc��eZdZd�Zd�Zy)�Kc��||_yr$)�value)r.rqs  rrHz
K.__init__��	����
rc�(�t|jffSr$)rorqr2s r�
__reduce__zK.__reduce__�s���4�:�:�-��rN�r<r=r>rHrtr%rrroro�s��� rroc��eZdZd�Zy)�myintc�$�t|�|_yr$��str)r.r's  rrHzmyint.__init__�s
���q�6��rNrIr%rrrwrw����rrwc��eZdZd�Zd�Zy)�initargc� �||_||_yr$��a�b)r.r�r�s   rrHzinitarg.__init__�s�������rc�2�|j|jfSr$rr2s rrhzinitarg.__getinitargs__�s���v�v�t�v�v�~�rN)r<r=r>rHrhr%rrr}r}�s���rr}c��eZdZy)�	metaclassNrlr%rrr�r��rmrr�c��eZdZy)�
use_metaclassNrlr%rrr�r��rmrr�)r�c��eZdZd�Zd�Zy)�pickling_metaclassc�f�t|�t|�k(xr|j|jk(Sr$)�type�reduce_argsr[s  rr]zpickling_metaclass.__eq__�s0���T�
�d�5�k�)�6�� � �E�$5�$5�5�	7rc�&�t|jfSr$)�create_dynamic_classr�r2s rrtzpickling_metaclass.__reduce__�s��$�d�&6�&6�7�7rN)r<r=r>r]rtr%rrr�r��s��7�8rr�c�B�t||t��}||f|_|Sr$)r��dictr�)�name�bases�results   rr�r��s#��
��e�T�V�
4�F����F���Mrc�<�eZdZdZdZdZdZd�Zd�ZeZ	e
d��Zy)�
ZeroCopyBytesTc��|dk\r,t|�jtj|�fdfSt|�jt	|�ffS�N��r��_reconstructr�PickleBuffer�bytes�r.�protocols  r�
__reduce_ex__zZeroCopyBytes.__reduce_ex__��I���q�=���:�*�*�V�-@�-@��-F�,H�$�N�N���:�*�*�U�4�[�N�:�:rc�`�dj|jjt|��S�Nz{}({!r})��format�	__class__r<r�r2s r�__repr__zZeroCopyBytes.__repr__��#��� � ����!8�!8�%��+�F�Frc��t|�5}|j}t|�|ur|cddd�S||�cddd�S#1swYyxYwr$��
memoryview�objr���clsr��ms   rr�zZeroCopyBytes._reconstruct��=��
��_���%�%�C��C�y�C���	�_��3�x�
�_�_���A�A�AN�r<r=r>�readonly�c_contiguous�f_contiguous�zero_copy_reconstructr�r��__str__�classmethodr�r%rrr�r��s;���H��L��L� ��;�G��G�� �� rr�c�<�eZdZdZdZdZdZd�Zd�ZeZ	e
d��Zy)�ZeroCopyBytearrayFTc��|dk\r,t|�jtj|�fdfSt|�jt	|�ffSr�r�r�s  rr�zZeroCopyBytearray.__reduce_ex__�r�rc�`�dj|jjt|��Sr�r�r2s rr�zZeroCopyBytearray.__repr__�r�rc��t|�5}|j}t|�|ur|cddd�S||�cddd�S#1swYyxYwr$r�r�s   rr�zZeroCopyBytearray._reconstruct�r�r�Nr�r%rrr�r��s;���H��L��L� ��;�G��G�� �� rr�c�t�eZdZdZd�Zd�Zed��Zed��Zed��Z	d�Z
d�Zd	�Zd
�Z
ed��Zy)
�PicklableNDArrayFc�8�tj|i|��|_yr$)�_testbuffer�ndarray�array�r.r/�kwargss   rrHzPicklableNDArray.__init__	s��$�,�,�d�=�f�=�D�Jrc�f�t|�}|j|�}|j||_|Sr$)r��__new__r�)r.�idxr��news    r�__getitem__zPicklableNDArray.__getitem__s-���t�*�C��+�+�c�"�C��
�
�3��C�I��Jrc�.�|jjSr$)r�r�r2s rr�zPicklableNDArray.readonlys���:�:�&�&�&rc�.�|jjSr$)r�r�r2s rr�zPicklableNDArray.c_contiguous����:�:�*�*�*rc�.�|jjSr$)r�r�r2s rr�zPicklableNDArray.f_contiguousr�rc��t|t�stS|jj|jjk(xr�|jj
|jj
k(xr�|jj|jjk(xrd|jj|jjk(xr5|jj�|jj�k(Sr$)	�
isinstancer��NotImplementedr�r��shape�stridesr��tobytesr[s  rr]zPicklableNDArray.__eq__s����e�%5�6�%�%��K�K�&�&�$�*�*�*;�*;�;�B��K�K�%�%����)9�)9�9�B��K�K�'�'�4�:�:�+=�+=�=�B��K�K�(�(�D�J�J�,?�,?�?�B��K�K�'�'�)�T�Z�Z�-?�-?�-A�A�	
Crc�:�t|t�stS||k(Sr$)r�r�r�r[s  r�__ne__zPicklableNDArray.__ne__'s ���e�%5�6�%�%���
�&�&rc��t|��d|jj�d|jj�d|jj	��d�S)Nz(shape=z	,strides=z, bytes=�))r�r�r�r�r�r2s rr�zPicklableNDArray.__repr__,sU���D�z�l�'�$�*�*�*:�*:�);�<�#�z�z�1�1�2�3�!�Z�Z�/�/�1�2�!�5�
6rc��|jjstd��|jj|jj|jj
|jrdntjd�}tj|j�}|dk\rt|�j||ffS|j�5}t|�j|j�|ffcddd�S#1swYyxYw)Nz>Reconstructing a non-contiguous ndarray does not seem possibler)r�r�r��flagsr�)r��
contiguousr,r�r�r�r�r��ND_WRITABLErr�r�r��rawr�)r.r��ndarray_kwargs�pbr�s     rr�zPicklableNDArray.__reduce_ex__1s����:�:�(�(�)�+K�L�L�'+�z�z�'7�'7�)-���);�);�(,�
�
�(9�(9�-1�]�]��-8�-D�-D�	G�N�
�$�$�T�Z�Z�0�B��1�}��T�
�/�/��^�,�.�.��V�V�X�� ��J�3�3��Y�Y�[�.�9�;��X�X�s�'C?�?Dc��t|�5}t|j��}ddd�|fi|��S#1swY�xYwr$)r��listr�)r�r�r�r��itemss     rr�zPicklableNDArray._reconstructDs<���C��A��Q�Y�Y�[�)��!��u�'��'�'�	!��s	�7�AN)r<r=r>r�rHr��propertyr�r�r�r]r�r�r�r�r�r%rrr�r�sy��!&��	>�	�
�	'�
�	'�
�	+�
�	+�
�	+�
�	+�	C�	'�
	6�
	;�&
�	(�
�	(rr�s;(lp0
L0L
aL1L
aF2.0
ac__builtin__
complex
p1
(F3.0
F0.0
tp2
Rp3
aL1L
aL-1L
aL255L
aL-255L
aL-256L
aL65535L
aL-65535L
aL-65536L
aL2147483647L
aL-2147483647L
aL-2147483648L
a(Vabc
p4
g4
ccopy_reg
_reconstructor
p5
(c__main__
C
p6
c__builtin__
object
p7
Ntp8
Rp9
(dp10
Vfoo
p11
L1L
sVbar
p12
L2L
sbg9
tp13
ag13
aL5L
a.an    0: (    MARK
    1: l        LIST       (MARK at 0)
    2: p    PUT        0
    5: L    LONG       0
    9: a    APPEND
   10: L    LONG       1
   14: a    APPEND
   15: F    FLOAT      2.0
   20: a    APPEND
   21: c    GLOBAL     '__builtin__ complex'
   42: p    PUT        1
   45: (    MARK
   46: F        FLOAT      3.0
   51: F        FLOAT      0.0
   56: t        TUPLE      (MARK at 45)
   57: p    PUT        2
   60: R    REDUCE
   61: p    PUT        3
   64: a    APPEND
   65: L    LONG       1
   69: a    APPEND
   70: L    LONG       -1
   75: a    APPEND
   76: L    LONG       255
   82: a    APPEND
   83: L    LONG       -255
   90: a    APPEND
   91: L    LONG       -256
   98: a    APPEND
   99: L    LONG       65535
  107: a    APPEND
  108: L    LONG       -65535
  117: a    APPEND
  118: L    LONG       -65536
  127: a    APPEND
  128: L    LONG       2147483647
  141: a    APPEND
  142: L    LONG       -2147483647
  156: a    APPEND
  157: L    LONG       -2147483648
  171: a    APPEND
  172: (    MARK
  173: V        UNICODE    'abc'
  178: p        PUT        4
  181: g        GET        4
  184: c        GLOBAL     'copy_reg _reconstructor'
  209: p        PUT        5
  212: (        MARK
  213: c            GLOBAL     '__main__ C'
  225: p            PUT        6
  228: c            GLOBAL     '__builtin__ object'
  248: p            PUT        7
  251: N            NONE
  252: t            TUPLE      (MARK at 212)
  253: p        PUT        8
  256: R        REDUCE
  257: p        PUT        9
  260: (        MARK
  261: d            DICT       (MARK at 260)
  262: p        PUT        10
  266: V        UNICODE    'foo'
  271: p        PUT        11
  275: L        LONG       1
  279: s        SETITEM
  280: V        UNICODE    'bar'
  285: p        PUT        12
  289: L        LONG       2
  293: s        SETITEM
  294: b        BUILD
  295: g        GET        9
  298: t        TUPLE      (MARK at 172)
  299: p    PUT        13
  303: a    APPEND
  304: g    GET        13
  308: a    APPEND
  309: L    LONG       5
  313: a    APPEND
  314: .    STOP
highest protocol among opcodes = 0
s�]q(KKG@c__builtin__
complex
q(G@GtqRqKJ����K�J���J���M��J��J��J���J�J�(Xabcqhccopy_reg
_reconstructor
q(c__main__
C
qc__builtin__
object
qNtqRq	}q
(XfooqKXbarqKubh	tq
h
Ke.a    0: ]    EMPTY_LIST
    1: q    BINPUT     0
    3: (    MARK
    4: K        BININT1    0
    6: K        BININT1    1
    8: G        BINFLOAT   2.0
   17: c        GLOBAL     '__builtin__ complex'
   38: q        BINPUT     1
   40: (        MARK
   41: G            BINFLOAT   3.0
   50: G            BINFLOAT   0.0
   59: t            TUPLE      (MARK at 40)
   60: q        BINPUT     2
   62: R        REDUCE
   63: q        BINPUT     3
   65: K        BININT1    1
   67: J        BININT     -1
   72: K        BININT1    255
   74: J        BININT     -255
   79: J        BININT     -256
   84: M        BININT2    65535
   87: J        BININT     -65535
   92: J        BININT     -65536
   97: J        BININT     2147483647
  102: J        BININT     -2147483647
  107: J        BININT     -2147483648
  112: (        MARK
  113: X            BINUNICODE 'abc'
  121: q            BINPUT     4
  123: h            BINGET     4
  125: c            GLOBAL     'copy_reg _reconstructor'
  150: q            BINPUT     5
  152: (            MARK
  153: c                GLOBAL     '__main__ C'
  165: q                BINPUT     6
  167: c                GLOBAL     '__builtin__ object'
  187: q                BINPUT     7
  189: N                NONE
  190: t                TUPLE      (MARK at 152)
  191: q            BINPUT     8
  193: R            REDUCE
  194: q            BINPUT     9
  196: }            EMPTY_DICT
  197: q            BINPUT     10
  199: (            MARK
  200: X                BINUNICODE 'foo'
  208: q                BINPUT     11
  210: K                BININT1    1
  212: X                BINUNICODE 'bar'
  220: q                BINPUT     12
  222: K                BININT1    2
  224: u                SETITEMS   (MARK at 199)
  225: b            BUILD
  226: h            BINGET     9
  228: t            TUPLE      (MARK at 112)
  229: q        BINPUT     13
  231: h        BINGET     13
  233: K        BININT1    5
  235: e        APPENDS    (MARK at 3)
  236: .    STOP
highest protocol among opcodes = 1
s��]q(KKG@c__builtin__
complex
qG@G�qRqKJ����K�J���J���M��J��J��J���J�J�(Xabcqhc__main__
C
q)�q}q(XfooqKXbarq	Kubhtq
h
Ke.u�    0: € PROTO      2
    2: ]    EMPTY_LIST
    3: q    BINPUT     0
    5: (    MARK
    6: K        BININT1    0
    8: K        BININT1    1
   10: G        BINFLOAT   2.0
   19: c        GLOBAL     '__builtin__ complex'
   40: q        BINPUT     1
   42: G        BINFLOAT   3.0
   51: G        BINFLOAT   0.0
   60: †     TUPLE2
   61: q        BINPUT     2
   63: R        REDUCE
   64: q        BINPUT     3
   66: K        BININT1    1
   68: J        BININT     -1
   73: K        BININT1    255
   75: J        BININT     -255
   80: J        BININT     -256
   85: M        BININT2    65535
   88: J        BININT     -65535
   93: J        BININT     -65536
   98: J        BININT     2147483647
  103: J        BININT     -2147483647
  108: J        BININT     -2147483648
  113: (        MARK
  114: X            BINUNICODE 'abc'
  122: q            BINPUT     4
  124: h            BINGET     4
  126: c            GLOBAL     '__main__ C'
  138: q            BINPUT     5
  140: )            EMPTY_TUPLE
  141:          NEWOBJ
  142: q            BINPUT     6
  144: }            EMPTY_DICT
  145: q            BINPUT     7
  147: (            MARK
  148: X                BINUNICODE 'foo'
  156: q                BINPUT     8
  158: K                BININT1    1
  160: X                BINUNICODE 'bar'
  168: q                BINPUT     9
  170: K                BININT1    2
  172: u                SETITEMS   (MARK at 147)
  173: b            BUILD
  174: h            BINGET     6
  176: t            TUPLE      (MARK at 113)
  177: q        BINPUT     10
  179: h        BINGET     10
  181: K        BININT1    5
  183: e        APPENDS    (MARK at 5)
  184: .    STOP
highest protocol among opcodes = 2
s��]q(KKG@cbuiltins
complex
qG@G�qRqKJ����K�J���J���M��J��J��J���J�J�(Xabcqhc__main__
C
q)�q}q(XbarqKXfooq	Kubhtq
h
Ke.u�    0: € PROTO      3
    2: ]    EMPTY_LIST
    3: q    BINPUT     0
    5: (    MARK
    6: K        BININT1    0
    8: K        BININT1    1
   10: G        BINFLOAT   2.0
   19: c        GLOBAL     'builtins complex'
   37: q        BINPUT     1
   39: G        BINFLOAT   3.0
   48: G        BINFLOAT   0.0
   57: †     TUPLE2
   58: q        BINPUT     2
   60: R        REDUCE
   61: q        BINPUT     3
   63: K        BININT1    1
   65: J        BININT     -1
   70: K        BININT1    255
   72: J        BININT     -255
   77: J        BININT     -256
   82: M        BININT2    65535
   85: J        BININT     -65535
   90: J        BININT     -65536
   95: J        BININT     2147483647
  100: J        BININT     -2147483647
  105: J        BININT     -2147483648
  110: (        MARK
  111: X            BINUNICODE 'abc'
  119: q            BINPUT     4
  121: h            BINGET     4
  123: c            GLOBAL     '__main__ C'
  135: q            BINPUT     5
  137: )            EMPTY_TUPLE
  138:          NEWOBJ
  139: q            BINPUT     6
  141: }            EMPTY_DICT
  142: q            BINPUT     7
  144: (            MARK
  145: X                BINUNICODE 'bar'
  153: q                BINPUT     8
  155: K                BININT1    2
  157: X                BINUNICODE 'foo'
  165: q                BINPUT     9
  167: K                BININT1    1
  169: u                SETITEMS   (MARK at 144)
  170: b            BUILD
  171: h            BINGET     6
  173: t            TUPLE      (MARK at 110)
  174: q        BINPUT     10
  176: h        BINGET     10
  178: K        BININT1    5
  180: e        APPENDS    (MARK at 5)
  181: .    STOP
highest protocol among opcodes = 2
s����]�(KKG@�builtins��complex���G@G��R�KJ����K�J���J���M��J��J��J���J�J�(�abc�h�__main__��C���)��}�(�bar�K�foo�Kubh
t�hKe.u�    0: € PROTO      4
    2: • FRAME      168
   11: ]    EMPTY_LIST
   12: ” MEMOIZE
   13: (    MARK
   14: K        BININT1    0
   16: K        BININT1    1
   18: G        BINFLOAT   2.0
   27: Œ     SHORT_BINUNICODE 'builtins'
   37: ”     MEMOIZE
   38: Œ     SHORT_BINUNICODE 'complex'
   47: ”     MEMOIZE
   48: “     STACK_GLOBAL
   49: ”     MEMOIZE
   50: G        BINFLOAT   3.0
   59: G        BINFLOAT   0.0
   68: †     TUPLE2
   69: ”     MEMOIZE
   70: R        REDUCE
   71: ”     MEMOIZE
   72: K        BININT1    1
   74: J        BININT     -1
   79: K        BININT1    255
   81: J        BININT     -255
   86: J        BININT     -256
   91: M        BININT2    65535
   94: J        BININT     -65535
   99: J        BININT     -65536
  104: J        BININT     2147483647
  109: J        BININT     -2147483647
  114: J        BININT     -2147483648
  119: (        MARK
  120: Œ         SHORT_BINUNICODE 'abc'
  125: ”         MEMOIZE
  126: h            BINGET     6
  128: Œ         SHORT_BINUNICODE '__main__'
  138: ”         MEMOIZE
  139: Œ         SHORT_BINUNICODE 'C'
  142: ”         MEMOIZE
  143: “         STACK_GLOBAL
  144: ”         MEMOIZE
  145: )            EMPTY_TUPLE
  146:          NEWOBJ
  147: ”         MEMOIZE
  148: }            EMPTY_DICT
  149: ”         MEMOIZE
  150: (            MARK
  151: Œ             SHORT_BINUNICODE 'bar'
  156: ”             MEMOIZE
  157: K                BININT1    2
  159: Œ             SHORT_BINUNICODE 'foo'
  164: ”             MEMOIZE
  165: K                BININT1    1
  167: u                SETITEMS   (MARK at 150)
  168: b            BUILD
  169: h            BINGET     10
  171: t            TUPLE      (MARK at 119)
  172: ”     MEMOIZE
  173: h        BINGET     14
  175: K        BININT1    5
  177: e        APPENDS    (MARK at 13)
  178: .    STOP
highest protocol among opcodes = 4
s%�c__builtin__
set
q]q(KKe�qRq.s%�c__builtin__
xrange
qKKK�qRq.s��cCookie
SimpleCookie
q)�qUkeyqcCookie
Morsel
q)�q(UcommentqUqUdomainqhUsecureqhUexpiresq	hUmax-ageq
hUversionqhUpathqhUhttponlyq
hu}q(Ucoded_valueqUvalueqhhhhubs}qb.s"�c__builtin__
set
q]qKa�qRq.s�cexceptions
?
q)Rq.sI�cexceptions
UnicodeEncodeError
q(UasciiqXfooqKKUbadqtqRq.c��t�}d|_d|_gd�}d}d}d}|jdd|||dz
|||dz
|||dz
g�dd||f}|j	|�|j	|�|j	d	�|S)
Nr�)rrg@y@��������abcr�)rX�foo�bar�extend�append)�cr'�uint1max�uint2max�int4max�ys      r�create_datar�,s���	��A�
�A�E�
�A�E��A��H��H��G��H�H�a����	�H�9�Q�;���	�H�9�Q�;��'��W�H�Q�J�0�1�
��q�!��A��H�H�Q�K��H�H�Q�K��H�H�Q�K��Hrc���eZdZe�Zd5d�Zd�Zd�Zd�Zd�Z	d�Z
d�Zd	�Zd
�Z
d�Zd�Zd
�Zd�Zd�Zd�Zd�Zd�Zed��Zed��Zd�Zd�Zd�Zd�Zd�Zed��Zed��Zed��Z d�Z!d�Z"d�Z#d �Z$d!�Z%ed"��Z&d#�Z'd$�Z(d%�Z)d&�Z*d'�Z+d(�Z,d)�Z-d*�Z.d+�Z/d,�Z0e1jdd-��Z3d.�Z4d/�Z5d0�Z6d1�Z7d2�Z8d3�Z9e:jve:jx�d4���Z=y)6�AbstractUnpickleTestsNc	��	|�dj||�}|j|||��|jt|�t|�|��t	|d�rP|j|j|j|��|j|j|j|��t	|d�r�|j|j|j|��|jD]T}|jt	||�t	||�|��|jt||d�t||d�|���Vyy)Nz{!r} is not a copy of {!r})�msgrZ�	__slots__)r��assertEqual�assertIsr��hasattr�assertDictEqualrZ�assertIsNot�assertListEqualr��getattr)r.r��objcopyr��slots     r�assert_is_copyz$AbstractUnpickleTests.assert_is_copyFs'��	��;�.�5�5�c�7�C�C�����g�3��/��
�
�d�3�i��g��C�
�8��3�
�#�� � ����w�/?�/?�S� �I����S�\�\�7�+;�+;���E��3��$�� � �����0A�0A�s� �K��
�
��� � ��C��&����(>�C�!�I�� � ���d�D�!9�!(��$��!=�3�!�H�&�%rc
�^�|j|��5|j|�5	|j|�	ddd�ddd�y#t$rA}tj
dkDr(t
|d�d|jj�d|����d}~wwxYw#1swY�_xYw#1swYyxYw)N)�datar�32z - z: )	�subTest�assertRaises�loads�
BaseExceptionr�verbose�printr�r<)r.�errorsr�excs    r�check_unpickling_errorz,AbstractUnpickleTests.check_unpickling_errorXs���
�\�\�t�\�
$�
�
�
�v�
&�
��
�
�4� �'�%�
$��!�
��?�?�Q�&������!7�!7��>�?���	
��'�
&��%�
$�s>�B#�B�A
�B#�
	B�<B�B�B�B 	�B#�#B,c�b�|j|j|jt��yr$)r�	_testdatar�DATA0r2s r�test_load_from_data0z*AbstractUnpickleTests.test_load_from_data0c������D�N�N�D�J�J�u�,=�>rc�b�|j|j|jt��yr$)rrr�DATA1r2s r�test_load_from_data1z*AbstractUnpickleTests.test_load_from_data1frrc�b�|j|j|jt��yr$)rrr�DATA2r2s r�test_load_from_data2z*AbstractUnpickleTests.test_load_from_data2irrc�b�|j|j|jt��yr$)rrr�DATA3r2s r�test_load_from_data3z*AbstractUnpickleTests.test_load_from_data3lrrc�b�|j|j|jt��yr$)rrr�DATA4r2s r�test_load_from_data4z*AbstractUnpickleTests.test_load_from_data4orrc���tdftdftdffD]�\}}|jj	d�}	djd|�}|j
||�|j|��	djd|�}|j
||�|j|��	djd|�}|j
||�|j|����y)Nr%r&�asciis(i__main__
X
p0
(dp1
b.�Xs(c__main__
X
qoq}qb.s�(c__main__
X
qoq}qb.)rXr_rer<�encode�replacerr)r.�Xr/�xname�pickle0�pickle1�pickle2s       r�test_load_classic_instancez0AbstractUnpickleTests.test_load_classic_instancers����B��!�V��q�"�g�6�G�A�t��J�J�%�%�g�.�E�	
�#�%,�G�D�%�$8�
�
����4��$�*�*�W�*=�>�

�.�/6�w�t�U�/C�
�
����4��$�*�*�W�*=�>�
�.�/6�w�t�U�/C�
�
����4��$�*�*�W�*=�>�i7rc��d}dt|�jd�zdz}|j|�}|j||�dt|�jd�zdz}|j	t
|�y)Nl�����Ir �
.sJUNK
.)rzr"rrr
�
ValueError)r.�maxint64r�gots    r�
test_maxint64z#AbstractUnpickleTests.test_maxint64�ss�� ���c�(�m�*�*�7�3�3�f�<���j�j�������H�c�*��c�(�m�*�*�7�3�3�j�@���#�#�J��5rc��|jt�}|j|tddg��|jt�}|jt|�tt
d���|jt|�tt
d���|jt�}|jt|�t�|jt|j��dg�|j|djd�tD]]}tjd|jj!d��}|j|�}|j#t|�|��_|jtjdd	��}|j#t|�t$�|jt&�}|j#t|�t(�|j|j*d
�|j|j,d�|j|j.d�|j|j0d�|j|j2d�y)Nrr�rr��keyrq�?r �
StandardErrorr��bad)r�DATA_SETr��set�DATA_XRANGEr��ranger��DATA_COOKIEr�keysrq�python2_exceptions_without_args�exception_pickler#r<r"r��	Exception�
DATA_UEERR�UnicodeEncodeError�object�encoding�start�end�reason)r.�loadedrrs    r�test_unpickle_from_2xz+AbstractUnpickleTests.test_unpickle_from_2x�s������H�%�������a��V��-����K�(������f��t�E�!�H�~�6�����f��t�E�!�H�~�6����K�(������f��|�4�����f�k�k�m�,�u�g�6�������,�,�g�6�3�C�#�+�+�D�#�,�,�2E�2E�g�2N�O�D��Z�Z��%�F��M�M�$�v�,��,�3����,�4�4�T�;K�L�M���
�
�d�6�l�I�.����J�'���
�
�d�6�l�$6�7��������.�������'�2�������q�)�������Q�'��������.rc���|j|jdd��d�|j|jdd��d�|j|jdd��d�y)NsS'a\x00\xa0'
.r��rBsa�sUa�.s�Ua�.�r�rr2s r�test_load_python2_str_as_bytesz4AbstractUnpickleTests.test_load_python2_str_as_bytes�s~��������$8�-4�$�6�7C�	E�	
������$6�-4�$�6�7C�	E�	
������$>�-4�$�6�7C�	Erc���|j|jdd��d�|j|jdd��d�|j|jdd��d�y)Ns	V\u03c0
.r�rIuπsXπ.s
�Xπ.rJr2s r� test_load_python2_unicode_as_strz6AbstractUnpickleTests.test_load_python2_unicode_as_str�sz��������N�-4�$�6�7;�	=�	
������$A�-4�$�6�7;�	=�	
������$I�-4�$�6�7;�	=rc	��|j|jtjt	j
dd�zdztjzd��d�y)N�<Ii,s,xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxr�rI)r�rr�	BINSTRING�struct�pack�STOPr2s r�#test_load_long_python2_str_as_bytesz9AbstractUnpickleTests.test_load_long_python2_str_as_bytes�s[��������F�$4�$4�$*�K�K��c�$:�%;�$.�%/�17���%=�.5�$�6�8B�	Crc�L�|j|jd��|j|jd�d�|j|jd�d�|j|jd�d�|j|jd�d�y)NsN.s�.Ts�.FsI01
.sI00
.)�assertIsNonerr�r2s r�test_constantsz$AbstractUnpickleTests.test_constants�su�����$�*�*�U�+�,��
�
�d�j�j��*�D�1��
�
�d�j�j��*�E�2��
�
�d�j�j��+�T�2��
�
�d�j�j��+�U�3rc�N�|jdd��}|j|d�y)Ns�Uq.zkoi8-rrI�)rr�)r.�emptys  r�test_empty_bytestringz+AbstractUnpickleTests.test_empty_bytestring�s%���
�
�1�H�
�E�������#rc�J�d}|j|j|�d�y)Ns	�C€.�€rJ�r.�dumpeds  r�test_short_binbytesz)AbstractUnpickleTests.test_short_binbytes�s!��2��������F�+�-@�Arc�J�d}|j|j|�d�y)Ns�B€.r]rJr^s  r�
test_binbytesz#AbstractUnpickleTests.test_binbytess!��>��������F�+�-@�Arc�T�d}|jtjtf|�y)Ns
�B����xyzq.�r
r�UnpicklingError�
OverflowErrorr^s  r�test_negative_32b_binbytesz0AbstractUnpickleTests.test_negative_32b_binbytes�'��7���#�#�V�%;�%;�]�$K�$*�	,rc�T�d}|jtjtf|�y)Ns
�X����xyzq.rdr^s  r�test_negative_32b_binunicodez2AbstractUnpickleTests.test_negative_32b_binunicoderhrc�J�d}|j|j|�d�y)Ns	��€.�€rJr^s  r�test_short_binunicodez+AbstractUnpickleTests.test_short_binunicodes ��5��������F�+�\�:rc�
�|jtjd�|jtjd�|jtjd�|jddg|j	d��y)Nsg0
p0sjens:shens:)�ds((Kdtp0
hl.)))r
rrerrr2s r�
test_misc_getz#AbstractUnpickleTests.test_misc_getsf���#�#�F�$:�$:�I�F��#�#�F�$:�$:�H�E��#�#�F�$:�$:�H�E����V�V�,� �J�J�'<�=�	?rc�J�d}|j|j|�d�y)Ns��€.r]rJr^s  r�test_binbytes8z$AbstractUnpickleTests.test_binbytes8s!��A��������F�+�-@�Arc�J�d}|j|j|�d�y)Ns��€.rlrJr^s  r�test_binunicode8z&AbstractUnpickleTests.test_binunicode8!s ��A��������F�+�\�:rc�\�d}|j|j|�td��y)Ns��xxx.sxxx)r�r�	bytearrayr^s  r�test_bytearray8z%AbstractUnpickleTests.test_bytearray8%s%��D��������F�+�Y�v�->�?rc�T�d}|jtjtf|�y)Ns��€.rdr^s  r�test_large_32b_binbytes8z.AbstractUnpickleTests.test_large_32b_binbytes8)�%��A���#�#�V�%;�%;�]�$K�$*�	,rc�T�d}|jtjtf|�y)Ns��€.rdr^s  r�test_large_32b_bytearray8z/AbstractUnpickleTests.test_large_32b_bytearray8/rzrc�T�d}|jtjtf|�y)Ns��€.rdr^s  r�test_large_32b_binunicode8z0AbstractUnpickleTests.test_large_32b_binunicode85rzrc��d}|j|�}|j|gfdz�|j|d|d�y)Ns((lp100000
g100000
t.r�rr�rr�r��r.�pickled�	unpickleds   r�test_getzAbstractUnpickleTests.test_get;sA��,���J�J�w�'�	�����R�E�!�G�,��
�
�i��l�I�a�L�1rc��d}|j|�}|j|gfdz�|j|d|d�y)Ns(]q�h�t.r�rrr�r�s   r�test_bingetz!AbstractUnpickleTests.test_bingetAsA��#���J�J�w�'�	�����R�E�!�G�,��
�
�i��l�I�a�L�1rc��d}|j|�}|j|gfdz�|j|d|d�y)Ns(]rjt.r�rrr�r�s   r�test_long_bingetz&AbstractUnpickleTests.test_long_bingetGsA��;���J�J�w�'�	�����R�E�!�G�,��
�
�i��l�I�a�L�1rc��d}|j|�}|j|gfdz�|j|d|d�y)Ns((l2t.r�rrr�r�s   r�test_dupzAbstractUnpickleTests.test_dupMsA�����J�J�w�'�	�����R�E�!�G�,��
�
�i��l�I�a�L�1rc�4�d}|jt|�y)NsVa
p-1
.�r
r-r^s  r�test_negative_putz'AbstractUnpickleTests.test_negative_putSs�����#�#�J��7rc�4�d}|jt|�y)Ns�Xar����.r�r^s  r�test_negative_32b_binputz.AbstractUnpickleTests.test_negative_32b_binputXs��A���#�#�J��7rc�0�|jtd�y)NsS'\'
.r�r2s r�test_badly_escaped_stringz/AbstractUnpickleTests.test_badly_escaped_string^s���#�#�J��<rc�Z�gd�}|D]"}|jtj|��$y)N)
sS'
.sS"
.sS' 
.sS" 
.sS'"
.sS"'
.sS' ' 
.sS" " 
.sS ''
.sS ""
.sS 
.sS
.sS.)r
rre�r.�
badpickles�ps   r�test_badly_quoted_stringz.AbstractUnpickleTests.test_badly_quoted_stringas+���
��A��'�'��(>�(>��B�rc�b�gd�}|D]&\}}|j|j|�|��(y)N))sS''
.rY)sS""
.rY)sS"\n"
.�
)sS'\n'
.r�rJ)r.�goodpicklesr��expecteds    r�test_correctly_quoted_stringz2AbstractUnpickleTests.test_correctly_quoted_stringss1��-��'�K�A�x����T�Z�Z��]�H�5�'rc�J�d}|j|j|�d�y)Ns��I42
.�*rJ)r.r�s  r�test_frame_readlinez)AbstractUnpickleTests.test_frame_readline{s"��G��
	
������G�,�b�1rc�2�d}|j|�}|jt|�t�|j	|tdd��|j	t|�gd��d}|j|j|�tj�d}|j|j|�tj�dD]U}d|zd	z}|j|�}|jt|�t�|j	t|�d
��WdD]k}d|zd
z}|j|�}|jt|�tj�|j	|tjddi���my)Ns�c__builtin__
xrange
KKK�R.r�)rr���r��s�c__builtin__
reduce
.s�cwhichdb
whichdb
.)s	Exceptionr4s�cexceptions
s	
Uugh�R.�ugh)sUserDictsIterableUserDicts
�(cUserDict
s
o}Udata}KKssb.r�)rr�r�r9r�r��	functools�reduce�dbm�whichdbr>rz�collections�UserDict)r.r�r�r�s    r�test_compat_unpicklez*AbstractUnpickleTests.test_compat_unpickle�sE��H���J�J�w�'�	��
�
�d�9�o�u�-�����E�!�Q�K�0�����i��*<�=�4���
�
�d�j�j��)�9�+;�+;�<�1���
�
�d�j�j��)�3�;�;�7�4�D�/�$�6�9L�L�G��
�
�7�+�I��M�M�$�y�/�9�5����S��^�U�3�	5�7�D�.��5�6�7�G��
�
�7�+�I��M�M�$�y�/�;�+?�+?�@����Y��(<�(<�a��V�(D�E�7rc���|j|jd�t�|j|jd�tj�|j|jd�t
jj�|j|jd�tj�tjtjdtjd���5|j|jd�d�ddd�|j!t"|jd	�|j!t"|jd
�|j!|j$|jd�|j!|j$|jd�|j!|j$|jd
�y#1swY��xYw)Nscbuiltins
str
.�cmath
log
.scos.path
join
.s�cbuiltins
str.upper
.�möduler���glöbals�cmödule
glöbal
.sc�
log
.s	cmath
�
.sc
log
.scmath

.s
�cmath

.)r�rrz�math�log�os�path�join�upperr�	swap_item�sys�modules�types�SimpleNamespacer�r�UnicodeDecodeError�truncated_errorsr2s r�test_load_globalz&AbstractUnpickleTests.test_load_global�sF���
�
�d�j�j�!5�6��<��
�
�d�j�j�!1�2�D�H�H�=��
�
�d�j�j�!5�6������E��
�
�d�j�j�!C�D�c�i�i�P�
�
�
�s�{�{�I�u�7L�7L�UW�7X�
Y����T�Z�Z�(S�T�VX�Y�Z�	
���,�d�j�j�:J�K����,�d�j�j�:K�L����$�/�/����\�J����$�/�/����]�K����$�/�/����=R�S�Z�
Y�s�6"G�G!c��|j|jd�t�|j|jd�tj�|j|jd�t
jj�|j|jd�tj�tjtjdtjd���5|j|jd�d�ddd�|j!t"|jd	�|j!t"|jd
�|j!t$|jd�|j!t&|jd�|j!t&|jd
�|j!t(j*|jd�|j!t(j*|jd�|j!t(j*|jd�y#1swY��1xYw)Ns�builtins�str�.�
�math�log�.s�os.path�join�.s��builtins�	str.upper�.r�r�r�s��mödule�glöbal�.s
���log�.s�math���.s	��log�.s
�math��.s��math��.sN�log�.s	�mathN�.s��mathN�.)r�rrzr�r�r�r�r�r�rr�r�r�r�r�r�rr�r-�AttributeErrorrrer2s r�test_load_stack_globalz,AbstractUnpickleTests.test_load_stack_global�s����
�
�d�j�j�!D�E�s�K��
�
�d�j�j�!@�A�4�8�8�L��
�
�d�j�j�!D�E��g�g�l�l�	$��
�
�d�j�j�!R�S��i�i�	!�
�
�
�s�{�{�I�u�7L�7L�UW�7X�
Y����T�Z�Z�(b�c�eg�h�Z�	
���,�d�j�j�:Y�Z����,�d�j�j�:Z�[����*�d�j�j�2M�N����.�$�*�*�6R�S����.�$�*�*�6Z�[����&�0�0�$�*�*�>R�S����&�0�0�$�*�*�>S�T����&�0�0�$�*�*�>[�\�Z�
Y�s�6"I�Ic�v	�|jtj��}|jtj�d��}|jtjd��}|j�|j	|jdd�t�|jt|j
dd�|j	|jdd�t�|j	|jdd�t�|j	|jdd�tj�|j	|jd	d
�tjj�|j	|jd	d
�tjj�|j	|jdd�tj�|jt�5|jdd�ddd�|jt�5|jdd�ddd�|jt�5|jdd�ddd�|jt�5|jdd
�ddd�|jt�5|jdd
�ddd�|jt�5|jdd�ddd�|jt�5|jdd�ddd�|jt�5|jdd�ddd�|jt�5|jdd�ddd�|jt|j
dd�|jt |j
dd�|jt"|j
dd�|jt"|j
dd�|jt"tf|j
dd�y#1swY��;xYw#1swY��xYw#1swY���xYw#1swY���xYw#1swY���xYw#1swY���xYw#1swY��ixYw#1swY��FxYw#1swY��#xYw)NF)�fix_importss�N.�__builtin__rz�builtinsr�r�zos.pathr�z	str.upper�spamzlog.spamzlog.<locals>.spamrY)�	unpicklerr6rB�loadr��
find_classrzr�ModuleNotFoundErrorr�r�r�r�r�r�r�r-�	TypeError)r.r��unpickler_nofix�
unpickler4s    r�test_find_classz%AbstractUnpickleTests.test_find_class�sN���N�N�2�:�:�<�0�	��.�.�����5�.�I���^�^�B�J�J�}�$=�>�
������
�
�i�*�*�=�%�@�#�F����-�)�4�4�m�U�	L��
�
�i�*�*�:�u�=�s�C��
�
�o�0�0��U�C�S�I��
�
�i�*�*�6�5�9�4�8�8�D��
�
�i�*�*�9�f�=�r�w�w�|�|�L��
�
�i�*�*�9�f�=�r�w�w�|�|�L��
�
�j�+�+�J��D�c�i�i�P�
�
�
�~�
.�� � ��[�9�/��
�
�~�
.�� � ���0�/�
�
�
�~�
.��!�!�&�&�1�/�
�
�
�~�
.�� � ���4�/�
�
�
�~�
.��!�!�&�*�5�/�
�
�
�~�
.�� � ��)<�=�/�
�
�
�~�
.��!�!�&�*=�>�/�
�
�
�~�
.�� � ���,�/�
�
�
�~�
.��!�!�&�"�-�/����-�y�/C�/C�V�U�S����*�i�&:�&:�B��F����)�Y�%9�%9�4��G����)�Y�%9�%9�6�4�H����9�n�5�z�7L�7L�f�VZ�[�1/�
.��/�
.��
.�
.��
.�
.��
.�
.��
.�
.��
.�
.��
.�
.��
.�
.�sl�:Q�*Q�Q �
Q-�:Q:�*R�R�
R!�:R.�Q�Q� Q*�-Q7�:R�R�R�!R+�.R8c����fd�}�j|d�d��j|d�d��fd�}�j|d�d��j|d�d��fd�}�j|d�d��j|d�d��fd�}�j|d�d��j|d�d�y)Nc���Gd�d�j�}|tj|��j�S)Nc��eZdZd�Zy)�NAbstractUnpickleTests.test_custom_find_class.<locals>.loads.<locals>.Unpicklerc�
�||fSr$r%)r.�module_name�global_names   rr�zYAbstractUnpickleTests.test_custom_find_class.<locals>.loads.<locals>.Unpickler.find_class�s
��'��5�5rN)r<r=r>r�r%rr�	Unpicklerr��s��6rr��r�r6rBr��rr�r.s  �rrz;AbstractUnpickleTests.test_custom_find_class.<locals>.loads�s2���
6�D�N�N�
6��R�Z�Z��-�.�3�3�5�5rr�)r�r�r�c���Gd�d�j�}|tj|��j�S)Nc��eZdZed��Zy)r�c�
�||fSr$r%�r�r�s  rr�zYAbstractUnpickleTests.test_custom_find_class.<locals>.loads.<locals>.Unpickler.find_class��
��'��5�5rN)r<r=r>�staticmethodr�r%rrr�zNAbstractUnpickleTests.test_custom_find_class.<locals>.loads.<locals>.Unpickler�s���6��6rr�r�r�s  �rrz;AbstractUnpickleTests.test_custom_find_class.<locals>.loads��2���
6�D�N�N�
6��R�Z�Z��-�.�3�3�5�5rc���Gd�d�j�}|tj|��j�S)Nc��eZdZed��Zy)r�c�
�||fSr$r%)r�r�r�s   rr�zYAbstractUnpickleTests.test_custom_find_class.<locals>.loads.<locals>.Unpickler.find_classr�rN)r<r=r>r�r�r%rrr�zNAbstractUnpickleTests.test_custom_find_class.<locals>.loads.<locals>.Unpickler�s���6��6rr�r�r�s  �rrz;AbstractUnpickleTests.test_custom_find_class.<locals>.loads�r�rc���Gd�d�j�}d�}|tj|��}||_|j	�S)Nc��eZdZy)r�Nrlr%rrr�zNAbstractUnpickleTests.test_custom_find_class.<locals>.loads.<locals>.Unpickler	���rr�c�
�||fSr$r%r�s  rr�zOAbstractUnpickleTests.test_custom_find_class.<locals>.loads.<locals>.find_classs
��#�[�1�1r)r�r6rBr�r�)rr�r�r�r.s    �rrz;AbstractUnpickleTests.test_custom_find_class.<locals>.loadss@���
�D�N�N�
�
2�!�"�*�*�T�"2�3�I�#-�I� ��>�>�#�#r)r�)r.rs` r�test_custom_find_classz,AbstractUnpickleTests.test_custom_find_class�s����	6�	
����/�0�/�B�����>�?��Q�	6�	
����/�0�/�B�����>�?��Q�	6�	
����/�0�/�B�����>�?��Q�	$�	
����/�0�/�B�����>�?��Qrc�L�|jtd�|jtd�|jtd�|jtd�|jtd�|jtd�|jtjd�|jtjd�|jtjd	�|jtjd
�|jtjd�y)N��.s��.s�.s���.s�.s����.s�.s�.s�.s��.s�����.)r
r-rrer2s r�test_bad_ext_codez'AbstractUnpickleTests.test_bad_ext_codes����#�#�J��=��#�#�J��=��#�#�J�0@�A��#�#�J�0@�A��#�#�J�0H�I��#�#�J�0H�I��#�#�F�$:�$:�L�I��#�#�F�$:�$:�<L�M��#�#�F�$:�$:�<T�U��#�#�F�$:�$:�<T�U��#�#�F�$:�$:�<T�Urc����d���fd�}|dt�|dt�|tfttf�|tddfttf�|tdfttf�|dttf�y)Nrc����tjtj�|�5�j	|�5�jd�ddd�ddd�y#1swY�xYw#1swYyxYw)Nr�)rr�rNrOrr)r2rrr.s  ��r�checkzCAbstractUnpickleTests.test_bad_ext_inverted_registry.<locals>.check&sT����"�"�7�#=�#=�t�S�I��&�&�s�+��J�J�|�,�,�J�I�+�+��J�I�s"�A(�A�A(�A%	�!A(�(A1r%�MyListr')Nr�)r-r<r�)r.r�rs` @r�test_bad_ext_inverted_registryz4AbstractUnpickleTests.test_bad_ext_inverted_registry#sn�����	-�	�d�J��
�b�*��
�x�k�I�z�2�3�
�x��3�'�)�Z�)@�A�
�x����J� 7�8�
���J� 7�8rc��|j|jd�d�|jtd�|jtd�y)Nscbuiltins
int
)R.rsN)R.scbuiltins
int
NR.)r�rr
r�r2s r�test_bad_reducez%AbstractUnpickleTests.test_bad_reduce1s=��������$:�;�Q�?��#�#�I�w�7��#�#�I�/E�Frc��tjtf}|j|j	d�d�|j|d�|j|d�y)Nscbuiltins
int
)�.rscbuiltins
len
)�.scbuiltins
int
N�.�rrer�r�rr
�r.�errors  r�test_bad_newobjz%AbstractUnpickleTests.test_bad_newobj6sN���'�'��3��������$=�>��B��#�#�E�+D�E��#�#�E�+D�Erc���tjtf}|j|j	d�d�|j|d�|j|d�|j|d�y)Nscbuiltins
int
)}�.rscbuiltins
len
)}�.scbuiltins
int
N}�.scbuiltins
int
)N�.r�r�s  r�test_bad_newobj_exz(AbstractUnpickleTests.test_bad_newobj_ex<s_���'�'��3��������$>�?��C��#�#�E�+E�F��#�#�E�+E�F��#�#�E�+E�Frc�R�gd�}|D]}|j|j|�� y)N),�.�0�1�2s(2�Rs)R�asNa�bsNb�d�es(esibuiltins
list
�l�os(osp1
sqsr�ssNssNNs�t�us(us}(Nu��s)�����sN���sN�sNN���s(�����s)}���sVlist
����r
�bad_stack_errorsr�s   r�test_bad_stackz$AbstractUnpickleTests.test_bad_stackCs,��-
�
�\�A��'�'��(=�(=�q�A�rc�R�gd�}|D]}|j|j|�� y)N)sN(.sN(2scbuiltins
list
)(Rscbuiltins
list
()Rs]N(ascbuiltins
ValueError
)R}(bscbuiltins
ValueError
)R(}bs(NdsN(p1
sN(qsN(rs}NN(ss}N(Nss}(NNss}((uscbuiltins
list
)(�scbuiltins
list
()�sN(�sNN(�sN(N�sNNN(�sNN(N�sN(NN�s]((�scbuiltins
list
)}(�scbuiltins
list
)(}�scbuiltins
list
()}�sVbuiltins
(Vlist
�sVbuiltins
Vlist
(�sN(�rr�s   r�
test_bad_markz#AbstractUnpickleTests.test_bad_markus,��"
�
�F�A��'�'��(=�(=�q�A�rc��|jtd�|jtd�gd�}|D]}|j|j|�� y)Nr�N)U�BsBsBsBab�CsCsCab�FsF0.0sF0.00�GsGr+sI0�JsJ�K�LsL0sL10sL0LsL10L�MsM�SsS'abc'�TsTsTsTab�UsUsUab�VsVabcr!sXsXsXabs(cs
(cbuiltinss(cbuiltins
s(cbuiltins
listsNgsNg0s(is
(ibuiltinss(ibuiltins
s(ibuiltins
listsNhsNjsNjsNpsNp0sNqsNrsNr������s���s�����s���s�s�ab��s�s	�s�ab��s�s	�s�ab��s�s	�s�ab��s�s	�s
�N)r
�EOFErrorr�r�s   r�test_truncated_dataz)AbstractUnpickleTests.test_truncated_data�sM���#�#�H�c�2��#�#�H�d�3�X
�
�r�A��'�'��(=�(=�q�A�rc� �
���td�}td�}tjt�|j	t
jt�tjjdt�|j	tjjt�ttjjtd�d�5}|j|jd��ddd�ttjjtd�d�5}|j|jd��ddd�|j	td�|j	td	�ddl}d
�g�t#j$d��
�
��fd�}t#j&|�
�}t#j&|�
�}|j)�|j)��
j+�|j,j+�|j�|j�ddlm}|j3�D�	cgc]
}	t5|	���c}	|gdz�y#1swY��{xYw#1swY��1xYwcc}	w)NzI
        import threading
        barrier = threading.Barrier(2)
        zs
        import locker
        locker.barrier.wait()
        class ToBeUnpickled(object):
            pass
        rz	locker.py�wb�utf-8zlocking_import.py�locker�locking_imports'�clocking_import
ToBeUnpickled
q)�q.r�c�n���j��jtj���yr$)�waitr�rr)�barrier�pickle_bytes�resultss���r�tz:AbstractUnpickleTests.test_unpickle_module_race.<locals>.t!s#���
�L�L�N��N�N�6�<�<��5�6r)�target)�
ToBeUnpickledr�)rr��mkdirr�
addCleanup�shutil�rmtreer�r��insert�remove�openr�rGr"r
r5�	threading�Barrier�ThreadrCr8r9r6r>r�r�)
r.�
locker_module�locking_import_module�fr5r<�t1�t2r>r'r9r:r;s
          @@@r�test_unpickle_module_racez/AbstractUnpickleTests.test_unpickle_module_race�s����� �
�
�!'�(�!
��	���������
�
�v�.�������6�"����������0�
�"�'�'�,�,�v�{�3�T�
:�a�
�G�G�M�(�(��1�2�;�
�"�'�'�,�,�v�':�;�T�
B�a�
�G�G�)�0�0��9�:�C������)����� 0�1��
H�	����#�#�A�&��	7��
�
�Q�
'��
�
�
�Q�
'��
���
�
���
�����������
���	�
���	�0����%�&�g��T�!�W�g�&�
�O�a��	!�M;�
:��
B�
B��J
's�!I1�.!I>�J�1I;�>Jr$)>r<r=r>r�rrr
rrrrrr)r0rGrKrMrTrWr[r`rb�requires_32brgrjrmrprrrtrwryr|r~r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�cpython_onlyr�r�r�r�rrr1r�reap_threads�requires_working_threadingrNr%rrr�r�As����
�I�H�$	�?�?�?�?�?�7?�r6�/�<	E�	=�C�4�$�
B�B��,��,��,��,�;�?�B�;�@��,��,�
�,��,�
�,��,�
2�2�2�2�8�
�8��8�
=�C�$6�2�F�6T�]�((\�T(R�T
V�
���9��9�G�
F�G�0B�d%B�N]B�~�"�"�0��0�0�2�9!�3�#�9!rr�c�6�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Zd�Z d�Z!d �Z"d!�Z#d"�Z$d#�Z%d$�Z&d%�Z'e(d&��Z)d'�Z*d(�Z+d)�Z,d*�Z-e.j^d+��Z0y,)-�AbstractPicklingErrorTestsc	�D�ttdg�}tD]W}|j|��5|j	t
j�5|j||�ddd�ddd��Yttf�}tD]W}|j|��5|j	t
j�5|j||�ddd�ddd��Yttddddddf�}tD]W}|j|��5|j	t
j�5|j||�ddd�ddd��Yy#1swY��xYw#1swY��WxYw#1swY��xYw#1swY��xYw#1swY�ExYw#1swY��xYw�Nr%��proto��REXr
�	protocolsrrr�
PicklingError�dumps�r.r�rXs   r�test_bad_reduce_resultz1AbstractPicklingErrorTests.test_bad_reduce_result<sC���5�"�+����E����E��*��&�&�v�';�';�<��J�J�s�E�*�=�+�*��
�5�(�m���E����E��*��&�&�v�';�';�<��J�J�s�E�*�=�+�*��
�5�"�d�D�$��d�;�<���E����E��*��&�&�v�';�';�<��J�J�s�E�*�=�+�*��=�<��+�*��=�<��+�*��=�<��+�*�sk� E%�
E� E%� E>�=E2�E>� F�3F
�F�E"�E%�%E/	�2E;�7E>�>F	�
F�F�F	c�
�td�}tD]W}|j|��5|jtj
�5|j
||�ddd�ddd��Yy#1swY�xYw#1swY�pxYw)N)r�r%rW)rZr[rrrr\r]r^s   r�test_bad_reconstructorz1AbstractPicklingErrorTests.test_bad_reconstructorOsb���(�m���E����E��*��&�&�v�';�';�<��J�J�s�E�*�=�+�*��<�<��+�*�s#� A9�A-�A9�-A6�2A9�9B	c�
�tt�df�}tD]M}|j|��5|j	t
�5|j
||�ddd�ddd��Oy#1swY�xYw#1swY�fxYwrV)rZ�UnpickleableCallabler[rr�CustomErrorr]r^s   r�test_unpickleable_reconstructorz:AbstractPicklingErrorTests.test_unpickleable_reconstructorVsf���'�)�2�.�/���E����E��*��&�&�{�3��J�J�s�E�*�4�+�*��3�3��+�*�s#�A9�A-�A9�-A6�2A9�9B	c��ttgf�}tD]W}|j|��5|j	t
j�5|j||�ddd�ddd��Yy#1swY�xYw#1swY�pxYw�NrWrYr^s   r�test_bad_reconstructor_argsz6AbstractPicklingErrorTests.test_bad_reconstructor_args]sg���5�"�+����E����E��*��&�&�v�';�';�<��J�J�s�E�*�=�+�*��<�<��+�*�s#� A?�
A3� A?�3A<�8A?�?B	c��ttddtff�}tD]M}|j	|��5|jt�5|j||�ddd�ddd��Oy#1swY�xYw#1swY�fxYw�Nrr�rW�rZr
�UNPICKLEABLEr[rrrdr]r^s   r�$test_unpickleable_reconstructor_argsz?AbstractPicklingErrorTests.test_unpickleable_reconstructor_argsdsi���5�1�a��.�/�0���E����E��*��&�&�{�3��J�J�s�E�*�4�+�*��3�3��+�*�s#�A<�
A0�A<�0A9�5A<�<B	c�~�ttjdf�}tddD]]}|j	|��5|jttjf�5}|j||�ddd�ddd��_ttjtgf�}tddD]]}|j	|��5|jttjf�5|j||�ddd�ddd��_y#1swY��xYw#1swY��xYw#1swY�,xYw#1swY��xYw�Nr%r�rW)
rZrN�
__newobj__r[rr�
IndexErrorrr\r])r.r�rX�cms    r�test_bad_newobj_argsz/AbstractPicklingErrorTests.test_bad_newobj_argsks����7�%�%�r�*�+���q�r�]�E����E��*��&�&�
�F�4H�4H�'I�J�b��J�J�s�E�*�K�+�*�#�
�7�%�%��u�-�.���q�r�]�E����E��*��&�&�
�F�4H�4H�'I�J��J�J�s�E�*�K�+�*�#�	K�J��+�*��K�J��+�*�sG�&D� D�3D�&D3�)D'�<D3�D�D�D$	�'D0�,D3�3D<	c�B�ttjt�ff�}tddD]W}|j|��5|j
tj�5|j||�ddd�ddd��Yy#1swY�xYw#1swY�pxYw�Nr�rW)
rZrNrp�NoNewr[rrrr\r]r^s   r�test_bad_newobj_classz0AbstractPicklingErrorTests.test_bad_newobj_classxsx���7�%�%���z�2�3���q�r�]�E����E��*��&�&�v�';�';�<��J�J�s�E�*�=�+�*�#�<�<��+�*�s$� B�#B	�6B�	B�B�B	c�:�ttjtff�}tddD]W}|j|��5|j
tj�5|j||�ddd�ddd��Yy#1swY�xYw#1swY�pxYwru)
rZrNrprzr[rrrr\r]r^s   r�test_wrong_newobj_classz2AbstractPicklingErrorTests.test_wrong_newobj_classsv���7�%�%��v�.�/���q�r�]�E����E��*��&�&�v�';�';�<��J�J�s�E�*�=�+�*�#�<�<��+�*�s#� B�B�2B�B�
B�B	c�P�Gd�dt�}|tj|ff�}tD]]}|j	|��5|jtjtf�5|j||�ddd�ddd��_y#1swY�xYw#1swY�vxYw)Nc��eZdZy)�KAbstractPicklingErrorTests.test_unpickleable_newobj_class.<locals>.LocalREXNrlr%rr�LocalREXr|���rr}rW)
rZrNrpr[rrrr\r�r]�r.r}r�rXs    r�test_unpickleable_newobj_classz9AbstractPicklingErrorTests.test_unpickleable_newobj_class�s~��!�s�!���*�*�X�K�8�9���E����E��*��&�&��(<�(<�n�'M�N��J�J�s�E�*�O�+�*��N�N��+�*�s$�&B�*B�=B�B�B�B%	c�.�ttjtddtff�}tD]M}|j|��5|j
t�5|j||�ddd�ddd��Oy#1swY�xYw#1swY�fxYwrj)	rZrNrprlr[rrrdr]r^s   r�test_unpickleable_newobj_argsz8AbstractPicklingErrorTests.test_unpickleable_newobj_args�sq���7�%�%��Q��<�'@�A�B���E����E��*��&�&�{�3��J�J�s�E�*�4�+�*��3�3��+�*�s$�B�A?�,B�?B�B�B	c�b�ttjdf�}tddD]]}|j	|��5|jttjf�5|j||�ddd�ddd��_ttjdf�}tddD]W}|j	|��5|jtj�5|j||�ddd�ddd��Yttjtdiff�}|jtju}|r	tddntddD]]}|j	|��5|jttjf�5|j||�ddd�ddd��_ttjtdgff�}|r	tddntddD]]}|j	|��5|jttjf�5|j||�ddd�ddd��_y#1swY���xYw#1swY��>xYw#1swY��wxYw#1swY���xYw#1swY��xYw#1swY��AxYw#1swY�axYw#1swY��xYw)Nr%r�rWr�r�)
rZrN�
__newobj_ex__r[rrr-rr\r]�pickler�_Picklerr�)r.r�rX�is_pys    r�test_bad_newobj_ex_argsz2AbstractPicklingErrorTests.test_bad_newobj_ex_args�s'���7�(�(�"�-�.���q�r�]�E����E��*��&�&�
�F�4H�4H�'I�J��J�J�s�E�*�K�+�*�#�
�7�(�(�"�-�.���q�r�]�E����E��*��&�&�v�';�';�<��J�J�s�E�*�=�+�*�#�
�7�(�(�3��B�-�8�9��������/��',�Y�q��^�)�A�B�-�?�E����E��*��&�&�	�6�3G�3G�'H�I��J�J�s�E�*�J�+�*�@�
�7�(�(�3��B�-�8�9��',�Y�q��^�)�A�B�-�?�E����E��*��&�&�	�6�3G�3G�'H�I��J�J�s�E�*�J�+�*�@�#K�J��+�*��=�<��+�*��J�I��+�*��J�I��+�*�s��&I� I�3I�> I3�I&�1I3�*&J�J�#J�&J%�&J�9J%�I�I�I#	�&I0�+I3�3I=	�J	�J�J	�J"�J%�%J.	c�F�ttjt�diff�}tddD]W}|j|��5|j
tj�5|j||�ddd�ddd��Yy#1swY�xYw#1swY�pxYwro)
rZrNr�rvr[rrrr\r]r^s   r�test_bad_newobj_ex__classz4AbstractPicklingErrorTests.test_bad_newobj_ex__class�s}���7�(�(�5�7�B��*;�<�=���q�r�]�E����E��*��&�&�v�';�';�<��J�J�s�E�*�=�+�*�#�<�<��+�*�s$� B�%B�8B�B�B�B 	c��|jtjur|jd�t	t
jtdiff�}tddD]W}|j|��5|jtj�5|j||�ddd�ddd��Yy#1swY�xYw#1swY�pxYw)Nz*only verified in the Python implementationr%r�rW)
r�rr��skipTestrZrNr�rzr[rrr\r]r^s   r�test_wrong_newobj_ex_classz5AbstractPicklingErrorTests.test_wrong_newobj_ex_class�s����<�<�v���.��M�M�F�G��7�(�(�3��B�-�8�9���q�r�]�E����E��*��&�&�v�';�';�<��J�J�s�E�*�=�+�*�#�<�<��+�*�s$�. C�B4�!C�4B=�9C�C		c�T�Gd�dt�}|tj|diff�}tD]]}|j	|��5|jtjtf�5|j||�ddd�ddd��_y#1swY�xYw#1swY�vxYw)Nc��eZdZy)�NAbstractPicklingErrorTests.test_unpickleable_newobj_ex_class.<locals>.LocalREXNrlr%rrr}r��r~rr}r%rW)
rZrNr�r[rrrr\r�r]rs    r�!test_unpickleable_newobj_ex_classz<AbstractPicklingErrorTests.test_unpickleable_newobj_ex_class�s���!�s�!���-�-��"�b�/A�B�C���E����E��*��&�&��(<�(<�n�'M�N��J�J�s�E�*�O�+�*��N�N��+�*�s$�&B�,B�?B�B�B�B'	c�2�ttjtddtfiff�}tD]M}|j|��5|j
t�5|j||�ddd�ddd��Oy#1swY�xYw#1swY�fxYwrj�	rZrNr�rlr[rrrdr]r^s   r� test_unpickleable_newobj_ex_argsz;AbstractPicklingErrorTests.test_unpickleable_newobj_ex_args�sv���7�(�(�3��A�|�0D�b�*I�J�K���E����E��*��&�&�{�3��J�J�s�E�*�4�+�*��3�3��+�*�s$�B
�B�.B
�B
�B
�
B	c�0�ttjtddtiff�}tD]M}|j|��5|j
t�5|j||�ddd�ddd��Oy#1swY�xYw#1swY�fxYw)Nr%r�rWr�r^s   r�"test_unpickleable_newobj_ex_kwargsz=AbstractPicklingErrorTests.test_unpickleable_newobj_ex_kwargs�st���7�(�(�3��S�,�4G�*H�I�J���E����E��*��&�&�{�3��J�J�s�E�*�4�+�*��3�3��+�*�s$�B�B�-B�B	�B�B	c��tt�}tD]M}|j|��5|j	t
�5|j
||�ddd�ddd��Oy#1swY�xYw#1swY�fxYwrg)�	REX_staterlr[rrrdr]r^s   r�test_unpickleable_statez2AbstractPicklingErrorTests.test_unpickleable_state�s]����%���E����E��*��&�&�{�3��J�J�s�E�*�4�+�*��3�3��+�*�s#�A3�A'�A3�'A0�,A3�3A<	c�x�|jtjur|jd�t	t
dddddf�}tD]W}|j|��5|jtj�5|j||�ddd�ddd��Yy#1swY�xYw#1swY�pxYw)N�%only verified in the C implementationr%�stater�rW)r�rr�r�rZr
r[rrr\r]r^s   r�test_bad_state_setterz0AbstractPicklingErrorTests.test_bad_state_setter�s����<�<�6�?�?�*��M�M�A�B��5�"�g�t�T�2�6�7���E����E��*��&�&�v�';�';�<��J�J�s�E�*�=�+�*��<�<��+�*�s$� B0�>B$�B0�$B-�)B0�0B9	c	��ttddddt�f�}tD]M}|j	|��5|jt�5|j||�ddd�ddd��Oy#1swY�xYw#1swY�fxYw)Nr%r�rW)rZr
rcr[rrrdr]r^s   r�test_unpickleable_state_setterz9AbstractPicklingErrorTests.test_unpickleable_state_setter�sn���5�"�g�t�T�3G�3I�J�K���E����E��*��&�&�{�3��J�J�s�E�*�4�+�*��3�3��+�*��#�B�A5�"B�5A>�:B�B
	c��ttdtddtf�}tD]M}|j	|��5|jt�5|j||�ddd�ddd��Oy#1swY�xYw#1swY�fxYwrVrkr^s   r�)test_unpickleable_state_with_state_setterzDAbstractPicklingErrorTests.test_unpickleable_state_with_state_setter�sj���5�"�l�D�$��>�?���E����E��*��&�&�{�3��J�J�s�E�*�4�+�*��3�3��+�*�r�c��ttdddf�}tD]]}|j|��5|j	t
tjf�5|j||�ddd�ddd��_|jtjurzttddgf�}tD]]}|j|��5|j	t
tjf�5|j||�ddd�ddd��_yy#1swY��xYw#1swY��
xYw#1swY�.xYw#1swY��xYw)Nr%r�rW)rZr�r[rrr�rr\r]r�r�r^s   r�test_bad_object_list_itemsz5AbstractPicklingErrorTests.test_bad_object_list_items�s���4��T�2�&�'���E����E��*��&�&�	�6�3G�3G�'H�I��J�J�s�E�*�J�+�*��
�<�<�v���.��t�R��r�*�+�C�"���\�\��\�.��*�*�I�v�7K�7K�+L�M��
�
�3��.�N�/�.�#�/�J�I��+�*��N�M��/�.�sG�&D�D�(D�&D6�*D*�=D6�D�D�D'	�*D3�/D6�6D?	c��tddtg�}tD]M}|j|��5|j	t
�5|j
||�ddd�ddd��Oy#1swY�xYw#1swY�fxYwrj)�REX_sixrlr[rrrdr]r^s   r�#test_unpickleable_object_list_itemsz>AbstractPicklingErrorTests.test_unpickleable_object_list_itemssd���q�!�\�*�+���E����E��*��&�&�{�3��J�J�s�E�*�4�+�*��3�3��+�*�s#�A6�A*�A6�*A3�/A6�6A?	c
��ttddddf�}tD]]}|j|��5|j	t
tjf�5|j||�ddd�ddd��_tD]q}ttdddtdg�f�}|j|��5|j	tt
f�5|j||�ddd�ddd��s|jtjur{ttdddgf�}tD]]}|j|��5|j	t
tjf�5|j||�ddd�ddd��_yy#1swY��&xYw#1swY���xYw#1swY��xYw#1swY��<xYw#1swY�HxYw#1swY��xYw)Nr%r�rW�r�)
rZr�r[rrr�rr\r]�iterr-r�r�r^s   r�test_bad_object_dict_itemsz5AbstractPicklingErrorTests.test_bad_object_dict_itemss|���4��T�4��,�-���E����E��*��&�&�	�6�3G�3G�'H�I��J�J�s�E�*�J�+�*��
�E��t�R��t�T�6�(�^�<�=�C����E��*��&�&�
�I�'>�?��J�J�s�E�*�@�+�*���<�<�v���.��t�R��t�R�0�1�C�"���\�\��\�.��*�*�I�v�7K�7K�+L�M��
�
�3��.�N�/�.�#�/�J�I��+�*��@�?��+�*��N�M��/�.�sk�&F�F
�)F�4F3�F'�#F3�&G�&G�9G�
F�F�F$	�'F0�,F3�3F=	�G	�G�G	c��tdti�}tD]M}|j|��5|j	t
�5|j
||�ddd�ddd��Oy#1swY�xYw#1swY�fxYw)Nr�rW)�	REX_sevenrlr[rrrdr]r^s   r�#test_unpickleable_object_dict_itemsz>AbstractPicklingErrorTests.test_unpickleable_object_dict_items"sb����l�+�,���E����E��*��&�&�{�3��J�J�s�E�*�4�+�*��3�3��+�*�s#�A5�A)�A5�)A2�.A5�5A>	c	��dddtgg}tD]M}|j|��5|jt�5|j||�ddd�ddd��OdD]k}gt
|��t�}tD]M}|j|��5|jt�5|j||�ddd�ddd��O�my#1swY��xYw#1swY��xYw#1swY�.xYw#1swY��xYw)Nrr�r�rW�rr��i��rlr[rrrdr]r9�r.r�rXr!s    r�test_unpickleable_list_itemsz7AbstractPicklingErrorTests.test_unpickleable_list_items)s����1�a��&�'���E����E��*��&�&�{�3��J�J�s�E�*�4�+�*��$�A�+�E�!�H�+�l�+�C�"���\�\��\�.��*�*�;�7��
�
�3��.�8�/�.�#�$�4�3��+�*��8�7��/�.�sF�C�C�C�C7�+C+	�>C7�C�C�C(	�+C4
�0C7�7Dc��dddtff}tD]M}|j|��5|jt�5|j||�ddd�ddd��Ogt
d��t��}tD]M}|j|��5|jt�5|j||�ddd�ddd��Oy#1swY�~xYw#1swY��xYw#1swY�,xYw#1swY�~xYw)Nrr�r�rW�
r�r^s   r�test_unpickleable_tuple_itemsz8AbstractPicklingErrorTests.test_unpickleable_tuple_items6s����1�a��&�'���E����E��*��&�&�{�3��J�J�s�E�*�4�+�*��)��b�	�(�<�(���E����E��*��&�&�{�3��J�J�s�E�*�4�+�*��4�3��+�*��4�3��+�*�sF�C�C
�C�C1�'C%�:C1�
C�C�C"	�%C.�*C1�1C:	c	�.�ddtii}tD]M}|j|��5|jt�5|j||�ddd�ddd��OdD]�}tjt|��}t|d<tD]N}|j||��5|jt�5|j||�ddd�ddd��P��y#1swY��xYw#1swY��xYw#1swY�.xYw#1swY��xYw)Nr�r�rWr�)rXr!)	rlr[rrrdr]r��fromkeysr9r�s    r�test_unpickleable_dict_itemsz7AbstractPicklingErrorTests.test_unpickleable_dict_itemsBs����S�,�'�(���E����E��*��&�&�{�3��J�J�s�E�*�4�+�*��$�A��-�-��a��)�C�#�C��H�"���\�\���\�3��*�*�;�7��
�
�3��.�8�4�3�#�$�4�3��+�*��8�7��4�3�sF�C3�C'�C3�)D�?C?	�D�'C0�,C3�3C<	�?D
�D�Dc���th}tD]M}|j|��5|jt�5|j||�ddd�ddd��Oy#1swY�xYw#1swY�fxYwrg)rlr[rrrdr]r^s   r�test_unpickleable_set_itemsz6AbstractPicklingErrorTests.test_unpickleable_set_itemsPsZ���n���E����E��*��&�&�{�3��J�J�s�E�*�4�+�*��3�3��+�*�s"�A+�A�A+�A(�$A+�+A4	c��ttth�h�}tD]M}|j|��5|j	t
�5|j
||�ddd�ddd��Oy#1swY�xYw#1swY�fxYwrg)�	frozensetrlr[rrrdr]r^s   r�!test_unpickleable_frozenset_itemsz<AbstractPicklingErrorTests.test_unpickleable_frozenset_itemsWsg����L�>�2�3�4���E����E��*��&�&�{�3��J�J�s�E�*�4�+�*��3�3��+�*�s#�A>�A2�A>�2A;�7A>�>B	c�0�td�}t|_tD]W}|j	|��5|jtj�5|j||�ddd�ddd��Yd|_tD]W}|j	|��5|jtj�5|j||�ddd�ddd��Yd|_tD]]}|j	|��5|jttjf�5|j||�ddd�ddd��_d|_tD]W}|j	|��5|jtj�5|j||�ddd�ddd��Yy#1swY��PxYw#1swY���xYw#1swY��xYw#1swY��`xYw#1swY��xYw#1swY��xYw#1swY�axYw#1swY��xYw)Nr�rW�nonexistingrY)
rZr<r=r[rrrr\r]r-r^s   r�test_global_lookup_errorz3AbstractPicklingErrorTests.test_global_lookup_error^s����&�k��!����E����E��*��&�&�v�';�';�<��J�J�s�E�*�=�+�*��
'����E����E��*��&�&�v�';�';�<��J�J�s�E�*�=�+�*��
����E����E��*��&�&�
�F�4H�4H�'I�J��J�J�s�E�*�K�+�*��
����E����E��*��&�&�v�';�';�<��J�J�s�E�*�=�+�*��!=�<��+�*��=�<��+�*��K�J��+�*��=�<��+�*�s�� G�F3�%G� G�9G
�G�&G3�&G'�9G3�- H�
H� H�3F=�8G�G
	�
G�G�G$	�'G0�,G3�3G=	�H	�H�H	c	��tddD]�}|j|��5|dkrdnd}t|�}t|_tjt�||�5|jttjf�5|j||�ddd�ddd�ddd���y#1swY�xYw#1swY� xYw#1swY��xYw)Nr�rWr��
nonasciiÿ�nonencodable�)
r[rrZr<r=rr��globalsrr@rr\r])r.rXr�r�s    r�#test_nonencodable_global_name_errorz>AbstractPicklingErrorTests.test_nonencodable_global_name_errorys����r��]�E����E��*�).���~�8L���$�i��!)����&�&�w�y�$��<��*�*�,>��@T�@T�+U�V��
�
�3��.�W�=�	+�*�#�W�V��=�<��	+�*�s;�?C
�&B>�B2	�B>�C
�2B;
�7B>�>C�C
�
C	c	���tddD]�}|j|��5|dkrdnd}td�}||_t	j
|��}t
jtj||�5|jttjf�5|j||�ddd�ddd�ddd���y#1swY�xYw#1swY� xYw#1swY��xYw)Nr�rWr�r�r��test)r�)r[rrZr=r�r�rr�r�r�rr@rr\r])r.rXr�r��mods     r�#test_nonencodable_module_name_errorz>AbstractPicklingErrorTests.test_nonencodable_module_name_error�s����r��]�E����E��*�).���~�8L���&�k��!%����+�+��5���&�&�s�{�{�D�#�>��*�*�,>��@T�@T�+U�V��
�
�3��.�W�?�+�*�#�W�V��?�>��+�*�s<�AC"�6&C�C
	�/C�7C"�
C
�C�C�C"�"C+	c��td�}t|_tD]W}|j	|��5|jtj�5|j||�ddd�ddd��Yd|_tD]W}|j	|��5|jtj�5|j||�ddd�ddd��Yy#1swY�{xYw#1swY��xYw#1swY�,xYw#1swY��xYw)NzAbstractPickleTests.spamrW)	rZr<r=r[rrrr\r]r^s   r�test_nested_lookup_errorz3AbstractPicklingErrorTests.test_nested_lookup_error�s����,�-��!����E����E��*��&�&�v�';�';�<��J�J�s�E�*�=�+�*��
����E����E��*��&�&�v�';�';�<��J�J�s�E�*�=�+�*��	=�<��+�*��=�<��+�*�sG� C+�C�%C+� D�9C7�D�C(�$C+�+C4	�7D�<D�D	c�4�td�}t|_gt_t
D]W}|j
|��5|jtj�5|j||�ddd�ddd��Yd|_t
D]W}|j
|��5|jtj�5|j||�ddd�ddd��Yy#1swY�{xYw#1swY��xYw#1swY�,xYw#1swY��xYw)N�AbstractPickleTestsrW)rZr<r=r��hamr[rrrr\r]r^s   r�test_wrong_object_lookup_errorz9AbstractPicklingErrorTests.test_wrong_object_lookup_error�s����'�(��!���"$����E����E��*��&�&�v�';�';�<��J�J�s�E�*�=�+�*��
����E����E��*��&�&�v�';�';�<��J�J�s�E�*�=�+�*��	=�<��+�*��=�<��+�*�sG� C6�C*�0C6�$ D�D�D�*C3�/C6�6C?	�D�D�D	c�(�d�}tD]]}|j|��5|jttj
f�5|j
||�ddd�ddd��_|`tD]]}|j|��5|jttj
f�5|j
||�ddd�ddd��_|j|_	tD]]}|j|��5|jttj
f�5|j
||�ddd�ddd��_y#1swY��xYw#1swY��VxYw#1swY��xYw#1swY��xYw#1swY�FxYw#1swY��xYw)Nc��yr$r%r%rrrKz=AbstractPicklingErrorTests.test_local_lookup_error.<locals>.f����rrW)
r[rrr�rr\r]r=r>r<�r.rKrXs   r�test_local_lookup_errorz2AbstractPicklingErrorTests.test_local_lookup_error�s=��	��E����E��*��&�&���8L�8L�'M�N��J�J�q�%�(�O�+�*��
�L��E����E��*��&�&���8L�8L�'M�N��J�J�q�%�(�O�+�*��
�^�^��
��E����E��*��&�&���8L�8L�'M�N��J�J�q�%�(�O�+�*��O�N��+�*��O�N��+�*��O�N��+�*�sk�&E�E
�E�&E/�-E#�E/�>&F�$E<�7F�
E�E�E 	�#E,�(E/�/E9	�<F�F�F	c���|jtjur|jd�t	�}|jt�5|j|�ddd�y#1swYyxYw)Nr�)r�rr�r��REX_Nonerr�r]�r.r�s  r�test_reduce_ex_Nonez.AbstractPicklingErrorTests.test_reduce_ex_None�sK���<�<�6�?�?�*��M�M�A�B��J��
�
�
�y�
)��J�J�q�M�*�
)�
)�s�
A(�(A1c��t�}|jt�5|j|�ddd�y#1swYyxYwr$)�R_Nonerr�r]r�s  r�test_reduce_Nonez+AbstractPicklingErrorTests.test_reduce_None�s.���H��
�
�
�y�
)��J�J�q�M�*�
)�
)�s	�;�Ac�8�t�}td�D]B}tjd�5|j	t
|j||�ddd��Dtdtjdz�D]}|j
||�}�y#1swY��xYw)Nr��r)	�
BadGetattrr9r�infinite_recursionr�RuntimeErrorr]r�HIGHEST_PROTOCOL)r.r'rX�ss    r�test_bad_getattrz+AbstractPicklingErrorTests.test_bad_getattr�s~��
�L���1�X�E��+�+�B�/��!�!�,��
�
�A�u�E�0�/���1�f�5�5��9�:�E��
�
�1�e�$�A�;�0�/�s�#B�B	c�t�tjd�}tdd�D]|}|j|��5|j	tj
�5}|j
||�ddd�|jtj�d�ddd��~y#1swY�9xYw#1swY��xYw)N�foobarrr�rWz3PickleBuffer can only be pickled with protocol >= 5)
rr�r9rr�PickleErrorr]r�rz�	exception)r.r�rXrrs    r�test_picklebuffer_errorz2AbstractPicklingErrorTests.test_picklebuffer_error�s���
�
 �
 ��
+���1�a�[�E����E��*��&�&�v�'9�'9�:�b��J�J�r�5�)�;�� � ��R�\�\�!2�I�K�+�*�!�:�:��+�*�s#� B.�B"�*-B.�"B+�'B.�.B7	c�N�tddD]�}|j|��5tjt	d�ddd��}|jtjtf�5|j||�ddd�ddd���y#1swY�xYw#1swY��xYw)Nr�rWr�r�)	r[rrr�r�rr\�BufferErrorr])r.rXr�s   r�test_non_continuous_bufferz5AbstractPicklingErrorTests.test_non_continuous_buffer�s����q�r�]�E����E��*��(�(��I�)>�s��s�)C�D���&�&��(<�(<�k�'J�K��J�J�r�5�)�L�+�*�#�L�K��+�*�s$�A
B�)B�<B�B�B�B$	c��d�}tjd�}|jt�5|j	|d|��ddd�y#1swYyxYw)Nc��t�r$�rd��bufferss r�buffer_callbackzNAbstractPicklingErrorTests.test_buffer_callback_error.<locals>.buffer_callback�s���rr�r��r�)rr�rrdr])r.r�r�s   r�test_buffer_callback_errorz5AbstractPicklingErrorTests.test_buffer_callback_error�sC��	�
�
 �
 ��
+��
�
�
�{�
+��J�J�r�1�o�J�>�,�
+�
+�s�A�Ac�|���Gd�d�a��fd�}tD]��|t�g�|t�t�g�|t�h�|t�t�h�|t�di�|t�dt�di�|t�t�d����y)Nc��eZdZy)�ClearerNrlr%rrr�r�����rr�c����G�fd�d�j�}|tj���}	|j��y#t$r'}d}�j|t
|��Yd}~yd}~wwxYw)Nc���eZdZ�fd�Zy)�dAbstractPicklingErrorTests.test_evil_pickler_mutating_collection.<locals>.check.<locals>.EvilPicklerc�F��t|t�r�j�yr$)r�r��clear)r.r��
collections  �r�
persistent_idzrAbstractPicklingErrorTests.test_evil_pickler_mutating_collection.<locals>.check.<locals>.EvilPickler.persistent_id�s���!�#�w�/�"�(�(�*�rN)r<r=r>r)r�s�r�EvilPicklerr��s��� rr�changed size during iteration)r�r6rB�dumpr��assertInrz)r�rr��er�rXr.s`    ��rr�zOAbstractPicklingErrorTests.test_evil_pickler_mutating_collection.<locals>.check�sb���
 �d�l�l�
 �
"�"�*�*�,��6�G�
0����Z�(���
0�:���
�
�h��A��/�/��
0�s�A�	A8�A3�3A8rr��rr�)r�r[)r.r�rXs` @r�%test_evil_pickler_mutating_collectionz@AbstractPicklingErrorTests.test_evil_pickler_mutating_collection�s����	�	�	0��E��7�9�+���7�9�g�i�(�)��7�9�+���7�9�g�i�(�)��7�9�a�.�!��7�9�a���A�.�/��g�i�G�I�.�/�rc����tdf���fd�}|t�t�|dt�|dttj
f�|dt�|dtttj
f�|ddzttj
f�|ddzttj
f�y)Nr�c	���tjtj�|�5tjtj|��5t
ddD]2}�j
|�5�jt|�ddd��4	ddd�ddd�y#1swY�PxYw#1swY�xYw#1swYyxYw�Nr�)	rr�rN�_extension_registryrOr[rr]r�)rrrXr2r.s   ��rr�z;AbstractPicklingErrorTests.test_bad_ext_code.<locals>.checks�����#�#�G�$?�$?��d�K��#�#�G�$>�$>��c�J�&�q�r�]�E��*�*�3�/��
�
�6�5�1�0�/�+�K�L�K�0�/��K�J��L�K�s;�&B6�
B*�+B	�
B*�
B6�B'
�#B*�*B3	�/B6�6B?r�rlr�r�)r<rAr�r�rQr�rf)r.r�r2s` @rr�z,AbstractPicklingErrorTests.test_bad_ext_codes������"��	2�	�f�h�	�"�
�d�I��
�b�<����.�/�
�a���
�e�l�M�6�<�<�@�A�
�a��g�
�v�|�|�4�5�
�q�$�w�h�����5�6rN)1r<r=r>r_rarerhrmrsrwryr�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�rrrPr�r%rrrTrT9s���+�&+�+�+�+�+�+�+�+�+�+�4+�+�+�+�+�+�+�+�+�/�"+�/�.+�/�
+�/�+�+�+�6/�	/�
+�+� )�0��
�%��%�K�*�?�0�8
���7��7rrTc���eZdZdZej
Zd�ZejZd�Zd�Z	d�Z
edfd�Zd�Z
d	�Zd
�Zedfd�Zd�Zd
�Zd�Zedfd�Zd�Zd�Zd�Zedfd�Zd�Zd�Zd�Zedfd�Zd�Zd�Zd�Zedfd�Z d�Z!d�Z"d�Z#d�Z$d �Z%d!�Z&d"�Z'd#�Z(d$�Z)d%�Z*d&�Z+d'�Z,d(�Z-d)�Z.d*�Z/d+�Z0d,�Z1d-�Z2d.�Z3d/�Z4d0�Z5d1�Z6d2�Z7d3�Z8d4�Z9d5�Z:d6�Z;d7�Z<d8�Z=e>d9d:d;�d<��Z?d=�Z@d>�ZAd?�ZBd@�ZCdA�ZDdB�ZEdC�ZFdD�ZGdE�ZHdF�ZIdG�ZJdH�ZKdI�ZLdJ�ZMdK�ZNdL�ZOdM�ZPdN�ZQdO�ZRdP�ZSdQ�ZTdR�ZUdS�ZVdT�ZWdU�ZXdV�ZYdW�ZZdX�Z[dY�Z\dZ�Z]d[�Z^d\�Z_d]�Z`d^�Zad_�Zbd`�Zcda�Zddb�Zedc�Zfdd�Zgde�Zhdf�Zidg�Zjdh�Zkdi�Zldj�Zmdk�ZndlZodmZpdn�Zqerj�erj�do�dp���Zudq�Zvdr�Zwerj�ds��Zxdt�Zydu�Zzdv�Z{dw�Z|dx�Z}dy�Z~dz�Zd{�Z�d|�Z�d}�Z�d~�Z�d�Z�e��je�d�ud��d���Z�d��Z�y�)�r�Fc��yr$r%r2s r�setUpzAbstractPickleTests.setUp-rbrc��tD]�}td�}|j||�}|j|�}|j	||�d}|j||�}|j|�}|j	||�td|�}|j||�}|j|�}|j	||���y)Nr�)rr%r)r[rwr]rrr}�r.rXr'r�r�s     r�	test_misczAbstractPickleTests.test_misc2s����E��a��A��
�
�1�e�$�A��
�
�1�
�A�����1�%��A��
�
�1�e�$�A��
�
�1�
�A�����1�%���1�
�A��
�
�1�e�$�A��
�
�1�
�A�����1�%�rc��|j}tD]7}|j||�}|j|�}|j	||��9yr$)rr[r]rr)r.r�rXr�r/s     r�test_roundtrip_equalityz+AbstractPickleTests.test_roundtrip_equalityFsB���>�>���E��
�
�8�U�+�A��*�*�Q�-�C�����#�.�rc���ddlm}ddlm}dtfdt
ffD]T\}}|j
|j|�}|�}|||��|j�}|j||��Vy)Nr)�StringIO��disr)�out)
r6rrr�	DATA0_DIS�	DATA1_DISr]rrDr�)r.rrrXr�r��fileliker/s        r�dont_test_disassemblyz)AbstractPickleTests.dont_test_disassemblySsf���#� !�9�~��9�~�=�O�E�8��
�
�4�>�>�5�1�A��z�H���x� ��#�#�%�C����X�s�+� >rrc�R�|�}|j|�t|tjdz�D]o}|j	||�}|j|�}|j
||�||�}|jt|�d�|j|d|��qy�Nrr)
r�r9rr�r]r�assertIsInstancer��lenr�)	r.r��aslist�minprotocol�lrXr�r'r�s	         r�_test_recursive_listz(AbstractPickleTests._test_recursive_list^s����E��	������;��(?�(?�!�(C�D�E��
�
�1�e�$�A��
�
�1�
�A��!�!�!�S�)��q�	�A����S��V�Q�'��M�M�!�A�$��"�
Erc�.�|jt�yr$)r$r�r2s r�test_recursive_listz'AbstractPickleTests.test_recursive_listj����!�!�$�'rc�2�|jtd��y�Nr�)r")r$r�r2s r�test_recursive_list_subclassz0AbstractPickleTests.test_recursive_list_subclassm����!�!�&�a�!�8rc�4�|jtd���y)Nc��|jSr$�r�r&s r�<lambda>z>AbstractPickleTests.test_recursive_list_like.<locals>.<lambda>qs��A�G�Gr�r!)r$r�r2s r�test_recursive_list_likez,AbstractPickleTests.test_recursive_list_likeps���!�!�'�2C�!�Drc�b�|�f}|dj|�t|tjdz�D]�}|j	||�}|j|�}|j
|t�|jt|�d�|j
|d|�||d�}|jt|�d�|j|d|���|\}t|tjdz�D]�}|j	||�}|j|�}|j
||�||�}|jt|�d�|j
|dt�|jt|d�d�|j|dd|���yrM)r�r9rr�r]rr�tupler�r r�)	r.r�r!r"r<rXr�r'r�s	         r�_test_recursive_tuple_and_listz2AbstractPickleTests._test_recursive_tuple_and_listssq��
�U�H��	�!����A���;��(?�(?�!�(C�D�E��
�
�1�e�$�A��
�
�1�
�A��!�!�!�U�+����S��V�Q�'��!�!�!�A�$��,��q��t��A����S��V�Q�'��M�M�!�A�$��"�E�����;��(?�(?�!�(C�D�E��
�
�1�e�$�A��
�
�1�
�A��!�!�!�S�)��q�	�A����S��V�Q�'��!�!�!�A�$��.����S��1��Y��*��M�M�!�A�$�q�'�1�%�Erc�.�|jt�yr$)r4r�r2s r�test_recursive_tuple_and_listz1AbstractPickleTests.test_recursive_tuple_and_list�����+�+�D�1rc�2�|jtd��yr))r4r�r2s r�&test_recursive_tuple_and_list_subclassz:AbstractPickleTests.test_recursive_tuple_and_list_subclass�����+�+�F��+�Brc�4�|jtd���y)Nc��|jSr$r.r&s rr/zHAbstractPickleTests.test_recursive_tuple_and_list_like.<locals>.<lambda>�s��a�g�grr0)r4r�r2s r�"test_recursive_tuple_and_list_likez6AbstractPickleTests.test_recursive_tuple_and_list_like�s���+�+�G�<M�+�Nrc�X�|�}||d<t|tjdz�D]~}|j||�}|j	|�}|j||�||�}|j
t|j��dg�|j|d|���y�Nr)
r9rr�r]rrr�r�r;r��	r.r��asdictr"�drXr�r'r�s	         r�_test_recursive_dictz(AbstractPickleTests._test_recursive_dict�s����E����!���;��(?�(?�!�(C�D�E��
�
�1�e�$�A��
�
�1�
�A��!�!�!�S�)��q�	�A����T�!�&�&�(�^�a�S�1��M�M�!�A�$��"�
Erc�.�|jt�yr$)rCr�r2s r�test_recursive_dictz'AbstractPickleTests.test_recursive_dict�r'rc�2�|jtd��yr))rC�MyDictr2s r�test_recursive_dict_subclassz0AbstractPickleTests.test_recursive_dict_subclass�r+rc�4�|jtd���y)Nc��|jSr$��tabler&s rr/z>AbstractPickleTests.test_recursive_dict_like.<locals>.<lambda>�s��a�g�gr�rA)rCr�r2s r�test_recursive_dict_likez,AbstractPickleTests.test_recursive_dict_like�s���!�!�)�4E�!�Frc�N�|�f}||dd<t|tjdz�D]�}|j||�}|j	|�}|j|t�|jt|�d�|j|d|�||d�}|jt|�dg�|j|d|���|\}t|tjdz�D]�}|j||�}|j	|�}|j||�||�}|jt|�dg�|j|dt�|jt|d�d�|j|dd|���yrM)r9rr�r]rrr3r�r r�r��	r.r�rAr"r<rXr�r'r�s	         r�_test_recursive_tuple_and_dictz2AbstractPickleTests._test_recursive_tuple_and_dict�ss��
�U�H����!��Q���;��(?�(?�!�(C�D�E��
�
�1�e�$�A��
�
�1�
�A��!�!�!�U�+����S��V�Q�'��!�!�!�A�$��,��q��t��A����T�!�W�q�c�*��M�M�!�A�$��"�E�����;��(?�(?�!�(C�D�E��
�
�1�e�$�A��
�
�1�
�A��!�!�!�S�)��q�	�A����T�!�W�q�c�*��!�!�!�A�$��.����S��1��Y��*��M�M�!�A�$�q�'�1�%�Erc�.�|jt�yr$)rQr�r2s r�test_recursive_tuple_and_dictz1AbstractPickleTests.test_recursive_tuple_and_dict�r7rc�2�|jtd��yr))rQrGr2s r�&test_recursive_tuple_and_dict_subclassz:AbstractPickleTests.test_recursive_tuple_and_dict_subclass�r:rc�4�|jtd���y)Nc��|jSr$rKr&s rr/zHAbstractPickleTests.test_recursive_tuple_and_dict_like.<locals>.<lambda>�s����rrM)rQr�r2s r�"test_recursive_tuple_and_dict_likez6AbstractPickleTests.test_recursive_tuple_and_dict_like�s���+�+�I�>O�+�Prc�
�|�}d|t|�<t|tjdz�D]�}|j	||�}|j|�}|j
||�||�}|jt|j��d�|j
t|j��dt�|jt|j��dj|���yr)
ror9rr�r]rrr�r r;r�r�rqr@s	         r�_test_recursive_dict_keyz,AbstractPickleTests._test_recursive_dict_key�s���
�E����!�A�$���;��(?�(?�!�(C�D�E��
�
�1�e�$�A��
�
�1�
�A��!�!�!�S�)��q�	�A����S�����]�A�.��!�!�$�q�v�v�x�.��"3�Q�7��M�M�$�q�v�v�x�.��+�1�1�1�5�Erc�.�|jt�yr$)rZr�r2s r�test_recursive_dict_keyz+AbstractPickleTests.test_recursive_dict_key�s���%�%�d�+rc�2�|jtd��yr))rZrGr2s r� test_recursive_dict_subclass_keyz4AbstractPickleTests.test_recursive_dict_subclass_key�s���%�%�f�!�%�<rc�4�|jtd���y)Nc��|jSr$rKr&s rr/zBAbstractPickleTests.test_recursive_dict_like_key.<locals>.<lambda>�s��!�'�'rrM)rZr�r2s r�test_recursive_dict_like_keyz0AbstractPickleTests.test_recursive_dict_like_key�s���%�%�i�8I�%�Jrc�2�|�f}d|dt|�<t|tjdz�D]�}|j	||�}|j|�}|j
|t�|jt|�d�|j
|d|�||d�}|jt|�d�|j
t|j��dt�|jt|j��dj|���|\}t|tjdz�D]�}|j	||�}|j|�}|j
||�||�}|jt|�d�|j
t|j��dt�|jt|j��djd|���yr)ror9rr�r]rrr3r�r r�r;r�rqrPs	         r�"_test_recursive_tuple_and_dict_keyz6AbstractPickleTests._test_recursive_tuple_and_dict_key�s����U�H����!��Q�q�T�
��;��(?�(?�!�(C�D�E��
�
�1�e�$�A��
�
�1�
�A��!�!�!�U�+����S��V�Q�'��!�!�!�A�$��,��q��t��A����S��V�Q�'��!�!�$�q�v�v�x�.��"3�Q�7��M�M�$�q�v�v�x�.��+�1�1�1�5�E�����;��(?�(?�!�(C�D�E��
�
�1�e�$�A��
�
�1�
�A��!�!�!�S�)��q�	�A����S��V�Q�'��!�!�$�q�v�v�x�.��"3�Q�7��M�M�$�q�v�v�x�.��+�1�1�!�4�a�8�Erc�.�|jt�yr$)rcr�r2s r�!test_recursive_tuple_and_dict_keyz5AbstractPickleTests.test_recursive_tuple_and_dict_key	s���/�/��5rc�2�|jtd��yr))rcrGr2s r�*test_recursive_tuple_and_dict_subclass_keyz>AbstractPickleTests.test_recursive_tuple_and_dict_subclass_key	s���/�/��A�/�Frc�4�|jtd���y)Nc��|jSr$rKr&s rr/zLAbstractPickleTests.test_recursive_tuple_and_dict_like_key.<locals>.<lambda>	s��A�G�GrrM)rcr�r2s r�&test_recursive_tuple_and_dict_like_keyz:AbstractPickleTests.test_recursive_tuple_and_dict_like_key	s���/�/�	�BS�/�Trc�d�t�}|jt|��tdtj
dz�D]�}|j
||�}|j|�}|j|t�|jt|�d�|jt|�dt�|jt|�dj|���|\}tdtj
dz�D]�}|j
||�}|j|�}|j|t�|j|jt�|jt|j�d�|jt|j�d|���y)Nr�rr)r7�addror9rr�r]rrr�r r�r�rq�r.r�rXr�r's     r�test_recursive_setz&AbstractPickleTests.test_recursive_set
	sB���E��	���a��d���1�f�5�5��9�:�E��
�
�1�e�$�A��
�
�1�
�A��!�!�!�S�)����S��V�Q�'��!�!�$�q�'�!�*�a�0��M�M�$�q�'�!�*�*�*�A�.�
;�����1�f�5�5��9�:�E��
�
�1�e�$�A��
�
�1�
�A��!�!�!�Q�'��!�!�!�'�'�3�/����S����\�1�-��M�M�$�q�w�w�-��*�A�.�
;rc�.�t�}||_tD]{}|j||�}|j	|�}|j|t�|j
t|�t|��|j|j|��}yr$)	rk�attrr[r]rrr��dirr�)r.�irXr�r's     r�test_recursive_instz'AbstractPickleTests.test_recursive_inst 	sq���H������E��
�
�1�e�$�A��
�
�1�
�A��!�!�!�V�,����S��V�S��V�,��M�M�!�&�&�!�$�rc��g}d|i}t�}||_|j|�tD]�}|j	||�}|j|�}|j
|t�|jt|�d�|jt|d�t|��|jt|djj��dg�|j|djd|���yr)
rkrpr�r[r]rrr�r�r rqr;r�)r.r#rBrrrXr�r's       r�test_recursive_multiz(AbstractPickleTests.test_recursive_multi+	s�����
�q�E���H�����	������E��
�
�1�e�$�A��
�
�1�
�A��!�!�!�T�*����S��V�Q�'����S��1��Y��A��/����T�!�A�$�)�)�.�.�"2�3�a�S�9��M�M�!�A�$�)�)�A�,��*�rc�F�t�}||g�|_t|j�}tD]�}|j	||�}|j|�}|j
|j|�|jt|j�d�|j
t|j�dt�|jt|j�d|���|j}tD]�}|j	||�}|j|�}|j
||�|jt|�d�|j
t|�dt�|jt|�dj|���yr)rkrpr�r[r]rrr�r r�r�)r.�factory�or<rXr�r's       r�#_test_recursive_collection_and_instz7AbstractPickleTests._test_recursive_collection_and_inst:	s6��
�H���!���������L���E��
�
�1�e�$�A��
�
�1�
�A��!�!�!�&�&�!�,����S����[�!�,��!�!�$�q�v�v�,�q�/�6�:��M�M�$�q�v�v�,�q�/�1�-�
�
�F�F���E��
�
�1�e�$�A��
�
�1�
�A��!�!�!�Q�'����S��V�Q�'��!�!�$�q�'�!�*�f�5��M�M�$�q�'�!�*�/�/�1�-�
rc�.�|jt�yr$)ryr�r2s r�test_recursive_list_and_instz0AbstractPickleTests.test_recursive_list_and_instS	s���0�0��6rc�.�|jt�yr$)ryr3r2s r�test_recursive_tuple_and_instz1AbstractPickleTests.test_recursive_tuple_and_instV	����0�0��7rc�B�|jtj�yr$)ryr�r�r2s r�test_recursive_dict_and_instz0AbstractPickleTests.test_recursive_dict_and_instY	s���0�0����?rc�.�|jt�yr$)ryr7r2s r�test_recursive_set_and_instz/AbstractPickleTests.test_recursive_set_and_inst\	s���0�0��5rc�.�|jt�yr$)ryr�r2s r�!test_recursive_frozenset_and_instz5AbstractPickleTests.test_recursive_frozenset_and_inst_	s���0�0��;rc�.�|jt�yr$)ryr�r2s r�%test_recursive_list_subclass_and_instz9AbstractPickleTests.test_recursive_list_subclass_and_instb	s���0�0��8rc�.�|jt�yr$)ry�MyTupler2s r�&test_recursive_tuple_subclass_and_instz:AbstractPickleTests.test_recursive_tuple_subclass_and_inste	s���0�0��9rc�B�|jtj�yr$)ryrGr�r2s r�%test_recursive_dict_subclass_and_instz9AbstractPickleTests.test_recursive_dict_subclass_and_insth	s���0�0����Arc�.�|jt�yr$)ry�MySetr2s r�$test_recursive_set_subclass_and_instz8AbstractPickleTests.test_recursive_set_subclass_and_instk	r~rc�.�|jt�yr$)ry�MyFrozenSetr2s r�*test_recursive_frozenset_subclass_and_instz>AbstractPickleTests.test_recursive_frozenset_subclass_and_instn	s���0�0��=rc���t�}||_tD]W}|j||�}|j	|�}|j|t�|j
|j|��Yyr$)r�r�r[r]rrr�rms     r�test_recursive_inst_statez-AbstractPickleTests.test_recursive_inst_stateq	sY���K������E��
�
�1�e�$�A��
�
�1�
�A��!�!�!�Y�/��M�M�!�'�'�1�%�	rc��t�f}||d_tD]�}|j||�}|j	|�}|j|t�|jt|�d�|j|dt�|j|dj|���|\}tD]�}|j||�}|j	|�}|j|t�|j|jt�|jt|j�d�|j|jd|���yrM)
r�r�r[r]rrr3r�r r�)r.r<rXr�r's     r�#test_recursive_tuple_and_inst_statez7AbstractPickleTests.test_recursive_tuple_and_inst_state{	s
��
�[�N����!��
��E��
�
�1�e�$�A��
�
�1�
�A��!�!�!�U�+����S��V�Q�'��!�!�!�A�$�	�2��M�M�!�A�$�*�*�a�(�
�����E��
�
�1�e�$�A��
�
�1�
�A��!�!�!�Y�/��!�!�!�'�'�5�1����S����\�1�-��M�M�!�'�'�!�*�a�(�
rc��gd�}tD]>}|D]7}|j||�}|j|�}|j||��9�@y)N)rYz<\u>u<\ሴ>z<
>z<\>u<\𒍅>u<�>�r[r]rr)r.�endcasesrX�ur��u2s      r�test_unicodez AbstractPickleTests.test_unicode�	sL�� ���E����J�J�q�%�(���Z�Z��]���#�#�A�r�*��rc��d}tD]7}|j||�}|j|�}|j||��9y)Nu𒍅r�)r.r<rXr�rMs     r�test_unicode_high_planez+AbstractPickleTests.test_unicode_high_plane�	s>�����E��
�
�1�e�$�A����A��B�����2�&�rc��tD]C}dD]<}|j||f|�}|j|�\}}|j||��>�Ey)N)rY�xyzzxyz
zx\yzux¡yz
�r[r]rr�)r.rXr�r��s1�s2s      r�test_unicode_memoizationz,AbstractPickleTests.test_unicode_memoization�	sI���E�=���J�J��1�v�u�-�����A����B��
�
�b�"�%�>�rc��tD]�}dD]5}|j||�}|j||j|���7t	d�D�cgc]}t|g���c}D]5}|j||�}|j||j|���7t	d�D�cgc]}t||g���c}D]5}|j||�}|j||j|���7��ycc}wcc}w)N�r�xyzs,xyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyz�)r[r]rrr9r�)r.rXr�r�rrs     r�
test_byteszAbstractPickleTests.test_bytes�	s����E�,���J�J�q�%�(���#�#�A�t�z�z�!�}�5�-�+0��*�5�*�Q�e�Q�C�j�*�5���J�J�q�%�(���#�#�A�t�z�z�!�}�5�6�.3�3�Z�8�Z��e�Q��F�m�Z�8���J�J�q�%�(���#�#�A�t�z�z�!�}�5�9���6��9s�C>�,Dc
�0�tD]�}ttfD]�}dD]�}|j|||d��5||�}|j	||f|�}|j|�\}}|j
||�|j||f||f�ddd�|j|||d��5||�||�}	}|j	||	f|�}|j||	f|j|��ddd�������y#1swY�uxYw#1swY��xYw�Nr�F)rX�
array_typer��independentT)r[r�r�rr]rr�r)
r.rXr�r�r�r�r'r��b1�b2s
          r�test_bytes_memoizationz*AbstractPickleTests.test_bytes_memoization�	s���E�$�m�4�
�0�A����E�j�A�[`��a�&�q�M�� �J�J��1�v�u�5��#�z�z�!�}���1��
�
�a��+��+�+�Q��F�Q��F�;�b����E�j�A�[_��`�!+�A��
�1�
�B�� �J�J��B�x��7���+�+�R��H�d�j�j��m�D�
a�`�1�5��b�a��a�`�s�AD	�)AD	�D	
�D
c�Z�tD�]!}dD�]}t|�}|j||�}|j|�}|j	||�|j||�|dkr<|j
d|�|jttj|����|dk(r<|j
d|�|jttj|����|dk(s��|jd|�|jttj|������$y)Nr�r�s	bytearrayr�r�)r[rvr]rr�rr�
assertTruerr�GLOBAL�STACK_GLOBAL�assertNotIn�
BYTEARRAY8)r.rXr�r�r��bbs      r�test_bytearrayz"AbstractPickleTests.test_bytearray�	s����Y�E�,���a�L���J�J�q�%�(���Z�Z��]��� � ��Q�'��#�#�A�r�*��A�:��M�M�,��2��O�O�$4�V�]�]�A�$F�G��a�Z��M�M�,��2��O�O�$4�V�5H�5H�!�$L�M��a�Z��$�$�\�1�5��O�O�$4�V�5F�5F��$J�K�-�rc	���tD�]A}ttfD�].}dD�]%}|j|||d��5||�}|j	||f|�}|j|�\}}|j
||�ddd�|j|||d��5||�||�}	}|j||	�|j	||	f|�}|j|�\}
}|j|
|�|j||
�|j||
�|j|	|�|j|	|�ddd���(��1��Dy#1swY��xYw#1swY��FxYwr�)	r[rvr�rr]rr�r�r)r.rXr�r�r�r�r�r��b1a�b2a�b1b�b2bs            r�test_bytearray_memoizationz.AbstractPickleTests.test_bytearray_memoization�	sK���Y�E�(�*;�<�
�0�A����E�j�A�[`��a�&�q�M�� �J�J��1�v�u�5��!%���A����B��
�
�b�"�-�	b����E�j�A�[_��`�#-�a�=�*�Q�-�S���(�(��c�2� �J�J��S�z�5�9��#'�:�:�a�=���S��(�(��c�2��(�(��c�2��+�+�C��5��(�(��c�2��+�+�C��5�a�`�1�=��b�a��a�`�s�AE
	�B%E	�
E
�E#
c���tD]\}tj}|s�||fD]7}|j||�}|j	|�}|j||��9|dz	}|r�G�^yr?)r[r��maxsizer]rr)r.rXr!r�r��n2s      r�	test_intszAbstractPickleTests.test_ints�	se���E����A��"#��Q��H��
�
�8�U�3�A����A��B��'�'��"�5�!(���F���rc��tD]]}dD]V}d|z}|dz
||dzfD]A}||fD]7}|j||�}|j|�}|j||��9�C�X�_t	dd�}||dzz
}||fD]V}|j|d�}|j|�}|jt
|�t�|j||��Xy)N)r�i�i��ir�deadbeeffeedface�i@Br�)r[r]rr�intr�r�r�)	r.rX�nbits�nbase�nposr!rr/r�s	         r�	test_longzAbstractPickleTests.test_long
s����E�9���U�
��!�!�G�U�E�!�G�3�D�!�D�5�[��!%���A�u�!5��"�j�j��0���+�+�A�s�3�)�4�:���&��+��
��'�!�!������A��
�
�1�a� �A��*�*�Q�-�C�
�M�M�$�s�)�S�)����Q��$�rc���gd�}||D�cgc]}|��c}z}tD]>}|D]7}|j||�}|j|�}|j||��9�@ycc}w)N)ggg+�p�hg�Z��*)g_D��9g�������?g�?g��Q�	@g�m�"wp@g�W�T��Dgꌠ9Y>)Fr�)r.�test_valuesr'rXrqrr/s       r�
test_floatzAbstractPickleTests.test_float
sl��A��!��$=��A�a�R��$=�=���E�$�����E�5�1���j�j��(���#�#�E�3�/�%���%>s�
A!�LC_ALL�de_DE�fr_FRc�N�|j|jdd�ddd�y)Ng333333�?rr�sF1.)r�r]r2s r�test_float_formatz%AbstractPickleTests.test_float_format"
s&��	
������C��+�A�a�0�&�9rc��tD]E}t�}|j||�}|j|�}|j	|t
��Gyr$)r[�AAAr]rr��REDUCE_A�r.rX�instr_rFs     r�test_reducezAbstractPickleTests.test_reduce'
sA���E��5�D��Z�Z��e�,�F��Z�Z��'�F����V�X�.�	rc��tD]C}tdd�}|j||�}|j|�}|j	||��Ey)Nrr�)r[r}r]rrr�s     r�test_getinitargsz$AbstractPickleTests.test_getinitargs.
sE���E��1�a�=�D��Z�Z��e�,�F��Z�Z��'�F�����f�-�	rc��t�}tD]K}|j||�}|j|�}|j	|j
|j
��Myr$)r�r[r]rr�r��r.r�rXr�r�s     r�test_metaclassz"AbstractPickleTests.test_metaclass5
sH���O���E��
�
�1�e�$�A��
�
�1�
�A����Q�[�[�!�+�+�6�rc�>�tdtf�}tjttj
�tD][}|j||�}|j|�}|j||�|jt|�t|���]y)N�my_dynamic_class)r�rArNrr�rtr[r]rr�r�r�r�s     r�test_dynamic_classz&AbstractPickleTests.test_dynamic_class<
st�� �!3�f�Y�?�����)�+=�+H�+H�I��E��
�
�1�e�$�A��
�
�1�
�A����Q��"��M�M�$�q�'�4��7�+�	rc��ddl}ddl}|j�}tD]�}|j	||�}|j|�}|j
||�|j|j�}|j	||�}|j|�}|j
||�t|d�s��|j|j�}|j	||�}|j|�}|j
||���y)Nr�statvfs)�timer��	localtimer[r]rr�stat�curdirr�r�)r.r�r�r<rXr�r�s       r�test_structseqz"AbstractPickleTests.test_structseqE
s������N�N����E��
�
�1�e�$�A��
�
�1�
�A�����1�%������	�	�"�A��
�
�1�e�$�A��
�
�1�
�A�����1�%��r�9�%��B�J�J�r�y�y�)���J�J�q�%�(���J�J�q�M���#�#�A�q�)�rc��tD]7}|jd|�}|j|�}|jd|��9y�N.r��r.rXr�r�s    r�
test_ellipsisz!AbstractPickleTests.test_ellipsisX
s7���E��
�
�3��&�A��
�
�1�
�A��M�M�#�q�!�rc��tD]?}|jt|�}|j|�}|j	t|��Ayr$)r[r]r�rr�r�s    r�test_notimplementedz'AbstractPickleTests.test_notimplemented^
s7���E��
�
�>�5�1�A��
�
�1�
�A��M�M�.�!�,�rc���ddtg}|D]T}tD]I}|jt|�|�}|j	|�}|jt|�|��K�Vyr�)r�r[r]r�rr�)r.�
singletons�	singletonrXr�r�s      r�test_singleton_typesz(AbstractPickleTests.test_singleton_typesd
sU���C��0�
�#�I�"���J�J�t�I���6���J�J�q�M���
�
�d�9�o�q�1�#�$rc�
�tjj�D]b}t|t�s�t|t�r�%tD]5}|j||�}|j|j|�|��7�dyr$)r�rZ�valuesr�r��
issubclassrr[r]r�r�r.r<rXr�s    r�test_builtin_typesz&AbstractPickleTests.test_builtin_typesm
s^���"�"�)�)�+�A��!�T�"�:�a��+G�&�E��
�
�1�e�,�A��M�M�$�*�*�Q�-��3�'�,rc���tjj�D]�}t|t�s�t|t�s�%tD]�}|j||�}|j|�}|dkr/t|t�r|tur|j|t��Z|dkr't|t�r|j|t���|j||�����yr
)r�rZr�r�r�r�rr[r]r�OSError�BlockingIOErrorr��ImportError)r.r<rXr�r�s     r�test_builtin_exceptionsz+AbstractPickleTests.test_builtin_exceptionst
s����"�"�)�)�+�A��!�T�"�z�!�]�'C�&�E��
�
�1�e�,�A��
�
�1�
�A���z�j��G�&<��/�AY��
�
�a��1��!��
�1�k�(B��
�
�a��5��
�
�a��+�'�,rc��tjj�D][}t|tj
�s�tD]5}|j||�}|j|j|�|��7�]yr$)
r�rZr�r�r��BuiltinFunctionTyper[r]r�rr�s    r�test_builtin_functionsz*AbstractPickleTests.test_builtin_functions�
s[���"�"�)�)�+�A��!�U�6�6�7�&�E��
�
�1�e�,�A��M�M�$�*�*�Q�-��3�'�,rc�Z�tD]�}|jd|�}|dk\r>tjt	|g�z}|j|j
|���X|jttj|�d���tddz}tjtjz}tjt	|g�z|z}	|j|�|jd�y#t$r%}|jdt|��Yd}~yd}~wwxYw)Nr�rr�rz0expected bad protocol number to raise ValueErrorzunsupported pickle protocol)r[r]r�PROTOr�r��
startswithr�r"�NONErSr�failr-rrz)r.rXr��proto_header�oob�
build_none�	badpickle�errs        r�
test_protozAbstractPickleTests.test_proto�
s����E��j�j��u�-�G���z�%�|�|�e�U�G�n�<������ 2� 2�<� @�A�� � ��f�l�l�G�!D�a�H�
���m�a����[�[�6�;�;�.�
��L�L�5�#��<�/�*�<�	�	J��J�J�y�!�
�I�I�H�I���	C��M�M�7��S��B�B��	C�s�C<�<	D*�D%�%D*c���d}tD]d}|j||�}|j|�}|j||�|j	ttj|�|dk\��fy)N��UJ^w,3�|	r�)r[r]rrr�rr�LONG1�r.r'rXr�r�s     r�
test_long1zAbstractPickleTests.test_long1�
s^��)���E��
�
�1�e�$�A��
�
�1�
�A�����1�%����-�f�l�l�A�>���
�K�	rc���ddz}tD]d}|j||�}|j|�}|j||�|j	ttj|�|dk\��fy)Nrr�r�)r[r]rrr�rr�LONG4rs     r�
test_long4zAbstractPickleTests.test_long4�
sc��)�e�4���E��
�
�1�e�$�A��
�
�1�
�A�����1�%����-�f�l�l�A�>���
�K�	rc��idtj�dtj�dtj�dtj�dtj�dtj�dtj�dtj�d	tj�d
tj�dtj�dtj�d
tj�dtj
�dtj�dtj�dtj�tjtj
tjd��}d}d}d}d}d}tD]x}|||||fD]l}|j||�}	|j|	�}
|j||
�|t|d�t|�f}|jt||	���n�zy)N)rr)rr)rr�)rr�)rr�)rr)rrr)rr��rr�)r�r�r�r)r�r�)r�r�)r�r�)r�r)r�r))r�r�)r�r��r�r�r%)r�rr�r�)rr�r�r�r�)r�TUPLE�EMPTY_TUPLE�TUPLE1�TUPLE2�TUPLE3r[r]rr�minr r�r)r.�expected_opcoder�r�r�rBrrXr'r�r�r�s            r�test_short_tuplesz%AbstractPickleTests.test_short_tuples�
s����6�6�<�<��!�6�<�<��!�6�<�<��"�6�<�<��"�6�<�<�	�"�6�#5�#5�
�"�6�<�<��"�6�<�<��"�6�<�<��"�6�<�<��"�6�#5�#5��"�6�=�=��"�6�=�=��"�6�=�=�� "�6�<�<�!�$"�6�#5�#5�%�&"�6�=�=�'�($*�=�=�#)�=�=�#)�<�<�-��0
�����������E���1�a��]���J�J�q�%�(���J�J�q�M���#�#�A�q�)�*�3�u�a�=�#�a�&�+@�A����� 0��1� =�>�#�rc
�d�tjtjtjtjtjtjtjtjtjtjtjtjd�}t
D]p}dD]i}|j
||�}|j|�}|j||u||||f�|t|d�|f}|jt||���k�ry)N))rN)rN)r�N)r�N)rT)rT)r�T)r�T)rF)rF)r�F)r�F)NFTr�)rr�INT�NEWTRUE�NEWFALSEr[r]rr�rr)r.rrXr'r�r�r�s       r�test_singletonsz#AbstractPickleTests.test_singletons�
s���&,�k�k�&,�k�k�&,�k�k�&,�k�k�&,�j�j�&,�j�j�&,�n�n�&,�n�n�'-�z�z�'-�z�z�'-���'-������E�&���J�J�q�%�(���J�J�q�M������Q����1�a�(8�9�*�3�u�a�=�!�+;�<����� 0��1� =�>�'�rc��tgd��}d|_d|_tD]7}|j	||�}|j|�}|j
||��9y�Nrr��hello)r�r�r�r[r]rrrs     r�test_newobj_tuplez%AbstractPickleTests.test_newobj_tuple�
sQ���I����������E��
�
�1�e�$�A��
�
�1�
�A�����1�%�rc��tgd��}d|_d|_tD]7}|j	||�}|j|�}|j
||��9yr&)r�r�r�r[r]rrrs     r�test_newobj_listz$AbstractPickleTests.test_newobj_list�
sQ���9����������E��
�
�1�e�$�A��
�
�1�
�A�����1�%�rc
��tD]�}tD]�}|j}||j�}d|_|j||�}|j
|�}|||||t|�f}|j||�|j||�||�|�|j|j|j|�����y�Nr�)r[�	myclasses�__base__�sampler�r]rr�rr�rZ)r.rXrX�Br'r�r��details        r�test_newobj_genericz'AbstractPickleTests.test_newobj_generic�
s����E����J�J���a�h�h�K������J�J�q�%�(���J�J�q�M����A�q�!�T�!�W�5���#�#�A�q�)�� � ��1��q��t�V�4�� � ����Q�Z�Z��@��rc
�.�tdd}ttfD]}|j|��tD]�}|D]�}|j
}||j�}d|_tj|�}|j||�}|j|�}	|jt|	�t|��|||||	t|	�f}
|j||�||	�|
�|j|j|	j|
�����yr,)r-�MyIntr�rDr[r.r/r��weakref�proxyr]rr�r�rZ)r.�classesr�rXrXr0r'r�r�r�r1s           r�test_newobj_proxiesz'AbstractPickleTests.test_newobj_proxiess����A�,����!�A��N�N�1��"��E����J�J���a�h�h�K������M�M�!�$���J�J�q�%�(���J�J�q�M��� � ��a��$�q�'�2���A�q�!�T�!�W�5��� � ��1��q��t�V�4�� � ����Q�Z�Z��@��rc�0�tD]�}td�}d|_|j||�}|j	|�}|jt
|�t�|jt|�d�|j|jd���y)Nrr�)	r[�
MyIntWithNew2r�r]rr�r�r�r�rs     r�test_newobj_overridden_newz.AbstractPickleTests.test_newobj_overridden_newst���E��a� �A��A�E��
�
�1�e�$�A��
�
�1�
�A��M�M�$�q�'�=�1����S��V�Q�'����Q�U�U�B�'�rc���t}tjt�}|j|d�}	da|jtt
jf|j|�|ay#|awxYw)Nr�r�)�SimpleNewObjr�r]rr�rrer)r.�saverxr�s    r�test_newobj_not_classz)AbstractPickleTests.test_newobj_not_class*s_����� � ��.���J�J�q�!���	 ��L����y�&�*@�*@�A�4�:�:�q�Q��L��4�L�s�3A)�)A-c��t|�}	tjtd|�t	gd��}d|_d|_|j|d�}|jtjd�|�|jd|�|jt||��|j|�}|j||�|j|d�}|jtjd�|�|jd|�|jt||�d	t!|��|j|�}|j||�|j#�y#|j#�wxYw)
Nr�rr�r'rr4sMyListr�T)rKrNrTr<r�r�r�r]rr"�assertFalserrrr�r��reprrV)r.�extcode�opcoderr'r�r�r�s        r�produce_global_extz&AbstractPickleTests.produce_global_ext:s.���7�#��	��!�!�(�H�g�>��y�!�A��A�E��A�E����A�q�!�B��M�M�(�/�/�'�2�B�7��M�M�)�R�(����-�f�b�9�:��
�
�2��A�����1�%����A�q�!�B����X�_�_�W�5�r�:����Y��+����-�f�b�9�4��b��J��
�
�2��A�����1�%�
�I�I�K��A�I�I�K�s�EE-�-E?c��|jdtj�|jdtj�y)Nrr�)rEr�EXT1r2s r�test_global_ext1z$AbstractPickleTests.test_global_ext1Vs*�����
�F�K�K�8����
�F�K�K�8rc���|jdtj�|jdtj�|jdtj�y)Nr�r�iͫ)rEr�EXT2r2s r�test_global_ext2z$AbstractPickleTests.test_global_ext2Z�>�����
�F�K�K�8����
�F�K�K�8����
�F�K�K�8rc���|jdtj�|jdtj�|jdtj�y)N�r�i�ͫ)rEr�EXT4r2s r�test_global_ext4z$AbstractPickleTests.test_global_ext4_rLrc�F�d}tt|��}tD]f}|j||�}|j	|�}|j||�t
tj|�}|j||dkD��hd}tt|��}tD]}}|j||�}|j	|�}|j||�t
tj|�}|dk(r|j|d��j|j|dk\��y�Nr�r��	r�)r�r9r[r]rrr"r�APPENDSr�r�)r.r!r'rXr�r��num_appendss       r�test_list_chunkingz&AbstractPickleTests.test_list_chunkingds�������q��N���E��
�
�1�e�$�A��
�
�1�
�A�����1�%�&�v�~�~�q�9�K����[�%�!�)�4��
����q��N���E��
�
�1�e�$�A��
�
�1�
�A�����1�%�&�v�~�~�q�9�K���z�� � ��a�0�����q� 0�1�rc��d}tjt|��}tD]|}|j	||�}|j|t�|j|�}|j||�ttj|�}|j||dkD��~d}tjt|��}tD]}}|j	||�}|j|�}|j||�ttj|�}|dk(r|j|d��j|j|dk\��yrR)r�r�r9r[r]rrrrr"r�SETITEMSr�r�)r.r!r'rXr�r��num_setitemss       r�test_dict_chunkingz&AbstractPickleTests.test_dict_chunkingzs�����M�M�%��(�#���E��
�
�1�e�$�A��!�!�!�[�1��
�
�1�
�A�����1�%�'�����;�L����\�5�1�9�5�
�
���M�M�%��(�#���E��
�
�1�e�$�A��
�
�1�
�A�����1�%�'�����;�L���z�� � ��q�1������ 1�2�rc�l�d}tt|��}tD]{}|j||�}|j	|�}|j||�t
tj|�}|dkr|j|d��j|j|d��}d}tt|��}tD]{}|j||�}|j	|�}|j||�t
tj|�}|dkr|j|d��j|j|d��}y)Nr�r�rrrSr�)r7r9r[r]rrr"r�ADDITEMSr��assertGreaterEqual)r.r!r'rXr�r��num_additemss       r�test_set_chunkingz%AbstractPickleTests.test_set_chunking�s������a��M���E��
�
�1�e�$�A��
�
�1�
�A�����1�%�'�����;�L��q�y�� � ��q�1�� � ��q�1��
����a��M���E��
�
�1�e�$�A��
�
�1�
�A�����1�%�'�����;�L��q�y�� � ��q�1��'�'��a�8�rc��tjtd�}d|_tD]�}|j	|��5|j||�}|dkr|j
d|�n|j
d|�|jttj|�d|k�|jttj|��|j|�}|j||�ddd���y#1swY��xYw)N���rWr�
I64206�M�r�)r=r�r�r[rr]rr�rr�NEWOBJrA�	NEWOBJ_EXrrrs     r�test_simple_newobjz&AbstractPickleTests.test_simple_newobj�s���� � ��v�6������E����E��*��J�J�q�%�(���1�9��M�M�+�q�1��M�M�,��2�� � �!1�&�-�-��!C�!"�e��-�� � �!1�&�2B�2B�A�!F�G��J�J�q�M���#�#�A�q�)�+�*��*�*�s�B6C>�>D	c�z�tjtd�}d|_tD�]}|j	|��5|j||�}|dkr|j
d|�nB|dkr|j
d|�n*|dkr|j
d	|�n|j
d
|�|jttj|�d|k�|jttj|��|j|�}|j||�ddd���y#1swY��xYw�NrarbrWrrcr�rdr�s	XFACEs�FACE)�
ComplexNewObjr�r�r[rr]rr�rrrerArfrrrs     r�test_complex_newobjz'AbstractPickleTests.test_complex_newobj�s����!�!�-��8������Y�E����E��*��J�J�q�%�(���1�9��M�M�+�q�1��Q�Y��M�M�,��2��Q�Y��M�M�":�A�>��M�M�/�1�5�� � �!1�&�-�-��!C�!"�e��-�� � �!1�&�2B�2B�A�!F�G��J�J�q�M���#�#�A�q�)�+�*��*�*���C&D0�0D:	c�z�tjtd�}d|_tD�]}|j	|��5|j||�}|dkr|j
d|�nB|dkr|j
d|�n*|dkr|j
d	|�n|j
d
|�|jttj|��|jttj|�d|k�|j|�}|j||�ddd���y#1swY��xYwri)�ComplexNewObjExr�r�r[rr]rrArrrer�rfrrrs     r�test_complex_newobj_exz*AbstractPickleTests.test_complex_newobj_ex�s����#�#�O�V�<������Y�E����E��*��J�J�q�%�(���1�9��M�M�+�q�1��Q�Y��M�M�,��2��Q�Y��M�M�":�A�>��M�M�/�1�5�� � �!1�&�-�-��!C�D�� � �!1�&�2B�2B�A�!F�!"�e��-��J�J�q�M���#�#�A�q�)�+�*��*�*�rlc��tgd��}d|_d|_|j|d�}|j	|�}|j||�y)Nrr�r'r�)�SlotListr�r�r]rr)r.r'r�r�s    r�test_newobj_list_slotsz*AbstractPickleTests.test_newobj_list_slots�sG���Y����������J�J�q�!����J�J�q�M�����A�q�!rc��tD]�}t�}|j|jd�|j	||�}|j|jd�|j|�}|j|jd���yrM)r[�REX_oner��_reduce_calledr]rrs     r�'test_reduce_overrides_default_reduce_exz;AbstractPickleTests.test_reduce_overrides_default_reduce_ex�sr���E��	�A����Q�-�-�q�1��
�
�1�e�$�A����Q�-�-�q�1��
�
�1�
�A����Q�-�-�q�1�
rc��tD]�}t�}|j|jd�|j	||�}|j|j|�|j|�}|j|jd���yr$)r[�REX_twor��_protor]rrs     r�test_reduce_ex_calledz)AbstractPickleTests.test_reduce_ex_called�sl���E��	�A����Q�X�X�t�,��
�
�1�e�$�A����Q�X�X�u�-��
�
�1�
�A����Q�X�X�t�,�
rc��tD]�}t�}|j|jd�|j	||�}|j|j|�|j|�}|j|jd���yr$)r[�	REX_threer�ryr]rrs     r�test_reduce_ex_overrides_reducez3AbstractPickleTests.test_reduce_ex_overrides_reduce�sl���E���A����Q�X�X�t�,��
�
�1�e�$�A����Q�X�X�u�-��
�
�1�
�A����Q�X�X�t�,�
rc��tD]�}t�}|j|jd�|j	||�}|j|j|�|j|�}|j|j|���yr$)r[�REX_fourr�ryr]rrs     r�test_reduce_ex_calls_basez-AbstractPickleTests.test_reduce_ex_calls_basesl���E��
�A����Q�X�X�t�,��
�
�1�e�$�A����Q�X�X�u�-��
�
�1�
�A����Q�X�X�u�-�
rc��tD]�}t�}|j|jd�|j	||�}|j|jd�|j|�}|j|jd���yrM)r[�REX_fiver�rur]rrs     r�test_reduce_calls_basez*AbstractPickleTests.test_reduce_calls_basesr���E��
�A����Q�-�-�q�1��
�
�1�e�$�A����Q�-�-�q�1��
�
�1�
�A����Q�-�-�q�1�
rc��t�}|j|�}|jttf�5|j|�ddd�y#1swYyxYwr$)�C_None_setstater]rr�r�r)r.r�r�s   r�test_pickle_setstate_Nonez-AbstractPickleTests.test_pickle_setstate_NonesA������J�J�q�M��
�
�
��	�:�
;��J�J�q�M�<�
;�
;�s�A�Ac�Z�d�td�D�}td�|D��}t|�t|�t|�g}tD]R}|j|��5|j	||�}|j|�}|j
||�ddd��Ty#1swY�_xYw)Nc3�8K�|]}dt|�z���y�w)�aaaNry)�.0rrs  r�	<genexpr>z>AbstractPickleTests.test_many_puts_and_gets.<locals>.<genexpr> s����3�
�1���A���
�s�roc3�(K�|]
}|gd�f���y�w))r�r�r�Nr%)r��ks  rr�z>AbstractPickleTests.test_many_puts_and_gets.<locals>.<genexpr>!s����7�$�Q�1�i�.�$�s�rW)r9r�r[rr]rr)r.r;�
large_dictr�rXr_rFs       r�test_many_puts_and_getsz+AbstractPickleTests.test_many_puts_and_getss���4��c�
�3���7�$�7�7�
��J���j�!1�4�
�3C�D���E����E��*����C��/�����F�+���#�#�C��0�+�*��*�*�s� 6B!�!B*	c�0�tD]�}t�}d|_d|_|j	||�}|j|�}t
|j�}t
|j�}t||�D]\}}|j||����y)Nr�r')
r[rXr�r�r]r�sortedrZ�zipr�)	r.rXr'r�r��x_keys�y_keys�x_key�y_keys	         r�test_attribute_name_interningz1AbstractPickleTests.test_attribute_name_interning*s���E���A��A�E��A�E��
�
�1�e�$�A��
�
�1�
�A��A�J�J�'�F��A�J�J�'�F� #�F�F� 3���u��
�
�e�U�+�!4�rc���|jtd�d�}|j|t�|jt	dg�d�}|j|t
�y)Nr�r�r�)r]r9r�r8r7�	DATA_SET2r^s  r�test_pickle_to_2xz%AbstractPickleTests.test_pickle_to_2x8sN��
���E�!�H�a�(�������-����C���H�a�(�������+rc���tD]l}dtddztf}|j||�}|j	|�}|jt|�t|��|j||��ny)Nrsxyix)r[rr r]rr�)r.rXrr_rFs     r�test_large_picklesz&AbstractPickleTests.test_large_picklesBsg���E��s�E�Y�/��5�D��Z�Z��e�,�F��Z�Z��'�F����S��[�#�d�)�4����V�T�*�rc	��tD]�}|j|��5td�D�cgc]}|jd|z|���}}t	tt|��}|jt|�|�|dk\r0|D]+}|jttj|���-ddd���ycc}w#1swY��xYw)NrW�Fr�)
r[rr9r]r��mapr r�r�rArr�LONG)r.rXr!�pickles�sizesr�s      r�test_int_pickling_efficiencyz0AbstractPickleTests.test_int_pickling_efficiencyLs����E����E��*�<A�"�I�F�I�q�4�:�:�a��d�E�2�I��F��S��g�.�/��� � �����6��A�:�$���(�(�)9�&�+�+�q�)I�J�%�
+�*���F�+�*�s�C�B<�A+C�<C�C
	c��|j||�}|jt||��|j|�}|j	||�yr$)r]r�rrr�)r.r�rDrXr�r�s      r�_check_pickling_with_opcodez/AbstractPickleTests._check_pickling_with_opcodeXsD���*�*�S�%�(�����(���9�:��J�J�w�'�	�����i�(rc���tgd��}tD]J}|dk(r"|j|tj|��*|j|tj
|��Ly)Nrr)r�r[r�r�APPENDrTr^s   r�test_appends_on_non_listsz-AbstractPickleTests.test_appends_on_non_lists^sI���i� ���E���z��0�0��f�m�m�U�K��0�0��f�n�n�e�L�	rc���tdddd��}tD]J}|dk(r"|j|tj|��*|j|tj
|��Ly)Nr�������rr)r�r[r�r�SETITEMrXr^s   r�test_setitems_on_non_dictsz.AbstractPickleTests.test_setitems_on_non_dictsgsP���B�2�"�-�.���E���z��0�0��f�n�n�e�L��0�0��f�o�o�u�M�	rr�rNc���	dx}}hd�}tj|�D�]\}}}|�|j||�||k(rd}|�P|j|jd�|j|vr�|jt|�|j�nl|jdk(s&|j|vr<t|�|jkDr$|�5|j||z
|j�d}n|�|jdk7r|}|jdk(s��|j||j�|dz|z}��t|�}|�|j||�y|� |j||z
|j�yy)N>�BINBYTES�	BINBYTES8�
BINUNICODEr��BINUNICODE8�FRAMEr�	)rr�assertLessEqual�assertNotEqualr�r �FRAME_SIZE_TARGET�
assertLess�FRAME_SIZE_MINr]r�)r.r��	frame_end�frameless_start�frameless_opcodesrra�poss        r�check_frame_opcodesz'AbstractPickleTests.check_frame_opcodestsz��	�'+�*�	�O�:��'�.�.�w�7�L�B��S��$��$�$�S�)�4��)�#� $�I��$��#�#�B�G�G�W�5��7�7�/�/��(�(��S��4�3I�3I�J��G�G�w�&��W�W� 1�1���X�� 6� 6�6�&�2�����o�(=�(,�(;�(;�=�*.��$�,����G�1C�&)�O��w�w�'�!��'�'��T�-@�-@�A��!�G�c�M�	�98�<�'�l��� ����Y��,�
�
(��O�O�C�/�1�4�3F�3F�G�)r�cpuc��ttd��}tdtjdz�D]�}|j	|��5|j||�}|j
|�}|j||�t|�ttj|�z}|j||jdz�|j||jdz�|j|�ddd���y#1swY��xYw)Ni��r�rrWr�)r�r9rr�rr]rr�r r"r��
assertGreaterr�r�r�)r.r�rXr�r��bytes_per_frames      r�test_framing_many_objectsz-AbstractPickleTests.test_framing_many_objects�s����5��<� ���1�f�5�5��9�:�E����E��*��*�*�S�%�0�� �J�J�w�/�	�� � ��i�0�#&�w�<�#/����g�#F�$G���"�"�?�#'�#9�#9�A�#=�?��$�$�_�%)�%;�%;�a�%?�A��(�(��1�+�*�;�*�*�s
�B+C=�=D	c�\�d}td�D�cgc]}|g��}}d|zg|�d|z�d|z�}tdtjdz�D�]B}dD�]9}|j||�	�5|s|j	||�}net|d
�s
	ddd��Ct
j�}|j||��}	||	_	|	j|�|j�}|j|�}
|j|D�cgc]
}t|���c}|
D�cgc]
}t|���c}�|j||
�ttj |�}|j|d�|j#|�ddd���<��Eycc}wcc}wcc}w#1swY��ZxYw)Nir��x�y�zr�r)FT)rX�fastr��r�)r9rr�rr]r�r6rBr�r�rrDrr�r r"r�r�)
r.�Nrr�small_itemsr�rXr�r��bufr�r�r'�n_framess
             r�test_framing_large_objectsz.AbstractPickleTests.test_framing_large_objects�s�����$)�"�I�.�I�q��s�I��.��a�x�9�+�9�t�a�x�9��q��9���1�f�5�5��9�:�E�%���\�\��D�\�9��#'�*�*�S�%�"8�� '�t�Y�7�$�:�9�!�j�j�l��"&�,�,�s�U�,�"C��'+������S�)�"%�,�,�.�� $�
�
�7� 3�I��$�$�c�%:�c��c�!�f�c�%:�6?�%@�i��c�!�f�i�%@�B��$�$�S�)�4�+�F�L�L�'�B�H��$�$�X�q�1��,�,�W�5�1:�9�&�;��/��(&;��%@�#:�9�s7�
F�(#F!�A/F!�F�F!�F�-AF!�
F!�!F+c	��tjdkrydd�}|j}d}ttfD�]}t|�D�cic]}|||g�|z��}}tdtjdz�D]�}|j
||�}||�}	|jttj|	�d�|j||j|	��||d��}
|jttj|
�ttj|��|j||j|
������ycc}w)Nr�c��	g}d}tj|�D]'\}}}|jdk(s�|j|��)t	�}d}t|�D]\}	}|r	||	�r�||||z
}||z}�|||dz
}|S)Nr�r�r)rrr�r�rv�	enumerate)
r��
keep_frame�frame_starts�frame_opcode_sizerD�_r��	newpickle�last_frame_endrrs
          r�
remove_framesz?AbstractPickleTests.test_optional_frames.<locals>.remove_frames�s���=��L� !��"-�"4�"4�W�"=����3��;�;�'�)� �'�'��,�#>�"��I��N�#�L�1���3��*�Q�-���W�^�C�8�8�	�!$�'8�!8��	2�

����1�1�I��r�rrc��|dzSr
r%)rrs rr/z:AbstractPickleTests.test_optional_frames.<locals>.<lambda>�s��a�!�err$)rr�r�r�rvr9r]r�r"r�rr�)r.r��
frame_size�
num_frames�
bytes_typerrr�rXr��frameless_pickle�some_frames_pickles           r�test_optional_framesz(AbstractPickleTests.test_optional_frames�s&���"�"�Q�&��	�&�+�+�
��
�!�)�,�J�<A�*�<M�N�<M�q�1�j�!��o�
�2�2�<M�C�N��q�&�"9�"9�A�"=�>���*�*�S�%�0��#0��#9� �� � ��f�l�l�<L�!M�q�Q�� � ��d�j�j�1A�&B�C�%2�7�O�%L�"�����V�\�\�;M� N� ,�V�\�\�7� C�E�� � ��d�j�j�1C�&D�E�?�-��Ns�Ec
�b�Gd�d�}tdtjdz�D�]k}ttd��D�cgc]-}t	|�jd�|dzdt	|�if��/}}|j
d	|jd
zdzz�|�}|j||�j|�|j�}|j|�}|j||�|jt|j�d�~t!j"�|j|j�|�t|�dz
|jzdz}|j%t|j�|�|j't|j�d|zdz�|jD�	cgc]
}	t|	���}
}	|
D�cgc]}||jk\r|��}}|
D�cgc]}d
|cxkr|jkrnn|��}
}|
D�cgc]
}|d
ks�	|��}}|D]"}|j)|d|jz|
��$|j't|�t|�t|
�zdz|
���nycc}wcc}	wcc}wcc}wcc}w)Nc� �eZdZ	d�Zd�Zd�Zy)�YAbstractPickleTests.test_framed_write_sizes_with_delayed_writer.<locals>.ChunkAccumulatorc��g|_yr$)�chunksr2s rrHzbAbstractPickleTests.test_framed_write_sizes_with_delayed_writer.<locals>.ChunkAccumulator.__init__
s	�� ��rc�:�|jj|�yr$)r�r�)r.�chunks  rrGz_AbstractPickleTests.test_framed_write_sizes_with_delayed_writer.<locals>.ChunkAccumulator.write
s�����"�"�5�)rc�8�dj|j�S)Nr)r�r�r2s r�concatenate_chunkszlAbstractPickleTests.test_framed_write_sizes_with_delayed_writer.<locals>.ChunkAccumulator.concatenate_chunks
s���x�x����,�,rN)r<r=r>rHrGr�r%rr�ChunkAccumulatorr�
s��D�
!�
*�
-rr�r�rg��@r r�rr�0123456789abcdefr�r�r�r�)r9rr�r�rzr"r�r�r�rr�rr�r�r r�r�
gc_collectr]r�r�)r.r�rXrr�objects�writerr��
reconstructedr�r��chunk_sizesr��large_sizes�medium_sizes�small_sizes�
chunk_sizes                r�+test_framed_write_sizes_with_delayed_writerz?AbstractPickleTests.test_framed_write_sizes_with_delayed_writer�s���	-�	-��1�f�5�5��9�:�E� %�c�#�h��1� /�1��A��
�
�g�.��B���c�!�f�
�F� /�
�1�
�N�N�-� �2�2�b�8�1�<�>�
?�&�'�F��L�L���'�,�,�W�5�
�/�/�1�G� �J�J�w�/�M����]�G�4����s�6�=�=�1�1�5����� ����V�6�6�8�'�B��G��q�(�T�-C�-C�C�a�G�H��#�#�C��
�
�$6��A�

� � ��V�]�]�!3�Q��\�A�5E�F�+1�=�=�9�=�a�3�q�6�=�K�9�&1�;�k���4�#9�#9�9��k�K�;�'2�>�{�!��!�<�d�&<�&<�<��{�L�>�&1�<�k��Q�!�V�1�k�K�<�*�
����
�A��0F�0F�,F� +�-�*�
� � ��[�!1�!$�[�!1�C��4E�!E��!I�!,�
.�g;��1��H:��;��>��<s$�2J�J�#J"�!J'�(
J,�3J,c	��Gd�d�attjdz�D]�}tjtjj
tjj
jfD]Q}|j||��5|j|j||��}|j||�ddd��S��y#1swY�`xYw)Nc� �eZdZGd�d�Zy)�Nestedc� �eZdZGd�d�Zy)�Nested.Ac� �eZdZGd�d�Zy)�
Nested.A.Bc��eZdZy)�Nested.A.B.CNrlr%rrrXr�E
s��rrXN)r<r=r>rXr%rrr0r�D
s���rr0N)r<r=r>r0r%rr�Ar�C
s���rr�N)r<r=r>r�r%rrr�r�B
s��
�
rr�r)rXr�)r�r9rr�r�r0rXrrr]r�)r.rXr�r�s    r�test_nested_namesz%AbstractPickleTests.test_nested_names@
s���	�	�
�6�2�2�Q�6�7�E����&�(�(�*�*�f�h�h�j�j�l�l�;���\�\��3�\�7� $�
�
�4�:�:�c�5�+A� B�I��M�M�#�y�1�8�7�<�8�7�7�s�
4C�Cc��Gd�d�atjtjt_dt_t
tjdz�D]X}|j|��5|j|jt|��}|j|t�ddd��Zt`y#1swY�kxYw)Nc��eZdZy��	RecursiveNrlr%rrrrO
r�rrzRecursive.mod.RecursiverrW)
rr�r�r=r�r>r9rr�rrr]r��r.rXr�s   r�test_recursive_nested_namesz/AbstractPickleTests.test_recursive_nested_namesM
s���	�	����I�$8�$8�9�	�
�!:�	���6�2�2�Q�6�7�E����E��*� �J�J�t�z�z�)�U�'C�D�	��
�
�i��3�+�*�8�
�M�+�*�s�1<B>�>C	c�^�Gd�d�att_dt_ttj
dz�D]X}|j
|��5|j|jt|��}|j|t�ddd��Zt`y#1swY�kxYw)Nc��eZdZyrrlr%rrrr[
r�rrz
Recursive.refrrW)
r�refr>r9rr�rrr]r�rs   r�test_recursive_nested_names2z0AbstractPickleTests.test_recursive_nested_names2Y
s���	�	�!�	�
�!0�	���6�2�2�Q�6�7�E����E��*� �J�J�t�z�z�)�U�'C�D�	��
�
�i��3�+�*�8�
�M�+�*�s�<B#�#B,	c	���Gd�d�atjtjt�jtjj
tjjtj	�jf}tjtftjjtjff}ttjdz�D]�}|D][}|j||��5|j|j||��}|j|�|��ddd��]|D]g\}}|�}|j||��5|j|j||��}|j||�||��ddd��i��tjdtjdf}ttjdz�D]G}|D]@}	|j||	��5|j!t"|j|	|�ddd��B�Iy#1swY��cxYw#1swY��xYw#1swY�ixYw)Nc�F�eZdZed��Zed��Zd�ZGd�d�Zy)�
PyMethodsTestc��y)N�cheeser%r%rrrzPyMethodsTest.cheeseh
s��rc��y)N�winer%�r�s rrzPyMethodsTest.winek
s��rc��y)N�biscuitsr%r2s rrzPyMethodsTest.biscuitso
s��!rc�4�eZdZ	ed��Zed��Zd�Zy)�PyMethodsTest.Nestedc��y)N�ketchupr%r%rrrzPyMethodsTest.Nested.ketchupt
s��$rc��y)N�mapler%rs rrzPyMethodsTest.Nested.maplew
s��#rc��y)N�pier%r2s rrzPyMethodsTest.Nested.pie{
s�� rN)r<r=r>r�rr�rrr%rrr�rr
s.����%��%��#��#�!rr�N)	r<r=r>r�rr�rrr�r%rrr
r
g
s5��
�
 ��
 �
�
��
�
"�
!�
!rr
r�rX�methodrr�rX�descr)r
rrrr�rrrr9rr�rrr]r�rZrr�)
r.�
py_methods�py_unbound_methodsrXrr�r�r��descriptorsr s
          r�test_py_methodsz#AbstractPickleTests.test_py_methodse
s���	!�	!�2
� � �����O�$�$�� � �(�(�� � �&�&�� � �"�&�&�

�
��
#�
#�]�3�
�
!�
!�
%�
%�}�';�';�<�
���6�2�2�Q�6�7�E�$���\�\��f�\�=� $�
�
�4�:�:�f�e�+D� E�I��$�$�V�X�y�{�;�>�=�%� 2�����e���\�\��f�\�=� $�
�
�4�:�:�f�e�+D� E�I��$�$�V�C�[�)�C�.�A�>�=� 2�8�
�"�"�8�,��"�"�6�*�
���6�2�2�Q�6�7�E�$���\�\��U�\�;��%�%�i����U�E�J�<�;�%�8�>�=��
>�=��<�;�s%�>I�.AI�#I!�I�I�!I*c��Gd�dt�adjdftjdfgd�jdft
jgd�ffdd	hjd
ftjdd	hd	fftjdftjdftgd
��jd
ftjtgd
��d	fftjd�jdftjjtjd�dfff}ttj dz�D]a}|D]Z\}}|j#||��5|j%|j'||��}|j)||�||��ddd��\�ctj*dtj*df}ttj dz�D]G}|D]@}|j#||��5|j-t.|j&||�ddd��B�Iy#1swY��xYw#1swY�[xYw)Nc�"�eZdZGd�de�Zy)�Subclassc��eZdZy)�Subclass.NestedNrlr%rrr�r)�
r�rr�N)r<r=r>rzr�r%rrr'r'�
s��
��
rr'�abcd)r�)r*r�rr%rr�)r�))r�r)r�r�)sabcr�)rr�r��sweet)rrr�	maketransr�r)r3r'�indexrz�__len__r��__contains__r7r�r�rvr,�countr�r9rr�rrr]r�rZrr�)r.�	c_methodsrXrr/r�r#r s        r�test_c_methodsz"AbstractPickleTests.test_c_methods�
s���	�u�	��\�\�6�"�
�Y�Y�
�&�
�
�
��#�
�\�\�I�<�(���V�
 �
 �$�'�
�
�
��A���{�+�
�]�]�0�1�
�
 �
 �"2�3�
�g�
�
$�
$�d�+�
�^�^�h�w�/��3�4�
�_�_�W�
%�
+�
+�V�4�
�_�_�
"�
"�X�_�_�W�%=�s�$C�D�+
�	�.�6�2�2�Q�6�7�E� )�����\�\��f�\�=� $�
�
�4�:�:�f�e�+D� E�I��$�$�V�T�]�I�t�4D�E�>�=�!*�8�
���{�+��M�M�*�%�
���6�2�2�Q�6�7�E�$���\�\��U�\�;��%�%�i����U�E�J�<�;�%�8�>�=��<�;�s�:H,�<#H8�,H5�8Ic
��tdd�ddfttd�ddftjddft
jd	d	ft�d
dftj�dd
ftj�ddftj�ddfg}|D]�\}}}td�D]�}|jt|�|��5|j||�}|jd|�d|��j!�|�|j#t|j%|��t|��ddd�����y#1swY��xYw)Nrr�r��xrange�123�	itertools�imapr�r��
exceptionsr>r��IterableUserDict�UserListr��defaultdictr�)r�rXr�r�)r9r�r�r�r�r�r�r>r�r�r:r;rr�r]rr"r�r)r.�tests�valr�r�rXr�s       r�test_compat_picklez&AbstractPickleTests.test_compat_pickle�
s��
�1�a�[�-��2�
��e�_�k�6�2�
�
�
�}�h�7�
�[�[�)�Y�/�
�[�,��4�
�
!�
!�
#�Z�1C�D�
�
!�
!�
#�Z��<�
�
$�
$�
&�
�}�E�	
��$�N�C��d��q����\�\�t�C�y��\�>�"�j�j��e�4�G��M�M��T�#:�"B�"B�"D�g�N��M�M�$�t�z�z�'�':�";�T�#�Y�G�?�>�"�$�>�>�s
�A,E�E
c#�.K�d}t|���t|���t�ot|�}tj|d��}dtjfD]7}t|dd|����t|ddd	|�
���t|ddd|�
����9yy�w)N�abcdefgh�little)�	byteorderrr0)r�)r�r�r�)r�r�r)r�r�r�r�r)r�r�r�r�r��
from_bytesr�r�)r.�
bytestringr�rqr�s     r�buffer_like_objectsz'AbstractPickleTests.buffer_like_objects�
s����� �
��J�'�'��
�+�+��"���$�E��N�N�:��N�B�E��[�4�4�5��&�u�S��-2�4�4�'�u�S��/5�U�D�D�'�u�S�-3�V�-2�4�4�6�#�s�BBc�&�|j�D�]}}tdtjdz�D�]Y}|j	||�}|j
r|dk\r|j
d|�|jttj|�d�|dk\r�|jttj|�|jrdnd�|jttj|�|jrdnd�d�}|j	|||��}|j||�|j|�}|j||�|jt!|�t!|��|j||���\���y)Nrrr�r@c��y�NTr%�r�s rr�zAAbstractPickleTests.test_in_band_buffers.<locals>.buffer_callbacks��#rr�)rEr9rr�r]r�rr�r"�NEXT_BUFFER�SHORT_BINBYTESr�r�rr�r�r�)r.r�rXrr��data2r�s       r�test_in_band_buffersz(AbstractPickleTests.test_in_band_buffers�
sF���+�+�-�C��q�&�"9�"9�A�"=�>���z�z�#�u�-���#�#���
��M�M�+�t�4�� � ��f�.@�.@�$�!G��K��A�:��$�$�\�&�2G�2G��%N�*-�,�,�Q�A�?��$�$�\�&�2C�2C�T�%J�*-�,�,�Q�A�?�$� �J�J�s�E�7F�'�H�E��$�$�U�D�1��j�j��&��� � ��c�*��
�
�d�3�i��c��3�� � ��c�*�/?�.rc���|j�D�]�}tdd�D]>}|jt�5|j	||gj
��ddd��@tdtjdz�D�]#}g��fd�}|j	|||��}|jd|�|jttj|�d�|jttj|�d�|jttj|�d�|jttj|�|jrdnd�|j r|jt#�d�d�|jtj$�5|j'|�ddd�|j'|���}|j(r|j+||�n6|j+t-|�t-|��|j||�|j'|t/����}|j(r|j+||����|j+t-|�t-|��|j||���&���y#1swY���xYw#1swY��xYw)Nrr�r�rc�B���j|j��Sr$)r�r�)r�r�s �rr/z6AbstractPickleTests.test_oob_buffers.<locals>.<lambda>s���W�^�^�B�F�F�H�-Err@r�)rEr9rr-r]r�rr�r�r�r"rKr�rJ�READONLY_BUFFERr�r�r�rerr�r�r�r�)r.r�rXr�rr�r�s      @r�test_oob_buffersz$AbstractPickleTests.test_oob_bufferss*����+�+�-�C��q�!����&�&�z�2��J�J�s�E�/1�y�y��:�3�2�%�
�q�&�"9�"9�A�"=�>����"E���z�z�#�u�2A�"�C��� � ��d�3�� � ��f�.C�.C�T�!J�A�N�� � ��f�.?�.?��!F��J�� � ��f�.@�.@�$�!G��K�� � ��f�.D�.D�d�!K�&)�l�l���;��#�#��$�$�U�7�1�:�%6��D��&�&�v�'=�'=�>��J�J�t�$�?��j�j��w�j�7���,�,��M�M�#�s�+��M�M�$�s�)�T�#�Y�7��$�$�S�#�.��j�j��t�G�}�j�=���,�,��M�M�#�s�+��M�M�$�s�)�T�#�Y�7��$�$�S�#�.�A?�
.�3�2��$?�>�s�J+�0J8�+J5�8Kc�T�td�}tdtjdz�D]}}g}|j}|j|||��}t
t|�}|j||��}|jt|�t|��|j||��y�Nr�r�rr�r�)r�r9rr�r�r]r�rvrr�r�r�)r.r�rXr�r�rr�s       r�%test_oob_buffers_writable_to_readonlyz9AbstractPickleTests.test_oob_buffers_writable_to_readonly>s����I�&���1�f�5�5��9�:�E��G�%�n�n�O��:�:�c�5�/�:�J�D��)�W�-�G��*�*�T�7�*�3�C��M�M�$�s�)�T�#�Y�/����S�#�&�;rc���tjd�}tdtjdz�D]�}|j	||gj
��}|j
t�5|j|t���ddd�|j
tj�5|j|g��ddd���y#1swY�GxYw#1swY��xYwrS)rr�r9r�r]r�rr�rrAre)r.r�rXrs    r�test_buffers_errorz&AbstractPickleTests.test_buffers_errorKs���
�
 �
 ��
+���1�f�5�5��9�:�E��:�:�b�%����:�C�D��"�"�9�-��
�
�4���
�2�.��"�"�6�#9�#9�:��
�
�4��
�,�;�:�
;�.�-��;�:�s�)C�,C�C	�C 	c��tdtjdz�D])}|jd|d��}|j	|d��}�+y)Nr�rr�r�)r9rr�r]r)r.rX�data_pickledrs    r�+test_inband_accept_default_buffers_argumentz?AbstractPickleTests.test_inband_accept_default_buffers_argumentVsD���1�f�5�5��9�:�E��:�:�a���:�E�L��:�:�l�D�:�9�D�;rNzTest needs Numpyc������fd���fd�����fd�}tjd�}||�||ddd��tjd�jd�}||�||j�||ddd��y)Nc���tjj||��j|jj
|jj
�yr$)�np�testing�assert_equalr��ctypesr�r'r�r.s  �r�
check_no_copyz=AbstractPickleTests.test_buffers_numpy.<locals>.check_no_copy]s7����J�J�#�#�A�q�)����Q�X�X�]�]�A�H�H�M�M�:rc���tjj||��j|jj
|jj
�yr$)r\r]r^r�r_rr`s  �r�
check_copyz:AbstractPickleTests.test_buffers_numpy.<locals>.check_copyas7����J�J�#�#�A�q�)�������
�
�q�x�x�}�}�=rc�t��tdtjdz�D].}�j||�}�j	|�}�||��0tdtjdz�D]3}d�}�j|||��}�j	|�}�||��5tdtjdz�D]v}g}|j
}�j|||��}�j	||��}|jjs|jjr
�||��n�||��xy)Nrrr�c��yrHr%)r�s rr/zMAbstractPickleTests.test_buffers_numpy.<locals>.check_array.<locals>.<lambda>ls��Drr�r�)	r9rr�r]rr�r�r�r�)	�arrrXrr�r�r�rcrar.s	      ���r�check_arrayz;AbstractPickleTests.test_buffers_numpy.<locals>.check_arrayes����q�&�"9�"9�A�"=�>���z�z�#�u�-���j�j��&���3��$�?��q�&�"9�"9�A�"=�>��"0���z�z�#�u�o�z�N���j�j��&���3��$�	?��q�&�"9�"9�A�"=�>����")�.�.���z�z�#�u�o�z�N���j�j��w�j�7���9�9�)�)�S�Y�Y�-C�-C�!�#�s�+��s�C�(�?rr�r��r)r\�arange�reshape�T)r.rgrfrcras`  @@r�test_buffers_numpyz&AbstractPickleTests.test_buffers_numpy[su���	;�	>�	)�.�i�i��l���C���C��!��H���i�i��m�#�#�F�+���C���C�E�E���C��!��H�rc	����	�ddlm�	G���	fd�d�atD]y}t	d�D]i}d�t	d�D�cic]}t�t���c}��D]}||_�|_�d�	|j�|�}|j|��k�{ycc}w#t$r'}d}|j|t|��Yd}~��d}~wwxYw)	Nr)�getrandbitsc�*��eZdZ�fd�Zd�Z��fd�Zy)�Badc����Sr$r%)r.r\�ENABLEDs  �rr]z
Bad.__eq__�s����rc��yr,r%r2s r�__hash__zBad.__hash__�s��rc�J���d�dk(r�j�tdfS)Nr�rr%)r�rp)r.r�rns ��rrtzBad.__reduce__�s%����q�>�Q�&��$�$�&��R�y� rN)r<r=r>r]rtrt)rrr�rns���rrprp�s���
�
�
!rrpr�FTr)�randomrnrpr[r9r5r�r]rr�rrz)
r.rXr�r5rrr�rrr�rns
       @@@r�test_evil_class_mutating_dictz1AbstractPickleTests.test_evil_class_mutating_dict�s����&�	!�	!��E��2�Y����49�"�I�>�I�q�c�e�S�U�l�I�>�
�%�C�!�C�G�%/�C�N�&���4��:�:�j�%�8�D��J�J�t�$����?��$�4�>�H��M�M�(�C��F�3�3��4�s�B�3#B � 	C�)C�C)�r<r=r>�	optimizedr�rrrrrrr(r$r&r*r1r4r6r9r=rCrErHrNrQrSrUrXrZr\r^rarcrergrjrnrsruryr{r}r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�rr�r�r�r�r�r�r�r�r�r�r�r�r
rrrr$r(r*r2r8r;r?rErHrKrPrVrZr_rgrkrorrrvrzr}r�r�r�r�r�r�r�r�r�r�r�r�r�r�r�skip_if_pgo_task�requires_resourcer�r�r�r�rrr
r$r2r>rErMrQrTrVrY�unittest�skipIfr\rlrwr%rrr�r�&sT���I�%�/�/�I�
�+�9�9�N�&�(/�	,�08�Q�
#�(�9�E�:B�q�&�42�C�O�08�Q�
#�(�9�G�:B�q�&�42�C�Q�4<��6�,�=�K�>F�ST�9�86�G�U�/�,	%�
+�.�27�8�@�6�<�9�:�B�8�>�&�)�,	+�'�&�
6�E�&L�&6�4�%�.0��X�w��0�:�1�:�/�.�7�,�*�&"�-�2�4�,�4�J�&L�L�%?�N?�2&�&�A�A�&	(�
 � �89�9�
9�
2�,3�.9�2*� *�(*�("�2�-�-�.�2��1�,�,�+�
K�)�M�N��N�!��-H�^
����W���u�%�
2�&��
2�6�@(F�T
���?.��?.�B2�
�
�8K�t*K�XH�,4�(+�>(/�T'�	-�:�
�X�_�_�R�4�Z�!3�4�*�5�*�X4rr�c��eZdZeedd��d��Zeedd��d��Zeedd��d��Zeedd��d	��Z	eedd��d
��Z
y)�BigmemPickleTestsg������@F)�size�memuse�dry_runc� �dd|zz}	tD]Z}|dkr�	|j|��5|jttf�5|j||��ddd�ddd��\	d}y#1swY�xYw#1swY�vxYw#d}wxYw)Nrr�r�rWr�)r[rrr-rfr])r.rrrXs    r�test_huge_long_32bz$BigmemPickleTests.test_huge_long_32b�s����Q��X���	�"���1�9���\�\��\�.��*�*�J�
�+F�G��
�
�4�%�
�8�H�/�.�#��D�H�G��/�.���D�s:�!B	�A=�A1�A=�#
B	�1A:�6A=�=B	�B	�	B
g@c
��d|dzz}	tD]�}|dkr�	|j|��5	|j||��}tjtjdt|��z}|j|�}|j|||t|�z
|�d}	ddd���	d}y#d}wxYw#1swY��xYw#d}wxYw)N�abcdr�r�rWr�rO)
r[rr]rr�rQrRr r-r��r.rrrXr��header�
data_starts       r�test_huge_bytes_32bz%BigmemPickleTests.test_huge_bytes_32b�s����$�!�)�$��	�"���1�9���\�\��\�.�	'�"&�*�*�T�E�*�"B��"(�/�/�"(�+�+�d�C��I�">�#?��%,�]�]�4�%8�
��(�(�"�#�J�s�6�{�$:�:�F�H�#'��/�.�#��D��#'���/�.���D�s:�!C�B:�A5B3�"B:�%
C�3B7�7B:�:C	�?C�C
c
�@�d|dzz}	tD]�}|dkr�	|j|��5|dk(rA|jttf�5|j||��ddd�	ddd��b	|j||��}tjtjdt|��z}|j|�}|j|||t|�z
|�d}	ddd���	d}y#1swY��xYw#d}wxYw#1swY��xYw#d}wxYw)Nsacbdr�r�rWr��<Q)
r[rrr-rfr]rr�rQrRr r-r�r�s       r�test_huge_bytes_64bz%BigmemPickleTests.test_huge_bytes_64b�s���$�!�)�$��	�"���1�9���\�\��\�.���z�"�.�.�
�M�/J�K� �J�J�t�e�J�<�L� �
/�.�	'�"&�*�*�T�E�*�"B��"(�"2�"2�"(�+�+�d�C��I�">�#?��%,�]�]�4�%8�
��(�(�"�#�J�s�6�{�$:�:�F�H�#'��!/�.�#�*�D�L�K��#'���!/�.��$�D�sY�!D�!D�C9� 	D�)	D�3A5D�(D�+
D�9D�>D�D	�	D�D	�D�Dr�c
�*�d|dzz}	tD]�}|dk(r�	|j|��5	|j||��}tjtjdt|��z}|jd�}|j|||t|�z
|�|j|jd�td�z|jd�z
t|��d}	ddd���	d}y#d}wxYw#1swY��xYw#d}wxYw)Nr*r�rrWr�rOr�)r[rr]rr�rQrRr r-r��rindexr�s       r�test_huge_str_32bz#BigmemPickleTests.test_huge_str_32b�s������#��	�"���A�:���\�\��\�.�'�"&�*�*�T�E�*�"B��"(�"3�"3�"(�+�+�d�C��I�">�#?��%,�]�]�7�%;�
��(�(�"�#�J�s�6�{�$:�:�F�H��(�(�'�.�.��*A�C��L�*P�*1�-�-��*@�+A�CF�t�9�N�#'��/�.�#�"�D��#'���/�.���D�s:�!D�D�B=C;�*D�-
D�;C?�?D�D	�D�Dc
���d|dzz}	tD�]+}|dk(r�
|j|��5|dkrA|jttf�5|j||��ddd�	ddd��c	|j||��}tjtjdt|��z}|jd�}|j|||t|�z
|�|j|jd�td�z|jd�z
t|��d}	ddd���.	d}y#1swY��xYw#d}wxYw#1swY��PxYw#d}wxYw)Nr*r�rrWr�r�r�)r[rrr-rfr]rr�rQrRr r-r�r�r�s       r�test_huge_str_64bz#BigmemPickleTests.test_huge_str_64b
sW������#��	�"����A�:���\�\��\�.��q�y�!�.�.�
�M�/J�K� �J�J�t�e�J�<�L� �	/�.�
'�"&�*�*�T�E�*�"B��"(�"4�"4�"(�+�+�d�C��I�">�#?��%,�]�]�7�%;�
��(�(�"�#�J�s�6�{�$:�:�F�H��(�(�'�.�.��*A�C��L�*P�*1�-�-��*@�+A�CF�t�9�N�#'��!/�.�#�*�D�!L�K��#'���!/�.��$�D�sY�"E#�!E�
E�!	E�*	E#�4B=E�1E�4E#�E�E�E�E�E 	�E#�#E'N)r<r=r>rr
r�r�rr�r�r�r%rrr~r~�s����S��e�4�
�5�
� �S��e�4��5��(�S��e�4��5��:�S��E�2��3��4�S��E�2��3�rr~c��eZdZdd�Zd�Zy)�RNc��||_yr$�r�)r.r�s  rrHz
R.__init__)s	����rc��|jSr$r��r.rXs  rrtzR.__reduce__+s���{�{�rr$rur%rrr�r�(s���rr�c��eZdZdd�Zd�Zy)rZNc��||_yr$��	reduce_ex)r.r�s  rrHzREX.__init__/s	��"��rc��|jSr$r�r�s  rr�zREX.__reduce_ex__1s���~�~�rr$)r<r=r>rHr�r%rrrZrZ.s��#�rrZc��eZdZ	dZd�Zy)rtrc� �d|_tdfS)Nrr%)rurtr2s rrtzREX_one.__reduce__7s�������{�rN�r<r=r>rurtr%rrrtrt4s��>��N�rrtc��eZdZ	dZd�Zy)rxNc� �||_tdfSrg�ryrxr�s  rr�zREX_two.__reduce_ex__>��������{�r�r<r=r>ryr�r%rrrxrx;s��;�
�F�rrxc��eZdZdZd�Zd�Zy)r|Nc� �||_tdfSrgr�r�s  rr�zREX_three.__reduce_ex__Dr�rc��td��)Nz#This __reduce__ shouldn't be called)rr2s rrtzREX_three.__reduce__Gs���>�?�?r)r<r=r>ryr�rtr%rrr|r|Bs��
�F��@rr|c��eZdZ	dZd�Zy)rNc�<�||_tj||�Sr$)ryrAr�r�s  rr�zREX_four.__reduce_ex__Ms������#�#�D�%�0�0rr�r%rrrrJs��2�
�F�1rrc��eZdZ	dZd�Zy)r�rc�:�d|_tj|�Sr?)rurArtr2s rrtzREX_five.__reduce__Ts������ � ��&�&rNr�r%rrr�r�Qs��7��N�'rr�c�(�eZdZ	dd�Zd�Zd�Zd�Zy)r�Nc�&�|�||_yg|_yr$r.)r.r�s  rrHzREX_six.__init__\���#�/�U��
�R��
rc�d�t|�t|�uxr|j|jk(Sr$)r�r�r[s  rr]zREX_six.__eq__^�'���D�z�T�%�[�(�F�T�Z�Z�5�;�;�-F�Frc�:�|jj|�yr$)r�r�)r.�items  rr�zREX_six.append`s���
�
���$�rc�H�t|�ddt|j�dfSrg)r�r�r�r2s rrtzREX_six.__reduce__bs ���D�z�2�t�T�$�*�*�%5�t�;�;rr$)r<r=r>rHr]r�rtr%rrr�r�Xs���8�G� �<rr�c�(�eZdZ	dd�Zd�Zd�Zd�Zy)r�Nc�&�|�||_yi|_yr$rK)r.rLs  rrHzREX_seven.__init__ir�rc�d�t|�t|�uxr|j|jk(Sr$)r�rLr[s  rr]zREX_seven.__eq__kr�rc�"�||j|<yr$rK)r.r2rqs   r�__setitem__zREX_seven.__setitem__ms����
�
�3�rc�d�t|�dddt|jj��fSrg)r�r�rLr�r2s rrtzREX_seven.__reduce__os)���D�z�2�t�T�4��
�
�0@�0@�0B�+C�C�Crr$)r<r=r>rHr]r�rtr%rrr�r�es���8�G� �Drr�c�(�eZdZ	dd�Zd�Zd�Zd�Zy)r�Nc��||_yr$�r��r.r�s  rrHzREX_state.__init__vrrrc�d�t|�t|�uxr|j|jk(Sr$�r�r�r[s  rr]zREX_state.__eq__xr�rc��||_yr$r�r�s  r�__setstate__zREX_state.__setstate__zrrrc�2�t|�d|jfSrgr�r2s rrtzREX_state.__reduce__|s���D�z�2�t�z�z�)�)rr$)r<r=r>rHr]r�rtr%rrr�r�rs����G��*rr�c��eZdZ	dZy)r�N)r<r=r>r�r%rrr�r�s
��5��Mrr�c��eZdZ	dZy)r�N�r<r=r>rtr%rrr�r��s
��2��Jrr�c��eZdZ	d�ZdZy)r�c��yr?r%r2s r�__getstate__zC_None_setstate.__getstate__�s��rN)r<r=r>r�r�r%rrr�r��s��5���Lrr�c��eZdZy)rdNrlr%rrrdrd�rmrrdc��eZdZd�Zy)�Unpickleablec��t�r$r�r2s rrtzUnpickleable.__reduce__�s���rNr�r%rrr�r��r{rr�c��eZdZd�Zy)rcc��yr$r%r�s   r�__call__zUnpickleableCallable.__call__�rbrN)r<r=r>r�r%rrrcrc�rcrrcc��eZdZdZy)r4rN�r<r=r>r/r%rrr4r4�s��
�Frr4c��eZdZdZy)�MyFloatg�?Nr�r%rrr�r��s��
�Frr�c��eZdZdZy)�	MyComplexy�?Nr�r%rrr�r��s��
�Frr�c��eZdZdZy)�MyStrr'Nr�r%rrr�r��s��
�Frr�c��eZdZdZy)�	MyUnicodeu	hello ሴNr�r%rrr�r��s��
�Frr�c��eZdZdZy)r�rNr�r%rrr�r��s��
�Frr�c��eZdZgd�Zy)r�rNr�r%rrr�r��s��
�Frr�c��eZdZddd�Zy)rGrr�rNr�r%rrrGrG�s���1�
�FrrGc��eZdZddhZy)r�r�r�Nr�r%rrr�r��s���3�Z�Frr�c� �eZdZeddh�Zy)r�r�r�N)r<r=r>r�r/r%rrr�r��s��
��S�z�
"�Frr�c��eZdZd�Zy)�MyIntWithNewc��t�r$)�AssertionError)r�rqs  rr�zMyIntWithNew.__new__�s���rN)r<r=r>r�r%rrr�r��s��rr�c�$�eZdZejZy)r:N)r<r=r>r�r�r%rrr:r:�s���k�k�Grr:c��eZdZdgZy)rqr�N)r<r=r>r�r%rrrqrq�s	����Irrqc��eZdZd�Zd�Zy)r=c��td��)Nz3SimpleNewObj.__init__() didn't expect to get called)r�r�s   rrHzSimpleNewObj.__init__�s���M�N�Nrc�f�t|�t|�k(xr|j|jk(Sr$)r�rZr[s  rr]zSimpleNewObj.__eq__�s'���4�y�C��J�&�J�4�=�=�E�N�N�+J�JrN)r<r=r>rHr]r%rrr=r=�s��O�Krr=c��eZdZd�Zy)rjc��d|zdfS)N�%Xr�r%r2s r�__getnewargs__zComplexNewObj.__getnewargs__�s���t��R� � rN)r<r=r>r�r%rrrjrj�s��!rrjc��eZdZd�Zy)rnc��d|zfddifS)Nr��baser�r%r2s r�__getnewargs_ex__z!ComplexNewObjEx.__getnewargs_ex__�s���t��~���|�+�+rN)r<r=r>r�r%rrrnrn�s��,rrnc��eZdZd�Zy)r�c��|jyr$)r�)r.r2s  r�__getattr__zBadGetattr.__getattr__�s	����rN)r<r=r>r�r%rrr�r��s��rr�c���eZdZ�fd�Z�xZS)rvc�8��|dk(rt�t�|�	|�S)Nr�)r��super�__getattribute__)r.r�r�s  �rr�zNoNew.__getattribute__�s!����9�� � ��w�'��-�-r)r<r=r>r��
__classcell__)r�s@rrvrv�s
���.�.rrvc�Z�eZdZd�Zd�Zd�Zd�Zd�Zd�Zd�Z	d�Z
d	�Zd
�Zd�Z
d�Zd
�Zy)�AbstractPickleModuleTestsc��ttd�}	|j�|jt|j
d|�t
jt�y#t
jt�wxYw�Nr3�{�rEr�closerr-rr�unlink�r.rKs  r�test_dump_closed_filez/AbstractPickleModuleTests.test_dump_closed_file��Q�������	%�
�G�G�I����j�$�)�)�S�!�<����V�$��I���V�$���2A�A9c��ttd�}	|j�|jt|j
d|�t
jt�y#t
jt�wxYwr�r�rs  r�test_load_closed_filez/AbstractPickleModuleTests.test_load_closed_file�rrc���tj�}didg}|j||�|jd�|j	|�}|j||�y)Nr��|r)r6rBrr8r�r�)r.�streamrr�s    r�test_load_from_and_dump_to_filez9AbstractPickleModuleTests.test_load_from_and_dump_to_file�sO��������R��~���	�	�$������A���I�I�f�%�	�����D�)rc�D�|jtjd�yr�)r�rr�r2s r�test_highest_protocolz/AbstractPickleModuleTests.test_highest_protocols������0�0�!�4rc��tj�}|jd|d�|jd|d��|jdd�|jdd��|j	|d�|j	|d��y)Nr�r�)�filer�r�)r6rBrr]�Picklerrs  r�test_callapiz&AbstractPickleModuleTests.test_callapisk���J�J�L���	�	�#�q�"���	�	�#�A��	�+��
�
�3����
�
�3��
�$����Q������Q���$rc�2�ttd�}	tD]%}|jt|j
d||��'	|j
�tjt�y#|j
�tjt�wxYw)N�wr�)	rErr[rr�rr�rr�r�s   r�test_dump_text_filez-AbstractPickleModuleTests.test_dump_text_filesk�������	%�"���!�!�)�T�Y�Y��Q��F�#�
�G�G�I����V�$��
�G�G�I����V�$�s�.A+�++Bc��tjd�}|jttj
tjf|j|�y)NsX''.)	r6rBrr0rQr�rrer�)r.r�s  r�test_incomplete_inputz/AbstractPickleModuleTests.test_incomplete_inputs8���J�J�w������8�V�\�\�6�3I�3I�J�D�I�I�WX�Yrc��Gd�d|j�}Gd�d|j�}|jtj|�j
d�|jtj|�j�y)Nc��eZdZd�Zy)�;AbstractPickleModuleTests.test_bad_init.<locals>.BadPicklerc��yr$r%r2s rrHzDAbstractPickleModuleTests.test_bad_init.<locals>.BadPickler.__init__!���rNrIr%rr�
BadPicklerr ���$rrc��eZdZd�Zy)�=AbstractPickleModuleTests.test_bad_init.<locals>.BadUnpicklerc��yr$r%r2s rrHzFAbstractPickleModuleTests.test_bad_init.<locals>.BadUnpickler.__init__$rrNrIr%rr�BadUnpicklerr#rrrr)rr�rrr\rrer�)r.rrs   r�
test_bad_initz'AbstractPickleModuleTests.test_bad_initsb��	%����	%�	%�4�>�>�	%�	
���&�.�.�
��0A�0A�1�E����&�0�0�,�.�2E�2E�Frc�����d��td���Gd�d�}|jttf|j|��G�fd�d�}|jttf|j|��G�fd�d�}|jttf|j|��G��fd�d�}|jt
|j|��G��fd�d�}|jt
|j|��G�fd	�d�}|jt
|j|��G�fd
�d�}|jtt
f|j|��G��fd�d�}	|j	|��G��fd�d�}	|j	|��y#t
$rY�0wxYw#t
$rYywxYw)
Nc��t�r$)r�r�s   r�raises_oserrorzIAbstractPickleModuleTests.test_unpickler_bad_file.<locals>.raises_oserror+s���Mrc��t�r$r�r2s r�bad_propertyzGAbstractPickleModuleTests.test_unpickler_bad_file.<locals>.bad_property-s���rc��eZdZy��<AbstractPickleModuleTests.test_unpickler_bad_file.<locals>.FNrlr%rr�Fr(2r�rr)c���eZdZW�Zyr'�r<r=r>rF�r#s�rr)z<AbstractPickleModuleTests.test_unpickler_bad_file.<locals>.F7s���%�Hrc���eZdZW�Zyr'�r<r=r>rEr,s�rr)z<AbstractPickleModuleTests.test_unpickler_bad_file.<locals>.F<s���!�Drc���eZdZW�ZW�Zyr')r<r=r>rErF�r%r#s��rr)z<AbstractPickleModuleTests.test_unpickler_bad_file.<locals>.FAs
����D�%�Hrc���eZdZW�ZW�Zyr')r<r=r>rFrEr0s��rr)z<AbstractPickleModuleTests.test_unpickler_bad_file.<locals>.FGs
���#�H�!�Drc���eZdZW�Zyr'r+�r%s�rr)z<AbstractPickleModuleTests.test_unpickler_bad_file.<locals>.FMs���#�Hrc���eZdZW�Zyr'r.r3s�rr)z<AbstractPickleModuleTests.test_unpickler_bad_file.<locals>.FRs����Drc� ��eZdZW�ZW�ZW�Zyr')r<r=r>r0rErFr0s��rr)z<AbstractPickleModuleTests.test_unpickler_bad_file.<locals>.FWs����D�!�D�%�Hrc� ��eZdZW�ZW�ZW�Zyr')r<r=r>�readintorErFr0s��rr)z<AbstractPickleModuleTests.test_unpickler_bad_file.<locals>.Fas���#�H�!�D�%�Hr)r�rr�r�r�rd)r.r)r%r#s  @@r�test_unpickler_bad_filez1AbstractPickleModuleTests.test_unpickler_bad_file)s����	�	�	�
�	�	�	����>�9�5�t�~�~�q�s�K�	&�	&����>�9�5�t�~�~�q�s�K�	"�	"����>�9�5�t�~�~�q�s�K�	&�	&�	
���+�t�~�~�q�s�;�	"�	"�	
���+�t�~�~�q�s�;�	$�	$����+�t�~�~�q�s�;�	 �	 ����>�;�7������M�	&�	&�	��N�N�1�3��
	&�	&�	��N�N�1�3����	��	���	��	�s$�G�:G �	G�G� 	G,�+G,c���Gd�d�}|jt|j|��Gd�d�}|jt|j|��y)Nc��eZdZy)�:AbstractPickleModuleTests.test_pickler_bad_file.<locals>.FNrlr%rrr)r;lr�rr)c��eZdZed��Zy)r;c��t�r$r�r2s rrGz@AbstractPickleModuleTests.test_pickler_bad_file.<locals>.F.writers��!�!rN)r<r=r>r�rGr%rrr)z:AbstractPickleModuleTests.test_pickler_bad_file.<locals>.Fqs��
�
"��
"r)rr�rrd)r.r)s  r�test_pickler_bad_filez/AbstractPickleModuleTests.test_pickler_bad_filejsH��	�	����)�T�\�\�1�3�7�	"�	"�	
���+�t�|�|�Q�S�9rc�@�td�}tdd�D]5}|jt�5|||gj��ddd��7tdt
jdz�D]�}g}|j}||||��}|jd|�|jt|d�d�|jt
j�5||�ddd�|||��}|j||���y#1swY��xYw#1swY�4xYw)Nsfoorr�)r�r�rr�)r�r9rr-r�rr�r�r�r�rer�)	r.r]rr�rXr�r�rr�s	         r�check_dumps_loads_oob_buffersz7AbstractPickleModuleTests.check_dumps_loads_oob_buffersws����F�#���1�a�[�E��"�"�:�.��c�E�&(�i�i�1�/�.�!�
�1�f�5�5��9�:�E��G�%�n�n�O���u�)8�:�D����V�T�*����U�7�1�:�.��7��"�"�6�#9�#9�:��d��;���g�.�C��M�M�#�s�#�;�/�.��;�:�s�D�	D�D	�D	c�P�|j|j|j�yr$)r@r]rr2s r�test_dumps_loads_oob_buffersz6AbstractPickleModuleTests.test_dumps_loads_oob_buffers�s���*�*�4�:�:�t�z�z�Brc�>���fd�}�fd�}�j||�y)Nc�t��tj�}�j||fi|��|j�Sr$)r6rBrrD)r�r�rKr.s   �rr]zCAbstractPickleModuleTests.test_dump_load_oob_buffers.<locals>.dumps�s/����
�
��A��D�I�I�c�1�'��'��:�:�<�rc�T��tj|�}�j|fi|��Sr$)r6rBr�)rr�rKr.s   �rrzCAbstractPickleModuleTests.test_dump_load_oob_buffers.<locals>.loads�s'����
�
�4� �A��4�9�9�Q�)�&�)�)r)r@)r.r]rs`  r�test_dump_load_oob_buffersz4AbstractPickleModuleTests.test_dump_load_oob_buffers�s���	 �
	*�	
�*�*�5�%�8rN)r<r=r>rrr	rrrrr r8r>r@rBrFr%rrr�r��sG��%�%�*�5�%�%�Z�
G�?�B:�$�0C�9rr�c��eZdZd�Zd�Zd�Zy)�AbstractPersistentPicklerTestsc��t|t�r(|dzdk(r |xjdz
c_t|�S|dk(r|xjdz
c_yy)Nr�rr�test_false_valuerY)r�r��id_countrz�false_count)r.rAs  rrz,AbstractPersistentPicklerTests.persistent_id�sN���f�c�"�v��z�Q���M�M�Q��M��v�;��
�)�
)�����!���rc�v�|s|xjdz
c_y|xjdz
c_t|�}|S)NrrJ)�load_false_count�
load_countr�)r.�oidrAs   r�persistent_loadz.AbstractPersistentPicklerTests.persistent_load�s5����!�!�Q�&�!�%��O�O�q� �O���X�F��Mrc	���ttd��dgz}tD]�}d|_d|_d|_d|_|j|j|j||��|�|j|jd�|j|jd�|j|jd�|j|j
d���y)Nr�rJrr�r)
r�r9r[rKrLrNrOr�rr])r.�LrXs   r�test_persistencez/AbstractPersistentPicklerTests.test_persistence�s�����r��O�1�2�2���E��D�M� �D��$%�D�!��D�O����T�Z�Z��
�
�1�e�(<�=�q�A����T�]�]�A�.����T�-�-�q�1����T�_�_�a�0����T�2�2�A�6�rN)r<r=r>rrQrTr%rrrHrH�s����7rrHc�*�eZdZd�Zd�Zd�Zd�Zd�Zy)�&AbstractIdentityPersistentPicklerTestsc��|Sr$r%)r.r�s  rrz4AbstractIdentityPersistentPicklerTests.persistent_id�����
rc��|Sr$r%)r.�pids  rrQz6AbstractIdentityPersistentPicklerTests.persistent_load�rXrc��|j|j||��}|j|t|��|j	||�yr$)rr]rr�r�)r.r�rXr�s    r�_check_return_correct_typezAAbstractIdentityPersistentPicklerTests._check_return_correct_type�s?���J�J�t�z�z�#�u�5�6�	����i��c��3�����C�(rc��tD]<}|dk(r|jdd��ddddtfD]}|j||���>y)Nrr�sabc
zabc
r�g*\��(��)r[r\rz)r.rXr�s   r�test_return_correct_typez?AbstractIdentityPersistentPicklerTests.test_return_correct_type�sI���E���z��/�/��q�9�$�g�r�:�s�C�C��3�3�C��?�D�rc��d}|jtj�5}|j|d�ddd�|j	tj�d�tj|jd�zdz}|jtj�5}|j|�ddd�|j	t|j�d�y#1swY��xYw#1swY�;xYw)Nu∅rz2persistent IDs in protocol 0 must be ASCII stringsr4r,)rrr\r]r�rzr��PERSIDr"rer)r.�
non_ascii_strrrr�s    r�test_protocol0_is_ascii_onlyzCAbstractIdentityPersistentPicklerTests.test_protocol0_is_ascii_only�s���'�
�
�
�
�v�3�3�
4���J�J�}�a�(�5�����R�\�\�*�M�	O��-�-�-�"6�"6�w�"?�?�&�H��
�
�
�v�5�5�
6�"��J�J�w��7�����R�\�\�*�M�	O�5�
4��
7�
6�s�C&�&C2�&C/�2C;N)r<r=r>rrQr\r^rbr%rrrVrV�s����)�
@�
OrrVc�V�eZdZdZdZd�Zd�Zd�Zd�Zd�Z	dd�d	�Z
d
�Zd�Zd�Z
d
�Zy)�#AbstractPicklerUnpicklerObjectTestsNc��yr$r%r2s rrz)AbstractPicklerUnpicklerObjectTests.setUp�s�rc�$�gd�}tD�]}tj�}|j||�}|j	|�|j�}|j
d�|j�|j	|�|j�}|j�|j
d�|j�|j	|�|j�}|j||�|j||���y)N��abcdefgrh�,r)r[r6rB�
pickler_classrrDr8�truncate�
clear_memor�r�)r.rrXrKr��
first_pickled�second_pickled�
third_pickleds        r�test_clear_pickler_memoz;AbstractPicklerUnpicklerObjectTests.test_clear_pickler_memo�s���*���Y�E��
�
��A��(�(��E�2�G��L�L����J�J�L�M�
�F�F�1�I�
�J�J�L��L�L����Z�Z�\�N�
��� �
�F�F�1�I�
�J�J�L��L�L����J�J�L�M����
�~�>����]�M�:�/rc�j�gd�}tj�}|j|�}|j|�|j	�}tj�}|j|�}|j
|_|j|�|j	�}|j
||�y�Nrg)r6rBrjrrD�memor�)r.rrKr�rm�primed�primed_pickleds       r�test_priming_pickler_memoz=AbstractPicklerUnpicklerObjectTests.test_priming_pickler_memos���)���J�J�L���$�$�Q�'�����T���
�
��
��J�J�L���#�#�A�&���l�l������D����������M�>�:rc���gd�}tj�}|j|�}|j|�|j	�}tj�}|j|�}|j
|_|j|�|j	�}|j
tj|��}|j�}|j||�|j
tj|��}|j
|_|j�}	|j
j�|j|	|�|j|	|u�yrr)r6rBrjrrDrs�unpickler_classr�r�r�r�)
r.rrKr�rmrtrur��unpickled_data1�unpickled_data2s
          r�test_priming_unpickler_memoz?AbstractPicklerUnpicklerObjectTests.test_priming_unpickler_memo's��)���J�J�L���$�$�Q�'�����T���
�
��
��J�J�L���#�#�A�&���l�l������D��������(�(����M�)B�C�	�#�.�.�*������$�/��%�%�b�j�j��&@�A���n�n��� �+�+�-������������$�/�����?�:�;rc��gd�}tj�}|j|�}|j|�|j	�}gd�}tj�}|j|�}|j|�|j	�}tj�}|j|�|j
d�|j|�}|j|j�|�|j
d�|j�|j|�|j
d�|j|j�|�y)Nrg)rhririr)r6rBrjrrDrGr8rxr�r�rk)r.�data1rKr��pickled1rL�pickled2r�s        r�test_reusing_unpickler_objectszBAbstractPicklerUnpicklerObjectTests.test_reusing_unpickler_objectsEs���*���J�J�L���$�$�Q�'�����U���:�:�<��#���J�J�L���$�$�Q�'�����U���:�:�<���J�J�L��	�����	���q�	��(�(��+�	�������)�5�1�	���q�	�	�
�
��	�����	���q�	�������)�5�1rT�r3c
��tD�]5}|j|��5td�D�cgc]}|t|�f��c}dtgz}|�}|j||��}|j
|�|j�}d}	|||	z�}|j|�}
t|	�D]c}|r|j�}|j|
j�|�|s�8|j|j�t	|�z��e|jt|
j�ddd���8ycc}w#1swY��IxYw)NrWi�sabcder�r�)r[rr9rzr rjrrDrxr;r�r�rr0)
r.�ioclassr3rXr'r}rKr�r�r�r�rrr�s
             r�_check_multiple_unpicklingsz?AbstractPicklerUnpicklerObjectTests._check_multiple_unpicklings^s���Y�E����E��*�.3�D�k�:�k��!�S��V��k�:�h��_�L���I���,�,�Q��,�?�����U�#��*�*�,�����G�a�K�(�� �0�0��3�	��q��A���f�f�h���$�$�Y�^�^�%5�u�=���(�(�����3��W��3E�F�"��!�!�(�I�N�N�;�!+�*���:�+�*�s#�E�E�B'E�'AE�E�E	c�B�|jtj�yr$)r�r6rBr2s r�"test_multiple_unpicklings_seekablezFAbstractPicklerUnpicklerObjectTests.test_multiple_unpicklings_seekablers���(�(����4rc�2�|jtd��y�NFr�)r�r*r2s r�$test_multiple_unpicklings_unseekablezHAbstractPicklerUnpicklerObjectTests.test_multiple_unpicklings_unseekableus���(�(���(�Frc�2�|jtd��yr�)r�r@r2s r�!test_multiple_unpicklings_minimalzEAbstractPicklerUnpicklerObjectTests.test_multiple_unpicklings_minimalxs��	
�(�(��U�(�Crc��ttd��}tD]�}tdd�D]�}tjtj
�|��}|j
||��}|j|�|jd�|j|�}|j|j�|�����y)Nr�r�)�buffer_sizer�r)r�r9r[r6�BufferedRandomrBrjrr8rxr�r�)r.rrX�buf_sizerKr�r�s       r�"test_unpickling_buffering_readlinezFAbstractPicklerUnpicklerObjectTests.test_unpickling_buffering_readline}s����E�"�I����E�!�!�R�L���%�%�b�j�j�l��I���,�,�Q��,�?�����T�"����q�	� �0�0��3�	�� � ����!1�4�8�
)�r)r<r=r>rjrxrrprvr{r�r�r�r�r�r�r%rrrdrd�sH���M��O�$�;�@;�$<�<2�2@D�<�(5�G�D�
9rrd�reduce_Ac��eZdZd�Zy)r�c��ttffSr$)rzr�r2s rrtzAAA.__reduce__�s���X�K��rNr�r%rrr�r��s�� rr�c��eZdZd�Zd�Zy)�BBBc��d|_y)Nzsome attributer�r2s rrHzBBB.__init__�s��"��rc��d|_y)N�BBB.__setstate__r�r�s  rr�zBBB.__setstate__�s	��#��rN)r<r=r>rHr�r%rrr�r��s��"�
$rr�c��	d|_y)N�custom state_setterr�)r�r�s  r�setstate_bbbr��s���
"�C�Erc��eZdZ	d�Zy)�AbstractCustomPicklerClassc��t|dd�}|dk(rtdfS|dk(rtdfS|dk(ry|dk(rtd	��tS)
Nr<rK)r��MyClass)�some str�gF�h�The reducer just failed)r�r�rzr-r�)r.r��obj_names   r�reducer_overridez+AbstractCustomPicklerClass.reducer_override�s[���3�
�D�1���s�?���:���y� ��
�%�%�
��_��
��_��6�7�7��rN)r<r=r>r�r%rrr�r��s
��F�rr�c�6�eZdZd�Zej
d��Zy)�AbstractHookTestsc�*�d�}d�}d�}Gd�d�}tdtjdz�D�]:}|j|��5t	j
�}|j
||�}|j||tjg�tj|j��\}}	}
|j|d	�|j|	d
�|j|
tj�|jtj�5|j|�ddd�|j!t"d�5|j|�ddd�ddd���=y#1swY�ExYw#1swY�!xYw#1swY��axYw)Nc��yr$r%r%rrrKz.AbstractHookTests.test_pickler_hook.<locals>.f�r�rc��yr$r%r%rrr�z.AbstractHookTests.test_pickler_hook.<locals>.g�r�rc��yr$r%r%rrr�z.AbstractHookTests.test_pickler_hook.<locals>.h�r�rc��eZdZy)�4AbstractHookTests.test_pickler_hook.<locals>.MyClassNrlr%rrr�r��r�rr�rrrWr�r�r�)r9rr�rr6rBrjrr�r�rrDr�r�rr\�assertRaisesRegexr-)r.rKr�r�r�rX�bior��new_f�some_str�math_logs           r�test_pickler_hookz#AbstractHookTests.test_pickler_hook�s9��
	�	�	�	�	��1�f�5�5��9�:�E����E��*��j�j�l���&�&�s�E�2������7�D�H�H�-�.�,2�L�L�����,H�)��x��� � ���*�� � ��:�6�
�
�
�h����1��&�&�v�';�';�<��F�F�1�I�=��+�+�"�$=�?��F�F�1�I�?�%+�*�;� =�<��?�?��%+�*�s=�CF�E0�,F�
E<�F�0E9�5F�<F�F�F	c��tdtjdz�D]�}|j|��5d�}t	j
|�}t
j�}|j||�}|j|�tj|j��}~~|j|��ddd���y#1swY��xYw)NrrrWc��yr$r%r%rrrKzEAbstractHookTests.test_reducer_override_no_reference_cycle.<locals>.f�s��r)
r9rr�rr5r	r6rBrjrrrDrV)r.rXrK�wrr�r�r�s       r�(test_reducer_override_no_reference_cyclez:AbstractHookTests.test_reducer_override_no_reference_cycle�s����1�f�5�5��9�:�E����E��*���[�[��^���j�j�l���&�&�s�E�2�����q�	����S�\�\�^�4�����!�!�"�$�'�+�*�;�*�*�s�BC	�	C	N)r<r=r>r�rrPr�r%rrr�r��s"��&�P
���(��(rr�c�$�eZdZd�Zd�Zd�Zd�Zy)�AbstractDispatchTableTestsc���tj�}|j|d�}|jt�5|j
ddd�|j
t|d��y#1swY�%xYw)Nr�dispatch_table)r6rBrjrr�r�rAr�)r.rKr�s   r�test_default_dispatch_tablez6AbstractDispatchTableTests.test_default_dispatch_tablesZ���J�J�L�����q�!�$��
�
�
�~�
.�
���/������$4�5�6�/�
.�s�
A-�-A6c������j��G�fd�d�j��d���fd�	}�j|��y)Nc���eZdZW�Zy)�GAbstractDispatchTableTests.test_class_dispatch_table.<locals>.MyPicklerN)r<r=r>r�)�dts�r�	MyPicklerr�s����Nrr�c���tj�}�||�}�j|j��|j	|�|j�Sr$)r6rBr�r�rrD)r�r�rKr�r�r�r.s    ���rr]zCAbstractDispatchTableTests.test_class_dispatch_table.<locals>.dumpssG����
�
��A��!�X�&�A����Q�-�-�r�2�
�F�F�3�K��:�:�<�rr$)�get_dispatch_tablerj�_test_dispatch_table)r.r]r�r�s` @@r�test_class_dispatch_tablez4AbstractDispatchTableTests.test_class_dispatch_tables:���
�
$�
$�
&��	 ��*�*�	 �	 �	
�!�!�%��,rc�Z����j��d��fd�	}�j|��y)Nc����tj�}�j||�}�|_�j	|j��|j|�|j
�Sr$)r6rBrjr�r�rrD)r�r�rKr�r�r.s    ��rr]zFAbstractDispatchTableTests.test_instance_dispatch_table.<locals>.dumps"sU����
�
��A��"�"�1�h�/�A�!�A�����Q�-�-�r�2�
�F�F�3�K��:�:�<�rr$)r�r�)r.r]r�s` @r�test_instance_dispatch_tablez7AbstractDispatchTableTests.test_instance_dispatch_tables(���
�
$�
$�
&��	 �	
�!�!�%��,rc������fd�}d�}d}|j||�|�|j||�|�d��fd�}||t<|j||���|j||�|�t�}t�}|j||�t�|j||�t�|j||�t�|j||�t�||t<|j||�t�|j||���|j||�t�|j||�t�d��fd�}	|	|t<|t=|j||���|j||�t�|j||�t�|j||�t�|j||�jd�d	�}
|
|t<|j||�jd
�y)Nc�<��tj�|d��S�Nr)rr)r�r]s �r�custom_load_dumpzIAbstractDispatchTableTests._test_dispatch_table.<locals>.custom_load_dump-s����<�<��c�1�
�.�.rc�T�tjtj|d��Sr�)rrr]rIs r�default_load_dumpzJAbstractDispatchTableTests._test_dispatch_table.<locals>.default_load_dump0s���<�<����S�!� 4�5�5ry�?@�reduce_1c���t�ffSr$ry)r��REDUCE_1s �rr�zAAbstractDispatchTableTests._test_dispatch_table.<locals>.reduce_1;�������#�#r�reduce_2c���t�ffSr$ry)r��REDUCE_2s �rr�zAAbstractDispatchTableTests._test_dispatch_table.<locals>.reduce_2Rr�rr�c�6�td|jddtfSrg)r�rZr�rIs r�
reduce_bbbzCAbstractDispatchTableTests._test_dispatch_table.<locals>.reduce_bbbes����C�L�L�$��l�B�Brr�)r��complexr�r�r�rr�)
r.r]r�r�r�r�r�r�r�r�r�r�r�s
 `         @@rr�z/AbstractDispatchTableTests._test_dispatch_table,s���	/�	6�

�����)�!�,�a�0����*�1�-�q�1���	$�"*��w�����)�!�,�h�7����*�1�-�q�1�
�E���E�����)�!�,�h�7����.�q�1�3�7����*�1�-�x�8����/��2�C�8�'��s�����)�!�,�h�7����)�!�,�h�7����*�1�-�x�8����/��2�C�8���	$�&��s���3�����)�!�,�h�7����.�q�1�3�7����*�1�-�x�8����/��2�C�8�	
���*�1�-�/�/�1C�D�	C�)��s��	
���)�!�,�.�.�0E�FrN)r<r=r>r�r�r�r�r%rrr�r�s��7�-� -�@Grr�rzDATA{0} = (r�z	    {0!r}r�z# Disassembly of DATA{0}zDATA{0}_DIS = """\z""")�r�r�rNr�r6r�r�r�rrrArQr�rFr�r{r5�textwrapr�http.cookiesrr�r�r�r�test.supportrrrr	r
rr�test.support.import_helperr
�test.support.os_helperrr�test.support.warnings_helperrr�numpyr\�
skipUnlessr�rOr9r�r[rr"r(rBr*rAr@rKrXr_rerir=rkror�rwr}r�r�r�r�r�r�r�rvr�r�rrrrr�	DATA2_DISr�	DATA3_DISr�	DATA4_DISr6r8r:r��ArithmeticErrorr�r�rr��BytesWarning�DeprecationWarningr0�EnvironmentErrorr>�FloatingPointError�
FutureWarning�
GeneratorExit�IOError�
ImportWarning�IndentationErrorrq�KeyError�KeyboardInterrupt�LookupError�MemoryError�	NameErrorr,r�rf�PendingDeprecationWarning�ReferenceErrorr��RuntimeWarning�
StopIteration�SyntaxError�
SyntaxWarning�SystemError�
SystemExit�TabErrorr��UnboundLocalError�UnicodeError�UnicodeWarning�UserWarningr-�Warning�ZeroDivisionErrorr<r=r?r�r�rTr�r~r�rZrtrxr|rr�r�r�r�r�r�r�rdr�rlrcr4�floatr�r�r�rzr�r�r3r�r�r�r�rGr7r�r�r�r-r�r:rqr=rjrnr�rvr�rHrVrdr�r�r�r�r�r�r�r<rr'rrr]r�r
r�r �jr�r%rr�<module>rs������
�	��	��
��
�
�
������%����"���.�)�)�F��
�	&�	(��
)�#�x�"�"�3�;�;��#6�#M�O��
�&�)�)�A�-�.�	��
�
�&�2�:�:�&�	%��	%�,:�:�*/�/�
��
�����
��
����
��
����
��
����	�	� � ��C���a��	��	�	�F�i�	�8��8�� �E� �8 �	� �8��G(�G(�\��(P
�	�f%�� >
�	�B	��7
�	�t	
��7
�	�t.��@
�	�FQ��T��Q��
L�	�.#��.#��.#��.#��	.#�
�.#��
.#��.#�
�.#��.#��.#��.#��.#��.#��.#��.#� �!.#�"�#.#�$�%.#�&
�'.#�(�).#�*�+.#�,�-.#�.�/.#�0�1.#�2�3.#�4�5.#�6�7.#�8�9.#�:�;.#�<�=.#�@�A.#�B�C.#�D�E.#�F�G.#�H�I.#�J
�K.#�L�M.#�N�O.#�P�Q.#�R�S.#�T�U.#�V�W.#�X�Y.#�Z�[.#��`<��,�
�

�*u!�u!�pj7�j7�Z~4�~4�B4|�|�B�����f���f��@��@�1�v�1�'�v�'�<�f�<�D��D�*��*�������	�)�	����~��
�<�
��C���e������C������e���T���T���C��#�)�#��G�
�
�I�
�f�f�e�[�
:�	�
�3���L���v��
K�3�K�!�L�!�,�l�,���.�.�v9�v9�r%7�%7�P O� O�F\9�\9�B�� �&� �$�&�$�	"���0?(�?(�DhG�hG�V�z����
�A�
�6�*�*�1�,�
-���F�L�L��A���
�m�"�"�1�%�&��q�#�a�&�"�%�A��a��!�B�$�i� �A��+�$�$�Q�'�(�&�	�c�
�
��
�(�/�/��2�3�
�&�-�-�a�0�1��A��
�h��
��.�	��qR���K���(
)�	(����	
�B��s<�U
�U%�U�U%�
U�U�U"�U%�%U0�/U0

Sindbad File Manager Version 1.0, Coded By Sindbad EG ~ The Terrorists