! / 0 0 0 0 314 ` ­.­.­.­._RNvMs_NtCsjvCNY8p34sY_9untrusted5inputNtB4_5Input10into_value_RNvMs_NtCsjvCNY8p34sY_9untrusted5inputNtB4_5Input4from_RNvXNtCsjvCNY8p34sY_9untrusted5inputNtB2_5InputNtNtCsgxBkk5gSRhY_4core3fmt5Debug3fmt_RNvXNtCsjvCNY8p34sY_9untrusted6readerNtB2_6ReaderNtNtCsgxBkk5gSRhY_4core3fmt5Debug3fmt// 68 ` untrusted-d9e089c651dd8a91.untrusted.e33f036c2c1d9f0e-cgu.0.rcgu.o/ lib.rmeta/ 0 0 0 644 43048 ` ELF>¨¦@@GNUÀrust J¤#rustc 1.98.1 (48a229cea 2026-09-01)ÁûÊÆÍRLñ.åSÛAúwjL-df1bddb45adbe94bÁ±ò‰<å%Z‰>¸64‡ËV`-2d2ab9fb0fe1def5ÁŠûinputÁñ 'aÁ ” is_emptyÁ ¶ read_allÁ‚Ž� as_slice_less_safeÁ  into_valueÁÁ”Á”no_panicÁÁ˜ getÁsubsliceÁ Ѷ‹readerÁ$$$$ReaderÁ(Á(š(Ÿ$,ñ$.Á.˜ .at_endÁ.peekÁ. read_byteÁ. read_bytesÁ.read_bytes_to_endÁ. read_partialÁ6‚6Ž6�.skipÁ: . skip_to_endÁread_all_optionalÁBÁB‚BŽB�—GÁG�JÁLÁLŽOÁÞQÁQbytesÁTÁVÁVŽYÁ$ EndOfInputÁ[ $$^Ž$$añ$cÝ$$f•N88888 8 8888X888!8"8#8,8-8-8-818283848586868:8<8_8b8b8b8d8g8g8B8ˆGG—I�ßÿ²­:Ê–Á…‘ ù ‘ ŸgGG—I�ßÿ²­:Ê–8¬‘  Á ¬‘ QQÞS±ôhAçx< Áˆª …ª ù ª Ÿg((Å*š$+Ÿ$Œò‰£|'Mø8ˆ[[\å á)_sÅO…¿ ù ¿ Ÿg¿ Ì¿ �Ç¿ ÷±¿ ¿ JGTQ][LGVQ^[OGYQ`[G,(a[GGc[e[f[ˆU…ù Ÿg¬Ì �Ç÷±(•šN#(GG—I�ßÿ²­:Ê–] ×gpzÜ€,• $¤€ 3C šüæ@ G ¥¬ ü« �×$Ñ › ,½ QQÞS±ôhAçx< ÐÇϱChT«Ó¬«D¶ !-T¶Æ ü‚D$œ‡,’ Óp5ÊwTªÓ„ªµ "-,µÀ ü…;,š‡,�‘n3áuL¨ (0;CNV,À”´\´ 0*"$Ý  Tâ „Ý  F Ž#‚ ((Å*š$+Ÿ$Œò‰£|'Mø • jsˆ Ý �%ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwŽ�ëz ‹ žŒÝmø*,ûtû4� 1(D� í [ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw¸Ä¬©^—¯fþ“† �%©½ š¶ ã  ÷ 4› T˜ Àœøþüøf |Ä ¤À ÀœøþK Ê Ùáî ä ü‹Ù: K [l~gü¤ÀüДV]dÙ©dˇ,¤þ|«½$¿Çò×™ø4ÔÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^½ø©š½ÒêÅÁ-½5ø«l LJøyþ6½ÄËýincomplete_readÁreadÁšÇ Æ Ò ŽL ÔÕ·„£�+´þfølørþx½~þ„T¶Óü¶”Á #.¤ÁÛüÿ\ÇD£‡,™‘o3†!vÜš¤šà,¯üš"$¶ «Ó×D4¶ÂüïS×$‹Ç,÷Ó…�4ࢯ"�tÁ GÕü‹J×$²Ó,“� -(ëðX#(Ó4‘;DNtƒ Q—üÏHÓ$ôÇ,à± -,Šy Q �}ÓzÇxÇ[±‰ªTàÇŒàë Õwœ —2 ï4ë÷ü«LřǙș­É™Ê™àË™óG*¤�R{9  œ \Ê‘,¶— ½ÇŸ‘ó&ßTØÇŒØã Õwœ ¶ý¶ý¼¸ý‚¹ý’}£²ËJüü —j ç4ãüØ-ê þWÇÓ ÇÓUÿ¤ì)´îÜê‹ü‹€Å™Ç™È™­É™Ê™àË™óG*¤�R{9 ÓdÁ‘,›û( ¢Å™Ç™È™­É™Ê™àË™óG*¤�R{9 Ç„Ç_h¨lÜò(µà)Ntö Q„ DÓõì)YÇ,ï± wTÈǬÈDÓ ´wœ /TÓã!üŸD$¹‘,¯Ç 2»-vTœÇ„œ²"ü÷;—,Œ‘,‚Ç 3 ³wœ bTýÇ�#üÆGÇDê‘,à ,”ÌTÒ ,ÌdÒü²I ( ï—�0üƒ~Ç$£×,ŽÓˆš4ž0¥4œ—T¦Ó„¦±á),±Ôœ¼1üõG$�ò,ƒ—�—l‘ˆ @á�T…Ó4”—´…� @2\�,äÿM,à D¯àú'LÁt¼ Éö2üÓ£üª  $ðò,ßœ æµ'û‘*—Ótªú'¨œ —B˜Factual_bÁÚŒ¸3^TþÓ4�—´þ‰¸3<.\‰(äøI|° Àœœ ¿ ›¿  ¾ ¨àú'\À— Ê—) —,—U——Š4‡ Àœœ ¿  šÐ3ü¸˜ü£x ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òwœ ¿ ´×ÅLɵ'Ç‘÷—ìÓ<£ú'i—\œ úF˜’ϸ3#4¤—ì¤\« ä§-L·´«ü¤/, �X—¿ NÆ¿ TÈŒÂø¤0  �%ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw—¿ ¨ty…y ü¤0m—¼è Ó4–—h– ¶ý—üè<D�  _> ¼�-Ó �%ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw׿ ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´ÒwŒ¿ Í ‚?Á üüèY² þWÓ× ®×Ó 0T¶‹@ |²üèx,Ï �X׿  fN ¿ TÕ  ŒÏøèy  �%­> V  "' 3 üèy m×të—<ƒ Àœ×¿ � šà§> ‚? »44 ü¾Òü˜ø8?FàüÞ²jpv× ­>ìðÅLЗLÛÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^‚?—€<^řǙș­É™Ê™àË™óG*¤�R{9 —Û—øÓL—çÊüÍüÎümÏüóÐüÑü[Òüó}µŒOƒDê^‚?×W­>›Å™Ç™È™­É™Ê™àË™óG*¤�R{9 ×0À*>‘Œû(n—‰Ó5ט¶ num_bytesÁÄnew_iÁ,œÆ rŒ‚?ŽretÁâÆ ¬º‚?Ž – Ž;d¿;:ú;ù= §>ÿ?Ç@ЂAš§> TÒÓ„ÒÝá),Ý4å—ÌÒ +—ÄõTú 4$õ<…œúüõ!4Ž Ó_׿ PDŽœ5ü‰“üÄX×L°ÅL¢—<È—‘4—©:ù­>Ã:to_skipÁEwád¶I÷éIÊ 4‘!—T©! $©!· (0X©!£J ,?\©! mø TÏ!Ó4ê!—hã! ¶ý—üÏ!"DÚ!ù=[:  ¼Ú!³! [½ó �%ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw×øþ½ ‰ jüÏ!+4ò! øWÓ Þ  Dò!üÏ!2$û!¯" B  4û! ›"|Ž"  œ‹" ÀœËNþ £" ¤" üë¹6ü…!Ÿü¡!ƒ|ƒŠ$ü¾!füMÌŸ ÅLˆ ½$“ —,‰!ø ¥!Û­©ìÃôÓì½ôø�×TÂ!ÓtÀ*?‘�û(o—ŠËN<øR—Ï›‚Ÿ¨¡Æ w Ž bytes_readÁ• P·»£Šù=áöM–úN*¯"ø¥Ô¬$T±$¶I$¬$L¼$¬±$ü¬$&Ç$ º_׿ ‚*;ó)ׂ*Uÿ‚*h‹ûS4Ë$\Ç$Ø$:üß#yÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw‚*¿ ´‹$ÅLë#—Lö#­>æE œ¶I;ìSÑ$;ì‚*Î$ûS× Ì$ÄÎ%ŒÓ% 5$Î%œÓ%í%<üž%OüÆ%'‚*»%ÅL±%×d<ÓV€ñ&_(ì&¿  ¿ !+( ù&   Êg05= þ&bUÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw‚*ĤĤŤErrorÁ Ñâó:½ÖàMÝõWä €g€gŠ‚gê ûcƒgbufÁûcØ«q¢1È¡*¯X2<œJUÂX_ ‚'d €'‚*õW(H „'  �'g)3õW:õWAJî Wa,´* (0;CNVa\®*‹$Ô, $Ù, Å™ÅTÔ, N Ž#½Å™Ç™È™­É™Ê™àË™óG*¤�R{9 Å©v,É*à×”ñ*\ñ*Ô,ý* $ž+  T¨+ „£+ řŠ´ž+  `Ÿ^ k & /¸ž+£ I!-¼ž+mø*,Æ+tÆ+4Ì+�$ DÌ+´+[½Â´* Û Â,  æ,„ 4ê+ Tç+ ÀœøþüÃ+v |›, ¤—, ÀœøþK ÌÛãðç,ÿüî(ù4.>Pas¾B„üÄ*ÿüá*âü‘+² …©dÝ)ØE,™)þ|·)½$Ï)Ó\Ä*×¼ÇLå*ø4•+Û©U½§¨^eª^‡ÅžÓŸ½§øÚòòøWþ½ù¨^ɪ^èµ¥¬šÕ²ÙÏÝš”šÜÇ ÞÆ OŽÅ Ÿ^YÔÁŸ^X£(�ª´4þCø`øfþU½[þa$Bû—,™'G>åT­'[@å\@Å4¹'(Aü‚å&ü‚HE untrusted.rs: Safe, fast, zero-panic, zero-crashing, zero-allocationÁüË(% parsing of untrusted inputs in Rust.Áô�üøB? git clone https://github.com/briansmith/untrustedÁ»�ü¿EB untrusted.rs goes beyond Rust's normal safety guarantees by alsoÁü…<9 guaranteeing that parsing will be panic-free, as long asÁüÂKH `untrusted::Input::as_slice_less_safe()` is not used. It avoids copyingÁüŽ KH data and heap allocation and strives to prevent common pitfalls such asÁüÚ KH accidentally parsing input bytes multiple times. In order to meet theseÁü¦ OL goals, untrusted.rs is limited in functionality such that it works best forÁüö NK input languages with a small fixed amount of lookahead such as ASN.1, TLS,ÁüÅ LI TCP/IP, and many other networking, IPC, and related protocols. LanguagesÁü’ LI that require more lookahead and/or backtracking require some significantÁüß OL contortions to parse using this framework. It would not be realistic to useÁü¯ :7 it for parsing programming language code, for example.Áê �üî 2/ The overall pattern for using untrusted.rs is:Á¡�ü¥OL 1. Write a recursive-descent-style parser for the input language, where theÁüõJG input data is given as a `&mut untrusted::Reader` parameter to eachÁüÀNK function. Each function should have a return type of `Result` forÁü�OL some value type `V` and some error type `E`, either or both of which mayÁüßJG be `()`. Functions for parsing the lowest-level language constructsÁüªNK should be defined. Those lowest-level functions will parse their inputsÁüùFC using `::read_byte()`, `Reader::peek()`, and similar functions.ÁüÀFC Higher-level language constructs are then parsed by calling theÁü‡)& lower-level functions in sequence.Á±�üµFC 2. Wrap the top-most functions of your recursive-descent parser inÁüüIF functions that take their input data as an `untrusted::Input`. TheÁüÆKH wrapper functions should call the `Input`'s `read_all` (or a variantÁü’NK thereof) method. The wrapper functions are the only ones that should beÁüá+( exposed outside the parser's module.Á��ü‘PM 3. After receiving the input data to parse, wrap it in an `untrusted::Input`ÁüâFC using `untrusted::Input::from()` as early as possible. Pass theÁü©OL `untrusted::Input` to the wrapper functions when they need to be parsed.Áù�üýPM In general parsers built using `untrusted::Reader` do not need to explicitlyÁüÎOL check for end-of-input unless they are parsing optional constructs, becauseÁüžHE `Reader::read_byte()` will return `Err(EndOfInput)` on end-of-input.ÁüçNK Similarly, parsers using `untrusted::Reader` generally don't need to checkÁü¶OL for extra junk at the end of the input as long as the parser's API uses theÁü†OL pattern described above, as `read_all` and its variants automatically checkÁüÖNK for trailing junk. `Reader::skip_to_end()` must be used when any remainingÁü¥?< unread input should be ignored without triggering an error.Áå�üéIF untrusted.rs works best when all processing of the input data is doneÁü³DA through the `untrusted::Input` and `untrusted::Reader` types. InÁüøJG particular, avoid trying to parse input data using functions that takeÁüÃMJ byte slices. However, when you need to access a part of the input data asÁü‘DA a slice to use a function that isn't written using untrusted.rs,ÁüÖ.+ `Input::as_slice_less_safe()` can be used.Á… �ü‰ HE It is recommend to use `use untrusted;` and then `untrusted::Input`,ÁüÒ NK `untrusted::Reader`, etc., instead of using `use untrusted::*`. QualifyingÁü¡!MJ the names with `untrusted` helps remind the reader of the code that it isÁüï!# dealing with *untrusted* input.Á“"�t—" # ExamplesÁ¦"�üª"KH [*ring*](https://github.com/briansmith/ring)'s parser for the subset ofÁüö"%" ASN.1 DER it needs to understand,Áüœ#NK [`ring::der`](https://github.com/briansmith/ring/blob/main/src/io/der.rs),Áüë#OL is built on top of untrusted.rs. *ring* also uses untrusted.rs to parse ECCÁü»$KH public keys, RSA PKCS#1 1.5 padding, and for all other parsing it does.Á‡%�ü‹%LI All of [webpki](https://github.com/briansmith/webpki)'s parsing of X.509ÁüØ%=: certificates (also ASN.1 DER) is done using untrusted.rs.Áü—&:https://briansmith.org/rustdoc/Álž&$Bû—G>å[@å+\@Å(AhknLÞ&,â&GÙDŽÅ4˜(A,†(*ü² #üÝGD The value is intentionally omitted from the output to avoid leakingÁd¥ secrets.Á8iiÜ  güÜ Dß jkl jÜ k€g€gŠ‚gê ûcƒg¦YûcØ«q¢1È¡lúXBÿ ã  8$ä œ ê ”Õ Á  ‘ Ú ü« *üî 85 Construct a new `Input` for the given input `bytes`.Á$¸ • ‘ Bÿ  Á±Íô‚ü²=: Returns `true` if the input is empty and false otherwise.ÁD‰m m‘ Bÿ  ’ Á$“Ô…üÌ&# Returns the length of the `Input`.ÁŒn n‘ —Bÿ  � Á$‘ü‹ŠüÆIF Calls `read` with the given input as a `Reader`, ensuring that `read`Áü”KH consumed the entire input. If `read` does not consume the entire input,Áüä" `incomplete_read` is returned.ÁD’p p‘ þ½©Bÿ ‚Ž� ¤ þƽ ›þÆø žþÆþ ¡o‹#½ o((Å*š$+Ÿ$Œò‰£|'MøÁüí'o�#½ô™©dˆ Á½øþ$¥²3Ï<¿Á¼¾¹»üÿ,üêHE Access the input as a slice so it can be processed by functions thatÁü·52 are not written using the Input/Reader framework.Á”†q q‘ • Bÿ  ™ Á$šüá5Tï‘ ª Bÿ  Á$úüµ%Á‘ ®ºüï $ò• ‘ Bÿ Á�öüÆ0Á‘ ®Ëü‹+$Žª ‘ Bÿ Á�mdé&Dí&Q”¨Áª !"#­üÏ)Ü• ª Bÿ Á±0ü«*²s sª —řǙș­É™Ê™àË™óG*¤�R{9  sœ Bÿ ¶ Á$·Ÿ’ü‹BD’t tª û(řǙș­É™Ê™àË™óG*¤�R{9 ª Bÿ › Á$œ¨<î� � �  ì)ôŸD¦u uª Bÿ ¯ !Á$°Ô÷þv vª —Bÿ ‚ "Á$ƒüÆ,”Íw wª • Bÿ à #Á$áT÷&4û&([\ÙDŽ$&—,˜G$'>,†(*¬Ó ü¡A> A read-only, forward-only cursor into the data in an `Input`.Áã�üçKH Using `Reader` to parse input helps to ensure that no byte of the inputÁü³DA will be accidentally processed more than once. Using `Reader` inÁüøLI conjunction with `read_all` and `read_all_optional` helps ensure that noÁüÅOL byte of the input is accidentally left unprocessed. The methods of `Reader`Áü• IF never panic, so `Reader` also assists the writing of panic-free code.Áß �üã LI Intentionally avoids implementing `PartialEq` and `Eq` to avoid implicitÁü° " non-constant-time comparisons.Á4Þ Á))þ™Œò‰£|'Mø*+å Ôï ,ï $((ª D�  � $((—ü¨ $üœ JG Avoids writing the value or position to avoid creating a side channel,Áüç @= though `Reader` can't avoid leaking the position via timing.Á8xxÿ - g-üÓ DÖ yz{ yÿ z€g€gŠ‚gê ûcƒg¦YûcØ«q¢1È¡{úXBÿ, Ú , -8$Û œ á œÍ Á//þ™0123456:<Ò üƒ$üç A> Construct a new Reader for the given input. Use `read_all` orÁü­C@ `read_all_optional` instead of `Reader::new` whenever possible.ÁŠ‘ þ™Bÿ.. 0Ášäõü‡HE Returns `true` if the reader is at the end of the input, and `false`ÁtÔ otherwise.Á4ü| |þ™Bÿ. ƒ. 1Á$„üÓ!üÂKH Returns `true` if there is at least one more byte in the input and thatÁü’.+ byte is equal to `b`, and false otherwise.Á$Ú} }þ™œ Bÿ. ß. 2Á$à˜ü¸5ôü Reads the next input byte.ÁŸ�ü§JG Returns `Ok(b)` where `b` is the next input byte, or `Err(EndOfInput)`Áüö/, if the `Reader` is at the end of the input.ÁL¿~ ~þ™œ9Bÿ. É. 3Á$Îü¾OüÖEB Skips `num_bytes` of the input, returning the skipped input as anÁd  `Input`.Á±�ü¹IF Returns `Ok(i)` if there are at least `num_bytes` of input remaining,Áü‡$! and `Err(EndOfInput)` otherwise.ÁTÅ þ™—ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw‘ ¿ Bÿ. Ð. 4Á$ÕæE-!ü‰0ü–IF Skips the reader to the end of the input, returning the skipped inputÁ”ä as an `Input`.ÁŒ�€ €þ™‘ Bÿ. ¢. 5Á$§üë‹ü¢LI Calls `read()` with the given input as a `Reader`. On success, returns aÁüóKH pair `(bytes_read, r)` where `bytes_read` is what `read()` consumed andÁüÃ# `r` is `read()`'s return value.Ádò‚ ‚þ™½ÀœÜÄœ¯ÅœóƜǜ€Èœó‘¥_¿´Òw‘ øþBÿ.‚7Ž8�9879 ˆ .¶™ ÿÆ™ ‚ Ö™ … �‹#½ �þ™üÎ '��#½ó¾©dé  6Á½øþ$� Ï (uwz|�üß#Büª"# Skips `num_bytes` of the input.ÁÒ"�üÚ"IÁ¶ü¨#$”·$æ#ƒ ƒþ™—ÐTBÿ. ë#. :Á$ð#æE7*Ë$:�;�;�;;:ûSìž%üÞ$-* Skips the reader to the end of the input.Á\¥%„ „þ™‚*Bÿ. ±%. <Á$¶%Œ'd’'¾,ôŒ'µ,¸,›,ž,üî(¹üÆ'Iÿ•ü�(EB consumed the entire input. When `input` is `None`, `read` will beÁ¼Ö( called with `None`.ÁŒõ(řǙș­É™Ê™àË™óG*¤�R{9 ‘ þ½©BÿÁC‚DŽE�FDFEC¶™ ‹)Æ™ Ž)Ö™ ‘)Œ‹#½Å™Ç™È™­É™Ê™àË™óG*¤�R{9  Œþ™ü÷)/Œ�#½äÅ©dš* BÁ½øþšP0²N0ÏL0‡)ÇÉÌÎÑÓ¤£ü¢FC A wrapper around `&'a [u8]` that helps in writing panic-free code.Áé�üí*' No methods of `Input` will ever panic.Á˜�üœLž©üé"ô©,®ÁHH‘ ßÿ²­:Ê–I´Ô¾,¾GGª ¦¦¦ÁKK‘ XZ¦ÁMM‘ N†N‚„¦¦h h‘ ‘ BÿL•L NÁ¦ œÁPP‘ ÷ù¤ù,„ÁRRª ôhAçx< SŠ|”,”QQ• ’’’ÁUUª XZ’ÁWWª X†X‚„’’r rª ª BÿVëV XÁ’ òÁZZª ÷ù¬�'üñ%OL The error type used to indicate the end of the input was reached before theÁüÁ&! operation could be completed.ÁT›'¿ á)_sÅO\¯'[[¿ c+c+c+ ¿ c+ ¿ _†_c+c+… …¿ ¿ Bÿ^ì&^ _c+ ó& ¿ �+ ¿ b gb�+�+†‡ˆ †¿ ‡€g€gŠ‚gê ûcƒg¦YûcØ«q¢1È¡ˆúXBÿa ù&a b�+œ�+- ¿ dÎd----‰ ‰¿ ‚*Bÿc €'c d-R- ¿ R- ¿ gù±gR-R-Š‹ Š¿ ‹¿ Bÿf „'f gR-î R-Ë‹Ò ‹º ‹ í ‹‡ ‹w‹ù‹ ô‹®‹í‹Ù‹®‹‹v‹(‹Ù‹É ‹A‹ ä ‹þ ‹‹¡‹Š‹õ ‹. ‹ Õ ‹ˆ ‹P ‹z ‹¹‹í‹ó‹�+‹s‹î‹ó‹ …*‹ .:https://github.com/briansmith/ring/blob/main/src/io/der.rsÁwebpkiÁringÁ$https://github.com/briansmith/webpkiÁ"https://github.com/briansmith/ringÁ ring::derÁ‘ÕÐÕÛÕ�ÖäÕ´Ö‘ÕÛÕ�Ö´ÖÐÕäÕù ÿ …Ìí¦£¬©ö€#…#ˆ#‹#Î!Ñ!Ö!ÔPŽQ—PŽPÄQýÆþÆÈÇ÷±¯² EndOfInput ßן,l?ãý@-ÅOȩŽÙ/²M$á»Eô§¥ÓâF1É *È'ª xžÓÁhô9ìÙ´kŽæG¯É Ÿ É[)´ño „,Áa+ZÉ›¢`‡D“Yå�5²ð´ô. ¸–¦¸ñÖÌÏ�.aÔ¾áh|-â爉a:SM‡˜ŠÖ�4ñµ+Oe܆aÑêo|tÿìú—ÿktßdVüÅ6E‰]´Q'=EësÒqÉb$r2 P R™%8¥r‘ð�§=[è¬@Ŭ$·4io$‡Ç*²z7NÉ�…“.E�ðôjf£Š¨Ds”�À¿$Õ~nîoa',áL-]†Œ„âG’^{G Ù÷I×1$‡š-Krò�b'q¿ÜT–8±Â› ›Ô»g:�¤d(°Õé´Ø4þ¼ÁÞlFËfZ(•"zÝüÿ5ñ5o¿ÿ˜ä·=lô6Æsg§tŽjŒj�jIG®GTRƒG4¡G¥GÙGÛGßGæGqHIMIÔInJôJ,MNWNƒNÇNóN6OCOrO¸OdPQMQ QõQIRR�R…R‹ RTUlU…UHVõV+WXÅX°YÆZh\/]p_%`l`ú`þ`aaaa2c'd>d|d¦dúdeYepe®eØe,fNf#gRgmg¼gÎgég“h®hi*iFiEG­G>OQRbH5InNÞNZOHU9V Wdtd•deNe¦eÇeEfùfNg`gÊgÜg¡h&i8i    (DG«G‰H§I3J¶JàKÕM*N›N OjDjKjQjWj]jcjijojuj{j€j…j›G§GÛGßGqHFI�IJžJÈKMMM½MN|NƒNìNóN8OkOrO¸OdPMQ QõQKR�R…RUNUTUlUHV$WÃWpXRYpZ·[Ö\^F_S_`_Å_£`þ`aa”ac cc#cìc!d'dwd¡d¦deeSeYe©eÓeØeHfÔfûfmgégËhFiªi±i·i¾iÅiËiÑiØiÞiäiêiðiöiüijjjjj#j)j/j5j;jAjHjNjTjZj`jfjljrjxj}j‚j‰j^HþH1I¹IUJÙJ1L MM$MøM=NjN­NÚNOVOœOCPæPCQ‡QÛQ0R.UbUzU5VÕVWîW«X�Y¬ZG\]Ç^N_[_h_`b`á`:bcc+cd5dpd‘dáde5ege¢eÃefAfßfgJg\g©gÆgØg{h�hi"i4i’iNHòH I±IIJÍJþKMMMìM5NYN¥NÉNOEO”O7PÚPQ{QÏQ$RUZUrU%VÉV÷VæWŸXƒY Z;\]”^H_U_b_ù_9`Õ`b cc%còc-d_d€dÔdþd$e_e‘e²ef0fÙfgDgVgœgÀgÒgnh—húhi.i…i`HI3I¿IYJÝJØLüMANlN±NÜN!OXO¢OGPêPGQ‹QßQ4R0UfU~U7VÙV WòW¯X“Y°ZK\]#_ `f`å`Ùbd9drd“dåde7eke¤eÅefCfáfgLg^g­gÈgÚghŸh i$i6i–iŠH¨I4J·JáKÖM,NœN O‹OÑO}PfQ¹QRUaVÜW‰XkY‰ZÐ[ï\ ^Þ_¼`­añc¾d#eðeÙfg…ghãh^i‹H©I5J¸JåK×M-N�N OŒOÒO~PgQºQRbVÝWŠXlYŠZÑ[ð\$^ß_½`±a¿dñe…ghãh^iuH“IJ¢JÌKÁMN‡N÷NvO¼OhPQQQ¤QùQLVÇWtXVYtZ»[Ú\ ^É_%`§`˜a©dÛeýfpgìgÎhIi× "zŒÃÍ\fpºäîø  MM&MP_]_j_c c-c%¼Q àv*íÎÍ©¬,Œ>’éž#-%+)z*Á*À-¤�N+›+-P--RºO Þt(ŽQ˧ª*Š<þ�çœ#+%))x*¿*L+'4+ë™+-N-¾-$»P ßu)�Į́«+‹=ÿ‘è�#,%*)y*À*M+(4,ìš+-O-¿-½I O IÉIcJçJëLNKN»N+O¬OQPôP•QéQ>RâVüW¹X�YºZU\"]6_`ï`ìbïd!f±gƒhišiBG¥GLHIWNÇN6OCOIRU#VõVêc]d~düde�e°e.fÒfBgTg¾gÐg•hi,i@UdFeðf3Ud9eãfˆ‹’–¢¦ª®²¹½ÆÍÜãòù 15<CGNUdhov€�“𡍵¹½ÁÎÕÜãçîòù (9Qdkry„ˆšž¢¦ª®ÆÍÔÛâéð÷û &-9=DHOVZarvz~…‰�”˜Ÿ£§®´ºÀÆÌÒØÞäêðöü &,28>DJPV\bhntz€†CUdIeòfcH;II?I@IoNßN`OaObOcOdOeO:VWWWWWWWWW–dÈeagÝg¢h9i�j‰khHAItNäNfO?VWtd›de¦eÍeEfNgfgÊgâg§h&i?i -     ‹‹q,ù&}©Ø core_intrinsicsÁfmt_helpers_for_deriveÁ¢g¡gŸ,l?ã%F‘=¥‚É´â…ÿ‚]´œŸ,l?ã-$ªPê°Á†; ‹úûèŸ,l?ã)¯ 檢\ž lã!‹Ÿ,l?ã÷.¬43Zío$œu‚‚´Ù•derive_clone_copy_internalsÁú Ì Ÿ,l?ã3—¸Šmð7Î Ó‹úûèŸ,l?ãmk5¹Z_`Ü0‹úûèŸ,l?ãÙ² Óº«»e,ì&}”V¯Ù•º—ð‰âŸ,l?ãH™UAV[ l–‹Ÿ,l?ãcä*Ç6ç‡~€'eöi_Ù•derive_eq_internalsÁ¢ŒÏ¾Ÿ,l?ã¤lY–ÒÕ<}‹‹Ü Ÿ,l?ãšøZÃ`*”¿%‹úûèŸ,l?ãÌj�ך»O§Éüã&,2´œŸ,l?ã«Z¾lø ‚� í‹úûèŸ,l?ã?[¤ s¡Ñ£e,ë^Ù•º—ð‰âŸ,l?ã™·Ör÷“á8 ‹úûèŸ,l?ã|öuœw7¤ ´+‹úûèŸ,l?ã�5'À…Û.o$ó&ŸÙ•º—ú Ì Ÿ,l?ãLñi³OÐ †É´ŒU´œŸ,l?ãȰöýÒW5¶L„'�ÀO_Ù•¢Ë¾Ÿ,l?ãY/G^ÌôÜB ³!‹úûèŸ,l?㸠b`Ïžze,•¸Ù•º—ð‰âŸ,l?ã�ÆÝžQ2 ‹úûèŸ,l?ãNîÕàýROo$òËÙ•º—ú Ì Ÿ,l?㇞ú²�¤ø à‹úûèŸ,l?ãWígq3x‰Ï�mŠQŠyŠ‘ŠYŠ�Š�ŠaЉŠMŠeŠ�ŠUŠqŠ•Š]Š}Š…ŠIŠiŠuЙСŠýŒuŽ ‹Q��¡‹­�l�OŒ@ŽÅŠ®Œ¢ŽP‹�?�ô‹å�¡�ŠŒ$�ÙŽ}‹"Œ޵Š�’Ž@‹o�/�ä‹Õ�‘�zŒeŽ‹íŒÉŽm‹��\�ŒŽ¿�žŒA�÷Ž‘‹?Œ0ްODHT �·Þ1‹6¥ר žKÝ*F ¸–¦¸ñÖiÉ[)´ñoežîŠ#V!rBë<¶´—H²™ÆSyÕ°¥Ža žX dÏy~ æYi0¤d(°Õé´‡Húì? B&=A˜pZ²|ùwMís\æG¯É Ÿ d�b'q¿ÜT„ý@-ÅO^áh|-âçk˜ŠÖ�4ñµmÇ*²z7NÉ�|b18�N(Šë™8¯À®*�çï8<|s7q-H9aB¬?óeO܆aÑs—èwžÝÓ)6VO`V]ßÛ:r'¶(,§ßËYg9�yßn`IU „ä.çÍËo±w*è-!0¼ÖV¼éRÃY5�§=[è¬@ÅzgŸu9ëß2 Ûvõí~º„-e%Q†î)Ü#�5²ð´ô.hÝüÿ5ñ5o¿Š·7üØô¥�Ø;Å=¬õô°>µ"Z)ö íG{G Ù÷I×1‚”+&kùÅ 43û¯Ï[-lý3™&ÿÿPk7ÿKj4ÿÿZ8ÿÿÿÿÿÿ9P*ÿÿ,oÿN)ÿÿÿÿÿÿ+'=ÿ-}^S'sZÿN'W9V-ÿÿLÿÿÿrGÿÿ^yCÿÿÿÿÿALÿÿÿÿÿÿÿÿÿd<_ÿÿ^@ÿKCÿqmÿÿÿÿXd+:ÿÿ`Sdivÿ7ÿ> 5ÿ[PAÿfBI(ÿzÿÿÿÿTÿÿÿBÿÿ*ÿÿYÿÿÿU){&OsHÿÿÿÿÿf$zaÿvÿSÿÿÿÿÿc6ÿÿÿkÿÿÿÿÿaEÿÿÿÿÿÿÿÿ'YGYhÿ93$ÿÿÿÿÿe,b ÿBnÿ_ÿÿlXvÿÿ-ÿLÿÿÿÿPk7ÿKj4ÿÿZW/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/untrusted-0.9.0/src/input.rsÁJ/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/untrusted-0.9.0ÁW/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/untrusted-0.9.0/src/input.rsÁ ?V6šQ˜ì\Iî›ÓØØe$LJELDLJIKBG+M# H &K)=1QMLLP0 B%+!NP'Q 4,(! M:3(<('+32ž2wz&pº¯„˜z�$åZ/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/untrusted-0.9.0/src/no_panic.rsÁJ/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/untrusted-0.9.0ÁZ/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/untrusted-0.9.0/src/no_panic.rsÁ 1¿ÅëGúãÝ€�ƒÍcB���(GNI01I6%!3”ý¥qÛ´ÕV0S¤":X/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/untrusted-0.9.0/src/reader.rsÁJ/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/untrusted-0.9.0ÁX/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/untrusted-0.9.0/src/reader.rsÁ 5׎ o;JY ÅÒ¡3Êe§'§'Œ$LJELDLJIKBBLEMPJM# KA'K*FH+' M##P3('. #O4<'G% JN)VF%!N71*QP(R 4M(N)I/2$*P"-ýOîÕ‡(–/ÚÃû”`_MU/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/untrusted-0.9.0/src/lib.rsÁJ/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/untrusted-0.9.0ÁU/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/untrusted-0.9.0/src/lib.rsÁ ô•É(‹�BBÏÏP$gwÓè,è,y$LJELDLJIKBI)CF=LLLPOMMP;3PKOPKOGG*GJLO,QGPQPIOPPO@JEKNE/ION$L&OPLM>;    "JF' 802 % škjH°�·€§¢ó®gµ�VŸÀ ‹¢x86_64-unknown-linux-gnuÁpÄ_›ãsi~BåH5yÝ$' untrustedÁ-d9e089c651dd8a91ÁŸ,l?ã•ÈRó öÊe�eèRö%ohhhThTh%¸go�µh��Ð�ššhhÐhÐhÐh¸hÐgÐÎGhŽÐ<hÐhÐ<h¸gÎ\\¸�¸š\h¸ÐgΦ 8<<¹'rust-end-file.note.gnu.property.shstrtab.strtab.symtab.rmeta@ .€`ø¥&X¦p¦q¦5lib.rmeta-link/ 0 0 0 644 656 ` ELF>@@GNUÀBuntrusted-d9e089c651dd8a91.untrusted.e33f036c2c1d9f0e-cgu.0.rcgu.oÁrust-end-file.note.gnu.property.rmeta-link.shstrtab.strtab.symtab@ €`R2¸*Ð Ñ:/0 0 0 0 644 8952 ` ELF>ø@@H‰òH‰øH‰D$ðH‰T$øÃH‰òH‰øH‰D$ðH‰T$øÃHƒìH‰|$H‰t$èHƒÄÃHƒì(H‰|$H‰t$ H�|$H�¹ÿH�|$ÿ$HƒÄ(ÃHƒì(H‰|$H‰t$ H�|$H�¹ÿH�|$ÿ$HƒÄ(ÃInputReader%U9 2 ˆ Iˆ8 2 .n: ; I<I.n: ; I<?.@n: ; I? : ; I  ˆ Iˆ8 I3 $> .@G3 Iˆ8 4 /I 2 ˆI3 ˆI!I" 7 $ > WL 4L4T4d&dL7Wñ ‘Ö ‘ ã7W#ñ ‘#M ‘ #ã4z  j z s  WH ‘p LWx ‘pTdW� ‘&Lþs " IÏwÏÏww þð÷÷ d     , %9zF)lÿÿÿÿ77clang LLVM (rustc version 1.98.1 (48a229cea 2026-09-01))/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/untrusted-0.9.0/src/lib.rs/@/untrusted.e33f036c2c1d9f0e-cgu.0/root/.cargo/registry/src/index.crates.io-1949cf8c6b5b557f/untrusted-0.9.0untrustedno_panicbytesdata_ptru8lengthusize&[u8]Slice_RNvMNtCsjvCNY8p34sY_9untrusted8no_panicNtB2_5Slice3newB4_newinputvalueInput_RNvMs_NtCsjvCNY8p34sY_9untrusted5inputNtB4_5Input10into_valueinto_value_RNvMs_NtCsjvCNY8p34sY_9untrusted5inputNtB4_5Input4fromfrom{impl#0}reader_RNvXNtCsjvCNY8p34sY_9untrusted5inputNtB2_5InputNtNtCsgxBkk5gSRhY_4core3fmt5Debug3fmtfmtcoreresultOk()TErrorE__0ErrResult<(), core::fmt::Error>_RNvXNtCsjvCNY8p34sY_9untrusted6readerNtB2_6ReaderNtNtCsgxBkk5gSRhY_4core3fmt5Debug3fmtself&untrusted::input::Inputfoptionsflagsu32widthu16precisionFormattingOptionsbufpointerdyn core::fmt::Writevtable__ARRAY_SIZE_TYPE__&[usize; 6]&mut dyn core::fmt::WriteFormatter&mut core::fmt::FormatteriReader&untrusted::reader::Readerrustc version 1.98.1 (48a229cea 2026-09-01)zRx �0DD S\7D0rt7D0rÞ@û srcno_panic.rsinput.rsreader.rs   ô Ó ô % Ý Z  ×!f­ . " ×"f­ .åñÿx    o)7â·Š 7üÿÿÿÿÿÿÿüÿÿÿÿÿÿÿ! üÿÿÿÿÿÿÿ, üÿÿÿÿÿÿÿ üÿÿÿÿÿÿÿ! üÿÿÿÿÿÿÿ, üÿÿÿÿÿÿÿ  9  ²& + ý0 5 5= I ;M v` ze †m €y Œ} ËŽ Ö’ ¤ ©· #» yÉ × 4å ê ïý ¾ y  4* ö2 z> ôM /T _ "t { )‚˜ ¤º ÆÜ è }í ‚ò ¡ ‰ �# ‰/ �8 —= ™J �V �_ —d ™s yx ‘€ Ј 6” n¡ \© >µ HÁ RÐ ŒÛ è Úñ Dø Nÿ ¶ r �& z1 ªG –R ý  0@P (087@H7 4H`xMf€�Â.debug_abbrev.text.comment.rela.text._RNvXNtCsjvCNY8p34sY_9untrusted5inputNtB2_5InputNtNtCsgxBkk5gSRhY_4core3fmt5Debug3fmt.rela.text._RNvXNtCsjvCNY8p34sY_9untrusted6readerNtB2_6ReaderNtNtCsgxBkk5gSRhY_4core3fmt5Debug3fmt_RNvMsa_NtCsgxBkk5gSRhY_4core3fmtNtB5_9Formatter12debug_struct.rela.debug_aranges.rela.debug_ranges.debug_str.rela.debug_info.rela.text._RNvMs_NtCsjvCNY8p34sY_9untrusted5inputNtB4_5Input4from.note.GNU-stack_RNvMs1_NtNtCsgxBkk5gSRhY_4core3fmt8buildersNtB5_11DebugStruct6finish.text._RNvMs_NtCsjvCNY8p34sY_9untrusted5inputNtB4_5Input10into_value.rela.debug_line.rela.eh_frame.strtab.symtab.text._RNvMNtCsjvCNY8p34sY_9untrusted8no_panicNtB2_5Slice3newB4_.rodata..Lanon.72eec46e323b700d64b4ad62727c2731.1untrusted.e33f036c2c1d9f0e-cgu.0.rodata..Lanon.72eec46e323b700d64b4ad62727c2731.0bÀ8@r@ý`i€d@(# 7@@H„à7@ˆH ³",XN[S@Ѐ&©p!@P�:`5@àðH0y0‘ -§¾ XpÀ ˆS@ÐxGH âB@Hxj0 ø