ÿØÿà JFIF    ÿÛ „  ( %"1!%)+...383,7(-.+  -+++--++++---+-+-----+---------------+---+-++7-----ÿÀ  ß â" ÿÄ     ÿÄ H    !1AQaq"‘¡2B±ÁÑð#R“Ò Tbr‚²á3csƒ’ÂñDS¢³$CÿÄ   ÿÄ %  !1AQa"23‘ÿÚ   ? ôÿ ¨pŸªáÿ —åYõõ\?àÒü©ŠÄï¨pŸªáÿ —åYõõ\?àÓü©ŠÄá 0Ÿªáÿ Ÿå[úƒ ú®ði~TÁbqÐ8OÕpÿ ƒOò¤Oè`–RÂáœá™êi€ßÉ< FtŸI“öÌ8úDf´°å}“¾œ6  öFá°y¥jñÇh†ˆ¢ã/ÃÐ:ªcÈ "Y¡ðÑl>ÿ ”ÏËte:qž\oäŠe÷󲍷˜HT4&ÿ ÓÐü6ö®¿øþßèô Ÿ•7Ñi’•j|“ñì>b…þS?*Óôÿ ÓÐü*h¥£ír¶ü UãS炟[AÐaè[ûª•õ&õj?†Éö+EzP—WeÒírJFt ‘BŒ†Ï‡%#tE Øz ¥OÛ«!1›üä±Í™%ºÍãö]°î(–:@<‹ŒÊö×òÆt¦ãº+‡¦%ÌÁ²h´OƒJŒtMÜ>ÀÜÊw3Y´•牋4ǍýʏTì>œú=Íwhyë,¾Ôò×õ¿ßÊa»«þˆѪQ|%6ž™A õ%:øj<>É—ÿ Å_ˆCbõ¥š±ý¯Ýƒï…¶|RëócÍf溪“t.СøTÿ *Ä¿-{†çàczůŽ_–^XþŒ±miB[X±d 1,é”zEù»& î9gœf™9Ð'.;—™i}!ôšåîqêÛ٤ёý£½ÆA–àôe"A$˝Úsäÿ ÷Û #°xŸëí(l »ý3—¥5m! rt`†0~'j2(]S¦¦kv,ÚÇ l¦øJA£Šƒ J3E8ÙiŽ:cÉžúeZ°€¯\®kÖ(79«Ž:¯X”¾³Š&¡* ….‰Ž(ÜíŸ2¥ª‡×Hi²TF¤ò[¨íÈRëÉ䢍mgÑ.Ÿ<öäS0í„ǹÁU´f#Vß;Õ–…P@3ío<ä-±»Ž.L|kªÀê›fÂ6@»eu‚|ÓaÞÆŸ…¨ááå>åŠ?cKü6ùTÍÆ”†sĤÚ;H2RÚ†õ\Ö·Ÿn'¾ ñ#ºI¤Å´%çÁ­‚â7›‹qT3Iï¨ÖÚ5I7Ë!ÅOóŸ¶øÝñØôת¦$Tcö‘[«Ö³šÒ';Aþ ¸èíg A2Z"i¸vdÄ÷.iõ®§)¿]¤À†–‡É&ä{V¶iŽ”.Ó×Õÿ û?h¬Mt–íª[ÿ Ñÿ ÌV(í}=ibÔ¡›¥¢±b Lô¥‡piη_Z<‡z§èŒ)iÖwiÇ 2hÙ3·=’d÷8éŽ1¦¸c¤µ€7›7Ø ð\á)} ¹fËí›pAÃL%âc2 í§æQz¿;T8sæ°qø)QFMð‰XŒÂ±N¢aF¨…8¯!U  Z©RÊ ÖPVÄÀÍin™Ì-GˆªÅËŠ›•zË}º±ŽÍFò¹}Uw×#ä5B¤{î}Ð<ÙD é©¤&‡ïDbàÁôMÁ." ¤‡ú*õ'VŽ|¼´Úgllº¼klz[Æüï÷Aób‡Eÿ dÑ»Xx9ÃÜ£ÁT/`¼¸vI±Ýµ·Ë‚“G³þ*Ÿû´r|*}<¨îºœ @¦mÄ’M¹”.œ«Y–|6ÏU¤jç¥ÕÞqO ˜kDÆÁ¨5ÿ š;ÐЦ¦€GÙk \ –Þ=â¼=SͧµªS°ÚÍpÜãQűÀõ¬?ÃÁ1Ñ•õZà?hóœ€ L¦l{Y*K˜Ù›zc˜–ˆâ ø+¾ ­-Ök¥%ùEÜA'}ˆ><ÊIè“bpÍ/qÞâvoX€w,\úªò6Z[XdÒæ­@Ö—€$òJí#é>'°Ú ôª˜<)4ryÙ£|óAÅn5žêŸyÒäMÝ2{"}‰–¤l÷ûWX\l¾Á¸góÉOÔ /óñB¤f¸çñ[.P˜ZsÊË*ßT܈§QN¢’¡¨§V¼(Üù*eÕ“”5T¨‹Âê¥FŒã½Dü[8'Ò¥a…Ú¶k7a *•›¼'Ò·\8¨ª\@\õ¢¦íq+DÙrmÎ…_ªæ»ŠÓœ¡¯’Ré9MÅ×D™lælffc+ŒÑ,ý™ÿ ¯þǤ=Å’Á7µ÷ÚÛ/“Ü€ñýã¼àí¾ÕÑ+ƒ,uµMâÀÄbm:ÒÎPæ{˜Gz[ƒ¯«® KHà`ߨŠéí¯P8Aq.C‰ à€kòpj´kN¶qô€…Õ,ÜNŠª-­{Zö’æû44‰sŽè‰îVíRœÕm" 6?³D9¡ÇTíÅꋇ`4«¸ÝÁô ï’ýorqКÇZ«x4Žâéþuïf¹µö[P ,Q£éaX±`PÉÍZ ¸äYúg üAx ’6Lê‚xÝÓ*äQ  Ï’¨hÍ =²,6ï#rÃ<¯–£»ƒ‹,–ê•€ aÛsñ'%Æ"®ÛüìBᝠHÚ3ß°©$“XnœÖ’î2ËTeûìxîß ¦å¿çÉ ðK§þ{‘t‚Ϋ¬jéîZ[ ”š7L¥4VÚCE×]m¤Øy”ä4-dz£œ§¸x.*ãÊÊ b÷•h:©‡¦s`BTÁRû¾g⻩‹jø sF¢àJøFl‘È•Xᓁà~*j¯ +(ÚÕ6-£¯÷GŠØy‚<Ç’.F‹Hœw(+)ÜÜâÈzÄäT§FߘãÏ;DmVœ3Àu@mÚüXÝü•3B¨òÌÁÛ<·ÃÜ z,Ì@õÅ·d2]ü8s÷IôÞ¯^Ç9¢u„~ëAŸï4«M? K]­ÅàPl@s_ p:°¬ZR”´›JC[CS.h‹ƒïËœ«Æ]–÷ó‚wR×k7X‰k›‘´ù¦=¡«‰¨¨Â')—71ó’c‡Ðúµ `é.{§p¹ój\Ž{1h{o±Ý=áUÊïGÖŒõ–-BÄm+AZX¶¡ ïHðæ¥JmÙ;…䡟ˆ¦ ° äšiÉg«$üMk5¤L“’çÊvïâï ,=f“"íἊ5ô¬x6{ɏžID0e¸vçmi'︧ºð9$ò¹÷*£’9ÿ ²TÔ…×>JV¥}Œ}$p[bÔ®*[jzS*8 ”·T›Í–ñUîƒwo$áè=LT™ç—~ô·¤ÈÚ$榍q‰„+´kFm)ž‹©i–ËqÞŠ‰à¶ü( ‚•§ •°ò·‡#5ª•µÊ﯅¡X¨šÁ*F#TXJÊ ušJVÍ&=iÄs1‚3•'fý§5Ñ<=[íÞ­ PÚ;ѱÌ_~Ä££8rÞ ²w;’hDT°>ÈG¬8Á²ÚzŽ®ò®qZcqJêäÞ-ö[ܘbň±çb“ж31²n×iƒðÕ;1¶þÉ ªX‰,ßqÏ$>•î íZ¥Z 1{ç൵+ƒÕµ¥°T$§K]á»Ûï*·¤tMI’ÂZbŽÕiÒ˜}bÓ0£ª5›¨ [5Ž^ÝœWøÂÝh° ¢OWun£¤5 a2Z.G2³YL]jåtì”ä ÁÓ‘%"©<Ôúʰsº UZvä‡ÄiÆÒM .÷V·™ø#kèýiíÌ–ª)µT[)BˆõÑ xB¾B€ÖT¨.¥~ð@VĶr#¸ü*åZNDŽH;âi ],©£öØpù(šºãö¼T.uCê•4@ÿ GÕÛ)Cx›®0ø#:ÏðFÒbR\(€€Ä®fã4Þ‰Fä¯HXƒÅ,†öEÑÔÜ]Öv²?tLÃvBY£ú6Êu5ÅAQ³1‘’¬x–HŒÐ‡ ^ ¸KwJôÖŽ5×CÚ¨vÜ«/B0$×k°=ðbÇ(Ï)w±A†Á† 11Í=èQšµ626ŒÜ/`G«µ<}—-Ö7KEHÈÉðóȤmݱû±·ø«Snmá=“䫚mݱŸ¡¶~ó·“äUóJæúòB|E LêŽy´jDÔ$G¢þÐñ7óR8ýÒ…Ç› WVe#·Ÿ p·Fx~•ݤF÷0Èÿ K¯æS<6’¡WШ; ´ÿ ¥Êø\Òuî†åÝ–VNœkÒ7oòX¨Á­Ø÷FÎÑä±g÷ÿ M~Çî=p,X´ ÝÌÚÅ‹’ÃjÖ.ØöÏñ qïQ¤ÓZE†° =6·]܈ s¸>v•Ž^Ý\wq9r‰Î\¸¡kURÒ$­*‹Nq?Þª*!sŠÆ:TU_u±T+øX¡ ®¹¡,ÄâÃBTsÜ$Ø›4m椴zÜK]’’›Pƒ @€#â˜`é¹=I‡fiV•Ôî“nRm+µFPOhÍ0B£ €+¬5c v•:P'ÒyÎ ‰V~‚Ó†ÖuókDoh$å\*ö%Ю=£«…aȼ½÷Û.-½VŒŠ¼'lyî±1¬3ó#ÞE¿ÔS¤gV£m›=§\û"—WU¤ÚǼÿ ÂnÁGŒÃ ‚õN D³õNÚíŒÕ;HôyÄÈ©P¹Ä{:?R‘Ô¨âF÷ø£bÅó® JS|‚R÷ivýáâ€Æé¡è³´IئÑT!§˜•ت‚¬â@q€wnïCWÄ@JU€ê¯m6]Ï:£âx'+ÒðXvÓ¦Úm=–´7œ $ì“B£~p%ÕŸUþ« N@¼üï~w˜ñø5®—'Ôe»¤5ã//€ž~‰Tþ›Å7•#¤× Íö pÄ$ùeåì*«ÓŠEØWEÈsßg ¦ûvžSsLpºÊW–âµEWöˬH; ™!CYõZ ÃÄf æ#1W. \uWâ\,\Çf j’<qTbên›Î[vxx£ë 'ö¨1›˜ÀM¼Pÿ H)ƒêêŒA7s,|F“ 꺸k³9Ìö*ç®;Ö!Ö$Eiž•¹ÒÚ†ýóéÝû¾ÕS®ó$’NÝäŸz¤5r¦ãÄÃD÷Üø!°ø‡Ô&@m™Ì^Ãä­d q5Lnÿ N;.6½·N|#ä"1Nƒx“ã<3('&ñßt  ~ªu”1Tb㫨9ê–›–bìd$ߣ=#ÕãÒmU¯eí$EFù5ýYô櫨æì™Ç—±ssM]·á¿0ÕåJRÓªîiƒ+O58ÖñªŠÒx" \µâá¨i’¤i —Ö ” M+M¤ë9‚‰A¦°Qõ¾ßøK~¼Ã‘g…Ö´~÷Ï[3GUœÒ½#…kàÔ®Ò”‰³·dWV‰IP‰Ú8u¹”E ÖqLj¾êÕCBš{A^Âß;–¨`¯¬ìö ˼ ×tìø.tƐm*n¨y4o&Àx¥n¦×î‡aupáÛj8¿m›è¶ã!o½;ß0y^ý×^EÑ¿ÒjzŒ­)vÚÑnÄL …^ªô× ‡—‚3k Îý­hï]içå–îÏ*÷ñþ»Ô CÒjøjÍznˆ´ ¹#b'Fô‹ ‰v¥'’à'T´ƒHýÍ%M‰ ƒ&ÆÇŒï1 ‘ –Þ ‰i¬s žR-Ÿ kЬá¬7:þ 0ŒÅÒÕ/aÙ¬ÃÝ#Úøœ ©aiVc‰. ¹¦ãµ” ›Yg¦›ÆÎýº°f³7ƒhá·¸­}&D9¡ÂsÉÙÞèŠõØàC™¨ñbFC|´Ü(ŸƒÚÒ-%»'a Ì¿)ËÇn¿úÿ ÞŽX…4ÊÅH^ôΑí@ù¹Eh¶“L8Çjù ¼ÎåVªóR©Ï5uà V4lZß®=€xÖŸ–ÑÈ ÷”¨°¾__yM1tÉ?uÆþIkÄgæ@þ[¢†°XÃJ£j·:nkÅ¢u ‘}âGzö­/IµèЬ¼48q¦F°ŽR¼=ûì{´¯RýicS ÕÛ íNtÍÙï£,w4rêì®»~x(©Uñ§#Ñ&œÕ¤>ÎåÍÓ9’Ö{9eV­[Öjâ²ãu]˜å2›qÑšÕJç0€sÄ|Êëè0튔bÁ>“{×_F`Ø©ºê:µä,v¤ðfc1±"«ÔÍän1#=· Âøv~H½ÐßA¾¿Ü€Óš]Õ; I¾÷ç‚Qi†î¹9ywÔKG˜áñ zQY—§ÃÕZ07§X‚ Áh;ÁM)iÌCH-¯T‘ë|A0{Ò½LÚ–TâÖkÜ’dÀ“rmm»”جPF³ÖcbE§T€ÒxKºû’Ó®7±²(\4ŽÃ¸Uu@j™yĵ;³µ!Á¢b.W¤=mõ´êµK k ¸K^ÜÛ#p*Ü14qkZç5ïë †°5Ï%ÍÛ<Õ¤×Ô¥ê†C Õ´¼ú$ƒÖ“”]Ù¬qÞÚ[4©ý!ûÏ—Áb쳐XµA¬â~`›Çr¸8ìùÝ䫦<>ä÷«?xs´ÇÑ /á;¹øüÊÈÙà{"@Žïzâ¬[âß‚ U_<ÇŸ½4èN˜ú61®qŠu ¦þF£»äJ_ˆÙÎ~ ÞAã–݄ϗrŠD;xTž‘ô`É«…suãO`?³à™ô Lý#Íc5öoæØ‚y´´÷«ZR§<&JÇ+éâô´€i!Àˆ0æAoàðLèÖ-2ŸõW.’t^–(KÁmHµV@xÜÇy®Ñø­â^:Ú3w· 7½¹°ñ¸â¹®:',«Mœ—n­Á+Ãbš LÈ‘ÄnRÓÅœ%¦²‰¨ùQ:¤f‚ "PÕtô¸…cæl…&˜Ú˜Ôkv‹ž+vŠ,=¢v­6—Xy*¥t£«<™:“aîϲ=¦6rO]XI¿Œ÷¤zÚ­›¶ 6÷”w\d ü~v®ˆÌk«^m<ÿ ¢‰Õ\)ùºŽ;… lîÙÅEŠ®cѾ@vnMÏ,¼“ñ•ŽBxðÃzãÇç%3ˆ"}Ù•Åî> BÉú;Ò]V+P˜F_´ßé> Øše|ï‡ÄOmFæÇ ãqÞ$/xÐx­z`ï9"œÜij‚!7.\Td…9M‡•iŽ‹¾‘50ÞŽn¥ß4ÉôO ¹*í^QêËÜÇÌ8=ާs‰'ÂëÙ«á%Pú[O †ÅP¯Vsް.‰,kc¶ ¬A9n˜XÎ-ÞšN["¹QÕ‰ƒMýÁߺXJæÍaLj¾×Ãmã¾ãÚ uñÒþåQô¦¥ /ÄUx:‚ÍÜ’ Đ©ØÝ3V¨‰ÕnÐ6ó*óúK­«…c ¯U òhsý­jóÔj#,ímŒRµ«lbïUTŒÑ8†Ä0œÏr`ð¡¬É Ї ë"À² ™ 6¥ f¶ ¢ÚoܱԷ-<Àî)†a¶ž'Ú»¨TXqØæ¶÷YÄHy˜9ÈIW­YÀuMFë ºÏ’AqÌ4·/Ú †ô'i$øä­=Ä Ý|öK×40è|È6p‘0§)o¥ctî§H+CA-“ xØ|ÐXАç l8íºð3Ø:³¤¬KX¯UÿÙ o p̦i|_ @sdZddlZddlZddlZddlZddlZ ddl m Z gdZ d$dddd d d Zd%dddd d d ZddddZddZddZddZGdddZddZGdddZeeeeeeeedhZddZ d&dd Z!d!d"Z"e#d#kr|e!dSdS)'a/Support to pretty-print lists, tuples, & dictionaries recursively. Very simple, but useful, especially in debugging data structures. Classes ------- PrettyPrinter() Handle pretty-printing operations onto a stream using a configured set of formatting parameters. Functions --------- pformat() Format a Python object into a pretty-printed representation. pprint() Pretty-print a Python object to a stream [default is sys.stdout]. saferepr() Generate a 'standard' repr()-like value, but protect against recursive data structures. N)StringIO)pprintpformat isreadable isrecursivesaferepr PrettyPrinterppPFTcompact sort_dictsunderscore_numbersc Cs$t|||||||d}||dS)zAPretty-print a Python object to a stream [default is sys.stdout].)streamindentwidthdepthr rrN)rr) objectrrrrr rrprinterr/usr/lib/python3.10/pprint.pyr0s rcCst||||||d|S)zZ2e2e ej3j <d?d@Z4e4e ej5j <dAdBZ6dS)Drr r NFTr cCst|}t|}|dkrtd|dur|dkrtd|s"td||_||_||_|dur3||_ntj|_t||_ ||_ ||_ dS)aHandle pretty printing operations onto a stream using a set of configured parameters. indent Number of spaces to indent for each level of nesting. width Attempted maximum number of columns in the output. depth The maximum depth to print out nested structures. stream The desired output stream. If omitted (or false), the standard output stream available at construction will be used. compact If true, several items will be combined in one line. sort_dicts If true, dict keys are sorted. rzindent must be >= 0Nzdepth must be > 0zwidth must be != 0) int ValueError_depth_indent_per_level_width_stream_sysstdoutbool_compact _sort_dicts_underscore_numbers)r#rrrrr rrrrrr$ks"  zPrettyPrinter.__init__cCs&|||jddid|jddS)Nr )_formatr7writer#rrrrrszPrettyPrinter.pprintcCs"t}|||ddid|SNr) _StringIOr?getvalue)r#rsiorrrrszPrettyPrinter.pformatcCs||idddS)NrrformatrArrrrszPrettyPrinter.isrecursivecCs ||idd\}}}|o| SrBrF)r#rsreadable recursiverrrrs zPrettyPrinter.isreadablec Cs t|}||vr|t|d|_d|_dS||||}|j||} t|| kr~|j t |j d} | durNd||<| |||||||d||=dSt |r~t|t s~|jjr~t|j dr~d|j jjvr~d||<|||||||d||=dS||dS)NTFr __wrapped__ __create_fn__)r(r@ _recursion _recursive _readable_reprr6len _dispatchgetr'__repr__ _dataclasses is_dataclass isinstance__dataclass_params__reprhasattrrKr-_pprint_dataclass) r#rrr allowancecontextlevelobjidrep max_widthprrrr?s8   zPrettyPrinter._formatc s`jj}|t|d7}fddtD}||d||||||||ddS)Nr cs$g|]}|jr|jt|jfqSr)rYnamegetattr).0frrr s$z3PrettyPrinter._pprint_dataclass..()) __class__r+rQrUfieldsr@_format_namespace_items r#rrrr\r]r^cls_nameitemsrrrr[s zPrettyPrinter._pprint_dataclassc Csz|j}|d|jdkr||jddt|}|r7|jr't|td} n|} || |||d|||ddS)N{r  key})r@r5rQr<sortedror1_format_dict_items) r#rrrr\r]r^r@lengthrorrr _pprint_dicts  zPrettyPrinter._pprint_dictcCslt|s |t|dS|j}||jd|t|||t|jd|d|||ddS)Nrhr ri)rQr@rYrjr+r?listro)r#rrrr\r]r^clsrrr_pprint_ordered_dictsz"PrettyPrinter._pprint_ordered_dictcCs0|d|||||d|||ddS)N[r ])r@ _format_itemsr#rrrr\r]r^rrr _pprint_lists zPrettyPrinter._pprint_listcCsH|dt|dkr dnd}|||||t|||||dS)Nrhr z,)ri)r@rQr~)r#rrrr\r]r^endcharrrr _pprint_tuples zPrettyPrinter._pprint_tuplec Cst|s |t|dS|j}|tur|dd}n||jdd}|t|jd7}t|td}|||||t|||||dS)Nrprt({})r rr) rQr@rYrjsetr+rur r~) r#rrrr\r]r^typrrrr _pprint_sets  zPrettyPrinter._pprint_setcCs|j}t|s|t|dSg}|d} |dkr"|d7}|d7}|j|} } t| D]x\} } t| }| t| dkrA| |8} t|| krM||q-td| }|sWJ|dr]J| | }d}t|D]2\}}||}|t|dkr| t| dkr||8}tt||kr|r|t||}qi|}qi|r|t|q-t|dkr||dS|dkr|dt|D]\} }| dkr|dd |||q|dkr|d dSdS) NTr z\S*\s*rhrr>rqri) r@rQrY splitlinesr6 enumerateappendrefindallpop)r#rrrr\r]r^r@chunkslines max_width1railiner`parts max_width2currentjpart candidaterrr _pprint_strs\          zPrettyPrinter._pprint_strc Cs|j}t|dkr|t|dS|dk}|r#|d7}|d7}|dd} t||j||D]} || || | s@dd|} q.|rI|ddSdS)Nr rhrr>rqri)r@rQrY_wrap_bytes_reprr6) r#rrrr\r]r^r@parensdelimr`rrr _pprint_bytesCs&    zPrettyPrinter._pprint_bytesc Cs>|j}|d|t|||d|d||d|ddS)Nz bytearray( r ri)r@rbytes)r#rrrr\r]r^r@rrr_pprint_bytearrayXs  zPrettyPrinter._pprint_bytearraycCs8|d||||d|d|||ddS)Nz mappingproxy( r ri)r@r?copyrrrr_pprint_mappingproxyas z"PrettyPrinter._pprint_mappingproxyc Csft|tjur d}n|jj}|t|d7}|j}||d| |||||||ddS)N namespacer rhri) r'_typesSimpleNamespacerjr+rQ__dict__ror@rlrmrrr_pprint_simplenamespaceis z%PrettyPrinter._pprint_simplenamespacec Cs|j}||j7}dd|}t|d} t|D]3\} \} } | | k} || ||}|||d|| ||t|d| r@|nd||| sK||qdS)N, rqr z: r)r@r5rQrrPr?)r#rorrr\r]r^r@delimnl last_indexrrsentlastr`rrrrvxs"    z PrettyPrinter._format_dict_itemsc Cs|j}dd|}t|d} t|D]7\} \} } | | k} || |dt| |vr0|dn|| ||t| d| r?|nd||| sJ||qdS)Nrrqr =...)r@rQrr(r?)r#rorrr\r]r^r@rrrrsrrrrrrls"     z%PrettyPrinter._format_namespace_itemscCsF|j}||j7}|jdkr||jdddd|}d} |j|d} } t|} zt| } Wn ty;YdSwd}|s| }zt| } Wnty[d}| |8} | |8} Ynw|jr||||}t|d}| |krv| } | rv|} | |kr| |8} || d} ||q>|| |} | ||||r|nd|||r@dSdS) Nr rqrrFTr, ) r@r5r6iternext StopIterationr;rPrQr?)r#rorrr\r]r^r@rrrraitnext_entrrr`wrrrr~sV            zPrettyPrinter._format_itemscCs4||||j|\}}}|sd|_|rd|_|S)NFT)rGrr4rOrN)r#rr]r^rYrIrJrrrrPs  zPrettyPrinter._reprcCs|||||S)zFormat object for a specific context, returning a string and flags indicating whether the representation is 'readable' and whether the object represents a recursive construct. )r)r#rr] maxlevelsr^rrrrGszPrettyPrinter.formatc Cst|s |t|dS||j||}|j}|t|jd7}|d|j|d|f|||||d|||ddS)Nr z %s(%s, %srqri)rQr@rYrPdefault_factoryrjr+rx) r#rrrr\r]r^rdfrzrrr_pprint_default_dictsz"PrettyPrinter._pprint_default_dictc Cst|s |t|dS|j}||jd|jdkr'||jdd|}||||t|jd|d|||ddS)Nrr rqrr)rQr@rYrjr+r5 most_commonrv) r#rrrr\r]r^rzrorrr_pprint_counters zPrettyPrinter._pprint_counterc Cst|js|t|dS|j}||jd|t|jd7}t|jD]2\}} |t|jdkrF|| |||d|||dq'|| ||d|||dd|q'dS)Nrhr rirrq)rQmapsr@rYrjr+rr?) r#rrrr\r]r^rzrmrrr_pprint_chain_maps  zPrettyPrinter._pprint_chain_mapc Cst|s |t|dS|j}||jd|t|jd7}|d|jdur>|||||d|||ddS||||d||||j||}|dd||fdS)Nrhr r|rz])z], %smaxlen=%s)rq)rQr@rYrjr+maxlenr~rP) r#rrrr\r]r^rzrmlrrr _pprint_deques"   zPrettyPrinter._pprint_dequec C||j|||||ddSNr r?datarrrr_pprint_user_dictzPrettyPrinter._pprint_user_dictc Crrrrrrr_pprint_user_listrzPrettyPrinter._pprint_user_listc Crrrrrrr_pprint_user_string!rz!PrettyPrinter._pprint_user_stringcCst|}|tvrt|ddfSt|dd}t|tr0|tjur0|jr)|dddfSt|ddfSt|tr|tjur|s>dSt |}|rO||krOdd||vfS||vrZt |ddfSd||<d}d} g} | j } |d7}|j rwt |td} n|} | D].\} }|| |||\}}}|||||\}}}| d ||f|o|o|}|s|rd} q}||=d d | || fSt|tr|tjust|trF|tjurFt|tr|sd Sd }nt|dkrd}n|sdSd}t |}|r||kr|dd||vfS||vr t |ddfSd||<d}d} g} | j } |d7}|D]}|||||\}}}| ||s2d}|r7d} q||=|d | || fSt|}||oS|d dfS)NTFrT_d)z{}TFz{...}r rrz%s: %sz{%s}r)z[]TFz[%s]z(%s,))z()TFz(%s)r<)r'_builtin_scalarsrYrd issubclassr2rTr=dictr(rMrr<ruror1rGjoinrytuplerQ startswith)r#rr]rr^rrr_rIrJ componentsrrokvkrepr kreadablekrecurvrepr vreadablevrecurrGoorepr oreadableorecurr`rrrr&s            zPrettyPrinter._safe_repr)r r NN)7r+r,r-r$rrrrr?r[rRrxrrTr{ _collections OrderedDictrryrrrr frozensetrr&rrr bytearrayrrMappingProxyTyperrrvrlr~rPrGr defaultdictrCounterrChainMaprdequerUserDictrUserListr UserStringrrrrrrjsh ,       1    )         rcCsdt|jt|fS)Nz)r'r+r(rrrrrMzsrMcCsddl}|durddddgdddfgd }t}|}||iddd |}|||}td ||td ||dS) Nrstring)r rr)iTz _safe_repr:zpformat:)timer perf_counterrrprint)rrrbt1t2t3rrr _perfchecks rccsd}t|dd}tdt|dD]*}|||d}||}||kr)||8}tt||kr;|r8t|V|}q|}q|rGt|VdSdS)Nrr)rQrangerY)rrr\rrrrrrrrrs  r__main__)Nr r N)r r Nr")$r. collectionsr dataclassesrUrsysr8typesriorrC__all__rrr rrrr r1rrr&rrfloatcomplexr:r'rrMrrr+rrrrsD