ó ™¢IhÍãóB•Sr/SQrSSKrSSKr\\R S'\rSSKJr SSKJ r SSKJ r SSKJr SS KJr SS KJr SS KJr SS KJr SS KJr \R<R?\5 SSKJ!r! SSKJ"r" "SS\RF5r$"SS\RJ5r&"SS\RN5r("SS\)5r*"SS\+5r,SSKJ,r, SSKJ-r- SSSS.Sjr.S r/SS!KJ/r/ "S"S#\+5r0"S$S%\Rb5r2"S&S'\Rb5r3"S(S)\R<5r4"S*S+\Rj5r6g!\ a Nìf=f!\ a Nñf=f!\ a Nöf=f!\ a N¦f=f!\ a Sr-N®f=f!\ a N§f=f),a?This module implements specialized container datatypes providing alternatives to Python's general purpose built-in containers, dict, list, set, and tuple. * namedtuple factory function for creating tuple subclasses with named fields * deque list-like container with fast appends and pops on either end * ChainMap dict-like class for creating a single view of multiple mappings * Counter dict subclass for counting hashable objects * OrderedDict dict subclass that remembers the order entries were added * defaultdict dict subclass that calls a factory function to supply missing values * UserDict wrapper around dictionary objects for easier dict subclassing * UserList wrapper around list objects for easier list subclassing * UserString wrapper around string objects for easier string subclassing ) ÚChainMapÚCounterÚ OrderedDictÚUserDictÚUserListÚ UserStringÚ defaultdictÚdequeÚ namedtupleéNzcollections.abc)Úchain)Úrepeat)Ústarmap)Ú iskeyword)Úeq)Ú itemgetter)Úrecursive_repr)Úproxy)r )Ú_deque_iterator)rcó•\rSrSrSrSrg)Ú_OrderedDictKeysViewéBc#óJ# •[UR5Shv•N gN7f©N©ÚreversedÚ_mapping©Úselfs Ú+/usr/lib/python3.13/collections/__init__.pyÚ __reversed__Ú!_OrderedDictKeysView.__reversed__Dsé€Ü˜DŸM™MÓ*×*Ó*ùs ‚#›!œ#©N©Ú__name__Ú __module__Ú __qualname__Ú__firstlineno__r Ú__static_attributes__r"órrrBs†õ+r)rcó•\rSrSrSrSrg)Ú_OrderedDictItemsViewéGc#óh# •[UR5HnXRU4v• M g7frr©rÚkeys rr Ú"_OrderedDictItemsView.__reversed__Is*é€Ü˜DŸM™MÖ*ˆCØŸ ™  cÑ*Ð+Ô +ò+ùs‚02r"Nr#r"r)rr+r+Gs†õ,r)r+có•\rSrSrSrSrg)Ú_OrderedDictValuesViewéMc#óf# •[UR5HnURUv• M g7frrr.s rr Ú#_OrderedDictValuesView.__reversed__Os'é€Ü˜DŸM™MÖ*ˆCØ—-‘- Ñ$Ô $ò+ùs‚/1r"Nr#r"r)rr2r2Ms†õ%r)r2có•\rSrSrSrSrg)Ú_LinkéS)ÚprevÚnextr/Ú __weakref__r"N)r$r%r&r'Ú __slots__r(r"r)rr7r7Ss†Ø4ƒIr)r7có|•\rSrSrSrSrSSjr\R\ \ 4Sjr\R4Sjr Sr Sr S rSS jrSS jrS r\R&R(=rrS rSrSr\R&R2r\"5r\4SjrSSjr\"5S5rSr Sr!\"SSj5r#Sr$Sr%Sr&Sr'Sr(g)réVz)Dictionary that remembers insertion ordercó°•[RU5n[5Ul[ UR5=UlnU=UlUl0UlU$)zDCreate the ordered dict object and set up the underlying structures.) ÚdictÚ__new__r7Ú_OrderedDict__hardrootÚ_proxyÚ_OrderedDict__rootr9r:Ú_OrderedDict__map)ÚclsÚargsÚkwdsrÚroots rrAÚOrderedDict.__new__esH€ä�|‰|˜CÓ ˆÜ›'ˆŒÜ# D§O¡OÓ4Ð4ˆŒ �dØ $Ð$ˆŒ �D”I؈Œ ؈ r)c ó*•UR"U40UD6 g)z|Initialize an ordered dictionary. The signature is the same as regular dictionaries. Keyword argument order is preserved. N)Ú_OrderedDict__update)rÚotherrHs rÚ__init__ÚOrderedDict.__init__ns€ð � Š �eÑ$˜tÓ$r)cóÌ•X;aVU"5=URU'nURnURnX‡UsUlUlUlXhlU"U5UlU"XU5 g)z!od.__setitem__(i, y) <==> od[i]=yN)rErDr9r:r/) rr/ÚvalueÚ dict_setitemrÚLinkÚlinkrIÚlasts rÚ __setitem__ÚOrderedDict.__setitem__ts]€ð ‹?Ù%)£VÐ +ˆD�J‰J�s‰O˜dØ—;‘;ˆDØ—9‘9ˆDØ-1¸Ð *ˆDŒI�t”y $¤(ØŒIÙ˜d› ˆDŒIÙ�T Õ&r)có®•U"X5 URRU5nURnURnXTlXElSUlSUlg)z od.__delitem__(y) <==> del od[y]N)rEÚpopr9r:)rr/Ú dict_delitemrTÚ link_prevÚ link_nexts rÚ __delitem__ÚOrderedDict.__delitem__‚sH€ñ �TÔØ�z‰z�~‰~˜cÓ"ˆØ—I‘Iˆ Ø—I‘Iˆ Ø"ŒØ"ŒØˆŒ ؈� r)c#ó†# •URnURnX!La!URv• URnX!LaM gg7f)zod.__iter__() <==> iter(od)N)rDr:r/©rrIÚcurrs rÚ__iter__ÚOrderedDict.__iter__�ó9é€ð�{‰{ˆØ�y‰yˆØÒØ—(‘(ŠNØ—9‘9ˆDðÖùó ‚;A¿Ac#ó†# •URnURnX!La!URv• URnX!LaM gg7f)z#od.__reversed__() <==> reversed(od)N)rDr9r/r`s rr ÚOrderedDict.__reversed__˜rdrecó–•URnU=UlUlURR 5 [ R U5 g)z.od.clear() -> None. Remove all items from od.N)rDr9r:rEÚclearr@)rrIs rriÚOrderedDict.clear¡s5€à�{‰{ˆØ $Ð$ˆŒ �D”IØ � ‰ ×ÑÔÜ � ‰ �4Õr)có@•U(d [S5eURnU(a%URnURnX$lXBlO$URnURnXRlX%lURnUR U [ RX5nXg4$)z…Remove and return a (key, value) pair from the dictionary. Pairs are returned in LIFO order if last is true or FIFO order if false. zdictionary is empty)ÚKeyErrorrDr9r:r/rEr@rY)rrUrIrTr[r\r/rQs rÚpopitemÚOrderedDict.popitem¨s�€ö ÜÐ0Ó1Ð 1Ø�{‰{ˆÞ Ø—9‘9ˆDØŸ ™ ˆIØ!ŒNØ!�Ià—9‘9ˆDØŸ ™ ˆIØ!ŒIØ!ŒNØ�h‰hˆØ �J‰J�sˆOÜ—‘˜Ó#ˆØˆzÐr)có:•URUnURnURnURnXTlXElURnU(a%URnX#lXslXglX2lgURnXslXƒlXhlX7lg)ztMove an existing element to the end (or beginning if last is false). Raise KeyError if the element does not exist. N)rEr9r:rD) rr/rUrTr[r\Ú soft_linkrIÚfirsts rÚ move_to_endÚOrderedDict.move_to_end¿s|€ð �z‰z˜#‰ˆØ—I‘Iˆ Ø—I‘Iˆ Ø—N‘Nˆ Ø"ŒØ"ŒØ�{‰{ˆÞ Ø—9‘9ˆDØŒIØŒIØ!ŒIØ�Ià—I‘IˆEØŒIØŒIØ"ŒJØ�Ir)cóð•[Rn[U5S-nU"UR5nX1"UR5S-- nX1"UR 5U-- nX1"UR 5U-- nU$)Néé)Ú_sysÚ getsizeofÚlenÚ__dict__rErBrD)rÚsizeofÚnÚsizes rÚ __sizeof__ÚOrderedDict.__sizeof__Øss€Ü—‘ˆÜ �‹I˜‰MˆÙ�d—m‘mÓ$ˆØ ��t—z‘zÓ" QÑ&Ñ&ˆØ ��t—‘Ó'¨!Ñ+Ñ+ˆØ ��t—{‘{Ó# aÑ'Ñ'ˆØˆ r)có•[U5$)z:D.keys() -> a set-like object providing a view on D's keys)rrs rÚkeysÚOrderedDict.keysãs €ä# DÓ)Ð)r)có•[U5$)z a set-like object providing a view on D's items)r+rs rÚitemsÚOrderedDict.itemsçs €ä$ TÓ*Ð*r)có•[U5$)z6D.values() -> an object providing a view on D's values)r2rs rÚvaluesÚOrderedDict.valuesës €ä% dÓ+Ð+r)có•URn[RXU5nXCLaOURRU5nURnUR nXvlXglSUlSUlU$X#La [ U5eU$)zšod.pop(k[,d]) -> v, remove specified key and return the corresponding value. If key is not found, d is returned if given, otherwise KeyError is raised. N)Ú_OrderedDict__markerr@rYrEr9r:rl)rr/ÚdefaultÚmarkerÚresultrTr[r\s rrYÚOrderedDict.popósy€ð —‘ˆÜ—‘˜$ VÓ,ˆØ Ò à—:‘:—>‘> #Ó&ˆDØŸ ™ ˆIØŸ ™ ˆIØ&ŒNØ&ŒN؈DŒI؈DŒI؈MØ Ò Ü˜3“-Р؈r)Ncó •X;aX$X U'U$)z‰Insert key with a value of default if key is not in the dictionary. Return the value for key if key is in the dictionary, else default. r"©rr/r‹s rÚ setdefaultÚOrderedDict.setdefault s€ð ‹;Ø‘9Р؈S‰ ؈r)có®•U(dURR<S3$URR<S[UR55<S3$)zod.__repr__() <==> repr(od)ú()Ú(Ú))Ú __class__r$r@r„rs rÚ__repr__ÚOrderedDict.__repr__s:€öØ!Ÿ^™^×4Ô4Ð6Ð 6ØŸ>™>×2Ô2´D¸¿¹»Ö4FÐGÐGr)có •UR5nU(a�[U[5(aUupO0nUR5nUR5n[ [ 55H'nUR US5 UR US5 M) U(aX4nO U=(d SnURSUS[UR554$)z%Return state information for picklingNr") Ú __getstate__Ú isinstanceÚtupleÚcopyÚvarsrrYr—Úiterr„)rÚstateÚslotsÚks rÚ __reduce__ÚOrderedDict.__reduce__s¦€à×!Ñ!Ó#ˆÞ ܘ%¤×'Ñ'Ø$‘ ��uà�Ø—J‘J“LˆEØ—J‘J“LˆEÜœ+›-Ö(�Ø— ‘ ˜!˜TÔ"Ø— ‘ ˜!˜TÖ"ñ)öؘ ‘àŸ  �Ø�~‰~˜r 5¨$´°T·Z±Z³\Ó0BÐBÐBr)có$•URU5$)z!od.copy() -> a shallow copy of od©r—rs rržÚOrderedDict.copy-ó€à�~‰~˜dÓ#Ð#r)có.•U"5nUHnX#U'M U$)zYCreate a new ordered dictionary with keys from iterable and values set to value. r")rFÚiterablerQrr/s rÚfromkeysÚOrderedDict.fromkeys1s!€ñ‹uˆÛˆCØ�‹Iñàˆ r)cóÀ•[U[5(a5[RX5=(a [ [ [ X55$[RX5$)zƒod.__eq__(y) <==> od==y. Comparison to another OD is order-sensitive while comparison to a regular mapping is order-insensitive. )rœrr@Ú__eq__ÚallÚmapÚ_eq©rrMs rr¯ÚOrderedDict.__eq__:s@€ô �eœ[× )Ñ )Ü—;‘;˜tÓ+×J´´C¼¸TÓ4IÓ0JÐ JÜ�{‰{˜4Ó'Ð'r)có(•URU5 U$r)Úupdater³s rÚ__ior__ÚOrderedDict.__ior__Cs€Ø � ‰ �EÔØˆ r)có€•[U[5(d[$URU5nUR U5 U$r©rœr@ÚNotImplementedr—r¶©rrMÚnews rÚ__or__ÚOrderedDict.__or__Gs4€Ü˜%¤×&Ñ&Ü!Ð !Ø�n‰n˜TÓ"ˆØ � ‰ �5ÔØˆ r)có€•[U[5(d[$URU5nUR U5 U$rrºr¼s rÚ__ror__ÚOrderedDict.__ror__Ns4€Ü˜%¤×&Ñ&Ü!Ð !Ø�n‰n˜UÓ#ˆØ � ‰ �4ÔØˆ r))Ú __hardrootÚ__mapÚ__root)r")Tr))r$r%r&r'Ú__doc__rArNr@rVrCr7r]rbr rirmrrr~Ú_collections_abcÚMutableMappingr¶rLr�r„r‡Ú__ne__ÚobjectrŠrYr‘Ú_recursive_reprr˜r¤ržÚ classmethodr¬r¯r·r¾rÁr(r"r)rrrVsë†Ù/òô%ð"&×!1Ñ!1¸Àeô 'ð-1×,<Ñ,<ô òòòôô.ò2ð)×7Ñ7×>Ñ>Ð>€FˆXò*ò+ò,ð× ,Ñ ,× 3Ñ 3€Fá‹x€Hà'ôô,ñÓñHóðHò Cò&$ðóóðò(òòõr)r)r)Ú _tuplegettercó(•[[U5US9$)N)Údoc)ÚpropertyÚ _itemgetter)ÚindexrÏs rÚrÓds€¤h¬{¸5Ó/AÀsÒ&Kr)F)ÚrenameÚdefaultsÚmodulec óÔ^^^^^^^^^•[T[5(a TRSS5R5m[ [ [T55m[ R"[U55nU(aw[5n[T5H^upgUR5(a+[U5(dURS5(dXu;aSU3TU'URU5 M` U/T-Hcn[U5[La [S5eUR5(d[!SU<35e[U5(dMV[!SU<35e [5nTHTnURS5(aU(d[!SU<35eXu;a[!SU<35eURU5 MV 0nUbg[#U5n[%U5[%T5:”a [S 5e['[)[ [+[)T5[)U55555n[#[ [ RT55m[%T5mS R-T5n TS :XaU S- n S S R-S T55-S-m["R.m[&["[$[ [*4ummmmmT0SU3S.n SU SU S3n [1Xº5n SU lSUS U S3U lUbX>> Point = namedtuple('Point', ['x', 'y']) >>> Point.__doc__ # docstring for the new class 'Point(x, y)' >>> p = Point(11, y=22) # instantiate with positional args or keywords >>> p[0] + p[1] # indexable like a plain tuple 33 >>> x, y = p # unpack like a regular tuple >>> x, y (11, 22) >>> p.x + p.y # fields also accessible by name 33 >>> d = p._asdict() # convert to a dictionary >>> d['x'] 11 >>> Point(**d) # convert from a dictionary Point(x=11, y=22) >>> p._replace(x=100) # _replace() is like str.replace() but targets named fields Point(x=100, y=22) Ú,Ú Ú_z*Type names and field names must be stringsz6Type names and field names must be valid identifiers: z0Type names and field names cannot be a keyword: z-Field names cannot start with an underscore: z"Encountered duplicate field name: z(Got more default values than field namesú, rur•c3ó*# •UH oS3v• M g7f)z=%rNr")Ú.0Únames rÚ Únamedtuple..°sé€ÐDº °  s�|º ùs‚r–Ú namedtuple_)Ú _tuple_newÚ __builtins__r$z lambda _cls, z: _tuple_new(_cls, (z))rAzCreate new instance of cód>•T"X5nT"U5T:wa[STS[U535eU$)Nz Expected z arguments, got )Ú TypeErrorry)rFr«r�Ú_lenÚ num_fieldsÚ tuple_news €€€rÚ_makeÚnamedtuple.._makeÂs;ø€á˜3Ó)ˆÙ �‹<˜:Ó %ܘi¨  |Ð3CÄCÈÃKÀ=ÐQÓRÐ R؈ r)z Make a new z# object from a sequence or iterablecóŒ>•URT"URTU55nU(a[S[U5<35eU$)NzGot unexpected field names: )rérYråÚlist)rrHr�Ú_mapÚ field_namess €€rÚ_replaceÚnamedtuple.._replaceÌs=ø€Ø—‘™D §¡¨;¸Ó=Ó>ˆÞ ÜÐ:¼4À»:¹.ÐIÓJÐ J؈ r)z Return a new z2 object replacing specified fields with new valuescó<>•URRTU--$)z/Return a nicely formatted representation string)r—r$)rÚrepr_fmts €rr˜Únamedtuple..__repr__Õsø€à�~‰~×&Ñ&¨°D©Ñ8Ð8r)có6>•T"T"URU55$)z9Return a new dict which maps field names to their values.)Ú_fields)rÚ_dictÚ_zips €€rÚ_asdictÚnamedtuple.._asdictÙsø€á‘T˜$Ÿ,™,¨Ó-Ó.Ð.r)có>•T"U5$)z7Return self as a plain tuple. Used by copy and pickle.r")rÚ_tuples €rÚ__getnewargs__Ú"namedtuple..__getnewargs__Ýs ø€á�d‹|Ðr)Ú.r") rÆr<rõÚ_field_defaultsrAréÚ __replace__rïr˜rørüÚ__match_args__zAlias for field number Ú__main__r$)&rœÚstrÚreplaceÚsplitrìr±rwÚinternÚsetÚ enumerateÚ isidentifierÚ _iskeywordÚ startswithÚaddÚtyperåÚ ValueErrorr�ryr@rÚzipÚjoinrAÚevalr$rÆÚ __defaults__rÌÚ__func__r&rÍÚ_getframemodulenameÚAttributeErrorÚ _getframeÚ f_globalsÚgetr%)ÚtypenamerîrÔrÕrÖÚseenrÒrÞÚfield_defaultsÚarg_listÚ namespaceÚcoderArérïr˜rørüÚmethodÚclass_namespacerÏr�rörærírûr÷rçròrès ` @@@@@@@@rr r fsÿø€ô4�+œs×#Ñ#Ø!×)Ñ)¨#¨sÓ3×9Ñ9Ó;ˆ Ü”sœ3  Ó,Ó-€KÜ�{Š{œ3˜x›=Ó)€Hæ Ü‹uˆÜ$ [Ö1‰KˆEØ×%Ñ%×'Ñ'ܘd×#Ñ#Ø—?‘? 3×'Ñ'Ø“<Ø'(¨¨ [� ˜EÑ"Ø �H‰H�TŽNñ 2ð� ˜[Ô(ˆÜ �‹:œSÒ ÜÐHÓIÐ IØ× Ñ ×"Ñ"Üð-Ø-1©Hð6ó7ð 7ä �d× Ó Üð)Ø)-©ð2ó3ð 3ñ)ô ‹5€DÛˆØ �?‰?˜3× Ñ ®ÜÐLØ $™xð)ó*ð *à ‹<ÜÐAÀ$ÁÐJÓKÐ KØ �‰�Žñ ð€NØÑܘ“?ˆÜ ˆx‹=œ3˜{Ó+Ó +ÜÐFÓGÐ GÜœh¤t¬C´¸Ó0EÜ08¸Ó0Bó-Dó(EóFóGˆôœœDŸK™K¨Ó5Ó6€KÜ�[Ó!€JØ�y‰y˜Ó%€HØ�QƒØ�C‰ˆØ�T—Y‘YÑD¹ ÓDÓDÑDÀsÑJ€HÜ— ‘ €IÜ&*¬E´3¼¼SÐ&@Ñ#€Eˆ6�4˜˜tð  ØØ! ( Ð,ñ€Ið ˜8˜*Ð$8¸¸ À"Ð E€DÜ�4Ó#€GØ €GÔØ/°¨z¸¸8¸*ÀAÐF€G„OØÑØ'Ôäöóðð !,¨H¨:ð6,ð,€E‡N�NÔöð (¨ zð21ð1€HÔõ9ö/õð Ø �‰ØØØØó ˆð"*  ¨!¨F¯O©OÐ+<Ð=ˆÖñð�Z˜q   ¨!Ð,ØØØ)ØØØØØØØ(Ø%ñ €Oô! Ö-‰ ˆÜ�kŠkÐ3°E°7Ð;Ó<ˆÜ ,¨U°CÓ 8ˆ˜Óñ.ô�(œU˜H oÓ 6€Fð�~ð Ü×-Ò-¨aÓ0×>°JˆFð ÑØ"ˆÔà €Møôó ð ÜŸš¨Ó*×4Ñ4×8Ñ8¸ÀZÓP’øÜ"¤JÐ/ó Úð úð ús*Ï'PÐ Q'Ð0QÑQ#ÑQ'Ñ"Q#Ñ#Q'cóJ•URnUHnU"US5S-X'M g)z!Tally elements from the iterable.r ruN)r)Úmappingr«Ú mapping_getÚelems rÚ_count_elementsr%s(€à—+‘+€KÛˆÙ# D¨!Ó,¨qÑ0ˆ‹ òr))r%cóþ^•\rSrSrSrS!U4SjjrSrSrS!SjrSr \ S!Sj5r S!U4S jjr S!S jr S rS rU4S jrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSrSr Sr!Sr"S r#U=r$$)"ri$aDict subclass for counting hashable items. Sometimes called a bag or multiset. Elements are stored as dictionary keys and their counts are stored as dictionary values. >>> c = Counter('abcdeabcdabcaba') # count elements from a string >>> c.most_common(3) # three most common elements [('a', 5), ('b', 4), ('c', 3)] >>> sorted(c) # list all unique elements ['a', 'b', 'c', 'd', 'e'] >>> ''.join(sorted(c.elements())) # list elements with repetitions 'aaaaabbbbcccdde' >>> sum(c.values()) # total of all counts 15 >>> c['a'] # count of letter 'a' 5 >>> for elem in 'shazam': # update counts from an iterable ... c[elem] += 1 # by adding 1 to each element's count >>> c['a'] # now there are seven 'a' 7 >>> del c['b'] # remove all 'b' >>> c['b'] # now there are zero 'b' 0 >>> d = Counter('simsalabim') # make another counter >>> c.update(d) # add in the second counter >>> c['a'] # now there are nine 'a' 9 >>> c.clear() # empty the counter >>> c Counter() Note: If a count is set to zero or reduced to zero, it will remain in the counter until the entry is deleted or the counter is cleared: >>> c = Counter('aaabbc') >>> c['b'] -= 2 # reduce the count of 'b' by two >>> c.most_common() # 'b' is still in, but its count is zero [('a', 3), ('c', 1), ('b', 0)] c óH>•[TU]5 UR"U40UD6 g)aÑCreate a new, empty Counter object. And if given, count elements from an input iterable. Or, initialize the count from another mapping of elements to their counts. >>> c = Counter() # a new, empty counter >>> c = Counter('gallahad') # a new counter from an iterable >>> c = Counter({'a': 4, 'b': 2}) # a new counter from a mapping >>> c = Counter(a=4, b=2) # a new counter from keyword args N)ÚsuperrNr¶)rr«rHr—s €rrNÚCounter.__init__Ws!ø€ô ‰ÑÔØ � Š �HÑ% Ó%r)có•g)z1The count of elements not in the Counter is zero.r r"r.s rÚ __missing__ÚCounter.__missing__es€ðr)có4•[UR55$)zSum of the counts)Úsumr‡rs rÚtotalÚ Counter.totaljs€ä�4—;‘;“=Ó!Ð!r)có¢•Uc"[UR5[S5SS9$SSKnUR XR5[S5S9$)zÌList the n most common elements and their counts from the most common to the least. If n is None, then list all element counts. >>> Counter('abracadabra').most_common(3) [('a', 5), ('b', 2), ('r', 2)] NruT)r/Úreverser )r/)Úsortedr„rÑÚheapqÚnlargest)rr|r4s rÚ most_commonÚCounter.most_commonnsD€ð ‰9ܘ$Ÿ*™*›,¬K¸«NÀDÑIÐ Ió Ø�~‰~˜a§¡£´;¸q³>ˆ~ÐBÐBr)cóf•[R"[[UR 555$)a¬Iterator over elements repeating each as many times as its count. >>> c = Counter('ABCABC') >>> sorted(c.elements()) ['A', 'A', 'B', 'B', 'C', 'C'] Knuth's example for prime factors of 1836: 2**2 * 3**3 * 17**1 >>> import math >>> prime_factors = Counter({2: 2, 3: 3, 17: 1}) >>> math.prod(prime_factors.elements()) 1836 Note, if an element's count has been set to zero or is a negative number, elements() will ignore it. )Ú_chainÚ from_iterableÚ_starmapÚ_repeatr„rs rÚelementsÚCounter.elements~s"€ô&×#Ò#¤H¬W°d·j±j³lÓ$CÓDÐDr)có•[S5e)Nz@Counter.fromkeys() is undefined. Use Counter(iterable) instead.)ÚNotImplementedError)rFr«Úvs rr¬ÚCounter.fromkeys•s€ô"Ø NóPð Pr)c ó&>•Ubt[U[R5(aJU(a3URnUR 5HupEXS"US5-X'M O[ TU]U5 O [X5 U(aUR U5 gg)a‰Like dict.update() but add counts instead of replacing them. Source can be an iterable, a dictionary, or another Counter instance. >>> c = Counter('which') >>> c.update('witch') # add elements from another iterable >>> d = Counter('watch') >>> c.update(d) # add elements from another counter >>> c['h'] # four 'h' in which, witch, and watch 4 Nr )rœrÇÚMappingrr„r(r¶r%)rr«rHÚself_getr$Úcountr—s €rr¶ÚCounter.update¡s{ø€ð( Ñ Ü˜(Ô$4×$<Ñ$<×=Ñ=ÞØ#Ÿx™x�HØ'/§~¡~Ö'7™ ˜Ø%*¨X°d¸AÓ->Ñ%>˜› ò(8ô‘G‘N 8Õ,ä Ô/Þ Ø �K‰K˜Õ ð r)c ó•UbjURn[U[R5(a(UR 5HupEU"US5U- X'M OUHnU"US5S- X'M U(aUR U5 gg)a_Like dict.update() but subtracts counts instead of replacing them. Counts can be reduced below zero. Both the inputs and outputs are allowed to contain zero and negative counts. Source can be an iterable, a dictionary, or another Counter instance. >>> c = Counter('which') >>> c.subtract('witch') # subtract elements from another iterable >>> c.subtract(Counter('watch')) # subtract elements from another counter >>> c['h'] # 2 in which, minus 1 in witch, minus 1 in watch 0 >>> c['w'] # 1 in which, minus 1 in witch, minus 1 in watch -1 Nr ru)rrœrÇrDr„Úsubtract)rr«rHrEr$rFs rrIÚCounter.subtractÃs€€ð Ñ Ø—x‘xˆHܘ(Ô$4×$<Ñ$<×=Ñ=Ø#+§>¡>Ö#3‘K�DÙ!)¨$°Ó!2°UÑ!:�D“Jò$4ó%�DÙ!)¨$°Ó!2°QÑ!6�D“Jñ%æ Ø �M‰M˜$Õ ð r)có$•URU5$)zReturn a shallow copy.r§rs rržÚ Counter.copyÞr©r)có2•UR[U544$r)r—r@rs rr¤ÚCounter.__reduce__âs€Ø�~‰~¤ T£ ˜}Ð,Ð,r)có0>•X;a[TU]U5 gg)zGLike dict.__delitem__() but does not raise KeyError for missing values.N)r(r])rr$r—s €rr]ÚCounter.__delitem__åsø€à ‹<Ü ‰GÑ  Õ %ð r)cóæ•U(dURRS3$[UR55nURRSU<S3$![a [U5nN4f=f)Nr”r•r–)r—r$r@r6rå)rÚds rr˜ÚCounter.__repr__êso€ÞØ—n‘n×-Ñ-Ð.¨bÐ1Ð 1ð ä�T×%Ñ%Ó'Ó(ˆAð—.‘.×)Ñ)Ð*¨!¨A©5°Ð2Ð2øôó ä�T“ ŠAð ús¢AÁA0Á/A0cól^^•[T[5(d[$[UU4SjTT455$)z=True if all counts agree. Missing counts are treated as zero.c3óL># •UHoHnTUTU:Hv• M M g7frr"©rÝÚcÚerMrs €€rrßÚ!Counter.__eq__..ó'øé€ÐI² ¨1ÃqÀ!�4˜‘7˜e A™hÖ&ÁqÑ&² ùóƒ!$©rœrr»r°r³s``rr¯ÚCounter.__eq__ó+ù€ä˜%¤×)Ñ)Ü!Ð !ÜÕI°°u± ÓIÓIÐIr)cóB•[U[5(d[$X:X+$)z@True if any counts disagree. Missing counts are treated as zero.©rœrr»r³s rrÉÚCounter.__ne__s€ä˜%¤×)Ñ)Ü!Ð !ØÒ Ð r)cól^^•[T[5(d[$[UU4SjTT455$)z:True if all counts in self are a subset of those in other.c3óL># •UHoHnTUTU:*v• M M g7frr"rVs €€rrßÚ!Counter.__le__..'rZr[r\r³s``rÚ__le__ÚCounter.__le__#r^r)cóV•[U[5(d[$X:*=(a X:g$)zATrue if all counts in self are a proper subset of those in other.r`r³s rÚ__lt__ÚCounter.__lt__)ó$€ä˜%¤×)Ñ)Ü!Ð !؉}×. ¡Ð.r)cól^^•[T[5(d[$[UU4SjTT455$)z# •UHoHnTUTU:¬v• M M g7frr"rVs €€rrßÚ!Counter.__ge__..3rZr[r\r³s``rÚ__ge__ÚCounter.__ge__/r^r)cóV•[U[5(d[$X:¬=(a X:g$)zCTrue if all counts in self are a proper superset of those in other.r`r³s rÚ__gt__ÚCounter.__gt__5rjr)có•[U[5(d[$[5nUR5Hup4XAU-nUS:”dMXRU'M UR5Hup4X0;dM US:”dMXBU'M U$)zgAdd counts from two counters. >>> Counter('abbb') + Counter('bcc') Counter({'b': 4, 'c': 2, 'a': 1}) r ©rœrr»r„©rrMr�r$rFÚnewcounts rÚ__add__ÚCounter.__add__;sx€ô˜%¤×)Ñ)Ü!Ð !Ü“ˆØŸ:™:ž<‰KˆDØ T™{Ñ*ˆHؘ!�|Ø'�t“ ñ(ð!Ÿ;™;ž=‰KˆDØÕ E¨A¥IØ$�t“ ñ)ðˆ r)có•[U[5(d[$[5nUR5Hup4XAU- nUS:”dMXRU'M UR5Hup4X0;dM US:dMSU- X#'M U$)zSubtract count, but keep only results with positive counts. >>> Counter('abbbc') - Counter('bccd') Counter({'b': 2, 'a': 1}) r rtrus rÚ__sub__ÚCounter.__sub__Ns|€ô˜%¤×)Ñ)Ü!Ð !Ü“ˆØŸ:™:ž<‰KˆDØ T™{Ñ*ˆHؘ!�|Ø'�t“ ñ(ð!Ÿ;™;ž=‰KˆDØÕ E¨A¥IØ  5™y�“ ñ)ðˆ r)có •[U[5(d[$[5nUR5Hup4XnXE:aUOUnUS:”dMXbU'M UR5Hup4X0;dM US:”dMXBU'M U$)zˆUnion is the maximum of value in either of the input counters. >>> Counter('abbb') | Counter('bcc') Counter({'b': 3, 'c': 2, 'a': 1}) r rt©rrMr�r$rFÚ other_countrvs rr¾ÚCounter.__or__as€ô˜%¤×)Ñ)Ü!Ð !Ü“ˆØŸ:™:ž<‰KˆDØ™+ˆKØ&+Ó&9‘{¸uˆHؘ!�|Ø'�t“ ñ (ð !Ÿ;™;ž=‰KˆDØÕ E¨A¥IØ$�t“ ñ)ðˆ r)có´•[U[5(d[$[5nUR5Hup4XnXE:aUOUnUS:”dMXbU'M U$)znIntersection is the minimum of corresponding counts. >>> Counter('abbb') & Counter('bcc') Counter({'b': 1}) r rtr}s rÚ__and__ÚCounter.__and__usX€ô˜%¤×)Ñ)Ü!Ð !Ü“ˆØŸ:™:ž<‰KˆDØ™+ˆKØ %Ó 3‘u¸ˆHؘ!�|Ø'�t“ ñ (ð ˆ r)cód•[5nUR5Hup#US:”dM X1U'M U$)zEAdds an empty counter, effectively stripping negative and zero countsr ©rr„©rr�r$rFs rÚ__pos__ÚCounter.__pos__†s0€ä“ˆØŸ:™:ž<‰KˆDØ�q�yØ$�t“ ñ(ðˆ r)cój•[5nUR5Hup#US:dM SU- X'M U$)zkSubtracts from an empty counter. Strips positive and zero counts, and flips the sign on negative counts. r r„r…s rÚ__neg__ÚCounter.__neg__Žs6€ô “ˆØŸ:™:ž<‰KˆDØ�q�yØ  5™y�“ ñ(ðˆ r)có€•UR5VVs/sHupUS:”aM UPM nnnUHnX M U$s snnf)z?Internal method to strip elements with a negative or zero countr )r„)rr$rFÚ nonpositives rÚ_keep_positiveÚCounter._keep_positive™s>€à/3¯z©z¬|ÔMª|¡  À5È1Á9—t©|ˆ ÑMÛˆDØ’ ñ àˆ ùóNs” :¤:cól•UR5Hup#X==U- ss'M UR5$)zšInplace add from another counter, keeping only positive counts. >>> c = Counter('abbb') >>> c += Counter('bcc') >>> c Counter({'b': 4, 'c': 2, 'a': 1}) ©r„r�©rrMr$rFs rÚ__iadd__ÚCounter.__iadd__ ó1€ð!Ÿ;™;ž=‰KˆDØ ‹J˜%Ñ �Jñ)à×"Ñ"Ó$Ð$r)cól•UR5Hup#X==U-ss'M UR5$)zšInplace subtract counter, but keep only results with positive counts. >>> c = Counter('abbbc') >>> c -= Counter('bccd') >>> c Counter({'b': 2, 'a': 1}) r�r‘s rÚ__isub__ÚCounter.__isub__­r”r)cór•UR5Hup#XnX4:”dMX0U'M UR5$)z•Inplace union is the maximum of value from either counter. >>> c = Counter('abbb') >>> c |= Counter('bcc') >>> c Counter({'b': 3, 'c': 2, 'a': 1}) r�)rrMr$r~rFs rr·ÚCounter.__ior__ºs<€ð"'§¡¦Ñ ˆDØ‘JˆEØÕ"Ø(�T“ ñ"/ð×"Ñ"Ó$Ð$r)cór•UR5Hup#XnXC:dMX@U'M UR5$)z‡Inplace intersection is the minimum of corresponding counts. >>> c = Counter('abbb') >>> c &= Counter('bcc') >>> c Counter({'b': 1}) r�)rrMr$rFr~s rÚ__iand__ÚCounter.__iand__És;€ð Ÿ:™:ž<‰KˆDØ™+ˆKØÕ"Ø(�T“ ñ(ð×"Ñ"Ó$Ð$r)r"r)%r$r%r&r'rÆrNr+r/r6r=rÌr¬r¶rIržr¤r]r˜r¯rÉrerhrnrqrwrzr¾r�r†r‰r�r’r–r·r›r(Ú __classcell__r§s@rrr$s·ø†ñ*÷d &òò "ôCò Eð.ó Póð P÷ ôD ò6$ò-õ&ò 3òZJò !ò Jò /ò Jò /ò ò&ò&ò(ò"ò òò %ò %ò %÷ %ð %r)rcóΕ\rSrSrSrSrSrSrSSjrSr S r S r S r \ "5S 5r\SS j5rSr\rSSjr\S5rSrSrSrSrSrSrSrSrSrg)riÝa—A ChainMap groups multiple dicts (or other mappings) together to create a single, updateable view. The underlying mappings are stored in a list. That list is public and can be accessed or updated using the *maps* attribute. There is no other state. Lookups search the underlying mappings successively until a key is found. In contrast, writes, updates, and deletions only operate on the first mapping. có8•[U5=(d 0/Ulg)z€Initialize a ChainMap by setting *maps* to the given mappings. If no mappings are provided, a single empty dictionary is used. N)rìÚmaps)rr s rrNÚChainMap.__init__ës€ô ˜“J×& 2 $ˆ� r)có•[U5er)rlr.s rr+ÚChainMap.__missing__òs €Ü�s‹mÐr)cóv•URHnX!s $ URU5$![a M*f=fr)r rlr+)rr/r"s rÚ __getitem__ÚChainMap.__getitem__õsD€Ø—y”yˆGð Ø‘|Ò#ñ!ð ×Ñ Ó$Ð$øôó Úð ús ‘*ª 8·8Ncó•X;aX$U$rr"r�s rrÚ ChainMap.getýs€Ø›Kˆt‰yÐ4¨WÐ4r)cóV•[[5R"UR65$r)ryrÚunionr rs rÚ__len__ÚChainMap.__len__s€Ü”3“5—;’; § ¡ Ð*Ó+Ð+r)cóŒ•0n[[R[UR55HnX-nM [ U5$r)r±r@r¬rr r )rrRr"s rrbÚChainMap.__iter__s5€Ø ˆÜœ4Ÿ=™=¬(°4·9±9Ó*=Ö>ˆGØ ‰LŠAñ?ä�A‹wˆr)cóB^•[U4SjUR55$)Nc3ó.># •UH nTU;v• M g7frr")rÝÚmr/s €rrßÚ(ChainMap.__contains__.. søé€Ð/¢Y �3˜!–8¢Yùsƒ©Úanyr r.s `rÚ __contains__ÚChainMap.__contains__ sø€ÜÔ/ T§Y¢YÓ/Ó/Ð/r)có,•[UR5$rr³rs rÚ__bool__ÚChainMap.__bool__ ó€Ü�4—9‘9‹~Ðr)cóˆ•URRSSR[[UR 55S3$)Nr•rÛr–)r—r$rr±Úreprr rs rr˜ÚChainMap.__repr__s5€à—.‘.×)Ñ)Ð*¨!¨D¯I©I´c¼$ÀÇ Á Ó6JÓ,KÐ+LÈAÐNÐNr)có8•U"[RX55$)zFCreate a new ChainMap with keys from iterable and values set to value.)r@r¬)rFr«rQs rr¬ÚChainMap.fromkeyss€ñ”4—=‘= Ó1Ó2Ð2r)cóx•UR"URSR5/URSSQ76$)zHNew ChainMap or subclass with a new copy of maps[0] and refs to maps[1:]r ruN)r—r ržrs rržÚ ChainMap.copys1€à�~Š~˜dŸi™i¨™l×/Ñ/Ó1ÐB°D·I±I¸a¸b°MÒBÐBr)c óx•UcUnOU(aURU5 UR"U/URQ76$)z�New ChainMap with a new map followed by all previous maps. If no map is provided, an empty dict is used. Keyword arguments update the map or new empty dict. )r¶r—r )rr±Úkwargss rÚ new_childÚChainMap.new_childs5€ð ‰9؉AÞ Ø �H‰H�VÔ Ø�~Š~˜aÐ, $§)¡)Ò,Ð,r)có:•UR"URSS6$)zNew ChainMap from maps[1:].ruN)r—r rs rÚparentsÚChainMap.parents)s€ð�~Š~˜tŸy™y¨¨˜}Ð-Ð-r)có&•X RSU'g©Nr ©r )rr/rQs rrVÚChainMap.__setitem__.s€Ø!� ‰ �!‰ �SÒr)có`•URSU g![a [SU<35ef=f)Nr ú$Key not found in the first mapping: )r rlr.s rr]ÚChainMap.__delitem__1s<€ð KØ— ‘ ˜!‘ ˜SÑ!øÜó KÜÐAÀ#ÁÐIÓJÐ Jð Kús‚“-cóp•URSR5$![a [S5ef=f)zPRemove and return an item pair from maps[0]. Raise KeyError is maps[0] is empty.r z#No keys found in the first mapping.)r rmrlrs rrmÚChainMap.popitem7s<€ð BØ—9‘9˜Q‘<×'Ñ'Ó)Ð )øÜó BÜÐ@ÓAÐ Að Bús‚Ÿ5có~•URSR"U/UQ76$![a [SU<35ef=f)zWRemove *key* from maps[0] and return its value. Raise KeyError if *key* not in maps[0].r rÎ)r rYrl)rr/rGs rrYÚ ChainMap.pop>sJ€ð KØ—9‘9˜Q‘<×#Ò# CÐ/¨$Ò/Ð /øÜó KÜÐAÀ#ÁÐIÓJÐ Jð Kús‚"¢<có>•URSR5 g)z'Clear maps[0], leaving maps[1:] intact.r N)r rirs rriÚChainMap.clearEs€à � ‰ �!‰ ×ÑÕr)cóB•URSRU5 U$rÊ)r r¶r³s rr·ÚChainMap.__ior__Is€Ø � ‰ �!‰ ×јEÔ"؈ r)có¬•[U[R5(d[$UR 5nUR SR U5 U$rÊ)rœrÇrDr»ržr r¶)rrMr±s rr¾ÚChainMap.__or__MsB€Ü˜%Ô!1×!9Ñ!9×:Ñ:Ü!Ð !Ø �I‰I‹KˆØ �‰ˆq‰ ×Ñ˜ÔØˆr)cóÞ•[U[R5(d[$[ U5n[ UR 5HnURU5 M URU5$r) rœrÇrDr»r@rr r¶r—)rrMr±Úchilds rrÁÚChainMap.__ror__TsR€Ü˜%Ô!1×!9Ñ!9×:Ñ:Ü!Ð !Ü �‹KˆÜ˜dŸi™iÖ(ˆEØ �H‰H�UŽOñ)à�~‰~˜aÓ Ð r)rËr)r$r%r&r'rÆrNr+r¥rr«rbrµr¸rËr˜rÌr¬ržÚ__copy__rÄrÐrÇrVr]rmrYrir·r¾rÁr(r"r)rrrÝs­†ñ ò'òò%ô5ò,òò 0òñÓñOóðOðó3óð3òCð€Hô -ðñ.óð.ò"òKò BòKòòòõ!r)rcó„•\rSrSrSSjrSrSrSrSrSr S r SS jr S r S r S rSrSrSr\SSj5rSrg)riaNc ól•0UlUbURU5 U(aURU5 ggr)Údatar¶)rr@rÃs rrNÚUserDict.__init__ds/€ØˆŒ Ø Ñ Ø �K‰K˜Ô Þ Ø �K‰K˜Õ ð r)có,•[UR5$r©ryràrs rr«ÚUserDict.__len__krºr)cóÀ•XR;aURU$[URS5(aURRX5$[ U5e)Nr+)ràÚhasattrr—r+rlr.s rr¥ÚUserDict.__getitem__nsJ€Ø —)‘)Ó Ø—9‘9˜S‘>Ð !Ü �4—>‘> =× 1Ñ 1Ø—>‘>×-Ñ-¨dÓ8Ð 8Ü�s‹mÐr)có •X RU'gr©rà)rr/Úitems rrVÚUserDict.__setitem__us €Ø� ‰ �#Šr)có•URU grrér.s rr]ÚUserDict.__delitem__xs €Ø �I‰I�c‰Nr)có,•[UR5$r)r ràrs rrbÚUserDict.__iter__{ó€Ü�D—I‘I‹Ðr)có•XR;$rrér.s rrµÚUserDict.__contains__€s€Ø—i‘iÑÐr)có•X;aX$U$rr"r�s rrÚ UserDict.getƒs€Ø ‹;Ø‘9Р؈r)có,•[UR5$r©r¼ràrs rr˜ÚUserDict.__repr__Šrðr)cóî•[U[5(a(URURUR-5$[U[5(aURURU-5$[ $r©rœrr—ràr@r»r³s rr¾ÚUserDict.__or__�sV€Ü �eœX× &Ñ &Ø—>‘> $§)¡)¨e¯j©jÑ"8Ó9Ð 9Ü �eœT× "Ñ "Ø—>‘> $§)¡)¨eÑ"3Ó4Ð 4ÜÐr)cóì•[U[5(a(URURUR-5$[U[5(aURXR-5$[ $rrùr³s rrÁÚUserDict.__ror__”sT€Ü �eœX× &Ñ &Ø—>‘> %§*¡*¨t¯y©yÑ"8Ó9Ð 9Ü �eœT× "Ñ "Ø—>‘> %¯)©)Ñ"3Ó4Ð 4ÜÐr)cóœ•[U[5(a!U=RUR-slU$U=RU-slU$r)rœrràr³s rr·ÚUserDict.__ior__›s=€Ü �eœX× &Ñ &Ø �IŠI˜Ÿ™Ñ #�Iðˆ ð �IŠI˜Ñ �I؈ r)cóî•URRUR5nURRUR5 URSR 5URS'U$©Nrà)r—rArzr¶rž©rÚinsts rrÝÚUserDict.__copy__¢sU€Ø�~‰~×%Ñ% d§n¡nÓ5ˆØ � ‰ ×јTŸ]™]Ô+à $§ ¡ ¨fÑ 5× :Ñ :Ó <ˆ� ‰ �fÑØˆ r)có•UR[La#[URR55$SSKnURn0UlURU5nX lUR U5 U$!X lf=frÊ)r—rràržr¶)rržràrWs rržÚ UserDict.copy©sg€Ø �>‰>œXÒ %ܘDŸI™IŸN™NÓ,Ó-Ð -ÛØ�y‰yˆð ؈DŒIØ— ‘ ˜$“ˆAàŒIØ �‰�ŒØˆøð�Iús ÁA9Á9Bcó.•U"5nUHnX#U'M U$rr")rFr«rQrRr/s rr¬ÚUserDict.fromkeys¶s€á ‹EˆÛˆC؈c‹Fñàˆr)rér)r$r%r&r'rNr«r¥rVr]rbrµrr˜r¾rÁr·rÝržrÌr¬r(r"r)rrras\†ô òòòòòò  ôòòòòòò ðóóór)rcóØ•\rSrSrSrS#SjrSrSrSrSr S r S r S r S r S rSrSrSrSrSrSrSr\rSrSrSrSrS$SjrSrSrSrSrSr Sr!S r"S!r#S"r$g)%riÂzAA more or less complete user-defined wrapper around list objects.Ncó•/UlUbt[U5[UR5:XaXRSS&g[U[5(aURSSURSS&g[ U5Ulggr)ràr rœrrì)rÚinitlists rrNÚUserList.__init__Åsa€ØˆŒ Ø Ñ ä�H‹~¤ d§i¡i£Ó0Ø'— ‘ ™!‘ ܘH¤h×/Ñ/Ø'Ÿ}™}©QÐ/�— ‘ ™!‘ ä  ›N�• ð r)có,•[UR5$rrörs rr˜ÚUserList.__repr__Ðrðr)có>•URURU5:$r©ràÚ_UserList__castr³s rrhÚUserList.__lt__Óó€Ø�y‰y˜4Ÿ;™; uÓ-Ñ-Ð-r)có>•URURU5:*$rrr³s rreÚUserList.__le__Öó€Ø�y‰y˜DŸK™K¨Ó.Ñ.Ð.r)có>•URURU5:H$rrr³s rr¯ÚUserList.__eq__Ùrr)có>•URURU5:„$rrr³s rrqÚUserList.__gt__Ürr)có>•URURU5:¬$rrr³s rrnÚUserList.__ge__ßrr)cóH•[U[5(a UR$U$r)rœrràr³s rÚ__castÚUserList.__castâs€Ü'¨¬x×8Ñ8ˆu�z‰zÐC¸eÐCr)có•XR;$rré©rrês rrµÚUserList.__contains__ås€Ø—y‘yÑ Ð r)có,•[UR5$rrãrs rr«ÚUserList.__len__èrºr)có†•[U[5(aURURU5$URU$r)rœÚslicer—rà©rÚis rr¥ÚUserList.__getitem__ës4€Ü �aœ× Ñ Ø—>‘> $§)¡)¨A¡,Ó/Ð /à—9‘9˜Q‘<Ð r)có •X RU'grré©rr'rês rrVÚUserList.__setitem__ñs €Ø� ‰ �!Š r)có•URU grrér&s rr]ÚUserList.__delitem__ôs €Ø �I‰I�a‰Lr)cóN•[U[5(a(URURUR-5$[U[ UR55(aURURU-5$URUR[ U5-5$r©rœrr—ràr rìr³s rrwÚUserList.__add__÷st€Ü �eœX× &Ñ &Ø—>‘> $§)¡)¨e¯j©jÑ"8Ó9Ð 9Ü ˜œt D§I¡I›× /Ñ /Ø—>‘> $§)¡)¨eÑ"3Ó4Ð 4Ø�~‰~˜dŸi™i¬$¨u«+Ñ5Ó6Ð6r)cóL•[U[5(a(URURUR-5$[U[ UR55(aURXR-5$UR[ U5UR-5$rr/r³s rÚ__radd__ÚUserList.__radd__þsr€Ü �eœX× &Ñ &Ø—>‘> %§*¡*¨t¯y©yÑ"8Ó9Ð 9Ü ˜œt D§I¡I›× /Ñ /Ø—>‘> %¯)©)Ñ"3Ó4Ð 4Ø�~‰~œd 5›k¨D¯I©IÑ5Ó6Ð6r)có$•[U[5(a!U=RUR- slU$[U[UR55(aU=RU- slU$U=R[ U5- slU$r)rœrràr rìr³s rr’ÚUserList.__iadd__sm€Ü �eœX× &Ñ &Ø �IŠI˜Ÿ™Ñ #�Ið ˆ ô ˜œt D§I¡I›× /Ñ /Ø �IŠI˜Ñ �Iðˆ ð �IŠIœ˜e›Ñ $�I؈ r)có>•URURU-5$r©r—rà©rr|s rÚ__mul__ÚUserList.__mul__ó€Ø�~‰~˜dŸi™i¨!™mÓ,Ð,r)có0•U=RU-slU$rrér8s rÚ__imul__ÚUserList.__imul__s€Ø � Š �Q‰� ؈ r)cóØ•URRUR5nURRUR5 URSSSURS'U$r)r—rArzr¶rs rrÝÚUserList.__copy__sQ€Ø�~‰~×%Ñ% d§n¡nÓ5ˆØ � ‰ ×јTŸ]™]Ô+à $§ ¡ ¨fÑ 5±aÐ 8ˆ� ‰ �fÑØˆ r)có:•URRU5 gr)ràÚappendr s rrBÚUserList.appendó€Ø � ‰ ×јÕr)có:•URRX5 gr)ràÚinsertr*s rrFÚUserList.insert!s€Ø � ‰ ×јÕ!r)có8•URRU5$r)ràrYr&s rrYÚ UserList.pop$s€Ø�y‰y�}‰}˜QÓÐr)có:•URRU5 gr)ràÚremover s rrKÚUserList.remove'rDr)có8•URR5 gr)ràrirs rriÚUserList.clear*s€Ø � ‰ �‰Õr)có$•URU5$rr§rs rržÚ UserList.copy-s€Ø�~‰~˜dÓ#Ð#r)có8•URRU5$r)ràrFr s rrFÚUserList.count0s€Ø�y‰y�‰˜tÓ$Ð$r)có<•URR"U/UQ76$r©ràrÒ)rrêrGs rrÒÚUserList.index3s€Ø�y‰y�Š˜tÐ+ dÒ+Ð+r)có8•URR5 gr)ràr2rs rr2ÚUserList.reverse6s€Ø � ‰ ×ÑÕr)có<•URR"U0UD6 gr)ràÚsort©rrGrHs rrYÚ UserList.sort9s€Ø � ‰ �Š˜Ð% Ó%r)có°•[U[5(a&URRUR5 gURRU5 gr)rœrràÚextendr³s rr]ÚUserList.extend<s7€Ü �eœX× &Ñ &Ø �I‰I× Ñ ˜UŸZ™ZÕ (à �I‰I× Ñ ˜UÕ #r)rér©éÿÿÿÿ)%r$r%r&r'rÆrNr˜rhrer¯rqrnrrµr«r¥rVr]rwr2r’r9Ú__rmul__r=rÝrBrFrYrKriržrFrÒr2rYr]r(r"r)rrrÂs£†ÙKô +òò.ò/ò/ò.ò/òDò!òò ò òò7ò7òò-ð€Hòòòò"ô òòò$ò%ò,òò&õ$r)rcóª•\rSrSrSrSrSrSrSrSr Sr S r S r S r S rS rSrSrSrSrSrSrSr\rSrSrSrSrSrS\R<4SjrSr Sr!SHSjr"S\R<4Sjr#SIS jr$S\R<4S!jr%S"r&S#r'S\R<4S$jr(S%r)S&r*S'r+S(r,S)r-S*r.S+r/S,r0S-r1S.r2S/r3S0r4S1r5S2r6S3r7SJS5jr8\9Rtr:S6r;SKS7jrS:r?S;r@SJS<jrASLS=jrBSLS>jrCSMS?jrDS\R<4S@jrESJSAjrFSBrGSCrHSDrISErJSFrKSGrLg4)NriGcó°•[U[5(aXlg[U[5(aURSSUlg[U5Ulgr)rœrràr©rÚseqs rrNÚUserString.__init__Is;€Ü �cœ3× Ñ Ø�IÜ ˜œZ× (Ñ (ØŸ™¡˜ ˆD�Iä˜C›ˆD�Ir)có,•[UR5$r)rràrs rÚ__str__ÚUserString.__str__Qrºr)có,•[UR5$rrörs rr˜ÚUserString.__repr__Trðr)có,•[UR5$r)Úintràrs rÚ__int__ÚUserString.__int__Wrºr)có,•[UR5$r)Úfloatràrs rÚ __float__ÚUserString.__float__Zs€Ü�T—Y‘YÓÐr)có,•[UR5$r)Úcomplexràrs rÚ __complex__ÚUserString.__complex__]s€Ü�t—y‘yÓ!Ð!r)có,•[UR5$r)Úhashràrs rÚ__hash__ÚUserString.__hash__`rðr)có"•URSS4$rrérs rrüÚUserString.__getnewargs__cs€Ø— ‘ ™!� ˆÐr)có|•[U[5(aURUR:H$URU:H$r©rœrrà©rÚstrings rr¯ÚUserString.__eq__fó1€Ü �fœj× )Ñ )Ø—9‘9 § ¡ Ñ+Ð +Ø�y‰y˜FÑ"Ð"r)có|•[U[5(aURUR:$URU:$rrr€s rrhÚUserString.__lt__kó1€Ü �fœj× )Ñ )Ø—9‘9˜vŸ{™{Ñ*Ð *Ø�y‰y˜6Ñ!Ð!r)có|•[U[5(aURUR:*$URU:*$rrr€s rreÚUserString.__le__prƒr)có|•[U[5(aURUR:„$URU:„$rrr€s rrqÚUserString.__gt__ur†r)có|•[U[5(aURUR:¬$URU:¬$rrr€s rrnÚUserString.__ge__zrƒr)có`•[U[5(a URnXR;$rr)rÚchars rrµÚUserString.__contains__s%€Ü �dœJ× 'Ñ 'Ø—9‘9ˆDØ—y‘yÑ Ð r)có,•[UR5$rrãrs rr«ÚUserString.__len__„rºr)có>•URURU5$rr7)rrÒs rr¥ÚUserString.__getitem__‡s€Ø�~‰~˜dŸi™i¨Ñ.Ó/Ð/r)có0•[U[5(a(URURUR-5$[U[5(aURURU-5$URUR[ U5-5$r)rœrr—ràrr³s rrwÚUserString.__add__Šsl€Ü �eœZ× (Ñ (Ø—>‘> $§)¡)¨e¯j©jÑ"8Ó9Ð 9Ü ˜œs× #Ñ #Ø—>‘> $§)¡)¨eÑ"3Ó4Ð 4Ø�~‰~˜dŸi™i¬#¨e«*Ñ4Ó5Ð5r)có´•[U[5(aURXR-5$UR[U5UR-5$r)rœrr—ràr³s rr2ÚUserString.__radd__‘sA€Ü �eœS× !Ñ !Ø—>‘> %¯)©)Ñ"3Ó4Ð 4Ø�~‰~œc %›j¨4¯9©9Ñ4Ó5Ð5r)có>•URURU-5$rr7r8s rr9ÚUserString.__mul__–r;r)có>•URURU-5$rr7©rrGs rÚ__mod__ÚUserString.__mod__›s€Ø�~‰~˜dŸi™i¨$Ñ.Ó/Ð/r)có<•UR[U5U-5$r)r—r)rÚtemplates rÚ__rmod__ÚUserString.__rmod__žs€Ø�~‰~œc (›m¨dÑ2Ó3Ð3r)cóT•URURR55$r)r—ràÚ capitalizers rr£ÚUserString.capitalize¢s€Ø�~‰~˜dŸi™i×2Ñ2Ó4Ó5Ð5r)cóT•URURR55$r)r—ràÚcasefoldrs rr¦ÚUserString.casefold¥ó€Ø�~‰~˜dŸi™i×0Ñ0Ó2Ó3Ð3r)cóZ•URURR"U/UQ765$r)r—ràÚcenter©rÚwidthrGs rrªÚUserString.center¨s%€Ø�~‰~˜dŸi™i×.Ò.¨uÐ<°tÒ<Ó=Ð=r)r có|•[U[5(a URnURRXU5$r)rœrràrF©rÚsubÚstartÚends rrFÚUserString.count«ó-€Ü �cœ:× &Ñ &Ø—(‘(ˆCØ�y‰y�‰˜s¨3Ó/Ð/r)có˜•[U[5(a URnURURR U55$r)rœrràr—Ú removeprefix)rÚprefixs rr¶ÚUserString.removeprefix°ó6€Ü �fœj× )Ñ )Ø—[‘[ˆFØ�~‰~˜dŸi™i×4Ñ4°VÓ<Ó=Ð=r)có˜•[U[5(a URnURURR U55$r)rœrràr—Ú removesuffix)rÚsuffixs rr»ÚUserString.removesuffixµr¹r)cóT•UcSOUnUcSOUnURRX5$)Núutf-8Ústrict)ràÚencode)rÚencodingÚerrorss rrÁÚUserString.encodeºs.€Ø&Ñ.‘7°HˆØ#™^‘°ˆØ�y‰y×Ñ Ó1Ð1r)có:•URRXU5$r)ràÚendswith)rr¼r±r²s rrÆÚUserString.endswith¿s€Ø�y‰y×!Ñ! &°Ó5Ð5r)cóV•URURRU55$r)r—ràÚ expandtabs)rÚtabsizes rrÉÚUserString.expandtabsÂs €Ø�~‰~˜dŸi™i×2Ñ2°7Ó;Ó<ÐÚUserString.upper8rr)cóV•URURRU55$r)r—ràÚzfill)rr¬s rrAÚUserString.zfill;r3r)ré)r¿rÀ)érr_)Nr`)F)Mr$r%r&r'rNrhr˜rnrrrvrzrür¯rhrerqrnrµr«r¥rwr2r9rarœr r£r¦rªrwÚmaxsizerFr¶r»rÁrÆrÉrÍrÐrÓrÒrØrÜrßrârær rërîrñrôr÷rúrrÿrrrÚ maketransr rrrrrr"rr(r+r r1r5r8r;r>rAr(r"r)rrrGs±†ò!òòòò ò"òòò#ò "ò #ò "ò #ò !ò ò0ò6ò6ò -ð€Hò0ò4ò6ò4ò>ð ! d§l¡lô0ò >ò >ô 2ð &'¨D¯L©Lô6ô=ð  T§\¡\ô/ò /ò-ð ! d§l¡lô0ò#ò#ò#ò%ò#ò(ò#ò%ò'ò#ò#ò#ò#ò=ò1ô7ð— ‘ €Iò(ôEð ! d§l¡lô0ð !" t§|¡|ô1ò=ò)ô7ô.ô/ô.ð()¨d¯l©lô8ô6ò4ò1ò:ò1õ6r)r)7rÆÚ__all__rÇÚsysrwÚmodulesÚabcÚ itertoolsr r9r r<rr;Úkeywordrr Úoperatorrr²rrÑÚreprlibrrËÚ_weakrefrrCÚ _collectionsr ÚMutableSequenceÚregisterÚ ImportErrorrrÚKeysViewrÚ ItemsViewr+Ú ValuesViewr2rÊr7r@rrÍr r%rrÈrrrÚSequencerr"r)rÚrWsÕðñò €óÛà"2€‡ � Ð ÑØ€å%Ý'Ý)Ý+ÝÝ.Ý5Ý$ð5Ý"ð×$Ñ$×-Ñ-¨eÔ4ð Ý,ð Ý(ô+Ð+×4Ñ4ô+ô ,Ð,×6Ñ6ô,ô %Ð-×8Ñ8ô%ô 5ˆFô5ô}�$ô}ð@ Ý(ðLÝ)ð16ÀÈTõlòf1ð  Ý,ôr%ˆdôr%ôr }!Ð×.Ñ.ô}!ôHZÐ×.Ñ.ôZôB~$Ð×/Ñ/ô~$ôJu6Ð!×*Ñ*õu6øðs(ó Ùð ûðó Ùð ûð ó Ùð ûð|ó áð ûðóLÙK‚LðLûð|ó Ùð úslÁEÁ3E"Á:E.ÃE:ÃFÃ0FÅEÅEÅ"E+Å*E+Å.E7Å6E7Å:FÆFÆ FÆFÆFÆF