grthtrhthjhtyjytjytkergtrhtrjytjerhrfh4:24 29/09/2026o ®û|jµýã@sNdZddlmZddlmZddlmZmZmZddlm Z ddl m Z ddl Z ddl m Z dd lmZmZddlZddlZddlZddlZgd ¢Zzdd lmZe d ¡d ZWn eyddZYnweefZdZgd¢ZdZ dZ!Gdd„de"ƒZ#Gdd„de#ƒZ$Gdd„de#ƒZ%Gdd„de"ƒZ&zddl'm(Z(Wn ey¦dZ(YnwdZ)dZ*dZ+dZ,d Z-d!Z.d"Z/d#Z0d$Z1d%Z2d&Z3d'Z4d(Z5d)Z6d*Z7d+Z8d,Z9d-Z:d.Z;d/Zd2Z?d3Z@d4ZAd5ZBd6ZCd7ZDd8ZEd9ZFd:ZGd;ZHdZKd?ZLd@ZMdAZNdBZOdCZPdDZQdEZRdFZSdGZTdHZUdIZVdJZWdKZXdLZYdMZZdNZ[dOZ\dPZ]dQZ^dRZ_eOeYeZe[gZ`dSZadTZbdUZcdVZddWZedXZfdYZgdZZhd[Zid\Zjd]Zkd^Zld_Zmd`ZndaZoe pdbdc„eqƒDƒ¡Gddde„deƒZrGdfdg„dgƒZsdhdi„Ztdjdk„Zudldm„Zvdndo„ZwGdpdq„dqƒZxGdrds„dsƒZyd‘d ddtœdudv„Zzd‘d ddtœdwdx„Z{d dydzdd{œd|d}„Z|d dydzdd{œd~d„Z}zdd lm#Z#m$Z$m%Z%m~Z~mZm€Z€m�Z�m‚Z‚mƒZƒWne�yÇexeyZ~Zeze{e|e}f\Z€Z�Z‚ZƒYnwd€d�„Z„e…d‚k�r#ddl†Z†e†j‡dƒd„�Zˆeˆj‰d…e† Šd†¡d‡dˆd‰�eˆj‰dŠd‹dŒd�dŽ�eˆj‰d�dŒd�dŽ�eˆ ‹¡ZŒeŒj��re„ƒdSeŒjŽ�seˆ �¡dSddl�Z�eŒjŽD]Z‘e‚e‘ƒZ’e� �e’¡�qdSdS)’aŸCreate portable serialized representations of Python objects. See module copyreg for a mechanism for registering custom picklers. See module pickletools source for extensive comments. Classes: Pickler Unpickler Functions: dump(object, file) dumps(object) -> string load(file) -> object loads(bytes) -> object Misc variables: __version__ format_version compatible_formats é)Ú FunctionType)Údispatch_table)Ú_extension_registryÚ_inverted_registryÚ_extension_cache)Úislice)ÚpartialN)Úmaxsize)ÚpackÚunpack) Ú PickleErrorÚ PicklingErrorÚUnpicklingErrorÚPicklerÚ UnpicklerÚdumpÚdumpsÚloadÚloads)Ú PickleBufferrTFú4.0)z1.0z1.1z1.2z1.3z2.0z3.0rz5.0ééc@óeZdZdZdS)r z6A common base class for the other pickling exceptions.N©Ú__name__Ú __module__Ú __qualname__Ú__doc__©rrú-/opt/alt/python310/lib64/python3.10/pickle.pyr Isr c@r)r z]This exception is raised when an unpicklable object is passed to the dump() method. Nrrrrr r Msr c@r)raThis exception is raised when there is a problem unpickling an object, such as a security violation. Note that other exceptions may also be raised during unpickling, including (but not necessarily limited to) AttributeError, EOFError, ImportError, and IndexError. Nrrrrr rTsrc@seZdZdd„ZdS)Ú_StopcCs ||_dS©N)Úvalue©Úselfr#rrr Ú__init__bs z_Stop.__init__N)rrrr&rrrr r!as r!)Ú PyStringMapó(ó.ó0ó1ó2óFóIóJóKóLóMóNóPóQóRóSóTóUóVóXóaóbócódó}óeógóhóiójóló]óoópóqórósótó)óuóGsI01 sI00 ó€ó�ó‚óƒó„ó…ó†ó‡óˆó‰óŠó‹óBóCóŒó�óŽó�ó�ó‘ó’ó“ó”ó•ó–ó—ó˜cCsg|] }t d|¡r|‘qS)z[A-Z][A-Z0-9_]+$)ÚreÚmatch)Ú.0Úxrrr Ú Åsrpc@sFeZdZdZdZdd„Zdd„Zdd„Zdd d „Zd d „Z dd„Z dS)Ú_FramerricCs||_d|_dSr")Ú file_writeÚ current_frame)r%rrrrr r&Ís z_Framer.__init__cCst ¡|_dSr")ÚioÚBytesIOrs©r%rrr Ú start_framingÑóz_Framer.start_framingcCs2|jr|j ¡dkr|jdd�d|_dSdSdS)NrT©Úforce)rsÚtellÚ commit_framervrrr Ú end_framingÔs  þz_Framer.end_framingFcCsn|jr3|j}| ¡|jks|r5| ¡}|j}t|ƒ|jkr(|ttdt|ƒƒƒ||ƒt   ¡|_dSdSdS)Núz&Can't get local attribute {!r} on {!r}z Can't get attribute {!r} on {!r})ÚsplitÚAttributeErrorÚformatÚgetattr)ÚobjÚnameZsubpathÚparentrrr Ú _getattributeBs ÿ ÿÿÿr¢c Cs€t|ddƒ}|dur |Stj ¡ ¡D]*\}}|dks#|dks#|dur$qzt||ƒd|ur3|WSWqty=YqwdS)z$Find the module an object belong to.rNÚ__main__Z __mp_main__r)ržÚsysÚmodulesÚcopyÚitemsr¢rœ)rŸr Ú module_nameÚmodulerrr Ú whichmoduleOs  ÿ ÿrªcCsh|dkrdS| ¡d?d}|j|ddd�}|dkr2|dkr2|dd kr2|d d @dkr2|d d…}|S) aÒEncode a long to a two's complement little-endian binary string. Note that 0 is a special case, returning an empty string, to save a byte in the LONG1 pickling context. >>> encode_long(0) b'' >>> encode_long(255) b'\xff\x00' >>> encode_long(32767) b'\xff\x7f' >>> encode_long(-256) b'\x00\xff' >>> encode_long(-32768) b'\x00\x80' >>> encode_long(-128) b'\x80' >>> encode_long(127) b'\x7f' >>> rr—ééÚlittleT©Ú byteorderZsignedr”éÿéþÿÿÿé€N)Ú bit_lengthÚto_bytes)roÚnbytesÚresultrrr Ú encode_longbs r·cCstj|ddd�S)a\Decode a long from a two's complement little-endian binary string. >>> decode_long(b'') 0 >>> decode_long(b"\xff\x00") 255 >>> decode_long(b"\xff\x7f") 32767 >>> decode_long(b"\x00\xff") -256 >>> decode_long(b"\x00\x80") -32768 >>> decode_long(b"\x80") -128 >>> decode_long(b"\x7f") 127 r­Tr®)ÚintÚ from_bytes)r…rrr Ú decode_long€srºc@s–eZdZdddœdd„Z iZ dd„Zee edƒ<dd„Zee e<dd„Zee e<dd „Zee e<d!d"„Zee e<d#d$„Zee e<ervd%d&„Zee e<d'd(„Zee e<d)d*„Zee e <d+d,„Z!e!e e"<d-Z#d.d/„Z$d0d1„Z%e%e e&<e'dur¤e%e e'<d2d3„Z(d4d5„Z)e)e e*<d6d7„Z+e+e e,<dtdƒ‚wt|jƒ|_ |j j|_|j j |_ i|_ t |ƒ|_|dk|_d|_|od|dk|_dS) a!This takes a binary file for writing a pickle data stream. The optional *protocol* argument tells the pickler to use the given protocol; supported protocols are 0, 1, 2, 3, 4 and 5. The default protocol is 4. It was introduced in Python 3.4, and is incompatible with previous versions. Specifying a negative protocol version selects the highest protocol version supported. The higher the protocol used, the more recent the version of Python needed to read the pickle produced. The *file* argument must have a write() method that accepts a single bytes argument. It can thus be a file object opened for binary writing, an io.BytesIO instance, or any other custom object that meets this interface. If *fix_imports* is True and *protocol* is less than 3, pickle will try to map the new Python 3 names to the old module names used in Python 2, so that the pickle data stream is readable with Python 2. If *buffer_callback* is None (the default), buffer views are serialized into *file* as part of the pickle stream. If *buffer_callback* is not None, then it can be called any number of times with a buffer view. If the callback returns a false value (such as None), the given buffer is out-of-band; otherwise the buffer is serialized in-band, i.e. inside the pickle stream. It is an error if *buffer_callback* is not None and *protocol* is None or smaller than 5. Nrzpickle protocol must be <= %drz#buffer_callback needs protocol >= 5z"file must have a 'write' attributer¬r«)ÚDEFAULT_PROTOCOLÚHIGHEST_PROTOCOLÚ ValueErrorÚ_buffer_callbackr†Ú _file_writerœÚ TypeErrorrqÚframerr‰Ú_write_large_bytesÚmemor¸ÚprotoÚbinÚfastr½)r%ÚfileÚprotocolr½r¾rrr r&™s,#   ÿ     z_Pickler.__init__cCs|j ¡dS)aClears the pickler's "memo". The memo is the data structure that remembers which objects the pickler has already seen, so that shared or recursive objects are pickled by reference and not by value. This method is useful when re-using picklers. N)rÇÚclearrvrrr Ú clear_memoÒsz_Pickler.clear_memocCsrt|dƒstd|jjfƒ‚|jdkr| ttd|jƒ¡|jdkr(|j  ¡|  |¡| t ¡|j  ¡dS)z7Write a pickled representation of obj to the open file.rÃz2Pickler.__init__() was not called by %s.__init__()éú|jr| ttd|ƒ¡dS| tt|ƒ d¡d¡dS)Nú>drÝrÞ)rÉr†ÚBINFLOATr ÚFLOATrãrärÖrrr Ú save_floats z_Pickler.save_floatcCsà|jdkr!|s|jtd|d�dS|jtjt|dƒdf|d�dSt|ƒ}|dkr6| tt d|ƒ|¡n3|dkrK|jdkrK|  t t d |ƒ|¡n||j j kr]|  tt d |ƒ|¡n | tt d |ƒ|¡| |¡dS) Nr«rrÚlatin1r°rÐìÿÿrr~rÜ)rÈrøÚbytesÚcodecsrärör�r†ÚSHORT_BINBYTESr rÆÚ BINBYTES8rÅrÚBINBYTESrÚ©r%rŸr‘rrr Ú save_bytess" þÿ z_Pickler.save_bytescCsŽ|jdkr|s|jtd|d�dS|jtt|ƒf|d�dSt|ƒ}||jjkr4| tt d|ƒ|¡n |  tt d|ƒ|¡|  |¡dS)Nrrrr~) rÈrøÚ bytearrayr/r�rÅrrÆÚ BYTEARRAY8r r†rÚr4rrr Úsave_bytearray)s ÿ z_Pickler.save_bytearraycCsÞ|jdkr tdƒ‚| ¡�X}|jstdƒ‚d}|jdur#t| |¡ƒ}|r8|jr0| | ¡¡n-|  | ¡¡n|  t ¡|jrM|  t ¡WdƒdSWdƒdSWdƒdSWdƒdS1shwYdS)Nrz0PickleBuffer can only pickled with protocol >= 5zHPickleBuffer can not be pickled when pointing to a non-contiguous bufferT) rÈr ÚrawÚ contiguousrÂÚboolÚreadonlyr5Útobytesr8r†Ú NEXT_BUFFERÚREADONLY_BUFFER)r%rŸÚmZin_bandrrr Úsave_picklebuffer9s,     îï ó "õz_Pickler.save_picklebuffercCs|jrW| dd¡}t|ƒ}|dkr#|jdkr#| ttd|ƒ|¡n^|dkr8|jdkr8| ttd|ƒ|¡nI||j j krJ| t td|ƒ|¡n7| t td|ƒ|¡n*|  d d ¡}|  d d ¡}|  d d¡}|  dd¡}|  dd¡}| t | d¡d¡| |¡dS)Núutf-8Ú surrogatepassr°rrÐr.r~rÜú\z\u005cúz\u0000Ú z\u000aú z\u000dúz\u001aúraw-unicode-escaperÞ)rÉrär�rÈr†ÚSHORT_BINUNICODEr rÆÚ BINUNICODE8rÅrÚ BINUNICODEÚreplaceÚUNICODErÚr'rrr Úsave_strSs&       ÿz_Pickler.save_strcCs<|s|jr | t¡dS| tt¡dSt|ƒ}|j}|j}|dkr[|jdkr[|D]}||ƒq*t |ƒ|vrM|  |t |ƒd¡}| t ||¡dS| t |¡|  |¡dS|j}|tƒ|D]}||ƒqdt |ƒ|vr“|  |t |ƒd¡}|jr‡|t|ƒdS|t |d|ƒdS|tƒ|  |¡dS)Nr«rÏrr¬)rÉr†Ú EMPTY_TUPLEÚMARKÚTUPLEr�rÔrÇrÈrØrêr Ú_tuplesize2coderÚÚPOP_MARK)r%rŸr‘rÔrÇZelementrêr†rrr Ú save_tuplejs@ ÿ  þ    ÿz_Pickler.save_tuplecCs8|jr | t¡n| tt¡| |¡| |¡dSr")rÉr†Ú EMPTY_LISTrQÚLISTrÚr rÖrrr Ú save_list�s   z_Pickler.save_listiècCs¦|j}|j}|js|D] }||ƒ|tƒq dSt|ƒ} tt||jƒƒ}t|ƒ}|dkr?|t ƒ|D]}||ƒq3|t ƒn |rK||dƒ|tƒ||jkrRdSq©NTr¬r) rÔr†rÉÚAPPENDÚiterÚlistrÚ _BATCHSIZEr�rQÚAPPENDS)r%r§rÔr†roÚitÚtmpr‘rrr r ªs,     óz_Pickler._batch_appendscCs<|jr | t¡n| tt¡| |¡| | ¡¡dSr")rÉr†Ú EMPTY_DICTrQÚDICTrÚrr§rÖrrr Ú save_dictÅs   z_Pickler.save_dictc CsÎ|j}|j}|js|D]\}}||ƒ||ƒ|tƒq dSt|ƒ} tt||jƒƒ}t|ƒ}|dkrK|t ƒ|D] \}}||ƒ||ƒq9|t ƒn|r_|d\}}||ƒ||ƒ|tƒ||jkrfdSq#rY) rÔr†rÉÚSETITEMr[r\rr]r�rQÚSETITEMS) r%r§rÔr†ÚkÚvr_r`r‘rrr rÒs4       ðz_Pickler._batch_setitemscCsž|j}|j}|jdkr|jtt|ƒf|d�dS|tƒ| |¡t|ƒ} tt ||j ƒƒ}t |ƒ}|dkrG|t ƒ|D]}||ƒq<|t ƒ||j krNdSq&)NrrTr)rÔr†rÈrøÚsetr\Ú EMPTY_SETrÚr[rr]r�rQÚADDITEMS)r%rŸrÔr†r_Zbatchr‘Úitemrrr Úsave_setñs&    ÷z_Pickler.save_setcCs’|j}|j}|jdkr|jtt|ƒf|d�dS|tƒ|D]}||ƒqt|ƒ|jvr>|t |  |jt|ƒd¡ƒdS|t ƒ|  |¡dS)Nrrr) rÔr†rÈrøÚ frozensetr\rQrØrÇrTrêÚ FROZENSETrÚ)r%rŸrÔr†rkrrr Úsave_frozenset s   z_Pickler.save_frozensetc Cs<|j}|j}|durt|ddƒ}|dur|j}t||ƒ}zt|dd�tj|}t||ƒ\}}Wnt t t fyDt d|||fƒd‚w||urRt d|||fƒ‚|j dkr‰t ||f¡} | r‰| dkro|ttd| ƒƒdS| d kr~|ttd | ƒƒdS|ttd | ƒƒdS| d ¡d} ||ur–| }|j d krª| |¡| |¡|tƒnm||ur·| t|| f¡n`|j dkrÏ|tt|dƒdt|dƒdƒnH|jrïtj} tj} ||f| vrç| ||f\}}n|| vrï| |}z|tt|dƒdt|dƒdƒWnt�yt d|||j fƒd‚w| |¡dS)Nrr©Úlevelz(Can't pickle %r: it's not found as %s.%sz2Can't pickle %r: it's not the same object as %s.%srÏr°rÐrrrršrr«rBrÞrÝz?can't pickle global identifier '%s.%s' using pickle protocol %i) r†rÇržrrªÚ __import__r¤r¥r¢Ú ImportErrorÚKeyErrorrœr rÈrrêÚEXT1r ÚEXT2ÚEXT4Ú rpartitionrÔÚ STACK_GLOBALrøÚGLOBALr/r½Ú_compat_pickleZREVERSE_NAME_MAPPINGZREVERSE_IMPORT_MAPPINGrrÚ) r%rŸr r†rÇr¨r©Zobj2r¡ÚcodeZlastnameZr_name_mappingZr_import_mappingrrr rô s–    ÿÿþÿÿÿ üÿ     ÿÿ ÿ ÿ ÿÿþÿz_Pickler.save_globalcCs`|tdƒur|jtd|d�S|ttƒur|jttf|d�S|tdƒur+|jtd|d�S| |¡S)Nr"r.).)rñrørðrôrÖrrr Ú save_typebs    z_Pickler.save_typer")T)NNNN)0rrrr&rÎrrÚr×rêrÔrîrïrøròrrñrr;r(r¸r,Úfloatr5r/r8r6Ú_HAVE_PICKLE_BUFFERrArrOrörUr÷rXr\r]r rcÚdictr'rrlrhrormrôr}rrrrr r»—sl ÿ9  F ÿ ÿu  1   B r»c@s¬eZdZdddddœdd„Zdd „Zd d „Zd d „ZiZdd„Zeee d<dd„Z e ee d<dd„Z e ee d<dd„Zeeed<dd„Zeeed<dd„Zeeed<dd„Zeeed<dd„Zeeed<dd „Zeeed<d!d"„Zeeed<d#d$„Zeeed<d%d&„Zeeed<d'd(„Z e ee!d<d)d*„Z"e"ee#d<d+d,„Z$e$ee%d<d-d.„Z&e&ee'd<d/d0„Z(d1d2„Z)e)ee*d<d3d4„Z+e+ee,d<d5d6„Z-e-ee.d<d7d8„Z/e/ee0d<d9d:„Z1e1ee2d<d;d<„Z3e3ee4d<d=d>„Z5e5ee6d<d?d@„Z7e7ee8d<dAdB„Z9e9ee:d<dCdD„Z;e;eed<dGdH„Z?e?ee@d<dIdJ„ZAeAeeBd<dKdL„ZCeCeeDd<dMdN„ZEeEeeFd<dOdP„ZGeGeeHd<dQdR„ZIeIeeJd<dSdT„ZKeKeeLd<dUdV„ZMeMeeNd<dWdX„ZOeOeePd<dYdZ„ZQeQeeRd<d[d\„ZSeSeeTd<d]d^„ZUeUeeVd<d_d`„ZWeWeeXd<dadb„ZYdcdd„ZZeZee[d<dedf„Z\e\ee]d<dgdh„Z^e^ee_d<didj„Z`e`eead<dkdl„Zbebeecd<dmdn„Zdedeeed<dodp„Zfefeegd<dqdr„Zheheeid<dsdt„Zjejeekd<dudv„Zldwdx„Zmdydz„Zneneeod<d{d|„Zpepeeqd<d}d~„Zrereesd<dd€„Zteteeud<d�d‚„Zveveewd<dƒd„„Zxexeeyd<d…d†„Zzezee{d<d‡dˆ„Z|e|ee}d<d‰dŠ„Z~e~eed<d‹dŒ„Z€e€ee�d<d�dŽ„Z‚e‚eeƒd<d�d�„Z„e„ee…d<d‘d’„Z†e†ee‡d<d“d”„Zˆeˆee‰d<d•d–„ZŠeŠee‹d<d—d˜„ZŒeŒee�d<d™dš„ZŽeŽee�d<d›dœ„Z�e�ee‘d<d�dž„Z’e’ee“d<dS)ŸÚ _UnpicklerTÚASCIIÚstrictN©r½ÚencodingÚerrorsÚbufferscCsH|durt|ƒnd|_|j|_|j|_i|_||_||_d|_ ||_ dS)aÜThis takes a binary file for reading a pickle data stream. The protocol version of the pickle is detected automatically, so no proto argument is needed. The argument *file* must have two methods, a read() method that takes an integer argument, and a readline() method that requires no arguments. Both methods should return bytes. Thus *file* can be a binary file object opened for reading, an io.BytesIO object, or any other custom object that meets this interface. The file-like object must have two methods, a read() method that takes an integer argument, and a readline() method that requires no arguments. Both methods should return bytes. Thus file-like object can be a binary file object opened for reading, a BytesIO object, or any other custom object that meets this interface. If *buffers* is not None, it should be an iterable of buffer-enabled objects that is consumed each time the pickle stream references an out-of-band buffer view. Such buffers have been given in order to the *buffer_callback* of a Pickler object. If *buffers* is None (the default), then the buffers are taken from the pickle stream, assuming they are serialized there. It is an error for *buffers* to be None if the pickle stream was produced with a non-None *buffer_callback*. Other optional arguments are *fix_imports*, *encoding* and *errors*, which are used to control compatibility support for pickle stream generated by Python 2. If *fix_imports* is True, pickle will try to map the old Python 2 names to the new names used in Python 3. The *encoding* and *errors* tell pickle how to decode 8-bit string instances pickled by Python 2; these default to 'ASCII' and 'strict', respectively. *encoding* can be 'bytes' to read these 8-bit string instances as bytes objects. Nr) r[Ú_buffersr–Ú_file_readliner’Ú _file_readrÇr…r†rÈr½)r%rËr½r…r†r‡rrr r&ss' z_Unpickler.__init__c CsÂt|dƒstd|jjfƒ‚t|j|jƒ|_|jj|_|jj |_ |jj |_ g|_ g|_ |j j |_ d|_|j}|j}z |dƒ}|sCt‚||d|ƒq;ty`}z |jWYd}~Sd}~ww)z‹Read a pickled object representation from the open file. Return the reconstituted object hierarchy specified in the file. rŠz4Unpickler.__init__() was not called by %s.__init__()rTr¬N)rÑrrÒrrŠrŠr‰Ú _unframerr’r�r–Ú metastackÚstackÚappendrÈròÚEOFErrorr!r#)r%r’ròÚkeyZstopinstrrr r£s2 ÿ    û€ÿz_Unpickler.loadcCs |j}|j ¡|_|jj|_|Sr")r�rŒÚpoprŽ©r%r§rrr Úpop_markÂs  z_Unpickler.pop_markcCstdƒ‚)Nz%unsupported persistent id encountered)rrrrr Úpersistent_loadÈsz_Unpickler.persistent_loadcCs:| d¡d}d|krtksntd|ƒ‚||_dS)Nr¬rzunsupported pickle protocol: %d)r’rÀrÁrÈ)r%rÈrrr Ú load_protoÍs  z_Unpickler.load_protorcCs8td| d¡ƒ\}|tjkrtd|ƒ‚|j |¡dS)Nr~ézframe size > sys.maxsize: %d)r r’r¤r rÁr‹r™r˜rrr r™Ôs  z_Unpickler.load_framecCsFz | ¡dd… d¡}Wn tytdƒ‚w| | |¡¡dS)Nr”rÝrþ)r–ÚdecodeÚUnicodeDecodeErrorrrŽr”rrrr Ú load_persidÛs ÿÿz_Unpickler.load_persidcCs|j ¡}| | |¡¡dSr")r�r‘rŽr”rrrr Úload_binpersidäs z_Unpickler.load_binpersidcCs| d¡dSr"©rŽrvrrr Ú load_noneérxz_Unpickler.load_nonecCó| d¡dS)NFr›rvrrr Ú load_falseírxz_Unpickler.load_falsecCr�)NTr›rvrrr Ú load_trueñrxz_Unpickler.load_truecCsL| ¡}|tdd…krd}n|tdd…krd}nt|dƒ}| |¡dS)Nr¬FTr)r–rrr¸rŽ)r%r…Úvalrrr Úload_intõs z_Unpickler.load_intcCó| td| d¡ƒd¡dS)Nrrr©rŽr r’rvrrr Ú load_binintóz_Unpickler.load_binintcCs| | d¡d¡dS©Nr¬r)rŽr’rvrrr Ú load_binint1sz_Unpickler.load_binint1cCr¢)NrrÏrr£rvrrr Ú load_binint2r¥z_Unpickler.load_binint2cCs@| ¡dd…}|r|ddkr|dd…}| t|dƒ¡dS)Nr”éLr)r–rŽr¸)r%r rrr Ú load_long s z_Unpickler.load_longcCs*| d¡d}| |¡}| t|ƒ¡dSr¦)r’rŽrºr“rrr Ú load_long1s z_Unpickler.load_long1cCs>td| d¡ƒ\}|dkrtdƒ‚| |¡}| t|ƒ¡dS)Nrrrz#LONG pickle has negative byte count)r r’rrŽrºr“rrr Ú load_long4s  z_Unpickler.load_long4cCs| t| ¡dd…ƒ¡dS©Nr”)rŽr~r–rvrrr Ú load_float"r¥z_Unpickler.load_floatcCr¢)Nr)r–rr£rvrrr Ú load_binfloat&r¥z_Unpickler.load_binfloatcCs|jdkr|S| |j|j¡S)Nr/)r…r—r†r$rrr Ú_decode_string*s z_Unpickler._decode_stringcCsl| ¡dd…}t|ƒdkr#|d|dkr#|ddvr#|dd…}ntdƒ‚| | t |¡d¡¡dS)Nr”rÏrs"'r¬z)the STRING opcode argument must be quoted)r–r�rrŽr°r0Ú escape_decoder‡rrr Ú load_string3s (z_Unpickler.load_stringcCs@td| d¡ƒ\}|dkrtdƒ‚| |¡}| | |¡¡dS)Nrrrz(BINSTRING pickle has negative byte count)r r’rrŽr°©r%r�r…rrr Úload_binstring=s  z_Unpickler.load_binstringcCó:td| d¡ƒ\}|tkrtdtƒ‚| | |¡¡dS)NrÜrz2BINBYTES exceeds system's maximum size of %d bytes©r r’r rrŽ©r%r�rrr Ú load_binbytesFó ÿz_Unpickler.load_binbytescCs | t| ¡dd…dƒ¡dS)Nr”rI)rŽrör–rvrrr Ú load_unicodeNs z_Unpickler.load_unicodecCóBtd| d¡ƒ\}|tkrtdtƒ‚| t| |¡ddƒ¡dS)NrÜrz4BINUNICODE exceeds system's maximum size of %d bytesrBrC©r r’r rrŽrör·rrr Úload_binunicodeRó ÿz_Unpickler.load_binunicodecCr»)Nr~r–z5BINUNICODE8 exceeds system's maximum size of %d bytesrBrCr¼r·rrr Úload_binunicode8Zr¾z_Unpickler.load_binunicode8cCrµ)Nr~r–z3BINBYTES8 exceeds system's maximum size of %d bytesr¶r·rrr Úload_binbytes8br¹z_Unpickler.load_binbytes8cCsFtd| d¡ƒ\}|tkrtdtƒ‚t|ƒ}| |¡| |¡dS)Nr~r–z4BYTEARRAY8 exceeds system's maximum size of %d bytes)r r’r rr6r�rŽ)r%r�Úbrrr Úload_bytearray8jsÿ z_Unpickler.load_bytearray8cCsF|jdur tdƒ‚zt|jƒ}Wn tytdƒ‚w| |¡dS)NzLpickle stream refers to out-of-band data but no *buffers* argument was givenznot enough out-of-band buffers)rˆrÚnextÚ StopIterationrŽ)r%r�rrr Úload_next_bufferts  ÿz_Unpickler.load_next_buffercCs\|jd}t|ƒ�}|js| ¡|jd<WdƒdSWdƒdS1s'wYdSr­)r�Ú memoryviewr<Ú toreadonly)r%r�r@rrr Úload_readonly_buffers  þ"ÿz_Unpickler.load_readonly_buffercCs,| d¡d}| |¡}| | |¡¡dSr¦)r’rŽr°r³rrr Úload_short_binstring†s z_Unpickler.load_short_binstringcCs"| d¡d}| | |¡¡dSr¦)r’rŽr·rrr Úload_short_binbytesŒsz_Unpickler.load_short_binbytescCs*| d¡d}| t| |¡ddƒ¡dS)Nr¬rrBrC)r’rŽrör·rrr Úload_short_binunicode‘sz _Unpickler.load_short_binunicodecCó| ¡}| t|ƒ¡dSr")r“rŽr÷r’rrr Ú load_tuple–óz_Unpickler.load_tuplecCr�)Nrr›rvrrr Úload_empty_tuple›rxz_Unpickler.load_empty_tuplecCs|jdf|jd<dSr­©r�rvrrr Ú load_tuple1Ÿsz_Unpickler.load_tuple1cCs$|jd|jdfg|jdd…<dS)Nr±r”rÐrvrrr Ú load_tuple2£s$z_Unpickler.load_tuple2cCs,|jd|jd|jdfg|jdd…<dS)Néýÿÿÿr±r”rÐrvrrr Ú load_tuple3§s,z_Unpickler.load_tuple3cCs| g¡dSr"r›rvrrr Úload_empty_list«rxz_Unpickler.load_empty_listcCs| i¡dSr"r›rvrrr Úload_empty_dictionary¯rxz _Unpickler.load_empty_dictionarycCs| tƒ¡dSr")rŽrhrvrrr Úload_empty_set³sz_Unpickler.load_empty_setcCrÌr")r“rŽrmr’rrr Úload_frozenset·rÎz_Unpickler.load_frozensetcCs| ¡}| |¡dSr")r“rŽr’rrr Ú load_list¼sz_Unpickler.load_listcs4| ¡‰‡fdd„tdtˆƒdƒDƒ}| |¡dS)Ncsi|] }ˆ|ˆ|d“qS)r¬r)rnré©r§rr Ú Ãsÿz(_Unpickler.load_dict..rrÏ)r“Úranger�rŽ)r%ÚdrrÚr Ú load_dictÁs  ÿz_Unpickler.load_dictc Csv|s t|tƒr t|dƒr/z||Ž}Wn!ty.}ztd|jt|ƒft ¡dƒ‚d}~ww| |¡}|  |¡dS)NZ__getinitargs__zin constructor for %s: %srÏ) rõrñrÑrÄrrör¤Úexc_inforrŽ)r%Úklassrr#Úerrrrr Ú _instantiateÍsÿ  ÿ ÿ€ÿ z_Unpickler._instantiatecCsL| ¡dd… d¡}| ¡dd… d¡}| ||¡}| || ¡¡dS)Nr”rÝ)r–r—Ú find_classrâr“©r%r©r ràrrr Ú load_instÙs z_Unpickler.load_instcCs"| ¡}| d¡}| ||¡dS©Nr)r“r‘râ)r%rrrrr Úload_objàs z_Unpickler.load_objcCs4|j ¡}|j ¡}|j|g|¢RŽ}| |¡dSr"©r�r‘rrŽ)r%rrrŸrrr Ú load_newobjçs  z_Unpickler.load_newobjcCsD|j ¡}|j ¡}|j ¡}|j|g|¢Ri|¤Ž}| |¡dSr"rè)r%rrrrŸrrr Úload_newobj_exîs   z_Unpickler.load_newobj_excCsF| ¡dd… d¡}| ¡dd… d¡}| ||¡}| |¡dS)Nr”rB)r–r—rãrŽrärrr Ú load_globalös z_Unpickler.load_globalcCsJ|j ¡}|j ¡}t|ƒtust|ƒturtdƒ‚| | ||¡¡dS)NzSTACK_GLOBAL requires str)r�r‘rñrörrŽrã)r%r r©rrr Úload_stack_globalýs  z_Unpickler.load_stack_globalcCs| d¡d}| |¡dSr¦)r’Ú get_extension©r%r|rrr Ú load_ext1sz_Unpickler.load_ext1cCó td| d¡ƒ\}| |¡dS)NrrÏ©r r’rírîrrr Ú load_ext2 óz_Unpickler.load_ext2cCrð)Nrrrñrîrrr Ú load_ext4róz_Unpickler.load_ext4cCspg}t ||¡}||ur| |¡dSt |¡}|s(|dkr"tdƒ‚td|ƒ‚|j|Ž}|t|<| |¡dS)NrzEXT specifies code <= 0zunregistered extension code %d)rrêrŽrrrÁrã)r%r|ZnilrŸr�rrr rís     z_Unpickler.get_extensioncCsŽt d||¡|jdkr*|jr*||ftjvr tj||f\}}n |tjvr*tj|}t|dd�|jdkr?ttj ||ƒdSt tj ||ƒS)Nzpickle.find_classr«rrpr) r¤ÚauditrÈr½r{Z NAME_MAPPINGZIMPORT_MAPPINGrrr¢r¥rž)r%r©r rrr rã$s    z_Unpickler.find_classcCs&|j}| ¡}|d}||Ž|d<dSr­©r�r‘)r%r�rrrrr Ú load_reduce2sz_Unpickler.load_reducecCs|jr |jd=dS| ¡dSr­)r�r“rvrrr Úload_pop9s  z_Unpickler.load_popcCs | ¡dSr")r“rvrrr Ú load_pop_mark@s z_Unpickler.load_pop_markcCs| |jd¡dSr­)rŽr�rvrrr Úload_dupDsz_Unpickler.load_dupcCsNt| ¡dd…ƒ}z | |j|¡WdSty&d|›�}t|ƒd‚w)Nr”úMemo value not found at index )r¸r–rŽrÇrtr)r%réÚmsgrrr Úload_getHs   þz_Unpickler.load_getc CsR| d¡d}z | |j|¡WdSty(}z d|›�}t|ƒd‚d}~ww)Nr¬rrû)r’rŽrÇrtr©r%réÚexcrürrr Ú load_bingetQs  €þz_Unpickler.load_bingetc CsVtd| d¡ƒ\}z | |j|¡WdSty*}z d|›�}t|ƒd‚d}~ww)NrÜrrû)r r’rŽrÇrtrrþrrr Úload_long_bingetZs  €þz_Unpickler.load_long_bingetcCs8t| ¡dd…ƒ}|dkrtdƒ‚|jd|j|<dS)Nr”rznegative PUT argument)r¸r–rÁr�rÇrèrrr Úload_putcsz_Unpickler.load_putcCs2| d¡d}|dkrtdƒ‚|jd|j|<dS)Nr¬rznegative BINPUT argumentr”)r’rÁr�rÇrèrrr Ú load_binputjsz_Unpickler.load_binputcCs6td| d¡ƒ\}|tkrtdƒ‚|jd|j|<dS)NrÜrznegative LONG_BINPUT argumentr”)r r’r rÁr�rÇrèrrr Úload_long_binputqsz_Unpickler.load_long_binputcCs|j}|jd|t|ƒ<dSr­)rÇr�r�)r%rÇrrr Ú load_memoizexsz_Unpickler.load_memoizecCs$|j}| ¡}|d}| |¡dSr­)r�r‘rŽ)r%r�r#r\rrr Ú load_append}sz_Unpickler.load_appendcCsX| ¡}|jd}z|j}Wn tyYnw||ƒdS|j}|D]}||ƒq#dSr­)r“r�ÚextendrœrŽ)r%r§Zlist_objrrŽrkrrr Ú load_appends„s   ÿ ÿz_Unpickler.load_appendscCs*|j}| ¡}| ¡}|d}|||<dSr­rö)r%r�r#r�r€rrr Ú load_setitem–s  z_Unpickler.load_setitemcCs@| ¡}|jd}tdt|ƒdƒD] }||d|||<qdS)Nr”rrÏr¬)r“r�rÜr�)r%r§r€rérrr Ú load_setitemsžs  ÿz_Unpickler.load_setitemscCsF| ¡}|jd}t|tƒr| |¡dS|j}|D]}||ƒqdSr­)r“r�rõrhÚupdateÚadd)r%r§Zset_objr rkrrr Ú load_additems¥s   ÿz_Unpickler.load_additemsc CsÆ|j}| ¡}|d}t|ddƒ}|dur||ƒdSd}t|tƒr,t|ƒdkr,|\}}|rN|j}tj}|  ¡D]\}} t |ƒt urI| |||ƒ<q8| ||<q8|r_|  ¡D] \}} t ||| ƒqTdSdS)Nr”Ú __setstate__rÏ) r�r‘ržrõr÷r�Ú__dict__r¤Úinternr§rñröÚsetattr) r%r�rÚinstÚsetstateZ slotstateZ inst_dictrrfrgrrr Ú load_build°s,   þz_Unpickler.load_buildcCs"|j |j¡g|_|jj|_dSr")rŒrŽr�rvrrr Ú load_markÈsz_Unpickler.load_markcCs|j ¡}t|ƒ‚r")r�r‘r!r$rrr Ú load_stopÎs z_Unpickler.load_stop)”rrrr&rr“r”ròr•rÓr™rƒr™rršrÿrœrržrrŸrr¡r%r¤r"r§r r¨r!rªr&r«r#r¬r$r®r+r¯r*r°r²ÚSTRINGr´Ú BINSTRINGr¸r3rºrNr½rLr¿rKrÀr2rÂr7rÅr>rÈr?rÉÚSHORT_BINSTRINGrÊr1rËrJrÍrRrÏrPrÑÚTUPLE1rÒrrÔÚTUPLE3rÕrVrÖrar×rirØrnrÙrWrÞrbrâråÚINSTrçÚOBJrér rêr rërzrìryrïruròrvrôrwrírãr÷r rør rùrTrúÚDUPrýrçrrårrærrârràrrárrßrrZrr^r rdr rer rjrrrrQrrÕrrrr r�qs( ÿ0                                                                   r�r¼cCst||||d� |¡dS©Nr¼)r»r)rŸrËrÌr½r¾rrr Ú_dumpÖsÿ r cCs*t ¡}t||||d� |¡| ¡}|Sr)rtrur»rÚgetvalue)rŸrÌr½r¾r„Úresrrr Ú_dumpsÚsÿr#r‚rƒr„cCst|||||d� ¡S)N©r½r‡r…r†)r�r)rËr½r…r†r‡rrr Ú_loadâs ÿÿr%cCs2t|tƒr tdƒ‚t |¡}t|||||d� ¡S)Nz%Can't load pickle from unicode stringr$)rõrörÄrtrur�r)Úsr½r…r†r‡rËrrr Ú_loadsçs  ÿÿr'cCsddl}| ¡Sræ)ÚdoctestZtestmod)r(rrr Ú_testsr)r£z$display contents of the pickle files)Ú descriptionÚ pickle_fileÚbrÚ*zthe pickle file)rñÚnargsÚhelpz-tz--testÚ store_truezrun self-test suite)Úactionr/z-vz)run verbosely; only affects self-test runr")“rÚtypesrÚcopyregrrrrÚ itertoolsrÚ functoolsrr¤r Zstructr r rlrtr0r{Ú__all__Ú_picklerrŽrrsr/r6Z bytes_typesZformat_versionZcompatible_formatsrÀr¿Ú Exceptionr r rr!Zorg.python.corer'rQrÕr rTrr+r%r"r r&r!rrrÿr rrrrNrLrZrrzrbrar^rçrårrærWrVrrâràrárdrRrPrer*rrrÓr rurvrwrrrrrr#r$rSr3r1rJrKr2rirjrnr ryrßrƒr7r>r?rÚdirrqrŠr¢rªr·rºr»r�r r#r%r'rrrrrrr)rÚargparseÚArgumentParserÚparserÚ add_argumentZFileTypeÚ parse_argsrÚtestr+Z print_helpZpprintr„rŸrrrr ÚsN        ÿ   ÿ ?; _i ÿ ÿ 0 þ ÿ þþþ   é