mς TγΈEc@s{dkZdkZdkZdklZlZdklZdkZdk l Z dk Z dk Z dk lZddddd d d d d dddddddgZeƒZd„Zd„ZddZeidjpt‚d„Zd„ZeZd„Zdeeieid„Zd„ZeZeZ d„Z!d ei"d!ƒZ#d"„Z$d#„Z%defd$„ƒYZ&dS(%N(spacksunpack(shexlify(sStringIO(s TimeStamptz64tp64tu64tU64tcpt newTimeStamptoid_reprt serial_reprttid_reprt positive_idtreadable_tid_reprtWeakSettDEPRECATED_ARGUMENTt deprecated37t deprecated38tget_pickle_metadatacCstid|tddƒdS(Ns$This will be removed in ZODB 3.7: %st stackleveli(twarningstwarntmsgtDeprecationWarning(R((t)/data/zmath/zope/lib/python/ZODB/utils.pyR 9s cCstid|tddƒdS(Ns$This will be removed in ZODB 3.8: %sRi(RRRR(R((RR@s tiicCs td|ƒS(s,Pack an integer or long into a 8-byte strings>QN(tpacktv(R((RRKscCstd|ƒdS(s3Unpack an 8-byte string into a 64-bit long integer.s>QiN(tunpackR(R((RROscCsz|i}|i}d}x[|djoM||jo |}n||ƒ}|pPn||ƒ|t|ƒ}qWdS(Ni i(tf1treadtf2twritetntltdtlen(RRRR RRR((RRUs       cCsL|ƒ}|||ƒd |dfƒ}|dj o|i|ƒSn|S(Nii<(ttimettt TimeStamptgmtimettstoldtNonet laterThan(R'R$R"R%R&R#((RRds  ! cCsˆt|tƒojt|ƒdjoWt|ƒidƒ}t|ƒd@od|}n|djo d}nd|Sn t|ƒSdS(Nit0itt00t0x(t isinstancetoidtstrR!thexlifytlstriptas_hextrepr(R/R3((RRns#   cCsMt|ƒ}t|tƒo-t|ƒdjod|t|ƒf}n|S(Nis%s %s(RttidtresultR.R0R!R$(R5R6((RR s #itPcCs?t|ƒ}|djo"|t7}|djpt‚n|S(s)Return id(obj) as a non-negative integer.iN(tidtobjR6t _ADDRESS_MASKtAssertionError(R9R6((RR ‘s    c Cs(|idƒo d}n!|idƒo d}nd}|o3|iddƒ\}}}||}||fSnt|ƒ}t i |ƒ}y|i ƒ}Wn"tj o}dG|GHd SnXt|tƒo8t|dtƒo|d\}}q|\}}nt|ƒ}d}||fS( Ns(citciis tErrorR+(R+R+(tdatat startswitht global_prefixtsplittmodnamet classnametresttStringIOtftpicklet Unpicklertutloadt class_infot ExceptionterrR.ttupleR4( R>R@RBRMRFRKRDRCRI((RR‘s.       cBsMtZdZd„Zd„Zd„Zd„Zd„Zd„Zd„Z RS(sΧA set of objects that doesn't keep its elements alive. The objects in the set must be weakly referencable. The objects need not be hashable, and need not support comparison. Two objects are considered to be the same iff their id()s are equal. When the only references to an object are weak references (including those from WeakSets), the object can be garbage-collected, and will vanish from any WeakSets it may be a member of at that time. cCstiƒ|_dS(N(tweakreftWeakValueDictionarytselfR>(RQ((Rt__init__ΪscCs t|iƒS(N(R!RQR>(RQ((Rt__len__ίscCst|ƒ|ijS(N(R8R9RQR>(RQR9((Rt __contains__βscCs||it|ƒR8(RQR9((RtaddζscCs|it|ƒ=dS(N(RQR>R8R9(RQR9((RtremoveλscCs?x8|iƒD]*}|ƒ}|dj o||ƒq q WdS(N(RQtas_weakref_listtwrteltR(RF(RQRFRXRY((Rtmapπs    cCs|iiiƒS(N(RQR>tvalues(RQ((RRWs( t__name__t __module__t__doc__RRRSRTRURVRZRW(((RR Ξs       ('tsysR"tstructRRtbinasciiR1tcPickleRGt cStringIORERORtpersistent.TimeStampR$t__all__tobjectR R RRt hexversionR;RRRRR(R%RRRRR tcalcsizeR:R RR (R RRRRR R`ReR R RRRR$RR_R1RRRERROR"R R:RRRGR((Rt?s8         6           -