a ‚oeã @s¾ddlmZzddlmZWnBey^zddlmZWneyXddlmZYn0Yn0eƒZGdd„deƒZ Gdd„de ƒZ dd „e j Dƒe _ Gd d „d e ƒZd d „ej Dƒe_ d S)é)ÚRLock)ÚMapping)Ú DictMixinc@s<eZdZdZdZdd„Zdd„Zdd„Zd d „Zd d „Z dS) ÚLazyDictz"Dictionary populated on first use.NcCsJ|jdur.LazyListN©rrrrrrrr[srcs‡‡‡‡fdd„}|S)Ncsnt ¡z>tˆƒdkr.lazy.._lazyr©rIrJ©rrGrH©rIrÚlazy`s zLazyList.__new__..lazy)r@rAÚsetattr)rGrHrNrIZnew_listrrLrÚ__new__Ts zLazyList.__new__)N©rrrrrArPrrrrrGs rcCsg|]}tt|ƒr|‘qSr)Úhasattrr@©Ú.0ZproprrrÚ vórUc@seZdZdZdZddd„ZdS)ÚLazySetzSet populated on first use.)0rr r!r"r#r$r%r&r'r(r)r*rrr:rr;r<rÚ__sub__Ú__and__Ú__xor__Ú__or__Ú__rsub__Ú__rand__Ú__rxor__Ú__ror__Ú__isub__Ú__iand__Ú__ixor__Ú__ior__ÚaddÚclearÚcopyÚ differenceÚdifference_updateÚdiscardÚ intersectionÚintersection_updateÚ isdisjointÚissubsetÚ issupersetr0r1Úsymmetric_differenceÚsymmetric_difference_updateÚunionÚupdateNcsZˆdurtƒSGdd„dtƒ‰ˆg‰‡‡‡fdd„}ˆjD]}tˆ|||ƒƒq:ˆƒ}|S)Nc@s eZdZdS)z LazySet.__new__..LazySetNr>rrrrrW�srWcs‡‡‡‡fdd„}|S)Ncsxt ¡zHtˆƒdkrFˆ ¡D]}t ||¡qˆjD]}tˆ|ƒq6Wt ¡n t ¡0t tˆƒ|g|¢Ri|¤ŽSr?) rr rr0ÚsetrdrArBr rC)rrDrEÚirF)rWrGrHrIrrrJ–s   z,LazySet.__new__..lazy.._lazyrrK©rWrGrHrMrrN•s zLazySet.__new__..lazy)rsrArO)rGrHrNrIZnew_setrrurrP‹s zLazySet.__new__)NrQrrrrrWysrWcCsg|]}tt|ƒr|‘qSr)rRrsrSrrrrU¬rVN)Ú threadingrÚcollections.abcrrÚ ImportErrorÚUserDictÚ collectionsrrr@rrArsrWrrrrÚs   7/3