rust #rustc 1.81.0 (eeb90cda1 2024-09-04) 4< Y_-759718a9bb18a1234ae'7`/Ж-89ef43c30f9b928exvA١Q-1426abde5263ac46rustc_std_workspace_coreXP\VB*Di-d08e4e7d05aff086PF}iJ dT-bcbe36736b9f0af2,O\;&TZ-93dda7487230aedacfg_ife7C?ubrj -814df84e64e9c749 hashbrowniVE K-1128f34f910afc3arustc_std_workspace_alloc -+/u8h-ec2cabfc22cdef7d std_detectuMChO.-67d9d7b318bd750drustc_demangle"Qb`8;kw-13c5a35fb3626718 x@8^#,%-7da375a7ca1e9a5e '@\駽χW-d4c80a6b68e0570b proc_macro24^RF5Ҡ -ec12a974c5a8c8e2 unicode_identrl8R+?P-6471048e310c06c3  \5  \  extTokenStreamExt append U  append_allI append_separated append_terminatedprivate!!Sealed!% format_ident%format_ident_implident_fragment(((((( IdentFragment..span(11 1(55 5(9 9(<< <(ident_fragment_display to_tokensAAAAAAAAAA A A A A AAToTokensQ Qto_token_streamQinto_token_streamAU'aUU AY YY A] ]] Aaa Add Agg Aj Al An A p A r A t A v A x Az A| A~ A A A A A A A A A A A A A A A   __private      DelimiterSpan HasIterator ThereIsNoIteratorInRepetition RepIteratorExtquote_into_iterRepToTokensExt RepAsIteratorExt'qIter     get_spanGetSpan  GetSpanInner  GetSpanBase  __into_span push_grouppush_group_spannedparse parse_spanned respan_token_tree  push_identpush_ident_spanned push_lifetimeLifetime     push_lifetime_spanned       push_punctpush_underscorepush_underscore_spannedmk_identident_maybe_raw     spannedSpanned__span join_spans     __quote__quote_spannedpounded_var_namespounded_var_names_with_contextpounded_var_with_contextquote_bind_into_iterquote_bind_next_or_breakquote_each_tokenquote_each_token_spannedquote_tokens_with_context!quote_tokens_with_context_spannedquote_token_with_context quote_token_with_context_spanned quote_tokenquote_token_spanned(((((( ( ( ( (  RepInterp  push_addpush_add_spanned push_add_eqpush_add_eq_spannedpush_andpush_and_spanned push_and_andpush_and_and_spanned push_and_eqpush_and_eq_spannedpush_atpush_at_spanned push_bangpush_bang_spanned push_caretpush_caret_spanned push_caret_eqpush_caret_eq_spanned push_colonpush_colon_spanned push_colon2push_colon2_spanned push_commapush_comma_spannedpush_divpush_div_spanned push_div_eqpush_div_eq_spannedpush_dotpush_dot_spanned push_dot2push_dot2_spanned push_dot3push_dot3_spannedpush_dot_dot_eqpush_dot_dot_eq_spannedpush_eqpush_eq_spanned push_eq_eqpush_eq_eq_spannedpush_gepush_ge_spannedpush_gtpush_gt_spannedpush_lepush_le_spannedpush_ltpush_lt_spanned push_mul_eqpush_mul_eq_spannedpush_nepush_ne_spannedpush_orpush_or_spanned push_or_eqpush_or_eq_spanned push_or_orpush_or_or_spanned push_poundpush_pound_spanned push_questionpush_question_spanned push_rarrowpush_rarrow_spanned push_larrowpush_larrow_spannedpush_rempush_rem_spanned push_rem_eqpush_rem_eq_spannedpush_fat_arrowpush_fat_arrow_spanned push_semipush_semi_spannedpush_shlpush_shl_spanned push_shl_eqpush_shl_eq_spannedpush_shrpush_shr_spanned push_shr_eqpush_shr_eq_spanned push_starpush_star_spannedpush_subpush_sub_spanned push_sub_eqpush_sub_eq_spannedIdentFragmentAdapter   quote_spanned 77777777/7/7/70717374747475777878787:7;7;7;7<7>7?7?7?7R7R7S7X7X7\7\7`7`7c7c7f7f7i7i7k7k7m7m7o7o7q7q7s7s7u7u7w7w7y7y7{7{7}7}7777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777777.# Q inner_markerὁ¦#B. 7. 7C.IdentAAѦV.BorrowedOwnedܻ7C...===,̺ǂ.......Q  CQ  CQBCܻ CQBoxlա:::Global ߧױQ''' &'phantom&'&ں;FFQޓȭFQQDQQQQQQQEQEQEQEQEQEQQQQQkA)ד劽Q<<CString<A%߆QGroupAʊ QCQPunctchspacing ݇QLiteralAAQIBJJ̈́ٻZQB M 쓞˧MMMMMFF    N C888buf383CFe CF# ɄC# ɄFPCPQP ЪеF 㵴FC  ԃЅM C    2 0FRTRTRTRTRTRAAڢŏ DelimSpanAAٕƫܾ@FSTF=5 <91 $8   r\D]\]]T]Z\oL\$\L C\@\C B//ė\~]aBx  Ca     E]E, c],   E"  B L R*$|, L]"$ |    & 1 w[[L\$da_a\awޓȭc aHjE][ d[y_opC Zt ] \aaxb~aRd;]]d]avd G\$ "Fb8EJ\U ^b l}, ],  L] "$  |F  $ Ld "$  |     & { 1PP[[L\$d$\\^_H]\[@_V[gmqtermy4Z  \P\V]\dy]TdK]`\d]$ S03ޓȭSd , u, ! 0C'"3Pnd  C,p 9ov,  /C& (4aƫ@[ ނ\p, TTTflagsQTfillQTQTwidthQT precisionQTMQ# p5py,  !o.7Pnd  C,ppt@ox,  p- # 8aq\t,r pyt"&Pp$  BCܻC_gl < o > <nd  v, p6vor$ v| 4 p3 # ? Tq\ w, r pIvp \ܧL Ro$/4 S^B\n,BT[["tokens,kyyB$| So' sTB\o$n@{opouD ԛL RC&4XY[p,[4[gp"z&P}D  ԴL}-4\Y[t,[4[bpt )z-W}Dv,L}54`Y[w,[4[bp"z&Pv}D  Unique AմF ՙжF FL RF4cY[ F,[4[j FF$,5z9f˂D G,"L˂<4fY[ G,[4[f#z'T˂$ < FL˂ 4i,[ G,[4H[*z.t~˂| MSoM|o$ 0T nBޓȭnln, p MenMĒn, 0, /( N,'}NM  ND Gъ,  /(ъ1 }  NDvCъ\$ eC$4 Md]]] \] end_or_len\]A\̞ܶ}CM NDڍ\  N$ "'$ "4   M d؍  NDڍ@\"$" CF$"4"" M"!dCM! OD!j4#C#|# C/#$#fCM# OD#p~C( %F F*2( % F %+P6 P@F}XbƓ4(Fd( F((;GL(P$(FZ34)Fl)$) CF.4)))FޓȭFC) PL) F4*F*L*˂(4**+*W[*,*[4*[e#z'R˂+ F+ F+( F++ZPT+F$+Qc ﮅߓF Jkt. 㵴S ﮅߓSS/.GS$. ЪеS$. \T/ ﮅߓTT/$0 ^400/KS$/  㵴T,/ Ti !D  !  L !* (internal error: entered unreachable code(( >_0EF 1 ,06<2Q22@ Ql2 P,2 2<343@l3,3 .(:vFƓ%-(:v F:v+R6 R@FxXbƓ4wFlw$w 0F,4www@ndw,wm5ߢuDK This crate provides the [`quote!`] macro for turning Rust syntax tree dataN' structures into tokens of source code.* [`quote!`]: macro.quote.html G Procedural macros in Rust receive a stream of tokens as input, executeJM arbitrary Rust code to determine how to manipulate those tokens, and producePM a stream of tokens to hand back to the compiler to compile into the caller'sPJ crate. Quasi-quoting is a solution to one piece of that — producingM" tokens to return to the compiler.%K The idea of quasi-quoting is that we write *code* that we treat as *data*.NI Within the `quote!` macro, we can write what looks like code to our textLG editor or IDE. We get all the benefits of the editor's brace matching, JL syntax highlighting, indentation, and maybe autocompletion. But rather than OM compiling that as code into the current crate, we can treat it as data, pass PL it around, mutate it, and eventually hand it back to the compiler as tokens O* to compile into the macro caller's crate. - C This crate is motivated by the procedural macro use case, but is a FM general-purpose Rust quasi-quoting library and is not specific to procedural P macros.\   ```toml\  [dependencies]  quote = "1.0"  ```<  D   # Examplel  L The following quasi-quoted block of code is something you might find in [a]OL procedural macro having to do with data structure serialization. The `#var`OK syntax performs interpolation of runtime variables into the quoted tokens.NJ Check out the documentation of the [`quote!`] macro for more detail aboutMI the syntax. See also the [`quote_spanned!`] macro which is important forL) implementing hygienic procedural macros., [a]: https://serde.rs/Խ- [`quote_spanned!`]: macro.quote_spanned.html0< # use quote::quote; #, # let generics = "";ij # let where_clause = ""; # let field_ty = ""; # let item_ty = ""; # let path = ""; # let value = "";, let tokens = quote! {3 struct SerializeWith #generics #where_clause {6 value: &'a #field_ty,!6 phantom: core::marker::PhantomData<#item_ty>,9 }LP impl #generics serde::Serialize for SerializeWith #generics #where_clause {SI fn serialize(&self, serializer: S) -> ResultL where" S: serde::Serializer,% {l* #path(self.value, serializer)- }lL SerializeWith { value: #value,8 phantom: core::marker::PhantomData::<#item_ty>,;L };4<D # Non-macro code generatorsL When using `quote` in a build.rs or main.rs and writing the output out to aOA file, consider having the code generator pass the tokens throughDL [prettyplease] before writing. This way if an error occurs in the generatedO5 code it is convenient for a human to read and debug.88 [prettyplease]: https://github.com/dtolnay/prettyplease;   l https://docs.rs/quote/1.0.377%(A    & '  . Q    !!!! 3IORI>< ! D Q$+\7 TokenTreeLD |TTD)%;=$&)? TokenStream extension trait with methods for appending tokens.QBM This trait is sealed and cannot be implemented outside of the `quote` crate.Pt  #o| #  G' For use by `ToTokens` implementations.*4 Appends the token specified to this list of tokens.747 7od[     тd dL| od$Z,.0b*<0 # use quote::{quote, TokenStreamExt, ToTokens};3 # use proc_macro2::TokenStream;#, struct X;l impl ToTokens for X {̠4 fn to_tokens(&self, tokens: &mut TokenStream) {7+ tokens.append_all(&[true, false]);.L }, let tokens = quote!(#X);. assert_eq!(tokens.to_string(), "true false");1<T7 7o[   т BdQBD o$$CE *F Appends all of the items in the iterator `I`, separated by the tokensI `U`.D  7 7o[    т d D QD  o$ $ f XZVX  * A Appends all tokens in the iterator `I`, appending `U` after each D; element, including after the last element of the iterator. > 7 7o[     d D D  o$ $ l$ HJOQ #B G4 7 7BY[ тY YL|  Y$ Z-*,bT7 7B\[ т\ B\dQ]D \$.577 7B\d[   dDQdD \d$2f2GINP7 7B\d[     dDD \d$5l5ACHJ\<#\!"4###ܒBT4, Formatting macro for constructing `Ident`s./0D4= # SyntaxdANL Syntax is copied from the [`format!`] macro, supporting both positional andRO named arguments.K Only a limited set of formatting traits are supported. The current mappingN of format types to traits is:! * `{}` ⇒ [`IdentFragment`] ( * `{:o}` ⇒ [`Octal`](std::fmt::Octal)+. * `{:x}` ⇒ [`LowerHex`](std::fmt::LowerHex)1. * `{:X}` ⇒ [`UpperHex`](std::fmt::UpperHex)1* * `{:b}` ⇒ [`Binary`](std::fmt::Binary)-' See [`std::fmt`] for more information.*D # IdentFragmentL Unlike `format!`, this macro uses the [`IdentFragment`] formatting trait byO? default. This trait is like `Display`, with a few differences:BJ * `IdentFragment` is only implemented for a limited set of types, such asM" unsigned integers and strings.%J * [`Ident`] arguments will have their `r#` prefixes stripped, if present.M( [`IdentFragment`]: crate::IdentFragment+ [`Ident`]: proc_macro2::Ident!D # HygienelL The [`Span`] of the first `Ident` argument is used as the span of the finalOH identifier, falling back to [`Span::call_site`] when no identifiers are K provided.l  <  # use quote::format_ident; & # let ident = format_ident!("Ident"); )M // If `ident` is an Ident, the span of `my_ident` will be inherited from it. P9 let my_ident = format_ident!("My{}{}", ident, "IsCool"); <' assert_eq!(my_ident, "MyIdentIsCool"); *<  F Alternatively, the span can be overridden by passing the `span` named I argument.l  <  3 # const IGNORE_TOKENS: &'static str = stringify! { 6 let my_span = /* ... */;  # };D 0 # let my_span = proc_macro2::Span::call_site(); 3* format_ident!("MyIdent", span = my_span);-< [`Span`]: proc_macro2::Span2 [`Span::call_site`]: proc_macro2::Span::call_site5


| # PanicsdH This method will panic if the resulting formatted string is not a validK identifier.|D # Examplest' Composing raw and non-raw identifiers:*</ let my_ident = format_ident!("My{}", "Ident");2! assert_eq!(my_ident, "MyIdent");$" let raw = format_ident!("r#Raw");% assert_eq!(raw, "r#Raw");; let my_ident_raw = format_ident!("{}Is{}", my_ident, raw);>* assert_eq!(my_ident_raw, "MyIdentIsRaw");-< Integer formatting options:< let num: u32 = 10;+ let decimal = format_ident!("Id_{}", num);. assert_eq!(decimal, "Id_10");!+ let octal = format_ident!("Id_{:o}", num);. assert_eq!(octal, "Id_12");, let binary = format_ident!("Id_{:b}", num);/ assert_eq!(binary, "Id_1010");"/ let lower_hex = format_ident!("Id_{:x}", num);2 assert_eq!(lower_hex, "Id_a");"/ let upper_hex = format_ident!("Id_{:X}", num);2 assert_eq!(upper_hex, "Id_A");"<d|,        $    ,          , L 4 $          $      rest$        ,          , L 4 $        $   d|   4t6/  %       $  $              , L D      , L 4              $        old  $            $    $  $    ,                   $    $           $            $    $  $      $        ,         , L 4 $   , L $      $             $           $  $             $  ,   arg  $    ,          $             $         !     $   $                $   ,       $       $      ! ! " ,! ! ,!! L!! 2! ! !  ! ! ! ! " !! ! ,!!  ! ! ! " ! " !  $! !  ! ! " ! "  $" " " " " " " " "  " " "  $" " " " " " " $"  " " " " # " " "  $" " $" " " " " " " " "  " " " " $"# # # # ,##  # # # # # # #  $# # # # # # #  # # # # # # $  # # #  $# # $# # # # # # # # #  # # # # $# # # # $ # $# # #  $$ $ % ,$ $ ,$$ L$$ 2$ $ $  $ $ $ $ % $$ $ ,$$  $ $ $ % $ %  $  $$ $  $ % % % %  $% % % % % % % % %  % % % % % % % $%  % % %t.y()"Q(*B,9(,$@(-HL;+13#%6 Specialized formatting trait used by `format_ident!`.H9K [`Ident`] arguments formatted using this trait will have their `r#` prefixN stripped, if present., See [`format_ident!`] for more information./' [`format_ident!`]: crate::format_ident*l.../0/05- Format this value as an identifier fragment.0777 7o 7TTTqQTqQTQTqQTqQTMQ#7q. . /o$ + Span associated with this `IdentFragment`..: If non-`None`, may be inherited by formatted identifiers.=$7 7on. . 0o$4722.ClC34 $7 7Cn1 1 37C$4777 7C 7TTTqQTqQTQTqQTqQTMQ#7q1 1 47C$ 98766lC78 $7 7Cn5 5 77C$4777 7C 7TTTqQTqQTQTqQTqQTMQ#7q5 5 87C$U: C:; $ 7 7Cn9 9 :$  4 777 7C 7TTTqQTqQTQTqQTqQTMQ#7q9 9 ;$   S7==l C< C>?  $ 7 7Cn< < >7C$  4 777 7C 7TTTqQTqQTQTqQTqQTMQ#7q< < ?7C$ ;#                     $  l              $         L  4    <    $      lLQt  ABy.ACB'AD$P+AEI,hAGB,oAHJ,', impl ToTokens for Path {7? for (i, segment) in self.segments.iter().enumerate() {B& if i > 0 || self.global {)% // Double colon `::` (@ tokens.append(Punct::new(':', Spacing::Joint)); C@ tokens.append(Punct::new(':', Spacing::Alone)); C } ' segment.to_tokens(tokens); *l L , ,  # pub struct PathSegment; , " # impl ToTokens for PathSegment { %6 # fn to_tokens(&self, tokens: &mut TokenStream) { 9 # unimplemented!()  # }\  # }< < L 77 7o 7B[Q Qy$ z4 (5 Convert `self` directly into a `TokenStream` object. 8G This method is implicitly implemented using `to_tokens`, and acts as aJ: convenience method for consumers of the `ToTokens` trait.=|7 7oBQ Q{$H8J=oBQQтo, To=1 VWVWQCDEX -L77 7E 7B[U U X C$zc>5 Z[Z[DE\ -L77 7E 7B[Y Y \ C$z?@ ^_^_<DE` -L77 7E 7B[] ] ` C$z?.bbQFDFc -L77 7F 7B[a a cF$zA-eeDGf -L77 7G 7B[d d fF$zA(hhтF DGi-L77 7G 7B[g g iF$zBk-L77 7 7B[j j k$z4Dm-L77 7D 7B[l l m$z4Ho-L77 7H 7B[n n o$z4Hq-L77 7H 7B[p p q$z4Hs-L77 7H 7B[r r s$z4Hu -L 77 7H 7B[t t u$ z4  Hw!-L!77 7H 7B[v !v w$!z4!"Hy"-L"77 7H 7B[x "x y$"z4"#E{#-L#77 7E 7B[z #z {$#z4#$E}$-L$77 7E 7B[| $| }$$z4$%E%-L%77 7E 7B[~ %~ $%z4%&E&-L&77 7E 7B[ & $&z4&'E'-L'77 7E 7B[ ' $'z4'(E(-L(77 7E 7B[ ( $(z4()I)-L)77 7I 7B[ * $*z4**I*-L+77 7I 7B[ + $+z4++,-L,77 7 7B[ , $,z4,,--L-77 7 7B[ - $-z4-.I.-L.77 7I 7B[ . $.z4./J/-L/77 7J 7B[ / $/z4/0J0-L077 7J 7B[ 0 $0z401C1-L177 7C 7B[ 1 $1z412J2-L277 7J 7B[ 2 $2z423K3-L377 7K 7B[ 3 $3z43ܿ4L4-L477 7L 7B[ 4 $4z445B5-L577 7B 7B[ 5 $5z456)6BB $6     4tL <\d+ lF. DUQt_ zQ$+BitOr,I,B,J,Spacing<L444{~X[>0<?+.Lt T6lz    4tL ParenthesisBraceBracketɌƆl    4t$S    4t\B    4t\M쓞˧\+M(    4tM]+MKM\4MT,MMM $_rhs$9M\4MB,MMM $$9M\4M 0, MMM $ $  'M\ 4 M 0, MMM $ $ \ K Extension traits used by the implementation of `quote!`. These are defined NK in separate traits, rather than as a single trait due to ambiguity issues. N J These traits expose a `quote_into_iter` method which should allow calling MK whichever impl happens to be applicable. Calling that method repeatedly on N) the returned value should be idempotent. ,    4 t  #L#HasIter<DoesNotHaveIter| DQ btree_set$%eD ,W Q\|z/cLUW\H*E Extension trait providing the `quote_into_iter` method on iterators.H   4tt,CoD*!90+|o oC& CFDF; Extension trait providing the `quote_into_iter` method for>C non-iterable types. These types interpolate the same value in eachF iteration of the repetition.    4ttA Pretend to be an iterator for the purposes of `quote_into_iter`.D< This allows repeated calls to `quote_into_iter` to continue?% correctly returning DoesNotHaveIter.($7 7oޓȭ  o$5|7 7oM  o$/DF F Extension trait providing the `quote_into_iter` method for types thatI" can be referenced as an iterator.%   4tтoCD$6| oM o$M NN L$N5| NNM  N$Q N L$5| NNM  N$,тC CN!L$]]] \]\]A\̞ܶ}C5| NNM C$/̠ ܠNL$5| NNM C$ 4̠ ܠ O L!$!C!5|! OOM C$!"G̠ "C"O"&(L#$#C#5|# OOM C$#% %P  ($(PG F$J(+ (ŒD(PL)$))($)7 7PޓȭPC ) F$))+ )D*P*-L*77 7P 7B[ * F$*zK+)+ + + 4+t+D+FP + F VLd+D+,,SL,$,,@,1,"U<, ,PЪеQPUPQP FceԀ-QVd- -Q㵴QVQQ Feg̽-'W\- -ﮅߓF'WRF Ffhd-F.ԛ. \.ԛS M//!\/7 7S / $/0 0  0\07 7F 0 F$01 1P  \141Q2 ,27 7P 7P 2 F$22! 2Q  \3433 ,37 7Q 7Q 3 F$34U4 4 4 44t4T47 7BB[ 4 z44 delimiterL4A,45|5 5 5 45t557 7BSB[ 5 z45 $5θL6A,67/7 7 7 47t7,777 7B 7[ 7 z47 78C8 8 8 48t8l877 7BS 7[ 8 z48 $8 99HLL S:C:LSL Z,: $;<<ɼH>4> > > 4>t>T>77 7B 7[ > z4> >?H? ? ? 4?t??77 7BS 7[ ? z4? $? ?@>@ @ @ 4@t@l@77 7B 7[ @ z4@D@ADA QԃЅMAlA$A  LA,AEA" QALB$BLB($B7 7QޓȭQC B  $BFRF F F 4FtFF77 7BS 7[ F z4F $GDGGDG RGlG$GTG$GSLG,GEH" RHLH$HLH($H7 7RޓȭRC H  $HMTM M \  M N  M  $M M ,M N  println!("{}", #v), )*` — even multiple interpolations/H%/%D/%/%l0%0%J Any interpolated tokens preserve the `Span` information provided by their0M%E `ToTokens` implementation. Tokens that originate within the `quote!`0H%3 invocation are spanned with [`Span::call_site()`].16%2%e [`Span::call_site()`]: https://docs.rs/proc-macro2/1.0/proc_macro2/struct.Span.html#method.call_site2h%3%G A different span can be provided through the [`quote_spanned!`] macro.3J%3%30%4%D4%4% # Return type4%4%I The macro evaluates to an expression of type `proc_macro2::TokenStream`.4L%A Meanwhile Rust procedural macros are expected to return the type5D% `proc_macro::TokenStream`.6%6%M The difference between the two types is that `proc_macro` types are entirely6P%I specific to procedural macros and cannot ever exist in code outside of a7L%I procedural macro, while `proc_macro2` types may exist anywhere including7L%I tests and non-macro code like main.rs and build.rs. This is why even the8L%J procedural macro ecosystem is largely built around `proc_macro2`, because9M%I that ensures the libraries are unit testable and accessible in non-macro9L% contexts.l:%:%M There is a [`From`]-conversion in both directions so returning the output of:P%G `quote!` from a procedural macro usually looks like `tokens.into()` or;J%) `proc_macro::TokenStream::from(tokens)`.<,%<%@ [`From`]: https://doc.rust-lang.org/std/convert/trait.From.html%L The structure of a basic procedural macro is as follows. Refer to the [Syn]>O%L crate for further useful guidance on using `quote!` as part of a procedural?O% macro.T?%?%?)%@%<@% # #[cfg(any())]@% extern crate proc_macro;@% # extern crate proc_macro2;A%A%A% use proc_macro::TokenStream;A %A#% use quote::quote;B%B%B6% #[proc_macro_derive(HeapSize)]C"%DC%= pub fn derive_heap_size(input: TokenStream) -> TokenStream {C@%I // Parse the input and figure out what implementation to generate...DL%7 # const IGNORE_TOKENS: &'static str = stringify! {D:% let name = /* ... */;E% let expr = /* ... */;E% # };dE% #LF% # let name = 0;F% # let expr = 0;F%F% let expanded = quote! {F% // The generated impl.G"%, impl heapsize::HeapSize for #name {G/%7 fn heap_size_of_children(&self) -> usize {G:% #expr̾H%H%lH% };TI%I%4 // Hand the output tokens back to the compiler.I7% TokenStream::from(expanded)I#%,J%` then the expanded code is `Vec::new()` which is invalidgP%J syntax. Ordinarily in handwritten Rust we would write `Vec::::new()`hM%7 but for macros often the following is more convenient.i:%i%::new();j)%,k%>::new()` which behaves correctly.k@%l%4 A similar pattern is appropriate for trait methods.l7%l%::default();nG%,n% [`syn::Index`]: https://docs.rs/syn/2.0/syn/struct.Index.html{A%{%{%# let i = 0usize..self.fields.len();{&%|%J // expands to 0 + self.0usize.heap_size() + self.1usize.heap_size() + ...|M% // which is not valid syntax} %d}%" 0 #( + self.#i.heap_size() )*}%%,}%<~%~%<~%) # use proc_macro2::{Ident, TokenStream};~,%~%,% # mod syn {|%/ # use proc_macro2::{Literal, TokenStream};2%- # use quote::{ToTokens, TokenStreamExt};0%,% # pub struct Index(usize);"%,Ԁ%# # impl From for Index {&%& # fn from(i: usize) -> Self {)% # Index(i)Á% # }|%\%,% # impl ToTokens for Index {#%: # fn to_tokens(&self, tokens: &mut TokenStream) {̂=%@ # tokens.append(Literal::usize_unsuffixed(self.0));C%|ރ%\%<%,% # struct Struct {% # fields: Vec,Ƅ%<%,% # impl Struct {%) # fn example(&self) -> TokenStream {,%6 let i = (0..self.fields.len()).map(syn::Index::from);ۅ9%%@ // expands to 0 + self.0.heap_size() + self.1.heap_size() + ...C%d%%%,%\Ƈ%<ڇ%<   , 䝑|    ԑ  3l‘ ϑ $Б֑ ّ b%L Same as `quote!`, but applies a given span to all tokens originating withinO% the macro invocation.̻%ݒ%D%%d%%M A span expression of type [`Span`], followed by `=>`, followed by the tokensP%I to quote. The span expression should be brief — use a variable forL%I anything more than a few characters. There should be no space before theՔL% `=>` token.|%•%G [`Span`]: https://docs.rs/proc-macro2/1.0/proc_macro2/struct.Span.htmlΕJ%%<% # use proc_macro2::Span;佖% # use quote::quote_spanned;%,%6% let span = /* ... */;ח%D% # let span = Span::call_site();#% # let init = 0;%Ҙ%! // On one line, use parentheses.ޘ$%D let tokens = quote_spanned!(span=> Box::into_raw(Box::new(#init)));G%ۙ%@ // On multiple lines, place the span at the top and use braces.C%$ let tokens = quote_spanned! {span=>'%# Box::into_raw(Box::new(#init))&%4%<%%J The lack of space before the `=>` should look jarring to Rust programmersM%B and this is intentional. The formatting is designed to be visiblyE%J off-balance and draw the eye a particular way, due to the span expressionM%I being evaluated in the context of the procedural macro and the remainingL%. tokens being evaluated in the generated code.1%ƞ%DҞ%%l%%M%M `ToTokens` implementation. Tokens that originate within the `quote_spanned!`P%5 invocation are spanned with the given span argument.8%%D%%l%%K The following procedural macro code uses `quote_spanned!` to assert that a̡N%M particular Rust type implements the [`Sync`] trait so that references can beP% safely shared between threads."%%? [`Sync`]: https://doc.rust-lang.org/std/marker/trait.Sync.htmlB%%<%8 # use quote::{quote_spanned, TokenStreamExt, ToTokens};;%( # use proc_macro2::{Span, TokenStream};ޤ+%,% # struct Type;%,% # impl Type {ɥ% # fn span(&self) -> Span {"% # Span::call_site()%\%<ʦ%,ڦ% # impl ToTokens for Type {%8 # fn to_tokens(&self, _tokens: &mut TokenStream) {};%<ӧ%,% # let ty = Type;%% # let call_site = Span::call_site();(%,% let ty_span = ty.span();ͨ%, let assert_sync = quote_spanned! {ty_span=>/%( struct _AssertSync where #ty: Sync;+%4ީ%<%%K If the assertion fails, the user will see an error like the following. TheN%6 input span of their type is highlighted in the error.9%% ```text\%N error[E0277]: the trait bound `*const (): std::marker::Sync` is not satisfied«Q% --> src/main.rs:10:21ܜ% |D%* 10 | static ref PTR: *const () = &();Ѭ-%W | ^^^^^^^^^ `*const ()` cannot be shared between threads safelyZ%<%%L In this example it is important for the where-clause to be spanned with theO%L line/column information of the user's input type so that error messages areޮO%& placed appropriately by the compiler.)  3l d |    4tX       $  ,   extra,       tts        ,      $   ,        ݅         ݅    +d |    4tX       $  ,   ,         b1           curr$           , č      $   ,    $   %d |    4tY      $  ,   ,             A,        ,      $   ,     A,       $  ,   ,             A,        ,      $   ,     A,       $  ,   ,             A,        ,      $   ,     A,        $  ,        ,         ,    ,  $        ,          $  ,   ,        $     !d |    4tY      has_iterD  ,    ,      ,   unused_mutT              |      D   D      %d |    4t$Y        ,       ,     $     $   _x  , L #L     $ ,   d |    4t5Y      z4  ,     ݅        ,  ̭      z4             ݅              ݅              ݅                ݅              ݅              ݅               ݅         %d |    4tFY       z4  ,   $  ,     ݅        ,  !      z4   $             ݅              ݅              ݅                ݅              ݅              ݅               ݅         &d |    4tWY       z4  ,       b3           b2                      $           a1           a2           a3           , !     z4        $  ɻ       .d |    4thY      z4  ,   $  ,                                        $           ɻ                                 , !      z4   $        $  ɻ       %d |    4tzY  0    z4  ,               ɻ                 z4  ,                      A,              ) $  , L      D   , L    ,         D       A,        , L \  D  &, !$     ,               A,    ,       z4     A,       z4  ,                  A,                     z4  ,            A,          ɻ                 z4  ,                      A,      sep        / $ ŀ ,ƀˀ L̀ր ؀ۀ  ݀ ހ   _i 4   D   , L 직 ā ΁ ,ρԁ ց        D       A,        , L \ Ƃ DȂ Ђ &,ڂ !$    ,     Ď          A,   Ń ȃ ˃ ̓ σ   , !\       z4      ,   ˄ ̄ ߄ ̈́ z4΄ Մ ք ݄ ׄ A,؄  ބ   م  z4  ,           Dž  ƅ   Å  A,    ą Ʌ ʅ ͅ ΅  х Ӆ ԅ օ ׅۅ ޅ ߅   Ȇ  z4  ,            A,                 † Æ ņ Ɔʆ ͆ Ά φ    z4  ,        A,            ɻ              , !\       z4     z4 ʼn ,Ɖ ̉ Ή މ Љ щ ۉ ҉ A,Ӊ ؉ ى  ܉          ɻ                 z4  , Ċ Ŋ NJ Ȋ ˊ ̊ Ί ϊ Ҋ ӊ Պ ֊ ي ۊ ڊ ݊ ފ  ,            ,  D  L            z4      z4  ,               ,  ɻ                 z4  ,                $    ɻ              , !\ ̍ ͍ ۍ ΍ $ύ ԍ z4Ս -dю |ώ    4tߎY  ۡ0  !  z4  ,   $  ,     ď ŏ Ǐ ȏ ˏ ̏ Ώ Ϗ ҏ ԏ ɻՏ ׏ ؏ ۏ ܏ ޏ ߏ         Đ  z4  ,   $  ,                      A,          Ɛ ɐ  ʐ ) $Ԑ ؐ ,ِސ L      D   , L 응  đ ,őʑ ̑ ݑ ޑ  ߑ    D       A,        , L \  D ƒ &,В !$֒ ے    ,     Ą          A,    ,  Ó ۓ ܓ  ݓ z4ޓ   $     A,     ۔  z4  ,   $  ,           ʔ  ɔ   Ɣ  A, Ô Ĕ  ǔ  ̔ Δ ϔ є Ҕ Ք ֔ ؔ ٔݔ       z4  ,   $  ,            A,          ɻ              ĕ  ŕ z4ƕ ̕ ,͕ ӕ  $ԕ ؕ ,ٕ ߕ                     A,              / $  , L     ʖ Ζ Җ Ֆ4ז ݖ  D   , L 쉗   ,  ɗ ʗ  ˗ ߗ   D       A,        , L \  D  &, !$˜ ǘ  ՘ ,֘ۘ ݘ              A,         Ù ,ęə !˙ ޙ ߙ     z4   $      ,  ī Ú Ě ݚ Ś z4ƚ ͚  $Κ Ӛ Ԛ ۚ ՚ A,֚  ܚ   ě  z4  ,   $  ,                  A,              ›ƛ ɛ ʛ ˛ ћ  қ z4ӛ ٛ ,ڛ   $  ,            A,                           z4  ,   $  ,œ Ȝ ʜ ڜ ̜ ͜ ל Μ A,Ϝ Ԝ ՜  ؜  ܜ ޜ   ߜ  ɻ              , !ĝ ם ؝   ٝ ۝ z4ܝ   $   Ğ  z4  ,   $  ,        A,              ɻ          žƞ ɞ ʞ ˞ Ҟ ! Ӟ z4Ԟ ڞ ,۞   $  ,                   ,            ,  D  L ȟ ܟ  ɟ ʟ ˟ Ο  П џ ՟ z4֟ ݟ     z4  ,   $  ,               ,  ɻ              Ġ ! Š z4Ơ ̠ ,͠ Ӡ  $Ԡ ؠ ,٠ ߠ               $    ɻ            ء  , !   ҡ  $ š z4ơ ͡  $Ρ ١d |ޤ    4tY      ,  ,  z4  ,   ƥ ,ǥ̥ LΥץ T٥       z4   L     ,      z4  ,    , LĦ &\Ʀ Ѧ ަ  Ҧ Ӧ צ z4ئ ߦ          A,      z4  ,  è  , L T    ǧ ȧ ̧ z4ͧ ӧ  , L L \   ,  ,        A,     Ĩ ˨  ̨ ܨ Ψ Ϩ ٨ Ш A,Ѩ ֨ ר  ڨ ި z4ߨ  ,    , L T       z4   ,ũ LǩЩ Lҩ۩ Ł<ݩ   ,  ,        A,       Ū       A,      z4  ,Ǫ ʪ  Ԫ ,ժڪ Lܪ T       z4   , L L ,  ʫ ,˫Ы  ,ҫ ׫ ث  ٫ ګ  ۫ A,ܫ          z4  ,  ͬ  , L -T  Ƭ     z4 Ǭ ά լ  ֬ ج z4٬ ߬ ,    , L 'T       z4       z4  , ­  ̭ ,ͭҭ Lԭݭ (D߭       z4       z4  ,  Ү  , L /L  ˮ    Į z4Ů ̮ Ӯ ڮ  ۮ ݮ z4ޮ  ,    , L &T       z4    ¯   z4  ,į ǯ  ѯ ,үׯ Lٯ #D       z4       z4  ,  ڰ  , L #\ ư Ӱ  ǰ Ȱ ̰ z4Ͱ ԰ ۰      z4  ,    , L $D       z4    ɱ  z4 ñ ,ı˱ α  ر ,ٱޱ L $d       z4       z4  ,    , LIJ $\Ʋ Ѳ ޲  Ҳ Ӳ ײ z4ز ߲      z4  ,    , L %<       z4   ³ ҳ ó ų z4Ƴ ̳ ,ͳԳ ׳   , L %L       z4        z4  ,    , Lɴ %T˴ մ   ִ ״ ۴ z4ܴ       z4  ,  ŵ  , L &l       z4  Ƶ ͵ ݵ  ε е z4ѵ ׵ ,صߵ    , L 'D       z4       z4  ,   ö ,Ķɶ L˶Զ (\ֶ       z4      z4  ,  ͷ  , L (L  Ʒ     z4 Ƿ η շ ַ ڷ z4۷  ,    , L )L       z4      z4  ,¸ Ÿ  ϸ ,иո L׸ )|       z4       z4  ,  ڹ  , L )< ƹ ӹ  ǹ ȹ ̹ z4͹ Թ ۹    z4  ,    , L *T       z4    ̺  z4 ƺ ,Ǻκ Ѻ  ۺ ,ܺ L *<       z4       z4  ,  ޻  , L *<û ʻ ׻  ˻ ̻ л z4ѻ ػ ߻    z4  ,    , L *<       z4    ̼   z4 Ƽ ,Ǽμ Ѽ  ۼ ,ܼ L +<       z4       z4  ,    , L½ +\Ľ Ͻ ܽ  н ѽ ս z4ֽ ݽ     z4  ,    , L +<       z4    Ѿ  ¾ ľ z4ž ˾ ,̾Ӿ ־   , L ,<       z4       z4  ,    , Lǿ ,Tɿ ӿ   Կ տ ٿ z4ڿ      z4  ,    , L ,T       z4       z4  ,    , L -l       z4      z4  ,    , L -\       z4      z4  ,    , L .\       z4        z4  ,    , L .D       z4       z4  ,    , L .\       z4      z4  ,    , L /t       z4       z4  ,    , L 0D       z4       z4  ,    , L 0\       z4       z4  ,    , L 0D       z4       z4  ,    , L 1\       z4        z4  ,    , L 1L       z4        z4  ,    , L 1D       z4       z4  ,    , L 2\       z4      D  D  z4  ,    , L l       z4   L     D        z4  ,    , L |       z4       ,    z4  ,    , L ,       z4   L      ,   d |    4tY       ,  ,  z4  ,   $  ,    , L        z4    $   L     ,       z4  ,   $  ,    , L '       z4    $            A,      z4  ,   $  ,    , L        z4    $   , L L \   , 3l      $     A,               A,      z4  ,   $  ,    , L        z4    $   , L L Ł<   , 3l      $     A,               A,      z4  ,   $  ,    , L        z4    $   , L L ,   , 3l      $     A,           z4  ,   $  ,    , L -       z4    $        z4  ,   $  ,    , L '       z4    $        z4  ,   $  ,    , L (       z4    $        z4  ,   $  ,    , L /       z4    $        z4  ,   $  ,    , L &       z4    $       z4  ,   $  ,    , L #       z4    $       z4  ,   $  ,    , L $       z4    $        z4  ,   $  ,    , L $       z4    $       z4  ,   $  ,    , L $       z4    $       z4  ,   $  ,    , L %       z4    $       z4  ,   $  ,    , L %|       z4    $       z4  ,   $  ,    , L %       z4    $        z4  ,   $  ,    , L &       z4    $       z4  ,   $  ,    , L &       z4    $        z4  ,   $  ,    , L '       z4    $       z4  ,   $  ,    , L (       z4    $       z4  ,   $  ,    , L (       z4    $       z4  ,   $  ,    , L )       z4    $       z4  ,   $  ,    , L )       z4    $       z4  ,   $  ,    , L )|       z4    $       z4  ,   $  ,    , L *       z4    $       z4  ,   $  ,    , L *|       z4    $        z4  ,   $  ,    , L *|       z4    $       z4  ,   $  ,    , L +|       z4    $        z4  ,   $  ,    , L +|       z4    $       z4  ,   $  ,    , L +       z4    $       z4  ,   $  ,    , L ,|       z4    $        z4  ,   $  ,    , L ,|       z4    $       z4  ,   $  ,    , L ,       z4    $       z4  ,   $  ,    , L -       z4    $        z4  ,   $  ,    , L -       z4    $       z4  ,   $  ,    , L .       z4    $       z4  ,   $  ,    , L .       z4    $        z4  ,   $  ,    , L .       z4    $       z4  ,   $  ,    , L /       z4    $       z4  ,   $  ,    , L /       z4    $       z4  ,   $  ,    , L 0       z4    $       z4  ,   $  ,    , L 0       z4    $       z4  ,   $  ,    , L 0       z4    $       z4  ,   $  ,    , L 1       z4    $        z4  ,   $  ,    , L 1       z4    $        z4  ,   $  ,    , L 1       z4    $       z4  ,   $  ,    , L 2       z4    $       D  D  z4  ,   $  ,    , L        z4    $   L     D        z4  ,   $  ,    , L        z4    $        ,    z4  ,   $  ,    , L l       z4    $   L      ,  4777 7 7TTTqQTqQTQTqQTqQTMQ#7q  777 7 7TTTqQTqQTQTqQTqQTMQ#7q D777 7D 7TTTqQTqQTQTqQTqQTMQ#7q 777 7 7TTTqQTqQTQTqQTqQTMQ#7q E4777 7E 7TTTqQTqQTQTqQTqQTMQ#7q  E777 7E 7TTTqQTqQTQTqQTqQTMQ#7q E777 7E 7TTTqQTqQTQTqQTqQTMQ#7q E777 7E 7TTTqQTqQTQTqQTqQTMQ#7q E777 7E 7TTTqQTqQTQTqQTqQTMQ#7q E777 7E 7TTTqQTqQTQTqQTqQTMQ#7q iU% % % 4%t%L% %PɄFPiUPFP Fbd,%F % 5FGP^I^I^I^I6 F^IP69^I^I7 7PP % F,% N& N  N N 0 Np ND\7 7B[ N z0 N O5 O  O O 0 Op O\7 7BS[ O z0 O OQ&Q QQ 0QpQ\]7 7B[R z0RS5S SS 0SpS]7 7BS[S z0S SN&N NN 0NpND]7 7B[N z0NO5O OO 0OpO]7 7BS[O z0O OQ&Q QQ 0QpQd]7 7B[R z0RS5S !SS 0SpS^7 7BS[S z0S SQ&Q !QQ 0QpQ\^7 7B[R z0RS5S !SS 0SpS^7 7BS[S z0S SN&N "NN 0NpN<^7 7B[N z0NO5O "OO 0OpO|^7 7BS[O z0O ON&N "NN 0NpNL_7 7B[N z0NO5O "OO 0OpO_7 7BS[O z0O ON&N #NN 0NpNT_7 7B[N z0NO5O #OO 0OpO_7 7BS[O z0O OQ&Q #QQ 0QpQl_7 7B[R z0RS5S #SS 0SpS`7 7BS[S z0S SN&N $NN 0NpNT`7 7B[N z0NO5O $OO 0OpO`7 7BS[O z0O OQ&Q $QQ 0QpQ\`7 7B[R z0RS5S %SS 0SpS`7 7BS[S z0S SN&N %NN 0NpNTa7 7B[N z0NO5O %OO 0OpOa7 7BS[O z0O ON&N &NN 0NpNDa7 7B[N z0NO5O &OO 0OpOa7 7BS[O z0O OQ&Q &QQ 0QpQ\a7 7B[R z0RS5S &SS 0SpSa7 7BS[S z0S SN&N 'NN 0NpNDb7 7B[N z0NO5O 'OO 0OpOb7 7BS[O z0O OQ&Q 'QQ 0QpQLb7 7B[R z0RS5S 'SS 0SpSb7 7BS[S z0S SV&V (VV 0VpVLc7 7B[W z0WY5X (XX 0XpXc7 7BS[Y z0Y YV&V )VV 0VpV|c7 7B[W z0WY5X )XX 0XpXc7 7BS[Y z0Y YN&N *NN 0NpN;>O;?OݣP;?;?;?);@8;@;@;@;A;A;A;A ;A#ۥ;B;B;B6;C"@;C˦;C@;DL;D:;Eը;E`;EH;F;F©;F;F;F;G"ª;G/;G:;H;Hh;HP;I;I;I7ڬ;I#(;J8;J;Jx;J;Jĭ;J";K;KNӮ;KO;LF;ML;M8;M;N(;N;N';N;O;O;O;O0;O8;P;Px;P;P;P ;P;QN;QJδ;R:;R;RO;SJʶ;TC;T8;T;U+;U(;U;U:(;Vϸ;V`;V;V(;W8;W8;W;W׹;WN;XF;X.;Y8;Yϻ;Y%;Y'(;Z;Z5(;Z;Z.`;[ͽ;[(;[8;[8;\;\;\J;\Oҿ;]3;^8;^;^+;^(;_;_:(;_;_-;`?`;`ͽ;`(;a8;a8;a;ax;a;a;a;b;bO;bE;cH;d8;d;d(;d;d#(;eϸ;e`;e;e'(;f8;f8;f;f;fM;gL;gP;hM;i:;i8;i;i(;j;j#(;j`;j;j)(;k8;k8;k;k;k@;l;l7;l8;l;m(;m;m#(;m`;m;nG(;n8;n8;n;ox;o;o;o1;o;oJP;p;p;p`;q;q&X;qx;q(;q8;r;r;r`;r;r-(;s8;s;s;sK;t7;tX;tϻ;t%;u(;u;u';u@;v(;v;v7;v9`;w;wX;wx;x(;x8;x8;x;xx;x;x;x$;y;yN;zP`;z;z;{A;{;{;{&;|;|M;} `;};}%(;}8;~;~8;~;~,;~(;x;;2;0(;;"(;Ԁ;&;);Áx;X;(;;#;̂=;Cx;ރX;8;(;;;Ƅ8;(;;;,;ۅ9;;C`;;%(;X;Ƈ8;ڇ8;d <|Y Ӊ  ݉ މ     , L \                  _s   , L \      ŋ ,Ƌˋ !\͋ ؋ ً  ڋ ۋ  ދ    Œ ό Ì Ō ƌ Ɍ ,ʌь Ԍ  Ռ        , L \       ,  D  L  ͍     č  ƍ Ǎ  ˍ ΍  ܍     tt1    tt2             , L \Ž  Ď ǎ Ȏ Ɏ ׎ ,؎ݎ !\ߎ          , !\     ͳ                            , L \    Ð Đ Ґ ,Ӑؐ  ڐ               ۱<O<<ݒ@<<`<<<P<L<ՔLx<<•<ΕJ<8<<<(<<6<ח@<<#<<Ҙ<ޘ$<G<ۙ<C<'<&0<8<<<M<E<M<L<1<ƞ@<Ҟ<h<<<M<P<8<@<<h<<<̡N<P<"<<B<8<<;<ޤ+(<<(<<ɥ<"<X<8<ʦ(<ڦ<<;8<ӧ(<<<((<<ͨ</<+0<ީ8<<<N<9<X<<«Q<@<<Ѭ-<Z8<<<Oɂ<ޮO<)dɱ <|DZY       $  $          , L $  ² ,òȲ LʲӲ Dղ ݲ  ޲  $߲  \     , L \           $  $        *       , L \´ʹ  ϴ Ҵ Ӵ Դ  _span,   , L $   , L D     $  \    ŵ ,Ƶ˵ !͵         ,    ж   Ѷ  $Ҷ ֶ $׶۶ ޶    ,    ,       , L \        · ÷ ŷ ,Ʒ˷ Lͷַ $ط ݷ ߷ , L D     $  \     ,  D  L  Ǹ          Ÿ ȸ  ָ       $  $       ͳ       0       , L \ɹ  ˹ ι Ϲ й ޹  ,   , L $   , L D     $  \     ,ºǺ !ɺ ܺ ݺ  ޺  ߺ    ,  , !     ͳ     ,        $  $             *       , Lü \żм  Ҽ ռ ּ ׼   ,   , L $   , L D     $  \    Ƚ ,ɽν  н       ,          nopq8sttau0v Lߙ ] L  LT$ L  ՞ L f Ϋ  \   w  y  {  }  ! " # $ % &  ' ) * + , -$ . 0. 1 28 2 3B 4ɼ 5U  *,9v 7  9 >l @ Az G xLx yLy {L{M |L| ~L~`\hHhh&#h63EeH[eke&#{e63eFCeVS)_^)^]%]\!\[[ZZYYXXW WV VUUTT|SRxRQtQPpPOlONhNMdML`LK\KJXJITIHPHGLGFHFEDED@DC(>=$=< <;;::99887 766554432}20fmacro.quote_spanned.html5https://doc.rust-lang.org/std/convert/trait.From.htmlaquote_spanned!https://github.com/dtolnay/synproc_macro::TokenStreamhttps://docs.rs/quote format_ident! & githubquote!'https://github.com/dtolnay/prettyplease-https://docs.rs/syn/2.0/syn/struct.Index.htmlSyn4https://doc.rust-lang.org/std/marker/trait.Sync.htmldocs-rs    prettyplease trait.ToTokens.html  *խ:I ky Eۂ3mBoa~5";<) v\eOm#L&$φik/'8/ykH& `'(:6M氜/ub,J|B6}om+F#܊ضokg pB4z;*ga<]dQ]b<<@\ϝfÌ3䙫Ң-8NTF#[" S4 \8Vn(\j-/Txm֚E1c![ kq9]9RH>D{M0T~[]׿~uSB{^ 1{8>D)J~+pJ\((rb8_mPz8:եCzגyj)ƞQ5Bm6Qu/+X%>L9mGFKO.5h3 !?D>$2}sroTh!FCO?^s^jrJ]W5 :?'(# 6LU*2K6vdv)G _*lx3jPӨK_nD ~S>FnFFt&Jңg6mnAՏLL s!ſA,K5[ )ޫzo[/scqi$U0(YE@oJY:|h^pK B!|5!#~춛ٜyRn>F"OiQ#>y% *חC爼p&c]}is_)M{R5.sape'i`; 7{g C=~XCRPMqC`xyQ PIOZL&R0l3DG`T(SVs) *24~E\]XBD12_y,kVO0Ɖu8C}YwsŶ<$8_䵟8{^$hDep'/'=4[5{#u#ތȰ0s|@‰ٱPmnƀ2y񨡕H&, ?g'd͜L0s }BneǪa/{3U&h9 /`ށQmi rؗB˹4S5Cnv )u$RQwSm`=#n_z3\rY4v[ CI4a(oMҟ6T7ŽTC=gg{g+-[XqT]m~;@?7=ۛe!rI X[}䆣qѣoA2~3s*>26`@Bov\;:6BKg 5Rz~8w sYG\7Ĥ:IF3ƋfǓl/gLc ŇEdoJ J'ܔ27u\CNu^XDT /_?# LX4:@ayDDƽQU1]0eV|r"lY%vgy Eh!|GZ@rp)%ZC/ Կ$O@Ϫ;9'^FR& :C{4Ms_ R_ |>]Nxx;}_2mT}@ѽp?mb@pn2K eEl/ O"M&t:{ iw٧ty-:dWU7 i3w;lV6o=f]1 ݹuiX[x<%o|(as5v ;*G:3](KcsTϿQ\\}9Mܥy|]ѓTUf](3UeWkl n|SAڮQh!¾?HhrĎq+a{-7"^ *Or=q,";1%S(5$V_+b9I[H}j~6Ur!i!9]Rk}4KR>2ςVVOWrY԰ MݰHUWI.DZVZ\\1we:UF1t$j/.zץ"N?ieO)G{mM_ a];sfX_NS9olX}7(Jae|b{y9a׊']+9KqH#}Ӈ^?Dm :-bm"0MMO*{~v+Xi>raщ)gj.$2Q:V}/@1+Ԇx\seIEZ!Mik7T:0= j莜VI@!\+ sn8힉+)Ԑ^=yaaF~31U33[ULAkN}赥Rל~h/uIT2i%Qa]^GڞZѨ_BhЄ+e:1#~zSB'aY}{xLge EP~KԱ)6Ү`W2 8U?F¸MA%G KKk1OnX8+3*x$|dla"2GA6|9c FmB|<ҍR # +X[g[eB3 bb{ƒLՁ#Q?Ȗc I'Yc )4h7I=g5WC;bvZFlVkg`pŷB.N1iNjC .ٸ/.Kq:rQN*s=vd|u}c"~j_ jpt< E;󬓀26`wޥON.k=e'+|kX'9bא9c6`z;{֭&c E9*ANb잛iIL|z>5q&6~[[${ƕڢ4u.-4O?e'$RғBs0JM@lDuC{1w6+RZʇV +dRQZXfS?-f%/Q v'm"5ݳ@#Y|,ߩSCwőDo%KF 1U7e{PC -r 1C$?=5nlV!v= +5'ƼK/e~pY9PL7nۤ Ѕdl4+/"bd1F-=:;qVnIK6K+iyT@ʽS9~Hzq4-O'JpK|w`7&oٲ, -|gT&ZЋ/U2lpդUW$B1x1"6*+PTf9Y$r*|%rnOu+0T/z tz0*tt b@EYFXOʾ> B8VFiL]jCc{V[hҝO(guNlV261ezP>Rd(&P@9Ͱ6?x\@#EF0}3K#ؚqev7c`{iP!ٌQN%1CRgumfy.k _H1AFmwk4BMs9[R}J5sQݨ5j$~ y>ym[ptj_$MGX\YrM1.186^~E.%ߍop CJ_91f<6?#ˣMPP4otYq,RpCøAOAk+`H;3)z$r,5dʶ=h >_~yQtgqy{><yBKXGӭn/Zu# Delf5zkԍA1EZ5gJ6ˁ(i# )-o?rbc^} 1I vքJyƔbЌUyb ^Tj | ϒúxBe%3tC*l gg9vJ;jN_[U]pchPN0b^2mF^vfS_r#Oct;-5-Y]=^md){${87"BͲD] K梻WZ [#qFb\l\2(r^ 6RL"CJ ӰW)u= 0U Q JJpUzaAlTӄ(av* '`g{P D Q*hmxچd#~=I6{,r.h X$quDx :kA9QAĽ 6l@W􈻰&|/aWg`M%A`WѾ:!,){ RvX{+1RTv Q_Y60oRkbŢ'ݯ .uuuuuDjkv9 AB ]Yk>lAmZnp7rssdt uuvvvwnw0#J'mD*-D5r+.0246!9+C5M=TE]OgYqc}'K:|6}.tt^s D^&O: o,IUE!h'mkm"< HaI Lii3`'m8"87a0 b?qc(z#zx?x2A2DF>N\PJRV[_/d~A[T l F Z ) ?  (    ~D^q$4DTdt!  1!!A""Q##a$$q%%&''(($))4**D++T,,d--t.//00!11122A33Q44a55q6678899$::4;;D<<T==d>>t?@@AA!BB.CCDmDD&bE a]<jk4mvvw8[s<Utt8msv w 3d'[(*,.02<FMV`jtW W  QWZq5_qKL~" td V : #  C[DD        ))   )      &&                 % % %          )          )))))))))))))))%    %   ));jklm7peqrswtuuvvw&ׇ6ܗ\]:0 ڟ`-wW"ڭ>A°CıEƲGȳIʴLѵV۶`gpz Z|)k2jIA;qHq*b!M0\ h Xlq6o$BtP|A5-q > 5xwtCui;6E2BBDFNPR'W[`~d~ k Q : * F+9IYiy&6FVf  v!!" ##$$)%%9&&I''Y((i))y*++,,&--6..F//V00f11v223 4455)66977I88Y99i::y;<<==&>>6??F@@VAAfBBaCCCDU bYkkkkk l%l*l1l5l9lö1H̷9OӸAXƹݹKbкUlڻ_x#ۿ '+/37;AG6xW}1x)p7=EKQW_eioYn:@Y "J5j(DP @Ud"YhXg"Zi9D\Eu9Hdd/[#ci4w}32M\+N]:lEJOVZ^ $vut)/5;t2A,DF8NVPERV[_)d~<UO f D X & <  %    {1@Yk{.>N^n~   +!!;""K##[$$k%%{&&'(()).**>++N,,^--n..~/ 0011+22;33K44[55k66{77899::.;;><<N==^>>n??~@ AABB+CCCCD[DjDDD!E]o"o(o.o4o:o@oFoLoRoYo`ofomosoyooooooooooooooooooooop pppp#p*p0p7p=pDpJpQpWp^pdpkpqpxp~ppppppppppppppppppppqq qqq!q'q.q4q;qAqHqNqUq[qbqhqoquq|qqqqqqqqqqqqqqqqqqqqqrr rrr r&r-r3r9r?rErKrQrWr^rerkrrryrrrrrrrrrrrrrrrrrrrrrrs ssss"s*s0s5s:s@sEsJsPsUsZs`sesjspsuszssssssssssssssssssssssst tttt"t(t.t4t:t@tFtLtRtXt^tdtjtptvt|ttttttttttttttttttttttuu uuuu$u*u0u6uD^ &O : o,IU E#Wh)[m Zm%\m"> JaKw;Li.")gm:{"edOa0PbAsHMSX\e(|#z-39Az2?B~DFNPR$W[`{d~V l H Z + ?  (    3Dt&6FVfv#3CS  c!!s""#$$%%&&&6''F((V))f**v+,,--#..3//C00S11c22s3345566&77688F99V::f;;v<==>>#??3@@CAASBB]CCCC+D]DDDDUbo%o+o1o7o=oCoIoOoVo]ocojopovo}oooooooooooooooooooopp ppp p'p-p4p:pApGpNpTp[paphpnpup{pppppppppppppppppppppq qqqq$q+q1q8q>qEqKqRqXq_qeqlqrqyqqqqqqqqqqqqqqqqqqqqqqr rrrr#r*r0r6r{Eq E~V0X'(Y ZReaT[` * R  5       {e#<QWcs.>N^n~  !!#""3##C$$S%%c&&s''())**.++>,,N--^..n//~01122#33344C55S66c77s889::;;.<<>==N>>^??n@@~ABBCyCCCDDDfDDD ElmJnZppqr&rsssssTttt?uuuvvvvwݗי;{U؜ LI͞a^2qƫ4T :boqs u"w$y&|0 :BŸJϹ%Tٺ/^9h}*l3kUM}LI+"r1 !|&Ym,])\B^q&D*M#Ny=Q3pBf1tq B Q RDDvvjWS"F}Y  K  .       nX5Gw HWgw"2BRbr !!""'##7$$G%%W&&g''w())**"++2,,B--R..b//r0012233'44755G66W77g88w9::;;"<<2==B>>R??b@@rAABCcCCCC.D_DDDD"mv7n+mvFq/npqjss=ttubv w 1g^.ߞpbث%fYȮ&(*, . 0:Dɷ'Lϸ/Tٹ9^ChȻMrԼ4v={/e']`;2! A1O}UJR6e:W7o3aA~KtHYIJ&|X k gZc 0 U  8  "    k)W]fv!1AQaq  !!&""6##F$$V%%f&&v'(())!**1++A,,Q--a..q//01122&33644F55V66f77v899::!;;1<<A==Q>>a??q@@ABBCCCDYDDEm8pfqrsxtuu]^;1 .xX#?BDFHJMWahq{ 3kJBrrcN]iY8C u}B60 A6yxuDv<7 l R ; + ,:JZjz'7GWg  w!!" ##$$*%%:&&J''Z((j))z*++,,'--7..G//W00g11w223 4455*66:77J88Z99j::z;<<=='>>7??G@@WAAgBBbCCDm:piqrsyt uu^`=1 /yZ%ܭ@¯BðDűFDzHɳJ˴MҵWܶahq{ JBstfQ_k[ 9 u~B6 7yxvEw<8 l R ; + -:JZjz'7GWg  w!!" ##$$*%%:&&J''Z((j))z*++,,'--7..G//W00g11w223 4455*66:77J88Z99j::z;<<=='>>7??G@@WAAgBBCCDm(pVqrshtuuMNћ+!qhH˭v/2468:=µG̶QշXܸaku[:2bwbS>sMYIq'em23&&ihe4f,'~xq \ B +  *:JZjz'7GW  g!!w""# $$%%*&&:''J((Z))j**z+,,--'..7//G00W11g22w334 5566*77:88J99Z::j;;z<==>>'??7@@GAAWBBCD !!$!b!8"G"V""#r##########$ $$$%$-$5$=$D$K$$$$$D%%%&5&f&s&&&&&&&'Z''''!(Z((()1):)C)L)U))))))!!!"""" "("0"''()Tnp!r0rss^tuuuvvEț{> l%!$cgfhG[*\?CiDD,r-/36'77G99:;6^? @rAAB@CCLDDTEEFGHIKJ/KKUV%WLMNUOOPOQQR[S TTgU&IWPFVVqWUXp-/3}6%77E99:};4<===>\?@pA?B>CCJDDREEFGH$IIJ-KKLEVVpWMNSOOPMQQRYSTTeUUIXPq-/3~6&77F99:~;5<>==>]?@qA@B?CCKDDSEEFGH%IJJ.KKLV$WWMNTOOPNQQRZS TTfUUIOXP9npqysDttulvsb2r#s$  $,4>HRjbhR??Fy$.`po5     pek{&6FVfv   !!+"";##K$$[%%k&&{'(())&**6++F,,V--f..v//0 1122+33;44K55[66k77{899::&;;6<<F==V>>f??v@@A BBCEmvw'^ 0/0/0/0/RRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRThihihihi!!R    !!!!R*T*X*Z*V*eee//////////  9jklsvvvw0֗DZ-5!+5=EʹOԺY޻cT,}5!'k<HI '8 ?qcz?xT F )    r[C)DDM vWiC?hJ[Cwz~ 18?CJQX_fmt{"-18?FJQX_cjqu| 7;DKRV]dkov} !(,37?CKOW[cgos{ "',16;@EJOTY^o{   ! & + 0 5 : ? D I N d {     # + 3 ; C K P X ` h p u }     & 6 > F K P U d i q y    ! & . 6 > P j w     % - 5 R Z b j r z    (05=EJRZ_got|$,16;CHMRZh~+Jj (,48@DLPX\dhpt|*BVr1N`z*:Rc|.=Tcz)@Rl~ $7Rbz.A\l2NS[chpu} $*06<BHNTZ`flrx~ &,28?FMT[bipw~ &-4;BIPW^elsz ")07>ELSZahov} %,3:AHOV]dkry !(/6=DKRY`gnu|     $ + 2 9 @ G N U \ c j q x  OyZlC'؇ܟ2CBDFNPR(W[`d~U!buIz|}}}T}7LIntoIterAA˿[CLMap6듖祻 ˿H[ wwRcVecMutzAkLH[L[ 7L [CL 6듖祻 H  H  7S nڃ7     ߐѳ6 6듖祻YA@ĩB HBCompilerFallbackר䍁y[ [C   6듖祻  H [   ConcatStreamsHelper streams āˁ H[ [ 7   [6  [  H[ [ 7   I   B   J   J ꗑ  [C   6듖祻  H [   ConcatTreesHelper trees ؂7H[ [ 7L ˿[6L [  H  6   6Aɱ  6S 6L 6   6   6   6   6L ˿2 6듖祻   RcVecIntoIterAkCL2  5     H    ԃЅM    Z  H [    H   ZЀ3  3   LLL22Flatten2A1Þř׫ Z Ѐ ЀH   H  ZH   H  H      888M383LFo{څڅ    ޓȭ **UniqueRcUninit* &*layout_for_value&*&ͯ۴څF 6듖祻       ޓȭ BFuse4˹Ѿ   FlattenCompat1 frontiter1backiter1ԓ  optIʢۋ*L    handle X A XdzӟگʊIʢۋ*B AIғʃɳLޓȭB AIғʃɳBZ888M383F ''RawVec* +cap,ݻFmnBC   C   C SC LC   C L˿C   D [6LL[ H  D n6LSnڃHnLnڃD [6LL[˿ H  ˿D [6B [  H[B[ DZ[CLZH  H ؒD [6LL[˿ H  ˿DЀ[CLЀH  H ǓD[CLH  H D D BD  D  D  D CЀǓCC  C  CZؒC  C  CLH C  H  CLؒH CL H  CLǓH CL H  C  H  @L@B6  [  H  6LSnڃH6LL[˿ H 6LL[ H 6B [  H6LL[˿ H 6L [  H  3 L C IS I  EޓȭE C ISSISOBLexErrorAAذLLqsuk}wy(څ*څFH rršƫ@ ՙж E AllocError 񧱷 F*څFH E ''RcBox'strong&'weak&'value&ҾUڅ څ(څ'څF*څF*څFH*څFHƞ*څF*څF:LF9 FCFS FI FB B B B BB BBZB B BЀm:FJCLKJ3 . ʁ;:`F*څF:LF8LF@L@B@B07*1$+%  18+2%,&  5:899,3&- '!6 A;9::-4'.!(" B3;.5(/")# =4</6)0#*$ 7 >;+QYn$crate::panic::unreachable_2015p 1 panic_internalsKJ;+0֏Rcm4M;+(c k.0;+⹗E92,h4\;+X+}?f,;+y<Ϳ/kd2;+֜,a'a4;+ά/+_. ;+;+⹾)a 0@(;+ Gebr2U}-f;+ 5;?!f;+⹀6ek.;+?SHi*-;+⹥ ~V~g2Z;+EoՐ%d(;+e%[Bsb0;+#[JWu1`.;+3F0]6;+D 5 7@(;+"X %@;+Qx;Sc ;+tՋ_]Tl8;+f.1.I\F%i4;+LP:Kg2;+⹨ѥtKe,C;+QRb4p;+ahˊ`4;+CT^4;+⹖bIti%*;+frHb;+x %-;+⹂-Z<̌|x$%;+9Ǐl,;+:ʠR2j:;+⹋YXg.;+.A>e(";+⹎{IЛc@O;+⹋Ra.|;+.xt5ZR^(;+~cV5h44;+⹍Ejr_;+⹆3nƈm*, ;+j𛏥zj,Y ;+:<:h4 ;+H{>ݳBe4 ;+⹅iUm2c( ;+7:aYa* ;+U;k_,: ;+tdi\*g ;+⹶ꕩqt1X;+⹜$;HP\b ZNRFJ>B6~:.v2ޕ&nڔ*|֕fҔ"s͕^kŕVƘ˚Wǡn* lqAܟm@DН@vUI(``c/ǞXƜږ6ʖܘq%G&^\a1̟]040כrؗڙfE֠}9P |PSڜHhODHT  bK{r"lY%׸F1t~g6me'd#n_z3I X_ |)nD ~Sb-Xbt< ET/z t'y>ymGGMro`5̯=^<&_A7 3nAՏf${9XWX Bo%G KZLʮ# LX9c d(&P@95.h X$qH& `sV!'1+Ԇ= + oٲ, KO.5G@z/aUWI.D{ZЋ/U`!\2Ȕi5L 6`@Fex7R186K S&:DT]m~;@?k= /_?4:@?mb@pn0VI@!qC`x5CnEh!El/ 3AX^aBȻiILJ;/.KqyMNFNT]9PL7RQw5RzfS?6*+PTf9#qi$U0(kS;Yy<@\'27u\CJaepchP];sfX_91fx\syT{"x$|dla]}i(~X ¸~pY $VU+F#pJ;ɰ=̚1[R}DNj_3 Ɣq% *lr$0 MݰHz{}Pql@W^~L-4O%-cŸ V|z$[ ϒúxv梻W㼴K6K+i Pпk _H1A(r^ 6`z;{AĽ 6ϝfÌ3(iX[=۫Udl4+pCøVi# )-kB˹4S9KqH#}͜U{85\8V-p&cY*Lc Ň p'/'=4+)Ԑ2m,R, B8-bЌr -܄A]+ތ6p墘J ӰW䵟8{_BhH&, ?gwޥſA,Kh$ȌDo%XBD1NlV2!<6?#QtCF"sYc )4h7~8w s河:jS4 , ׌oMҟ5-Y]_Y6t b@)D Q$ks^d*dNM%AD] KC .ٸ:rQ7=}omy|G?=5n1we:U}jN_[U]'ܔ&R0lKF 1UlV!v Q tQ #Y/1 ys)uF&jsXk']"g # +X+1R Ǫa/{/e W1ա e$2}srJ3zq4-W5 X|z>5q&6~261ez3]9mL9mGFF@cZ#9Uhb~~*խ 6T7ŽĤ:I Ms9Cv )b턂 xaKu^-N0+:]ѓHBͲ_J0J5sQݨE3- kALj1dydʶ]\YrM1.Jv>~E\]t; Fm :-b؎O"M&4@#YM'EY* I'ؚqev9# Dee]im>D{M0T5֚1Sdлa<]$pKn\Kݎ)4Q Q\}9MF3UeKAڮQh!M;}_+9]\K e2|b{yn8힉^=~KԱ)m#L0eV|6+RZd|u}c#w CQsCwő|@‰TUI!iZ0Ɖu%Vȥ,6ˁ(jaAl`|<ҍR[hҝO08:ե?UrYTj |u+q<ǡ?F¸MAɶs_ R(1 ݹu<|,ߩSOGϿQ\E)gj.ޓDuC{Kk1O6METt`vwrg啃RUٕO?^_jdQs,SgYd!q6LL s!g1#o?rblvgyaaF~3Boa~5{gu+0&P4oSb1JUyb ^tM_ a4z ~umf?t&Jңd6o=f];dv)G^2~EMr,5\s$<9v/"bd$j/nZf%cO&mP'z=\((rb<9'^F$3s*>2W$B!k+`Y&>z0*t(} 1In24<%3*ɍF3Ƌf Q5BBuz4C/a,v7* 8UX'9b+~0j9Q1F-=:;﵄AT !?D>IRJEBۃ_$MGXIB.N1 *OrRiNjANbٌQN=׿~uSB{^7_NS9o Q Ү`W2ٴZXȽY>*#[" +~[]63b[Z\zg_wRh >_~y_o|(as?"J7Jb'tא9c6c\eOЄ+e:?e'~h/Φ i3w9Z5gJiokg 2lp@zmZ̄)G{mYE@oJY:lZ@rp |%rnO%Oct;-/ub,;bvZFb{ƒL|kM9}fÂjCc{V/c{Sם;󬓀2>FnFFc>2ςVwBe%3wRL"CʇV`WѾ _y,jrJ]W`;Œ57/aͰ6?6 pB4"# 6[$RғB*Ŗ鲄ON.N*Ǜ.Q.joTh!K5[ )ޫziO'JpMc2s=v:?'Y8>D)J~9=g5v@v'm"5yBbn/Zud ;*ATA.Oq&$O*{~v+m6C֭&/6zAg>kuz6ޖ0JvOyQ fS_r#"*hm|h^m/F<";v􈻰&|1Yki3y `Xѽ.)%Z!YwsŶ<rĎqOw:BƢMB3.z/ι b a]^Gک\@ jG'(:$O@Ϫ;#Kp<Т82䙫Ң)&H@x^Ul”ZCOJ|B6ʜ r$DB` EP C=~܊3*ۖziݼ{P_iT%L?[}䆣*2K6v]uIT2xچP>R4b^2 +dRQ?Ȗc7"^QX%>E *Y$r*$x3j`w6z+rZ-8NTF*0_&FʃÏ1U3Bov\PmnL0s1x1""քJyp׹~{YBT")| 1{8¾?HhN@ʽS$6B& v[ CI[ kq939 /`OL Rj 'M-{k{|C/ Կ"  l 79 gg '[ؓu$![pѣoAlX}7(Ǔl/g 7)[\+ s!|5!#p7etYTc^m,";1%S(5T`&xd'Wsmp) _*l_!,){ R .kȶ0= E1c!2G:3]B5WC;:6B; 7{gnX8+=I6{,rʎ:ôlWK;U><a=qS5W>s^VfC>yt]9RH4赥Rלq,RU`T(SVs)dWU78lVko[/scj[[8_=Sm`=9a׊'B'aY}EdoJ[g[eB.d|Jr9XfcioO e'i`˧ykb7prJqS;t:5[ptjHctv/~1wAFmwk4BB8vmC}|M"vK}$r9~HqVnIe=]}} sǿI^kVO8C}~j_PIOG>[X21Ӈ^?Dk7T:-|gT&FCLvX{ FmB"$8_H;3)Z vo—QdQu/+D E9*|G-f%/)| זǦ: 7c`{i:JV]}nۤ '8/h3HVOWrx~zScѫGYraђop CJOKXGӭc`g{P j-//R~o}դU ~춛ٜq{ iw6ik/0sYG\7 _+bVڢ4u.ơV;~u}wS'[5{{${87=Qɋ2o{PC /NnHl?+f`7&sTDhz+a{-P6`(KcCEO"鞵?Eۂ3mKg >]Nxx*%1CRg>ץd#~6d<) vkAmPz> J.%N(;sDGֱR& :C{%M _]%:O*]p/ Ae'+Ձ#1%kwp2X)S"P6}wfmocGc,%e,80pQm@0`S] UrndZKOF]a8 . \jHJ(TzeB i}HbC9U0 a,D%yw[c/^2P?KJ4hX^~yIe>YTIKC ]t9Q dQO`L3eMdM +epq^J^*3@5{FcO. q2'j%J]M`7*.J}*i(T9Y93|)Cq9h`}GsY#1}UTkDo_=& ` 3=D01Z9p'c=Y)[bRbRRZtBCFQa0nRxVTU2[@.#l,eCV;2p*K]nG^n /z-1F]lh`G6 Klq >Pd):puYo='X0)h42: ~s|WNC FunYr_YOs7% 0^3Q.#QSJP2F6N1X`!mADUF3FM*KwA{mPCMhOD/7ldVs)5`L-Z8} @m#`pX6spIa[lB4(Dj)I( |s 5L|a.cN |^Y.gU ?<$PjP1fz>%N%Ce xqq!6&9$$a/NIrN,"!pXcXc { ck]hF`9x,h%BOgNloK1?z^=W}^eWI]1np6<3}?; ?%ok= '[ _1%kwp2X)S"P6[C:\Users\olexa\.cargo\registry\src\index.crates.io-6f17d22bba15001f\quote-1.0.37\src/lib.rs 4_-/e94eJ HN} e=` kon O+!KQQN&OMKPQP.GQ   PPONM-17": TM&. <   PEP9<>8  %K# $.$ Q* RO a   MWQXY .2 NOYS+ +WOQ   VQ? q S 9   UM' YUUUVU YS5 L   ! XX 2 %( ), ?+IUC&& (+8C" @,  + WXOU  0( "!  ) WSC XSL 4 C% WO7 .0>7& SX< 4 C6H&  $ XNQ  ,0 VUYVC  ,2 I @  ,P  : S / 6 T@ . 0$@B  - WY J / V). 5 ;9+/2#,FL&5B L.   2 ?@) <@9 @** 0@2 X"   YUU S %(?", -P L0/ VNVU:   VYA   WY+ K D4+('D1%84 WB Z$6c XX2 !' !_2 ?$@c7 <*@_9 -@c88 0(@c@ M;!.> .> G (;=;=;=4)4$&J4'(': O0QCNFOML2%EEEEEEE /6666666666666666IONQ'HOCM8LPHN %3###%### ,(1A###%### ,)// U ,1// c ,(Q)G'N'IR:JLLNM.R: OO$O'IR:R3: PPMNH7(P'K:M9N,K0SZ'IR:RH [[['IR:RAH \\T76\W:YZ:LPMP3&I6+'7( +'3( +'1( 553453637624583644:252222622558663693636436,O:#DA#2X(E7/78 7/38 7/18 'D'D'B'C'D'B(E'B(F(E'A'C'D(G'B(E(C)C)I'A(D(A'A(A'A(E(A'A(D(D'G(E(E'B(E(H(B)E(B)E'C'B(E8^'I/S--./ 0XJ;B]p[C:\Users\olexa\.cargo\registry\src\index.crates.io-6f17d22bba15001f\quote-1.0.37\src\ext.rs Wl>GjKO`;y9ʖ4apCn+CQ,/<& / 8( <3 !6 ) /N 9 /IC< && /) # 9 9$# < #" "#kBh+fC:\Users\olexa\.cargo\registry\src\index.crates.io-6f17d22bba15001f\quote-1.0.37\src\ident_fragment.rs >l!)Y-$~yhCRgX :O0+5:3B% 7%*;%;%*;%%;#2%* %)%;QO& (G/ 2 0g* eaC:\Users\olexa\.cargo\registry\src\index.crates.io-6f17d22bba15001f\quote-1.0.37\src\to_tokens.rs I9M7eHˆEos7OA!1N96I I/, !# 3=OB/-%=OB. 44$84$C4$14$04$+4 ! 4.4)44454545464744454545464745454249<40404%4%4%4%4% 410 V!a-mT_C:\Users\olexa\.cargo\registry\src\index.crates.io-6f17d22bba15001f\quote-1.0.37\src\runtime.rs 72n.GmԱ%/1@z~:6<-#1 3N1[&<I<7*7OONO-[9M16 .CK%MH1* @$ 7N*%?T@< X@< 3(@# 6(@# ;,@# N@% OH QOI.%./.4" ,-'7;-+ #, &) #'+ (&+ X1.2C"FCF9F!=4 ' 7")K-A)3$M$U U)3$K47$M 01? @@"" :1?? @@""@"" D1??? @@""@""@"" ,6,86*.0:060,6,26B*4.*.*6.*440666,6<.0:0:.,638G*N954.! P=LO:1)B;'M;$S;'S;'O;%X$vnW6#b _C:\Users\olexa\.cargo\registry\src\index.crates.io-6f17d22bba15001f\quote-1.0.37\src\spanned.rs ,RbZP8s52#&K%+--;$*.+'!/8 |q<㷯P^C:\Users\olexa\.cargo\registry\src\index.crates.io-6f17d22bba15001f\quote-1.0.37\src\format.rs ŕT^iD*Fx8g  ݆%0  PO"!,22.+ PCN&N," PL*Q=+J7 4. 6 L +3%&?. /"/ 0#3#3#%- #%-!%%3 6CD%O=DK?h /<=?` }a*d3/50_x86_64-pc-windows-msvcl+./:,~ -475e6db5c1557a5a;+ ; 1             B)HRCCrust-end-file