PNG  IHDR;IDATxܻn0K )(pA 7LeG{ §㻢|ذaÆ 6lذaÆ 6lذaÆ 6lom$^yذag5bÆ 6lذaÆ 6lذa{ 6lذaÆ `}HFkm,mӪôô! x|'ܢ˟;E:9&ᶒ}{v]n&6 h_tڠ͵-ҫZ;Z$.Pkž)!o>}leQfJTu іچ\X=8Rن4`Vwl>nG^is"ms$ui?wbs[m6K4O.4%/bC%t Mז -lG6mrz2s%9s@-k9=)kB5\+͂Zsٲ Rn~GRC wIcIn7jJhۛNCS|j08yiHKֶۛkɈ+;SzL/F*\Ԕ#"5m2[S=gnaPeғL lذaÆ 6l^ḵaÆ 6lذaÆ 6lذa; _ذaÆ 6lذaÆ 6lذaÆ RIENDB` zyMa,c @sdZddlmZmZmZmZmZmZmZddl m Z m Z ddl Z eefZ ddddd d d d d ddg ZGddde jZGdddeZGdd d e jZdS(u{Weak reference support for Python. This module is an implementation of PEP 205: http://www.python.org/dev/peps/pep-0205/ i(ugetweakrefcountu getweakrefsurefuproxyuCallableProxyTypeu ProxyTypeu ReferenceType(uWeakSetu_IterationGuardNurefuproxyugetweakrefcountu getweakrefsuWeakKeyDictionaryu ReferenceTypeu ProxyTypeuCallableProxyTypeu ProxyTypesuWeakValueDictionaryuWeakSetcBs|EeZdZdZddZddZddZdd Zd d Zd d Z ddZ ddZ ddZ e Z ddZd*ddZddZddZeZddZddZd d!Zd"d#Zd*d$d%Zd*d&d'Zd(d)Zd*S(+uWeakValueDictionaryuMapping class that references values weakly. Entries in the dictionary will be discarded when no strong reference to the value exists anymore cOsTt|dd}||_g|_t|_i|_}|j||dS(NcSsH|}|dk rD|jr4|jj|jqD|j|j=ndS(N(uNoneu _iteratingu_pending_removalsuappendukeyudata(uwruselfrefuself((u,/opt/alt/python33/lib64/python3.3/weakref.pyuremove.s    u,WeakValueDictionary.__init__..remove(urefu_removeu_pending_removalsusetu _iteratingudatauupdate(uselfuargsukwuremoveud((u,/opt/alt/python33/lib64/python3.3/weakref.pyu__init__-s     uWeakValueDictionary.__init__cCs0|j}|j}x|r+||j=qWdS(N(u_pending_removalsudataupop(uselfulud((u,/opt/alt/python33/lib64/python3.3/weakref.pyu_commit_removals<s   u$WeakValueDictionary._commit_removalscCs3|j|}|dkr+t|n|SdS(N(udatauNoneuKeyError(uselfukeyuo((u,/opt/alt/python33/lib64/python3.3/weakref.pyu __getitem__Ds uWeakValueDictionary.__getitem__cCs$|jr|jn|j|=dS(N(u_pending_removalsu_commit_removalsudata(uselfukey((u,/opt/alt/python33/lib64/python3.3/weakref.pyu __delitem__Ks  uWeakValueDictionary.__delitem__cCst|jt|jS(N(ulenudatau_pending_removals(uself((u,/opt/alt/python33/lib64/python3.3/weakref.pyu__len__PsuWeakValueDictionary.__len__c Cs7y|j|}Wntk r,dSYnX|dk S(NF(udatauKeyErroruFalseuNone(uselfukeyuo((u,/opt/alt/python33/lib64/python3.3/weakref.pyu __contains__Ss   u WeakValueDictionary.__contains__cCsdt|S(Nu(uid(uself((u,/opt/alt/python33/lib64/python3.3/weakref.pyu__repr__ZsuWeakValueDictionary.__repr__cCs6|jr|jnt||j||j||EeZdZdZdZddZfddZS(uKeyedRefu[Specialized reference that includes a key corresponding to the value. This is used in the WeakValueDictionary to avoid having to create a function object for each key stored in the mapping. A shared callback object can use the 'key' attribute of a KeyedRef instead of getting a reference to the key from an enclosing scope. ukeycCs"tj|||}||_|S(N(urefu__new__ukey(utypeuobucallbackukeyuself((u,/opt/alt/python33/lib64/python3.3/weakref.pyu__new__s uKeyedRef.__new__cstj||dS(N(usuperu__init__(uselfuobucallbackukey(u __class__(u,/opt/alt/python33/lib64/python3.3/weakref.pyu__init__suKeyedRef.__init__(ukey(u__name__u __module__u __qualname__u__doc__u __slots__u__new__u__init__(u __locals__((u __class__u,/opt/alt/python33/lib64/python3.3/weakref.pyuKeyedRefs uKeyedRefcBs|EeZdZdZd(ddZddZddZdd Zd d Z d d Z ddZ ddZ e Z ddZd(ddZddZddZddZeZddZddZd d!Zd"d#Zd(d$d%Zd(d&d'Zd(S()uWeakKeyDictionaryu Mapping class that references keys weakly. Entries in the dictionary will be discarded when there is no longer a strong reference to the key. This can be used to associate additional data with an object owned by other parts of an application without adding attributes to those objects. This can be especially useful with objects that override attribute accesses. cCs\i|_t|dd}||_g|_t|_|dk rX|j|ndS(NcSsB|}|dk r>|jr1|jj|q>|j|=ndS(N(uNoneu _iteratingu_pending_removalsuappendudata(ukuselfrefuself((u,/opt/alt/python33/lib64/python3.3/weakref.pyuremoves    u*WeakKeyDictionary.__init__..remove(udataurefu_removeu_pending_removalsusetu _iteratinguNoneuupdate(uselfudicturemove((u,/opt/alt/python33/lib64/python3.3/weakref.pyu__init__s     uWeakKeyDictionary.__init__c CsI|j}|j}x0|rDy||j=Wqtk r@YqXqWdS(N(u_pending_removalsudataupopuKeyError(uselfulud((u,/opt/alt/python33/lib64/python3.3/weakref.pyu_commit_removalss    u"WeakKeyDictionary._commit_removalscCs|jt|=dS(N(udatauref(uselfukey((u,/opt/alt/python33/lib64/python3.3/weakref.pyu __delitem__suWeakKeyDictionary.__delitem__cCs|jt|S(N(udatauref(uselfukey((u,/opt/alt/python33/lib64/python3.3/weakref.pyu __getitem__!suWeakKeyDictionary.__getitem__cCst|jt|jS(N(ulenudatau_pending_removals(uself((u,/opt/alt/python33/lib64/python3.3/weakref.pyu__len__$suWeakKeyDictionary.__len__cCsdt|S(Nu(uid(uself((u,/opt/alt/python33/lib64/python3.3/weakref.pyu__repr__'suWeakKeyDictionary.__repr__cCs||jt||jx7|jj\}}|}|dk r||fSqdS(N(udataupopitemuNone(uselfukeyuvalueuo((u,/opt/alt/python33/lib64/python3.3/weakref.pyupopitemls   uWeakKeyDictionary.popitemcGs|jjt||S(N(udataupopuref(uselfukeyuargs((u,/opt/alt/python33/lib64/python3.3/weakref.pyupopssuWeakKeyDictionary.popcCs|jjt||j|S(N(udatau setdefaulturefu_remove(uselfukeyudefault((u,/opt/alt/python33/lib64/python3.3/weakref.pyu setdefaultvsuWeakKeyDictionary.setdefaultcKs|j}|dk rot|ds9ti|}nx3|jD]"\}}||t||js4