rust 3¸#rustc 1.98.1 (48a229cea 2026-09-01)Á‰m6GÞ­n6ÇèÆ2-64f5f36fb0927694ÁûÊÆÍRLñ.åSÛAúwjL-df1bddb45adbe94bÁ«ª1Úë• ¢›ºXÝÓrŽ*-1ad4f876c768bda9Á±ò‰<å%Z‰>¸64‡ËV`-2d2ab9fb0fe1def5Á»ÄóG Øg{ë(3íi«F×-06449a08aaab5e30Árustc_std_workspace_coreÁ€û{ù`ä"Ei¥€ÞÏ%G-cb0d4d77988d81b5Áó"Æ)ΉÉðÛÕpEÍ—E-3ec41d3a5a80a4a4Á miniz_oxideÁÐ8°ø‚ðbž Lƨ°J-e44eaef1807e5fc0Áadler2Á9lí©yA6P/D$UBŸ-dca52f01a59c33e7Á hashbrownÁ™¸ÈXó®÷ …ùý{e-143c77bb957d9940Árustc_std_workspace_allocÁð…¨À �¶÷Üúò·_z%í-145a318e0772276cÁ std_detectÁK(ƒ0ì*ãÛ8²D?-f99feda5ce9e492aÁrustc_demangleÁµ%jŽeårVŠÕÓ•-cfd0ab54bb33760eÁcfg_ifÁÍ}λ—©ŒÕž§C•×o-360da4ba13154744Á addr2lineÁ‹c²ŽúY\ÈGÞö÷ö--09755979c57b7e64ÁgimliÁ¢±QÄÍ`ª§DÞåù¬y-9a1fede77fbbf2f0ÁobjectÁö‚F λâËvú.zËí-7ff85ea729a864ffÁmemchrÁž˜]²1<õ¶=U�ý�Où-0e3477fb2664a277Á  ÿŽ—jl‹®¾To–K™G-549498e8b2e4d924Á rstest_reuseÁd¿LÍ$´LtestsÁ,¢Í$“&ä,„Í$ù H decoder_testsÁl‡Í$|ºä,ÞÍ$Ó€ encoder_testsÁlìÍ$áýä,°KÍ$¥KænaiveÁ,®Í$£æä,ÇÍ$¼úä,º5Í$¯5’ä,…( Í$ú' µä,·) Í$¬) µcoverage_gamingÁ|ÖZ Í$ËZ ä,¨RÍ$�R‰«chunked_encoderÁSinkÁ ErrorÁ write_encoded_bytesÁChunkedEncoderÁ'eÁ�engineÁ¥ �˜ encodeÁ�BUF_SIZEÁ CHUNK_SIZEÁ  StringSinkÁ'aÁstringÁ¤ ˜ "¤ "ê "ö displayÁ&&&&&&&&& Base64DisplayÁ/¤ /¥ /�/bytesÁ/­ &5¤ 5¥ 5�5˜ &:¤ :¥ :�:ñ& FormatterSinkÁ?¤ ?'bÁ?œ&C¤ CªCê Cö readÁHdecoderÁIIIIIIIIIIï IBASE64_CHUNK_SIZEÁIDECODED_CHUNK_SIZEÁI DecoderReaderÁV¥ V�VŽVµ VinnerÁV b64_bufferÁ\ V b64_offsetÁVb64_lenÁVdecoded_chunk_bufferÁ` Vdecoded_offsetÁV decoded_lenÁVinput_consumed_lenÁVpadding_offsetÁIf¥ f�fŽfñIk¥ k�kŽk˜ o o kflush_decoded_bufÁkread_from_delegateÁk decode_to_bufÁt t t k into_innerÁIy¥ y�yŽyÚ} HwriteÁ€encoderÁ���������ï � MAX_INPUT_LENÁ�MIN_ENCODE_CHUNK_SIZEÁ� EncoderWriterÁ�¥ ���“�µ �delegateÁ� extra_inputÁ“ �extra_input_occupied_lenÁ�ð – �output_occupied_lenÁ�panickedÁ�š¥ š�š“šñ�Ÿ¥ Ÿ�Ÿ“Ÿ˜ £ £ ŸfinishÁŸwrite_final_leftoversÁŸwrite_to_delegateÁ¨ Ÿwrite_all_encoded_outputÁŸÌ�¬¥ ¬�¬“¬…° ° ° ¬flushÁ�µ¥ µ�µ“µõ€encoder_string_writerÁººººEncoderStringWriterÁ¾¥ ¾�¾�¾’ºÃ¥ Ã�Ã�à from_consumerÁÃ̺ɥ É�ɘ ºÍ¥ Í�Í�ͅͱº StrConsumerÁÓconsumeÁºÕ�ÕáºØáºUtf8SingleCodeUnitWriterÁÚ�Ú str_consumerÁºÝ�݅ݱ€€€€€µ ææææææææææ æ æ ægeneral_purposeÁóóóóóóóóóódecodeÁýýýýýýýýýýGeneralPurposeEstimateÁ‡» ‡conservative_decoded_lenÁýŠ˜ ýŒdecoded_len_estimateÁý decode_helperÁŽ ŽUNROLLED_INPUT_CHUNK_SIZEÁŽUNROLLED_OUTPUT_CHUNK_SIZEÁýcomplete_quads_lenÁ’ ýdecode_chunk_8Á” ýdecode_chunk_4Á– ó decode_suffixÁ˜˜˜˜˜˜˜˜˜ì¡ ¡ ó ó INVALID_VALUEÁó¦˜ ó¨ConfigÁ¨DecodeEstimateÁ¨internal_encodeÁ«BLOCKS_PER_FAST_LOOPÁ« LOW_SIX_BITSÁ«LOW_SIX_BITS_U8Á¨internal_decoded_len_estimateÁ¨internal_decodeÁ¨configÁó encode_tableÁ² ² ó decode_tableÁµ µ óread_u64Áó¹˜ ¹with_encode_paddingÁ¹with_decode_allow_trailing_bitsÁ¹with_decode_padding_modeÁó¾>óÀencode_paddingÁóSTANDARDÁóSTANDARD_NO_PADÁóURL_SAFEÁóURL_SAFE_NO_PADÁóPADÁóNO_PADÁæ æ ææEngineÁËçËõË‹ Ëé ËŽ!Ë¥!ËÛ Ò�ÒÿÔ�Ë encode_stringÁÖ�ÖÿØ�Ë encode_sliceÁÚ�ÚÿÜ�Ë‹Þ�Þÿà�à Ë decode_vecÁã�ãÿå�å Ë decode_sliceÁè�èÿê�ê Ëdecode_slice_uncheckedÁí�íÿï�ï ï æçóÿ"æõõžæ÷˜ alphabetÁúúúúúú ALPHABET_SIZEÁú�from_str_uncheckedÁ‚ �˜ �as_strÁú†ê †øú‰ñúú•#ú¼#úCRYPTÁúBCRYPTÁú IMAP_MUTF7ÁúBIN_HEXÁÛ ’’’’’’’’’Û ›�’ encode_engineÁ����’encode_engine_stringÁ � �’encode_engine_sliceÁ£�£�’encode_with_paddingÁ¦�’ encoded_lenÁ’ add_paddingÁ’ªñ’ ‹µµµµµµµµ½ñµµÀñµÂsourceÁµÄ”µ‹Æ�µ decode_engineÁÈ�È�µdecode_engine_vecÁË�Ë�µdecode_engine_sliceÁÎ�Î�µž    Û ÛÛÛÛÛPAD_BYTEÁóGeneralPurposeÁâ³!ã âÑ!å â¥!óèñóêŽóGeneralPurposeConfigÁìÿ"ìdecode_allow_trailing_bitsÁìdecode_padding_modeÁóóñŽó ó ôñæDecodePaddingModeÁö IndifferentÁ÷ öRequireCanonicalÁù ö RequireNoneÁû ææþŽææ�ñææ„•æ†ÝæDecodeMetadataÁˆóˆžææ Œ•æ ŽÝæ �ñúAlphabetÁ’symbolsÁ“ ú•Žú—ñú™Ýš úú�•úParseAlphabetErrorÁŸ InvalidLengthÁ  ŸDuplicatedByteÁ¢ ¢óŸUnprintableByteÁ¥ ¥óŸ ReservedByteÁ¨ ¨óú «ñú ­Ýú ú °•’EncodeSliceErrorÁ²OutputSliceTooSmallÁ³ ’µŽ’·ñ’’º•’¼Ýµ DecodeErrorÁ¾ InvalidByteÁ¿ ¿ó¿ô¾ó2à Ãó¾InvalidLastSymbolÁÆ ÆóÆô¾InvalidPaddingÁÊ µÌ޵ÎñµµÑ•µ ÓݵDecodeSliceErrorÁÕ’5Ö ÖóÕ¹4Ù µ ÛŽµ Ýñµ µ à•µâÝ88888!8%8%8>8>8>8G8G8j8j8j8r8r8s8t8t8}8}8ž8ž8ž8¦8§8¨8ª8°8°8´8¹8Ñ8Ñ8Ò8Ô8Ô8Õ8×8×8Ù8Ù8ß8ß8à8�8Ž8Ž8Ž8’8’8”8”8”8–8–8–8¡8¡8¡8é8é8é8ë8§8«8«8«8¯8°8°8°8±8²8µ8¸8ò8õ8õ8õ8Á8Î8Î8Î8Ï8Ð8Ð8Ð8Ñ8Ò8Ô8Ô8Ö8Ö8Ø8Ø8Ø8Ú8Ú8Ü8Ü8Ü8Þ8à8à8ã8ã8å8å8å8è8è8ê8ê8ê8í8í8ï8ï8ï8ô8ö8ÿ8‚8‚8‚8…8…8‡8�8�8�8‘8‘8‘8–8˜8˜8˜8š8ž8ž8‚8„8…8†8ˆ8¬8¬8¬8®8±8±8Š8Š8Š8�8 8 8£8£8¦8¦8¦8©8¶8¸8¸8¸8»8»8½8«8«8«8Í8Ï8Ï8Ï8Ò8Ò8Ô8¾8¾8¾8Ü8Þ8Þ8Þ8á8á8ã8Á8Á8Á8Ã8È8Ë8Ë8Î8Î8 ÓËóõ “ ­ BF°ˆ­YÚ¤ ¤g//“ 3¼ &4­ &>¡Ï‡¿Ÿ¤ ¥ � ??�Bœ&"Ua—•ò[ߤ ªŸgVVÏ Zµ I[ÿI\‹I^ I_±I`¿IbÞIcóId…IežIcp\[×0x¥ �Žç•EŸg��ƒ‘µ �’¸�“È�•à�–ð �˜��™¨�ò|¤å·>~¥ ŸF“� ¼F€#¼F� ¾¾�Â’º»*,LjeçÃ¥ ŸF�Ó 8�ÓëIëIåìI–æ4È ª¬KÄñ� Úڒܺº£î¦°Ÿƒ�õ‡‡Æˆ» ý‰ìýØõ�`�cÕŸgââ¥.ã³!óåÑ!óç¥!óæF Êà<Ç…äIËäIˆìì÷.íÿ"óî›/óï½/ós£›sÏâvD…ÅJù ÅJŸgÅJöÅJóÅJˆö÷ø•0ùú­0ûüÊ0‚ »NO%¯…ÄKù ÄKŸgÄK�ÇÄK÷±ÄKÄKÌÄK�Ljˆ¥1‰óŠžaM�iy÷±ÓLÓLÌÓLŸgÓL…’’÷1“‡2ååæ:4%~Ÿg´MÌ´M�Ç´M÷±´M´M³´M 8ŸgŸ ¡ó2¢£�3¤ó¥¦°3§ó¨©Ô3ªóB̓œy• ̧N�ǧN÷±§N§N¤g§N�§N…²³´¹4ñ)[z«½Õ£ŸgÖO�ÇÖO÷±ÖOÖOÌÖO¤gÖO�ÖO…¾¿À¥5ÁóÂôÃÄó2ÅóÆÇâ5ÈóÉôÊË�6Úé}ùZ°šŸgÄP�ÇÄP÷±ÄPÄPÌÄP¤gÄP�ÄP…ÕÖ×’5ØóÙÚ¹4«‚ZBEÁ Ÿg�R�Ç�R÷±�R�RÌ�R¤g�R��R¬�RÄP"C?:/‰Ÿª²½¾ÀÕfVš�èâôì�ö�ˆ—’«Ÿ·²Î¾ÝÕyV¬�;ÝÚµ�Õ ØëIŒ‡êâñìþö•’µ²Ì¾ÛÕ¨âðìýöóì€ö¾ìÀìƒö‹ˆœ’¯Ÿ¹²Ð¾ßÕ„öŒˆ�’°Ÿº²Ñ¾àÕ†öŽˆ™’­Ÿ¼²Ó¾âÕ†’‹Ÿ¬²¿¾ÂÕÄÕ É¤g Ÿg !çK� €#Óõ …Ë1ˆù öó�Ç÷±1Ì1³1�¬ÌÀ ŸFßüƒ\� µ o¾}„.æ’ÑŸF¬  ŸF4޵  \lª «ÄÎ4Ô ïwúX,ÎTÛýX ”ÔÀïÎ  ‘PΪΪChunksÁѪ¬óoÒª chunk_sizeÁóoSð #Ò±úX¦rwøïÁø“ ¢§ ÆQÜY ¸ÀÅ Ñ ,Å à  úX\ƒ"»XD¦  È[üƒ,|� ΟF"R ,Ÿ K ü� 4à  Àœ “H±Í\Ï \À ÌÀTÏýX \Ý#»X¤Ý4é ÑŸF#/ DéüÝ%tò ôÌŸFN „ò4 ×  á å  (ðå  ÌýýX<ä  ª#úXýXÌýÌý¾Îý‚É>�ÌIFëTýX’z düË !\Ë  ©Ì|Ü 'üÄ (   , ýXü½¾¢ ¨  (ô¦  àýýX<¥  ‘ý‰_àýàýÆâý’ür 1¡z÷ýX„mWüˆ %œ�  “H$ˆ \¡ ü� øòˆ &  �%ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwÍ\Ð\¢uz † ó­ ![ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw¸Ä¬©^—¯fÐ\‡ �%ºbÑc!›: üåêüœ³<CüõÄåëñüˆ &$ºb¤¢ †X,üÆ[,ƒ “H$‘‰_< ÜY-ÜYqÜY=řǙș­É™Ê™àË™óG*¤�R{9 Æ[Š ÜY•Æ[»ýX<ùý[� ‰_¨ýX'´ €^êýXÐýXŒý[KƒgŽš_yýX�ýX×ÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^ÑcÍ\ºbUÆ[» ‰_¨aìýXâf´Ñc¼»X²»Xº ļ ÉsinkÁÏbufÁ×�chunkÁ. ¶w Æ <!ŽQ^Í\�mýX–ýX šY§ÖYqôZw”\@ ³wúXàÎ]—ú]rƒ_ìñ_‡žaÝÿa…´bVÈd\ýX1024Ád� ŒýX%ýX9 D�ýXT ýXWýX„� �ýX$ 'ýXKýXMüç+ýX,ùýX ßg—;ÙýXãýX_ÁýXBUF_SIZEÁÜÉœÉ ÌD4Ý&ü‰f /ÌDõ9ü¸½//“ 3¼ &4­ &>¡Ï‡¿ŸÌDÄæÆ[,à ÌD4Ô� µ o¾}„.æ’ÑÌDî¼ Kµ L²�nô˜  ?¤À ÀoTÜ Æ[Lè üÀ 24Õ  ÌD??�Bœ&"Ua—•ò[ß�seìÕ ø >ü¼¼ü‰ oÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwÍ\ĤĤŤê  Ñâó:½ÖàM´è ên,à €g€gŠ‚gê ûcƒg¾hûcØ«q¢1È¡LÊŽqD�  Ào¢ Žq‡Æ[mv formatterÁG¬hK=„q¼ýX1024ÁýX4ÁýX3ÁýXBUF_SIZEÁýXDECODED_CHUNK_SIZEÁ |×   üÈ dÊ  ×g È  : ìÊ 0  dû   Íu„‰ ýX ŸgüÈR ,õ  ´d � eU üõ% L®  Íul¹ ýXÇvüÈ ,¨ åv …TDü¨ ´Û  ÍuÔó úXýX!ÇvüÈÆ ,Õ åv�cSüÕ9 „¢  Íu¤´ ýXÇvüÈ� ,œ åv€UEüœ- lÝ   ÍuŒì ýXÇvüȶ ,× åv€UEü×' ¤’  ÍuĨ ýXÇvüÈù ,Œ åv€UEüŒ5 „Õ  Íu¤ç ! řǙș­É™Ê™àË™óG*¤�R{9 ýXX !ÇvüÈ´ ,Ï åvÅš ŠüÏ- üÈÊ 4Š  »dO DŠ ˜ jü‰� "ÿq\² VVÏ Zµ I[ÿI\‹I^ I_±I`¿IbÞIcóId…IežIcp\[×0xŸF¥F,� Œs —  ¨d¨d DebugStructÁ«dñ�d¬dÇ �d­d has_fieldsÁ�d»1âî¦9èÏ…Í~<Í~®Í~ Í~’Í~Í~‰Í~Ï~Íu;ÍuíÇvà ýXëÍuŽÇv�Œ€ŠÍu>Çv1 šx<ÍuáÇvÔŒ€ÝÍu�ÇvƒŒ€ŒÍu?Çv2Œ€;ÍuîÇvá Ð{ìxœ}5äuŒ€Çv»åv’Œ€ÇvPåv1À€ÇvöåvÉŒ€Çv�åvnŒ€Çv2åvŒ€Çv×åv¸¦�Çv|åvì|ìl³  ´ úXýX¼—  ˜ úXýX$ª  Å™ýXüÜÝ VŸF¥F  Ú ýX ò ýX Ì ýX è ýX ‹ ýX¿ oü¥š ±}$Í ¥F4° »X4» ‰_*šxÐ{òreaderÁ2µ 6aýXBUF_SIZEÁýXDECODED_CHUNK_SIZEÁ„Œ ýX¤Œ  Ÿ ýX$ɇT]  ¸[µ&Íu¿'º tº D¾  ´wúX+T¾ +É ‡T] Ú†, !Íu6%„ì ýXþ Lþ  üã% Dã  øýX M 0 (d     « ýX$ ɇT] Ú†ê Íuô%„Ñ ýXäÅ   ɇT] Ú†K .ÍuU%Pöñ  àýýX dð  ª#È[¨aí @ *Ì› šxœµ ýXœÊ ýXôÊ    +ýXøøµ 3  ¶ýýXü´ 5  ‘ýšx¶ý¶ý¼¸ý‚¹ý’}£²ËJüü ýXë| büí‡ |ý  øxúX|í üš O üýw üÿ  ýX  ýX 6ýXýXä¨! ýX  ýX 5ýXýX„Ý! ýXüÝ!% ”ð! UýXɇT] چΠ7ÍuØ %dŽ"  ÀœýX�7�7ê ž7½ Ù6wQ?mˆ!؆  " rü¯ñ üÔÌ !ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwýX¥�Œâ ±}LÄ ý[Ï ]ýXx7Æ[ÔýXDØ ýX»ýX¡Æ[¸sEýX*úÍ\Œý[¨aèÆ[ À€¬ˆŒAýXªýXŒýX§ßgœßg¨ßgeýX*ïý¾hcopy_lenÁâ  IUýX Ú†U—‡Ú†êÉj¤°ˆ›Ú†@چ渊¥þ‹çꌅچ|º$ ýXdÌ$ ýXôº$  +ýXüº$) DÛ$ SýXɇT] Ú†é ;Íuó%¼ú$ ¥F|©% ‰_|¹% ýXdË% ýXô¹%  +ýXøý¹% ÌýýXü¸%" ƒ_ § 7  üú$a $Ÿ%  è¥F ê ü¤%6 üŸ%< øûú$b   �%�� Q$)5 Hüú$b mýX¤æ% ýX ýX üÛ% [ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw d¥� t �%��ᘊ.ÍýXýX|“& ýXd¥& ýXô“&   +ýXü“&* Dµ& SýX ɇT] Ú†ð<Íuú%DÉ&  ÀœýX¥�×&  süì#ë üï$è ´»Â��Œ�$ Ý�L‚$ âýX%ýXSýXHßg=ÚÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^á˜ýX��C ¥Fý[}ƒgš_¬ýXïýXýXßgâf½á˜ÆýXßg ÏýXýX@ýX5ßg*Ç-Ú$ó$ Æ )Ž‚�-SýX1SýXÚ†)ƒ_]Š—=¿—řچD d¥* ýXü¥*! É#‡T] Ú†x"3Íu‚"%|ß* ýXdñ* ýXôß*      + ýXüß** D�+ SýXÉ'‡T] Ú†2#<Íu<# %£+ t£+ D§+ —‡& T§+ & É+‡T] Ú†¤# !Íu®#%|Ò+ ‰_|â+ ýX|ó+ ýXüó+#   ,ýXøÿâ+4  ¶ýýXüá+6  ‘ý‰_ˆŒµE +Ä·, 8»X\²- 9»Xü²-< ì¾-  ÏŸF90ŒÜ-  ü¾-0 ü·,Æ |Ý,  ПF8xlþ, �- c üÝ,  ü“.“  uŸF¥F�RÄPUÿ Ý�ü·,ð <‹.  Ç_ÓL�RÄPuŸF¥Fñ¥ý¥¼� ü‹.œ ü·,¸ <µ;  Ç_ÓLÄP¥�vŸF¥FÄP¥�UÿÍ\•ø%þ¦ü½;1 üµ;: ø‚·,¹   �%ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwÓL¥�Ów|ˆ›ü·,¹  mÓLœ‘< ! Ð{d‚< !ƒï; [á˜ý!Å™-4‡< " Ð{àýXÜà< $ ýXüà< #$ þ< ýX%#Ô£> & û‡üÓ>* ' ¾"Dô> áúXüÿ=‘ tÿ=  ø,ÄP&X'I%*üû=–  ÀœýX¥�%!(œÊ? ) Ð{üá?+ + Ð{üž@) -, wŸF¥FýXýXUÿý¥-üá?g š@  þWýXýXwŸF¥F¢¬ý¥+…,w*üš@. üÊ? Þ?  �XýX)Ê*m(üÞ?k ü´?•  Ð{(üÓ@, .ýX .ýX6ýX.ýXü‰A$ /ýX /ýX6ýX/ýXü·A! 0ýX 0ýX6ýX0ýX|ñA 3ýXdƒB 4ýXôñA 534 534+25ýXüñA* 12D“B SýX1É2‡T] Ú†¢*<Íu¬*6%ܪB 7 ýXü§B  ÀœýX¥�7ÌB  tü²)š ü½+� ü¡,« ,3:€ü¥<… :��Œû) Ý�LÃ) ýXŒÎ) ý[è) 4 ýXO  šýXÝýX ýX ßgõ’^Æ[w6Æ[}ÒhˆŒ°ýXýXüýXßg ÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^á˜ÓLCا°ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwÓLÄP\ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwÓL�R8ÍŸF|«¦ÿ¥âfIá˜RÓL™âfuýX/ýX!¥�©û‡+ü‡ý‡NotFoundÁþ‡ÿ‡PermissionDeniedÁ€ˆ�ˆConnectionRefusedÁ‚ˆƒˆConnectionResetÁ„ˆ…ˆHostUnreachableÁ†ˆ‡ˆNetworkUnreachableÁˆˆ‰ˆConnectionAbortedÁŠˆ‹ˆ NotConnectedÁŒˆ�ˆ AddrInUseÁŽˆ�ˆAddrNotAvailableÁ �ˆ‘ˆ NetworkDownÁ ’ˆ“ˆ BrokenPipeÁ ”ˆ•ˆ AlreadyExistsÁ –ˆ—ˆ WouldBlockÁ ˜ˆ™ˆ NotADirectoryÁšˆ›ˆ IsADirectoryÁœˆ�ˆDirectoryNotEmptyÁžˆŸˆReadOnlyFilesystemÁ ˆ¡ˆFilesystemLoopÁ¢ˆ£ˆStaleNetworkFileHandleÁ¤ˆ¥ˆ InvalidInputÁ¦ˆ§ˆ InvalidDataÁ¨ˆ©ˆTimedOutÁªˆ«ˆ WriteZeroÁ¬ˆ­ˆ StorageFullÁ®ˆ¯ˆ NotSeekableÁ°ˆ±ˆ QuotaExceededÁ²ˆ³ˆ FileTooLargeÁ´ˆµˆ ResourceBusyÁ¶ˆ·ˆExecutableFileBusyÁ¸ˆ¹ˆDeadlockÁºˆ»ˆCrossesDevicesÁ¼ˆ½ˆ TooManyLinksÁ ¾ˆ¿ˆInvalidFilenameÁ!ÀˆÁˆArgumentListTooLongÁ"ˆÈ InterruptedÁ#Ĉň UnsupportedÁ$ƈLj UnexpectedEofÁ%ȈɈ OutOfMemoryÁ&ʈˈ InProgressÁ'͈̈TooManyOpenFilesÁ(Έψ³)Јш UncategorizedÁ*9ns+ïÎl»/ ÄP# Ð{û Ð{² Ð{X Ð{¯ Ó¬¥ ÿ¥® ßgè ßg¥ ßgb ½ýX ýX. ýX# ßg µýX“»Xú»X b64_len_to_decodeÁ"¾h' b64_to_decodeÁlÁ+ decode_metadataÁ|¥,  Æ à Ž+  Ñ ½ "òþSýXH áúX¥ SýXÚ†ÀÚ† —‡ÙÚ†©‹¤ï夞š¥qœ¦öҧNÅ™U�«¢ Ǭí ”­§ Ú†ø Ÿ. L™. ,-)/–` uŸF¥F��� Íuù/ï-`ù/ï&` ¾[ÍuX'Ó. ’5ÄPö. Dð. ܼ9  ¾4õ7 â5ýX$ý7 â5úX¼Ã8 ÿ¥ ýXüÃ8   Ä6 ó2ýX¼…7 ÿ¥ ýXì…7   4¬/ ¥5ýX$´/ ¥5úXœè/ ÿ¥   Ð{Üá/   üÛ/! úX= ¼�5  ÿ¥!   !ýXü�5     ‡ Ð{ƒ  „˜3  Ð{àýXüÔ34  ¾ Dÿ3 áúX ©4 š ýXüö4@  ¾  µ5 ·ýXüê69  ¾ ¼7 `ýXü¤8F  ¾ ƒ9 ¦; uhüµ.Ë ü“/ý üˆ3¢ ü©6” üÖ7® "ÄP˜. «¦°�R”. âfüµ.! ÄPÇâfü“/& ýX~úXnúXÐ{1Ð{jâf´“3 ýX¢ýX÷ýX0ßgýX?ýXþýX7ßgýXìúXÜýX›ýXÔßg«™™ÅÚÿ¥ƒÝ�Œÿ¥•Ý�žÿ¥§Ý�°ÿ¥¹Ý� dseÁ$È) ÿ¥deÁîÑ ŸbyteÁ—first_pad_offsetÁ ¶KÑ äÒÎÙXÂáúX¶Å— _ref__selfÁüÝ:(  &Íuþ u½™Å*ÍuJ9ÔÐ;  û‡üÁ;- tÁ; �«- ì; &î; vV¥�À; þ¦mÄP ¾; ª¶|›“�«…¼§@ ÿ¥ ýXü§@  ,ýXÇ@ wÙýX¦@ Ó¬ïýX4Ÿ@ ýX¦ßg|ÿ¥Ý�Ñ ,„ÿ¥>ÃÏTŽF ¥FžF xüçE7 ¥F ‚F ±}$ùE  ,I·K t·K D»K —‡&T»K &,ÛK ÀœýX¥� ÞK ýX,-H|ÁL ýXÜÁL DÔL SýXÉ6‡T] Ú†,--Íu,-%|õL ýXd‡M ýXôõL      +  ýXüõL*  D—M SýXÉ:‡T] Ú†,-<Íu,- %|»M ýXÜ»M DÎM SýX dåM ýXŒåM  õM ýXü¸M~ d”N ýXÄ”N D¤N SýX; E É>‡T] Ú†,-lÍu,-%„ÓN ýX¬ÓN  çN ýX$œ¼O ýXü¼O) ”ÓO UýXüÐNå œƒP ýXüƒP( ”™P UýX=GÉB‡T] Ú†,-ŽÍu,-&„ÛR ýXüÛR% ”îR UýXÉF‡T] Ú†,- 7Íu,-%„™S ýXœ¬S ýXü™S& !  ! ,!ýXü™S< ”ÃS UýXÉJ‡T] Ú†,-NÍu,-"%„äS $ýX¤äS #$ ÷S ýX$#ÜäT ŒéT  rŸF¥F$äT ûT H´éT ,®U % üÁU¶ dÇU 'ýXüÇU &'ŒÖU TýX&$|ÀV *‰_)*ý[|ñV ,ýX|‚W .ýXd”W /ýXô‚W 0./ 0./+-0ýXø…ñV/ + ¶ýýX,-üÀVd \åV  ùxúXˆŒ)Ù+F ¢W ýX(üåV? œ¶W ýX ÈW ýXÌ‘X ”–X  sŸF¥F$‘X 2¤–X Ј‘X  ¿—2F1"31.3!" ,-Ô‘X 51mýXLÀX 65 ÈX ýX$6#‰ªX 41[ᘯ!Å™4-HÈl®Y %$·Y ,-$dˆZ 8ýXŒˆZ 78 ˜Z ýX$7(%4ºZ 9%9&'ÉN‡T] Ú†,-Íu,-:%,£[  ÀœýX¥� ¦[ ýX,-H4×[ <%<*)d¶\ =ýX„¶\ ;= Å\ ýXüÔ[… +dª] >ýXüª]! ;>Œº] TýX=+G;,-ÉR‡T] Ú†,-[Íu,-?%1Và ]A }ŸF¥FŒ€9Vè ]BýX‰Vß ]@ ABAV€ ]C@Œ€IVŠ ]D@Œ€IV¯ ]FCQV¼ ]GDÉV® ]EFGE./ùVé !]H ±šáVÍ]J Å™‰¥‰¥ ArgumentsÁ‹¥templateÁûcŒ¥Çûcg‡@#éó ùV�]]ùV� ] Ê[ýXýXH!V®]CQV´]DYVÀ]J§IE ^ ML ^ LMô ^ KL”¬^ UýXK<0Ôù_ N$ú_ úXýXdÌb PýXüÃb) DÃb °ˆP+ŒÚb TýX O1-l°c TN$½c  ª#šx£ý£ý¤ýÀ ˆÙÅQòƒåUTR,-–팾c S2Yü�c5 l’c  tŸF¥F$�c OL c S´«c R3ü’c0 øŠ�c6  ¿—RWQ4# UQ/ U56 ü�c6 WQmýXÌÕc ZšxH�ïc [ àýýXW\îc  ª#šx¨aZM[>Y7(‹Âc VQ[á˜Ó !Å™V-Hìl‹d ]NH�™d ^ àýýXW\˜d  ‘ýšx¨a]H^?\8)üÕcO |úc êŒYüÕc$ \ÌŠd X9üúc* ¼·d ýX Íd ýXÔàd ýXWdÞe _W ée ýX$ _:;ÉY‡T]  Ú†,-Íu,-`%Üþe Œƒf ¿ß$þe •f H´ƒf éf eLéf deüèf f”õf UýXýX- fd=>c d>UýXüèfT \žg  ï§cpŒªg TýX b>ôžg ŒÙg g Íuüèfƒ 4Òg  ÷WýXbjg8a?ÌÒg ü‹h7 haŒ±h TýXh@AÉ]‡T] Ú†,-IÍu,-i%4ýh k%kCBdši jýXüúh» Fd„j lýXd“j nýX„“j o ¢j ýXýX3 onDDm nEýXü„j plm plmE,jpýXÒFì¶k rjüàj† Dàj °ˆaüþj" r/qG'üøk* lýk ðí$øk qŒ‹l žl Hüýk% Àl }üòJÎ! ü�U� ü†Xñ ( / 6 ‡ ùVÿ Œ]ùVÞ Ÿ]üá_Æ ü³bô  üÿb¨  Ù à ç eü¿fñ üÖhÚ üÈjè s��Œ˜K Ý�LúJ ý[…K PÆ[iÝýXø¾:ýX}ýX«ýX ßg•2™ýXýXçýX­iÏ:ýXUýXýXâ�fýX�FÁýXýX3ýX(ßg¹ƒýXžT¡U ù ýXÍ\" ý[ä ƒgì ˆŒ] ýXÙ ýX¨ ýXÖ ýXË ßgÀ áœË �� âfI á˜R ýX¤ ” ù ýX Õ »  e ýXN ýX Î Œ€Œ€{ Œ€» Œ€¢ Œ€‚ Œ€v F ýXp ýXg ±š²š³š~´šµšNeÁ¶š·šMatchÁ¨±vXç]!Vâ ] řǙș­É™Ê™àË™óG*¤�R{9 œêË  ýX Æ[/ šxŒå_ ýXL·b ýXÜ áœì��6 ý[ž  šxº âfYá˜b ýXá Í\Üý[§¤€â¨aÖÆ[-À€b¨a\®€ýXüÃf" Ð{ÅýX$ýX:Æ[Q;ÍuµuMýXìÚh 3ýXûýXÝýXøìßg’ýXŒÌj ýX]'¾h,at_eofÁ8%Ú$ŠX 5Æ '4Ž}5left_valÁý C right_valÁý D¦$H decoded_chunkÁÆ N to_decodeÁÒ OdecodedÁ<ƒc WÆ  VŽ˜ W"b64_bytes_that_can_decode_into_bufÁ•ab64_bytes_available_to_decodeÁwjactual_decode_lenÁ]q4.SýXSýXSýX©SýX»UýXUýXZUýXªUýX¨TýXüTýX UýXh UýXs UýX TýX±TýXÊ TýX —‡tÚ†ËÚ†Ú†)Ú†7Ú†ÑÚ†¿ß²“âf‚ãý¿—ÓÅ™ÚÚ†‹Ú†€†ë"ÉjÏ °ˆc �í' ðíÎ ¿—” ¸ï Å™¢ ËðŒ êŒc چΠ¿ß© Éjs çó ¶ôÎ Ú†v °ˆ5ðí ú]  ýXû }Œ€'ýXQ6ýXDECODED_CHUNK_SIZEÁýX1024ÁdØ  ã ýX%ýX9 DØ ŠýXU ŠýXYýX„Ø  ç ýX$ 'ýXKýXMü». ‹ýX,Ð ýX ßg˜<ÜŠýXçŠýX_ÁýX3ÁýXMIN_ENCODE_CHUNK_SIZEÁýXBUF_SIZEÁ€’Ú šxè’ø ýX\¤ ‰_ “° ¶ýýX ° ýX ³ ýX4¯ ‹¤ i [  ”£  �’£ À’à ýXñ’©©]  ôÀ€ ’ý   ©fšx$&Œ€ ’›   ©fýXN&¾ Æ[ ’­   ©fÆ[ð%팀 ’Ç  §� §¤§¤ArgumentÁ©¤‚¡f‹0mÖ”49daj úXýXT‹ š  ‹gýXTýXÎÔÝù_š©.]I_Ÿ©] Ëg à ñ`©©]ù_Ÿ©)]ë žü�Þ @Gÿq\¶ ��ƒ‘µ �’¸�“È�•à�–ð �˜��™¨�ò|¤å·>~ŸF»G,” Œs › œêâÀ€Œ€Ï�Œ€À€âŒ€ÖÏ�AÆ[WÆ[„Òh∌،€[Â�ýX]Â�7Â�Â�ÊÂ�– ‘Š õ”–À€ŸŒ€¨Ï�±Œ€ºéœíÇÞÇê ¼‹¤VèŽÖ§�žç�e§�/Ñ‘!¤’Ctƒ!  Å™»Gä¬! ­! úXýX|‡" ˆ" úXýXüÉ ™ �ŸF»G ð! ýX ¹" ýX,Ò" è" £üýë †“¼§ »GDˆ »X4• řǙș­É™Ê™àË™óG*¤�R{9 »GBšx0‰_¸rµ v¢ýXMIN_ENCODE_CHUNK_SIZEÁýXBUF_SIZEÁ l¾* ؘ¼¾* <Ì*  íW»G0LÌ* +édƒ9l¹dƒ9l ­?Íuüë*) 'Íu /ä«+ ¬°+  §ŸF»G$«+ ¼°+ è–«+   �%ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwÍ\¥�Ÿuz†™là+ ؘ¤à+ $î+  «X»G 1  4î+ —Ç+ [á˜ü! �%ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw»G¥�ᘉ qÄü+  Íuüà+5 4õ+  ÷W»G ò 7  üõ+ T ,  Àœ»G¥� °,  ¦üÕ(Û ")0ì«+ üÓ+]  ê�Lñ( †“Lã( è ؘ ¿ÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^á˜Í\°ò›ëâfáá˜ê»G4×+ ؘ% ؘHÍuy¾Æ 'Žü,-Í\writerÁX 9Țማ¬º›}ì›R£�¢ä�`ûžÙl·- ؘ¼·- <Å- Èš+LÅ- &4ì. ÀœÍ\¥�,-Í\,-ü‡/ ÄŒ/  ªŸF»G$‡/ ÔŒ/ ø˜‡/  ì›I#/,-ìµ/ ýXüµ/!   Õ/ ýX% ™¦/ [ᘭ! �%ò›á˜7Ðä÷/ »X„È0 šxìÛ0 ýXøšÙ0  àýýXüØ0! Ëð Y8  !\”1 ‰_$Ÿ1  ª#‰_–í2,-–휠1  4ü÷/¿ d¥0  ÚŸFÆ[î üÇ02 ¤�1  ü¥0‘ ÄÏ1  Íuü÷/ñ 4È1  Ò_ýXÖO u;  üÈ1 ü÷1& ýX ü¬2 ı2 Ü£$¬2 Ô±2 ø�¬2  ì›?#/ü»3! ýX Û3 ýXü²/µ žË2 [á˜�!·¥-¨4ñ3 ÀœÍ\¥�,-Í\ý3  § üø,… ÓÚáü‡/ üå/‚ ¬²¸ü¬2 ò›TŸ- “ L‘- Y§ xº Òò›âfRá˜[–ýX±ýX\é/ ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwýXÖOºÆ[9À€‡¨aiýX„ý[ƒg<Íu´º 3ò›eâfÑá˜Ú»X Æ IŽm,-Í\€+õ Æ #Žq,-Í\à ȚÂÜ£cì›7·¥>Ëðõ¦ã´§¯Ѝ`Ü£ì›û·¥¤‘8 $¡8 Ô¹8 ؘü¹80 4á8  ñW»G2Dá8 Äþ8  Íuü¹8^ 4÷8  ÷W »G_:ü÷8 \¬9 ‰_ Ÿ¸9 àýýX´·9 ža C 5ü¹8• ,¥9  ‚ »G¦ü«9" ü¥9) ¬Ø9 ,è9 ü€:Ù    ©ŸF»G¥¬Í\UÿŒ€ “   üø9â ü9  º_ýX¥�Í\©ŸF»Gü±‡²ø9  ˜üü9Þ à> ¨ü¾7¢ ü¯8± ò›Tü7 “ LÓ7 ýX”Þ7 ��³8 ƒ°ÖřǙș­É™Ê™àË™óG*¤�R{9 ƒ°e¿¡…ÍuLÆ[ÙÒh¨a¼²}Œ€†Œ²�¹current_output_lenÁÏresÁÕ¼¯õý¯»ža]ˆ±>¬²¡”³: Œ€ô§: Ég‡T] Ú†,-0Íu,-%”ã: Œ€ìØ: ”£; Œ€ ü£;( \¶;  é§ ;DÂ; ¬¶; ü£;1 4Ì;  øWýX LDÌ; üˆ;L Œ²!ýX\Ü= Œ² ‰_2  ý[üÜ=! \è=  èxúX _Dô= ¬è= ä¤> Œ² ýX ¿> ýXüÕ:ú Ù> ©9Í\Š: ¼²OýXD�: =ýXe(åýX ýX€Ð{¹ýXãÍ\øý[CƒgKŒ€µŒ€¾Œ€ÇŒ²Ð“ ÙŒ²â“ ëŒ²ô“ ýconsumedÁ¹ë³5Œ€$Ø7 Œ²?Ú†ª·}Û·Sû¸º_ref__current_output_lenÁÃÏüìBë  ÄòB ýXäòB  �C ýX$ ıC ýXüÝC%  ŒâC  ¨ŸF»G$ÝC lôC üâC Nü×C+ p,ÒD €¥� ÜD DÜD $ÞD  Â7(  4ÞD '  ´èD   ªŸF»G ª¶üÜD"  ù±ª¶ª¶ x J  -4  ÀE   €¥�4ÍE  ÀœÍ\¥� ÌF  ¤G 1kà ] ªŸF»GŒ€9kè ]ýX‰kß ] Ak€ ]Œ€IkŠ ]Œ€Ik¯ ]Qk¼ ]Ék® ] ùké !] ±šákÍ] Å™œêùk�]]ùk� ]†ë!k®]Qk´]YkÀ]R=4˜G ÀœÍ\¥�,-Í\a l�ü­B÷ ©²ÍËÝ€¥�öªü�Cº üÎD6 ¼¼E ùkÿ Œ]ùkÞ Ÿ]ò›T×B “ LÉB GýXbýXl¡C ò›âfTÎD ¥�¹ ôÅÅ=Ç¿Ÿª¶¨Ç¿~¥�àý„Œ€ÅŒ€«Œ€‹Œ€OýXyýXp©þ!kâ ]‹ÿ@ôÅYDâfLð remaining_lenÁò›—›£›Ý õ�3‰‚+¦˜#ï½_†¿¹Þ¿g†ëÑò›è¥�ï® û‡#ÁЪ ǿ÷ÿ òF  ýXUdªøŒ€‚ýXR‘l¬M ؘü¬M! $ÇM £�,4ÇM üâM)  'Íuü¬M` 4ÛM ûžT3üÛM1  ‘N ’N ü�M‘ «»G  M †“D“M ؘÊ¿¡èÍu³"T£�öûž¾†“–†“œBlâV ؘ¼âV <ðV Èš+LðV &énƒ9l¹nƒ9lˆ›ü�W* (Íu *„ÒW DØW —‡,ÒW TØW (,øW ÀœýX¥� ûW ýX,-AÄ„\ ýXä„\  Ÿ\ ýX$ ÄÁ\ ýX$î\  üî\4 Œ„] ï½ & \–] ô„] üî\z Þ]  º_Í\¥�ýX±ŸF»GÍ\ýXUÿÍ\ p,-ëÏ,â] ATÞ] 1qà ]  °ŸF»GŒ€9qè ]ýX‰qß ]  Aq€ ] Œ€IqŠ ] Œ€Iq¯ ]Qq¼ ]Éq® ] ùqé !] ±šáqÍ] Å™œêùq�]]ùq� ]†ë!q®]Qq´]YqÀ]R= «_  ýX,Æ_ ìë_ ýX ª`  ýXlƒa  ‹ýXìÛa ýXüÛa!  ûa ýX%& ì™b ýXü™b!  ¹b ýX% Ét‡T] Ú†,- 3Íu,- %,Ìb $\Ìb #$ìÚb %ýXüÌb+ &#% &#%,"&ýXüÌbD !"¬ûb ŒýX!ìÈf 'ýXü°f5 (¬°f ŒýX' (!ŒýX'ü™fL (ýX¤…g *Ä…g )* œg ýX$)Éx‡T] Ú†,-!*Íu,-+%„öh .šxì‡i 0ýXø¢‡i4 / ¶ýýX0¬¦i ŒýXü†i6  ª#šxˆŒ.q/O-*,ãi 2¤ìi 4¸¥éi 3 ¶ýýX éi ýX4Ìèi  ‘ýÈ[ˆŒ2k3T1*üöhŒ |Òi êŒ-üöhF 1üâi ,üÒi0 \Ÿj ¼»X„Ñj 7šxÀ¨âj 8 ¶ýýX âj ýX¬åj ŒýXÔáj þ‹7c8U6 \–k :‰_$¡k õ¦:),-–í«¢k 9+üŸj™ |«j ”\¼è6üÐj+ 9¤‘k 5ü«j� 1|à ] < °ŸF»GŒ€9|è ] =5‰|ß ] ; <=A|€ ] >;Œ€I|Š ] ?;Œ€I|¯ ] A>Q|¼ ] B?É|® ] @AB @ù|é !] C ±šá|Í] E Å™œêù|�]] ù|� ]†ëC!|®]>Q|´]?Y|À]ERD=,þk G¤„l I°¬„l H ÌýýXIăl  ‘ýÈ[š_GVH?F)üõk& Füól! ýX “m ýX„àm  ïm ýXüÍn% JlÍn ‹ýX¬Ýn ŒýX* J,‹ýX*ŒýXü½n5 JýXüØa« * 1à ]L °ŸF»GŒ€,äp O\äp NO9è ]MN‰ß ]K LMA€ ]PKŒ€IŠ ]QKŒ€I¯ ] SPQ¼ ] TQÉ® ] RST R ùé !] U ±šáÍ] W Å™œêù�]] ù� ]†ëU!®]PQ´]QYÀ]WRV=1‚à ]Y °ŸF»GŒ€9‚è ]ZýX‰‚ß ]X YZA‚€ ][XŒ€I‚Š ]\XŒ€I‚¯ ]^[Q‚¼ ]_\É‚® ]]^_]!"ù‚é !]` ±šá‚Í]b Å™œêù‚�]]ù‚� ]†ë`!‚®][Q‚´]\Y‚À]bXaB ÿq d ýXDùq efde fed#3cdìØq gýXüÇq/ hgýXýX% h/ýXýXg$üÇq: šxgcü“r" iýX ´r ýX* iýX,ýX%VýXiýX,Îr  ÀœýX¥� Ñr ýX,-A,ör l\ör klüör# jk¬„s ŒýXj*'„äs ošx,øs r\øs qrp®õs p ¶ýýX õs ýXq„ôs ÕØoupJn( ,•t süäs7 |…t êŒnüäs s.m)´…t ,Ét u\Ét tuü©t+ ýXt,ìt w\ìt vw|ét  ÀœýX¥�v,-AdØu yŒØu xy èu ýX$x+-díu {Œíu z{ ýu ýX$z,-É…‡T] Ú†,-"8Íu,-|&lÞv ~ôÍv }lÍv ‹ýX~}.1l¶w �ü¶w% ‚�¬Æw ŒýX! ‚�#ŒýX/D€‚ýXü¥w6 l¥w ‹ýX€ 01ɉ‡T] Ú†,-#nÍu,-ƒ',¸x †\¸x …†,Çx ‰\Çx ˆ‰üÆx% ЬÕx ŒýXýX/ Šˆ2B‡ ˆCŒýXü¸x3 ‹…‡ ‹…‡32„‹ýXlºy �ü–y2 D–y °ˆ„ÌŸy �0Œ4(1�à ]�°ŸF»GŒ€læy ’üæy% “¬öy ŒýXýX/ “’5B‘ ’CŒýX9�è ]�‘‰�ß ]Ž ��A�€ ]”ŽŒ€I�Š ]•ŽŒ€I�¯ ]—”Q�¼ ]˜•É�® ]–—˜–67ù�é !]™ ±šá�Í]› Å™œêù��]]ù�� ]†ë™!�®]”Q�´]•Y�À]›]šG1�à ]�°ŸF»GŒ€üªz2  ¬Çz ŒýXýX/  Œ8BŸ ŒCŒýX9�è ]žŸ‰�ß ]œ �žA�€ ]¡œŒ€I�Š ]¢œŒ€I�¯ ]¤¡Q�¼ ]¥¢É�® ]£¤¥£9:ù�é !]¦ ±šá�Í]¨ Å™œêù��]]ù�� ]†ë¦!�®]¡Q�´]¢Y�À]¨]§G\øz ½»X,¢{ «ð±¨{ ¬ àýýXŒü§{  ‘ýÈ[¨a«M¬Dª;-\Ú{ ®‰_dæ{ °p³æ{ ¯ ÌýýX°„å{ ƒ_®W¯9­<"üøzˆ |„{ ”\½ùªü¡{& ­üÕ{ ©=ü„{| üèz˜ ±© ±©>1±ýX$û} ´d’~ µüû}$ Œ€~ ï½´7µ.³?ü€~ ü¥5 ·¸Œ¶ ²ŸF»GüÏàý·¸üû}à ¡  º_Í\¥�ýX²ŸF»GüÏàý³µ¶�²@ü¡: üñ° º»¹ ³ŸF»G¥�¥�UÿŒ²Œ€º»üû}§ <é  Ç_ýX¥�¥�³ŸF»GÇýÕý²ì¹žAüé¹ ¨� °ü¢V†+ ü¯\Ä ùqÿ Œ]ùqÞ Ÿ]üŒ_œ" ü¶_ò! üÖ_Ò! ü“`•! üë`½ ü•jœ ù|ÿ Œ] ù|Þ Ÿ] ùÿ Œ]ùÞ Ÿ] ù‚ÿ Œ]ù‚Þ Ÿ]ü˜x� üõx³ ù�ÿ Œ]ù�Þ Ÿ]ù�ÿ Œ]ù�Þ Ÿ]¾��lÇV “ L«V Æ[,¶V § 1ëÁDýX_ýX\³\ ò›“ !àýUŒ€–Œ€|Œ€\Œ€P ýXJýXA©þ!qâ ]ì‹ÿýXÄ�_ Æ[Lº_ ýXtÚ_ ýX„—` ýXŒï` býX}*ýXEuýX¹ýXâÆ[øýXäßgÙýXwßglýX(ìÍ\Èý[~¤€ÛˆŒ½ýXØÆ[#Æ[yˆŒfýX|ýX™j Æ[†À€ßˆŒÕý[eƒgƒàýÚŒ€Œ€üŒ€á Œ€Õ ¥ýXÏýXÆ©þ!|â ] q‹ÿ–Æ[Æ[Hš_4ýXJßg¥àýꌀBŒ€ ýX"Æ[8Œ€Œ€õÅýXïýXæ©þ!â ] ‘‹ÿ¶àý'Œ€jŒ€OŒ€-Œ€ íýXýX©þ!‚â ]·‹ÿÝúXdýX‰ýXt{ýXA5ßgÝ#ýX9Æ[OÍ\vý[³¤€ˆŒ÷ýX Æ[#Æ[¸ýXuÆ[‹ýXUÆ[kýX5í ýXÇ • ýX«  ýXp ýX‡ ßg€  ýXÌœx ýXÖ Æ[í ýX· ýXÏ Æ[æ Î ßgz ýXÔùx ýXG àýo Œ€ Œ€” ýXø ýX  Œ€‰ Œ€z A ýXq ýXe ©þ!�â ] ‹ÿ, àý7 Œ€Ô Œ€\ ýXÀ Ç Œ€I Œ€:  ýX1 ýX% ©þ!�â ]Å ‹ÿì ýX¨Æ[O Æ[† ¨a ý[ñƒg= š_! ýX8 ßg®��Ýò›^“ ‡ýX€ÛüJŒ€SŒ€\ŠþÇŒ²ÐŒ€Ù»X»X%inputÁ/ current_lenÁ õ�D‰‚<¦Øextra_input_read_lenÁÝŽŒáorig_extra_lenÁò encoded_sizeÁ max_input_lenÁ¶O 5õ�î >‰‚æ ?¦ý Cõ�œ P‰‚” Q¦‹ Uõ�Ž[‰‚…\¦Q`input_complete_chunks_lenÁY„input_chunks_to_encode_lenÁ@Œõ�“”‰‚‰•¦ü™õ� ¡‰‚ ¢¦µ¦ À‹ýXÍŒýX�ŒýX[ŒýXgŒýX{ŒýXCŒýX¨‹ýX¦ŒýXÀ‹ýX¾ŒýX%‹ýXïŒýXûŒýX¶‹ýX&ŒýX2ŒýX,ŒýX8ŒýX”ŒýX ŒýX'Èš#ˆ›í"—‡Ã"ï½ð!ÛÏÉ!†ë‚ Ú†EÉjÚ†æÕØoÑÙùêŒÏþ‹@õ¦ ”\à†ëÆ¢ßQÉj0†ëb†ë.ÉjhÉjÕØ×ꌩÉjtÉjJÚ†–Ú†¡ÉjlÉjS°ˆ™†ë†ëW•ùÏ ƒ__ ”\< ï½§ Ëü6 ùý�  §z  ýX °´ Œ€9ýXRH ãy  ýX1@° Œ€^ýXRm Ûk  ýX=L°Þ Œ€jýXRy “q  ýXÿ°N Œ€,ýXR; áp  ýX­¼°´ Œ€ÚýXRé Ž^  ýXt$ƒ$°m Œ€¡$ýXR°$ æ]  ýXç] ±þ$ýXå] ëÏ%Í\ ã] %%¤© Œ€ÔÀ Œ€ü©1  ,ýXÚ ²íýX¨ ÛüÍ\ ¦ ýX¶ýX�ßg„Œ€*Œ€3ÞŒ¤”_ Œ€úŽn Œ€b_ref__extra_input_read_lenÁ _ref__input_chunks_to_encode_lenÁtñ€ Œ€üÑ€. Œ²"ýX ’� ¡� ³‹¥�ô Šþ¢¥� ò ýX Œ€¼Œ²Å“ Î›.$°V Œ²‹�_Œ€ÃÏ_ref__orig_extra_lenÁ üÚƒ Ä߃ Ü£$Úƒ Ô߃ øµÚƒ  ì›D$0Cl„„ ؘü„„# 4Ÿ„ ¼¯0DŸ„ ¶ùƒ [ᘧ"·¥.Àļ„  Íuü„„Q 4µ„ ý¯“ 5üµ„ ü„„f ,ã„  † »GM<ã„ ð„ ´ü®ƒÂ ÎÔÚüÚƒ  ò›TŃ “ L·ƒ º ‘ò›Çâfá˜!ƒ°×ɳZ¿¡{ÍuQÆ Zކ,-Í\°Ü£5웼¯´·¥ý¯G�¢lÞ… 但 ¬Â† º›$½† ¼Â†  Ù† ê† ¹ü½…­ üµ†/ Í\Ï… “ LÅ… ¤ò›†Iº›£ò›}üò ) Ú“Hüß E”ß  £ŸFÚڒܺº£î¦°Ÿƒ“Hk4�^ü´ { ¾ŸF“HµÇüí Ⱦ¾�Â’º»*,LjeçßF“H$¥ “Hd‚ »X4“ ��ƒ‘µ �’¸�“È�•à�–ð �˜��™¨�ò|¤å·>~ŸF¹¦n¹¦“º¢µ ¦®¦¤d³�¨ü³"4Í ¦ŸF¹¦7DÍüê) $'Íuü³a4ã Ò_¹¦¥�i=üã1ü³{“H ³´üˆ¬È“H §¿§D𹦩ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw¹¦¥�M �¨oÍu0ƒµó©¼ª=¿§ù¿§ÿl¨\¨ Œ5ü…9ü…" ÇŸF³HC4·1ÄÌüÙk¾¾�Â’º»*,LjeçßF³H$ö»X4ä³H½µ g’­Û¶­ÀdÝ�¨¼Ý,ê ‚ �¨2ðTêúÑüž\��ŒÁ ¿§L§Æ[²¶¬Š¾h O•¯�d°�¨¤°,½ † �¨2<½ÊÒü€Jò›t—à¯L‰¶¬w6Ô°}D½¬½<Æ Ô¥H+ÎdÆÙ×ü’GÍ\²  ¥HL�Íu¨Í\r¸²#¾h'Wí±¤Äõœõ „z‰!Ü• %Íuüõ<4Ž Ò_Íuà«à« Utf8ErrorÁá« valid_up_toÁýyâ« error_lenÁýy"øCð*u³H³’üŽ#Œ¼–Iä¼<Î Ô–I0 ÖTÎLælã ÀœýX¥�ößü¸¾üí‰ ��ŒÛ èHLÁÆ[ÌÍu ñÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwÍuå³áÍuÃÍ\ –I4ýXöš¾hž©¢âž³9ܳü´iÉj?4½ ÀœÍ\¥�,-Í\ÉàüüMò›t“ýµL… .ýX256Á ýX32Áìº  Ö ýX%ýX9 ̺ �ýXU �ýXYýXüº ! Ú ýX% 'ýXLýXMü� L‘ýX,² ýX ßg™<Ý�ýXè�ýX_ÁýX256ÁýX256ÁýX256ÁýX256ÁýX4ÁÿúX255Á@ýX64ÁýX256Á (¡Ü  &Íu°¡‹  ' ÍuúXýX@6Çv¸¡§  ( Íu úXýX6 Çvà¡Ä  )Íu ÅJ(  4  Çvéî Ýgÿóø·¼ { €+¡á éFÿqR äI]ŒseÍumÍu^Çvf °½rÍu4Çv< ö½HÍu Çv  ÅJ °À)Öœäïö¿Çvå’ÀÇv¨®ÀÇvkè¾°¢‹ °½¸¢§ ö½à¢Ä ÅJ †ÅJ-5(¢ã â¢è ë3äI>Ë¿F°½Îö¿Öö½»’ÀÃÅJ§°À¯~ˆ †°½ †ö½üÁæ´¹ DÆ  $d¹  ²1A Î ´ë Dø  $dë  µ1A € 4� ü˜ ˆ â Ÿ ¦ §üÂä äI$‰ ´MDÓ ÅJ4è °½#ÖÅ$ö½çÖÅçÅJ¨·'>¥!BpýX4Á?0x3FÁ?úX0x3FÁ„©H T¼H $½H úXýX@üÌHš LÚH  æH  ýXüñHo T÷H ,÷H ÿH @ýX> €I ¼¦I ,·I     (ýXýX@>  HýXýX@ c°½ ,�I   œ�I   ýXýX@$  .ýXýX@ ü�I-   ¼I  ½I   TËI   ÔI ýX$  'ýXK ýXü‚I^  Í\“ßI Ô Ü �ø“ñHo  Í\>D åI dìI  ùI úI ²üƒG÷ ü¥HÕ üÖH� °½D¼G ÖÅD¤G °½àÍ\‹ýXºÍ\P–ýX–úXQýXQ`ýXñäßg|òÍ\ùÿ·'|³!_÷5Ì@ýX64Á@ýX64Á„¨L ¤»L l¼L ¥úXýXLÐM  ÜM  ýXüãMú  TéM ,éM ñM @ýX> òM ,·O ü“O  ¼“O  ,¤O     (ýXýX@>  HýXýX@ c °½ €  ýX ²O  ü†O.   ýXýX%  /ýXýX ü†O<  úX ÁO  ÂO   TÌO  ÕO ýX$ 'ýXKýXüôMé  Í\”ÜO   °ø”ãMú  Í\?E ÜO dãO  ðO ñO µüÛK– ü¤LÍ üÌM¥ ö½L”L ÖÅDüK ö½ýXÝÍ\ÀÍ\PºýXºýXuýXiúXhýXhwñßg†ûÍ\ ·'†Ñ!‹÷jÖ’¥úXýX256ÁýX256Á(£ïS £ôS ò&+1ÅJ=°ÀENX (¥üS  *Íu ¥ªT  +Íu'Çvø¥ÄT  ,Íu ( Çvø¥êT&  -Íu ÄK)  5  ÇvÍÒè¾ßäÒ×¥ª w | ¥�T õ%ÿq1°À:ŒsBÍuJÍu;ÇvC MÍuÇv&ÏÙ/ÍuÿÇv  ÄKƒÚ­œ»ÆÏÙÇv¼ÏÙÇvŽ�ÚÇv_è¾ìüŠZ#   öüÏXé ì$´Y ,âY  ·Z ¾Z ºüªX” ÅJ$ÀX ÄK}<é_ üÆ_H ìÄK �` ”` »üþ^– ÅJ$·_ ÅJ$Ÿ_ <¥_ {paddingÁ%O,Ðe ü¡eR ìÄK òe ùe ¼üÏdª ÅJ$’e ÅJ$üd ,‚e {²H$Üm ü´mJ ì ým „n ½üÝl§ ÅJ$¥m ÅJ$ƒm ÄK$‰m ÄK|modeÁ#Nœ¥q ÂÖÅ%2ü‘q-  œ‘q  §^ºq ÆÅJ 7 ½q üìpS ÂäIt€q ÖŲÖź´M”¦q ÖÅËGŒ´M€ÆÅJ_Á;CŒ´M ¦ÖÅ=´M„L�Œ´Mœãr ÃÖÅ%2üÏr0  œÏr Òà\4ør ÇÅJ 5 þr ü£r] ÃäIt¾r ÖŰÖŸ´M”är ÖÅÉGŒ´M€ÇÅJ_Á;CŒ´MæÖÅ;´M„J�Œ´Mœšt ÄÖÅ%2ü†t-  œ†t Òà\¯t ÆÅJ 5 ²t üásS ÄäItõs ÖŰÖŸ´M”›t ÖÅÉG�´M€ÆÅJ_Á;C�´MĦÖÅ;´M„J��´MœØu ÅÖÅ%2üÄu0  œÄu Òà\4íu ÇÅJ 5 óu ü˜u] ÅäIt³u ÖŰÖŸ´M”Ùu ÖÅÉG�´M€ÇÅJ_Á;C�´MŦÖÅ;´M„J��´MÜýw  Ìýw  º!ü×wB ÆÅJ¤æw &_Áü�y; Ü�y  Ì�y œë%3 :œ°y  »F,Äy  Ô°y  Éy ôéy  öü�yy  ÄÐy  ½¬=üÐy8  ‡z üæx£ ÇÅJ¤øx ÅJøÅJöÄK’<_Á,¢+t¢+4¨+ ¥�È[0D¨+Ü–+,–+ Ô$œ+U, ¶+·+üì&ËÒ³H4š' àî,†'®î,�'Æ[Ï ®îê'ŽŒ+j¨îÚîÚ®î­®î³ d©( ŒÄ(|×(4Þ( Ñ�4×(DÞ(ü×( tç( ôÌöðT„ç(ü¸(@\¸( ¨�R%ü‘)/ .-Íuü¸(‰4Š)¶ôY4üŠ)7ù¦„ !±¦„  šDúX ã)úX dæ) O¨*  $«* ª#…C…CüˆC¾hÐ=‰C¶Ð=ò¹ÚàÅúXÅFÅFÆFGlobalÁ Ä› +ÉÑ–í “,-–í—¬*  ›ü‚*Dœ‚* ¦öð\–* d£*4±*d¹*  <ç*  ´Õ*ŒÕ* �5:   tó* / ÍuüÕ*-4ì* Ò_³HøIøI FromUtf8ErrorÁùI¼ æ4úIerrorÁæ4ûfFP7#ü. £ƒ  ´ì* ‹+ Œ+ü«'á/ ? Ô4ü¥(çüÐ)¼³H4Ú' öð4·'Æ[\Ã'ýX¯Ð{-ýXªq §ñ­Íu&¬ó<Ô)Í\íý[— ¬ó´ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw³Hôõø¬ó$ÍuäXµ á input_bytesÁð¥�¤¾hÍ { Éj­ðð¤¡ñ{ÖñM¶ôßòí¦ó�Ëôô®õ—ëõb¬óí,ä5tä54ê5¨î%Dê5üØ5',Ø5 Øàî$Þ5JTô53 „6…6ü�2„ÖÍ\Ë2Ïï,¢2®î,©2 ³HT³2Æ[Ôíïì0ŽŒ4 output_bufÁ?‡¨î—ûþ®îÊ®îÐüî3,üî3  !T�4%ü©4,ü©4$ öð4Î4).Lû4 ü©4\4ç4 öð“ ­ BF°ˆ­YÚ”\î4 fôç4üž5$  0"Íuü©4š4—5 Ò_Í\Í\› <ü—5,Î5ØüÖ2øüß3ï Í\š3Ó÷4â2Æ[\î2¦üT‚3°þDã3Í\�ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwÍ\Í\e � µ o¾}„.æ’Ñöðè‚�ñ °þÃÍuVµ ߯øäßûè¬hë3°ýxÜýS¥þ¢ÿš,¬Dt¬D4²D¨î%D²Dü D', D Üàî$¦DJT¼D3 ÌDÍDüÒ=ûÚ‰¬ü¼>Ïï,û=®î,Š>ý[Tœ>Æ[Óíïë-ŽŒ1ßû6}¨îþ‚ô®îÀ®îÆ ŒÞ@|ñ@4ø@ðð4ñ@Dø@üñ@ t�A¡ñ>„�AüÒ@@\Ò@ÖñuB#ü«A-  1+ÍuüÒ@‡4¤A¶ôW 4ü¤A5TëA „ëA  üëA   ü¤B* ÀœýXÖO,-ÖO–D x˜ŒC ¶ýýX ŒCýXŒ‹C ª#È[ˆŒT�CU +ü«CBœ«CËô\¿C TÌC4ØCdàC5„üC ÀœýXÖOÇ ÑÜüæ>°ü¿@×üëB«‰¬üÛ?Ó÷4ÿ>Æ[\—?ý[T·?ýXdÃ@Ð{ýXl;ˆølÍuý£ýX¹Æ[Ðý[6ˆŒqÍ\µ Æø„ßû‰¥�Ž b64_outputÁTïB ÷Éjðð¡ñçÖñǶôŽÉjYó‡ÍËô¢,ÑPtÑP4×P¨î%D×PÜÅP,ÅP ààî$ËPI+ åPæPüßI‡ÞÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw¬óÄPä�JÏï,ùI®î,€JÆ[íï,&ŽŒ*¹¨îHŒŒ(®îý®îDÈK ŒøKüÓK7 ìÚK Ïöð4ÓKFüÚK0D±Lü±L¤ºL öÍöð4´ºLù§„ !±§„ ßò ®LúX a4\©M  ê"¬ó ( 1D¶M üôLK|ŒM Ðöð4ôL\œM ƒR üŒM3üôLÙ<ÑM Ç_ÓL�RÄPâöðñ¥Í\ x,-ã‘üÙMó üÑMüø›ôLÚ  �%“´ w &+ 7 JüôLÚ mÓLüôL÷ýX4úOôúOD�P ¬CúXéó/lŠP ¼�PœÍO [ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw dÄP1s �%÷Œ÷“‰ V ºP 4ªPT§P Àœ¬óÄP<D»P[c)ƒü´J‡ °à4üÄK÷ü˜L£üàLÛ„‹’ ÷ŒäãJÓ÷4ÀJÆ[\ÌJÏ�gýXZ¬óTœLýX Ï�"ýXläLÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^÷“ÓL“´sí´¾ý[¶ø(Ï�ûâf€÷“‰ÓLÍ\ζøè¬óµ  ÆøestimateÁ…bufferÁ bytes_writtenÁÆ Ž˜ ÉjƆ�¿É�nßò?Ä� ‘‘»Ô‘€®’-»“¥Ú”;¬óä¬óëÏ�ò ãM<ÝM#)ª–` âöð��†Å™Åùªï-`ùªï&`¶ÅO$ ™N’5ÄPÌOâ$üûM%ÄPÜMã‘C�R ÚMâfüûM �™ÅÇ›$›ƒ„¶Å¿ì†O 2Íu âÏ™Å>ÍuJM,ÞctÞc4äc¨î%DäcüÒc#,Òc åàî$ØcJ4îc3 úcûcüÍY® ãÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwÍ\ÄP¼´ZÏï,ôY®î,ƒZ¶ø4•ZÆ[$íï=0ŽŒ4Θ8ШîgÄžG®î®îœû[ 4‘\d‘\˜\ éCúXéó/,˜\Œß\üº\7 ìÁ\†�4º\@üÁ\0D™] ü™]0¤³]É� & ´³]ü™]b\Û] ä§ Aœç] üÛ] ü”^0  3.Íuü™]¬4�^¶ô ` 4ü�^8üÔ^$4Û^ ‡DúXéó4Ô^”â^ ö^úX ìÛ^¬Ÿ_d¦_ ®CúXéó4Ÿ_t¦_¨�µ_ ÌýýX¼´_ ª#È[š_i>)D±` üî_L|†`‘‘4î_\–`d£`N ü†`4üî_Ú<Ì` Ç_ÓL�RÄPçöðñ¥Í\t,-®¦üÔ`ó üÌ`üøŸî_Û ®’q  %1  Düî_ÛmÓLüî_øýXü…c#  Èb[÷“Á! �%¶Ÿ÷“7å Çc Èc“ýXüõb4Düb»“4õbÂüüb-4¸c ÀœÍ\ÄP,-Í\„Œ‚ŒüÖZò¹Éå 4ü÷[Ñü«\�ü€]Èü‡_ÁüÚ_î\cj˶Ÿ¼›[Ó÷4âZÆ[\îZ¶ø4‚[ýX ¬óÏ�D¯\ýXèýX”„]Ð{qýX¡Å—ºÍuYÍ\ý[‹ý[áš_¹ýXlÞ_Ú—Ä“´'í´nÏ�šâfB÷“KÓL­Í\ãýX�ßg˜- µ ôÆøùΘýstarting_output_lenÁ1º˜ total_len_estimateÁ buffer_sliceÁd‹_à˜õÆ Ž{9Ê¡‡Éj`†�YÉ�€£í¶ô«ø£ƒÀ¤AŒ¥ú‘‘°Ÿ¦y®’&´¨-»“Ï�Q Þ`<Ø`#)­–` çöð¾›Ä›†Å™Åù­ï-`ù­ï&`¶ÅK$ ”a’5ÄPÇbç üö`%ÄP×`®¦*�R Õ`âfüö` �™ÅÛ$›ƒk¶Å¿ì�b 2Íu ç¶™Å:ÍuJI,£mt£m4©m¨î%D©mü—m#,—m êàî$�mJ4³m3 ¿mÀmü°h�èÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwýX�Rü–iÏï,Ùh®î,èhý[4úhÆ[$íï=/ŽŒ3ð 7Ϩîfö²F®î®îŒ´lü�l7ì–l†�4�l-ü–l0ü•kÄ|­k‘‘4•k\Òk4ók[ü­k¬ü•kîël º_ÓL�RýXìöðÓLýXUÿÍ\},-ä¶œïlÄël�mêüÀiÍè³ü±jÓ÷4ÙiÆ[\ñiý[4‘jí´äÏ�ýX3µ 7Æø<ð @wÉjl†�c‘‘;Õ¶tôlýX‚mìêýXólä¶ÿÓLðldmÁ,ÙxtÙx4ßx¨î%DßxüÍx#,Íx ïàî$ÓxJ4éx3 õxöxü�rçíÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwýXÄPÔÿrÏï,Âr®î,Ñrý[4ãrÆ[#íï</ŽŒ3ð 7ΨîeƒºE®î®îŒäuü¿u7ìÆu†�4¿u-üÆu0üÅtÄ|Ýt‘‘4Åt\‚u4£u[üÝt¬üÅtî›v º_ÓL�RýXñöðñ¶Í\u,-𽜟vÄ›vüÅtô<Åv Ç_ýX�RÄPòöðñ¥Í\‹,-žüÍvëüÅvôÃxïü¤sŸõºÔæsÓ÷4°sÆ[\¼sý[4Ðsè³õí´<Ï�týXŒµ @ÆøEð IÉjņ�¼‘‘”á½\¶¾t¤výX²vñRýX£vð½hÓL vŸ¸ ‡ ×v<Ñv#é°ƒ9l¹°ƒ9lˆ›Üôw4Íu + �w’5ÄP¸xòÉüïv%ÄPÐvžè�R Îvâfüïv ”››{!ˆ›¾(±Á…±Æ…ÿ(ÄK3ƒÚ;DN(³Î…'.65 Íu³Ò…PX6Íu"mu7 Íu?Œ‘ Êg¢§¯³Ó…‚ÊÿqÕƒÚÝŒsäÍuëâfòûœ“ÅH´Õ…´Þ……@EKVƒÚ^ƒÚfâfmâft}î Š __self_discrÁ£ __arg1_discrÁºÂµâ…‡µà…Í\ƒÚ!+è¶ñ‰ýXýX'8ø¶ÒŠ(Ð{Ð{*/ ù±Ð{Ð{DIQV^k¶œ‰�H¶“‰ ÓLªÊ!÷ýXþýX¦�Ǧ�ÏOî \fÂÉù· ‰�·ž‰ Í\ªÊ$-7(¸¢‰ 8Íuè¸ñ‰  ÍuýX)Çvø¸ÒŠ(Íu Ð{*  6 Çv™ž Ûg¯´¡¦rw觉‘ë ÿqöªÊþŒsÍu ÍuýÇvŒ€ ÍuÜÇvã ¦�î¦�öPœ^iŒ€Çv^¦ÎÇv.’͆@ýX64Á@ýX ALPHABET_SIZEÁø¹¤ '°½(¹ì  ’¹ñ –-´M8ÖÅ@°½lö¿tYc¤Ã‘(ºó  9Íuøº¤ ' :Íu°½*6Çv_d ÙguzhmŒºø ˜¦ÿq±ÖŹŒsÀÍuÇÍu·Çv¾ ö¿Éö¿ÑñœþªÒÇvþ»Ñ»ü š»ú  Í\ÖÅ&0@ýX ALPHABET_SIZEÁø¼¤ '°½°½+0 ù±°½°½GLT¼‡ žH¼þ ÖÅÖÅö¿”ö¿œ7î DN¡ÔÆ\…¬“$”úXýX@d¶DŜŠ DÎ ¯€4TÎ ×L› § ýXü²q ¬¸,¸   lÀ€ýX8 Ì œí ,ú   (  9   M  ,ätÜýXýX@$ .ýXýX@üÜ$ ÿ € TŽ —ýX$ 'ýXKýXüÎU Í\¡¢» à r ø¡²q Í\>D ¢<´„­ ’ ¼ ÂÂüà €ü�Âü²‘ü—¬´M$ò ÍuDß °½@Æ[ÍuýXÙÍ\¼Í\h·ýX·úXxýXxýXˆ�ýX;.ßgÆ<Í\DK°½$·' ‡2ã source_bytesÁÏ÷ˆ6€ýX@ýX ALPHABET_SIZEÁ,²Dºœº  DÛÖ1Tà Ìü×fäÚ\Ú,Ú $àÉj.,à äUlé€ýXq õü�!   ŸüŒ& Àœ´M§N ± ¼,-a½ Í\28üÇü  LÙ å  ýXüôÅ ¬ú ,ú  l‚€ýX8  Ž$¦,³ d­ 3 ¹üé„lî$î,ö úX7  útÿ$ÿ4‡~úX7 Œí Í\ ìüËo„Î$ÎDÖáúX8 ,- Þ,- ü°)$Ô Ÿ Øü¬. Àœ´M§N Ùåëñ,- Ýü€&$¡   Ÿ ¥ üü+ Àœ´M§N ¦ ¹,-€º Í\28|²! Ä! ýXü×·" ÜÝ#\Ý$$!#$lë€ýX8# ÷$ü�{%¤’&\’''!,¡(( 0&'(A& ¥('„Á*! ÐýX$ *!'ýXK!*ýX ‰&%£�#,- ,- ’(˜'Š% Í\H&N%T¤+\·,,!”±-.,- .-, 3+, Ã,üÚ{/”Ý0$Ý11Tå22+0012A0 î21ü•(4$¸554 Ÿ5 ¼5ü‘- Àœ´M§N4 ½4 Ô0/ �+ˆ#" ¸!,-£2©1Õ/ Í\U0[/„ë6! úýX$ 6!'ýXK!6ýXüù•  Í\Ã+I#ƒ ‹9$ø£×·8 "Í\…8Œ#"T :  ©ýX$ : 'ýXK :ýXü�©   Í\u!|¢¸ › £ Yø¢ôÅ <  Í\?<E   üÐ">Dé?? %ÄÐ ‚?1>B ñ?üÍ& Àœ´M§N> ò> øùeé ¤ ª ,-86@„üßš ü®Ë üÕî ü¢— ü®‹ü î@ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw´M§Nüƒ ÍuDðÆ[î Íuî Í\® ¬ ýX¬ Æ[¬ ü÷F§NE Í\ž ýXÍ Í\ö¨ ýX¨ úXi ýXi ýX] d Í\"  úX àúXàü�^§NúXÍ\”’úX’üß[§N¾úX½ýX1Í\ýXÍ\ÈÆýXÆýXºü§cßg‰úXâýXâýXÖÝÍ\›™úX™úX�üðe§N\úX[ßg¬Í\&-ßgjÍ\ry´MJÍuI·'ò¼ å ÷ˆ  ÒÎ  probe_indexÁd! probe_byteÁÜ+ì €ýX� €ýX áúXK€ýX(½‘"(½À$ Ô3úXJR; Íu. :Çv{€ çg‘–l£½�$ °3úXà Ë<Íu.  :  Çvôùÿù   j½¶#�3úX;D=Íu0<Çvntÿù‚ˆn–œ¥> Íu³¹“ÅÇÍÖ½–"¬ñ÷þÿq §NŒs%âf-Íu5 úX ÍuHÇv0 ³ý<³ý½ÍumÇvÍÎýÖ³ýXÍu�ÇvhÎýqªœ¸__self_0Á®½ý3 ½ý¹ ñÎýÇvÏÿùÎýÇvfÿùÎýÇvþÿù%“Å,¾š"®¾˜" Í\�ý&0 H¿œ"+: J�ý[ h  }…’ 𢝠·�ýÈÕ ä�ýõ�ý$ 2 ¿À$�ýÔ3úX,�ý=Ô3úXT`ns ù±³ý³ýŠ� —¿�$�ý°3úX,�ý=°3úXT`ns¿ƒ„ Œ¿¶#�ý �3úX, �ý=  �3úXT  ` ns¿ƒ „ Œ¿¥"±%,3:A!M�ýV�ý_âfgâfov�ý�ý„âfŒâf”âfœâf¤³ý>³ýGÎýPÎýY³ýó³ýüÎýÎý³ý³³ý¼ÎýÅÎýÎ�ý�ý"�ý+�ý4�ý=�ýF�ýO�ýX�ýa�ýj tî ‚»Æ‘ÒÆž½ý< __arg1_0ÁP ½ýû½ý¤ºˆ±ü¿ƒÅ¿ƒ0¿ƒ¦üÃ*B ?@Íu"ü¡*g  ä¡*²ñL% ‡+ü‚*‡Œ´MD–*Íu�Íu—5_Áüà,B @@Íu"ü¾,g  ä¾,²ñL% ¤-üŸ,‡�´MD³,Íu�Íu—5_Áü˜/B A@Íu"üö.g  äö.²ñL% Ü/üÚ.„Ž´MDë.Íu�Íu—5_Áü¸0B B@Íu"ü–0g  ä–0²ñL% ü0üù/…�´MD‹0Íu�Íu—5_ÁüÎ2B C@Íu"ü¬2g  ä¬2²ñL% ’3ü‹2‰�´MD¡2Íu�Íu—5_Áüà4C D@Íu"ü¾4h  ä¾4²ñL% ¥5ü 4‡‘´MD³4Íu�Íu—5_ÁD©  ›�Ë¿´© 4²  ÒäIå’?,¹ l² Á ›üñP ³H4œ å’,� Ë¿ŠŽŒ7£ÂäI�““¿ÇÂäIÔ⛊˿þäI ÂäI¤€ 4‡  Òöð®î4€ ,Ž l‡ – �üªl ³H4ó ®î,Ú Ó÷4ä ŽŒµ Fˆ•šüñ ' lø  Ööð®î4ñ ,† T� üø š  üö¤ Í\ê ®î,² ¦üTÀ Ó÷4Ý ŽŒ!ßû%µ (_°–¼üì & dó  Úöð®î4ì ,€ T‡ üó  ” £üÑ Ã ‰¬üÆ  ®î,Œ ý[Tš Ó÷4µ ŽŒ ßû%µ (`ù—½ 1Êà ]4Ä dÄ  9Êè ]‰Êß ] AÊ€ ] Œ€IÊŠ ] Œ€Iʯ ] Qʼ ] ÉÊ® ]   ùÊé !] ±šáÊÍ] Å™œêùÊ�]]ùÊ� ]†ë!Ê®] QÊ´] YÊÀ]XBüð% |÷  Îöð4ð ,‡ 4Ž ô÷ |³ 4º ðð4³ Dº ü³ tà ¡ñ>„à '˜¬‰  ÌýýX¬ˆ Œ¥4‚ 8"üÞ@ \Þ ñ_Œê üý  ' ´  ýXü°‹  lý üÖ5 \ñ €£ŒÖ - Ôñ üœ,  E*ÍuüÖs 4• ¶ôZ3 ü•4 1Íà ]9Íè ]‰Íß ] AÍ€ ]Œ€IÍŠ ] Œ€Iͯ ]"Qͼ ]# ÉÍ® ]!"#! ùÍé !]$ ±šáÍÍ]& Å™œêùÍ�]]ùÍ� ]†ë$!Í®]QÍ´] YÍÀ]&X%B‰ ¦ü‚‡ ùÊÿ Œ]ùÊÞ Ÿ]üر üœí üÂÇ ùÍÿ Œ]ùÍÞ Ÿ]'Í\• Æ[,½ ý[4Ï Ó÷4æ ýX¬ö àý‹Œ€ÓŒ€®ýXÄÆ[ÛŒ€¡Œ€”aýX�ýXƒ©þ!Êâ ]+‹ÿQýXŒÜ ýXl  ŸˆøÐý[\š_‚ýXlÆ Ð{åýXýÍuÉàýmŒ€˜Œ€�Œ€sŒ€f3ýX_ýXU©þ!Íâ ]ý‹ÿ# ŽŒNð Sµ Wexpected_encoded_sizeÁqõ�ì ‰‚ã ¦;b64_bytes_writtenÁ< padding_bytesÁL encoded_bytesÁ<õ�‰‚v ¦ü$œ ÉjÀ†ë鈜§ððq¡ñPŒ¥ñ_à€£€¶ôC†ë>‰ L� l�  › ýXýX3 D EýXW¬§ L¿ l¿  Ë ýXýX3 D EýXW¬Ö  ü›$  ¬›    $\± çó . ½ ýX t±  ¾  d  Üý   ¬‚   àýX¬Î  ì  —  <¡ ¡  § ýX>$ˆ  Å™ýXl ÿ  € b<¶  �¬â  ÜÝ  Å™ýX ÷ üžà ¬Ì  üÌ$   \â €£1 î ýX tâ  ï ü³” \’ L    ñ  ýX  Á  ýX ¬�  \± ü�.   \¥ €£E6Ä¥  ¼  Æ æb ý ü  ý¨ü´Ì ü…û ü£Ý üÒ® üÀ- ü޹ Ð{lñ ýXLÍ <ß ýX¿ýX¿²ýXRýXREýXåÐ{åýXäâf…ýX|üó$ PýXPÏýXhýXýX£ýX—ýXÌ bytes_lenÁºˆÜÀ» ƒcomplete_input_chunksÁ complete_chunk_outputÁ½ вA encoded_remÁ±�ÎÎ$ ¶(ÎÉ$ ÖO ÖO",(ÏÐ$  FÍu“Å+08ÏÕ$ ¸Rÿq]„´eŒslÍus|œ‰““Å�HÐ×$  Ðà$ »,6„´>„´FOî \fÑä$ ½Ñâ$ Í\„´ *(Ôø (/ ¾B(ÔŒ â5ýXÔ“ â5úX6 ( š ¾  Ôü (ÔŽ ó2ýXç ¾J(Ôä ¥5ýXÔë ¥5úX6(U ¾¼Ôý ÍŒ’™  ÄP­ ÄP¸âfÀŒ€ijý±ýXÓúX¿Œ€(ýX0Œ€®³ýœýX¿úX¬½ý%__self_1Á½ýŒ½ý ˺ n †ýX4�¼Æ�¼‡ †úXx§¼:(Õÿ (/7GÍuDI“ÅV[c(ÕŒ â5ýXÕ“ â5úXž¦HÍuIÇv>JÇvßä égõú—� (ÕŽ ó2ýX- 6> Íu0  <  Çv`fÿùt z nˆ(Õä ¥5ýXÕë ¥5úXÄÍI ÍuKÇv@ L Çv ¬¾!™ƒ4Õ„ ÏOU\cÿqpɺyŒs�âf‰Œ€³ýòÍu¢ÇvÇv ÎýŒ€²ÍuÌÇv Œ€ÎŒ€�³ýoÍuúÇvšÇv‡Îý�Íu%œ3½ý´˺¦½ýJ ½ý˺ó “ÅŠŒ€Çv+ÎýÇv¬¾£›ÂÇvšÿù³Œ€Çv.ÎýÇv¬¾ÌHÖ† +: J!ɺ[ !h }…’𢝷"ɺÈ"Õ ä#ɺõ#$ɺ$ $2  (ÖŒ %ɺ%â5ýXÖ“ &ɺ&â5úXX'ɺi'â5ýXT(ɺe(â5úX|ˆ–›¿ƒ§¬ ´(ÖŽ )ɺ)ó2ýX,*ɺ=*ó2ýXT`ns ù±Œ€Œ€Š�— (Öä +ɺ +¥5ýXÖë ,ɺ ,¥5úXX-ɺi -¥5ýXT.ɺe.¥5úX| ˆ–›¿ƒ§¬ ´» ö  ¹É$*39BP°ìù ¹É !*09GÖ� ¡Ò±·¾ÅÌÓ/ßɺèɺñâfùâfɺɺâfâf&âf.âf6Œ€|³ýYŒ€Ž³ýkrÎý{Îý„›Â¹›ÂÂŒ€gŒ€p›Ây›Â‚Œ€p³ýMŒ€‚³ý_fÎýoÎýx›Â­›Â¶ɺɺ ɺɺɺ%ɺ.ɺ7ɺ@ɺIɺRɺ[ɺdɺmɺv€î Ž»Æ�ÒÆª½ýô ˺Õ ºˆ __arg1_1Áö½ý˺ˆØ½ýÊ˺«ºˆäõÐÅ<¿ƒÙ¹É'¿ƒf¹É™¹É!ד Ôב  Í\ɺ#,6(à… $+ Õ>Xàð ’5ÄP" †ÄP3;† Õà‰ àŠ Ü½Â�RÎ �RØâfßɺ¡ÄP¨÷½ý¿ ÐÔÒ(ጠ$+3FÍu@E“ÅRW_Xáð ’5ÄP‡J Íu.:Çv°µÿùÂÇhÔá‘ Þîó ÿqÿµÕŒsâfɺ¼Íu'ÇvË ɺÖÍuAKœY½ýq“Å|¹ØÇv!ÿùŒHâ“ +: J µÕ[ hy�Ž–ž«³µÕÄÑXâð µÕ ’5ÄP,µÕ= ’5ÄPT  `  ns ù±ɺɺ Š �—✠�á�£ª±½µÕƵÕÏâf×âfßæµÕµÕôâfüâfɺ+ɺ4¹Ø=¹ØFµÕ1µÕ:µÕCµÕLVî d»ÆsÒÆ€½ý« ºˆ¸ £øÛÌã  ããž  Í\µÕ&0D�  Æå’Ë¿´� 4¦  ÞäIå’=,­ l¦ µ ÆüÏf ÷Œäú å’,í Ë¿‰ŽŒ8¢ÂäIÙß”¾ÆÂäIÓáÆ‹Ë¿ýäI ÂäI¤¥ 4¬  Þöð®î4¥ ,³ l¬ » Èü®� ÷Œä‚ ®î,ã Ó÷4ñ ŽŒµ Hááœü� Tˆ  ãöð®î4� ,“ 4š ̈ £ Ëüñ² ¶Ÿ¼ã ®î,ª ¶ø4¸ Ó÷4Ò ŽŒ!Θ%µ (`‹ã¼üØ"" dß"  èöð®î4Ø" ,ì" 4ó" Üß" ü" ÎüÁ!» è³ü²" ®î,ü! ý[4Š" Ó÷4¡" ŽŒ ð $µ '_Ôä»=úXb'='Át§# Ÿ£'§N2úX9@|ÿ# Ÿ¦'§N2úX9@d³$ Ÿ©'§N2úX9@\Ø ¾À*ÄP5ýX<úXCJl€ ¾Ä'ÄP2ýX9@Œú ¾Ç*ÄP5ýX<úXCJ\ä Õ×'�R2ÄP9@&H€æú’µÛቫ,ÐK‹$4øMËùÛ 4òN ›®á)lúN �¯†*¤‰O  °²*œÍO £²€+\âO ¨³¡4„ïO²´‹4áP ÆÓÑ,léP ÈÔö,ŒøP ËÕŸ-œ¹Q Îמ¤ÎQ ÑØ’5\äQ¾Ùä6„ñQÕÚüÊRüLI Correct, fast, and configurable [base64][] decoding and encoding. Base64ÁüMKH transports binary data efficiently in contexts where only plain text isÁd™ allowed.Á¦�üªFC [base64]: https://developer.mozilla.org/en-US/docs/Glossary/Base64Áñ�\õ # UsageÁ��ü…LI Use an [`Engine`] to decode or encode base64, configured with the base64ÁüÒB? alphabet and padding behavior best suited to your application.Á•�œ™ ## Engine setupÁ­�ü±KH There is more than one way to encode a stream of bytes as “base64â€�.Áüý1. Different applications use different encodingÁü¯'$ [alphabets][alphabet::Alphabet] andÁü×GD [padding behaviors][engine::general_purpose::GeneralPurposeConfig].ÁŸ�Ì£ ### Encoding alphabetÁ½�üÁKH Almost all base64 [alphabets][alphabet::Alphabet] use `A-Z`, `a-z`, andÁü�PM `0-9`, which gives nearly 64 characters (26 + 26 + 10 = 62), but they differÁüÞ%" in their choice of their final 2.Á„�üˆOL Most applications use the [standard][alphabet::STANDARD] alphabet specifiedÁüØOL in [RFC 4648][rfc-alphabet]. If that’s all you need, you can get startedÁü¨'$ quickly by using the pre-configuredÁüÐSP [`STANDARD`][engine::general_purpose::STANDARD] engine, which is also availableÁü¤ JG in the [`prelude`] module as shown here, if you prefer a minimal `use`Átï footprint.Áþ �,§ \¡ ```ÁÜç  use base64::prelude::*;Áƒ �ü‡ 41 # fn main() -> Result<(), base64::DecodeError> {Áü¼ LI assert_eq!(BASE64_STANDARD.decode(b"+uwgVQA=")?, b"\xFA\xEC\x20\x55\0");Áü‰ JG assert_eq!(BASE64_STANDARD.encode(b"\xFF\xEC\x20\x55\0"), "/+wgVQA=");ÁdÔ # Ok(())Á<á  # }Á<é  ```Áñ �üõ KH [rfc-alphabet]: https://datatracker.ietf.org/doc/html/rfc4648#section-4ÁÁ �üÅ DA Other common alphabets are available in the [`alphabet`] module.ÁŠ�ÔŽ #### URL-safe alphabetÁ©�ü­NK The standard alphabet uses `+` and `/` as its two non-alphanumeric tokens,ÁüüMJ which cannot be safely used in URL’s without encoding them as `%2B` andÁTÊ `%2F`.ÁÕ�üÙYV To avoid that, some applications use a [“URL-safeâ€� alphabet][alphabet::URL_SAFE],Áü³MJ which uses `-` and `_` instead. To use that alternative alphabet, use theÁü�PM [`URL_SAFE`][engine::general_purpose::URL_SAFE] engine. This example doesn'tÁüÒGD use [`prelude`] to show what a more explicit `use` would look like.Áš�,Ã\½™øüƒA> use base64::{engine::general_purpose::URL_SAFE, Engine as _};ÁÅ�üÉ4ÙøüþEB assert_eq!(URL_SAFE.decode(b"-uwgVQA=")?, b"\xFA\xEC\x20\x55\0");ÁüÄC@ assert_eq!(URL_SAFE.encode(b"\xFF\xEC\x20\x55\0"), "_-wgVQA=");ÁdˆÀú<•Õú<�åú¥�Ô© ### Padding charactersÁÄ�üÈNK Each base64 character represents 6 bits (2â�¶ = 64) of the original binaryÁü—HE data, and every 3 bytes of input binary data will encode to 4 base64Áüà52 characters (8 bits × 3 = 6 bits × 4 = 24 bits).Á–�üšNK When the input is not an even multiple of 3 bytes in length, [canonical][]ÁüéLI base64 encoders insert padding characters at the end, so that the outputÁü¶%" length is always a multiple of 4:ÁÜ�üàJG [canonical]: https://datatracker.ietf.org/doc/html/rfc4648#section-3.5Á«�,Ô\Ιøü”A> use base64::{engine::general_purpose::STANDARD, Engine as _};ÁÖ�üÚ,) assert_eq!(STANDARD.encode(b""), "");Áü‡0- assert_eq!(STANDARD.encode(b"f"), "Zg==");Áü¸0- assert_eq!(STANDARD.encode(b"fo"), "Zm8=");Áüé0- assert_eq!(STANDARD.encode(b"foo"), "Zm9v");Á<šåú¢�ü¦NK Canonical encoding ensures that base64 encodings will be exactly the same,ÁüõMJ byte-for-byte, regardless of input length. But the `=` padding charactersÁüÃGD aren’t necessary for decoding, and they may be omitted by using aÁü‹>; [`NO_PAD`][engine::general_purpose::NO_PAD] configuration:ÁÊ�,ó\í™øü³HE use base64::{engine::general_purpose::STANDARD_NO_PAD, Engine as _};Áü�ü€ 30 assert_eq!(STANDARD_NO_PAD.encode(b""), "");Áü´ 52 assert_eq!(STANDARD_NO_PAD.encode(b"f"), "Zg");Áüê 63 assert_eq!(STANDARD_NO_PAD.encode(b"fo"), "Zm8");Áü¡!74 assert_eq!(STANDARD_NO_PAD.encode(b"foo"), "Zm9v");Á<Ù!åúá!�üå!MJ The pre-configured `NO_PAD` engines will reject inputs containing paddingÁü³"LI `=` characters. To encode without padding and still accept padding whileÁü€#NK decoding, create an [engine][engine::general_purpose::GeneralPurpose] withÁüÏ#30 that [padding mode][engine::DecodePaddingMode].Áƒ$�,¬$\¦$™øüì$JG # use base64::{engine::general_purpose::STANDARD_NO_PAD, Engine as _};Áü·%ZW assert_eq!(STANDARD_NO_PAD.decode(b"Zm8="), Err(base64::DecodeError::InvalidPadding));Á<’&åúš&�ìž& ### Further customizationÁ¼&�üÀ&C@ Decoding and encoding behavior can be customized by creating anÁü„'OL [engine][engine::GeneralPurpose] with an [alphabet][alphabet::Alphabet] andÁüÔ':7 [padding configuration][engine::GeneralPurposeConfig]:Á�(�,¸(\²(™øüø(0- use base64::{engine, alphabet, Engine as _};Á©)�ü­)HE // bizarro-world base64: +/ as the first symbols instead of the lastÁ”ö) let alphabet =Áü‰*c` alphabet::Alphabet::new("+/ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789")Á”í* .unwrap();Á€+�ü„+^[ // a very weird config that encodes with padding but requires no padding when decoding...?Áüã+:7 let crazy_config = engine::GeneralPurposeConfig::new()Áüž,.+ .with_decode_allow_trailing_bits(true)ÁüÍ," .with_encode_padding(true)Áüð,JG .with_decode_padding_mode(engine::DecodePaddingMode::RequireNone);Á»-�ü¿-LI let crazy_engine = engine::GeneralPurpose::new(&alphabet, crazy_config);ÁŒ.�ü�.2/ let encoded = crazy_engine.encode(b"abc 123");ÁÃ.�<Ç.åúÏ.�ÄÓ. ## Memory allocationÁì.�üð.PM The [decode][Engine::decode()] and [encode][Engine::encode()] engine methodsÁüÁ/JG allocate memory for their results – `decode` returns a `Vec` andÁüŒ0OL `encode` returns a `String`. To instead decode or encode into a buffer thatÁüÜ063 you allocated, use one of the alternative methods:Á“1�Œ—1 #### DecodingÁ©1�ü­1b_ | Method | Output | Allocates memory |Áü�2b_ | -------------------------- | ----------------------------- | ----------------------------- |Áüó2b_ | [`Engine::decode`] | returns a new `Vec` | always |ÁüÖ3b_ | [`Engine::decode_vec`] | appends to provided `Vec` | if `Vec` lacks capacity |Áü¹4HE | [`Engine::decode_slice`] | writes to provided `&[u8]` | neverÁ‚5�Œ†5 #### EncodingÁ˜5�üœ5b_ | Method | Output | Allocates memory |Áüÿ5b_ | -------------------------- | ---------------------------- | ------------------------------ |Áüâ6b_ | [`Engine::encode`] | returns a new `String` | always |ÁüÅ7b_ | [`Engine::encode_string`] | appends to provided `String` | if `String` lacks capacity |Áü¨8b_ | [`Engine::encode_slice`] | writes to provided `&[u8]` | never |Á‹9�¼�9 ## Input and outputÁ§9�ü«996 The `base64` crate can [decode][Engine::decode()] andÁüå930 [encode][Engine::encode()] values in memory, orÁü™:.+ [`DecoderReader`][read::DecoderReader] andÁüÈ:JG [`EncoderWriter`][write::EncoderWriter] provide streaming decoding andÁü“;LI encoding for any [readable][std::io::Read] or [writable][std::io::Write]Á„à; byte stream.Áñ;�Œõ;ø¡‡<�,®<\¨<™ø”ì< # use std::io;Áüÿ Result<(), Box> {Áü‰>  let mut input = io::stdin();Áüª>@= let mut decoder = DecoderReader::new(&mut input, &STANDARD);Áüë>/, io::copy(&mut decoder, &mut io::stdout())?;Ád›?Àú<¨?Õú<°?åú¸?�Œ¼?¬¦Î?�,õ?\ï?™ø”³@Ö®üÆ@JG use base64::{engine::general_purpose::STANDARD, write::EncoderWriter};Á‘A�ü•A;ѯüÑA" let mut output = io::stdout();ÁüôAA> let mut encoder = EncoderWriter::new(&mut output, &STANDARD);Áü¶B.+ io::copy(&mut io::stdin(), &mut encoder)?;ÁdåBÀú<òBÕú<úBåú‚C�„†C #### DisplayÁ—C�ü›CA> If you only need a base64 representation for implementing theÁüÝC-* [`Display`][std::fmt::Display] trait, useÁü‹D.+ [`Base64Display`][display::Base64Display]:ÁºD�<¾DåúüÆDLI use base64::{display::Base64Display, engine::general_purpose::STANDARD};Á“E�ü—EA> let value = Base64Display::new(b"\0\x01\x02\x03", &STANDARD);ÁüÙEA> assert_eq!("base64: AAECAw==", format!("base64: {}", value));Á<›Fåú£F�d§F # PanicsÁ´F�ü¸FNK If length calculations result in overflowing `usize`, a panic will result.Á&H€æú’µÛá‰)(«*(‹$)(ËùÛ (( ›®á)'( �¯†*&(  °²*%( £²€+$( ¨³¡4#(²´‹"( ÆÓÑ,!( ÈÔö, ( ËÕŸ-( Îמ( ÑØ’5(¾Ùä6(ÕÚ6)9)<)”ÃK3)œÎL|ÒL “+\ ©ç43ó‹$4;Ë å4ëI ’¶ýy ,œ^ü,RTDF¬pÓ«ŒQÍ$dÌPüG$XL°Ó«Œ‘Í$¤Ì�ü‡$otù$ƒ  ÿÆàîüù´ ”¿”¿!  þÆ àî\ŽÉ¿TŽ,“  üÞMœáäå äàî åÈ[ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwÍ\Ñ¿Bÿ  õ àî$úencodedÁ<€ü€1t‹¥ �ÿÆŸF4ªËŸF4¡ŸF¥ l¸� µ o¾}„.æ’Ñ¥ ŸFo¾}„.æ’Ñš ža4¸ ¥ ŸFüÊ2¥ �øÁ4߈Â4Ö¤ÂÏ Óüƒ2Š•Ã¤ÂBÿ ¥ ŸFµ Á+üåQ4ìæçè æ¤Â çÈ[ è“HºbBÿ� üþÆ“H ó “H$ö ¥ ŸF“H$ý¼ W2¬hc279¬ÁDÇýX¼çTíýXD®ýXü® Ó«Œ“ Í$¦ Ì’ ü‰ $TÀ ¤ ÕCBF°ˆ­YÚË ´Õ 4Õ  ¤ ³H¼•Ó«Œú Í$�Ìù üð $¤  ÕC!šü³/Áé é³H“ ­ BF°ˆ­YÚéBÿ È !¤ © Åü´ Ó«Œ™Í$¬̘ü�$¤ ##ÕC$% %¹TÛ,à""Í\üñFœôêë êÕC ëÈ[ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwÍ\ ÕCBÿ" ˆ" %¤ $�© “|ãLüda Enables base64'd output anywhere you might use a `Display` implementation, like a format string.Áe�¡Ï‡¿Ÿ34íñEG|†,†&// ¤ È[ü›&|›&//� µ o¾}„.æ’Ñ¥ ÌDüÆ0¤ 6¥ 7�8867üÐ ÓŒÑ4ÖŒD9ËÏü¸Füý63 Create a `Base64Display` with the provided engine.Á¿ïÑ ¥ ÌDŒDBÿ55 9¤ ¥ ÌD¼ .7µ :7üù<¤ ;¥ <�=<=;üÐ †ŒÑ4‰ŒD>¥g>þ‚$&ü¼B¿ìíî ìŒD í€g€gŠ‚gê ûcƒg¾hûcØ«q¢1È¡îÿqBÿ: Ã: >¤ ¥ ÌD$ćsK9üü lƒ &¤ @ªAA@ª¤ ™ •×Ä£ ªª턱 ØD"Ua—•ò[ßB‘ • ; £ &?? ¤ €g€gŠ‚gê ûcƒg¾hûcØ«q¢1È¡ªüÀ G¤ DªEDE•×Í ØDFG GÅ É TŽ ,“ CCÑrü¬ Lœ¯ ïð ïØD ðÈ[ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwÍ\ ØDBÿC à C G¤ ª$È ¼À<Î d—MüA> Implementations of `io::Read` to transparently decode base64.ÁÓ‰|þLÍ$�M¼ýLüôL"$ŸMIÏlfV\B@.0ü™ Dª ýXôŠ Œ� IýXü® ”´ IýXüí4 üÔT Q A `Read` implementation that decodes base64 data read from an underlying reader.Á© �t­ # ExamplesÁ¼ �<À åú´È  use std::io::Read;ÁÄß  use std::io::Cursor;Áüø( % use base64::engine::general_purpose;Á¡ �ü¥a ^ // use a cursor as the simplest possible `Read` -- in real code this is probably a file, etc.Áü‡6 3 let mut wrapped_reader = Cursor::new(b"YXNkZg==");Áü¾7 4 let mut decoder = base64::read::DecoderReader::new(Áäö  &mut wrapped_reader,Áü“$ ! &general_purpose::STANDARD);Á¸ �ü¼* ' // handle errors as you normally wouldÁüç  let mut result = Vec::new();Áüˆ. + decoder.read_to_end(&mut result).unwrap();Á· �ü»% " assert_eq!(b"asdf", &result[..]);Áá �<å åúlø ¥ W�XŽYXWYþÆŸF Š þÆ¥F • ˆÂ4� ç¥FD˜ —Âl¨ •Ecp\[×0xZ[\^_`bcde† Z\WYE4¨ IVV•ÃDß ,ß IVV¥FÔ¤ T¤ IVVúX]Dµ ýXŒ„ T„ IVVýXtä <ä IVVýXüÉ. ¤É IVVúXa”ä ýX¬¾ t¾ IVVýX”© \© IVVýXÌš ”š IVVýXìë të IVVÐ{ü»G ¥ g�hŽighiùä Ä ‰å Ï ˆÂ4Ç ¡åDÒ •Ej gjÀ .035ü‰4 Œ ñòó ñ•E ò€g€gŠ‚gê ûcƒg¾hûcØ«q¢1È¡óÿqBÿf � f j¥ ŸF¥F$‘ œÇ>üœ8 ¥ l�mŽnnmlùä ¥ ‰å ° ˆÂ4¨ ¡åD³ •Eorstx¡ /146ü¥, üÛE B Create a new decoder that will read from the provided reader `r`.Á¬ ¥F•ÕEBÿkk o¥ ŸF¥F–„ìAµ õAD· ooýX”› ooýXü¯D Œ² Iôõ ô•E õÈ[��Bÿk Ä k r¥ ŸF¥F$É ¾hìGüì#5 ”ï# Iö ö•E��Bÿk ‚$ k s¥ ŸF¥F$‡$ ü²)Z lµ) I÷ø ÷•EýX øÈ[��Bÿk Ã) k t¥ ŸF¥F'gžÁ�X¾h˜X,“. t�u�u�uut«¦½; t�v�v�vvtþ¦Dž@ t�w�w�wwtÓ¬äçE üÒBY V Unwraps this `DecoderReader`, returning the base reader which it reads base64 encodedÁ|°C input from.ÁÄC �üÌCY V Because `DecoderReader` performs internal buffering, the state of the inner reader isÁüªD[ X unspecified. This function is mainly provided because the inner reader type may provideÁüŠEX U additional functionality beyond the `Read` implementation which may still be useful.ÁTîE •E¥FBÿkk x¥ ŸF¥F jü¢FE ¥ z�{Ž||z{ùä «F ‰å ¶F ˆÂ4®F ¡åD¹F •E}è}§F .035üòJ7 üîF) & Decode input from the wrapped reader.ÁœG �ü¤G] Z Under non-error circumstances, this returns `Ok` with the value being the number of bytesÁ¬†H  written in `buf`.Á H �ü¨H^ [ Where possible, this function buffers base64 to minimize the number of read() calls to theÁ¤‹I  delegate reader.Á¤I �d¬I # ErrorsÁ½I �üÅIZ W Any errors emitted by the delegate reader are returned. Decoding errors due to invalidÁü¤JI F base64 are also possible, and will have `io::ErrorKind::InvalidData`.Á$õJ ùú ù•E úÈ[��Bÿy úJ y }¥ ŸF¥F$ÿJ ¾h†|”€` }}ýXäW(lÈMüB? Implementations of `io::Write` to transparently handle base64.ÁÓ‰|¯MÍ$ÀM¼®Mü¥M",ÐM�ºƒl‰�â�œ´¾äÎ\ÉÓå\C@-/üY Dj ýXÔ» lÁ �ýXüÁ" ¬Ç �ýXüë5 üê^ [ A `Write` implementation that base64 encodes data before delegating to the wrapped writer.ÁÉ �üÍ_ \ Because base64 has special handling for the end of the input data (padding, etc), there's aÁü­\ Y `finish()` method on this type that encodes any leftover input bytes and adds padding ifÁüŠ` ] appropriate. It's called automatically when deallocated (see the `Drop` implementation), butÁüë` ] any error that occurs when invoking the underlying writer will be suppressed. If you want toÁüÌ1 . handle such errors, call `finish()` yourself.Áþ �t‚ èÝ‘ �<• åú¼�  use std::io::Write;Áüµ( ÙÞÞ �üâ_ \ // use a vec as the simplest possible `Write` -- in real code this is probably a file, etc.ÁüÂ\ Y let mut enc = base64::write::EncoderWriter::new(Vec::new(), &general_purpose::STANDARD);ÁŸ �ü£ * âáüÎ $ ! enc.write_all(b"asdf").unwrap();Áó �ü÷ C @ // could leave this out to be called by Drop, if you don't careÁü» @ = // about handling errors or getting the delegate writer backÁüü ) & let delegate = enc.finish().unwrap();Á¦ �üª ' $ // base64 was written to the writerÁüÒ + ( assert_eq!(b"YXNkZg==", &delegate[..]);Áþ �<‚ åúŠ �dŽ „¹› �üŸ _ \ Calling `write()` (or related methods) or `finish()` after `finish()` has completed withoutÁüÿ $ ! error is invalid and will panic.Á¤ �d¨ ¼øµ �ü¹ _ \ Base64 encoding itself does not generate errors, but errors from the wrapped writer will beÁü™, ) returned as per the contract of `Write`.ÁÆ �ŒÊ  # PerformanceÁÜ �üàV S It has some minor performance loss compared to encoding slices (a couple percent).Áü·' $ It does not do any heap allocation.Áß �Œã  # LimitationsÁõ �üù` ] Owing to the specification of the `write` and `flush` methods on the `Write` trait and theirÁüÚ] Z implications for a buffering implementation, these methods may not behave as expected. InÁü¸_ \ particular, calling `write_all` on this interface may fail with `io::ErrorKind::WriteZero`.Áü˜R O See the documentation of the `Write` trait implementation for further details.Álö ¥ Ž��“���Žùä ˆ þÆ»G “ ˆÂ4‹ � »GL– —Âl§ ¼Fò|¤å·>~‘’“•–˜™¹„ ac^`L4§ ���•Üž Dž ���ؘüù( \ù ���úX”¬‹ ýXüñ Äñ ���ýX´¬ 4¬ ���úX—D¹ ýXÔ¦ œ¦ ���ýXt« D« ���ü¾H ¥ ›�œ“��œ›ùä Ç É’ Ò ˆÂ4Ê á’LÕ ¼Fž gžÃ 0257ü�4 � ûüý û¼F ü€g€gŠ‚gê ûcƒg¾hûcØ«q¢1È¡ýÿqBÿš ” š ž¥ ŸF»G$• œމüï9 ¥  �¡“¢¢ ¡ùä ø É’ ƒ ˆÂ4û á’L† ¼F£¦§¨ª«ô 79<>üýA ü¯I F Create a new encoder that will write to the provided delegate writer.Á„ »G•üFBÿŸŸ £¥ ŸF»G¸É‹µ Ò‹¬²! ££ýXD�" ££ýXüÕ(% üî"\ Y Encode all remaining buffered data and write it, including any trailing incomplete inputÁüÏ## triples and associated padding.Á÷# �üÿ#N K Once this succeeds, no further writes or calls to this method are allowed.ÁÒ$ �üÚ$_ \ This may write to the delegate writer multiple times if the delegate writer does not acceptÁü¾%6 3 all input provided to its `write` each invocation.Áù% �ü�&] Z If you don't care about error handling, it is not necessary to call this function, as theÁüã&5 2 equivalent finalization is done by the Drop impl.Á�' �ü¥'8 5 Returns the writer that this was constructed around.Áâ' �dê' ¼øû' �üƒ(M J The first error that is not of `ErrorKind::Interrupted` will be returned.Á4Ü( þ þ¼Fê�BÿŸ ã( Ÿ ¦¥ ŸF»G$è( üø,1 ¬û, �ÿ ÿ¼Fò›BÿŸ ‘- Ÿ §¥ ŸF»G$–- ü¾7H ŒÁ7 �€ €¼FýXò›BÿŸ Ó7 Ÿ ¨¥ ŸF»Gv�ë³0™T€: ¨�©�©�©©¨¼²ü­B4 İB �� �¼Fò›BÿŸ ÉB Ÿ ª¥ ŸF»G$ÎB ü�M üªG[ X Unwraps this `EncoderWriter`, returning the base writer it writes base64 encoded outputÁ<ŠH  to.Á–H �üžH[ X Normally this method should not be needed, since `finish()` returns the inner writer ifÁüþHY V it completes successfully. That will also ensure all data has been flushed, which theÁüÜI* ' `into_inner()` function does *not* do.Á‹J �ü“JY V Calling this method after `finish()` has completed successfully will panic, since theÁüñJ% " writer has already been returned.Á›K �ü£KY V This method may be useful if the writer implements additional APIs beyond the `Write`Áü�LV S trait. Note that the inner writer might be in an error state or have an incompleteÁüÜL  base64 string written to it.ÁTˆM ¼F»GBÿŸŸ «¥ ŸF»G$—M ü–NG ¥ ­�®“¯®­¯ùä ŸN É’ ªN ˆÂ4¢N á’L­N ¼F°´‚ † ´°›N ;=@Bü¢V2 üäN7 4 Encode input and then write to the delegate writer.Á O �ü¨O] ›öüŠP] Z of `input` consumed. The value may be `0`, which interacts poorly with `write_all`, whichÁüìP\ Y interprets `Ok(0)` as an error, despite it being allowed by the contract of `write`. SeeÁüÍQF C for more on that.Á˜R �ü R_ \ If the previous call to `write` provided more (encoded) data than the delegate writer couldÁü„S_ \ accept in a single call to its `write`, the remaining data is buffered. As long as bufferedÁüèS^ [ data is present, subsequent calls to `write` will try to write the remaining buffered dataÁüËT_ \ to the delegate and return either `Ok(0)` -- and therefore not consume any of `input` -- orÁl¯U an error.ÁÁU �dÉU ¼øÚU �üâU; 8 Any errors emitted by the delegate writer are returned.Á,¥V ‚ƒ ‚¼F ƒÈ[��Bÿ¬ «V ¬ °¥ ŸF»GôÎŽŒæ¿â] °�±�±�±±°ëÏ¥ °�²�²�²²°Ûüñ °�³�³�³³°Šþü®ƒ! ü®�Y V Because this is usually treated as OK to call multiple times, it will *not* flush anyÁüŒ‚0 - incomplete chunks of input or write padding.ÁdÁ‚ ¼øÒ‚ �üÚ‚O L The first error that is not of [`ErrorKind::Interrupted`] will be returned.Á,±ƒ „ „¼Fò›Bÿ¬ ·ƒ ¬ ´¥ ŸF»G$¼ƒ üô„B ¥ ¶�·“¸¶·¸ùä ý„ É’ ˆ… ˆÂ4€… á’L‹… ¼F¹�#¹ù„ 579;”½… $À… … …¼FÍ\Bÿµ Å… µ ¹¥ ŸF»G$Ê… ÌP¬T€¾ÓÚƒl�º»‹$46˺¼ûÛG‰º½ì=¬'.~¥ ŸF¹¦üÐ A¥ Ä�Å�ÆÅÄÆùä Ù µÅ ä ˆÂ4Ü ¢È\ç ÜGÇÈÕ +-02üí <ü˜ PM Create a EncoderStringWriter that will append to the provided `StrConsumer`.Álô “H•ÃÜGBÿÃà ǥ ŸF“Hº~Óµ ‡Óüˆ ü»[X Encode all remaining buffered data, including any trailing incomplete input triples andÁ¼› associated padding.Á·�ü¿DA Returns the base64-encoded form of the accumulated written data.ÁT�ÜG“HBÿÃà ȥ ŸF“H$žü¸6¥ Ê�ËËÊùä ÁˆÂ4ľ¾�Â’º»*,LjeçÃ¥ ŸF³H̽OQüÙ!üõ_\ Create a EncoderStringWriter that will encode into a new `String` with the provided config.Áà•ëÏBÿÉÉ Ì¥ ŸFµ ¸ÖüÈO¥ Î�Ï�ÐÎÏÐùä ѵŠ܈Â4Ô¢È\ßÜGÑÒ‚ † ÑÒÍ;=@Büž4,¡†‡ †ÜG ‡È[��BÿÍ §Í Ñ¥ ŸF“H$¬¾hp×ü€%,ƒˆ ˆÜGò›BÿÍ ‰Í Ò¥ ŸF“H$ެ–üÎGD An abstraction around consuming `str`s produced by base64 encoding.Á\ ÓÓ”¿ü–pÓ”¿”¿!ÔÔÔüã!ü²,) Consume the base64 encoded data in `buf`Á<扊 ‰àî ŠÍ\BÿÓ îÓ Ôàî$ó¾hùü×4üˆNK As for io::Write, `StrConsumer` is implemented automatically for `&mut S`.Á8‹�Ö‹ÖÿÆ¥H4íÓ¥H\ß H×Ô× Üü’ <•Œ� Œ H �Í\BÿÕ �Õ ×8¥H$¢¾hÈØÜ‹üÝ-* Pushes the str onto the end of the StringÁ³HÙÔÙü­ <°Ž� ޳H �Í\BÿØ ¸Ø Ù$½¾hÃü©/ݺ�ÛÛþÆ–I ÉÓ–I\ÌèH£î¦°ŸƒÜ,.|ßdߺÚÚ–Iüó>�ÞÞƒÛ ø“Û\ûèHßà‚ † àß%'ü¸4,»�‘ �èH ‘È[��BÿÝ ÁÝ ß–I$ƾhŒÚüü%,ÿ’ ’èHò›BÿÝ …Ý à–I$Š$t´€o0üt=d0g0X0[0tØMüIF Provides the [Engine] abstraction and out of the box implementations.Á4àMóËóõöˆ­ |zæçÝ*œ¥ ¦æê¡4„º²æë€+\Ñ ¨æì³’5\Þ¾æíÙä6„ëÕæîÚüµ…Cæïå4ôëIæñ–üÐ=æò–æò¥.téâÉ÷.¤ùìÊ´sÓ«ŒTÍ$gÌSüJ$,�œ� ÷ùâäÍÏ|©Ó«ŒŠÍ$�̉ü€$ß,äÓ«ŒÅÍ$ØÌÄü»$tìÓ«'Í%#!ÿÓ«FÍDB@¼ƒüE B Provides the [GeneralPurpose] engine and associated config types.Á|‹ý˜¥²µ¸ÂÃÄÅÆÇâì·'DW úóõ÷1Do ’óöç4† óóø¥1tŽ ˆóùü/Œž öóúä6„¶ ÕóûÚó<Þ ¯óüÆ´® ‡¤,J §©”e šüJ9 ŒŽ{}jlY[´Ï H¬è 4÷ ‡Ž’”–Àl+ ¥ý€õt:õý�¥1tJˆý‚ü/ŒZöýƒ’5\r¾ý„Ùä6„Õý…Ú•.D‘ áý†,œô�ŠŒz|jlZ\FH24ü®!tŸ4¥´¹£IØõ�`�cÕˆ‰Tììý‡‡ýXüüÄüý‡‡ýXÜ £I‹üÂ-ÐýX£IBÿŠŠ ‹€+\Ôüš.£I�ö�üÏ'¤Ò“ “£IýXBÿŒ çŒ �$èüØ‚l攕– ”È[£I •È[ –ö½ÄKí´Bÿ €  ŽŽŒ,ùº˜D‹ ð 4± Ñ!dÈ ›/Ôæ  padding_modeÁdŒ Ü ýXüß &Ìå ýýXü� 'Ô– ýýXü˜"§”¦"—˜ —È[ýXýX ˜ö½è³Bÿ Å" ’ŽŒ,¾" input_len_remÁlÐ" output_lenÁTê"Ñ!d�#•#ýXüä/štç/ý™š› ™È[ýX šö½ ›È[¶ŸBÿ ‚0 ”ŽŒ,û/index_at_start_of_inputÁ¼�0Ñ!d±0ð 4Ï0Å0ýXüèAštëAýœ�ž œÈ[ýX �ö½ žÈ[¶ŸBÿ †B –ŽŒ,ÿAºì¼‘BÑ!dµBð 4ÓBÉBýXäÿ lŽ ¡Àl+ ¥˜›¥1t:ˆ˜œü/ŒJö˜�’5\b¾˜žÙä6„oÕ˜ŸÚ•.D� ᘠ,œô‰vxfhVXBD.0ü•‘l£Ÿ ¡ ŸÈ[ýX  È[ýX ¡ö½ÄKí´Bÿ ½ ¡ŽŒ,¶ input_indexÁ\Èð 4à output_indexÁdûÑ!d”›/Ô²ÍédبýX ·¡¡ýXô¦ ÑüÇ" lØ úXœå äI§üÂK üÿ8 5 Create a `GeneralPurpose` engine from an [Alphabet].Á¼ �üÄJ G While not very expensive to initialize, ideally these should be cachedÁü“* ' if the engine will be used repeatedly.ÁÏ ¦ ¦´MÅJäIBÿ¦ Ý ¦Òà·'\â¥!eâüª % äI©ª«¯°±ÌÍÎÏÐѰ¯±«\Ö 4Û ¨¨ÅJœþ tƒ ¨¨£Iü± C |´ §¨© §äI ¨È[ ©È[ýXBÿ¨ Ä ¨ «$Å ŽŒ,Ë ð 4Ù ü¨ ! ¤® óýX¼× dÝ óÌ™4 |Ÿ4 óúXü¿AQ ìÂA ª ªäIýXÍäIBÿ¨ àA ¨ ¯$áA  input_lenÁLçA üÍB­ |ÐB «¬­ «äI ¬È[ ­È[‡øí´Bÿ¨ éB ¨ °$êB ŽŒ,øB ð 4ŽC º˜D©C üïE! 4òE ® ®äI ®ÌäIBÿ¨ ùE ¨ ±$úE üƒGA d—G ¯ ¯´M°½Bÿ ®G ü÷'ÏåÁG ýXÃH ²²ýXüÛKB dïK ° °´Mö½Bÿ †L ÊÄ·'œé™L ýXËL µµýXäýO D€P ó± ±È[Bÿ ŒP ¸© ‰P Ì•U ÅJº»¼½ÔªX üµU\ Y Create a new config with `padding` = `true`, `decode_allow_trailing_bits` = `false`, andÁü–VG D `decode_padding_mode = DecodePaddingMode::RequireCanonicalPadding`.ÁâV �üêV\ Y This probably matches most people's expectations, but consider disabling padding to saveÁüËWZ W a few bytes unless you specifically need it for compatibility with some legacy system.Á·X ÅJBÿ¹¹œëüþ^= üÄZJ G Create a new config based on `self` with an updated `padding` setting.Á“[ �ü›[_ \ If `padding` is `true`, encoding will append either 1 or 2 `=` padding characters as neededÁüÿ[9 6 to produce an output whose length is a multiple of 4.Á½\ �üÅ\^ [ Padding is not needed for correct decoding and only serves to waste bytes, but it's in theÁü¨]F C [spec](https://datatracker.ietf.org/doc/html/rfc4648#section-3.2).Áó] �üû]_ \ For new applications, consider not using padding if the decoders you're using don't requireÁÔß^  padding to be present.Áœ‹_ ÅJÅJBÿ¹¹¯ìäíˆÜìíüÏdG üš`] Z Create a new config based on `self` with an updated `decode_allow_trailing_bits` setting.Áü` �ü„aX U Most users will not need to configure this. It's useful if you need to decode base64ÁüáaX U produced by a buggy encoder that has bits set in the unused space on the last base64Áü¾bg d character as per [forgiving-base64 decode](https://infra.spec.whatwg.org/#forgiving-base64-decode).ÁüªcL I If invalid trailing bits are present and this is `true`, those bits willÁüûcO L be silently ignored, else `DecodeError::InvalidLastSymbol` will be emitted.ÁüÜd ÅJÅJBÿ¹¹ ¼“î²›îüÝlL üÿeV S Create a new config based on `self` with an updated `decode_padding_mode` setting.ÁÚf �üâf\ Y Padding is not useful in terms of representing encoded data -- it makes no difference toÁüÃg_ \ the decoder if padding is present or not, so if you have some un-padded input to decode, itÁü§hZ W is perfectly fine to use `DecodePaddingMode::Indifferent` to prevent errors from beingÁd†i emitted.Á—i �ôŸi  However, since in practiceÁüÂiˆ … [people who learned nothing from BER vs DER seem to expect base64 to have one canonical encoding](https://eprint.iacr.org/2022/361),ÁüÏjU R the default setting is the stricter `DecodePaddingMode::RequireCanonicalPadding`.Á©k �ü±kY V Or, if "canonical" in your circumstance means _no_ padding rather than padding to theÁü�lI F next multiple of four, there's `DecodePaddingMode::RequireNoPadding`.ÁÄêl ÅJÄKÅJBÿ¹¹Œí:ïàÞCïüˆn% ÅJ¿÷¿¤æn ü´n- * Delegates to [GeneralPurposeConfig::new].Á<én ÅJBÿ¾¾ ¿üšo$ ÅJÁôÁüÅo tÈo ¶ ¶ÅJBÿÀ ×o À Á$Øo üìp" ü�p^ [ A [GeneralPurpose] engine using the [alphabet::STANDARD] base64 alphabet and [PAD] config.ÁDöp äIü£r) üÁqa ^ A [GeneralPurpose] engine using the [alphabet::STANDARD] base64 alphabet and [NO_PAD] config.Á|­r äIüás" ü‚s^ [ A [GeneralPurpose] engine using the [alphabet::URL_SAFE] base64 alphabet and [PAD] config.ÁDës äIü˜u) ü¶ta ^ A [GeneralPurpose] engine using the [alphabet::URL_SAFE] base64 alphabet and [NO_PAD] config.Á|¢u äIü×w# ü÷uX U Include padding bytes when encoding, and require that they be present when decoding.ÁÐv �üÔvb _ This is the standard per the base64 RFC, but consider using [NO_PAD] instead as padding servesÁü·w  little purpose in practice.Ááw ÅJüæx& ü›xJ G Don't add padding when encoding, and require no padding when decoding.Á4ðx ÅJ|ך�Ž‘ìø ü‘µ² An `Engine` provides low-level encoding and decoding operations that all other higher-level parts of the API use. Users of the library will generally not need to implement this.ÁÇ�üË_\ Different implementations offer different characteristics. The library currently ships withÁü«SP [GeneralPurpose] that offers good speed and works on any CPU, with more choicesÁüÿЇ coming later, like a constant-time one when side channel resistance is called for, and vendor-specific vectorized ones for more speed.ÁŠ�üŽkh See [general_purpose::STANDARD_NO_PAD] if you just want standard base64. Otherwise, when possible, it'sÁüúa^ recommended to store the engine in a `const` so that references to it won't pose any lifetimeÁüÜ <9 issues, and to avoid repeating the cost of engine setup.Á™ �ü� ^[ Since almost nobody will need to implement `Engine`, docs for internal methods are hidden.Á4‚ ËË”¿üø €lýÆàî$Š ÿ àî$‘ Ë”¿=ÿ£0�¤&”¿Oÿ£B�¤8ÌÍÎÏÐÑÒÖÚÞãèíÌÍÎÏÐÑÒÖÚÞãèíþÆÌàî¤È ó“¥4Õ ‹¥¤¥þÆÍàîü‘$õÉ¥t¦Á¥Û¥ ÞÏÚÖÒèÎÑãÐíœÈ üœ '$ The config type used by this engineÁ4Í ËËü‘#üá +( The decode estimate used by this engineÁt–ËËüêDü»RO This is not meant to be called directly; it is only for `Engine` implementors.Áü’41 See the other `encode*` functions on this trait.ÁË�üÓ]Z Encode the `input` bytes into the `output` buffer based on the mapping in `encode_table`.Áµ�ü½:7 `output` will be long enough to hold the encoded data.Áü�ü„(% Returns the number of bytes written.Á±�ü¹=: No padding should be written; that is handled separately.Áû�üƒOL Must not write any bytes into the output slice other than the encoded data.Át×4Ý|í·¸¹ ·àî ¸È[ ¹È[ýXBÿË ýË Îàî$þŽŒ,„ð 4’üÆRü´RÓ¦‹�ü“WT As an optimization to prevent the decoded length from being calculated twice, it isÁüïZW sometimes helpful to have a conservative estimate of the decoded size before doing theÁüÎ`] decoding, so this calculation is done separately and passed to [Engine::decode()] as needed.Át³4¹ìɺ ºàîýXÉ¥BÿË çË Ïàî$è³÷LîüðµüžRÓ¦üõ41 See the other `decode*` functions on this trait.Á®�ü¶96 Decode `input` base64 bytes into the `output` buffer.Áô�üümj `decode_estimate` is the result of [Engine::internal_decoded_len_estimate()], which is passed in to avoidÁüî63 calculating it again (expensive on short inputs).`Á©�ü±[X Each complete 4-byte chunk of encoded data decodes to 3 bytes of decoded data, but thisÁü‘?< function must also handle the final possibly partial chunk.ÁüÕ_\ If the input length is not a multiple of 4, or uses padding bytes to reach a multiple of 4,Áü¹SP the trailing 2 or 3 bytes must decode to 1 or 2 bytes, respectively, as per theÁü‘;8 [RFC](https://tools.ietf.org/html/rfc4648#section-3.5).ÁÑ�üÙXU Decoding must not write any bytes into the output slice other than the decoded data.Á¶�ü¾`] Non-canonical trailing bits in the final tokens or non-canonical padding must be reported asÁü£52 errors unless the engine is configured otherwise.ÁtÝ4ã|ó»¼½ »àî ¼È[ ½È[É¥í´BÿË Œ Ë Ðàî$� ŽŒ,› ð 4± decode_estimateÁ|Ì ü×!"ü«!'$ Returns the config for this engine.Á4Ú!¾ ¾àî ¾“¥BÿË á!Ë Ñàî$â!üì&4üÿ!B? Encode arbitrary octets as base64 using the provided `Engine`.Á¼Æ" Returns a `String`.Áâ"�lê" # ExampleÁü"�\„# ```rustÁü”#IF use base64::{Engine as _, engine::{self, general_purpose}, alphabet};Áâ#�üê#@= let b64 = general_purpose::STANDARD.encode(b"hello world~");Áį$ println!("{}", b64);ÁÌ$�üÔ$1. const CUSTOM_ENGINE: engine::GeneralPurpose =ÁüŠ%RO engine::GeneralPurpose::new(&alphabet::URL_SAFE, general_purpose::NO_PAD);Áá%�üé%;8 let b64_url = CUSTOM_ENGINE.encode(b"hello internet~");Á<©&åúÓ«Œ¿&Í$Ò&̾&üµ&$4ï&¿ ¿àî®î³HBÿË�ÓÓ †'ËþÆ®î ö&£®îÈ[\ù& Òàî®î$‡'ŽŒ`÷35ü«'c,®'æÀÁ Àöð ÁÈ[³HBÿ�ÕÕ ¿'ÿÆöð4‡(Ëöð4þ' Ôöðµ ZûÆøcû ´'ü�2Jü½+?< Encode arbitrary octets as base64 into a supplied `String`.Áü�,b_ Writes into the supplied `String`, which may allocate if its internal buffer isn't big enough.Áè,�lð,·¼‚-�\Š-Ù¼üš-Iî¼üè-1ľüž.Rÿ¾õ.�|ý. fn main() {Áü‘/$! let mut buf = String::new();Áüº/KH general_purpose::STANDARD.encode_string(b"hello world~", &mut buf);ÁäŠ0 println!("{}", buf);Á«0�¤³0 buf.clear();ÁüÌ0B? CUSTOM_ENGINE.encode_string(b"hello internet~", &mut buf);Áä“1éÆ,´1 }Á<¾1åúÓ«ŒÔ1Í$ç1ÌÓ1üÊ1$l„2Âà Âàî®î óHÍ\BÿË�×× ¢2˩ ’2ºÂ\•2 Öàî®î$£2ŽŒ ýßû¬ý02üÖ2r,Ù2æÄÅÆ Äöð ÅÈ[ ƳHÍ\Bÿ�ÙÙ ê2ÛÃ4Á3ìÃ4¸3 Øöðµ |ÿÆø…ÿßû�ÿ ß2üÒ=‰ü‹6<9 Encode arbitrary octets as base64 into a supplied slice.ÁüÌ6+( Writes into the supplied output buffer.Áü6�ü„7`] This is useful if you wish to avoid allocation entirely (e.g. encoding into a stack-residentÁüé7$! or statically-allocated buffer).Á’8�lš8·¼¬8�,Ø8\Ò8™øüŸ974 use base64::{Engine as _, engine::general_purpose};ÁüÛ9 let s = b"hello internet!";Áìÿ9 let mut buf = Vec::new();Áü¡:C@ // make sure we'll have a slice big enough for base64 + paddingÁüé:'$ buf.resize(s.len() * 4 / 3 + 4, 0);Á•;�ü�;UR let bytes_written = general_purpose::STANDARD.encode_slice(s, &mut buf).unwrap();Á÷;�üÿ;41 // shorten our vec down to just what was writtenÁü¸<  buf.truncate(bytes_written);ÁÝ<�üåÂ,é>æÉÊË Éöð ÊÈ[ ËÈ[‰¬Bÿ�ÝÝ ‡?ÛÃ4¡@ìÃ4˜@ Üöðµ :ÆøCßûL ï>üßIJüÓD&# Decode the input into a new `Vec`.ÁþD�l†E·¼˜E�\ EÙ¼ü°EIF use base64::{Engine as _, alphabet, engine::{self, general_purpose}};ÁþE�ü†F)& let bytes = general_purpose::STANDARDÁü´F1. .decode("aGVsbG8gd29ybGR+Cg==").unwrap();ÁäêF println!("{:?}", bytes);Á‹G�Ô“G // custom engine setupÁü²G0- let bytes_url = engine::GeneralPurpose::new(ÁüçG%" &alphabet::URL_SAFE,Áü‘H)& general_purpose::NO_PAD)Áü¿H30 .decode("aGVsbG8gaW50ZXJuZXR-Cg").unwrap();Áü÷H  println!("{:?}", bytes_url);Á<œIåúÓ«Œ²IÍ$ÅI̱Iü¨I$4âIÌ Ìàî®î÷ŒBÿË�ßß ùI˩ éIºÂ\ìI Þàî®î$úIŽŒa)+ü´Jy,·JæÍÎ Íöð ÎÈ[÷ŒBÿ�áá ÈJÛÃ4¦KìÃ4�K àöðµ  Æø  ½JÙMà�â�â�ââàã‘üÍY~üìP2/ Decode the `input` into the supplied `buffer`.Á£Q�ü«Q_\ Writes into the supplied `Vec`, which may allocate if its internal buffer isn't big enough.Áü�R;8 Returns a `Result` containing an empty tuple, aka `()`.ÁÏR�l×R·¼éR�\ñRÙ¼ü�SI´ÖüÏS1ľü…TOL engine::GeneralPurpose::new(&alphabet::URL_SAFE, general_purpose::PAD);ÁÙT�|áTÎÅÜõT use base64::Engine;Áü•U*' let mut buffer = Vec::::new();ÁüÄU" // with the default engineÁüëU! general_purpose::STANDARDÁü‘VGD .decode_vec("aGVsbG8gd29ybGR+Cg==", &mut buffer,).unwrap();ÁüÝV! println!("{:?}", buffer);ÁƒW�¼‹W buffer.clear();Á§W�ü¯W // with a custom engineÁüÓW! CUSTOM_ENGINE.decode_vec(ÁüùW'$ "aGVsbG8gaW50ZXJuZXR-Cg==",ÁÄ¥X &mut buffer,ÁœÂX ).unwrap();ÁüÚX!Âã,€Y�È<ŠYåúÓ«Œ YÍ$³YÌŸYü–Y$TÐYÏÐ Ïàî®î Ьó¶ŸBÿË�ää ôY˩ ÛYºÂ\ÞY ãàî®î$õYŽŒŸΘ©24üÖZŠ,ÙZæÑÒÓ Ñöð ÒÈ[ Ó¬ó¶ŸBÿ�ææ êZÛÃ4Ù[ìÃ4Ð[ åöðµ Æø Θ* ßZÔ`å�ç�ç�çç宦ü°h…ü�d41 Decode the input into the provided output slice.Áºd�üÂd]Z Returns the number of bytes written to the slice, or an error if `output` is smaller thanÁü¤e! the estimated decoded length.ÁÊe�üÒec` This will not write any bytes past exactly what is decoded (no stray garbage bytes at the end).Áºf�üÂfC@ See [crate::decoded_len_estimate] for calculating buffer sizes.ÁŠg�ü’g`] See [Engine::decode_slice_unchecked] for a version that panics instead of returning an errorÁü÷g&# if the output buffer is too small.Ád³hÔÕ Ôàî®î ÕÈ[è³BÿË�éé Ùh˩ ÀhºÂ\Ãh èàî®î$ÚhŽŒÒð Û13üÀi¾,ÃiæÖר Ööð ×È[ ØÈ[è³Bÿ�ëë áiÛÃ4÷jìÃ4îj êöðµ NÆøWð ` Éi$ïlê�ì�ì�ììêä¶ü�rŠüÆm4îéÿm�ü‡n52 Returns the number of bytes written to the slice.ÁÁn�üÉncÖë±o�ü¹oCÏì�p�ü‰peb See [Engine::decode_slice] for a version that returns an error instead of panicking if the outputÁÄóp buffer is too small.Á�q�d˜q„¹©q�ü±qKH Panics if the provided output buffer is too small for the decoded data.Á´’rÙÚ Ùàî®î ÚÈ[õºBÿË�îî Âr˩ ©rºÂ\¬r íàî®î$ÃrŽŒ^ð g13ü¤sŠ,§sæÛÜÝ Ûöð ÜÈ[ ÝÈ[õºBÿ�ðð ¸sÛÃ4§tìÃ4žt ïöðµ ¨Æø¨ð § ­s$Ÿvï�ñ�ñ�ññïð½Ívï�ò�ò�òòïž„¼yüúxA> The minimal level of configuration that engines must support.Á4Æyóó”¿ü¼yþó”¿”¿"ôôôü—~!üÓyGD Returns `true` if padding should be added after the encoded output.ÁŸz�ü§zOL Padding is added outside the engine's encode() since the engine may be usedÁüûzNK to encode only a chunk of the overall output, so it can't always know whenÁüÎ{JG the output is "done" and would therefore need padding (if configured).Átš~Þ ÞàîBÿó ©~ó ôàî$ª~ÄÔ€ü¼~b_ The decode estimate used by an engine implementation. Users do not need to interact with this;ÁüŸ'$ it is only for engine implementors.ÁÇ�üËa^ Implementors may store relevant data here when constructing this to avoid having to calculateÁü­€&# them again during actual decoding.ÁtÞ€õõ”¿üÔ€žõ”¿”¿#öööüȃ(üó€]Z Returns a conservative (err on the side of too big) estimate of the decoded length to useÁüÕ�$! for pre-allocating buffers, etc.Áþ��ü†‚ZW The estimate must be no larger than the next largest complete triple of decoded bytes.Áüå‚^[ That is, the final quad of tokens to decode may be assumed to be complete with no padding.Á¤Ëƒß ßàîýXBÿõ àƒõ öàî$ნÿŠÓLøü™‹M§‹ýXÐ{ÓLBÿ÷÷ ø decoded_bytesÁl«‹ padding_indexÁlÁ‹tðMÒÍ„�NüNK Provides [Alphabet] and constants for alphabets commonly used in the wild.ÁD‰N€Œ�Ž��‘’Ÿ•.D[ áúûò ;Encode arbitrary octets as base64 into a supplied `String`.Á× �üÛ  See [Engine::encode_string].ÁÓ«ŒÛ Í$î ÌÚ üÑ$ ÷› Use Engine::encode_stringÁܳ ü�C ¤ý ÷› Ü¡ -ƒ„®î ƒ³H „öðÍ\Bÿ�¡�¢¡¢ Ì Í  ’ ©Â � ìÃ4• ºÂ\   öð®îŽŒ¤ßû£µ ¡CEHJüÑ ” üœ < ³ËÙ �üÝ   See [Engine::encode_slice].Á÷› Use Engine::encode_sliceÁÔ´ üŽ B œØ ÷› ²¤ -…†®î …È[ †öð‰¬Bÿ�¤�¥¤¥ ¦ Í  ì ©Â ÷ ìÃ4ï ºÂ\ú £öð®îŽŒ/ßû/µ -CEHJü‚“ œ� ‡ˆ‰ ‡È[ ˆÈ[ ‰öðýXÍ\Bÿ�§§ Ä ÛÃ4° ìÃ4§ ËôŽŒðð ïµ í̤í ¤ ü´J ü‹Z W Calculate the base64 encoded length for a given input length, optionally including anyÁôæ  appropriate padding bytes.Á… �ü‰^ [ Returns `None` if the encoded length can't be represented in `usize`. This will happen forÁüèK H input lengths in approximately the top quarter of the range of `usize`.Á\Á ýXÐ{BÿÖñ¹±uýˆÜuýüõ Q \ƒ! ŠýX ŠÈ[ýXBÿ ³! ñ_unpadded_output_lenÁœ�! ð 4«! üÈ%& ÖO«¥g«üõ%8 ø% ’“” ’ÖO “€g€gŠ‚gê ûcƒg¾hûcØ«q¢1È¡”ÿqBÿª ü% ª «$ý% œ ƒ& üÉ'& Ó‰|°' Í$Á' ¼¯' ü¦'" ÖOlâNÓ«Œ¿NÍ$ÒN̾NüµN$âÓ«&Í$" #ââÓ«FÍDB@1â"âÓ«fÍdb`?âl½O4â7â(â+âââTƒP4‡PÆÈËÎѾՕ#D% µ·õt/ õµ¸‹$4? ˵¹ü} …CµºñŒ ûcµ» õ,½ …µ¼l Ì ln\^|q Ó«ŒR Í$e ÌQ üH$ nL† `T¸ Ó‰|› Í$¬ ¼š ü‘" süÇ ! ÄP¾¥g¾üï 4 ò œ�ž œÄP �€g€gŠ‚gê ûcƒg¾hûcØ«q¢1È¡žÿqBÿ½ ö ½ ¾$÷ œ ý üŸ! Ó‰|† Í$— ¼… üü" ÄPüÃ& �RÁ¥gÁüð8 ó ¦§¨ ¦�R §€g€gŠ‚gê ûcƒg¾hûcØ«q¢1È¡¨ÿqBÿÀ ÷ À Á$ø œ þ ü‰& Ó‰|ð Í$� ¼ï üæ" �RÂÃü¶9 4¹ © ©�RřǙș­É™Ê™àË™óG*¤�R{9  ©�Bÿ À  Ã$Á üŽ+ �RÅ®ÅüÀ $à ÄP�RBÿÄÄ Å› È üÏG ü”: 7 Decode base64 using the [`STANDARD` engine](STANDARD).ÁÏ �ÌÓ  See [Engine::decode].ÁÓ«Œ´ Í$Ç ̳ üª$ ÷› Use Engine::decodeÁ¤“ üí< 4Ö ÷› Ǹ -å’÷ŒBÿ�ÇÇç� Ý ø� \à Æå’ŽŒ íü®p ü·H E Decode from string reference as octets using the specified [Engine].Á€ �Ì„ ƒ¸ üž- *Returns a `Result` containing a `Vec`.ÁÓ«Œ“ Í$¦ Ì’ ü‰$ ÷› Ǹ ¤ò üÌ< lµ ÷› Ǹ -ª®î ªöð÷ŒBÿ�É�ÊÉÊ ù Í  à ©Â Î ìÃ4Æ ºÂ\Ñ Èöð®îŽŒ¤íµ ¡í8:=?üñ‰ ü½+ ( Decode from string reference as octets.Áé �ìí  See [Engine::decode_vec].ÁÓ«Œ• Í$¨ Ì” ü‹$ ÷› Use Engine::decode_vecÁÄÖ ü°@ Œø ÷› ˜¾ -«¬®î «¬ó ¬öð¶ŸBÿ�Ì�ÍÍÌ À Í  Š ©Â • ìÃ4� ºÂ\˜ Ëöð®îŽŒ„îΘ‚îµ î@BEGüÁ!� ü¥ 4 îéÚ �üÞ   See [Engine::decode_slice].Á÷› Use Engine::decode_sliceÁÔ¤! üþ B œÈ! ÷› êÀ -­®®î ­È[ ®öðè³Bÿ�Ï�ÐÐÏ ’" Í  Ü! ©Â ç! ìÃ4ß! ºÂ\ê! Îöð®îŽŒ ïð  ïµ ï?ADFü‡(8 üþ"c ` Returns a conservative estimate of the decoded size of `encoded_len` base64 symbols (rounded upÁüâ#* ' to the next group of 3 decoded bytes).Á�$ �ü‘$b _ The resulting length will be a safe choice for the size of a decode buffer, but may have up toÁüô$4 1 2 trailing bytes that won't end up being needed.Á©% �t­% èݼ% �<À% åúüÈ%% " use base64::decoded_len_estimate;Áî% �üò%+ ( assert_eq!(3, decoded_len_estimate(1));Áüž&+ ( assert_eq!(3, decoded_len_estimate(2));ÁüÊ&+ ( assert_eq!(3, decoded_len_estimate(3));Áüö&+ ( assert_eq!(3, decoded_len_estimate(4));Áü¢'0 - // start of the next quad of encoded symbolsÁüÓ'+ ( assert_eq!(6, decoded_len_estimate(5));Á<ÿ' åú¤Ž( ýXýXBÿ Ñ€+\£( lÑPÓ«Œ®PÍ$ÁPÌ­Pü¤P$]ïÓ«&Í$" zïkïÓ«FÍDB@ˆïyïÓ«fÍdb`–ïl©Q‹ïŽïï‚ïsïvïgïjï|…Rü/, Preconfigured engines for common use cases.Á0�ü4if These are re-exports of `const` engines in [crate::engine::general_purpose], renamed with a `BASE64_`ÁüžC@ prefix for those who prefer to `use` the entire path to a name.Áâ�tæèÝõ�,ž\˜™øüÞ?< use base64::prelude::{Engine as _, BASE64_STANDARD_NO_PAD};Áž�ü¢PM assert_eq!("c29tZSBieXRlcw", &BASE64_STANDARD_NO_PAD.encode(b"some bytes"));Á<óåú<�R‹$4“ËÜBASE64_STANDARDÁ|Ð ÂÝBASE64_STANDARD_NO_PADÁ´œ ÃÞBASE64_URL_SAFEÁ|è ÄßBASE64_URL_SAFE_NO_PADÁ´´ Å଄©ü¤(�üé/mü¼(Rü�/0”°RD¶RúXÌë üò$ ! A general-purpose base64 engine.Á— �ü›H E - It uses no vector CPU instructions, so it will work on any system.Áüä( % - It is reasonably fast (~2-3GiB/s).Áü�Ä Á - It is not constant-time, though, so it is vulnerable to timing side-channel attacks. For loading cryptographic keys, etc, it is suggested to use the forthcoming constant-time implementation.Á,tö äIæF Êà<Çãåç´‹ d‹ óââ°½ž ýX¼§ d§ óââö½º ýXäÄ 4Ä óââÅJôÝ—äIé géôÝôÝ¢£¤ ¢äI £€g€gŠ‚gê ûcƒg¾hûcØ«q¢1È¡¤ÿqBÿè¡Ü è éôÝœôÝ•à˜äIë†ë•à•ॠ¥äIäIBÿê¢ã ê ë•àü„T üÒPG D Contains configuration parameters for base64 encoding and decoding.ÁšQ �<žQ åúü¦Q/ , # use base64::engine::GeneralPurposeConfig;ÁüÖQ, ) let config = GeneralPurposeConfig::new()ÁüƒR$ ! .with_encode_padding(false);Áü¨R> ; // further customize using `.with_*` methods as neededÁ<çR åúïR �üóR: 7 The constants [PAD] and [NO_PAD] cover most use cases.Á®S �ü²S3 0 To specify the characters used, see [Alphabet].Á-¤�T ÅJs£›sÏâvDíî浪T tªT óììüÄT ÔÄT óììüêT& œêT óììÄK‰ê‰ê‰ê™ÅJ‰ê™ÅJò†ò‰ê‰ê² ²ÅJÅJBÿñ£ïS ñ ò‰ê ¤öS šÅJðê›ÅJõ gõðêðê³´µ ³ÅJ ´€g€gŠ‚gê ûcƒg¾hûcØ«q¢1È¡µÿqBÿô¥üS ô õðêœðêÔå…üôƒ52 Controls how pad bytes are handled when decoding.Áª„�ü®„A> Each [Engine] must support at least the behavior indicated byÁüð„GD [DecodePaddingMode::RequireCanonical], and may support other modes.Á3Œî…ÄK‚ »NO%¯÷øùúûüøúü\ã†ü††XU Canonical padding is allowed, but any fewer padding bytes than that is also allowed.Á3jööÄK}ööÄK„͇üô†TQ Padding must be canonical (0, 1, or 2 `=` as needed to produce a 4 byte suffix).Á3fööÄKy{ööÄK\ƈüã‡^[ Padding must be absent -- for when you want predictable padding, without any wasted bytes.Á3pööÄKƒ…ööÄK!!!ŸÄK!ŸÄKÿ†ÿ!!à àÄKÄKBÿþ±Á…þ ÿ! ²È… ÄK|!¡ÄK‚ g‚|!|!áâã áÄK â€g€gŠ‚gê ûcƒg¾hûcØ«q¢1È¡ãÿqBÿ�³Î…� ‚|!œ|!¦"¢ÄK¦"¢ÄK…ù±…¦"¦"äå äÄK åÄKBÿ„´Õ…„ …¦"î ¦"�#£ÄK‡Î‡�#�#�#�#æ æÄKÍ\Bÿ†µà…† ‡�#̪‰üÖˆ30 Metadata about the result of a decode operationÁ4tµ‰ÓLaM�iy‰Šìñ‰\ü‰ˆˆýXüÒŠ(tÝŠˆˆÐ{—$¤ÓL—$¤ÓL�ù±�—$—$çè çÓL èÓLBÿŒ¶“‰Œ �—$î —$(%¥ÓL�Î�(%(%(%(%é éÓLÍ\BÿŽ·ž‰Ž �(%n%¦ÓL‘ g‘n%n%êëì êÓL ë€g€gŠ‚gê ûcƒg¾hûcØ«q¢1È¡ìÿqBÿ�¸¢‰� ‘n%œn%œŠ üÕJG An alphabet defines the 64 ASCII characters (symbols) used for base64.Á �ü¤DA Common alphabets are provided as constants, and custom alphabetsÁüéDA can be made via `from_str` or the `TryFrom` implementation.Á®�t²èÝÁ�üÅ)& Building and using a custom Alphabet:Áï�<óåúüû~{ let custom = base64::alphabet::Alphabet::new("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/").unwrap();Áú�üþ52 let engine = base64::engine::GeneralPurpose::new(Á„´ &custom,ÁüÅ.+ base64::engine::general_purpose::PAD);Á<ôåúü�¬€ Building a const:Á–�<šåúü¢# use base64::alphabet::Alphabet;ÁÆ�üÊ static CUSTOM: Alphabet = {Áüê?< // Result::unwrap() isn't const yet, but panic!() is OKÁüªa^ match Alphabet::new("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/") {Á¼Œ Ok(x) => x,Áü¤<9 Err(_) => panic!("creation of alphabet failed"),ÁLá }Á4ë };Á<òåúú�¤þ Building lazily:Á“ �<— åúŒŸ  use base64::{Áܱ  alphabet::Alphabet,ÁüÍ HE engine::{general_purpose::GeneralPurpose, GeneralPurposeConfig},Á4– °ù ô�  use once_cell::sync::Lazy;Á¼ �üÀ 0- static CUSTOM: Lazy = Lazy::new(||Áüñ b_ Alphabet::new("ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/").unwrap()Á4Ô  );Á<Û åú5D• ´Mååæ:4%~“ü¤ '<¯ ’’úX”l½ ýXY'§´M–†–Y'Y'í í´M´MBÿ•¹ì • –Y'Ñ'¨´M˜ g˜Ñ'Ñ'îïð î´M ï€g€gŠ‚gê ûcƒg¾hûcØ«q¢1È¡ðÿqBÿ—ºó — ˜Ñ'œÑ' )©´MšÎš ) ) ) )ñ ñ´MÍ\Bÿ™»ú ™ š )åýXÚ)ª´MÚ)ª´Mžù±žÚ)Ú)òó ò´M ó´MBÿ�¼þ � žÚ)î Ú)ܨ"üÆ!A> Possible errors when constructing an [Alphabet] from a `str`.Á6”±"§NB̓œy•  ¡¢£¥¦¨©¡£¤úX§NBÿ¦§úX§NBÿ©ªúX§NBÿló"üÊ"$! Alphabets must be 64 ASCII bytesÁ64ŸŸ§NGIŸŸ§Nä†# All bytes must be uniqueÁ60ŸŸ £HLúX§NBÿŸŸÞ† ¶#ŸŸúXIü¿#;8 All bytes must be printable (in the range `[32, 126]`).Á6”ŸŸ ¦¬°úX§NBÿŸŸ�ˆ �$ŸŸúX­´˜$ `=` cannot be usedÁ6ÒŸŸ ©êîúX§NBÿŸŸœ‰ À$ŸŸúXù;«§N¬ g¬ù;ù;ùúû ù§N ú€g€gŠ‚gê ûcƒg¾hûcØ«q¢1È¡ûÿqBÿ«½‘"« ¬ù;œù;F?¬§N®Î®F?F?F?F?ü ü§NÍ\Bÿ­¾˜"­ ®F?…?­§N…?­§N±ù±±…?…?ýþ ý§N þ§NBÿ°¿œ"° ±…?î …?Ìç$ ü‰$6 3 Errors that can occur while encoding into a slice.Á=„ð$ ÖOñ)[z«½Õ£³´´œ°% ü‡%$ ! The provided slice is too small.Á=4²²ÖOGI²²ÖOâ-¶ÖO¶†¶..‹ ‹ÖOÖOBÿµÎÉ$ µ ¶Q..·ÖO¸ g¸9.=.Œ�Ž ŒÖO �€g€gŠ‚gê ûcƒg¾hûcØ«q¢1È¡ŽÿqBÿ·ÏÐ$ · ¸ß.œç.C.¸ÖOW.¸ÖO»ù±»w.{.�� �ÖO �ÖOBÿºÐ×$ º »×.î ß.Y.¹ÖO½Î½x.~.„.›.‘ ‘ÖOÍ\Bÿ¼Ñâ$ ¼ ½ç.¤– üÅ) & Errors that can occur while decoding.Á?\Ÿ ÄPÚé}ùZ°š¿ÀÃÄÆÇÊËÀÁÂýXúXÄPBÿÄÅýXÄPBÿÇÈÉýXúXÄPBÿËñü±W T An invalid byte was found in the input. The offset and offending byte are provided.Á� �ü•[ X Padding characters (`=`) interspersed in the encoded form are invalid, as they may onlyÁüõ. + be present as the last 0-2 bytes of input.Á¨ �ü°Z W This error may also indicate that extraneous trailing input bytes are present, causingÁü�D A otherwise valid padding to no longer be the last bytes of input.Á?¿¾¾ À×ÛýXúXÄPBÿ¾¾×™ ,ä ¾¾ýXë ¾¾úXçüôM J The length of the input, as measured in valid base64 symbols, is invalid.ÁüÆ5 2 There must be 2-4 symbols in the last input quad.Á?ƒ¾¾ Ä›ŸýXÄPBÿ¾¾ó› ,Ž ¾¾ýXœüš` ] The last non-padding input symbol's encoded 6 bits have nonzero bits that will be discarded.Áüÿ8 5 This is indicative of corrupted or truncated Base64.Áü¼Y V Unlike [DecodeError::InvalidByte], which reports symbols that aren't in the alphabet,Áüš [ X this error is for symbols that are in the alphabet but represent nonsensical encodings.Á?¾¾ Ç.2ýXúXÄPBÿ¾¾ÔŸ ,Œ ¾¾ýX“ ¾¾úXt´ üœ X U The nature of the padding was not as configured: absent or incorrect when it must beÁüù 6 3 canonical, or present when it must be absent, etc.Á?¨¾¾ÄP»½¾¾ÄPŽ5»ÄP͆ͭ5±5• •ÄPÄPBÿÌÔø Ì Íý5V3¼ÄPÏ gÏu3y3–—˜ –ÄP —€g€gŠ‚gê ûcƒg¾hûcØ«q¢1È¡˜ÿqBÿÎÕÿ Î Ï4œ#4O0½ÄPc0½ÄPÒù±Òƒ0‡0™š ™ÄP šÄPBÿÑÖ† Ñ Òã0î ë0k)¾ÄPÔÎÔŠ)�)–)­)› ›ÄPÍ\BÿÓב Ó Ôù)Ì£ üÅ6 3 Errors that can occur while decoding into a slice.ÁD„¬ �R«‚ZBEÁ Ö×ÙÚרÄP�RBÿÚäà  A [DecodeError] occurredÁDIÕÕ ×aeÄP�RBÿÕÕߨ \ð ÕÕÄPœ« ü‚$ ò� DÕÕ�R')ÕÕ�R +Ã�R܆Ü?+C+Ÿ Ÿ�R�RBÿÛà… Û Ü�+p*Ä�RÞ gÞ�*“* ¡¢  �R ¡€g€gŠ‚gê ûcƒg¾hûcØ«q¢1È¡¢ÿqBÿÝáŒ Ý Þ5+œ=+©)Å�R½)Å�Ráù±áÝ)á)£¤ £�R ¤�RBÿàâ“ à á=*î E*z'Æ�RãÎã™'Ÿ'¥'¼'¥ ¥�RÍ\Bÿâãž â ã(Öö,- ‰,-Úô,- Š,- —,-$ó,-þñ,- –,-oì,- Õ,-LÚ,-zê,- × ,-¤â,- š ,-L¤ ,-òà,- Ô ,-—à,-)à,- í) ,-+Ú,- ŠK ,-EÌ,- ž ,-L¨ ,-bÇ,-Ç,-¢Æ,-îÅ,-ã½,- ½V ,-†»,-™º,-½®,- ·,-`®,-­,- þ,- …,-¬,- ­,-I«,- È,-ª,- Ñ,-¼©,- ¤,-˜£,- ¹ ,- Ö ,-Ô¢,- �#,-+¢,- ¿0,- ×0,-‰¡,- ÃB,- ÛB,-I ,- è,- ¢,-t-,-z-,-ôÝ,--,-¯ž,-»�,- Ò ,- á ,-!�,-œœ,- ÿB ,- –C ,-1œ,-å›,-x›,- ›,-M*,-x),-~),-ðê,-�,-ö‚,- ‹,- š,-5�,-M|,- ¢ ,- ¹ ,-¤{,-¢x,-ów,- Ð',-±t,- ¿2,-t,- û2,- Ž3,-¹o,- ¨>,-o,- ¤?,- Ã?,-Êk,--k,- ÙJ,-!f,- �Z,-oe,- ûZ,- Š[,-3b,- ‚i,-ƒa,- þi,- ™j,-ù^,- ër,-I^,- És,- Øs,-;[,-ÙW,-Æ&,-ë%,-ñ%,-|!,-]%,-c%,-Î$,-•#,-›#,-#,-B",-H",-n%,-,-Z,-`,-Ñ',-Ó,-3,-9,-LV,-EU,-­T,- ­ ,-ÁS,-�,-–,-ù;,- ,-w,-},- S,- ˆ%,-œ%,-%K,-xI,- å ,-/H,- ½ ,-cG,- × ,- î ,-WE,-v,-³,-¹,-‹A,-&,-,,-˜,-¬D,- †& ,-š& ,-c ,-  ,-¦ ,-´=,- ,- ,-…,-RB,- € ,-LŠ ,-Ä,-,-,-/1,-t,-z,-æ,-ŽA,- � ,-• ,-±@,-Å=,-:<,- Ú ,-ô:,- ©" ,-5kŸÃÉŠ¦¹÷�¢‹$·'úreadableÁ std::io::ReadÁçu alphabetsÁÛ Ûalphabet::AlphabetÁpadding behaviorsÁengine::general_purpose::NO_PADÁ'engine::general_purpose::GeneralPurposeÁ padding modeÁread::DecoderReaderÁwrite::EncoderWriterÁµ ‹$Ë•#…—®¸ 8https://developer.mozilla.org/en-US/docs/Glossary/Base64ÁÖ¸ î¸ ’¼#ƒ!engine::general_purpose::URL_SAFEÁ›¹  Ç¿¹ âuEngine::encode_sliceÁü¹ Ú”º �µ æ•#…Òº Ö¸ ¼#ƒalphabet::URL_SAFEÁª»  Ä›¹ uEngine::encode_stringÁë» Úü¹ VÚ•#…€å î#Òº ¼#“URL-safeâ€� alphabetÁļ  �ª» ƒEngine::decode_sliceÁñ¼ Öë» ÚHå ‹î#!engine::general_purpose::STANDARDÁɽ ļ Engine::decode_vecÁü½ èñ¼ å &display::Base64DisplayÁ‹ ÆÏî#-https://datatracker.ietf.org/doc/html/rfc4648Á¾¾  Âɽ Engine::encodeÁð¾ ãü½ ‰std::fmtÁ¡¿ ‹µÏRFC 4648Áп ¾¾ Engine::decodeÁ”À Òð¾ ‰std::fmt::DisplayÁ½À ¡¿ /Ïalphabet::STANDARDÁßÀ п engine::GeneralPurposeConfigÁøÀ Þ”À “ std::io::WriteÁ‰¡Á ½À ¾,standardÁÌÁ  ŒßÀ padding configurationÁïÁ øÀ writableÁ¦Â ¡Á ¤g“ engine::general_purposeÁÓ ÌÁ engine::GeneralPurposeÁò ïÁ ìstd::ioÁÛ ˜Ã ¦Â � “ -engine::general_purpose::GeneralPurposeConfigÁ»Ã Ó engine::DecodePaddingModeÁãà ò »¸ ·'Û  ›�Ä ˜Ã Û …¹ ¶Ä »Ã óë¹ ôÄ ãà ⮸ »¸ ‹$·'Û ’�Ä ‰Û î¸ …¹ ¶Ä 쿹 ë¹ ôÄ ö”º µ ®ýErrorKind::InterruptedÁ®ýû‡®ýâÆ ˆâÆ ÎÎÎÓ0‹$¥.Ç#https://tools.ietf.org/html/rfc4648ÁøÀ crate::decoded_len_estimateÁ general_purpose::STANDARD_NO_PADÁ ÃEngine::decode()ÁEngine::decode_slice_uncheckedÁí#DecodePaddingMode::RequireCanonicalÁùü½ 'Engine::internal_decoded_len_estimate()Áü/ö%Engine::internal_decoded_len_estimateÁ‹$ËÇ¥.âRFCÁÆÇ øÀ ÞôÇ  ÑÔÈ ”È ü½ è¿È üÈ ¯É ü/éÉ Ï¬Ê Çó‹$¥.øÀ ÆÇ ôÇ ÔÈ ”È ¿È ü½ üÈ ¯É ü/éÉ ¬Ê -п ¥.î#https://infra.spec.whatwg.org/Á_people who learned nothing from BER vs DER seem to expect base64 to have one canonical encodingÁ https://eprint.iacr.org/2022/361Áã#GeneralPurposeConfig::newÁ÷.ì·'úļ  �specÁforgiving-base64 decodeÁ÷1’î# Ç¥.âп ‡Ì ªÌ ŽÍ ã# Æ¸Í ÷.ÌÁ ·'ļ öÍ ÿÍ ‡Ì î#÷1п ¥.ªÌ ã#ŽÍ ¸Í ÷.ÌÁ  Œ·'ļ öÍ ÿÍ ÌÁ ÷1п BinHex 4.0 DefinitionÁ9http://files.stairways.com/other/binhex-40-specs-info.txtÁRFC 3501Á#https://tools.ietf.org/html/rfc3501ÁñÏ ÷1п ‹Ð ÉÐ ÷1’п ÖÐ ñÏ ‹Ð ÉÐ ÖÐ ÷1‹$ñ¼ ë» STANDARD engineÁ”À Ò•# ‹$ñ¼ Öë» àÑ ”À •#‹$Ëñ¼ ë» Ú”À àÑ •#‹$ü½ è’5àÑ øÀ •# ÂDecodeError::InvalidByteÁð¾ ü½ ‹$øÀ àÑ ŠÓ ¿’5ð¾ ã•#‹$Ëü½ ’5¾øÀ ÞàÑ ŠÓ •#ð¾  crate::engineÁcrate::engine::general_purposeÁ¡Ô æ·Ô ó¡Ô ·Ô Ë…ù öÌí÷±¯²ýÆþÆÿ ÈÇ€#…#ˆ#‹#Î!Ñ!Ö!¦£¬©ÔPŽQ—PŽPÄQµì6Ë…ù öÌí÷±¯²ýÆþÆÿ ÈÇ€#…#ˆ#‹#Î!Ñ!Ö!¦£¬©ÔPŽQ—PŽPÄQµì6ó¯…ù öÌí÷±¯²ýÆþÆÿ ÈÇ€#…#ˆ#‹#Î!Ñ!Ö!¦£¬©ÔPŽQ—PŽPÄQµì6Ëóõ…ù öÌí÷±¯²ýÆþÆÿ ÈÇ€#…#ˆ#‹#Î!Ñ!Ö!¦£¬©ÔPŽQ—PŽPÄQµì6óË…ù öÌí÷±¯²ýÆþÆÿ ÈÇ€#…#ˆ#‹#Î!Ñ!Ö!¦£¬©ÔPŽQ—PŽPÄQµì6õË…ù öÌí÷±¯²ýÆþÆÿ ÈÇ€#…#ˆ#‹#Î!Ñ!Ö!¦£¬©ÔPŽQ—PŽPÄQµì6Ë…ù öÌí÷±¯²ýÆþÆÿ ÈÇ€#…#ˆ#‹#Î!Ñ!Ö!¦£¬©ÔPŽQ—PŽPÄQµì6 DecoderReader b64_offset b64_lendecoded_chunk_bufferdecoded_offset decoded_len input_consumed_lenpadding_offset&assertion failed: self.decoded_len > 0&!assertion failed: !buf.is_empty()!assertion failed: copy_len > 0.assertion failed: copy_len <= self.decoded_len.7assertion failed: self.decoded_len < DECODED_CHUNK_SIZE7;assertion failed: self.b64_offset + self.b64_len < BUF_SIZE;= b64_len_to_decode3&buf is sized correctly in calling code&-assertion failed: self.b64_offset <= BUF_SIZE-lassertion failed: if self.b64_offset == BUF_SIZE { self.b64_len == 0 } else { self.b64_len <= BUF_SIZE }lŽassertion failed: if self.decoded_len == 0 { self.decoded_offset <= DECODED_CHUNK_SIZE } else { self.decoded_offset < DECODED_CHUNK_SIZE }ŽNassertion failed: self.decoded_len + self.decoded_offset <= DECODED_CHUNK_SIZENassertion failed: at_eof[assertion failed: if at_eof { self.b64_len > 0 } else { self.b64_len >= BASE64_CHUNK_SIZE }[assertion failed: decoded <= 3too many chunksIassertion failed: b64_bytes_that_can_decode_into_buf >= BASE64_CHUNK_SIZEIT extra_input: À extra_input_occupied_len:À output[..5]: À output_occupied_len: ÀT'Encoder has already had finish() called'Writer must be presentbuffer is large enough0assertion failed: consumed <= current_output_len0(Cannot write more after calling finish()(3assertion failed: self.extra_input_occupied_len < 33*assertion failed: extra_input_read_len > 0*8assertion failed: encoded_size == 0 || encoded_size == 48nassertion failed: MAX_INPUT_LEN == max_input_len || MAX_INPUT_LEN == max_input_len + MIN_ENCODE_CHUNK_SIZEn'Writing to a consumer should never fail'Input must be valid UTF-8GeneralPurpose encode_table decode_table configGeneralPurposeConfigencode_paddingdecode_allow_trailing_bitsdecode_padding_mode-integer overflow when calculating buffer size- Invalid UTF8 "Writing to a String shouldn't fail"+usize overflow when calculating buffer size+Vec is sized conservatively.Overflow when calculating output buffer length.Output slice is too small RequireNone RequireCanonical Indifferent DecodeMetadataAlphabetsymbols ReservedByte UnprintableByteDuplicatedByte InvalidLength @ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/@@ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789-_@@./0123456789ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz@@./ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789@@ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+,@@!"#$%&'()*+,-012345689@ABCDEFGHIJKLMNPQRSTUVXYZ[`abcdefhijklmpqr@*usize overflow when calculating b64 length*OutputSliceTooSmallInvalidPaddingInvalidLastSymbol InvalidByte DecodeError ¯Ú ÃÚ ÔÚ âÚ ýÚ ’Û ¤Û ½Û ÒÛ ÿÛ §Ü ÌÜ �Ý ¿Ý �Þ ÄÞ þÞ «ß ßß Òà éá ¾â Ýâ ¿ã äã úã Êä ¥å Óå ðå �æ Äæ óæ ­ç Þç �è ’é Àé àé õé ˆê ›ê ¨ê Ãê Øê ùê “ë Çë Úë ƒì µì ×ì Œí ¬í ¾í Õí çí üí ‹î ™î ¬î Âî ×î ëî ²ï ùï Àð ‡ñ Îñ •ò Æò àò õò �ó Ÿó (Íb§ë¯} ùŠ0Œ`|½‰™qØ«å‡ÞÝN_µ�ù¶Íþ+&/iIìƒyM$­9ÑΤ:°”ߌ@\™ò†Ì·²Dׄ¶O´›8J#д3È ÔeG¾EX¨N8=ö©ôóFZêè£z³±ò^ŠšÜ~u÷VUŽÕµÑÁžƒv_Áã.l:Ilw�â|e좶ðì›NHMø»bhq¶xëfË@8�#LcÕå>Øc¹d#¼R{]‘K¿ºåǨ@«RKE^CÐdËò¡—§÷§‡—ÑFÇtÙ›œB\ÊÞ‡’T)NÊxÈù¸4•¬F>7è.M9³u«g±ûh¿¢MK½]'XpoYgP¶åX+PÚe;ãÃÀdˆ¨ŸGAhl¹%Ž£ l3¹Þ^¤UL8äö¶ëꮳØyÆ3\žóNÊe‡>š=9Â@¼³¾ j;’;®õ#HW#Ê€;L7Š|,Šî3=Á¼—ß‹>Á‡.wÀwÖÁ~@Æ9§‘foPñDŠžC5º¿˜ãˆy%zNŸôn@½~¥êušw+ž!‘¼î.¦¸ìÏé›ÎX9$'w¬0zÏàFgî§ó£)üÁóò¾�jñu´ à‰ÜJ²Ï9$¾ÊÁŠcëj>SSOy ½Uñ°ŸÉçÃÌË\V .Ýþ”½‰ŸÚ_¤ܪí8¡<šϱØ�{2þßÇÒð¿°Ì.w¬VعB/E'�(G™ûÜû ‘Å$?ç#îc(‚\¬`},jþ¾„[Ô¬CøˆÜ•ê�{HPÇÚ;pÎ!­�9H&å�ÔZ·zûÿÎ ¥B¼ÿù"G÷¯,ž 3jÏ<3å=K¨ð)!6'Ÿt»«iÊŸ—½×Â{}ýˆ_”néü®·“T z½õ>hÏ<�Ò DË:kûÒþìLfbë4e~· •3@3„sôšUã%ÏY¼›w©ãf¿¨½]{T�ºµ¢v 0¸˜¤–=®~bh �øq¹ ˆ®Z¨ë-îöÔFÝZùýõÝMNîD1qQ©óÐ�ÌZy“Ø·Nâ#væÛça9mìÝbg}¤gï';t%ïÊþ$iÓ >=†÷ªÇi!sÏI¨û ˜‰rŒqîbh®†Ûy›Ts•²š°¾µ¬>�û“]ç!^š×ášz†�Œ�±W%ûÞÖ²áLE¬‡îíD¼R´ÝOH=€ßwŒ4¶E“TÛ¸@Öµ¨Õ<ÅÕ{3Éâsqï[w߯БN:^»½rX¶€•'ɸûŸðé#~¶Z9†�’ìÏÉ|ìdÿéeôïr*[’}4‹Y�d’LúŸ"#3¿�rξA^µç©[4nͶBß®K.ÿÚÑ$'t;o“~ ‹ï7ø(VŠ»{ÜïÍ)–[êJ5÷À¿æÁåÝ6‹ÉOš}4c Öqx›F�„÷¢£qÙ‡I÷mõLb#Ê™D9âK5]¡'�.ѳ:Ìs ¡& (ŒÇ‹¥0íg@áã`kOz|ï^á|nO­¡ë uWE~Ö1ë]`lå“Ïu"ÊêžQ1ë® ¤SO–T¤¶èÜÓä�*Øåœ#44wÃW TB‹N¢N"Tì{(¾�SÎþ¹25Ã`[,OÐpîRí>é9»À7é�l½A-ñyF7 µäüpO§ÀAuãÔÝèB%9ŒEC•7»Ìm¯¸�Œuöñ a°¾’ÒŒ¡ß–i:©·m¼A{GdéM÷é`ªMKÉ!þjøEŠ’U£ZJ(å$µ|+懤�‡‚õ³ÆUwhl$>i7�Ú3.3ïe²À™¼;~¡ª�LÅUIÓÛ(ú;ivI¯ ìé„aOýYUÌ–·Öþsþ:ÜÏÁ¡ÅþrŠÙ,ÄuVšp„ÿ}j{ÕÿòGå¬D/›dÐr—ósÎæ‰�½ gu´—Ò{ña[òÚ³{[U™)ÚC '´îK&䪴õ�ù=ÚdE�¾ÚüwéüCÃÑ/5&´]µ"Õ,–´&fÓbu3Ë‹iþkŒôm4,0²P”**ÇiiÈjWÉ[üYõJH¿LcåÕ@$Ó×…{Pfx‚Íõ'H¦Ô&skŒ~Ž}Åéà’¨á%`Ôö[üb!evîþ�ôÕÍZR†Tý.½' ² Dy+S"*Itu¯¬– ›¹ ÄÞ�ÄŒ‚Ÿ[ù Æ~ûÿø˜WWF¦–H·ˆïÿ‰•Å×�¸2nT'�yêþ÷ÑU—Ýí- áO:'òYèºÒCh��\Ù° È++¶Å°ÀÞsyÎ×47:þJ÷ÏŸGÚÉH`aˬNÈ‹’ÚI9È1Šñä ¢J˜æn—àv‰nøJ{ˆ3Ü&¦ ëA-Ýxí£zÏ©›CéuË…m峚¿CZÇHh³„$ RµSCò7ºÌ6®OS©÷ÍeeB=‘4ñZÐDG­m„Ÿ&’®OIb+ÄRŽñü¤;…‘½¤É”[ñ¦³»yFèÉ'š×ÖØÙÃâ$Ž«kq±%›š–‚_Ž·y´fdÕ „¦sQ]º¡áúG@B4(¨æú1èäx=òc÷¨|L¹ 0PUv¾ðx‡Å«Li˜µ2ATÈÙÚÙóSðÔ§$‰> `ÂöGaqÜx^ê þµVÙè}[@Ó=Ù�.O¸ªOì÷Å_éE¯\޾Lòžýz‡q•Â=õïcñÏ`šn¸½�¶º5cÜZéÏîp‹NEÜæózu\$FâÒAΆ`ŽYj(СÅé„LŒÏÿ¦Øüþàžõw6?�å‹yÚÀã¯Ð¬À”xq®+_»Q]¨Ÿ!e¶Û¶¿Ë”I˳ØÛ ­½Uvë"Ý5‡ïØ?&R)iôõÌÞ¸‚Ü»>àe„ú(JF¡Ó¶‡€Â‘^v-´ùPz ¢„k‹Æî(EµŸQh2{…´–Tp€èȪR(¯tJ*&êm†¾“”ñlÓoò~Læ\ÕØ2EQ‡åp83¿fí!¿Kû±iT>oÉÞà`Ì#Þ›NxÙ3çØ_u”L-_3 Š/„Ë!ngÿFzgH_JUÉ�edÃÞ9ÁnpgÏ ž¢ñ�‹ìXpò|x)Šñ² öoF'éi^V”�µØ ¤ƒöŒÇßµ;©¦¾ÎA ¦aþ4;Óvú Êˆ~ª�F­tDÙνq�ËyÉzÛs ¬f°þzr碶›aN›±ŠE éÌÿd’瑳™öšQ)ð¡£ñâv¡:̓äA`XB8˜Ð̨<¡«‰ZÈ”GÅ]ÔÂ/ñf&þ¤ÀgÌþ*Å6i3½ñ]ñ28SÓ¶fB4iú:Qè�PoÕÆ�ñóÜV�Ž V-µ©ˆå²w!g$.Ân‡H5]”~¯"ï“Òírƒ6g~Óƒ’RCwB•"¯�ü4Щ1Œ9AÁò¬Ö"`Šø$K{TŽ/Åó€õKÆlæúob=>’ÅKV7çÄÛªí8–ªd£Õ‘˜½uº$*5«7ÂðbîN° ˜âxBwŸ?QnjV¤¬Á�¯´Öä�¦?Eòb”ö‘toDö—m18‰Ql™‡<¸ŠǪeô*,j¦°Ž²*¦9Àš§!9Cd‡Ìa;m©s÷éÿ2$Y<5sž4½™q¥¸Ër—?ú]ä§ç�E• §uÉlWõ‰º¿ÖÙ“Gqò¶4®ŽóX’®�¤1Õ1ÇYß ”Dò7#iÁç•ab Nzk Pñ'�´jp@óôbs×Ñ—©D|�Oµ'L¿œ5Æ·;þF‘ã0Yáx½ßÐêRç�¿W øl)þÞ®ˆušáš0{�ò϶áÖ—jdZ¶‰{�·nŠ6î\%Lˆš’J@‘ËlËš³$_&úL~œ“_61ç;ÄóCäcáßC�ß=`n Hð“ ‰nö€bñ7I«ù¯n>Ù‰$‚sI�}¶û¬Åÿ+–ůLeG‚“¶Ã8ÿ©±LKD"‡ú§›þÌG3 Ûnßíq°{·ï~“X©sšÍ­³?Ú¹¿ýA&qc-ÎÜÁED‹ R(/:ŒÓ|ÇZbC•tد&ÖÉÝ×']⩟pi*wG@&Sû‚ù™ û;s}v²µ4äù%+d6-ƒ†Ç h±ødIš0›å÷W�2çì=öQ{NÉÁ°QWežñw«iа—ØwVt™0è77Rí5¯M ²âÄõdŸÊÃÜ•¡Z »~ûzÏ«™1�¬ØøÝÏú¡ZÉ•0žåÃjù²yÅ--¨’Øy­äFÀcaî—êà dƒ­ +ýÖ‹æ}y–EtóhÁM×d‹ï|ÏÓ7 T6\®Äà…¨ŒêÝ2–ÿÿÊíû„Ý[!´@нÙ£{ �Àøýù–áð>‰øó7IH‡/rBÞýo¹±$|ÇÅå;ƒq Z°b~&´3Q¾qJÃåý�ÙÊk‡°H q¤tyÂ2„R�”ë¼lUÖárˆô•ƒ“‚l¦¬)�{¤pŽxÒ”<LK®æˆpSPN|È(»¼½›á´FšÈàG…‹²:‡¾Š e²ªlÏréñ“îßzñ|ìMúc¨éO’bæb‚U€\ŠVºõwgÀ‰-$œ¤ ù0ƒ†~ˆ·¦÷…XE°-ß™yfªº5Lý\®Þq’IFòܭ㶸½ôÅYtVx§<˜Ù(��‰Žþf`¦ŠMH†_J>xA‡H‡˜×ܾCôƒ`Àœ.c9~¯ºÙÀLê˜ïãdn+)ºG²¬O®F4id½ÄQÄé9 †5œ‰É‚˜ª£¯�¸ØBižÌÞüSó£>© ~p32Lì�Löd<Ï”!e–L汞\Á5 Û+ݾ:÷Xð]ô竲¥Šíhbþ�  þi^˜kzMï1C;£î,E�ØN-Ρ °(°b@ö©³a�H”áRVV¨5JuàqoùùÖ>ʆŸ!Ÿ�–؆àp‡~D‡Ò˜fº‹óìÇÅY¢1ôt·>Q¢ßÐs*½µ'àÉJ䈤˜E°Wµ/ð‰¥¾¾×M³èbïB^wÞ/{–¤áe£7üßá�ÇÄU}ôL›Vó¨™>Nqé/]ˆ«˜·@�¦Å-)½áÍY¡@Nd®)ÖeeÆï.…r/¾ ãM©ä³ÉkÄ!HÎöúëÉ^çXc»¬(Yò €ã1w¡ ÔŸõK¬G¿ŒþÔÎÝq_½Çóóá)Xå^­b.Sk7iµñh¤l´%ÉzÕðw2|°÷:9Ö gå;ÐtÝïÄ¿ó´¤æ«ó†� c–¯þƒD—M"ÝÖàìõ¦A�t$z|á¹ UØ™Ÿüà¤ðùtB®‘¼÷£Z÷cÉ$=ªc ߊg¹Kþxñ=²J+C¬Í‚¨?„J‹YIÅ™NU!±Õϸ&ýËÖ •åXhyØ�¢4ÚÜÛÇôÐÄO"š0¡·ô¿”=�Ôþ‚�rzZ3d›A�Š} �^ç>J"†½ç˜'vEdîüòU”Z›˜ÏK…ëáG›UQ“b�÷QÁ4f›ôd‰>â[¥�Á�ÆütGÉ�Kñ­GíÆqã Õ‚è9ÝóÉEÀš¨Zþ‘Ÿ¢X/;nϲ1AOü6Ò9�÷§aDŸíEjèzbßÔÆà›È%jÆÇ[�Õ¤ù÷5L;ÿSÜ+4!8!CÅ‹vè9<7kñ‚dVrë”!Ígó0ÐÛ¤9`i+9­(ûkNX´R«LgÂdïÖÀ°ÒÍÞocW{ðZZ`ÍÙçóÇcaM–zSvÎOF€öfÊiì*¤¡ÔõÛOrfKFâ‹ß¨›eª&Jo25tQ^“6ƒ<ÕWèç AÜ[8è~É WQd‡ýÀ�SIg&‰û ¸ÉÎ+aåH,Æ1°eZŸÒT”·$Þu ¾oS(h?oA-Ð4�sÔD4��à­Bñù²ÌJ‹bæ‰>«O£()îaˆ/…�Kco¾tÛg’ã/ÑÉxBp0ßC‰·9*™�!B´êî­pVî «RB-aÈáɘ[’ú?»�‰`�LUBú-JMÒòY½bl91µ…-°ð½ˆ/&–~Á)x@`ù'’³÷š�“þcQÝW®“"ô‡™@â&8Ò`)]1Ôô;ÊÔÇ?õ˜ÊÀ•GÜ} uÙÿQ~AeBo3Úô‡é‰•ͪúzŽ—� úô€¢ß !x`&ˆ? Ó/Ë~~DDËq}ôK‡]È4)Q•‚º´7I@äÙMÂÑç£è~þ O=D).š|eëEÔÉ'n4"ÊŠˆÄæÎ–U€@~¿Ju äÎè÷C~ÝGø‰Ý4ÏZ:¤¼¡:èý:—KéI@€ø(„©eU¼ÂýÝ4¿K.¾6ªÆñêÏ#œ¥UýŽ™¾ë(Ïû1ÝúíFú�;·7i•¨5‰+36o7-û†ý†2˜Wîðʭ؇¯è©¸ù†(×î¡Ãð,ÏSÜœy15²jƒeÎÑu),v=¢>¥º¯Úñ-ÈÜCô>ãá;bHÿíLÐK‹ÖHŸ @`Ÿ3j– ¨%«/²ïȰã7Ÿ/ê±=o@=Ÿ5êà =u@œ œ œ œ œœœœœœœ �8žÆ¦h­…­¾\¾iÝ ïIñ,ò$÷NC)L­W\gÖv"ž-ž–ž™žŸž¡ž¥žªžÏžøžoŸ…ŸN ¡#¡w¡Á¡ˆ¢œ¢Ä¢%£D£Œ£¤g¤¤G ¥;§A§G§I§M§S§U§Y§`§]¨}¨ƨ&©Æ©-ªìªf«ë ¬#¬ó¬z­®®®® ®%®'®+®/®6®J®_®t®z²“²«²Ù²ñ² ³8³P³h³€³™³´Õ´Vµ"¶›¶ü¶}·Å· ¸U¸QºÑ º“½š½L¾â¾ç¾é¾í¾ñ¾÷¾ù¾ý¾¿¿,¿B2¿AÉ]ÉzÉ­ÉÈÉúÉÊ0ʸÊwËÌÜÌgÐÌÐ9шÑí ÑPÕãÕÚRÚ ÚðÚkÜøÜ[ݩݮݳݺ.Ýõã‘äåÇåõæ€ç6èÉèDé¦éJêñê¯ë"ìvìáìKígí»í+î�î…îŒî�î•îœîð(ð,ð/ð5ð:ð>ðBðHðqð˜ð·ðØðóñõñúñòòò òòòòÆòÉòÌòÐòÔòØòÜòàòäòëò7óSónóƒóÅóâó6ôóô õ õÆõ|ö÷ª÷­÷°÷´÷¸÷¼÷À÷Ä÷Ì÷²øºøÎøãøú`úyú“úû.ûCûYûÈû[üÀü3ý¥ýôýþÕ ÿ…&  ' • ²  € ÿ { ú  x { � ˆ ²ûH F µú §!ò$¨%*Ç*.²./Ú3“4ã 4è7Ÿ8ï8C;ú;H<–<5=ï>‹@YBoB×BÞB¤C©C«C¯CµCÝCòC DwDpE F;FUF G(GÙG HÎH�InJ¢JZKL¿LãLèLM7M9M=MCMJM®N2PæQ<S÷S�UøUVÆVúV W@W`W�W„WŠW�W—W,X/X3X7X<XaXgX‘X®X_Y”Y±YbZ¢ZK[h[©[à\…^`oa½dãde#eDeGeMeSeYe` ehhhh$h*h>hûi&jQjkj‰j7kUk¨ kÌmçmnnLnjn¾nÑnïnŸoÔpzqrÇrúrsqs…s¤sWtkt‹tøtuŒuùuv1vEvevÒvñvew„w7,xÂ~ó~f…7€V€×€ë€ �w�4‚¤‚ƒ6ƒуèƒ]„t„“„E…d…×…ë… †w†ç†W‡v‡Ê‡é‡›ˆ¯ˆψ;‰Z‰Í‰zŠšŒ±ŒÈŒ´�Ë�—�®�Å�©�È�‘;‘í‘’!’�’¬’“¥“ ”7”‡”¦”ú”•˕ߕÿ•k–Š–ø œ5žCŸÄ¦g­�­¾T¾cÝ;êõî-ñ"ò"÷Õ &={@< CLŸW\g«pâ�׆ Š“EŸë X¡£~£O¤>¨©ªW«í«N ²ê³&µ¢ºÉ‡ÊÎË§ÕÆÜÎãèädç�è=ê�ëeì8í’í/ózóÑóÚø!úþ ¡ ï (=}@eBþC$FGHVõV�XŽY Y‘ZW[ñizjFkÂmHn[nÍnàn¿pÇpÏpõr s€s”sftztuðu@vTvávtw»~uF€æ€ú€ú�‚‚&‚ƒ„T…æ…ú…ã†f‡Ù‡ªˆ¾ˆJ‰8ŠNŠ`ŠvЏ�+‘ü‘’œ’�“¡“–” •Ú•î•z–                                             ****)))*)))*)*÷œ3žþžsŸ�ŸT ¡�¡Ù¡Œ¢ ¢í¢)£¤£k¤—¤æ̧a¨�¨~©Eªòªj«¬;¬f­­:®N®c®DZ~²—²¯²ݲõ²³<³T³l³„³1´½µ:¶³¶·º"½¾Q¾¿¿0¿‰ÈEÉaÉ~ɱÉÌÉþÉÊÐÊqÌÐÐäРÑÕ¢ÙÜÝ`ÝRãùã†å¾æèáè\éýé˜êÇëŽìçìOíÓíCîôî,ñ òó;óWó›óúóNô÷ô õ8õÞõ”ö ÷ä÷¾øÑùdú}ú«úû2ûGûqûàûsüØüKý½ý¶ÿUõÚv Ê p ï k ê  i ]ç4ÒÆ‘ii !\$ %t)&*•-,.?3ò3O78ª:[;ç<¯>;@BˆB;CáC%D3EÈE?FmF@G¿H€I_J“JKKLL7NwOQnRTScU§U-V�WÆXÉYºZ€[}\Ó]R_¦`›d[g.hÒiÿi*jUj jlk£mÐmëmn�no‘p;qdqÝqr‰r²r1s¼s£tNuÑuþuv}v(wœwœ~Æ~*��€#�È�f‚�‚Ï‚ÿ‚!ƒ�ƒ±ƒÓƒ „=„_„«„›…#†½†‡B‡އˆçˆ‘‰ŠHŒxŒœŒ³Œd�”�¶�E�u�™�°�k�”�à�S‘9’ã’e“Г”"”I”r”¾”1•–Á–þužž"ž)ž“ž–ž›žŸž£ž§žËžôžkŸ€ŸI ì ò ¡¡]¡c¡r¡¼¡w¢„¢˜¢¬¢¿¢£!£@£�£‡£¤]¤c¤z¤C¥6§=§C§G§K§O§S§W§[§@¨F¨L¨Y¨x¨Á¨©©©!©Á©ªªª(ªçªX«^«d«¾«û«¬¬¬ï¬w­®®®®®"®%®)®-®1®F®Z®o®X²^²k²x²�²§²ƲÕ²í²³%³4³L³d³|³”³ô³ú³´´д1µ7µDµQµ÷µ ¶¶–¶÷¶y·Á· ¸Q¸Lº¬º²º¿º̺}½�½–½I¾ß¾ä¾ç¾ë¾ï¾ó¾÷¾û¾ÿ¾¿'¿=¿É%É2É?ÉYÉuəɨÉÄÉçÉöÉÊ+ʓʙʦʳÊrËáËçËôËÌ­ÌÂÌ×ÌbÐÇÐ5уÑèÑKÕ¾ÕÄÕÑÕÞÕÚNÚœÚêÚeÜÒÜÙÜæÜóÜXݦݫݰݵÝÐãÖãããðãŒäïäõäååÂåðæhçnç{ç1è¤èªè·èÄè?é¢éEêìê›ëªëìqìÜì:íGíbí©í¶í&î~î�îˆîŒî’î˜îÿï$ð(ð,ð2ð8ð<ð@ðDðmð”ðµðÔððñóñ÷ñüñòòò òòòÃòÆòÉòÎòÒòÖòÚòÞòâòæò3óNójó~óÀóÝó0ôßôîôõõ±õÀõgövö÷÷§÷ª÷­÷²÷¶÷º÷¾÷Â÷Æ÷Šø™ø®øµøÊøÞøú\úuúŽúû*û?ûTûÂûVü»ü ýý.ý}ýŒý¡ýðý þÐÿ€! # � ­ ÿ { ú v õ  t x ~ „ ®öCA°è õ “!¢!à$í$“%¢%û)*³*Â*..Ÿ.®.ü.Ç3Ô3€4�4Ý4Õ7â7Œ8›8é80;=;ç;ö;D<’<0=ê>…@TBiBÓBÚB¡C¦C©C­C±CÙCîCD]DrDlEF7FPFG#GÔG HÊH‹IjJžJVK L¼LàLåL M3M7M;M?MEMœN©NP P-PÆQÓQàQS)S6SãSòSŠUóUVÁVöVW=W]W}W�W‡W�W“W)X,X1X5X9X]XcXŒX©XZY�Y¬Y]Z�ZF[c[¤[Î\Û\e^r^^þ_ ``Pa]aja¹dàde e@eDeJePeVe\eh hhhh&h:h÷ij"j>jMjhj†j4kRk£kÈmâmýmnIngn¸nÎnìnšoÏpLquqîqršrÃrörsjs�s sStgt‡tôtu‡uôuv-vAvavÎvívaw€w3x½~à~ï~b�3€R€Å€Ó€ç€�s�0‚w‚ ‚ゃ2ƒ•ƒ̓äƒ!„Y„p„�„A…`…Ó…ç…†s†ã†*‡S‡r‡Ƈ凗ˆ«ˆˈ7‰V‰ɉvŠ\Œ–Œ­ŒÄŒx�°�Ç�Y�“�ª�Á�|�¥�Ä�‘7‘é‘ý‘’‰’¨’“¡“ä“”3”Z”ƒ”¢”ö”•Ǖەû•g–†–ù–ÿ–— ——— —&—-—3—:—A—G—N—T—[—b—h—o—u—{—‚—ˆ—�—•—œ—£—©—¯—µ—»—Á—È—ΗÔ—Ú—á—ç—í—ô—û—˜˜˜˜˜"˜(˜.˜4˜;˜B˜H˜O˜U˜\˜c˜i˜p˜w˜}˜„˜‹˜‘˜—˜�˜£˜©˜¯˜¶˜½˜ØɘИטݘã˜é˜ï˜õ˜û˜™™ ™™™!™'™-™4™;™A™G™M™T™Z™a™g™n™u™{™‚™ˆ™�™–™œ™¢™©™¯™¶™¼™ÙÊ™Йיݙä™ë™ñ™ø™þ™š šššš$š*š1š7š=šCšIšOšUš[šašhšnštšzš�š‡š�š“š™šŸš¥š¬š²š¸š¾šÅšËšÑšךÝšäšëšñš÷šþš› ››››%›+›1›7›>›D›J›P›V›]›d›j›p›v›}›ƒ›‰›�›•›œ›£›©›¯›µ›¼››È›ΛÔ›Û›â›è›î›ô›û›œž&ž/ž™ž¡ž¥žÉžòžúžoŸ…ŸP ð ö ¡a¡g¡w¡Á¡y¢ˆ¢œ¢é¢£%£…£Œ£a¤g¤¤¿¦;§A§I§M§U§Y§ȧD¨J¨N¨]¨}¨ ©©©f©ªªª-ªîª\«b«f«ÿ«¬ ¬#¬b­|­®®® ®'®+®/®6®J®_®ñ\²`²m²z²“²«²Ù²ñ² ³8³P³h³€³ø³ü³ ´´5µ9µFµ¥µ"¶›¶ü¶º°º´ºÁº ½“½ ¾N¾â¾é¾í¾ñ¾ù¾ý¾¿¿,¿…È#É'É4ÉAÉ]ÉzÉ­ÉÈÉúÉʗʛʨʸÊåËéËöËYÌÐgÐÌЈÑÕÂÕÆÕÓÕŠÙÜ×ÜÛÜèÜøÜ]ݩݮݳÝNãÔãØãåãõãóä÷äån妿lçpçéç¨è¬è¹èÉèDéùé€êŸë¯ëvìãì<íKí«í»í+î…î�î•îðî!ð/ð5ð:ð>ðBðkð²ðÑð(ñõñúñòò òòòòÌòÐòÔòØòÜòàòäò ó7óSóƒóâó6ôóô õ õÆõ|ö÷°÷´÷¸÷¼÷À÷Ä÷Ì÷²øºø¹ù`úyú“úû.ûCûYûÈû[üÀü3ý¥ýžÿ=ÜÂ^ ² l ë g æ ý e { � Yã0º®yQQ ê ú —!D$â$ò$—%\)ý)*·*}-..£.'3É3Ú3„477×7è7�8’:2;C;ë;ã<—>6@ýAoB×B7C¤C«C¯C×CÝC DE°E;FUF(G»H|I[J�JGKþKLÞLãLM1M9M=MCMNžN_OP"PQÈQÕQVRS+S—D—K—Q—X—_—e—l—r—x——…—Œ—’—™— —¦—¬—²—¸—¾—Å—Ë—Ñ—×—Þ—ä—ê—ñ—ø—þ—˜ ˜˜˜˜%˜+˜1˜8˜?˜E˜L˜R˜Y˜`˜f˜m˜t˜z˜�˜ˆ˜Ž˜”˜š˜ ˜¦˜¬˜³˜º˜À˜Ƙ͘Ô˜Ú˜à˜æ˜ì˜ò˜ø˜þ˜™ ™™™™$™*™1™8™>™D™J™Q™W™^™d™k™r™x™™…™Œ™“™™™Ÿ™¦™¬™³™¹™À™Ç™Í™Ô™Ú™á™è™î™õ™û™š šššš!š'š.š4š:š@šFšLšRšXš^šeškšqšwš~š„šŠš�š–šœš¢š©š¯šµš»ššÈšΚÔšÚšášèšîšôšûš›››››"›(›.›4›;›A›G›M›S›Z›a›g›m›s›z›€›†›Œ›’›™› ›¦›¬›²›¹›¿›Å›Ë›Ñ›Ø›ß›å›ë›ñ›ø›þ›œ8NxOQoR~\Ô]S_§`Ÿ|Ÿ' u þ ¡C¡o¡¤¡0¢�¢”¢¨¢¸¢£3£z£ú£K¤t¤&¥ù§V¨k¨‹¨ñ¨©œ©ñ©%ªª«t«á«¬ˬB®V®k®ö±h²u²ˆ²¡²¹²вç²ÿ²³/³F³^³v³޳Ƴ´´®´µAµNµÔµ¶¶t¶ܶP·º·¸J¸2º~º¼ºɺ[½‰½¿#¿9¿¾È/É<ÉQÉmÉŠÉ£É½ÉØÉñÉ Ê%ÊcʣʰÊN˪ËñËþˉ̺ÌÏÌEЪÐÑ{ÑËÑ.ÕƒÕÎÕÛÕÜÙFÚ”ÚâÚGÜžÜãÜðÜ:݇ãàãíãäÄäÿä åžåÓæçxçèiè´èÁèé…éêÏêlë§ëþëaìÃìíDí[í~í³í îjîóGócóvó®óÍóôšôéôõõrõ»õ(öqöÞö÷2ø”ø¦øÆøÖøøùúnú‡úòú&û;ûPû û+üªüüüý&ýoý‡ý™ýáýüýÆÿhî † � î w ö r ñ  p rñ>ðÞ›£ ò X!Ÿ!§$ê$a%Ÿ%À)*~*¿*Ð- .s.«.ô.Œ3Ñ3K4Œ4Õ4›7ß7X8˜8á8ö::;³;ó;<<Š<ü<Õ>P@>BaB�BêCúCKDjDXEöE FIFïFG»GHÆH‡IfJšJRK LdN¦NÊOP*P}QÐQÝQÓR&S3S¬SïSsUÌUV¨VñV™XAYŠYœYDZ�Z5[S[’[«\Ø\'^o^|^¸_`` aZagaªd6hÙi jj6jHjajvjkBk“kªmÜm÷mnDnWn¨nÉnÜnƒo˜pEqnqçqr“r¼rñrsYs|s�s:tbtvtÛtuvuØu v&v³V³n³†³›³þ³ ´¢´×´;µHµ̵ûµ¶h¶жD·‘·Ù·!¸*ºSº¶ºúO½�½¿¿3¿�È)É6ÉHÉdÉ�É�É´ÉÏÉëÉÊÊ2Ê�ʪÊAËyËëËøË€Ì±ÌÆÌ8Ð�ÐÑMѾÑ%ÕRÕÈÕÕÕÏÙÚfÚ´Ú9ÜmÜÝÜêÜ,ÝVãÚãçãüã“äùäå•åÊæ÷ærçè8è®è»èéxéþéÂêKë¡ëñë[ì¶ìëì>íRíií­íþí]îó>óZópó¥óÇóô�ôãôúôõhõµõököÔö ÷(øŽø�øÀøÐøëùúeú~úåú û5ûJû“ûü�üòüýýeý�ý�ý×ýöý½ÿ_ÿå } — á q ð l ë  j ^è5ãÑŽ‡ ì ?!™!‹$ä$H%™%¤)ÿ)e*¹*´-.Z.¥.Æ.p3Ë324†4§47Ù7?8’8³8Ú:4;š;í;<\<è<È><@0B[B”BäCôC>DaDKEéEF@FâF G®GþGÀH�I`J”JLKLON N¢OP$PUQÊQ×Q«R S-S“SéSmUÂUúU›VëV“X4Y„Y–Y7Z‡Z([M[‰[–\Ò\ÿ]i^v^�_``ã`Taaa¤d0hÓijj-jBjXjpjknQn™nÃnÖnto’pCBcB¢BìCüCRDoD_EûE"FNFôFGÀGHÈH‰IhJœJTK LŠNõOŸQõR¾SwUÎUV­VóV›XFYŒYžYIZ�Z:[U[—[½\I^Ú_-a¬d8hÛijj;jJjfjxj"kDk˜k¬mámümnFnYn­nËnÞnˆošpJqsqìqr˜rÁrórs^s~s’s?tdtxtàtu{uÚuv+v>vRvºvßvUwrwx¥~Ö~ì~Vs€D€¹€Ѐ䀸€_�Ñ�u‚ž‚Þ‚ƒ0ƒ�ƒʃ⃄V„n„�„-…R…Ç…ä…ø…_†Ɔ(‡Q‡d‡º‡ׇƒˆ¨ˆ¼ˆ#‰H‰½‰ŠWŒ“Œ«ŒÂŒs�­�Å�T���¨�¿�z�£�¶� ‘)‘Õ‘ú‘’u’š’“n“ß“”1”X”�”””ꔕ³•Ø•ì•S–x–í–žŸU �¡Ú¡ï¢¦£˜¤Í§©Fªôª<¬È±2´¾µ<¶µ¶·º#½ŠÈÑÊrÌЂÐçУÑÕ£ÙÜÝSã‡å¿æèâè]é™êÈë�ìêìÔíDîó�óûóPô:õáõ—öæ÷Òù¬úrûáûtüÚüMýÀý·ÿVöÛw Ë ÓÇ’jj !]$ %u))*–-/.@3õ3P78«:^;°>BŠB(D4EÉEnFAGEN…O'Q|RVSdU©U.VÇXÊY»Z�[‹\á]`_´`œdÓi¡jmk¤m‚no’peqr³r2s½s¤tOuÒu~v)w�w�~+žŽ€$�É��‚ƒ²ƒ>„¬„œ…$†¾†C‡�‡ˆèˆ’‰ŠyŒ•�v�•�á�T‘:’ä’f“”s”¿”2•––ŸŸ’¡Ý¡§£™¤‚©Iª>¬5´Áµ?¶¸¶·"º&½ÔÊuÌ Ð…ÐêЦÑÕ¦Ù!ÜÝŠåÂæèåè`éšêÊë�ìÕíEî�óûóPô:õáõ—öæ÷Òù¬úrûáûtüÚüMýÀý·ÿVöÛw Ë ÔÈ“kl !_$%w)**˜-0.B3ö3R78­:_;±>BŠB(D4EÉEoFAGFN‡O)Q~RWSdU©U.VÇXÊY»Z�[Œ\ã]b_¶`œd¡jmk‚no2s½s¤tOu~v)w�w+žŽ€$�‚ƒ‚²ƒ(‚>„¬„œ…$†�‡ˆèˆ’‰<ŠyŒPŠ•�dŠv�á�T‘:’ä’‘“”¿”2•––‰Ÿ{¡Å¡�£ƒ¤j©1ª'¬´©µ&¶Ÿ¶·}·Å· ¸ º½¼Ê]ÌÐkÐÐÐ9ÑŒÑÕŽÙÚRÚ Ú ÜýÜråªæíçÍèHé„ê³ëzì¿í/î‡óæó:ô$õÊõ€öÐ÷½ù—ú]ûÌû_üÄü7ý©ý¢ÿAáÆb ¶ ¾²}UU þ H$ö$`)*�-.².+3Þ3“4;7ì7Ÿ8–:G;ú;H<›>BtBDE´EYF,G#NcOQZR@SOU“UV²XµY¦Zl[i\¿]>_’`‡dŒjXkmnònPqòqžrs¨s�t:uivwˆw‰y€�{‚ë‚�ƒ)„—„‡…†.‡z‡í‡Óˆ}‰dŒ€�a�€�Ì�?‘%’Ï’ì“^”ª”•–­–Q!‡!Ô!"­"·"C#M#W#›#®#ã#$¶$+%5%�&='G'«'µ'v(€(ý())_$¬$À$ %%!%?%Œ%–% %ª%µ%Ã%Í% &&%&/&c&m&w&‚&¢&'$'/'Q'~'ˆ'“'¡'¿'I(S(^(l(Š(Ð(Ú(å(ó(&Ÿ¡q¡ƒ¢X¨ ©'ªj²w²´´CµPµ¾º˺1É>ɥʲÊóËÌÐÕÝÕåÜòÜâãïãååzç¶èÃèê©ëFíµíŸô ¡!ì$¡%*Á*.­.Ó3Ž4á7š8<;õ;=]@¨NP,PÒQßQ(S5SñSÚ\q^~^ ``\aiaM+ä+}6£7::Ò@‚BpIWO½a.hÔhÌi+jÐ…ÜŠ¢ŒÏ�ù–GšÏ�›¤Ä¥fÌÍÌ!Î@ϦрÒLÔÖîÖ­×LØ ÙgÛˆö»÷Ïüþ¶øE½ø |.®EÒ;Ѿ( ÐHöI�JfK0L*oOpøpÁqòÝà‡êîê!z!¤"u#Å#%l%3'Ï'ö(j)÷;/?ƒ?ZYªYRZÇZ[À]˜aiai„jlÖn"54„ÜJá÷â¢ææìwí&îÎî{ïßðAò£óõgõ;*….¤DVEFºFlGHZS™rçr5sƒsÛs)t�t 5b6»9Ò9æ9ú9:BB]Bøƒ„y…�…µ…_Œ‡ŒÛÛñÛLÝbÝxݎݤݸݼâÐâçâxæ�æ[êqêþ&e.‰rÇÝÜÝ'J)â+ 5¡7¹9Ð@@BnIUO»aÁgÒhÆi)j‘ƒÚŠ]ŒÍ�÷–Eš®�գ¥ÊËÌßÍ#ϤÑ~ÒJÔþÕìÖ«×JØ ÙeÛÙÛ¹÷Íüþ´öC»ö ,NCÐ9ϼ& !�I›JdK.LXSæoöp¿q‡ràHáìêäìx!¢"s#Ã#%j%ü&Í'ô(H)9*-?�?¢D¨YPZÅZ[¾]–ai_i‚jlÔn(oã+ 5a6¢7º9Ñ@ABoIVO¼aÏgÓhËi*j’ƒx…ÛŠ^ŒÎ�ø–FšÎ�֣åÊÌÌ Î?Ï¥ÑÒKÔÿÕíÖ¬×KØ ÙfÛÚÛKÝ»âwæZêví%îÍîzïvðØñ:óœôfõ‡öº÷Îüþµ÷D¼÷ -ODÑ:н' !d.ö;UEF¹FkGHÏHŽIœJeK/LYSYYço÷pÀqˆràIáíêåìy!£"t#Ä#%k%ý&Î'õ(I):*ær4s‚s.?‚?£D©YQZÆZ[Ús(t€t¿]—ai`iÎtƒjlÕn)oýùþüqýËÿm óPD]EuUƒȃT„‘Œ«�Ž�”5Z6o6È9ß9ó9:":OBjB„*„q…†…š…Â…lŒ”ŒèÛþÛDÝYÝo݅ݛݱݾÝÉâÝâíâ…æšæhê~êoðÑñ3ó•ô_õ€ö 'r.NEF²FdGHÈH�rÔÝéÝ 'W)5^6s6Ì9ã9÷9 :&:SBnB „.„u…Š…ž…Æ…pŒ˜ŒìÛÜHÝ]Ýs݉ݟݵÝÂÝÍâáâñâ‰æžælê‚êsðÕñ7ó™ôcõ„ö'v.REF¶FhGHÌH“rØÝíÝ$'[)3 µ¡b¢¤4¥³©Ùªß¬Â´èµˆ¶ð¶d·Fºo½dËŸÌ[ÐÀÐ'ÑáÑDÕòÙ]ÜPÝ´åéæ*è1é›éÝêìÍìîwî¸ó)ô¡ôyõ/öåö9øúüúªû5ü´üývýèýÐÿrø� ø )þì©Ù „!É$|%â)™*ò-Ž.®3f4½7s8;Î;ã>LB§BUDdEFþFÅG“NP¬QSÁSzUÐU²VKYNZ?[œ[Æ\V^ç_:a±d'k�k²n�ocsDtåt€u¿vZw$x[$€¾€d�2…Ì…d†¿‡ˆˆ(‰Â‰‘Ú‘z’“•X–ò–É'Ÿê  =^@õœ-žøžN #¡ç¢g£8¤½¦ƧƨÆ©ìªë`­z­Á±™³Õ´Qº¾L¾ƒÈ0ÊwËPÕkÜ[ÝLã‘äõæ6è÷éIëYìáìgíîî&ñò ónóÅó÷Îøúôý • Wá<4@YB5CòC F GüGLøUéV—W‘X‚Y”Y…ZK[UgÌimj9k�m;nNnÀnÓnŠp7qÙq…rèrürss‡sYtmtútÊu3vGvÔvgw–~õ~h9€Ù€í€Â�b‚É‚{ƒ„v„G…Ù…í…·†‡Y‡̇�ˆ±ˆ=‰ŠBŒ^�?�g�«�‘ï‘’�’_“Ê“E”‰”ü”Í•á•m–ã £6¨O«F²ÉÆã0í(óêi»m©péu´~à�Õ†Š}“Ö £)¨B«9²ùȹã#íóÝi®mœpÜu§~Ó�ȆŠp“")?CGKOSW[frŒ¡ª±¾ÂÉÐ×äëú  )6:AHLSZaosw{ƒ‡‹�£ª±¸ÄËÏÖÝäëïöý &/6:AHOVaosw{ƒ‡‹�“š²Ëßæíôû-;VZo�š¯³ºÁÈÏÓÚáèïó÷ ( < @ D H Y ] d k r y } � � œ ¡ ¦ « ° µ º ¿ Ä Ì á þ   # + 3 C V [ { ƒ ˆ £ ³ ¸ À È Ð Ø Ý å í õ ý    2 K P p x } … � • � ¢ § ¬ ¹ ¾ Æ Î Ö Þ û  % - 5 = E J R Z b w  „ Œ ” œ ¡ © ± ¹ Á É Ü ë ð ø  - 5 I N V ^ f k p u z  † ‹ � • š Ÿ ¤ © ® ³ ¸ ½ Â Ù Þ ã è í ò ÷ ü #(-27<A_g‡Œ”™µÊÏð,1GLbg|�†‹�•šŸ¤¬±¶»ÐÕÝâð9Md‰ ®ÂÇÌàåêúÿ"Iinuz� ·ÇÞé÷ü$,4<DLT\dy�‰‘¥­µ½ÅÍÕÝâôü %-5=B`hpx}‚В𢧝³ÂÇÌÑÖÛðõ*/7?DLQYan|Ž�¤©®³¸½ÂÇÌÔÜñù%-HPXs{Ž¡¦®³·»¿ÃÇËÏÓÚßäéîóøý !/4<DLaiqŠ’šµ½ÅÍÑÕÙÝáåéíñøý  6>CKPX]ejrŽ–¸ÓØÝåêï÷#(@EX]bgoty�†‹“˜ ¶¾ÆËÐØÝåêò#(05=BGLTnƒˆž£«ÂÇÏãèðõý 4OTYafnsx€…� ³¸ÀÈÐÕÝöû !&+38@EJRW_w„Œ”™ž¦«³¸½ÅÊÒØÞäêðöü &,28>DJPV\cjqx†�”›¢©°·¾ÅÌÓÚáèïöý  '.5<CJQX_fmt{‚‰�—ž¥¬³ºÁÈÏÖÝäëòù#*18?FMT[bipw~…Œ“𡍝¶½ÄËÒÙàçîõü &-4;BIPW^elsz�ˆ�–�¤«²¹ÀÇÎÕÜãêñøÿ   " ) 0 7 > E L S Z a h o v } „ ‹ ’ ™   § ® µ ¼ Ã Ê Ñ Ø ß æ í ô û ! !!!!%!,!3!:!A!æ £9¨R«I² ÉÉã3í*óìi½m·p¿pÇpëu¶~ò�ú� ‚‚Û†0ŠFŠXŠnЇ“™“GŸfŸZ¡[¡£Q¤U¤©ªï«ó«ë³+µ,µ-µ.µ/µ£º‰ÊÚËÛËÜËÝËÞËß˫հÕÈÜìäíäfç‘è–è?ê‘ëgì–í›í|óÓóÜø-ú2ú7ú<úAúFúþ þ þ þ £  ?vwxyz{|}~€*=@gBDDD(F-FGVŸX¢Y“ZY[|jHk]nân s–s|t uVvãvvwwH€ü€…„V…ü…h‡Û‡ÀˆL‰º�-‘’ž’˜” •ð•|–œZ£ £µ£õ¥é§ͨ\©ª‡ªæª§ «E« ¬n¬Ð¬¾¢Ô²3³ ¶¶�½§ÉõÉÁÌÖÌíô¿õuö÷˜ø­øý-ý‹ý ýqD!jLjî~Ò€gŸ\¡€£Y¤© ª÷«ð³0µ¨ºŽÊà˵ÕÍÜîägç›è@ê–ëlì í}óØóÝøKú þ ¨ �+=€@hBD2FGH VõV¤XŽY§Y˜Z^[�jMkHnbnÍnçnõrs€s›sft‚tu@v\vèv{w |M€æ€�Š„[…æ…†m‡à‡ªˆƈQ‰¿�2‘ü‘’£’�”•Ú•ö•�–‚„…§»½¼º!Ñ©¨µ²¾«%ÁGŠÃ¿ÅÙÁˆ°«¯±�×wúXýX�X úX�R§fɺ§fúX§fýX¯f³ý‹gýXýX‹gýXýX‹gýXýX‹gýXýX‹gýXýX‹gýXýX‹gýX$ýX‚$ýXýX™�$òýòýÁôý‚õý’öý exhaustedÁÝ ßÖ çPýXýXýXñwúXøxúX‘xúXìwúX´wúXÒ_Íuå³±Í\­púXåCúXéó–PƒŠƒŠ EnumerateÁ…Š�Ð<†ŠŠÐ< 0{?i—áªáª ChunksExactÁ䪬óo媻 óo檅Yóoœå‘û¥ÇIúX–PƒŠƒŠ¨É…Š�Ð<†ŠŠÐ< 0{?i—�p�pIterÁ pí óo¡p end_or_lenÁóo¢p_markerÁóoÛê2ÝЫúX–PˆŒúnúXÆÄP�R–¥Å™Ç™È™­É™Ê™àË™óG*¤�R{9 úX–¥ýX–¥Í\œ¥ÄP®¥úXæsúXª©úX�oúXíLýXÑÆ[úXýXöLýX¢oúXÚ*úXýXªoúXÀ™úXä<ãÊä<†Ì”+úX¨aýX”+úX¨aýXÇ$ýXÈ$ýX×`ÌÅ�R×`ýX�R×`Í\ÄPÜ`ÓL�R�RÜ`ÓLÄP�RòQãÊòQ†Ì„ÄP…ÄP‚ÄP†ÄPƒÄP‡Éžâ0]|øÅ™uÕª<c¼‡ŠHiÄ J˜©‚ì»…oPöøÃ—!V¨‘ë„�z[ßõ÷Ò§ôö�t¦8a¹ÝƒˆõDgHŽÐ¥év€¸�PmNœyÜT¤·Žñ)ZóŒÎ[s£ç¶ð†òÍ¢æ4_üµþ/Ùñ@eŠÌ¡år~ûŒLk L.ew­ðR äú›×%Xí„מּWqÊŸãù³ûÆšÖì«�½,-,-q,,Ü }©Ø core_intrinsicsÁfmt_helpers_for_deriveÁ¢g¡g(Íb§믜tã³¢W/§$crate::assertÁ É%‡T]�±ù]‹Öpanic_internalsÁƒgeneric_assert_internalsÁ±œ(Íb§ë¯3˜x-¹ N…üÌ™ •Û¨]—‹(Íb§ë¯þU�š9”Îu�,-úûè(Íb§ë¯9ô+xh ™ ÕÖÉW‡T]Ç‹ÖûÖƒ�×±œ(Íb§ë¯�’ô…½], Û% ,-úûè(Íb§믑‹@®ªßÆ®üÁø,-(Íb§믑6[©\4D«ÕÖ%ɇ‡T][‹ÖûÖƒ�×±œ(Íb§ë¯oãÊÂókþnq,-úûè(Íb§믿mùBÌ@ Èb,-úûè(Íb§ë¯�ÖñEK~3à…eöi_‹Öderive_eq_internalsÁ¢ŒÏ¾(Íb§ë¯5…é¯Wšÿ ü‡i4 ,-(Íb§ë¯ÅüÝŽaq?,ÿ Ó‹Ö�Ö¢g¡g(Íb§ë¯@Û6âY~™K,-úûè(Íb§믂fí]ñàÊZVã,-(Íb§ë¯g)‰AÍhØô tõs ,-(Íb§ë¯!®ÊŸ‘S”ÕÖÉ ‡T]‹ÖûÖƒ�×±œ(Íb§ë¯o 2–‘¬J 4,-úûè(Íb§믅AÍÃvC¶3LÕ…�ÀO_‹Ö¢Ë¾(Íb§ë¯.)�ŸÖºÕÖÉ<‡T]º‹ÖûÖƒ�×±œ(Íb§ë¯Ô¤…°‰:1e?,ø }”V¯‹Öderive_clone_copy_internalsÁð‰â(Íb§믌ÌD‹ÍÛo$crate::assert_eqÁáoò[]µŽ ]ûÖ�‹(Íb§ë¯Ãk9«PõÔÉüÀ$& …ÿ‚]´œ(Íb§ë¯À‹óïÕÖ É!‡T]Ç‹ÖûÖƒ�×±œ(Íb§ë¯àæ6°˜±ßáTò[]¨ûÖ�‹(Íb§ë¯(÷ün:�ÕÖ$Ƀ‡T]<‹ÖûÖƒ�×±œ(Íb§ë¯Õl�hiQËOq3,Î…å‹Ö�Ö¢g¡g(Íb§ë¯ní3Á?îr $° ,-(Íb§믱Ozz1¶6Lœ"S‹Ö¢Ë¾(Íb§ë¯>? ‘Õ ´„l ,-(Íb§ë¯s¾@+Aóf›~Dž 8‹ÖíÚ¢ŒÏ¾(Íb§믪cÛ"–ü©L(…— ù liballoc_internalsÁ(Íb§믣œn…æ?Ê üñV/ ,-(Íb§ë¯r¯·÷ÌÄõ ¬µ_,-(Íb§ë¯d "ƒrš�o3$È…u‚‚´‹ÖñÞú Ì (Íb§ë¯Îx¹‰¬¹ÕÖÉ8‡T]4‹ÖûÖƒ�×±œ(Íb§ë¯Xl�°>)ü ¤¸9 ,-(Íb§ë¯3Ý,ê( ~=â$ ¡‹ÖíÚ¢ŒÏ¾(Íb§ë¯Òèy~òMÁÕÖɇT]Ó‹ÖûÖƒ�×±œ(Íb§믽pT V­$crate::panic::panic_2015ÁølˆW2 ¥�8llibstd_sys_internalsÁÏûÖrtÁ¨%�%(Íb§믹³Å-ì¾�U üµ 3 ,-(Íb§ë¯(&µ Ô’Þ} ¶ˆ,- fmt_internalsÁfmt_arguments_from_strÁ(Íb§믓ô…nÞÕÖɇT]ô‹ÖûÖƒ�×±œ(Íb§ë¯þ£=*Ÿ¹j~6˜"=‹ÖíÚ¢ŒÏ¾(Íb§믾#ª¥šÄ”ÕÖÉP‡T]o ‹ÖûÖƒ�×±œ(Íb§ë¯îÊo*  ¢k ,-(Íb§ë¯×Cmå3"Ç£¶DL“ P‹Ö¢Ë¾(Íb§ë¯Urˆô!`–¬Þ)�ù áã(Íb§ë¯ë€U,|±ß#á€ò[]ÝûÖ�‹(Íb§ë¯ïlQ.gY ÍO,-úûè(Íb§ë¯OãКÝ�ˆe3,Á…¦‹ÖñÞð‰â(Íb§ë¯ ä´ñô@ Ë2 ,-úûè(Íb§ë¯ý?Õ ˆ­½¶=L×$ ƒ‹Ö¢Ë¾(Íb§ë¯ä$Añò7Z±ßáiò[]ÜûÖ�‹(Íb§ë¯4}òèûoÓ¨ œ‰ ,-(Íb§ë¯<øÅ‘ H Öq6,‘"ü ‹Ö�Ö¢g¡g(Íb§ë¯Ìfnå¶ ý±ß<áËò[]! ûÖ�‹(Íb§ë¯:V©W�æ ,¦ ,-(Íb§ë¯×æÄ°ÍtÍTÕÖɇT]Ù‹ÖûÖƒ�×±œ(Íb§ë¯&Ш™‡Gt Lïc ,-(Íb§ë¯>D÷óC*—”q5,ó ¥‹Ö�Ö¢g¡g(Íb§ë¯Ãòž<_ä\|ÕÖÉH‡T]r‹ÖûÖƒ�×±œ(Íb§ë¯Ì¥>¬â½[ö±ß!ázò[]SûÖ�‹(Íb§ë¯ülÕŽäŸz |ŒC,-(Íb§ë¯Ó[Ηµ‡ ‡q-,üS s‹Ö�Ö¢g¡g(Íb§ë¯YŸÈ.ÀW[„ üÙ0 ,-(Íb§ë¯Àsïâa"ð¹õæøbä*1 : ¡çÏûÖ¿ç¨%�%(Íb§믖…ö(3£§¥Éüˆ"´œ(Íb§ë¯�¾h°'Œn tæ{ ,-(Íb§ë¯öqÓ~Ñe±ß'áŽò[]™ûÖ�‹(Íb§ë¯VF�@||W» ­ ,-úûè(Íb§ë¯Â¤™ýeÑi ¾c ,-(Íb§ë¯Ûù§cÏ%ïe5,ì …‹ÖñÞð‰â(Íb§ë¯Z—Ü·óÊzˆ ¬*,-(Íb§ë¯Nq³°RÝ“o-$öS à ‹ÖñÞú Ì (Íb§ë¯Òˆœœò§—¿õ ø-Ð:6 ”ûÖ£[ˆZ(Íb§ë¯ðèÉÈgáÕ ¦/ ,-úûè(Íb§ë¯ÌäXö«Ã Æ üâ+4 ,-(Íb§믹¡ méh�±ß;áÈò[]:ûÖ�‹(Íb§ë¯lÞ¨V�¿»|$crate::format_argsÁñ_©©]Åõ‘]”è¤èžœ(Íb§ë¯�q2‘ãwzÉüã &‡´œ(Íb§믙�¹Ì 3k+32,-úûè(Íb§믜CÇ£§Á5ËÕÖɇT]x‹ÖûÖƒ�×±œ(Íb§ë¯wžã›ä]3,-(Íb§ë¯òã'Ã¥ˆ·Hq4,¢‰E‹Ö�Ö¢g¡g(Íb§믓ŽÊ$s ÓÌÕÖÉD‡T]‹ÖûÖƒ�×±œ(Íb§ë¯Y�~:Åht ¼éi ,-(Íb§ë¯é�k¶a!Ú% Âc ,-úûè(Íb§ë¯CW¾¾¨<ÕÖ Év‡T]¤‹ÖûÖƒ�×±œ(Íb§ë¯nÞ«p9]e-,ïS ê‹ÖñÞð‰â(Íb§ë¯yÌRec¥{þÕÖ É)‡T]‹ÖûÖƒ�×±œ(Íb§ë¯Þ-ÌÎ üÛù”,-úûè(Íb§ë¯PΑ�b7ùÕÖÉ[‡T]‰‹ÖûÖƒ�×±œ(Íb§믤À±&¸–iï ô¨{ ,-(Íb§ë¯Gâ~€ÜÆ~ÉüЉX´œ(Íb§ë¯ç]�á“F±ß&á‹ò[]¾ûÖ�‹(Íb§믗—C•–»C0,-(Íb§ë¯\iæýÿÏÓµ~4ž‰€‹ÖíÚ¢ŒÏ¾(Íb§ë¯kkƸ¡/¶{âv,-úûè(Íb§ë¯ Ÿ8@ÔLE^~?‘ è‹ÖíÚ¢ŒÏ¾(Íb§ë¯­¿~š8gô ü¹% ,-(Íb§ë¯ÓÕiM©°3F,-,-Ü (Íb§ë¯šøZÃ`*”e,,ã l‹ÖñÞð‰â(Íb§ë¯Ûc§Ð‹'‘ Ç+ ,-úûè(Íb§ë¯~VQ)D[CÉü¸…,7´œ(Íb§ë¯ê8! ºÌ]¸ ,å ,-(Íb§ë¯Cº6èz¦˜«ÕÖÉ ‡T]‹ÖûÖƒ�×±œ(Íb§ë¯G _“eDqá*,-(Íb§ë¯}òÊ£|Rà¶4L“‰‹Ö¢Ë¾(Íb§ë¯õ n…OqëÕÖÉ@‡T]¹‹ÖûÖƒ�×±œ(Íb§ë¯ï… Ø”íð ªX ,-úûè(Íb§믃QBPò5+ø¶?L† ¤‹Ö¢Ë¾(Íb§ë¯BßÏl˜½ãÏÕÖÉr‡T]\‹ÖûÖƒ�×±œ(Íb§ë¯c•Ó�v¢º%Éüï& ´œ(Íb§ë¯u–}ZÉÒ�röæ,-(Íb§믰_®Ð]ÿêÀ%`t !"#$;  <012  &' debug_assert_eqÁüé]% å„[]’‹(Íb§ë¯^½aÃû×ät debug_assertÁô« ÍœS]ƒ‘‹(Íb§ë¯\jîa¾’üÏ!4 5ƒ‘‹(Íb§ë¯3·½·SÄXÿ‘üáF- ¢’‹(Íb§ë¯ìåÉg=dÉö üíw#•ûƒ”“(Íb§ë¯þAH–és3¾’ü—*0 Ƀ‘‹(Íb§ë¯ð­AóÒܾ’ü‹b0 ûƒ‘‹(Íb§ë¯rÒ¢¹Y¥ dÓüÐ:6 ÅšÂ]ƒ™‹(Íb§ë¯ØEyÏ2¥^Õÿ‘üÐp �’‹(Íb§ë¯!‘ªYý-À¾’üçL9 ‘ƒ‘‹(Íb§ë¯ÁÐDÑái¾’ü‰vÜ Åƒ‘‹(Íb§믒Økª'Ixÿ‘üœ5 3’‹(Íb§ë¯q¥�éC´¾’üÍR4 'ƒ‘‹(Íb§ë¯ñ†Zû�¡Z¾’üÆ[” [ƒ‘‹(Íb§ë¯^A {­­Ë̾’üþ# Žƒ‘‹(Íb§ë¯òÚ¡×ûõÝ·¾’üýgF Áƒ‘‹(Íb§ë¯?z£œ*öÚ:¾’ü™:- ôƒ‘‹(Íb§ë¯fÅX×~k7¼Óüôa+úƒ™‹(Íb§ë¯'uBš§­cѾ’ü·+ Yƒ‘‹(Íb§ë¯Ý„&•ƨßÿ‘üý]- Ç’‹(Íb§ë¯Ìß[ìeÖ¾’ü…&9 »ƒ‘‹(Íb§ë¯}H&T»uÿ‘ÄÊk (’‹(Íb§ë¯L-áq«þº£¾’ô”+ ƒ‘‹(Íb§ë¯r„\ÂI�Ù3¾’üÊu5 Nƒ‘‹(Íb§믉_w*=›Fš¾’ü³L* �ƒ‘‹(Íb§믫4\Ä.�T¸ÿ‘ü–zG ï’‹(Íb§ë¯Ûƒ<@<Ö± ¾’üÂNô 䃑‹(Íb§ë¯Á�ÇhV‚žä¾’¬¬Z ƒ‘‹(Íb§ë¯ÿ¯¬mµ÷1¾’ÜÐe Hƒ‘‹(Íb§ë¯Ì°Ä�ÊÑhî¾’Ü’ zƒ‘‹(Íb§ë¯S!W²ÒÆÔEÓüùN+€ƒ™‹(Íb§믆ôÉ5•Á‰Åö üä*1 Jƒ”“(Íb§믷Th –P¾’ü¬$8 ƒ‘‹(Íb§ë¯üS‰Éð�6ö üˆW2 ¯ƒ”“(Íb§ë¯áóŒiê³¾’üÑ*9 vƒ‘‹(Íb§ë¯Ò”›2M³Ï¾’ü÷f' ©ƒ‘‹(Íb§믗ãf³h¥*À¾’üãA9 ܃‘‹(Íb§ë¯A€‘2½Œjíÿ‘ü‚q2 J’‹(Íb§ë¯z;7s?Ê4¾’üªM� ?ƒ‘‹(Íb§믫äñ+jwßÿ‘üÐ6 ­’‹(Íb§ë¯Ò…M…�¦#Ìÿ‘üÒy: Ü’‹(Íb§ë¯.27C€æ(]¾’ü‹SK Ѓ‘‹(Íb§믩.•)–=3åLHŠ*�HR)`H¥(äH:*¬H�)|HË(PHP*ØH“) Hã(lHm*øH«)ÈH)ÐHh(˜Hï)dH5)ôH�(¼H*ŒHN)\Hœ(àH6*¨H})xHÇ(„HŽ*TH¾)[),)èH(ìHB*´HŠ)ÀHü(ÌHl(ÔH(*œHn)pH³(tHv*€HÖ)ˆHC)XH–(ÜH1*ðH¡)Þ(©(z(µ*c*>**°H…)¸H÷(ÄH^(—*T**å)Â)—)d)0))ç(®(ˆ(Ä*€*F*”H¦*¤Hø)Ì)œ)s)9)½(‘(Î*…*Ù( (u(°*Y(’**à)¹)_))ƒ(º*h**Ž)>))c(œ*Y*#*ê)Ç)i)hHì(¸({*K* *Û)¯)I)"))Ô(«*ý)x)ò(Â(T(*´)V)')¿*q*Ñ)¦)) )Ï(p(¡*^*,*ó)É*Ó*žEÓK;IÀNžLzIVOMJ»OaMrJ!PÆMÖJƒP(NlKQ\NŸKüHŽNLÇ+$O9L¬I‰OÑL@JîO3M§JTP“M KæPùMõ9(7g5É1òNlLÚI+FLD|A?=K·Põ/ûG:<23s.~F×A8=@9S4&0R+{Co@ž<'8“2/GqBÑ=µ9Î4f0&,èC-AÄ>›;š6r3®/»GC>Z:š5š0¹,{DV?÷*ÅECC:@j>h<¼:æ7þ5Y2Û0á.U-âFÕD;BÞ?œ=Û;€9ó6“451÷@Þ<6;”8e6÷2Y/Ê-†G>E":U725Ž1“,ZFªAŒ?=ø8à3ÿ-e,yEÒ@�:Š72ú,XGEÕBº?x=941ù+ýE»C¤@Ÿ>;g876Ó2¥-±B<5j1O.(D2?n;É8,.)H@F>¸7Ð552³.'-¾F±DBÏ6ç*µEöKjIâNÁLœIyO#M0JÞOƒM—JDPéMùJ§PLN�K8Q~NÃK+I°N)Lé+FO\LÊI«OðLbJPQMÆJsP¶M-KQN:E7Š52OŽLþIJFkDšA"?\KÖP0HX<b3£.®FBh=p9ƒ4V0·+«C”@Î<W8Ã2I/HG¡B>å9þ4Š0U,DlAô>Ë;¿6Ð3å/ëG3C6>:À5Ë0ê,¡D|?B+íEkC_@�>Ž<;8'6ƒ21 /•-GEaB@Á=<¥97¾4Z1A=^;¹8Š6"3ž/ï-«GiEJ:z7W5¹1©,nFÇAª?(= 9õ3.ƒ,ŽEç@¬:¨7%2-vG.EóBÎ?Œ=09C4%1,FØCÂ@´>&;„8U6ç2º-ÅB*<"5~1c.Ö7î5I2Ñ.E-ÒFÅD+Bã6°hODHT /·ÞÉ!þjøEŠ¥«kÄþÁvúåœ#44w”>é9»À7éš·'l²ü˜'b‚U€\Š>¨ðädcâ1w¡ ÔŸõx ‹ªG ´¹Øgå;ÐtÝí[: fâ‘ÉkÄ!HÎöuÄQÄé9P¸2nT'�Õ"*Itu¯ÏîK&䪴»(Íb§믯\޾LòžÞPвÔÒ8ˆ«˜·@�¦pöfÊiì*¤Â¢N"Tì–8�#LcÕÇ&ÄÎLµä¢%l0ÿÚÑ$'t;o`ŽYj(СÅнŸI)ôå†ùþrŠÙ,ÄuV²Â‘^v-´ùPTý.½'Ít™0è7ô9äqÑ0—@%д3È ØyÆ3\ž'øJ{ˆ3Ü&¦áÝ®è4Pa¯éú5 öô(ÎR8 "žœ0ÐÛ¤9`i+»Z‘úB:lz² ý ×<Á¿z½õ>hÏa¡˜š_¤”~˜¹1aØÚÜ£eZŸÒT”·$Ì`Àœ.c9~L«üc¨¡ÿáJUÉ�edÃÞG�‰Žþf`¦ŠHþ¤ÀgÌþ*]{5 h˜¸5[êŒdlÅmå'�´jp@óÊf{0Ðkô@Ù¾O3‚Y¹èÛça9mìÝbc ©'3^ÈG;ô‘toDöu9ÁnpgÏHÖÙ“Gqò¶Ä:^»½rX¶€unßíq°{·âÅå;ƒq Z°.ÑÉxBp0ßCÕ¦¬)�{¤pŽ5Ü«Bs|tK�'DDËq}ôK‡ë4e~· Vôn@½~¥2—mxA‡H‡J} ùŠ0Œ`¬Ö"`Šø$KjZë" �„3gž£î,E�ØN] a°¾’Ò¡~¯"ï“eYß ”Dò7ÇtB®‘¼÷£†¤SO–T¤¶’WF¦–H·Ó`XB8˜ÐÌY»¤ õ–¼ ¦š±ò^ŠšÜ~utÙ›œB\±ødIš0›åïiа—ØwVóW¹äœÔÒ‹ ¸ØBižÌÞüS¯ ìé„®¬(Yò €ãw‰·9*™úÄà…¨Œê‚¦¤¦ÀŠòÕ®§ª¼l†‰¿Ju äÎè™1�¬ØøÝù¤¬Á�¯´Öäs âM°X[H;k5A±Tsh.ÿ+–ůLeGÞ[ñ¦³»yíÞýo¹±$|Ç-yF7 µäüpœèÔ1䵜˜¸‡-Ρ °(°b^¼î.¦¸ìÏé4å>Øc¹d#¼ïÄ¿ó´¤æ«€EC•7»ÌmŸ‹ŽTµ¼ G�„¤;…‘½¤É”ìUv¾ðx‡÷ÀÝ µ8ýÙdîQ´½ätæî…-°ð½ˆ/R«LgÂdïÖ½~‰SÄ‘ß0ƒ†Ç hî”ö'TÈÌÌà}O3Î8=ö(öd<Ï”!eVßËeÐ4-±,?oA-Ð4�sÎ/:ŒÓ|ÇZçþ¾„[Ô¬CøG,y„ ×Lì§ðõ�ù=ÚdE�¼¶E“TÛ¸@Öq�å‹yÚÀ㯠5M<ܘ÷â&Fâ‹ß¨›eÄØ™Ÿüà¤ðù…íg@áã`kOŒ2EQ‡åp83?÷W�2çì=ð²#0ýè8ô+úëÉ^çXc»vÜx^ê þµüó »êÌ[Å©kûÒþìLfbUìÏÉ|ìdÿxÜZéÏîp‹Nع…ìäñ„"32Lì�LU“îßzñ|ìM<ÕÆ�ñóÜV�a4®ŽóX’®ÅÁ4f›ôd‰˜&Sû‚ù™ ë•"¯�ü4Ðh ¦aþ4;ÓOšp„ÿ}j³ Æ~ûÿø˜WÒÌa;m©s¾±ŠE éÌÿUxU•!9d3yêþ÷ÑUÖÈ”GÅ]Ô[ ¯sÈ‘¨ê‚GÞÆ¨áp” Hð“ ‰nöÚ—Ýí- áO:×&fÓbu3ËÀÉlWõ‰º¿ÃÁeµÙH÷fx‚Íõ'Ǫ�LÅUIÓ¬aOýYUÌ–¯¾Úüwéü½Uã%ÏYXµ¨Õ<ÅÕ{rb!evî˼ÙçÓõ‚Ræ=üi!èÜÓä�*Ø“ë%B1Õ[g*ÏÁ¡űÜ9o8ioï—¿fí!¿K@]´ß.ñóB#Êe[¦ eIü-$œ¤ ù0@%ïÊþ$iÓ e÷éÿ2$Y<5¿Z÷cÉ$=ªc‡ÉÝ×']â©éæ¢,(½½†ÜÁ5 Û+ݾ:X]µ"Õ,–´¿ ëA-ÝxíâË\V .Ýþ”=¬D/›dµCÃÑ/5&´¾NîD1qQ©`ª&Jo25tQÅb~&´3Q¾q/xÈù¸4•¬F7Rí5¯Mõ~œ“_61ç׬O®F4id½O‚“¶Ã8ÿ©ß¤ù÷5L;¶2|°÷:9Ö ~.Éer;ÉùˆÀøýùi©µÙmh;ý÷Ûˆš’J@‘ËlÕ�l½A-ñ›©1Œ9AÁòi3d›A�Š}’ ² Dy+SÎ4ñZÐDG­é�F­tDÙνQºã' Eá¨X�FšÈàG…‹²9È‹’ÚI9ÈÞVV¨5Juàqa��à­Bñù²Ð¥í–¨Kµ,éí>7è.M9³u9Á}„N ö¨wj>SSOy ½;/¡Ý,OÙÉ|¾ ãM©ä³t9ǤlRê=—çl£S‰U¤ÊÞ‡’T)NÊyÂ2„R�”2IÅ™NU!±Õ‹~É WQd‡ÈýÀ�SIg&É´r=_YÀ Š‘ã0Yáx½Îû„Ý[!´@”ߌ@\™ò†âK5]¡'�‰z|ï^á|n��É>æ\ÕØ>‚\¬`},jFnŠ6î\%LÔ¢~+@bœCýA&qc-ÎÜåá)Xå^­b.{›UQ“b�÷Q—Â/ñf&\>â[¥�Á™åXhyØ��**ÇiiÈjÃçóÇcaM–Àb Nzk PñÉqìq8EŠ0óéuË…m峚ä~î•.n)‹üÚòY½bl91µ]È4)Q•‚º>Nqé/]oóš0ärÝô.³GíÆqã ®GÜ} uÙÿQ ƒeÎÑu),v*ЬÀ”xq®+ pò|x)ŠñJl´%ÉzÕðw}u´—Ò{ña[¸÷C~ÝGør7ˆ€a?‹¥’ú?»�‰`�ÿ/iIìƒyM$7-û†ý†2%N6'‡eÏ'ž|½‰™qØ:‡¾Š e²:’}4‹Y�z¯¸�Œuöñ ô‡é‰•ͪ _rí©Ž)%¢êÎæ‰�½ g·ó†� c–�±�Œ ‘9æU� wCT’IJ˜SÜœy15²j)a�H”áR`ˆïÿ‰•Å×�ÔÍ)–[ê‚�¤1Õ1ÇÆÅ«Li˜µøsž4½™q¥¸Àx§<˜Ù(�GT`�¬› o›5碶›aN›TJÃåý�ÙÊk0°QWežñw«òî(EµŸQh2‡°H q¤t1 †5œ‰ÉQ$bÚ¢kh6Q)ð¡£ñW3¹Þ^¤UL8%h¥ö¤‰mJ¡¯þƒD—M"Ý‚¡·ô¿”=��­Bf¨¥Õƒº›¥…6P¤}E*�÷§aDŸíEj³Ì.w¬VØBj;’;®õ#*@Nd®)Öer«kq±%›šðd’瑳™öšV@ö©³_„$ RµSCæŽ V-µ©ˆåb–‚_Ž·y´fñgÞf`µ­úœ�øq¹ ˆ®]L¹ 0PöRdN˜¹�¡}«{�ò϶áÖ—Ò¢MK½]'X ÔeG¾EX Å6i3½ñ]ñ^£Õ‘˜½uºožF|–ÀÑã°†}摱¿AŒu�—êà dƒþSk7iµñh¤|¶oY<Åé4 -pÄK½y §£‰û ¸ÉÎÊ&–~Á)xÏú¡ZÉ•0žúLb#Ê™D9ˆŠ/„Ë!ngE߇àõÌí´%ç˜Wîðʭ؇&ÇÚ;pÎ!­I`lå“Ïu"Ê�$FâÒAΆ°/ŒgÒqtÍ÷VUŽÕµÑÁ.wÀwÖÁ~@.@$Ó×…{PÆáGÞص©8zù¯n>Ù‰$‚Üë¼lUÖárˆ3ÊÃÜ•¡Z÷IFòÜ­ã¶EÈ êßY”Z7Ü»>àe„úßC�ß=`nÙ/{–¤áe£7lÅ-)½áÍY¡qt$z|á¹ U„�9H&å�ÔJ–L汞\WÌJ‹bæ‰>«Ñiú:Qè�Po` î…?èáÌç -aÈáɘ[þµ™ë½ a§ô€¢ß !´7I@äÙMÂO£()îaˆ/Òu&`9ïņl)€Ã^ðIJ"“ÁED‹ R(æØ·Nâ#væbÞà`Ì#Þ›BèB%9Œžm„Ÿ&’®Oê²w!g$.Ânc Bsl$¾(†ãdn+)ºG²N¦°Ž²*¦9À¼êušw+ž!‘3É�r|+–ÿ 'š‹&Òµy¢×7�9,.wø¤+aåH,Æ1°Ëm4,0²P”ÂWE~Ö1ë]�¢�¡2ŠÉ] 7�Ú3.3ïªý�g3Vß^*DŠžC5º¿˜0ò7ºÌ6®OSç$*5«7ÂðbpÄÛªí8–ªdn#~¶Z9†�’wçǧ]8FvTxœ5Æ·;þFͪí8¡<šÏ?¨N8=ö©ô ¡! |6 ÿù šÍ­³?Ú¹¿ä—Ì`ä6²Xì"oùùÖ>ʆŸbLUBú-JMÒ@`ù'’³÷÷«ED"w/±LKD"‡úà™@â&8Ò`)]1Ôô;ÊÔÇMH†_JI>ãá;bHÿ- à‰ÜJ²Ï99^¶¿|KŽEü9>’ÅKV7çm‰¶L)Jæ=A€¯ºÙÀLê˜ïMúc¨éO’bæ=poYgP¶åX!wŸ?QnjVrIb+ÄRŽñüëæˆpSPN|È7ÃW TB‹N•û±iT>oÉA¼G2CV¨k¦ÏÓ7 T6\®¡ÔõÛOrfKÃ’U£ZJ(å¦ç AÜ[8èljÝ4ÏZ:¤¼‡H5]”dËš³$_&úLÖéM÷é`ªMK¤ïcñÏ`šTßåça„A¡©÷ÍeeB=‘è™yfªº5CÿFzgH_FÒ²g^É×°Û(ú;ivI­²¥Šíhbþ�Z  þi^˜k[9­(ûkNX´¼éeôïr*[y·Öþsþ:ܰp’à…söã×®¢ßÐs*½µgû;s}v²µ4ì±Ø�{2þ@½ªú�}š‹(¤–=®~bh \Ñç£è~þ ½]{T�ºµZµØ ¤ƒöŒÇMdÕ „¦sQòÒírƒ6gf*&êm†¾“”óNÊe‡>š=(vú Êˆ~ªPx ‰Ö –<‡~D‡Ò˜fdÁ¼—ß‹>Á‡-茴Y‹ÊÆŒˆeÆï.…r/sK¬G¿ŒþÔyÍ‚¨?„J‹YŠ8!CÅ‹vè9¸0ࣉ‡nsF×sâÊ{‡Þl—ã�¥º¯Ú+ßµ;©¦¾ÎANÖàìõ¦A�ƒ--¨’ØyüSó£>© ~pT¨<¡«‰ZZ–N€¾«¶Ozƒ•²š°¾µ¬j��\Ù° È+ÙåÃjù²yÅû9Â@¼³¾ )¬ŽG°>Æü¬>�!B´êîün¸½�¶º5c28SÓ¶fB4_'òYèºÒChØ©eU¼ÂýÝžƒv_Áã.$¾ÊÁŠcë:ÖØÙÃâ$Žï[w߯БNtŠTÁWÈR«‰ q�ËyÉzÛsR'n4"ÊŠˆϸ&ýËÖ •ŒóÐ�ÌZy“a�ù¶Íþ+&¿�rξA^|þ�ôÕÍZR†Ì)iôõÌÞ¸‚÷§‡—ÑFÇØK½ͺhÙ’(JF¡Ó¶‡€ŽÇ+Òö ª8~6áÕnx04h2!Ò:’µ"&Û6Ôš¦©·!Ÿ�–؆àpc2ATÈÙÚÙù_— Ë 5SªèzbßÔÆà›´R(�bÜ&®@¢«å‡ÞÝN_µFUrÝ>18¹nͶBß®K.~Ž}Åéà’¨áɘæn—àv‰nà–áð>‰ø+ñlÓoò~L<EÜæózu\�¦?Eòb”ötǪeô*,j» ²âÄõdŸö<7kñ‚dV¹î¡Ãð,Ï(B¼ÿù"G÷LØsv±úv IŒsÏI¨û ˜g«g±ûh¿ »~ûzÏ«ø ¬f°þzrSZ·zûÿÎ ¥K øl)þÞ®ˆÐ­ +ýÖ‹æÿÉH`aˬNÝx%ùWSå4$¨t‹Kµ%NxÙ3çØCÝ2–ÿÿÊí÷¢<Ÿ�v (»¼½›á´8ç�E• §u¯,ž 3jÏM÷86é SÖ­˜×ܾCôƒKÔD4Ïx-‰ã™›y‹iþkŒôÁ†Ûy›TsiÁM×d‹ï|­pVî «RBý¯è©¸ù†(×'š�“þcQ¨5‰+36o$v Û@ª�FèÉ'š×î{}ýˆ_”nQ€bñ7I«ÛýÉ ëýç˜'vE”' Hþ³òÞ±›ÎX9$'w¬5Œ�±W%ûÞÖmÜé è&Ÿ—ó޹B/E'�(CȪR(¯tJw¼Bs$_þ Ÿpi*wG@êÿSÜ+4!·“ŒÉ(ƒ›ƒß_u”L-_3 DO=D).¢v 0¸˜[êžQ1ë® ‘zMï1C;\yÎ×47:þÛÎþ¹25Ã`[˜þD½ü8wPý:š§!9Cd‡½¦ É;shø$©·m¼A{Gd£0«mA§X\1OÉæ·A÷š&…Ì·²Dׄ¶�Ò DË:T0zÏàFgî6{Ñ`LCÿÄ›§›þÌG3 Ûá£qÙ‡I÷mõ‡xñ=²J+C¬‰R{]‘K¿ºåõJH¿LcåÕÅ~AeBo3Ú ûXã}NW�NéǨ@«RKE^~Óƒ’RCwBg}ôL›Vó¨™nï~“X©sã –ØÄY‡”1ñ�òyZ7Æ>�û“]ç!^kèbïB^wÞkn¾ör^·‘N¨äx=òc÷¨|õäù%+d6-í+PÚe;ãÃ"Æ9§‘foPñ/¯Y«Íg_ÀxX/;nϲ1±Þu ¾oS(hÍÐr—ós¶H¦Ô&skŒ~È!6'Ÿt»«iOO§ÀAuãÔÝ�˜(ç–uÛÔ©l:Ilw�â|VºõwgÀ‰?yÜ£yû°wù”qykå6!Y¢1ôt·>Qf�ØÔ|7Ð=ûýÓÐv}/w¥…�Kco¾ÓHW#Ê€;L7+tïž�ïö¬Þ�ÄŒ‚Ÿ[ùÑô•ƒ“‚l4•3@3„sôšWx›F�„÷¢†z ¢„k‹Æó7IH‡/rB,ƒ†~ˆ·¦÷AjdZ¶‰{�·Ó"1ÍzŠsd•“~ ‹ï7ø€á�&µŒÓ~«�˜ÏK…ëáG–x`&ˆ?{(¾�S—ˆÜ•ê�{HPHtGÉ�Kñ­­«DeÏ”;R§Œ¡ß–i:¢ ž¢ñ�‹ìXIüßá�ÇÄUmÀdˆ¨ŸGAh#¾Ð0ž׌øO­¡ë uŽl¹%Ž£ l$ªdBº£çb§¨нÙ£{ �‚˜ª£¯�R£zÏ©›Cã>=†÷ªÇi!fòÚ³{[U¹D|�Oµ'L¿Ìe¶Û¶¿Ë éü®·“T RsI�}¶û¬Åݬ– ›¹ ÄÐJTÎb¹Ws+-(VŠ»{Üï�e²À™¼;~¡«ÊŸ—½×ÂPü¦¦�º#+ÉŸ�™8W¾_¨iJ5÷À¿æÁƒ+¶Å°ÀÞsÚ#iÁç•aÈ^t·Ã²§‹­äFÀcaîýOì÷Å_éEÿ{TŽ/Åó€õk& (ŒÇ‹¥0‹�YLçÇgI+Uñ°ŸÉçÃÌ<åÝ6‹ÉO„¤ëŠÝË?œë“.ѳ:Ìs ¡Šâv¡:̓äAXfVISËWâ&J÷ÏŸGÚÜé„LŒÏÿ¦Øôbs×Ñ—©Ë˜E°Wµ/ð‰i¥¾¾×M³jÎÝq_½Çóóz ߊg¹Kþˆ ý�åÈÑ«È%jÆÇ[�Õµ”I˳ØÛ 5‡ïØ?&RbC•tد&Öè&é¢ëÙó;°¢4ÚÜÛÇôŽÕ‚è9ÝóÉE¯Lý\®Þq’DH=€ßwŒ4pÆñêÏ#œ¥ m~¾(ádn3Éâsqïsñ-ÈÜCô,íLÐK‹Ö.Iw¢åó�QÝ$µ|+懧ßÐêRç�¿WÏóFZêè£z³ Í™aÞ·oC=õú�;·7i•#º‹óìÇÅeŠ|,Šî3=,g}¤gï';tdßÇÒð¿°AUýŽ™¾ë(!{ÕÿòGå´÷Xð]ôç«Y¤�‡‚õ³ÆU¨%`Ôö[üÊ `ÂöGaqûüþàžõw6? A[Âôø“žØ}Y�ŸúcïÊ/KÆlæúob=l]º¡áúG@BóG™ûÜû ‘ÅD•'ɸûŸðévyuæÿsò3öE;;tLE1ÿÿÿÿÿz\ÿÿÿ q{ÿÿÿÿÿHWZWOSRvjZÿ7bCÿÿ+(ÿ ÿ?OS0zO ÿ_ÿÿÿÿÿZpw4=YoRÿ1ÿ@ÿ'Wt#FZM+lCnJn?oE\6yl1{g[@[X!ÿÿÿÿÿGNCfW?B?ÿEÿ0%ÿÿÿÿ3iQ[[fS:.r+E~BqTTX `uCtnÿÿr$4#)V^,Yd8Yt:T^>Yu*eJjC^ CG75!n(`G5KxM~Z].ÿ(;ÿx;-ÿÿ|ÿENÿÿÿÿlYFxUQ3K*%5 Hu\HMM5U:d4%n]5ÿlÿ2ÿMÿM !r3}W(>K,,x]X:AR?Sg!k 7ÿUk7U"oÿÿÿÿÿÿVky% A?ÿLÿ-ÿÿ~Cÿ|ÿÿÿÿÿ2.[bmzVrjm'ÿÿÿ/!ÿÿLÿ9cÿÿ/ 'ÿÿÿ>ax<ÿÿÿÿÿÿ4ÿÿ9?4n>DX(;ÿ  |6MQc!{[ |U# (Vÿÿ)ÿÿÿÿÿÿÿ,*4F:ÿSHÿÿ!ÿÿÿÿÿÿÿÿ*ÿ_b wPad4`90Sw"z$f uP qmlTDYy j)kXz"IR7wzk( +YJÿbÿ:X?ÿ* 8le!btE;;tLE1ÿÿÿÿÿz\ÿÿS/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/base64-0.22.1/src/lib.rsÁH/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/base64-0.22.1ÁS/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/base64-0.22.1/src/lib.rsÁ ìè˜ù©XŽÀø8Bk{ËRËR•ML G MCL2(HLQ&PP(TK-85MK LEON ZNQH-8B5FD OI6OM&K-8B-111ONH?-8I4678NMO4-8K[DP;-81Id_;/#KM3QKP7ccccIccccc:4/KM+6Jb1,<7 <"+2_?S R#0=43 dS!3T7'47 ©µYÆ—÷­þ!Ù9÷ÂW/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/base64-0.22.1/src/display.rsÁH/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/base64-0.22.1ÁW/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/base64-0.22.1/src/display.rsÁ ‰=Wåò=‡¤Ÿ¶ŽÅœ³««XeM)8D,%].,3;M: ?I7;#JS`-S 0E2 H  I  0,>"4T= }õ'¢á�·bDH¹Ôõž�X/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/base64-0.22.1/src/read/mod.rsÁH/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/base64-0.22.1ÁX/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/base64-0.22.1/src/read/mod.rsÁ Jóœ‚K°Z˜óÄ£#�]––B & ¯mc1,ãLO=<¨öñì„k/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/base64-0.22.1/src/write/encoder_string_writer.rsÁH/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/base64-0.22.1Ák/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/base64-0.22.1/src/write/encoder_string_writer.rsÁ he@ç’«IÀMç´t¤ä0ä0Ï# db%#)W% ')H),E%%)*b@@DUC\ `I'?9d(BR; ,H1&O7'.'VZ2A;dN&, a )*.0$'*2CH6A@>8  *.0$'*2CH+ "R)E>8 ð‡5Z³‹¸ÒRütX‚âô=Ѹ@�aZ/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/base64-0.22.1/src/engine/mod.rsÁH/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/base64-0.22.1ÁZ/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/base64-0.22.1/src/engine/mod.rsÁ :3µúgµO¦Ÿ†) H"Ö݌݌ÞJ% 50%%"  A¶`T‹lb=_S=75 ,0)W9b?-BTIW\_eWW9>r;`DdX@]e:/3,'GNE6W@ );> `J1R: $DgN6W)P!G! )QM I90? 0A0e)0;<$"H,Z9%S %+ #- `H1C?P 0+N.6!5*.8% )QT TG'E';?D, $7d@N6T /'&L&$&,& )##e 4T.(2K2R'F';?DB ,9b&hHe+%+ - "!M* ,9:hHjP/&e "!M*';?< ,BLTSOWXK&c(b'b)_c-6BH-]Yc4 '#>.T(+ ëÉÃÁÕܲ–h Äøû¡ÚºX/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/base64-0.22.1/src/alphabet.rsÁH/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/base64-0.22.1ÁX/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/base64-0.22.1/src/alphabet.rsÁ x.§yš+Ô'6KÕ* Õä1™F™F�O#!KEE*6/$ @b= I1c'-4+:104&2 O?K)*;  *)WF8KM&HPk&)4.*"9,N& /;#5+%<B )!@+?SQSM #,HH=HHH=HN`:H;HAF?H+[I *$?<[_LM/\$ T" 1*6b; $OQ1T9GD*7'))?N #* EE0e )666666677788888 'EEEEEEEFFFGGGGG !9 K((8:&65<,.>$+@%_"82KM;/")2"92/6:C,  J(+:&5<"1>$+@).J2bL"I2/=J,  -$%5<>$'226Y'(2MYS5H  1$%5<>$'26b.(2^OQ5G  )%<*+'(2OYS5H )F-< # -;, U>%# oâ‰Þ v­P ÛDgÛ0·V/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/base64-0.22.1/src/decode.rsÁH/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/base64-0.22.1ÁV/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/base64-0.22.1/src/decode.rsÁ sEëÔ¶u”p#ᥛòyÜdÜd‚H%#*'\`3_IR:e=^`"];$;0HT6MB #%7'!))?EN #)@9; .&);=%JI.=%1$,%A5%5 C7''d+c5&,,,,1,; 4  ;60 C(.25%65<"),>$+2A^@*%(7:-E.H;*;/85  AV3  KV=  >X)3B)C1&  -"287E7E7EA A;(.)75<" %>$+2A^c,07-'Z?EMC=   F,+2)  P3G @U EZT 0²Çl~È~™5j%ºƒ°5\/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/base64-0.22.1/src/read/decoder.rsÁH/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/base64-0.22.1Á\/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/base64-0.22.1/src/read/decoder.rsÁ 0 ÕˆÞ=ŠqöZ©³c(5ÃlÃlÏF9)G$%U)b78%+!/&7$6 @I`SdeU4AP&32#.J;(3-G;5C;;J3';#" PVDK-(>%5)] )&>PL*6.+C(^^`]#H.bc_N> >4C7% 1E65 edC>U"]($5F V%*7N##'I&F!>230=SDcbIKVa),C-,Z40X@!04283; ]OºJ<\¿ 1çÀ'b ý]/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/base64-0.22.1/src/write/encoder.rsÁH/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/base64-0.22.1Á]/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/base64-0.22.1/src/write/encoder.rsÁ :¾ÓY‘WÅÏŽâC{ý Sªí†í†— )9/W(_`]aa2)`]+%DA*(, `% `-W(a^`S8aa"d^.J%u!^ eK;k+ % ^CV*80* 7W*<"6/=/>Vb(_d)^9dbWG7A**8E3:";G/d#2DL48cccccccc>cccccccc:9 3*#.N+FNQ0\0\^ [']2'`['\ X/(4 4- (RD.,'; HDSE1U!GAF 3H0-%?;4"&,aLa_!B"/F Od>cKdD% b]]lQTN/ [ad_#�Z^NS' (2''_Tb^_Tb^Yc CKE öŠ vñë0*�¹P#Üt/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/base64-0.22.1/src/engine/general_purpose/decode_suffix.rsÁH/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/base64-0.22.1Át/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/base64-0.22.1/src/engine/general_purpose/decode_suffix.rsÁ eïæ¾¼þ x”µ­Žùg2Ý5Ý5¢ Q-[c4&%05Q4%%- !J=@Y*POV&Mb9$'aX]FS*7& KJ%_ S2/%Z /"`96Za1!F@ ,)h@ TZYXW\YWZ+@9b9(((d*9C733 T'+2#F%5 ½´$Å`¤•Š+ÅþŸÎëW/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/base64-0.22.1/src/prelude.rsÁH/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/base64-0.22.1ÁW/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/base64-0.22.1/src/prelude.rsÁ i0™€$Ä NöªÿSÙãJŽÌÌ0jD-8@QESEÒ+”/�åzR86σjÍ{€�“ö•í—™Ášóœ<ž¡)¤ƒ¦¨©c¬÷®×±˜´¯¶x86_64-unknown-linux-gnuÁ÷K·ô¼÷êÿ¦�ì*base64Á-61acbe23ca84db72Á(Íb§ë¯þ;ŸKÊ� áä¯äÎø2Ά ¿† ö»öÎΓßÜÌäääÙä÷Ùä÷Öô㮯ï䯯¬¯��Ïäí ä¬ä¬ä¬äôä¬ã¬Æ Ñäó Ø¬œˆäÔ ¬ä¬ØˆœœÔ Ô äôŽªöãâ©ÖÖ‚¯‚Þ Ú䎬ÜÜ” ÌœÔ ã©?õ­‘^‚‡ ‚† † ¢±0rust-end-file