python (3.11.7)

(root)/
lib/
python3.11/
test/
__pycache__/
pickletester.cpython-311.pyc

e>
ddlZddlZddlZddlZddlZddlZddlZddlZddlZddl	Z	ddl
Z
ddlZddlZddl
Z
ddlZddlZddlZddlmZddlmZ	ddlZn
#e$rdZYnwxYwddlmZddlmZddlmZmZmZmZmZm Z ddl!m"Z"ddl#m$Z$dd	lm%Z%dd
l&m'Z'ddlm(Z(	e'5ddl)Z*dddn#1swxYwYn
#e$rdZ*YnwxYwej+ej,dkd
Z-e.ej/dzZ0dZ1dZ2dZ3Gddej4Z5Gdde6Z7GddZ8GddZ9Gdde9Z:Gdde9Z;GddZ<Gd d!Z=ddl>Z>e9e>_9d"e9_?e:e>_:d"e:_?e;e>_;d"e;_?Gd#d$e@ZAGd%d&e9ZBGd'd(eCZDGd)d*e6eD+ZEGd,d-eCZFd.ZGGd/d0eHZIGd1d2eJZKe
Gd3d4ZLd5ZMd6ZNd7ZOd8ZPd9ZQd:ZRd;ZSd<ZTd=ZUd>ZVd?ZWd@ZXdAZYdBZZge[e\e]e^e_e`eaebecedeeefegeheeiejekelemeneoepeqereseteuevewexeyeze{e|e}e~eeeeeeeRZdCZdDZdEZGdFdGZGdHdIZGdJdKZGdLdMe6ZGdNdOe6ZGdPdQe6ZGdRdSe6ZGdTdUe6ZGdVdWe6ZGdXdYe6ZGdZd[e6ZGd\d]e@ZGd^d_eZGd`daeZGdbdceZGdddeeZGdfdgeZGdhdieZGdjdkeZGdldmeZGdndoeZeeeeeeeeeeg
ZGdpdqe@ZGdrdseZGdtdueZGdvdwe@aGdxdytVZGdzd{tVZGd|d}ZGd~dZGddZGddZGddZdZGdde6ZGdde6ZdZGddZGddZGddZed"krddl	mZeZe.ej/dzD]ZejeeZedee.deedD]6ZeHeeedzZedeĦ7edeedeedeeeededSdS)N)dedent)SimpleCookie)support)	os_helper)
TestFailedrun_with_locale
no_tracing_2G_4G
bigmemtest)forget)TESTFN)threading_helper)save_restore_warnings_filters)bytes_typeslz(test is only meaningful on 32-bit buildsc~tj|D]'\}}}|j|dkrdS(dS)Nlatin-1TFpickletoolsgenopscodedecode)rpickleopdummys    E/BuggyBox/python/3.11.7/bootstrap/lib/python3.11/test/pickletester.pyopcode_in_pickler;sM'.v66E5
7dkk),,,,44-5cd}tj|D])\}}}|j|dkr|dz
}*|S)Nrrrr)rrnrrs     rcount_opcoder"BsP	A'.v66E5
7dkk),,,,
FAHrc|SNxs ridentityr(JsHrc&eZdZdZdZdZdZdS)UnseekableIOctr$)NotImplementedErrorselfargss  rpeekzUnseekableIO.peekOs!!rcdS)NFr%r.s rseekablezUnseekableIO.seekableRsurctjr$ioUnsupportedOperationr-s  rseekzUnseekableIO.seekU%%rctjr$r5r2s rtellzUnseekableIO.tellXr9rN)__name__
__module____qualname__r0r3r8r;r%rrr*r*NsP"""&&&&&&&&rr*ceZdZdZdZdS)	MinimalIOz=
    A file-like object that doesn't support readinto().
    ctj||_|jj|_|jj|_|jj|_|jj|_dSr$)r6BytesIO_biogetvaluereadreadlinewriter-s  r__init__zMinimalIO.__init__`sBJ%		*
IN		*
Y_


rN)r<r=r>__doc__rHr%rrr@r@\s-%%%%%rr@ceZdZdZdZdS)ExtensionSaverc||_|tjvrEtj||_tj|jd|jd|dSd|_dSNrr)rcopyreg_inverted_registrypairremove_extension)r.rs  rrHzExtensionSaver.__init__usX	7---248DI$TYq\49Q<FFFFFDIIIrc|j}tj|}|"tj|d|d||j}|$tj|d|d|dSdSrM)rrNrOgetrQrP
add_extension)r.rcurpairrPs    rrestorezExtensionSaver.restore~szy,0066$WQZTBBBy!$q'47D99999rN)r<r=r>rHrVr%rrrKrKrs2:::::rrKceZdZdZdS)Cc"|j|jkSr$)__dict__r.others  r__eq__zC.__eq__s}..rN)r<r=r>r]r%rrrXrXs#/////rrXceZdZdZdS)DcdSr$r%)r.args  rrHz
D.__init__rNr<r=r>rHr%rrr_r_s#




rr_ceZdZdZdS)EcdSNr%r%r2s r__getinitargs__zE.__getinitargs__srrN)r<r=r>rhr%rrreres#rreceZdZdS)ObjectNr<r=r>r%rrrjrjDrrjceZdZdZdZdS)Kc||_dSr$)value)r.rps  rrHz
K.__init__



rc t|jffSr$)rnrpr2s r
__reduce__zK.__reduce__s4:-rN)r<r=r>rHrsr%rrrnrns2     rrn__main__ceZdZdZdS)myintc.t||_dSr$str)r.r's  rrHzmyint.__init__sq66rNrcr%rrrvrvs#rrvceZdZdZdZdS)initargc"||_||_dSr$ab)r.r~rs   rrHzinitarg.__init__src|j|jfSr$r}r2s rrhzinitarg.__getinitargs__svtv~rN)r<r=r>rHrhr%rrr{r{s2rr{ceZdZdS)	metaclassNrkr%rrrrrlrrceZdZdS)
use_metaclassNrkr%rrrrrlrr)rceZdZdZdZdS)pickling_metaclasscbt|t|ko|j|jkSr$)typereduce_argsr[s  rr]zpickling_metaclass.__eq__s.T

d5kk)6 E$55	7rct|jfSr$)create_dynamic_classrr2s rrszpickling_metaclass.__reduce__s$d&677rN)r<r=r>r]rsr%rrrrs277788888rrcRt||t}||f|_|Sr$)rdictr)namebasesresults   rrrs(
eTVV
4
4FFMrcDeZdZdZdZdZdZdZdZeZ	e
dZdS)
ZeroCopyBytesTc|dkr*t|jtj|fdfSt|jt	|ffSNr_reconstructrPickleBufferbytesr.protocols  r
__reduce_ex__zZeroCopyBytes.__reduce_ex__Kq==::*V-@-F-F,H$NN::*U4[[N::rc\d|jjt|SNz{}({!r})format	__class__r<rr2s r__repr__zZeroCopyBytes.__repr__#  !8%++FFFrct|5}|j}t||ur|cdddS||cdddS#1swxYwYdSr$
memoryviewobjrclsrms   rrzZeroCopyBytes._reconstruct
__	 %CCyyC		 	 	 	 	 	 	 	 s3xx
	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 	 A
AAANr<r=r>readonlyc_contiguousf_contiguouszero_copy_reconstructrr__str__classmethodrr%rrrrsjHLL ;;;GGGG  [   rrcDeZdZdZdZdZdZdZdZeZ	e
dZdS)ZeroCopyBytearrayFTc|dkr*t|jtj|fdfSt|jt	|ffSrrrs  rrzZeroCopyBytearray.__reduce_ex__rrc\d|jjt|Srrr2s rrzZeroCopyBytearray.__repr__rrct|5}|j}t||ur|cdddS||cdddS#1swxYwYdSr$rrs   rrzZeroCopyBytearray._reconstructrrNrr%rrrrsjHLL ;;;GGGG  [   rrceZdZdZdZdZedZedZedZ	dZ
dZd	Zd
Z
edZdS)
PicklableNDArrayFc2tj|i||_dSr$)_testbufferndarrayarrayr.r/kwargss   rrHzPicklableNDArray.__init__	s$,d=f==DJJJrcrt|}||}|j||_|Sr$)r__new__r)r.idxrnews    r__getitem__zPicklableNDArray.__getitem__s0t**C++c""C
3CIJrc|jjSr$)rrr2s rrzPicklableNDArray.readonlys
:&&rc|jjSr$)rrr2s rrzPicklableNDArray.c_contiguous
:**rc|jjSr$)rrr2s rrzPicklableNDArray.f_contiguousrrcrt|tstS|jj|jjko|jj|jjkog|jj|jjkoM|jj|jjko3|j|jkSr$)	
isinstancerNotImplementedrrshapestridesrtobytesr[s  rr]zPicklableNDArray.__eq__se%566
&%%K&$**;;BK%)99BK'4:+==BK(DJ,??BK''))TZ-?-?-A-AA	
CrcHt|tstS||kSr$)rrrr[s  r__ne__zPicklableNDArray.__ne__'s(e%566
&%%
&&rct|d|jjd|jjd|jdS)Nz(shape=z	,strides=z, bytes=))rrrrrr2s rrzPicklableNDArray.__repr__,s]Dzz55$**:55#z155!Z//11555
6rc|jjstd|jj|jj|jj|jrdntjd}tj
|j}|dkrt|j||ffS|
5}t|j||ffcdddS#1swxYwYdS)Nz>Reconstructing a non-contiguous ndarray does not seem possibler)rrrflagsr)r
contiguousr,rrrrrND_WRITABLErrrrrawr)r.rndarray_kwargspbrs     rrzPicklableNDArray.__reduce_ex__1s3:(
L)+KLLL'+z'7)-);(,
(9-1])E-8-D	GGN
$TZ00B1}}T

/^,..VVXX; JJ3YY[[.9;;;;;;;;;;;;;;;;;;;s*CCCct|5}t|}dddn#1swxYwY||fi|Sr$)rlistr)rrrritemss     rrzPicklableNDArray._reconstructDsC
*AQYY[[))
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*3u'''''s">AAN)r<r=r>rrHrpropertyrrrr]rrrrrr%rrrrs!&	>	>	>			
	'	'
	'
	+	+
	+
	+	+
	+	C	C	C	'	'	'
	6	6	6
	;	;	;&
	(	(
	(	(	(rrs;(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@GtqRqKJKJJMJJJJJ(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@GqRqKJKJJMJJJJJ(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@GqRqKJKJJMJJJJJ(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@builtinscomplexG@GRKJKJJMJJJJJ(abch__main__C)}(barKfooKubh
thKe.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(KKeqRq.s%c__builtin__
xrange
qKKKqRq.scCookie
SimpleCookie
q)qUkeyqcCookie
Morsel
q)q(UcommentqUqUdomainqhUsecureqhUexpiresq	hUmax-ageq
hUversionqhUpathqhUhttponlyq
hu}q(Ucoded_valueqUvalueqhhhhubs}qb.s"c__builtin__
set
q]qKaqRq.scexceptions
?
q)Rq.sIcexceptions
UnicodeEncodeError
q(UasciiqXfooqKKUbadqtqRq.c:t}d|_d|_gd}d}d}d}|dd|||dz
|||dz
|||dz
gdd||f}|||||d	|S)
Nr)rrg@y@abcr)rXfoobarextendappend)cr'uint1maxuint2maxint4maxys      rcreate_datar,s	A
AE
AEAHHGHHa	H9Q;	H9Q;'WHQJ0111
q!AHHQKKKHHQKKKHHQKKKHrceZdZeZd/dZdZdZdZdZ	dZ
dZd	Zd
Z
dZdZd
ZdZdZdZdZdZedZedZdZdZdZdZdZedZedZedZ dZ!dZ"dZ#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,Z0d-Z1e2j3e2j4d.Z5dS)0AbstractUnpickleTestsNc	|d||}|||||t|t||t	|drD||j|j|||j|j|t	|dr||j	|j	||j	D]n}|t	||t	||||t||dt||d|mdSdS)zKUtility method to verify if two objects are copies of each others.
        Nz{!r} is not a copy of {!r})msgrZ	__slots__)rassertEqualassertIsrhasattrassertDictEqualrZassertIsNotassertListEqualrgetattr)r.robjcopyrslots     rassert_is_copyz$AbstractUnpickleTests.assert_is_copyFs;.55c7CCCg3///

d3iigC
8883
##	F  w/?S IIIS\7+;EEE3$$	H  0As KKK

H
H  C&&(>(>C!III  dD!9!9!($!=!=3!HHHH	H	H
H
Hrc
x||5||5	||nE#t$r8}tjdkr"t
|dd|jjd|d}~wwxYw	dddn#1swxYwYddddS#1swxYwYdS)N)datar32z - z: )	subTestassertRaisesloads
BaseExceptionrverboseprintrr<)r.errorsrexcs    rcheck_unpickling_errorz,AbstractUnpickleTests.check_unpickling_errorXsb
\\t\
$
$		


v
&
&		


4     


?Q&&444!7!7!7>???	
!																																	sWB/BAB
B3BBBB/B	B/B	B//B36B3cl||j|tdSr$)r	_testdatarDATA0r2s rtest_load_from_data0z*AbstractUnpickleTests.test_load_from_data0c,DNDJJu,=,=>>>>>rcl||j|tdSr$)rr
rDATA1r2s rtest_load_from_data1z*AbstractUnpickleTests.test_load_from_data1frrcl||j|tdSr$)rr
rDATA2r2s rtest_load_from_data2z*AbstractUnpickleTests.test_load_from_data2irrcl||j|tdSr$)rr
rDATA3r2s rtest_load_from_data3z*AbstractUnpickleTests.test_load_from_data3lrrcl||j|tdSr$)rr
rDATA4r2s rtest_load_from_data4z*AbstractUnpickleTests.test_load_from_data4orrctdftdftdffD]\}}|jd}	dd|}|||||	dd|}|||||	dd|}|||||dS)Nr%r&asciis(i__main__
X
p0
(dp1
b.Xs(c__main__
X
qoq}qb.s(c__main__
X
qoq}qb.)rXr_rer<encodereplacerr)r.Xr/xnamepickle0pickle1pickle2s       rtest_load_classic_instancez0AbstractUnpickleTests.test_load_classic_instancers'B!Vq"g64	?4	?GAtJ%%g..E	
#%,GD%$8$8

4$**W*=*=>>>

./6wtU/C/C

4$**W*=*=>>>
./6wtU/C/C

4$**W*=*=>>>>i4	?4	?rc6d}dt|dzdz}||}|||dt|dzdz}|t
|dS)NlIr
.sJUNK
.)ryr rrr
ValueError)r.maxint64rgots    r
test_maxint64z#AbstractUnpickleTests.test_maxint64s c(mm**7333f<jjHc***c(mm**7333j@##J55555rc|t}||tddg|t}|t|tt
d|t|tt
d|t}|t|t|t|
dg||djdtD]m}td|jd}||}|t||n|tdd	}|t|t$|t&}|t|t(||jd
||jd||jd||jd||jddS)Nrrrrkeyrp?r
StandardErrorrbad)rDATA_SETrsetDATA_XRANGErrangerDATA_COOKIErkeysrppython2_exceptions_without_argsexception_pickler!r<r r	Exception
DATA_UEERRUnicodeEncodeErrorobjectencodingstartendreason)r.loadedr
rs    rtest_unpickle_from_2xz+AbstractUnpickleTests.test_unpickle_from_2xsSH%%aV---K((ftE!HH~~666ftE!HH~~666K((f|444fkkmm,,ug666,g6663	-	-C#++D#,2E2Eg2N2NOODZZ%%FMM$v,,,,,,,44T;KLLMM

d6llI...J''

d6ll$6777...'222q)))Q'''.....rc||ddd||ddd||ddddS)NsS'a\x00\xa0'
.rr@sasUa.sUa.rrr2s rtest_load_python2_str_as_bytesz4AbstractUnpickleTests.test_load_python2_str_as_bytess$8-4$667C	E	E	E	
$6-4$667C	E	E	E	
$>-4$667C	E	E	E	E	Erc||ddd||ddd||ddddS)Ns	V\u03c0
.rrGuπsXπ.s
Xπ.rHr2s r test_load_python2_unicode_as_strz6AbstractUnpickleTests.test_load_python2_unicode_as_strsN-4$667;	=	=	=	
$A-4$667;	=	=	=	
$I-4$667;	=	=	=	=	=rc	||tjt	jddzdztjzdddS)N<Ii,s,xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxrrG)rrr	BINSTRINGstructpackSTOPr2s r#test_load_long_python2_str_as_bytesz9AbstractUnpickleTests.test_load_long_python2_str_as_bytesstF$4$*Kc$:$:%;$.%/17%=.5$668B	C	C	C	C	Crc||d||dd||dd||dd||dddS)NsN.s.Ts.FsI01
.sI00
.)assertIsNonerrr2s rtest_constantsz$AbstractUnpickleTests.test_constantss$**U++,,,

djj**D111

djj**E222

djj++T222

djj++U33333rc`|dd}||ddS)NsUq.zkoi8-rrG)rr)r.emptys  rtest_empty_bytestringz+AbstractUnpickleTests.test_empty_bytestrings4

1H
EE#####rc\d}|||ddS)Ns	C€.€rHr.dumpeds  rtest_short_binbytesz)AbstractUnpickleTests.test_short_binbytess02F++-@AAAAArc\d}|||ddS)NsB€.r[rHr\s  r
test_binbytesz#AbstractUnpickleTests.test_binbytess0>F++-@AAAAArcXd}|tjtf|dS)Ns
Bxyzq.rrUnpicklingError
OverflowErrorr\s  rtest_negative_32b_binbytesz0AbstractUnpickleTests.test_negative_32b_binbytes87##V%;]$K$*	,	,	,	,	,rcXd}|tjtf|dS)Ns
Xxyzq.rbr\s  rtest_negative_32b_binunicodez2AbstractUnpickleTests.test_negative_32b_binunicoderfrc\d}|||ddS)Ns	€.€rHr\s  rtest_short_binunicodez+AbstractUnpickleTests.test_short_binunicodes/5F++\:::::rc|tjd|tjd|tjd|ddg|ddS)Nsg0
p0sjens:shens:)ds((Kdtp0
hl.)))rrrcrrr2s r
test_misc_getz#AbstractUnpickleTests.test_misc_gets##F$:IFFF##F$:HEEE##F$:HEEEVV, JJ'<==	?	?	?	?	?rc\d}|||ddS)Ns€.r[rHr\s  rtest_binbytes8z$AbstractUnpickleTests.test_binbytes8s0AF++-@AAAAArc\d}|||ddS)Ns€.rjrHr\s  rtest_binunicode8z&AbstractUnpickleTests.test_binunicode8!s/AF++\:::::rcvd}|||tddS)Nsxxx.sxxx)rr	bytearrayr\s  rtest_bytearray8z%AbstractUnpickleTests.test_bytearray8%s7DF++Yv->->?????rcXd}|tjtf|dS)Ns€.rbr\s  rtest_large_32b_binbytes8z.AbstractUnpickleTests.test_large_32b_binbytes8)6A##V%;]$K$*	,	,	,	,	,rcXd}|tjtf|dS)Ns€.rbr\s  rtest_large_32b_bytearray8z/AbstractUnpickleTests.test_large_32b_bytearray8/rxrcXd}|tjtf|dS)Ns€.rbr\s  rtest_large_32b_binunicode8z0AbstractUnpickleTests.test_large_32b_binunicode85rxrcd}||}||gfdz||d|ddS)Ns((lp100000
g100000
t.rrrrrrr.pickled	unpickleds   rtest_getzAbstractUnpickleTests.test_get;sV,JJw''	RE!G,,,

ilIaL11111rcd}||}||gfdz||d|ddS)Ns(]qht.rrrr~rs   rtest_bingetz!AbstractUnpickleTests.test_bingetAsV#JJw''	RE!G,,,

ilIaL11111rcd}||}||gfdz||d|ddS)Ns(]rjt.rrrr~rs   rtest_long_bingetz&AbstractUnpickleTests.test_long_bingetGsV;JJw''	RE!G,,,

ilIaL11111rcd}||}||gfdz||d|ddS)Ns((l2t.rrrr~rs   rtest_dupzAbstractUnpickleTests.test_dupMsVJJw''	RE!G,,,

ilIaL11111rc@d}|t|dS)NsVa
p-1
.rr+r\s  rtest_negative_putz'AbstractUnpickleTests.test_negative_putSs###J77777rc@d}|t|dS)NsXar.rr\s  rtest_negative_32b_binputz.AbstractUnpickleTests.test_negative_32b_binputXs&A##J77777rc<|tddS)NsS'\'
.rr2s rtest_badly_escaped_stringz/AbstractUnpickleTests.test_badly_escaped_string^s##J<<<<<rcXgd}|D]"}|tj|#dS)N)
sS'
.sS"
.sS' 
.sS" 
.sS'"
.sS"'
.sS' ' 
.sS" " 
.sS ''
.sS ""
.sS 
.sS
.sS.)rrrcr.
badpicklesps   rtest_badly_quoted_stringz.AbstractUnpickleTests.test_badly_quoted_stringasN
	C	CA''(>BBBB	C	Crcpgd}|D].\}}||||/dS)N))sS''
.rW)sS""
.rW)sS"\n"
.
)sS'\n'
.rrH)r.goodpicklesrexpecteds    rtest_correctly_quoted_stringz2AbstractUnpickleTests.test_correctly_quoted_stringssU---'	6	6KAxTZZ]]H5555	6	6rc\d}|||ddS)NsI42
.*rH)r.rs  rtest_frame_readlinez)AbstractUnpickleTests.test_frame_readline{s1G
	
G,,b11111rcd}||}|t|t||tdd|t|gdd}|||tjd}|||tj	dD]j}d|zd	z}||}|t|t|t|d
kdD]v}d|zd
z}||}|t|tj
||tj
ddiwdS)Nsc__builtin__
xrange
KKKR.r)rrrsc__builtin__
reduce
.scwhichdb
whichdb
.)s	Exceptionr2scexceptions
s	
UughR.ugh)sUserDictsIterableUserDicts
(cUserDict
s
o}Udata}KKssb.r)rrrr7rr	functoolsreducedbmwhichdbr<rycollectionsUserDict)r.rrrs    rtest_compat_unpicklez*AbstractUnpickleTests.test_compat_unpicklesHJJw''	

d9oou---E!QKK000i*<*<*<===4

djj))9+;<<<1

djj))3;7774	4	4D/$69LLG

7++IMM$y//9555S^^U33336	F	FD.567G

7++IMM$y//;+?@@@Y(<aV(D(DEEEE	F	Frc||dd|td|tddS)Nscbuiltins
int
)R.rsN)R.scbuiltins
int
NR.)rrr	TypeErrorr2s rtest_bad_reducez%AbstractUnpickleTests.test_bad_reducesX$:;;Q???##Iw777##I/EFFFFFrctjtf}||dd||d||ddS)Nscbuiltins
int
).rscbuiltins
len
).scbuiltins
int
N.rrcrrrrr.errors  rtest_bad_newobjz%AbstractUnpickleTests.test_bad_newobjsf'3$=>>BBB##E+DEEE##E+DEEEEErctjtf}||dd||d||d||ddS)Nscbuiltins
int
)}.rscbuiltins
len
)}.scbuiltins
int
N}.scbuiltins
int
)N.rrs  rtest_bad_newobj_exz(AbstractUnpickleTests.test_bad_newobj_exs}'3$>??CCC##E+EFFF##E+EFFF##E+EFFFFFrcNgd}|D]}||j|dS)N),.012s(2Rs)RasNabsNbdes(esibuiltins
list
los(osp1
sqsrssNssNNstus(us}(Nus)sNsNsNNs(s)}sVlist
rbad_stack_errorsrs   rtest_bad_stackz$AbstractUnpickleTests.test_bad_stacksO-
-
-

\	B	BA''(=qAAAA	B	BrcNgd}|D]}||j|dS)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(NsNNN(sNN(NsN(NNs]((scbuiltins
list
)}(scbuiltins
list
)(}scbuiltins
list
()}sVbuiltins
(Vlist
sVbuiltins
Vlist
(sN(rrs   r
test_bad_markz#AbstractUnpickleTests.test_bad_marksO"
"
"

F	B	BA''(=qAAAA	B	Brc|td|tdgd}|D]}||j|dS)NrN)UBsBsBsBabCsCsCabFsF0.0sF0.00GsGr)sI0JsJKLsL0sL10sL0LsL10LMsMSsS'abc'TsTsTsTabUsUsUabVsVabcrsXsXsXabs(cs
(cbuiltinss(cbuiltins
s(cbuiltins
listsNgsNg0s(is
(ibuiltinss(ibuiltins
s(ibuiltins
listsNhsNjsNjsNpsNp0sNqsNrsNrsssssabss	sabss	sabss	sabss	s
N)rEOFErrortruncated_errorsrs   rtest_truncated_dataz)AbstractUnpickleTests.test_truncated_data	s~##Hc222##Hd333X
X
X

r	B	BA''(=qAAAA	B	Brc	
td}td}tjt|t
jttj	dt|tjj
tttjtdd5}|
|ddddn#1swxYwYttjtdd5}|
|ddddn#1swxYwY|td|td	ddl}d

gt#jd		
fd}t#j|
}t#j|
}||	|j||ddlm}|dD|gdzdS)NzI
        import threading
        barrier = threading.Barrier(2)
        zs
        import locker
        locker.barrier.wait()
        class ToBeUnpickled(object):
            pass
        rz	locker.pywbutf-8zlocking_import.pylockerlocking_imports'clocking_import
ToBeUnpickled
q)q.rc~tjdSr$)waitrrr)barrierpickle_bytesresultssrtz:AbstractUnpickleTests.test_unpickle_module_race.<locals>.ts4
LLNNNNN6<5566666r)target)
ToBeUnpickledc,g|]}t|Sr%)r.0r's  r
<listcomp>zCAbstractUnpickleTests.test_unpickle_module_race.<locals>.<listcomp>s&&&T!WW&&&rr)rosmkdirr
addCleanupshutilrmtreesyspathinsertremoveopenjoinrGr r
r	threadingBarrierThreadrArrrrr)r.
locker_modulelocking_import_modulefrrt1t2rrrrs         @@@rtest_unpickle_module_racez/AbstractUnpickleTests.test_unpickle_module_racehs 


!'(!
!
	
v...6"""000
"',,v{33T
:
:	3a
GGM((11222	3	3	3	3	3	3	3	3	3	3	3	3	3	3	3
"',,v':;;T
B
B	;a
GG)0099:::	;	;	;	;	;	;	;	;	;	;	;	;	;	;	;))) 0111



H	#A&&	7	7	7	7	7	7	7
Q
'
'
'

Q
'
'
'








			
			000000&&g&&&
Oa	!	!	!	!	!s$")DDD)F

FFr$)6r<r=r>rr
rrrrrrrr'r.rErIrKrRrUrYr^r`requires_32brerhrkrnrprrrurwrzr|rrrrrrrrrrrrrrrrrrreap_threadsrequires_working_threadingrr%rrrrAsm

IHHHH$			???????????????7?7?7?r666///<	E	E	E	=	=	=CCC444$$$
BBBBBB,,\,,,\,;;;???BBB;;;@@@,,\,
,,\,
,,\,
222222222222888
88\8
===CCC$666222FFF6GGG
FFFGGG0B0B0Bd%B%B%BN]B]B]B~"00229!9!32#"9!9!9!rrceZdZdZejZdZejZdZdZ	dZ
edfdZdZ
d	Zd
ZedfdZdZd
ZdZedfdZdZdZdZedfdZdZdZdZedfdZdZdZdZedfdZ dZ!dZ"dZ#dZ$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/Z4d0Z5d1Z6d2Z7d3Z8d4Z9d5Z:d6Z;e<d7d8d9d:Z=d;Z>d<Z?d=Z@d>ZAd?ZBd@ZCdAZDdBZEdCZFdDZGdEZHdFZIdGZJdHZKdIZLdJZMdKZNdLZOdMZPdNZQdOZRdPZSdQZTdRZUdSZVdTZWdUZXdVZYdWZZdXZ[dYZ\dZZ]d[Z^d\Z_d]Z`d^Zad_Zbd`ZceddaZedbZfdcZgddZhdeZidfZjdgZkdhZldiZmdjZndkZodlZpdmZqerjserjtdndoZudpZvdqZwerjsdrZxdsZydtZzduZ{dvZ|dwZ}dxZ~dyZdzZd{Zd|Zd}Zd~ZdZdZejeduddZdZdZdS)AbstractPickleTestsFcdSr$r%r2s rsetUpzAbstractPickleTests.setUprbrctD]}td}|||}||}|||d}|||}||}|||td|}|||}||}|||dS)Nr)rr%r)	protocolsrvdumpsrrr{r.protor'srs     r	test_misczAbstractPickleTests.test_miscs	&	&EaA

1e$$A

1

A1%%%A

1e$$A

1

A1%%%1

A

1e$$A

1

A1%%%%	&	&rc|j}tD]C}|||}||}|||DdSr$)r
rrrr)r.rrrr-s     rtest_roundtrip_equalityz+AbstractPickleTests.test_roundtrip_equalitys]>	/	/E

8U++A**Q--C#....	/	/rcddlm}ddlm}dtfdt
ffD]a\}}||j|}|}||||}|	||bdS)Nr)StringIOdisr)out)
r6r#rr%	DATA0_DIS	DATA1_DISrr
rDr)r.r#r%rrrfileliker-s        rdont_test_disassemblyz)AbstractPickleTests.dont_test_disassemblys###### !9~9~=	,	,OE8

4>511AxzzHCx    ##%%CXs++++	,	,rrc|}||t|tjdzD]}|||}||}|||||}|t|d|	|d|dSNrr)
rr7rHIGHEST_PROTOCOLrrassertIsInstancerlenr)	r.raslistminprotocollrrr'rs	         r_test_recursive_listz(AbstractPickleTests._test_recursive_listsCEE	;(?!(CDD	#	#E

1e$$A

1

A!!!S)))q		ASVVQ'''MM!A$""""
	#	#rc:|tdSr$)r3rr2s rtest_recursive_listz'AbstractPickleTests.test_recursive_list!!$'''''rc>|tddSNr)r1)r3MyListr2s rtest_recursive_list_subclassz0AbstractPickleTests.test_recursive_list_subclass!!!&a!88888rc@|tddS)Nc|jSr$rr&s r<lambda>z>AbstractPickleTests.test_recursive_list_like.<locals>.<lambda>sAGrr0)r3REX_sixr2s rtest_recursive_list_likez,AbstractPickleTests.test_recursive_list_likes%!!'2C2C!DDDDDrc:|f}|d|t|tjdzD]}|||}||}||t|t|d||d|||d}|t|d|
|d||\}t|tjdzD]}|||}||}|||||}|t|d||dt|t|dd|
|dd|dSrM)rr7rr-rrr.tuplerr/r)	r.rr0r1rrrr'rs	         r_test_recursive_tuple_and_listz2AbstractPickleTests._test_recursive_tuple_and_lists
SUUH	!A;(?!(CDD	#	#E

1e$$A

1

A!!!U+++SVVQ'''!!!A$,,,qtASVVQ'''MM!A$"""";(?!(CDD	&	&E

1e$$A

1

A!!!S)))q		ASVVQ'''!!!A$...S1YY***MM!A$q'1%%%%	&	&rc:|tdSr$)rErr2s rtest_recursive_tuple_and_listz1AbstractPickleTests.test_recursive_tuple_and_list++D11111rc>|tddSr8)rEr9r2s r&test_recursive_tuple_and_list_subclassz:AbstractPickleTests.test_recursive_tuple_and_list_subclass!++F+BBBBBrc@|tddS)Nc|jSr$r>r&s rr?zHAbstractPickleTests.test_recursive_tuple_and_list_like.<locals>.<lambda>sagrr@)rErAr2s r"test_recursive_tuple_and_list_likez6AbstractPickleTests.test_recursive_tuple_and_list_likes%++G<M<M+NNNNNrc|}||d<t|tjdzD]}|||}||}|||||}|t|dg|	|d|dSNr)
r7rr-rrr.rrr9r	r.rasdictr1drrr'rs	         r_test_recursive_dictz(AbstractPickleTests._test_recursive_dictsCEE!;(?!(CDD	#	#E

1e$$A

1

A!!!S)))q		AT!&&((^^aS111MM!A$""""
	#	#rc:|tdSr$)rTrr2s rtest_recursive_dictz'AbstractPickleTests.test_recursive_dict#r6rc>|tddSr8)rTMyDictr2s rtest_recursive_dict_subclassz0AbstractPickleTests.test_recursive_dict_subclass&r;rc@|tddS)Nc|jSr$tabler&s rr?z>AbstractPickleTests.test_recursive_dict_like.<locals>.<lambda>*sagrrR)rT	REX_sevenr2s rtest_recursive_dict_likez,AbstractPickleTests.test_recursive_dict_like)s%!!)4E4E!FFFFFrc|f}||dd<t|tjdzD]}|||}||}||t|t|d||d|||d}|t|dg|
|d||\}t|tjdzD]}|||}||}|||||}|t|dg||dt|t|dd|
|dd|dSrM)r7rr-rrr.rDrr/rr	r.rrRr1rrrr'rs	         r_test_recursive_tuple_and_dictz2AbstractPickleTests._test_recursive_tuple_and_dict,s
SUUH!Q;(?!(CDD	#	#E

1e$$A

1

A!!!U+++SVVQ'''!!!A$,,,qtAT!WWqc***MM!A$"""";(?!(CDD	&	&E

1e$$A

1

A!!!S)))q		AT!WWqc***!!!A$...S1YY***MM!A$q'1%%%%	&	&rc:|tdSr$)rcrr2s rtest_recursive_tuple_and_dictz1AbstractPickleTests.test_recursive_tuple_and_dictFrHrc>|tddSr8)rcrXr2s r&test_recursive_tuple_and_dict_subclassz:AbstractPickleTests.test_recursive_tuple_and_dict_subclassIrKrc@|tddS)Nc|jSr$r\r&s rr?zHAbstractPickleTests.test_recursive_tuple_and_dict_like.<locals>.<lambda>Msrr^)rcr_r2s r"test_recursive_tuple_and_dict_likez6AbstractPickleTests.test_recursive_tuple_and_dict_likeLs%++I>O>O+PPPPPrc|}d|t|<t|tjdzD]}|||}||}|||||}|t|	d|t|	dt|t|	dj|dSr,)
rnr7rr-rrr.rr/r9rrrprQs	         r_test_recursive_dict_keyz,AbstractPickleTests._test_recursive_dict_keyOs
CEE!A$$;(?!(CDD	6	6E

1e$$A

1

A!!!S)))q		AS]]A...!!$qvvxx.."3Q777MM$qvvxx..+115555	6	6rc:|tdSr$)rlrr2s rtest_recursive_dict_keyz+AbstractPickleTests.test_recursive_dict_key]s%%d+++++rc>|tddSr8)rlrXr2s r test_recursive_dict_subclass_keyz4AbstractPickleTests.test_recursive_dict_subclass_key`s!%%f!%<<<<<rc@|tddS)Nc|jSr$r\r&s rr?zBAbstractPickleTests.test_recursive_dict_like_key.<locals>.<lambda>ds!'rr^)rlr_r2s rtest_recursive_dict_like_keyz0AbstractPickleTests.test_recursive_dict_like_keycs%%%i8I8I%JJJJJrc4|f}d|dt|<t|tjdzD]<}|||}||}||t|t|d||d|||d}|t|d|t|dt|t|dj
|>|\}t|tjdzD]}|||}||}|||||}|t|d|t|dt|t|dj
d|dSr,)rnr7rr-rrr.rDrr/rr9rrprbs	         r"_test_recursive_tuple_and_dict_keyz6AbstractPickleTests._test_recursive_tuple_and_dict_keyfs&SUUH!QqTT
;(?!(CDD		6		6E

1e$$A

1

A!!!U+++SVVQ'''!!!A$,,,qtASVVQ'''!!$qvvxx.."3Q777MM$qvvxx..+115555;(?!(CDD	9	9E

1e$$A

1

A!!!S)))q		ASVVQ'''!!$qvvxx.."3Q777MM$qvvxx..+1!4a8888	9	9rc:|tdSr$)rurr2s r!test_recursive_tuple_and_dict_keyz5AbstractPickleTests.test_recursive_tuple_and_dict_keys//55555rc>|tddSr8)rurXr2s r*test_recursive_tuple_and_dict_subclass_keyz>AbstractPickleTests.test_recursive_tuple_and_dict_subclass_keys!//A/FFFFFrc@|tddS)Nc|jSr$r\r&s rr?zLAbstractPickleTests.test_recursive_tuple_and_dict_like_key.<locals>.<lambda>sAGrr^)rur_r2s r&test_recursive_tuple_and_dict_like_keyz:AbstractPickleTests.test_recursive_tuple_and_dict_like_keys%//	BSBS/TTTTTrct}|t|tdtjdzD]}|||}||}||t|	t|d|t|dt|t|dj
||\}tdtjdzD]}|||}||}||t||j
t|	t|j
d|t|j
d|dS)Nrrr)r5addrnr7rr-rrr.rr/rrrpr.rrrr's     rtest_recursive_setz&AbstractPickleTests.test_recursive_setsEE	add1f59::	/	/E

1e$$A

1

A!!!S)))SVVQ'''!!$q''!*a000MM$q''!**A....1f59::	/	/E

1e$$A

1

A!!!Q'''!!!'3///S\\1---MM$qw--*A....
	/	/rcft}||_tD]}|||}||}||t|t|t|||j|dSr$)	rjattrrrrr.rdirr)r.irrr's     rtest_recursive_instz'AbstractPickleTests.test_recursive_instsHH	%	%E

1e$$A

1

A!!!V,,,SVVSVV,,,MM!&!$$$$	%	%rcg}d|i}t}||_||tD]
}|||}||}||t|t|d|t|dt||t|djdg||djd|dSr,)
rjrrrrrr.rrr/rr9r)r.r2rSrrrr's       rtest_recursive_multiz(AbstractPickleTests.test_recursive_multis
qEHH		+	+E

1e$$A

1

A!!!T***SVVQ'''S1YYA///T!A$).."2"233aS999MM!A$)A,****	+	+rct}||g|_t|j}tD]}|||}||}||j||t|jd|t|jdt|
t|jd||j}tD]}|||}||}||||t|d|t|dt|
t|dj|dSr,)rjrrrrrr.rr/rr)r.factoryorrrr's       r#_test_recursive_collection_and_instz7AbstractPickleTests._test_recursive_collection_and_insts
HH!LL	.	.E

1e$$A

1

A!!!&!,,,S[[!,,,!!$qv,,q/6:::MM$qv,,q/1----
F	.	.E

1e$$A

1

A!!!Q'''SVVQ'''!!$q''!*f555MM$q''!*/1----
	.	.rc:|tdSr$)rrr2s rtest_recursive_list_and_instz0AbstractPickleTests.test_recursive_list_and_insts0066666rc:|tdSr$)rrDr2s rtest_recursive_tuple_and_instz1AbstractPickleTests.test_recursive_tuple_and_inst0077777rcD|tjdSr$)rrfromkeysr2s rtest_recursive_dict_and_instz0AbstractPickleTests.test_recursive_dict_and_insts00?????rc:|tdSr$)rr5r2s rtest_recursive_set_and_instz/AbstractPickleTests.test_recursive_set_and_insts0055555rc:|tdSr$)r	frozensetr2s r!test_recursive_frozenset_and_instz5AbstractPickleTests.test_recursive_frozenset_and_insts00;;;;;rc:|tdSr$)rr9r2s r%test_recursive_list_subclass_and_instz9AbstractPickleTests.test_recursive_list_subclass_and_insts0088888rc:|tdSr$)rMyTupler2s r&test_recursive_tuple_subclass_and_instz:AbstractPickleTests.test_recursive_tuple_subclass_and_insts0099999rcD|tjdSr$)rrXrr2s r%test_recursive_dict_subclass_and_instz9AbstractPickleTests.test_recursive_dict_subclass_and_insts00AAAAArc:|tdSr$)rMySetr2s r$test_recursive_set_subclass_and_instz8AbstractPickleTests.test_recursive_set_subclass_and_instrrc:|tdSr$)rMyFrozenSetr2s r*test_recursive_frozenset_subclass_and_instz>AbstractPickleTests.test_recursive_frozenset_subclass_and_insts00=====rct}||_tD]c}|||}||}||t||j|ddSr$)	REX_statestaterrrr.rrs     rtest_recursive_inst_statez-AbstractPickleTests.test_recursive_inst_states|KK	&	&E

1e$$A

1

A!!!Y///MM!'1%%%%		&	&rc"tf}||d_tD]}|||}||}||t|t|d||dt|	|dj||\}tD]}|||}||}||t||jt|t|jd|	|jd|dSrM)
rrrrrr.rDrr/r)r.rrrr's     r#test_recursive_tuple_and_inst_statez7AbstractPickleTests.test_recursive_tuple_and_inst_states_
[[N!
	)	)E

1e$$A

1

A!!!U+++SVVQ'''!!!A$	222MM!A$*a((((	)	)E

1e$$A

1

A!!!Y///!!!'5111S\\1---MM!'!*a((((
	)	)rcgd}tD]H}|D]C}|||}||}|||DIdS)N)rWz<\u>u<\ሴ>z<
>z<\>u<\𒍅>u<>rrrr)r.endcasesruru2s      rtest_unicodez AbstractPickleTests.test_unicodes}   	+	+E
+
+JJq%((ZZ]]##Ar****
+	+	+rcd}tD]C}|||}||}|||DdS)Nu𒍅r)r.rrrrs     rtest_unicode_high_planez+AbstractPickleTests.test_unicode_high_planes[	'	'E

1e$$AAB2&&&&	'	'rctD]}dD]A}|||}||||Bdt	dDD]A}|||}||||Bdt	dDD]A}|||}||||BdS)Nrxyzs,xyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzxyzc.g|]}t|gSr%rrrs  rrz2AbstractPickleTests.test_bytes.<locals>.<listcomp>)s 555QeQCjj555rc0g|]}t||gSr%rrs  rrz2AbstractPickleTests.test_bytes.<locals>.<listcomp>,s"888eQFmm888r)rrrrr7)r.rrrs    r
test_byteszAbstractPickleTests.test_bytes$s		6		6E,
6
6JJq%((##Atzz!}}555555%**555
6
6JJq%((##Atzz!}}555588U3ZZ888
6
6JJq%((##Atzz!}}5555
6		6		6rctD]M}dD]F}t|}|||}||}|||||||dkrD|d||ttj
||dkrD|d||ttj||dkrC|d||ttj
|HOdS)Nrrs	bytearrayrr)rrtrrrrassertIn
assertTruerrGLOBALSTACK_GLOBALassertNotIn
BYTEARRAY8)r.rrrrbbs      rtest_bytearrayz"AbstractPickleTests.test_bytearray0sN	L	LE,
L
LaLLJJq%((ZZ]]  Q'''##Ar***A::MM,222OO$4V]A$F$FGGGGaZZMM,222OO$4V5H!$L$LMMMMaZZ$$\1555OO$4V5F$J$JKKK
L	L	LrctD]\}dD]W}t|}|||f|}||\}}|||X]dS)Nr)rrtrrr)r.rrrrb1b2s       rtest_bytearray_memoization_bugz2AbstractPickleTests.test_bytearray_memoization_bugCs{	&	&E,
&
&aLLJJ1vu--AB

b"%%%%	
&	&	&rctD]`}tj}|rP||fD]C}|||}||}|||D|dz	}|PadSrP)rrmaxsizerrr)r.rr!rrn2s      r	test_intszAbstractPickleTests.test_intsKs		EA
"#Q66H

8U33AAB''"5555F
		rctD]c}dD]^}d|z}|dz
||dzfD]K}||fD]C}|||}||}|||DL_dt	dd}||dzz
}||fD]k}||d}||}|t
|t|||ldS)N)riiirdeadbeeffeedfacei@Br)rrrrintrrr)	r.rnbitsnbasenposr!rr-rs	         r	test_longzAbstractPickleTests.test_longUs?	4	4E9
4
4U
!!GUE!G344D!D5[44!%Au!5!5"jj00++As333344
4&++
'!!	%	%A

1a  A**Q--C
MM$s))S)))Q$$$$	%	%rcgd}|d|Dz}tD]H}|D]C}|||}||}|||DIdS)N)ggg+phgZ*)g_D9g?g?gQ	@gm"wp@gWTDgꌠ9Y>)Fcg|]}|Sr%r%rs  rrz2AbstractPickleTests.test_float.<locals>.<listcomp>os$=$=$=AaR$=$=$=rr)r.test_valuesrrprr-s      r
test_floatzAbstractPickleTests.test_floatlsAAA!$=$=$=$=$==	0	0E$
0
0E511jj((##E3////
0	0	0rLC_ALLde_DEfr_FRcj||ddddddS)Ng333333?rrsF1.)rrr2s rtest_float_formatz%AbstractPickleTests.test_float_formatvs7	
C++AaC0&99999rctD]V}t}|||}||}||t
WdSr$)rAAArrrREDUCE_Ar.rinstr]rDs     rtest_reducezAbstractPickleTests.test_reduce{sa	/	/E55DZZe,,FZZ''FVX....		/	/rctD]S}tdd}|||}||}|||TdS)Nrr)rr{rrrrs     rtest_getinitargsz$AbstractPickleTests.test_getinitargsse	.	.E1a==DZZe,,FZZ''Ff----		.	.rct}tD]M}|||}||}||j|jNdSr$)rrrrrrr.r~rrrs     rtest_metaclassz"AbstractPickleTests.test_metaclassscOO	7	7E

1e$$A

1

AQ[!+6666	7	7rcptdtf}tjttjtD]s}|||}||}|	|||
t|t|tdS)Nmy_dynamic_class)rr?rNrrrsrrrrrrrs     rtest_dynamic_classz&AbstractPickleTests.test_dynamic_classs !3fY??)+=+HIII	,	,E

1e$$A

1

AQ"""MM$q''477++++		,	,rcPddl}ddl}|}tD]}|||}||}||||j|j}|||}||}|||t|drV|j
|j}|||}||}|||dS)Nrstatvfs)timer	localtimerrrrstatcurdirrr)r.rrrrrrs       rtest_structseqz"AbstractPickleTests.test_structseqs			NN	*	*E

1e$$A

1

A1%%%	""A

1e$$A

1

A1%%%r9%%
*BJry))JJq%((JJqMM##Aq)))	*	*rctD]C}|d|}||}|d|DdSN.)rrrrr.rrrs    r
test_ellipsisz!AbstractPickleTests.test_ellipsissT	"	"E

3&&A

1

AMM#q!!!!	"	"rctD]M}|t|}||}|t|NdSr$)rrrrrrs    rtest_notimplementedz'AbstractPickleTests.test_notimplementedsT	-	-E

>511A

1

AMM.!,,,,	-	-rcddtg}|D]g}tD]]}|t||}||}|t||^hdSr)rrrrrr)r.
singletons	singletonrrrs      rtest_singleton_typesz(AbstractPickleTests.test_singleton_typessC0
#	2	2I"
2
2JJtI66JJqMM

d9ooq1111
2	2	2rc.tjD]u}t|tr^t|tsItD]A}|||}|	|
||BvdSr$)builtinsrZvaluesrr
issubclassrrrrrr.rrrs    rtest_builtin_typesz&AbstractPickleTests.test_builtin_typess"))++	4	4A!T""
4:a+G+G
4&44E

1e,,AMM$**Q--3333		4	4rc tjD]}t|trt|trtD]}|||}|	|}|dkr:t|tr%|tur||tm|dkr1t|tr||t|||dSNr)rrZrrrrrrrrOSErrorBlockingIOErrorrImportError)r.rrrrs     rtest_builtin_exceptionsz+AbstractPickleTests.test_builtin_exceptionss"))++
	,
	,A!T""	
,z!]'C'C	
,&,,E

1e,,A

1

AzzjG&<&<z/AYAY

a1111!
1k(B(B

a5555

a++++
	,
	,rctjD]e}t|tjrItD]A}|||}||	||BfdSr$)
rrZrrtypesBuiltinFunctionTyperrrrrs    rtest_builtin_functionsz*AbstractPickleTests.test_builtin_functionss"))++	4	4A!U677
4&44E

1e,,AMM$**Q--3333		4	4rctD]}|d|}|dkrFtjt	|gz}|||d|ttj|dtddz}tj	tj
z}tjt	|gz|z}	|||ddS#t$r.}|dt|Yd}~dSd}~wwxYw)Nrrrrz0expected bad protocol number to raise ValueErrorzunsupported pickle protocol)rrrPROTOrr
startswithrr"NONErQrfailr+rry)r.rrproto_headeroob
build_none	badpickleerrs        r
test_protozAbstractPickleTests.test_protosE	I	IEjju--Gzz%|eUGnn< 2 2< @ @AAAA  flG!D!DaHHHHma[6;.
L5#<</*<		JJJy!!!
IIHIIIII	C	C	CMM7SBBBBBBBBB	Cs%D
E	#EE	cd}tD]u}|||}||}||||ttj||dkvdS)NUJ^w,3|	r)rrrrrrrLONG1r.r'rrrs     r
test_long1zAbstractPickleTests.test_long1s)	L	LE

1e$$A

1

A1%%%-flA>>
KKKK		L	Lrc
ddz}tD]u}|||}||}||||ttj||dkvdS)Nrrr)rrrrrrrLONG4rs     r
test_long4zAbstractPickleTests.test_long4s)e4	L	LE

1e$$A

1

A1%%%-flA>>
KKKK		L	LrcZidtjdtjdtjdtjdtjdtjdtjdtjd	tjd
tjdtjdtjd
tjdtjdtjdtjdtjtjtjtjd}d}d}d}d}d}tD]}|||||fD]}|||}	||	}
|	||
|t|dt|f}|t||	dS)N)rr)rr)rr)rr)rr)rr)rrrr)rrrr)rrrr)rr)rr)rr)rr)rr))rr)rrrrr%)rrrr)rrrrr)rTUPLEEMPTY_TUPLETUPLE1TUPLE2TUPLE3rrrrminr/rr)r.expected_opcoder~rrrSerr'rrrs            rtest_short_tuplesz%AbstractPickleTests.test_short_tupless66<!6<!6<"6<"6<	"6#5
"6<"6<"6<"6<"6#5"6="6="6= "6<!$"6#5%&"6='($*=#)=#)<-0
	?	?E1a]
?
?JJq%((JJqMM##Aq)))*3ua==#a&&+@A 01 = =>>>>
?	?	?rc
6tjtjtjtjtjtjtjtjtjtjtjtjd}t
D]}dD]}|||}||}|||u||||f|t|d|f}|t||dS)N))rN)rN)rN)rN)rT)rT)rT)rT)rF)rF)rF)rF)NFTr)rrINTNEWTRUENEWFALSErrrrr.r)r.r/rr'rrrs       rtest_singletonsz#AbstractPickleTests.test_singletons(s&,k&,k&,k&,k&,j&,j&,n&,n'-z'-z'-'-	?	?E&
?
?JJq%((JJqMMQ1a(8999*3ua==!+;< 01 = =>>>>
?	?	?rctgd}d|_d|_tD]C}|||}||}|||DdSNr(rhello)rrrrrrrrs     rtest_newobj_tuplez%AbstractPickleTests.test_newobj_tupleAsuIII	&	&E

1e$$A

1

A1%%%%	&	&rctgd}d|_d|_tD]C}|||}||}|||DdSr8)r9rrrrrrrs     rtest_newobj_listz$AbstractPickleTests.test_newobj_listJsu999	&	&E

1e$$A

1

A1%%%%	&	&rc
tD]}tD]}|j}||j}d|_|||}||}|||||t|f}||||	||||||	|j
|j
|dSNr)r	myclasses__base__samplerrrrrrrZ)r.rrXBr'rrdetails        rtest_newobj_genericz'AbstractPickleTests.test_newobj_genericSs
	A
	AE	
A	
AJAahKKJJq%((JJqMMAq!T!WW5##Aq)))  1qqttV444  QZ@@@@	
A
	A
	Arc
ftdd}ttfD]}||tD]}|D]}|j}||j}d|_tj	|}|
||}||}	|t|	t||||||	t|	f}
|||||	|
||j|	j|
dSr>)r?MyIntrrrr@rArweakrefproxyrrrrrZ)r.classesrrrXrBr'rrrrCs           rtest_newobj_proxiesz'AbstractPickleTests.test_newobj_proxies`s;AAA,!		ANN1	A	AE

A

AJAahKKM!$$JJq%((JJqMM  a$q''222Aq!T!WW5  1qqttV444  QZ@@@@

A	A	ArchtD]}td}d|_|||}||}|t
|t|t|d||jddS)Nrr)	r
MyIntWithNew2rrrrrrrrs     rtest_newobj_overridden_newz.AbstractPickleTests.test_newobj_overridden_newss	(	(Ea  AAE

1e$$A

1

AMM$q''=111SVVQ'''QUB''''	(	(rct}tt}||d}	da|tt
jf|j||adS#|awxYw)Nrr)SimpleNewObjrrrrrrcr)r.saverrs    rtest_newobj_not_classz)AbstractPickleTests.test_newobj_not_class~su  ..JJq!	 Ly&*@A4:qQQQLLL4Ls/A11A5ct|}	tjtd|t	gd}d|_d|_||d}|t	d||d||
t||||}|
||||d}|t	d||d||t||d	t!|||}|
|||dS#|wxYw)
Nr9r(rr9rrsMyListrT)rKrNrTr<r9rrrrr assertFalserrrrrreprrV)r.extcodeopcoder0r's1rs2s        rproduce_global_extz&AbstractPickleTests.produce_global_exts7##	!(Hg>>>yyy!!AAEAEAq!!BMM(//'22B777MM)R(((-fb99:::

2A1%%%Aq!!BX__W55r:::Y+++-fb994bJJJ

2A1%%%
IIKKKKKAIIKKKKsFGGc|dtj|dtjdS)Nrr)rYrEXT1r2s rtest_global_ext1z$AbstractPickleTests.test_global_ext1s8
FK888
FK88888rc|dtj|dtj|dtjdS)Nrriͫ)rYrEXT2r2s rtest_global_ext2z$AbstractPickleTests.test_global_ext2P
FK888
FK888
FK88888rc|dtj|dtj|dtjdS)Nriͫ)rYrEXT4r2s rtest_global_ext4z$AbstractPickleTests.test_global_ext4r`rcd}tt|}tD]w}|||}||}|||t
tj|}|	||dkxd}tt|}tD]}|||}||}|||t
tj|}|dkr|	|dz|
|dkdSN
r	r)rr7rrrrr"rAPPENDSrr)r.r!r'rrrnum_appendss       rtest_list_chunkingz&AbstractPickleTests.test_list_chunkingsAqNN	5	5E

1e$$A

1

A1%%%&v~q99K[%!)4444qNN	2	2E

1e$$A

1

A1%%%&v~q99Kzz  a0000q 01111	2	2rcd}tt|}tD]}|||}||t||}|||ttj|}|||dkd}tt|}tD]}|||}||}|||ttj|}|dkr||dz|
|dkdSrf)rrr7rrr.rrrr"rSETITEMSrr)r.r!r'rrrnum_setitemss       rtest_dict_chunkingz&AbstractPickleTests.test_dict_chunkingscMM%((##	6	6E

1e$$A!!![111

1

A1%%%';;L\5195555MM%((##	3	3E

1e$$A

1

A1%%%';;Lzz  q1111 12222	3	3rcd}tt|}tD]}|||}||}|||t
tj|}|dkr|	|dz|	|dd}tt|}tD]}|||}||}|||t
tj|}|dkr|	|dz|
|ddS)Nrgrrrrhr)r5r7rrrrr"rADDITEMSrassertGreaterEqual)r.r!r'rrrnum_additemss       rtest_set_chunkingz%AbstractPickleTests.test_set_chunkings^aMM	2	2E

1e$$A

1

A1%%%';;Lqyy  q1111  q1111aMM	9	9E

1e$$A

1

A1%%%';;Lqyy  q1111''a8888	9	9rcnttd}d|_tD]}||5|||}|dkr|d|n|d||ttj
|d|k|ttj||
|}|||dddn#1swxYwYdS)Nrr
I64206Mr)rOrrrrrrrrrNEWOBJrS	NEWOBJ_EXrrrs     rtest_simple_newobjz&AbstractPickleTests.test_simple_newobjs]  v66	*	*EE**

*

*JJq%((199MM+q1111MM,222  !1&-!C!C!"e---  !1&2BA!F!FGGGJJqMM##Aq)))

*

*

*

*

*

*

*

*

*

*

*

*

*

*

*	*	*sCD((D,	/D,	cttd}d|_tD]>}||5|||}|dkr|d|nP|dkr|d|n3|dkr|d	|n|d
||ttj
|d|k|ttj||
|}|||dddn#1swxYwY@dSNrvrwrxrryrrzrs	XFACEsFACE)
ComplexNewObjrrrrrrrrrr{rSr|rrrs     rtest_complex_newobjz'AbstractPickleTests.test_complex_newobj	s!!-88	*	*EE**
*
*JJq%((199MM+q1111QYYMM,2222QYYMM":A>>>>MM/1555  !1&-!C!C!"e---  !1&2BA!F!FGGGJJqMM##Aq)))
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*	*	*DE""E&	)E&	cttd}d|_tD]>}||5|||}|dkr|d|nP|dkr|d|n3|dkr|d	|n|d
||ttj
||ttj|d|k|
|}|||dddn#1swxYwY@dSr)ComplexNewObjExrrrrrrrSrrr{rr|rrrs     rtest_complex_newobj_exz*AbstractPickleTests.test_complex_newobj_ex"	s##OV<<	*	*EE**
*
*JJq%((199MM+q1111QYYMM,2222QYYMM":A>>>>MM/1555  !1&-!C!CDDD  !1&2BA!F!F!"e---JJqMM##Aq)))
*
*
*
*
*
*
*
*
*
*
*
*
*
*
*	*	*rctgd}d|_d|_||d}||}|||dS)Nr(rr9r)SlotListrrrrr)r.r'rrs    rtest_newobj_list_slotsz*AbstractPickleTests.test_newobj_list_slots6	s_YYYJJq!JJqMMAq!!!!!rc.tD]}t}||jd|||}||jd||}||jddSrM)rREX_oner_reduce_calledrrrs     r'test_reduce_overrides_default_reduce_exz;AbstractPickleTests.test_reduce_overrides_default_reduce_ex>	s	2	2E		AQ-q111

1e$$AQ-q111

1

AQ-q1111
	2	2rc.tD]}t}||jd|||}||j|||}||jddSr$)rREX_twor_protorrrs     rtest_reduce_ex_calledz)AbstractPickleTests.test_reduce_ex_calledG	s	-	-E		AQXt,,,

1e$$AQXu---

1

AQXt,,,,
	-	-rc.tD]}t}||jd|||}||j|||}||jddSr$)r	REX_threerrrrrs     rtest_reduce_ex_overrides_reducez3AbstractPickleTests.test_reduce_ex_overrides_reduceP	s	-	-EAQXt,,,

1e$$AQXu---

1

AQXt,,,,
	-	-rc.tD]}t}||jd|||}||j|||}||j|dSr$)rREX_fourrrrrrs     rtest_reduce_ex_calls_basez-AbstractPickleTests.test_reduce_ex_calls_baseY	s	.	.E

AQXt,,,

1e$$AQXu---

1

AQXu----
	.	.rc.tD]}t}||jd|||}||jd||}||jddSrM)rREX_fiverrrrrs     rtest_reduce_calls_basez*AbstractPickleTests.test_reduce_calls_baseb	s	2	2E

AQ-q111

1e$$AQ-q111

1

AQ-q1111
	2	2rcLt}tdD]O}tj5|t
|j||dddn#1swxYwYPtdtjdzD]}|||}dS)Nrr)	
BadGetattrr7rinfinite_recursionrRuntimeErrorrrr-)r.r'rrs    rtest_bad_getattrz$AbstractPickleTests.test_bad_getattrk	s
LL1XX	F	FE+--
F
F!!,
AuEEE
F
F
F
F
F
F
F
F
F
F
F
F
F
F
F1f59::	%	%E

1e$$AA	%	%s#A""A&	)A&	c8Gddt}Gddt}tD]k}	|||n#tj$rYnwxYw	|||W#tj$rYhwxYwdS)NceZdZdZdS)7AbstractPickleTests.test_reduce_bad_iterator.<locals>.CctddgdfSrg)rr2s rrszBAbstractPickleTests.test_reduce_bad_iterator.<locals>.C.__reduce__y	sRr4//rNr<r=r>rsr%rrrXrx	#
0
0
0
0
0rrXceZdZdZdS)7AbstractPickleTests.test_reduce_bad_iterator.<locals>.DctdddgfSrg)rr2s rrszBAbstractPickleTests.test_reduce_bad_iterator.<locals>.D.__reduce__}	sRtR//rNrr%rrr_r|	rrr_)r?rrr
PicklingError)r.rXr_rs    rtest_reduce_bad_iteratorz,AbstractPickleTests.test_reduce_bad_iteratoru	s	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0	0		E


1133&&&&'






1133&&&&'



		s#AA"!A"&BBBcdtdD}td|D}t|t|t|g}tD]q}||5|||}||}|||dddn#1swxYwYrdS)Nc3:K|]}dt|zVdS)aaaNrxrs  r	<genexpr>z>AbstractPickleTests.test_many_puts_and_gets.<locals>.<genexpr>	s,331A333333rrmc3"K|]
}|gdfVdS))rrrNr%)rks  rrz>AbstractPickleTests.test_many_puts_and_gets.<locals>.<genexpr>	s*77Q1iii.777777rrx)r7rrrrrr)r.r9
large_dictrrr]rDs       rtest_many_puts_and_getsz+AbstractPickleTests.test_many_puts_and_gets	s43c

33377$77777
Jj!1!14
3C3CD	1	1EE**
1
1C//F++##C000
1
1
1
1
1
1
1
1
1
1
1
1
1
1
1	1	1s>ACC	C	cPtD]}t}d|_d|_|||}||}t
|j}t
|j}t||D]\}}|	||dS)Nrr9)
rrXrrrrsortedrZzipr)	r.rr'rrx_keysy_keysx_keyy_keys	         rtest_attribute_name_interningz1AbstractPickleTests.test_attribute_name_interning	s		,		,EAAEAE

1e$$A

1

AAJ''FAJ''F #FF 3 3
,
,u

eU++++
,		,		,rc|tdd}||t|t	dgd}||t
dS)Nrrr)rr7rr6r5	DATA_SET2r\s  rtest_pickle_to_2xz%AbstractPickleTests.test_pickle_to_2x	sj
E!HHa((---CHHa((+++++rc"tD]}dtddztf}|||}||}|t|t||||dS)Nrsxyix)rr.r/rrr)r.rrr]rDs     rtest_large_picklesz&AbstractPickleTests.test_large_pickles	s	+	+EsEY/5DZZe,,FZZ''FS[[#d))444VT****	+	+rc	tD]Ɋ5fdtdD}tt	t
|}t||dkr2|D]/}ttj|0dddn#1swxYwYdS)NrxcBg|]}d|zSr)r)rr!rr.s  rrzDAbstractPickleTests.test_int_pickling_efficiency.<locals>.<listcomp>	s+FFFq4::adE22FFFrFr)rrr7rmapr/rrrSrrLONG)r.picklessizesrrs`   @rtest_int_pickling_efficiencyz0AbstractPickleTests.test_int_pickling_efficiency	s/	K	KEE**
K
KFFFFFE"IIFFFSg..//  666A::$KK(()9&+q)I)IJJJJ
K
K
K
K
K
K
K
K
K
K
K
K
K
K
K	K	KsBCC	C	c|||}|t||||}|||dSr$)rrrrr)r.rrVrrrs      r_check_pickling_with_opcodez/AbstractPickleTests._check_pickling_with_opcode	s_**S%(((99:::JJw''	i(((((rctgd}tD]K}|dkr"||tj|*||tj|LdS)Nr(r)rArrrAPPENDrir.rrs   rtest_appends_on_non_listsz-AbstractPickleTests.test_appends_on_non_lists	ssiii  	M	MEzz00fmUKKKK00fneLLLL		M	Mrctdddd}tD]K}|dkr"||tj|*||tj|LdS)Nrr(r)r_rrrSETITEMrmrs   rtest_setitems_on_non_dictsz.AbstractPickleTests.test_setitems_on_non_dicts	syB2"--..	N	NEzz00fneLLLL00fouMMMM		N	Nrrrbcdx}}hd}tj|D]\}}}||||||krd}|M||jd|j|vr(|t||jn^|jdks!|j|vr;t||jkr#| |||z
|jd}n|
|jdkr|}|jdkr#|	||j|dz|z}t|}||
||dS| |||z
|jdSdS)a
        Check the arguments of FRAME opcodes in a protocol 4+ pickle.

        Note that binary objects that are larger than FRAME_SIZE_TARGET are not
        framed by default and are therefore considered a frame by themselves in
        the following consistency check.
        N>BINBYTES	BINBYTES8
BINUNICODErBINUNICODE8FRAMEr	)rrassertLessEqualassertNotEqualrr/FRAME_SIZE_TARGET
assertLessFRAME_SIZE_MINrrr)r.r	frame_endframeless_startframeless_opcodesrraposs        rcheck_frame_opcodesz'AbstractPickleTests.check_frame_opcodes	s'+*	O:::'.w77	*	*LBS$$$S)444)## $I$##BGW5557///((S43IJJJGw&&W 111XX 666&2o(=(,(;===*.$,G1C1C&)Ow'!!''T-@AAA!GcM	'll Y,,,,,

(OOC/143FGGGGG)
(rcpucRttd}tdtjdzD]}||5|||}||}|||t|ttj
|z}|||jdz|
||jdz||dddn#1swxYwYdS)Nirrrxr)rr7rr-rrrrr/r"r
assertGreaterrrr)r.rrrrbytes_per_frames      rtest_framing_many_objectsz-AbstractPickleTests.test_framing_many_objects
sg5<<  1f59::	2	2EE**

2

2**S%00 JJw//	  i000#&w<<#/g#F#F$G""?#'#9A#=???$$_%)%;a%?AAA((111

2

2

2

2

2

2

2

2

2

2

2

2

2

2

2	2	2sB=DD	"D	cdd}dtdD}d|zg|d|zd|z}tdtjdzD]c}d	D]\}|||
5|s|||}nwt|ds
	dddQt
j}|||}||_	|
||}||}	|
d
|Dd|	D|
||	ttj|}
|
|
d||dddn#1swxYwY^edS)Nicg|]}|gSr%r%rs  rrzBAbstractPickleTests.test_framing_large_objects.<locals>.<listcomp>%
s...qs...rrgxyzrr)FT)rfastpicklerrc,g|]}t|Sr%r/rs  rrzBAbstractPickleTests.test_framing_large_objects.<locals>.<listcomp>9
s%:%:%:c!ff%:%:%:rc,g|]}t|Sr%rrs  rrzBAbstractPickleTests.test_framing_large_objects.<locals>.<listcomp>:
s%@%@%@c!ff%@%@%@r)r7rr-rrrr6rBrrdumprDrrr"rr)r.Nsmall_itemsrrrrbufrrn_framess           rtest_framing_large_objectsz.AbstractPickleTests.test_framing_large_objects#
s2..E"II...ax9+9tax9q91f59::	6	6E%
6
6\\D\99661#'**S%"8"8 'tY77%$6666666!jll"&,,sU,"C"C'+S)))"%,,.. $

7 3 3I$$%:%:c%:%:%:%@%@i%@%@%@BBB$$S)444+FL'BBH$$Xq111,,W5551666666666666666
6	6	6s*+F!!C4F!!F%(F%c		tjdkrdSdd}|j	d}ttfD]3	fdt|D}tdtjdzD]}|||}||}|ttj	|d|||
|||d}|ttj	|ttj	||||
|5dS)	Nrc(g}d}tj|D]&\}}}|jdkr||'t	}d}t|D]%\}	}|r||	r||||z
}||z}&|||dz
}|S)z+Remove frame opcodes from the given pickle.rrrN)rrrrrt	enumerate)
r
keep_frameframe_startsframe_opcode_sizerV_r	newpicklelast_frame_endrs
          r
remove_framesz?AbstractPickleTests.test_optional_frames.<locals>.remove_framesG
sL !"-"4W"="=
-
-3;')) '',,,!IN#L11
9
93**Q--W^C%788	!$'8!811Irc0i|]}||gzSr%r%)rr
bytes_type
frame_sizes  r
<dictcomp>z<AbstractPickleTests.test_optional_frames.<locals>.<dictcomp>_
s*NNNq1jj!oo
2NNNrrrc|dzSrr%)rs rr?z:AbstractPickleTests.test_optional_frames.<locals>.<lambda>h
s
a!err$)rr-rrrtr7rrr"rrr)
r.r
num_framesrrrframeless_picklesome_frames_picklerrs
        @@rtest_optional_framesz(AbstractPickleTests.test_optional_framesC
s"Q&&F				&+

!),
	F
	FJNNNNNE*<M<MNNNCq&"9A"=>>

F

F**S%00#0=#9#9   fl<L!M!MqQQQ  djj1A&B&BCCC%2]7OO%L%L"V\;M N N ,V\7 C CEEE  djj1C&D&DEEEE

F
	F
	FrcGdd}tdtjdzD]6}dttdD}|djdzdzz|}||||}	|}
||t|j
d~tj
||t|dz
jzdz}t|j
|t|j
d	|zd
zd|j
D}fd|D}	fd
|D}
d|D}|	D]!}|d	jz|"t|t|	t|
zd
z|8dS)Nc$eZdZdZdZdZdZdS)YAbstractPickleTests.test_framed_write_sizes_with_delayed_writer.<locals>.ChunkAccumulatorz2Accumulate pickler output in a list of raw chunks.cg|_dSr$)chunksr2s rrHzbAbstractPickleTests.test_framed_write_sizes_with_delayed_writer.<locals>.ChunkAccumulator.__init__q
s
 rc:|j|dSr$)rr)r.chunks  rrGz_AbstractPickleTests.test_framed_write_sizes_with_delayed_writer.<locals>.ChunkAccumulator.writes
s""5)))))rc6d|jS)Nr)rrr2s rconcatenate_chunkszlAbstractPickleTests.test_framed_write_sizes_with_delayed_writer.<locals>.ChunkAccumulator.concatenate_chunksu
sxx,,,rN)r<r=r>rIrHrGrr%rrChunkAccumulatorro
sGDD
!
!
!
*
*
*
-
-
-
-
-rrrrc|g|]9}t|d|dzdt|if:S)rrr)ryr rs  rrzSAbstractPickleTests.test_framed_write_sizes_with_delayed_writer.<locals>.<listcomp>y
sO111A

g..Bc!ff
F111rg@0123456789abcdefrrrc,g|]}t|Sr%r)rrs  rrzSAbstractPickleTests.test_framed_write_sizes_with_delayed_writer.<locals>.<listcomp>
s999a3q66999rc*g|]}|jk
|Sr%rrrr.s  rrzSAbstractPickleTests.test_framed_write_sizes_with_delayed_writer.<locals>.<listcomp>
s0;;;4#999999rc>g|]}d|cxkrjknn|Srrrs  rrzSAbstractPickleTests.test_framed_write_sizes_with_delayed_writer.<locals>.<listcomp>
sG>>>!!<<<<d&<<<<<<<<<rcg|]
}|dk|Srr%)rrs  rrzSAbstractPickleTests.test_framed_write_sizes_with_delayed_writer.<locals>.<listcomp>
s<<<Q!VV1VVVr)r7rr-rrrrrrrrrr/rr
gc_collectrrrr)
r.rrobjectswriterr
reconstructedrchunk_sizeslarge_sizesmedium_sizessmall_sizes
chunk_sizes
`            r+test_framed_write_sizes_with_delayed_writerz?AbstractPickleTests.test_framed_write_sizes_with_delayed_writerm
s	-	-	-	-	-	-	-	-1f59::5	.5	.E11 %c#hh111G
NN- 2b81<>
?
?
?&%''FLL'',,W555
//11G JJw//M]G444s6=111555   V6688'BBBGq(T-CCaGH##C
$6$6AAA

  V]!3!3Q\A5EFFF996=999K;;;;k;;;K>>>>{>>>L<<k<<<K*
-
-

A0F,F +----

  [!1!1!$[!1!1C4E4E!E!I!,
.
.
.
.g5	.5	.rc	GddattjdzD]}tjtjjtjjjfD]p}|||5||	||}|
||dddn#1swxYwYqdS)Nc(eZdZGddZdS)Nestedc(eZdZGddZdS)Nested.Ac(eZdZGddZdS)
Nested.A.BceZdZdS)Nested.A.B.CNrkr%rrrXr3
srrXN)r<r=r>rXr%rrrBr1
s<rrBN)r<r=r>rBr%rrAr/
s<rr4N)r<r=r>r4r%rrr-r-
s<









rr-r)rr)r-r7rr-r4rBrXrrrr)r.rrrs    rtest_nested_namesz%AbstractPickleTests.test_nested_names
s								
62Q677	2	2E&(*fhjl;
2
2\\3\7722 $

4::c5+A+A B BIMM#y111222222222222222
2	2	2s7ACC
CcGddatjtjt_dt_t
tjdzD]y}|	|5|
|t|}||tdddn#1swxYwYzt`dS)NceZdZdS)	RecursiveNrkr%rrr8r8
Drr8zRecursive.mod.Recursiverrx)
r8rmodulesr=modr>r7rr-rrrr)r.rrs   rtest_recursive_nested_namesz/AbstractPickleTests.test_recursive_nested_names
s
								I$89	
!:	62Q677	4	4EE**
4
4 JJtzz)U'C'CDD	

i333
4
4
4
4
4
4
4
4
4
4
4
4
4
4
4
MMMs4A
C

C	C	c	Gddatjtjtjtjjtjjtjf}tjtftjjtjff}ttj
dzD]}|D]}|||5||
||}|||dddn#1swxYwY|D]\}}|}|||5||
||}|||||dddn#1swxYwYtjdtjdf}ttj
dzD]X}|D]S}	|||	5|t"|j
|	|dddn#1swxYwYTYdS)NcZeZdZedZedZdZGddZdS)
PyMethodsTestcdS)Ncheeser%r%rrrAzPyMethodsTest.cheese
sxrc|tusJdS)Nwine)r?rs rrCzPyMethodsTest.wine
sm++++vrc4t|tsJdS)Nbiscuits)rr?r2s rrFzPyMethodsTest.biscuits
s!$
66666!zrcDeZdZdZedZedZdZdS)PyMethodsTest.NestedzNested classcdS)Nketchupr%r%rrrJzPyMethodsTest.Nested.ketchup
s$9rc&|tjusJdS)Nmaple)r?r-rDs rrLzPyMethodsTest.Nested.maple
s-"66666"7rc>t|tjsJdS)Npie)rr?r-r2s rrNzPyMethodsTest.Nested.pie
s %dM,@AAAAA 5rN)	r<r=r>rIstaticmethodrJrrLrNr%rrr-rH
sZ%%%###!!!!!rr-N)	r<r=r>rOrArrCrFr-r%rrr?r?
s}

 
 \
 


[

"
"
"
!
!
!
!
!
!
!
!
!
!rr?rrmethodrArCrdescr)r?rArCrFr-rJrLrNr7rr-rrrrrZrr)
r.
py_methodspy_unbound_methodsrrQrrrdescriptorsrSs
          rtest_py_methodsz#AbstractPickleTests.test_py_methods
sZ	!	!	!	!	!	!	!	!2
 OO$ ( &  ""&



#]3

!
%}';<
62Q677		B		BE$
<
<\\f\==<< $

4::fe+D+D E EI$$VVXXyy{{;;;<<<<<<<<<<<<<<< 2
B
Bcee\\f\==BB $

4::fe+D+D E EI$$VVC[[))C..AAABBBBBBBBBBBBBBB
B
"8,"6*
62Q677	K	KE$
K
K\\U\;;KK%%iUEJJJKKKKKKKKKKKKKKK
K	K	Ks8AD;;D?D?/AG

GG8#I''I+.I+cbGddtadjdftjdfgdjdft
jgdffdd	hjd
ftjdd	hd	fftj	dftjdftgd
jd
ftjtgd
d	fft
djdftj
jt
ddfff}ttjdzD]~}|D]y\}}|||5||||}|||||dddn#1swxYwYztjdtjdf}ttjdzD]X}|D]S}|||5|t.|j||dddn#1swxYwYTYdS)Nc*eZdZGddeZdS)SubclassceZdZdS)Subclass.NestedNrkr%rrr-r\srr-N)r<r=r>ryr-r%rrrZrZs>









rrZabcd)r)r]rr(r%rrr))r~r)rr)sabcr)rrrsweet)r0r0rP	maketransrrR)rDrZindexry__len__r__contains__r5rrrtr_countr-r7rr-rrrrrZrr)r.	c_methodsrrQr/rrVrSs        rtest_c_methodsz"AbstractPickleTests.test_c_methodss					u			\6"
Y
&
YY
#
\III<(V
 $'

A{+
]01

 "23
ggg


$d+
^hwww//34
__W
%
%
+V4
_
"X__W%=%=s$CD+
	.62Q677	F	FE )
F
F\\f\==FF $

4::fe+D+D E EI$$VVT]IIt4DEEEFFFFFFFFFFFFFFF
F
{+M*%
62Q677	K	KE$
K
K\\U\;;KK%%iUEJJJKKKKKKKKKKKKKKK
K	K	Ks%7AF		F
F
3#H""H&)H&c
tddddfttdddftjddft
jd	d	ftd
dftj	dd
ftj
ddftjddfg}|D]\}}}tdD]}|t||5|||}|d|d|||t||t|dddn#1swxYwYƌdS)Nrr__builtin__xrange123	itertoolsimaprr
exceptionsr<rIterableUserDictUserListrdefaultdictr)rrrr)r7rrrrrrr<rrrnrorrrrr rr)r.testsvalr;rrrs       rtest_compat_picklez&AbstractPickleTests.test_compat_pickle.s
1a[[-2
e__k62

}h7
[)Y/
[[,4

!
#
#Z1CD

!
#
#Z<

$
&
&
}E	
$	H	HNCdq
H
H\\tCyy\>>HH"jje44GMMMTT#:"B"B"D"DgNNNMM$tzz'':':";";T#YYGGGHHHHHHHHHHHHHHH
H	H	HsBE((E,/E,cLd}tdtjdzD]h}|ttjf5t
j|||dddn#1swxYwYi|`	tdtjdzD]h}|ttjf5t
j|||dddn#1swxYwYi|j
|_tdtjdzD]h}|ttjf5t
j|||dddn#1swxYwYidS)NcdSr$r%r%rrrz6AbstractPickleTests.test_local_lookup_error.<locals>.fCDrrr)r7rr-rAttributeErrorrrr%rr=r>r<r.rrs   rtest_local_lookup_errorz+AbstractPickleTests.test_local_lookup_error@sB			1f59::	6	6E""NF4H#IJJ
6
6

1e 4 4555
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6
L1f59::	6	6E""NF4H#IJJ
6
6

1e 4 4555
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6^
1f59::	6	6E""NF4H#IJJ
6
6

1e 4 4555
6
6
6
6
6
6
6
6
6
6
6
6
6
6
6	6	6s6	)A>>B	B	)DD
	
D
	#)FF	F	c#^Kd}t|Vt|Vt}t|}t|d}dtjfD]E}t|dd|Vt|ddd	|
Vt|ddd|
VDdSdS)Nabcdefghlittle)	byteorderrrB)r)rrr)rrr&)rrrrr%)rrrrr
from_bytesrr)r.
bytestringrrprs     rbuffer_like_objectsz'AbstractPickleTests.buffer_like_objectsYs 
J'''''
+++++"$$ENN:NBBE[45

4

4&uS-2444444'uS/5UDDDDDD'uS-3V-24444444#"

4

4rcv|D]}tdtjdzD]}|||}|jr|dkr|d||ttj	|d|dkr|ttj
||jrdnd|ttj||jrdndd}||||}||||
|}||||t!|t!||||dS)NrrrrzcdSNTr%rs rbuffer_callbackzAAbstractPickleTests.test_in_band_buffers.<locals>.buffer_callback}s#trr)rr7rr-rrrrr"NEXT_BUFFERSHORT_BINBYTESrrrrrr)r.rrrrdata2rs       rtest_in_band_buffersz(AbstractPickleTests.test_in_band_buffersms++--	+	+Cq&"9A"=>>
+
+zz#u--#5

MM+t444  f.@$!G!GKKKA::$$\&2G%N%N*-,%=QQA???$$\&2CT%J%J*-,%=QQA???$$$ JJsE7F'HHE$$UD111jj&&  c***

d3iic333  c****/
+	+	+rc.|D]}tddD]Q}|t5|||gjdddn#1swxYwYRtdtjdzD]y}gfd}||||}|d||	ttj|d|	ttj|d|	ttj
|d|	ttj||jrdnd|jr)|	t#dd|tj5||dddn#1swxYwY||}|jr|||nF|t-|t-||	||||t/}|jr|||3|t-|t-||	||{dS)NrrrrcR|Sr$)rr)rbufferss rr?z6AbstractPickleTests.test_oob_buffers.<locals>.<lambda>sW^^BFFHH-E-Errzr)rr7rr+rrrr-rrr"rrrREADONLY_BUFFERrrrrcrrrriter)r.rrrrrrs      @rtest_oob_buffersz$AbstractPickleTests.test_oob_bufferssq++--&	/&	/Cq!
:
:&&z22::JJsE/1y::::::::::::::::::q&"9A"=>> 
/ 
/"E"E"E"Ezz#u2A"CC  d333  f.CT!J!JANNN  f.?!F!FJJJ  f.@$!G!GKKK  f.Dd!K!K&)l!9;;;#E$$U71:%6%6DDD&&v'=>>%%JJt$$$%%%%%%%%%%%%%%%jjwj77,/MM#s++++MM$s))T#YY777$$S#...jjtG}}j==,/MM#s++++MM$s))T#YY777$$S#....A 
/
&	/&	/s$A//A36A3 HH	Hctd}tdtjdzD]}g}|j}||||}t
t|}|||}|	t|t||||dSNfoobarrrrr)rr7rr-rrrrtrrrr)r.rrrrrrs       r%test_oob_buffers_writable_to_readonlyz9AbstractPickleTests.test_oob_buffers_writable_to_readonlysI&&1f59::	'	'EG%nO::c5/:JJD)W--G**T7*33CMM$s))T#YY///S#&&&&	'	'rctjd}tddD]O}|tj5|||dddn#1swxYwYPdS)Nrrr)rrr7rPickleErrorr)r.rrs   rtest_picklebuffer_errorz+AbstractPickleTests.test_picklebuffer_errors

 
+
+1a[[	&	&E""6#566
&
&

2u%%%
&
&
&
&
&
&
&
&
&
&
&
&
&
&
&	&	&sA))A-	0A-	cd}tjd}|t5||d|ddddS#1swxYwYdS)NcddzdSr,r%rs rrzGAbstractPickleTests.test_buffer_callback_error.<locals>.buffer_callbacks
aCCCCrrrr)rrrZeroDivisionErrorr)r.rrs   rtest_buffer_callback_errorz.AbstractPickleTests.test_buffer_callback_errors			

 
+
+


0
1
1	?	?JJr1oJ>>>	?	?	?	?	?	?	?	?	?	?	?	?	?	?	?	?	?	?sAAActjd}tdtjdzD]}|||gj}|t5||tdddn#1swxYwY|tj
5||gdddn#1swxYwYdSr)rrr7r-rrrrrr?rc)r.rrrs    rtest_buffers_errorz&AbstractPickleTests.test_buffers_errors^

 
+
+1f59::	-	-E::b%:CCD""9--
3
3

4
222
3
3
3
3
3
3
3
3
3
3
3
3
3
3
3""6#9::
-
-

4
,,,
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
	-	-s$+$BB	"B	C))C-	0C-	ctdtjdzD]1}|d|d}||d}2dS)Nrrrr)r7rr-rr)r.rdata_pickledrs    r+test_inband_accept_default_buffers_argumentz?AbstractPickleTests.test_inband_accept_default_buffers_arguments[1f59::	:	:E::a:EEL::lD:99DD	:	:rNzTest needs Numpyc@fdfdfd}tjd}||||dddtjdd}||||j||ddddS)Nctj|||jj|jjdSr$)nptestingassert_equalrctypesrr'rr.s  r
check_no_copyz=AbstractPickleTests.test_buffers_numpy.<locals>.check_no_copys?J##Aq)))QX]AHM:::::rctj|||jj|jjdSr$)rrrrrrrs  r
check_copyz:AbstractPickleTests.test_buffers_numpy.<locals>.check_copys?J##Aq)))
qx}=====rctdtjdzD]9}||}|}||:tdtjdzD]>}d}|||}|}||?tdtjdzD]k}g}|j}|||}||}|jjs|jjr
||_||ldS)NrrrcdSrr%)rs rr?zMAbstractPickleTests.test_buffers_numpy.<locals>.check_array.<locals>.<lambda>sDrrr)	r7rr-rrrrrr)	arrrrrrrrrr.s	      rcheck_arrayz;AbstractPickleTests.test_buffers_numpy.<locals>.check_arrayshq&"9A"=>>
%
%zz#u--jj&&
3$$$$q&"9A"=>>
%
%"0.zz#uozNNjj&&
3$$$$q&"9A"=>>
)
)").zz#uozNNjjwj779))SY-C)!M#s++++JsC((((
)
)rrrr')rarangereshapeT)r.rrrrs`  @@rtest_buffers_numpyz&AbstractPickleTests.test_buffers_numpys	;	;	;	;	;	>	>	>	>	>	)	)	)	)	)	)	).illCC!Himm##F++CCEC!Hrc		ddlm	G	fddatD]}t	dD]}ddt	dDD]}||_|_d	||}||_#t$r/}d	}|
|t|Yd}~d}~wwxYwdS)
Nr)getrandbitsc,eZdZfdZdZfdZdS)BadcSr$r%)r.r\ENABLEDs  rr]z
Bad.__eq__srcdSr>r%r2s r__hash__zBad.__hash__srrc\ddkrtdfS)Nrrr%)clearr)r.
collectionrs rrszBad.__reduce__s2;q>>Q&&$$&&&Ry rN)r<r=r>r]rrs)rrrsrrrs[








!
!
!
!
!
!
!
!rrrFcDi|]}ttSr%)r)rrs  rrzEAbstractPickleTests.test_evil_class_mutating_dict.<locals>.<dictcomp> s">>>qceeSUU>>>rTchanged size during iteration)randomrrrr7r3rrrrrry)
r.rrr3rr0rrrrs
       @@@rtest_evil_class_mutating_dictz1AbstractPickleTests.test_evil_class_mutating_dictsD&&&&&&	!	!	!	!	!	!	!	!	!	!	!	!
	4
	4E2YY
4
4>>E"II>>>
%00C!CG%/CNN4::j%88DJJt$$$$#444>HMM(CFF333333334
4
	4
	4s&+B
C%CCcntds%tdGddafd}tD]|tg|ttg|th|tth|tdi|tdtdi|ttddS)	Nrz has no associated pickler typeceZdZdS)ClearerNrkr%rrrr2r9rrcGfddj}|tj}	|dS#t$r0}d}|t
|Yd}~dSd}~wwxYw)NceZdZfdZdS)]AbstractPickleTests.test_evil_pickler_mutating_collection.<locals>.check.<locals>.EvilPicklercZt|trdSr$)rrr)r.rrs  r
persistent_idzkAbstractPickleTests.test_evil_pickler_mutating_collection.<locals>.check.<locals>.EvilPickler.persistent_id7s,!#w//+"((***4rN)r<r=r>r)rsrEvilPicklerr6s.       rrr)rr6rBrrrry)rrrr0rrr.s`    rcheckzHAbstractPickleTests.test_evil_pickler_mutating_collection.<locals>.check5s
 
 
 
 
 
 
 dl
 
 
 
"k"*,,66G
0Z(((((
0
0
0:

hA/////////
0sA

B%BBrrr$)rskipTestrrr)r.rrs` @r%test_evil_pickler_mutating_collectionz9AbstractPickleTests.test_evil_pickler_mutating_collection,s[tY''	P--4:: N N NOOO									0	0	0	0	0	0	0	0EE799+E799gii()))E799+E799gii()))E799a.!!!E799aA.///EgiiGII..////	0	0r)r<r=r>	optimizedrr
rrrr!r*r(r3r5r:rBrErGrJrNrTrVrYr`rcrergrjrlrnrprsrurwryr|rrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr"r1r6r:r<rDrJrMrQrYr\r_rdrkrortr}rrrrrrrrr	rrrrrrrrrrrrrrskip_if_pgo_taskrequires_resourcerrr
r*r5r<rWrerrrxrrrrrrrrunittestskipIfrrrrr%rrrrsI%/I


+9N&&&(///	,	,	,08Q
#
#
#
#(((999EEE:Bq&&&&4222CCCOOO08Q
#
#
#
#(((999GGG:Bq&&&&4222CCCQQQ4<6666,,,===KKK>FST99998666GGGUUU///,	%	%	%
+
+
+...2777888@@@666<<<999:::BBB888>>>&&&))),	+	+	+'''
6
6
6LLL&&&&%%%.000_Xw00::10:///...777,,,***&"""---222444,,,444JJJ&LLLLLL%?%?%?N???2&&&&&&AAAAAA&	(	(	(
 
 
  8999999
999
222,333.9992*** ***(***("""222------...222%%Z%.111,,,,,,+++
K
K
K)))MMMNNNN!-H-H-H^
Wu%%
2
2&%
2666@(F(F(FT
?.?.?.B222


8K8K8Kt*K*K*KXHHH$6662444(+++>(/(/(/T'''&&&???	-	-	-:::
X_R4Z!344**54*X444<00000rrceZdZeedddZeedddZeedddZeeddd	Z	eeddd
Z
dS)BigmemPickleTestsg@F)sizememusedry_runcJdd|zz}	tD]}|dkr	||5|ttf5|||dddn#1swxYwYdddn#1swxYwY	d}dS#d}wxYw)Nrrrrxr)rrrr+rdr)r.rrrs    rtest_huge_long_32bz$BigmemPickleTests.test_huge_long_32bPs:QX	"
9
9199\\\..99**J
+FGG99

4%
888999999999999999999999999999999
9DDD4DKKKKsR&B"B
A6*B
6A::B
=A:>B
B
B	BB	BB"g@c
d|dzz}	tD]}|dkr	||5	|||}tjtjdt|z}||}|	|||t|z
|d}n#d}wxYw	dddn#1swxYwY	d}dS#d}wxYw)NabcdrrrxrrM)
rrrrrrOrPr/r`rr.rrrrheader
data_starts       rtest_huge_bytes_32bz%BigmemPickleTests.test_huge_bytes_32basQ$!)$	"

'

'199\\\..
'
'	'"&**TE*"B"B"(/"(+dCII">">#?%,]]4%8%8
(("#Js6{{$::$EFHHH#'$
'
'
'
'
'
'
'
'
'
'
'
'
'
'
'

'DDD4DKKKKsF&C#CB	B>;C>CCC#C	C#C	C##C'c
d|dzz}	tD]0}|dkr
||5|dkr]|ttf5|||dddn#1swxYwY	ddd	|||}tjtj	dt|z}||}||||t|z
|d}n#d}wxYw	dddn#1swxYwY2	d}dS#d}wxYw)Nsacbdrrrxr<Q)
rrrr+rdrrrrOrPr/r`rrs       rtest_huge_bytes_64bz%BigmemPickleTests.test_huge_bytes_64bvs$!)$	"
'
'199\\\..''zz"..
M/JKK== JJteJ<<<=============== 
'''''''	'"&**TE*"B"B"("2"(+dCII">">#?%,]]4%8%8
(("#Js6{{$::$EFHHH#'$!'''''''''''''''
'*DDD4DKKKKsq'E(D6A=1D6=BD6BD6	EB	D"D6"D&&D6*E6D:	:E=D:	>EErc
d|dzz}	tD])}|dkr
||5	|||}tjtjdt|z}|d}|	|||t|z
||	|
dtdz|dz
t|d}n#d}wxYw	dddn#1swxYwY+	d}dS#d}wxYw)Nr]rrrxrrMr)rrrrrrOrPr/r`rrindexrs       rtest_huge_str_32bz#BigmemPickleTests.test_huge_str_32bs#	"
'
'A::\\\..'''"&**TE*"B"B"("3"(+dCII">">#?%,]]7%;%;
(("#Js6{{$::$EFHHH(('..*A*ACLL*P*1--*@*@+ACFt99NNN#'$'''''''''''''''
'"DDD4DKKKKsF'ED/C%DD/DD/#E/D3	3E6D3	7EEc
Vd|dzz}	tD]}|dkr
||5|dkr]|ttf5|||dddn#1swxYwY	ddd	|||}tjtj	dt|z}|d}||||t|z
|||
dtdz|dz
t|d}n#d}wxYw	dddn#1swxYwY	d}dS#d}wxYw)Nr]rrrxrrr)rrrr+rdrrrrOrPr/r`rrrs       rtest_huge_str_64bz#BigmemPickleTests.test_huge_str_64bsY#	"
'
'A::\\\..''qyy!..
M/JKK== JJteJ<<<=============== 	'''''''
'"&**TE*"B"B"("4"(+dCII">">#?%,]]7%;%;
(("#Js6{{$::$EFHHH(('..*A*ACLL*P*1--*@*@+ACFt99NNN#'$!'''''''''''''''
'*DDD4DKKKKsq'F$(FA=1F=BFBF	F$C%E>;F>FFF$F	F$F	F$$F(N)r<r=r>rr
rrrrrrr%rrrrLsZSe444

54
 ZSe44454(ZSe44454:ZSE222324ZSE22232rrceZdZdZdZdZdS)rz4No __reduce_ex__ here, but inheriting it from objectrc"d|_tdfS)Nrr%)rrr2s rrszREX_one.__reduce__s{rNr<r=r>rIrrsr%rrrrs.>>NrrceZdZdZdZdZdS)rz1No __reduce__ here, but inheriting it from objectNc"||_tdfSrgrrr.rs  rrzREX_two.__reduce_ex__{rr<r=r>rIrrr%rrrrs.;;
FrrceZdZdZdZdZdS)rNc"||_tdfSrgrrs  rrzREX_three.__reduce_ex__rrc td)Nz#This __reduce__ shouldn't be called)rr2s rrszREX_three.__reduce__s>???r)r<r=r>rrrsr%rrrrs<
F@@@@@rrceZdZdZdZdZdS)rz(Calling base class method should succeedNcF||_t||Sr$)rr?rrs  rrzREX_four.__reduce_ex__s##D%000rrr%rrrrs.22
F11111rrceZdZdZdZdZdS)rz-This one used to fail with infinite recursionrcDd|_t|SrP)rr?rsr2s rrszREX_five.__reduce__s  &&&rNrr%rrrrs.77N'''''rrc,eZdZdZddZdZdZdZdS)rAz]This class is used to check the 4th argument (list iterator) of
    the reduce protocol.
    Nc||ng|_dSr$r>)r.rs  rrHzREX_six.__init__#/UUR


rc^t|t|uo|j|jkSr$)rrr[s  rr]zREX_six.__eq__'DzzT%[[(FTZ5;-FFrc:|j|dSr$)rr)r.items  rrzREX_six.appends
$rcNt|ddt|jdfSrg)rrrr2s rrszREX_six.__reduce__s#Dzz2tT$*%5%5t;;rr$)r<r=r>rIrHr]rrsr%rrrArAsb8888GGG   <<<<<rrAc,eZdZdZddZdZdZdZdS)r_z]This class is used to check the 5th argument (dict iterator) of
    the reduce protocol.
    Nc||ni|_dSr$r\)r.r]s  rrHzREX_seven.__init__
rrc^t|t|uo|j|jkSr$)rr]r[s  rr]zREX_seven.__eq__
rrc||j|<dSr$r\)r.r0rps   r__setitem__zREX_seven.__setitem__
s
3rcrt|dddt|jfSrg)rrr]rr2s rrszREX_seven.__reduce__
s/Dzz2tT4
0@0@0B0B+C+CCCrr$)r<r=r>rIrHr]rrsr%rrr_r_sg8888GGG   DDDDDrr_c,eZdZdZddZdZdZdZdS)rzUThis class is used to check the 3th argument (state) of
    the reduce protocol.
    Nc||_dSr$rr.rs  rrHzREX_state.__init__
rqrc^t|t|uo|j|jkSr$rrr[s  rr]zREX_state.__eq__
rrc||_dSr$r	r
s  r__setstate__zREX_state.__setstate__
rqrc0t|d|jfSrgrr2s rrszREX_state.__reduce__
sDzz2tz))rr$)r<r=r>rIrHr]rrsr%rrrr
sbGGG*****rrceZdZdZdS)rFrNr<r=r>rAr%rrrFrF
s
FFFrrFceZdZdZdS)MyFloatg?Nrr%rrrr
s
FFFrrceZdZdZdS)	MyComplexy?Nrr%rrrr!
s
FFFrrceZdZdZdS)MyStrr9Nrr%rrrr$
s
FFFrrceZdZdZdS)	MyUnicodeu	hello ሴNrr%rrrr'
s
FFFrrceZdZdZdS)rr(Nrr%rrrr*
s
FFFrrceZdZgdZdS)r9r(Nrr%rrr9r9-
s
YYFFFrr9ceZdZdddZdS)rXrrr}Nrr%rrrXrX0
s1

FFFrrXceZdZddhZdS)rr~rNrr%rrrr3
s3ZFFFrrc(eZdZeddhZdS)rr~rN)r<r=r>rrAr%rrrr6
s!
YSz
"
"FFFrrceZdZdZdS)MyIntWithNewctr$)AssertionError)rrps  rrzMyIntWithNew.__new__?
srN)r<r=r>rr%rrr r >
s#rr ceZdZejZdS)rLN)r<r=r>rrr%rrrLrLB
skGGGrrLceZdZdgZdS)rrN)r<r=r>rr%rrrrF
sIIIrrceZdZdZdZdS)rOc td)Nz3SimpleNewObj.__init__() didn't expect to get called)rrs   rrHzSimpleNewObj.__init__J
sMNNNrcbt|t|ko|j|jkSr$)rrZr[s  rr]zSimpleNewObj.__eq__M
s'4yyCJJ&J4=EN+JJrN)r<r=r>rHr]r%rrrOrOI
s:OOOKKKKKrrOceZdZdZdS)rcd|zdfS)N%Xrr%r2s r__getnewargs__zComplexNewObj.__getnewargs__Q
stR  rN)r<r=r>r+r%rrrrP
s#!!!!!rrceZdZdZdS)rcd|zfddifS)Nr*baserr%r2s r__getnewargs_ex__z!ComplexNewObjEx.__getnewargs_ex__U
st~|++rN)r<r=r>r/r%rrrrT
s#,,,,,rrceZdZdZdS)rc|jdSr$)r)r.r0s  r__getattr__zBadGetattr.__getattr__Y
s
rN)r<r=r>r2r%rrrrX
s#rrc\eZdZdZdZdZdZdZdZdZ	dZ
d	Zd
ZdZ
dZd
ZdS)AbstractPickleModuleTestscttd}	||t|jd|t
jtdS#t
jtwxYwNr{rrcloserr+rrunlinkr.rs  rtest_dump_closed_filez/AbstractPickleModuleTests.test_dump_closed_file_
m	%
GGIIIj$)S!<<<V$$$$$IV$$$$6A((Bcttd}	||t|jd|t
jtdS#t
jtwxYwr6r8r;s  rtest_load_closed_filez/AbstractPickleModuleTests.test_load_closed_fileg
r=r>ctj}didg}||||d||}|||dS)Nr7|r)r6rBrr8loadr)r.streamrrs    rtest_load_from_and_dump_to_filez9AbstractPickleModuleTests.test_load_from_and_dump_to_fileo
shR~		$AIIf%%	D)))))rcF|tjddSr)rrr-r2s rtest_highest_protocolz/AbstractPickleModuleTests.test_highest_protocolw
s!0!44444rc>tj}|d|d|d|d|dd|dd||d||ddS)Nr7r)filerr)r6rBrrPicklerr;s  rtest_callapiz&AbstractPickleModuleTests.test_callapi{
sJLL		#q"		#A	+++

3

3
$$$QQ$$$$$rcLttd}	tD]%}|t|jd||&	|tjtdS#|tjtwxYw)Nwr7)	rrrrrrr9rr:rws   rtest_dump_text_filez-AbstractPickleModuleTests.test_dump_text_file
s	%"
G
G!!)TYQFFFF
G
GGIIIV$$$$$
GGIIIV$$$$s-A44/B#ctjd}|ttjtjf|j|dS)NsX''.)	r6rBrrrOrrrcrC)r.rs  rtest_incomplete_inputz/AbstractPickleModuleTests.test_incomplete_input
s>Jw8V\63IJDIWXYYYYYrcGdd|j}Gdd|j}|tj|jd|tj|jdS)NceZdZdZdS);AbstractPickleModuleTests.test_bad_init.<locals>.BadPicklercdSr$r%r2s rrHzDAbstractPickleModuleTests.test_bad_init.<locals>.BadPickler.__init__
rNrcr%rr
BadPicklerrS
$$$$$rrVceZdZdZdS)=AbstractPickleModuleTests.test_bad_init.<locals>.BadUnpicklercdSr$r%r2s rrHzFAbstractPickleModuleTests.test_bad_init.<locals>.BadUnpickler.__init__
rUrNrcr%rrBadUnpicklerrY
rWrr[r)rJ	UnpicklerrrrrrcrC)r.rVr[s   r
test_bad_initz'AbstractPickleModuleTests.test_bad_init
s	%	%	%	%	%	%	%	%	%	%	%	%	%4>	%	%	%	
&.

0A1EEE&0,,..2EFFFFFrctdtdGdd}|ttf|j|Gfdd}|ttf|j|Gfdd}|ttf|j|Gfdd}|t
|j|Gfdd}|t
|j|Gfd	d}|t
|j|Gfd
d}|tt
f|j|Gfdd}	||n#t
$rYnwxYwGfdd}	||dS#t
$rYdSwxYw)
Nctr$)rrs   rraises_oserrorzIAbstractPickleModuleTests.test_unpickler_bad_file.<locals>.raises_oserror
sMrcddzdSr,r%r2s rbad_propertyzGAbstractPickleModuleTests.test_unpickler_bad_file.<locals>.bad_property
s
aCCCCrceZdZdS<AbstractPickleModuleTests.test_unpickler_bad_file.<locals>.FNrkr%rrFre
r9rrfceZdZZdSrdr<r=r>rFr`srrfz<AbstractPickleModuleTests.test_unpickler_bad_file.<locals>.F
s%HHHrceZdZZdSrdr<r=r>rErisrrfz<AbstractPickleModuleTests.test_unpickler_bad_file.<locals>.F
s!DDDrceZdZZZdSrd)r<r=r>rErFrbr`srrfz<AbstractPickleModuleTests.test_unpickler_bad_file.<locals>.F
sD%HHHrceZdZZZdSrd)r<r=r>rFrErmsrrfz<AbstractPickleModuleTests.test_unpickler_bad_file.<locals>.F
s#H!DDDrceZdZZdSrdrhrbsrrfz<AbstractPickleModuleTests.test_unpickler_bad_file.<locals>.F
s#HHHrceZdZZdSrdrkrpsrrfz<AbstractPickleModuleTests.test_unpickler_bad_file.<locals>.F
sDDDrceZdZZZZdSrd)r<r=r>r0rErFrmsrrfz<AbstractPickleModuleTests.test_unpickler_bad_file.<locals>.F
sD!D%HHHrceZdZZZZdSrd)r<r=r>readintorErFrmsrrfz<AbstractPickleModuleTests.test_unpickler_bad_file.<locals>.F
s#H!D%HHHr)rrrvrr\r)r.rfrbr`s  @@rtest_unpickler_bad_filez1AbstractPickleModuleTests.test_unpickler_bad_file
sy						
									>95t~qqssKKK	&	&	&	&	&	&	&	&	&	&>95t~qqssKKK	"	"	"	"	"	"	"	"	"	">95t~qqssKKK	&	&	&	&	&	&	&	&	&	&	&	
+T^QQSSAAA	"	"	"	"	"	"	"	"	"	"	"	
+T^QQSSAAA	$	$	$	$	$	$	$	$	$	$+T^QQSSAAA	 	 	 	 	 	 	 	 	 	 >+<=t~qqssSSS	&	&	&	&	&	&	&	&	&	&	&	NN1133 			D		&	&	&	&	&	&	&	&	&	&	&	NN1133 			DD	s$G))
G65G6
H))
H76H7cGdd}|t|j|Gdd}|t|j|dS)NceZdZdS):AbstractPickleModuleTests.test_pickler_bad_file.<locals>.FNrkr%rrrfrx
r9rrfc$eZdZedZdS)rxcddzdSr,r%r2s rrGz@AbstractPickleModuleTests.test_pickler_bad_file.<locals>.F.write
s!rN)r<r=r>rrGr%rrrfz:AbstractPickleModuleTests.test_pickler_bad_file.<locals>.F
s-


X


r)rrrJr)r.rfs  rtest_pickler_bad_filez/AbstractPickleModuleTests.test_pickler_bad_file
s								)T\1133777									
+T\1133?????rctd}tddD]G}|t5|||gjdddn#1swxYwYHtdt
jdzD]}g}|j}||||}|d||t|dd|t
j
5||dddn#1swxYwY|||}|||dS)Nsfoorr)rrrr)rr7rr+rrr-rrrrcr)	r.rrrrrrrrs	         rcheck_dumps_loads_oob_buffersz7AbstractPickleModuleTests.check_dumps_loads_oob_buffers
sF##1a[[	1	1E"":..
1
1cE&(i1111
1
1
1
1
1
1
1
1
1
1
1
1
1
1
11f59::	$	$EG%nO5u)8:::DVT***U71:..777""6#9::

d














%g...CMM#s####	$	$s#AA 	#A 	<DD	D	cF||j|jdSr$)r}rrr2s rtest_dumps_loads_oob_buffersz6AbstractPickleModuleTests.test_dumps_loads_oob_bufferss"**4:tzBBBBBrcHfd}fd}||dS)Ncptj}j||fi||Sr$)r6rBrrD)rrrr.s   rrzCAbstractPickleModuleTests.test_dump_load_oob_buffers.<locals>.dumps
s8
ADIc1'''''::<<rcHtj|}j|fi|Sr$)r6rBrC)rrrr.s   rrzCAbstractPickleModuleTests.test_dump_load_oob_buffers.<locals>.loadss,
4  A49Q))&)))r)r})r.rrs`  rtest_dump_load_oob_buffersz4AbstractPickleModuleTests.test_dump_load_oob_bufferssS	 	 	 	 	 
	*	*	*	*	*	
**5%88888rN)r<r=r>r<r@rErGrKrNrPr]rur{r}rrr%rrr4r4]
s%%%%%%***555%%%%%%ZZZ
G
G
G???B@@@$$$0CCC99999rr4c eZdZdZdZdZdS)AbstractPersistentPicklerTestsct|tr(|dzdkr|xjdz
c_t|S|dkr|xjdz
c_dSdS)Nrrrtest_false_valuerW)rrid_countryfalse_count)r.r?s  rrz,AbstractPersistentPicklerTests.persistent_idsffc""	vzQMMQMMv;;
)
)
)!24rc|s|xjdz
c_dS|xjdz
c_t|}|dzdksJ|S)Nrrrr)load_false_count
load_countr)r.oidr?s   rpersistent_loadz.AbstractPersistentPicklerTests.persistent_load&sU	!!Q&!!%%OOq OOXXFA:????Mrc	ttddgz}tD]}d|_d|_d|_d|_|||	|||||jd||jd||jd||jddS)Nrgrrrr)
rr7rrrrrrrr)r.Lrs   rtest_persistencez/AbstractPersistentPicklerTests.test_persistence0srOO122		7		7EDM D$%D!DOTZZ

1e(<(<==qAAAT]A...T-q111T_a000T2A6666		7		7rN)r<r=r>rrrr%rrrrsA77777rrc,eZdZdZdZdZdZdZdS)&AbstractIdentityPersistentPicklerTestsc|Sr$r%)r.rs  rrz4AbstractIdentityPersistentPicklerTests.persistent_id@
rc|Sr$r%)r.pids  rrz6AbstractIdentityPersistentPicklerTests.persistent_loadCrrc||||}||t||||dSr$)rrr.rr)r.rrrs    r_check_return_correct_typezAAbstractIdentityPersistentPicklerTests._check_return_correct_typeFsYJJtzz#u5566	ic333C(((((rctD]D}|dkr|ddddddtfD]}|||EdS)Nrrsabc
zabc
rg*\()rrry)r.rrs   rtest_return_correct_typez?AbstractIdentityPersistentPicklerTests.test_return_correct_typeKs|	@	@Ezz//q9999$gr:sC@@C33C????@	@	@rcd}|tj|j|dtj|dzdz}|tj|j|dS)Nu∅rrr*)rrrrPERSIDr rcr)r.
non_ascii_strrs   rtest_protocol0_is_ascii_onlyzCAbstractIdentityPersistentPicklerTests.test_protocol0_is_ascii_onlyTsh'
&.
M1MMM--"6"6w"?"??&H&0$*gFFFFFrN)r<r=r>rrrrrr%rrrr>sg)))
@@@GGGGGrrcXeZdZdZdZdZdZdZdZdZ	ddd	Z
d
ZdZdZ
d
ZdS)#AbstractPicklerUnpicklerObjectTestsNc*|jsJ|jsJdSr$)
pickler_classunpickler_classr2s rrz)AbstractPicklerUnpicklerObjectTests.setUp`s&!!!!######rcgd}tD]9}tj}|||}|||}|d||||}||d||||}|	|||
||;dS)Nabcdefgr,r)rr6rBrrrDr8truncate
clear_memorr)r.rrrr
first_pickledsecond_pickled
third_pickleds        rtest_clear_pickler_memoz;AbstractPicklerUnpicklerObjectTests.test_clear_pickler_memods"*))	;	;E
A((E22GLLJJLLM
FF1III
JJLLLLLZZ\\N
   
FF1III
JJLLLLLJJLLM
~>>>]M::::/	;	;rcgd}tj}||}|||}tj}||}|j|_|||}|||dSNr)r6rBrrrDmemor)r.rrrrprimedprimed_pickleds       rtest_priming_pickler_memoz=AbstractPicklerUnpicklerObjectTests.test_priming_pickler_memos)))JLL$$Q''T


JLL##A&&lDM>:::::rc&gd}tj}||}|||}tj}||}|j|_|||}|tj|}|}||||tj|}|j|_|}	|j	||	||
|	|udSr)r6rBrrrDrrrCrrr)
r.rrrrrr	unpicklerunpickled_data1unpickled_data2s
          rtest_priming_unpickler_memoz?AbstractPicklerUnpicklerObjectTests.test_priming_unpickler_memosL)))JLL$$Q''T


JLL##A&&lD((M)B)BCC	#..**$///%%bj&@&@AAn ++--$///?:;;;;;rcDgd}tj}||}|||}gd}tj}||}|||}tj}|||d||}||	||d|
|||d||	|dS)Nr)rrrr)r6rBrrrDrGr8rrrCr)r.data1rrpickled1rpickled2rs        rtest_reusing_unpickler_objectszBAbstractPicklerUnpicklerObjectTests.test_reusing_unpickler_objectssT***JLL$$Q''U::<<###JLL$$Q''U::<<JLL		q			((++	))5111	q				

		q			))511111rTr3c
tD]m}||5dtdDdtgz}|}|||}|||}d}|||z}||}	t|D]z}
|r|}|	|	
||r8|	||t|z{|t|	j
dddn#1swxYwYodS)Nrxc0g|]}|t|fSr%rxrs  rrzSAbstractPicklerUnpicklerObjectTests._check_multiple_unpicklings.<locals>.<listcomp>s":::!SVV:::risabcderr)
rrr7r/rrrDrr;rrCrr)r.ioclassr3rrrrrrrrrs            r_check_multiple_unpicklingsz?AbstractPicklerUnpicklerObjectTests._check_multiple_unpicklingss	<	<EE**
<
<::eDkk:::h_LGII,,Q,??U###**,,GGaK(( 0033	qGGA'ffhh$$Y^^%5%5u===G((3W3EFFF!!(IN;;;!
<
<
<
<
<
<
<
<
<
<
<
<
<
<
<	<	<sD=E**E.	1E.	cD|tjdSr$)rr6rBr2s r"test_multiple_unpicklings_seekablezFAbstractPicklerUnpicklerObjectTests.test_multiple_unpicklings_seekables((44444rc>|tddSNFr)rr*r2s r$test_multiple_unpicklings_unseekablezHAbstractPicklerUnpicklerObjectTests.test_multiple_unpicklings_unseekables!(((FFFFFrc>|tddSr)rr@r2s r!test_multiple_unpicklings_minimalzEAbstractPicklerUnpicklerObjectTests.test_multiple_unpicklings_minimals#	
((U(CCCCCrcttd}tD]}tddD]}tjtj|}|||}|||d|	|}|
||dS)Nrgr)buffer_sizerr)rr7rr6BufferedRandomrBrrr8rrrC)r.rrbuf_sizerrrs       r"test_unpickling_buffering_readlinezFAbstractPicklerUnpicklerObjectTests.test_unpickling_buffering_readlinesE"II	9	9E!!RLL
9
9%bjllIII,,Q,??T"""q			 0033	  !1!148888

9	9	9r)r<r=r>rrrrrrrrrrrrr%rrrr[sMO$$$;;;@;;;$<<<<2222@D<<<<<(555GGGDDD
99999rrreduce_AceZdZdZdS)rc ttffSr$)ryrr2s rrszAAA.__reduce__sXKrNrr%rrrrs#     rrceZdZdZdZdS)BBBcd|_dS)Nzsome attributer~r2s rrHzBBB.__init__s"rcd|_dS)NBBB.__setstate__rr
s  rrzBBB.__setstate__s
#rN)r<r=r>rHrr%rrrrs2"""
$$$$$rrcd|_dS)atCustom state setter for BBB objects

    Such callable may be created by other persons than the ones who created the
    BBB class. If passed as the state_setter item of a custom reducer, this
    allows for custom state setting behavior of BBB objects. One can think of
    it as the analogous of list_setitems or dict_setitems but for foreign
    classes/functions.
    custom state_setterNr)rrs  rsetstate_bbbrs
"CEEErceZdZdZdZdS)AbstractCustomPicklerClassz<Pickler implementing a reducing hook using reducer_override.ct|dd}|dkr	tdfS|dkr	tdfS|dkrdS|dkrtd	tS)
Nr<r)rMyClass)some strgFhThe reducer just failed)rrryr+r)r.robj_names   rreducer_overridez+AbstractCustomPicklerClass.reducer_overridesl3
D11s??:y  
%%
__5
__6777rN)r<r=r>rIrr%rrrrs)FFrrc4eZdZdZejdZdS)AbstractHookTestsc|d}d}d}Gdd}tdtjdzD]}||5t	j}|||}|||tj	gtj
|\}}	}
||d	||	d
|
|
tj	|tj5||dddn#1swxYwY|t"d5||dddn#1swxYwYdddn#1swxYwYdS)NcdSr$r%r%rrrz.AbstractHookTests.test_pickler_hook.<locals>.f7rurcdSr$r%r%rrrz.AbstractHookTests.test_pickler_hook.<locals>.g:rurcdSr$r%r%rrrz.AbstractHookTests.test_pickler_hook.<locals>.h=rurceZdZdS)4AbstractHookTests.test_pickler_hook.<locals>.MyClassNrkr%rrrr@r9rrrrrxrrr)r7rr-rr6rBrrmathlogrrDrrrrassertRaisesRegexr+)r.rrrrrbiornew_fsome_strmath_logs           rtest_pickler_hookz#AbstractHookTests.test_pickler_hook2s
																	1f59::		EE**

jll&&sE227DH-...,2L,H,H)x  ***  :666


h111&&v';<<FF1III++"$=??FF1III%














		s[
C!F/.EF/EF/EF/6FF/FF/F F//F3	6F3	ctdtjdzD]}||5d}t	j|}t
j}|||}|	|tj
|}|dksJ~~||dddn#1swxYwYdS)NrrrxcdSr$r%r%rrrzEAbstractHookTests.test_reducer_override_no_reference_cycle.<locals>.fbsDrr)
r7rr-rrGrefr6rBrrrrDrT)r.rrwrrrrs       r(test_reducer_override_no_reference_cyclez:AbstractHookTests.test_reducer_override_no_reference_cycleZs*1f59::	(	(EE**
(
([^^jll&&sE22q			S\\^^44zzzz!!""$$'''
(
(
(
(
(
(
(
(
(
(
(
(
(
(
(	(	(sB#C%%C)	,C)	N)r<r=r>rrcpython_onlyrr%rrrr1sC&&&P
(((((rrc&eZdZdZdZdZdZdS)AbstractDispatchTableTestsctj}||d}|t5|jdddn#1swxYwY|t|ddS)Nrdispatch_table)r6rBrrrvrrSr)r.rrs   rtest_default_dispatch_tablez6AbstractDispatchTableTests.test_default_dispatch_tableusJLLq!$$


~
.
.		
															$45566666sAAAcGfddjdfd	}|dS)NceZdZZdS)GAbstractDispatchTableTests.test_class_dispatch_table.<locals>.MyPicklerN)r<r=r>r)dtsr	MyPicklerrsNNNrrctj}||}|j|||Sr$)r6rBrrrrD)rrrrrrr.s    rrzCAbstractDispatchTableTests.test_class_dispatch_table.<locals>.dumpssU
A	!X&&AQ-r222
FF3KKK::<<rr$)get_dispatch_tabler_test_dispatch_table)r.rrrs` @@rtest_class_dispatch_tablez4AbstractDispatchTableTests.test_class_dispatch_table}s

$
$
&
&	 	 	 	 	 	 	 *	 	 	 	 	 	 	 	 	 	 	 	
!!%,,,,,rcldfd	}|dS)Nctj}||}|_|j|||Sr$)r6rBrrrrrD)rrrrrr.s    rrzFAbstractDispatchTableTests.test_instance_dispatch_table.<locals>.dumpssa
A""1h//A!AQ-r222
FF3KKK::<<rr$)rr	)r.rrs` @rtest_instance_dispatch_tablez7AbstractDispatchTableTests.test_instance_dispatch_tablesV

$
$
&
&	 	 	 	 	 	 	 	
!!%,,,,,rcfd}d}d}||||||||dfd}||t<|||||||t}t}|||t|||t|||t|||t||t<|||t||||||t|||tdfd}	|	|t<|t=||||||t|||t|||t|||jdd	}
|
|t<|||jd
dS)Nc@tj|dSNr)rr)rrs rcustom_load_dumpzIAbstractDispatchTableTests._test_dispatch_table.<locals>.custom_load_dumps<c1

...rcPtjtj|dSr)rrrrs rdefault_load_dumpzJAbstractDispatchTableTests._test_dispatch_table.<locals>.default_load_dumps<S! 4 4555ry?@reduce_1ctffSr$rx)rREDUCE_1s rrzAAbstractDispatchTableTests._test_dispatch_table.<locals>.reduce_1##rreduce_2ctffSr$rx)rREDUCE_2s rrzAAbstractDispatchTableTests._test_dispatch_table.<locals>.reduce_2rrrc0td|jddtfSrg)rrZrrs r
reduce_bbbzCAbstractDispatchTableTests._test_dispatch_table.<locals>.reduce_bbbsCL$lBBrr)rcomplexrrrr.r~)
r.rrrrrrr~rrrrrs
 `         @@rr	z/AbstractDispatchTableTests._test_dispatch_tablesD	/	/	/	/	/	6	6	6

))!,,a000**1--q111	$	$	$	$	$"*w))!,,h777**1--q111
EEEE))!,,h777..q113777**1--x888//22C888's))!,,h777))!,,h777**1--x888//22C888	$	$	$	$	$&s3))!,,h777..q113777**1--x888//22C888	
**1--/1CDDD	C	C	C)s	
))!,,.0EFFFFFrN)r<r=r>rr
r
r	r%rrrrssZ777--- ---@G@G@G@G@Grrr$zDATA{0} = (rz	    {0!r}rz# Disassembly of DATA{0}zDATA{0}_DIS = """\z""")rrrNrr6rrrrrrrOrr	r
rrGtextwraprhttp.cookiesrrr
testrtest.supportrrrr	r
rrtest.support.import_helperr
test.support.os_helperrrtest.support.warnings_helperrrnumpyr
skipUnlessrrr7r-rrr"r(rBr*r?r@rKrXr_rerjrnrtr=rrvr{rrrrrrrrtrrrr'rr(r	DATA2_DISr	DATA3_DISr	DATA4_DISr4r6r8rArithmeticErrorr"rvrBufferErrorBytesWarningDeprecationWarningrEnvironmentErrorr<FloatingPointError
FutureWarning
GeneratorExitIOError
ImportWarningIndentationError
IndexErrorKeyErrorKeyboardInterruptLookupErrorMemoryError	NameErrorr,rrdPendingDeprecationWarningReferenceErrorrRuntimeWarning
StopIterationSyntaxError
SyntaxWarningSystemError
SystemExitTabErrorrUnboundLocalErrorUnicodeErrorUnicodeWarningUserWarningr+Warningrr:r;r=rrrrrrrrrrAr_rrFfloatrrrryrrrDrrr9rrXr5rrrr?r rLrrOrrrr4rrrrrrrrrrr<r%r'rrrrrr/jrr%rr<module>rKsG



								















%%%%%%KKK"""""".-----))))))))))))FFFFFF
	&	&	(	(	
BBB#x"3;#6#MOO
E&)A-..	





&&&&&2:&&&	%	%	%	%	%	%	%	%,::::::::*////////








								        





Ca													Fi				88888888     E   8     	   8G(G(G(G(G(G(G(G(\(P
	f% >
	B	7
	t	
7
	t.@
	FQTQ
L	.#.#.#.#	.#
.#
.#.#
.#.#.#.#.#.#.#.# !.#"#.#$%.#&
'.#().#*+.#,-.#./.#01.#23.#45.#67.#89.#:;.#<=.#@A.#BC.#DE.#FG.#HI.#J
K.#LM.#NO.#PQ.#RS.#TU.#VW.#XY.#Z[.#.#`<,




*b	!b	!b	!b	!b	!b	!b	!b	!Lb0b0b0b0b0b0b0b0J5||||||||Bff@@@@@@@@11111v111'''''v'''<<<<<f<<<DDDDDDDD******** CeCeTTC#####)###G

I
ffe[
:	
3LvKKKKK3KKK!!!!!L!!!,,,,,l,,,
v9v9v9v9v9v9v9v9r%7%7%7%7%7%7%7%7PGGGGGGGG:\9\9\9\9\9\9\9\9B     &   $$$$$&$$$	"	"	"0?(?(?(?(?(?(?(?(DhGhGhGhGhGhGhGhGVz

A
U6*1,
-
-FLA
m""1%%&&&q##a&&"%%	)	)Aa!B$i  AE+$$Q''((((
c




(//22333
&--a00111A
h
!sHAA! A!
C)B:.C:B>>CB>CCC