rust#rustc 1.54.0 (a178d0322 2021-07-26)stdh-2420485b9e5ef5e1core-5b228734afae15eecompiler_builtinsݘ)-d6c7a399d95d173frustc_std_workspace_core汷딹h-8063eea38dcc5e62allocųǝó-379cc252b6943a79libc޴-544ecdbd6cda3c58unwind-f78aa99d613a55bccfg_ifҺ-53ee54cd7fed2c57 hashbrownڢɍ-491902d6cb3e76dfrustc_std_workspace_alloc۱3-61834e0981b8c367rustc_demangle׿k-b56b9042c12b6535 std_detect˾畮-fb36534c113d2209 addr2line-d05c5c3c56004b7bgimliꏳȐ-42d74d2097528b38objectڏف-6fb405869b015fde miniz_oxideگΦݪ-087191a88bdaa22dadler噍ΛA-9981842c02975178 panic_unwind͕l-785e3cb61c4b1960 proc_macro-48a8f96062ed4274 proc_macro2Ɠጽ-fe09e677fd6d161d unicode_xid߽-56baa69851702f2bquoteТܲ-f482db82cfc8f6e4?Tn<ݐJ?T 9jstd?Tk proc_macro?T8nS proc_macro2?T~!H} unicode_xid?T5quote?Tr~ (macros?To4@  ast_struct?TѪlaast_enum?TE/2*Tast_enum_of_structs?TYcӇo[ast_enum_of_structs_impl?T+(́ gast_enum_from_struct?T$5 Аgenerate_to_tokens?Td:strip_attrs_pub?T /check_keyword_matches?Tp\,group?TG)$?TSX\?T]M>&?T^y˗?T@ᛇw?T Pg?T׍ ?T+"q?TdǺ7?Tke ?Ts' ?Td!|| ?Th1W ?T5g, ?T≠uRS?Thk.a?T3Parens?TrՍ T!'a?T +bB7!token?T`и!content?TIAӆ%x^Braces?TG˓%'a?TfC%token?TM$%content?TvpY MBrackets?Tk`^])'a?T)token?TT )content?T]] Group?TF 7ry-'a?TR`*-token?T<L-content?Ti_O parse_parens?T k@1'a?T`.YW֠1?TZWC?T^p׉C ?TSdG0~C ?T&B9xC ?TTagWC ?T-ZC ?T؜!C?TJJBHC?TK_q `C?T .e⬠C?Tz(r3iC?Ti|qAC?Tѧ C?T~%K:xC?Th-C?T0)k)C?T5C?T׭C?T*+sC?T ~C?Tg%C?TXC?T<]n6vC?T%.LGh]C?TBw qC ?T4D6޺C!?Te C"?TX:>C#?T{~T+C$?TTU׸aC%?T}*sC&?T(MֿC'?Tr NŢC(?Tzqb:|C)?TwyC*?T &,C+?Tr>ZC,?TYY7*C-?T YEC.?T^9s C/?TٽmULC0?TYuWC1?T|ȋӍC2?T(m[Q C3?Tq9aC4?TF=C5?Tl >dC6?Tpz93kC7?Tm9r]C8?T j,C9?T|íi`C:?T@]>:ZG>C;?T"n0C<?TOkSC=?T̅:C>?Tb_3klC??T VTNC@?Ts{_CA?TWp);gyCB?Tˡ#B~CC?T u-CD?T8V-$)ZCE?TN>\|CF?TA{v&5CG?T=܇ CH?T0wCI?Tl00CJ?TaLnCK?Tm$W*!PCL?TO.CM?TAICN?T~ꍓ>display?T-#+ ?TǏ: ?Tx_@? ?TX ?TIߜ ?THn|ƥ?T!Fq?T CR?T1.E?TV9G?T(j?TC\/?Tpo0ܓ?T]Seh?TԽ{hkeyword?T=*RD ?Tax peek_keyword?T2Fpunct?T͛ {OS?Tj/ ?TNC punct_helper?T C"  ?T ?TXsk peek_punct?T$JYCprinting?TO2?T\Bpf޼)?Tj*ў_?T@:?T4)v?T/?T=~ԇ.)?TQ'>?T.E?T[Io26 ?TLFJ ?T^b' ?T05n\ ?TđmD ?T5m Co?Tz?TU?TXv+%?TSj6%G?T3 ?T3\ o0?T~m[50?TNP2o?TOt'D?T*.?Tsu 7$punct?TVK#F\]keyword?TSّ/fdelim?T#ib9F?Teident?T)dUC?TÅl?T v<`.?T}u\?Tb3\g?T{yz)?T6xE[0?T:)3ʄ?T~(?TOZ ?T]' < ?T) ?T߶r] ?TGMcfO ?TuqDs'?TjeO?T`u?Tr>I?T\_x?T L?T-vh'X?TG?TVV3*F?T 錴K?T>z6t?T^BIIdent?T6+-haccept_as_ident?T#Pʜ?TGwͤ/parse?T;/P?T{S9?T adpeek?TC(˘Odisplay?T3:Ԗiident_from_token?T_*UOM?TB xfrom?T}Z.֢xid_ok?T%?Tc% ]?Ti?T9d`attr?T|(?Tcq?TwQ?T3haY\^?T쑯8@$2?T>hj?T MC|?T"6 ߖa?Tn8xܴɫ?TXHshs ?Tګ0:ď ?T#V蝆 ?T@$ ?TH ?T©`E?T~Hvl?T0Ʀ?T.4Ĥdt?T|Q؍b?TS?T/?Tvvx`5?T|QSH?TJf5?Tz̶2p?Tׁ|T?Tm0[ΰ_ parse_meta?T 9#outer?Ts4 oinner?T9H[?T t`'a?T rET?Tq<#tRet?TlXouter?T:is_outer?TXinner?T _~@is_inner?TNxu6Pparsing?T ÿ}5d?TG6v;?Txfw?T(X?T?TZ' ?TQH?TS4|N_gǰ?TL  ?T䐻 ( ?T KH~ ?Tq\x ?T٩<C ?Tp ?TU6  parse_inner?TN{{single_parse_inner?T!single_parse_outer?T[1}parse_meta_path?T'&?TB A$m\parse?TWUg?TDRuparse?TYbMRH?T`g$parse?T*ROs?TN_4C#Oparse?TBMflP+parse_meta_after_path?T&Fq'tparse_meta_list_after_path?TLJ)M parse_meta_name_value_after_path?Tú=spprinting?Tq85g?T FqBj_?T;?T'JO?TӢHns?T`"t^?T0k5?TJKSf?T! to_tokens?Tʩh67?Tdl?T:Zˣo to_tokens?T*-s4??TbL ?Tt to_tokens?TR?T 2q&?T9FeDַ?T9ʹ?T2@O:aK?T׼)R ?TB ?T*;h` ?T_mB ?TbR ?TYZ%?T]@?TO6c~F?TUxwL?T6/|3?Th0sD6?TWS?TQ 1?Ts!,DV?Tzs?T=$?T:Gp?TA )~bigint?Tb+?TZ] ?TO H,?T8q?T Q5?Tn ' Y?Ty+ז?Tܷ cBigInt?TUxI Qdigits?T͵Qy?TY0mnew?Tqw& to_string?TbfKreserve_two_digits?Tp?TPH add_assign?T:?Tp3S$^ mul_assign?TQs&1data?Tƪa?T.@t?T̰zIAw?T1?TYQ]^?T xTViter?TIr՛mCiter_mut?T:ͣQ.len?Tuis_empty?T-U%l?TEk…Item?Tw{jg~IntoIter?TaN into_iter?T\?T\'a?TG_ƚ@Item?Ti31cHlIntoIter?TLHҟ3" into_iter?TIuY?TW/ۈm'a?Tqq{Item?T"|j[|qPIntoIter?TUG5/f into_iter?TM_parsing?TDоNg'?TΏ8F}m?TŁj7?T G|h??Tf5j?T]'ҽ?T{@F?Tg?T{2mR?T@NnE ?TI*# ?TB ?Ty/S ?Tl\ ?T$|]?T*t?TO[+?T|fn?T*lparse?TLgs̵?T{KѬparse?TBת?TOD:parse?T⦆!B parse_braced?TqO<?TI) xB parse_named?Th ~ parse_unnamed?T^"z?TLΧ|parse?TՎ}B3^?T8? parse_pub?TUA) parse_crate?T\ztprinting?T(C ]?T0Z|?Tf?TecT,?Tr+B?T S''?T#K d*?T 3?TY{5 ?TBu- ?TaAڧ( ?Tbfp ?T-M, ?T34Ad ?T[Y?TVspO to_tokens?Tj.,׆a?TP;f1  to_tokens?TnBj?TY;?TN i, to_tokens?T¼B$?Tbm?TX]_ to_tokens?T ?TNpIo to_tokens?T!U?Tvp to_tokens?TbR ?TQ-| to_tokens?T~ad n?TӽPm?TFG?T|J|?Tɛ?TJǡKpG?TJ&‹?T@68 ?To-%B!?T:f`l~"?T6`J>#?Teai9$?T ֧og;%?TVmY<&?Tze?d'?Tu*Kqh(?T%ɣ)?TP?H9*?T CjU+?TH_V5,?T C5ͻ-?Tk5d_.?Ts0b{ /?THEGx0?T5Mn1?Tj\@~2?T9IPBH3?TG".sc4?T25?T>ܗexpr?Tj?AF?Tϓ ?T12<?T {$[q??TO, Ͷ?T9'?T6#yτ?T`[M?TiUޔ,"?T `gY{U ?TKX5\C` ?T*h ?TC{ ?TrGð3W ?TOKg?T ?TSɖ?T‘?Td^?Tchv}Μ8?T=m¼ C?TBD\t?Tu#?TqKp?T(Xy?Tb7M ?T\RDgd?TA7^?TAD?TXNG?TѻeD?T1n7 \?T`d9A?T<1from?T7j.yD_?T2pΒfrom?TZp^2?Tf"from?T[(. ?T:%|9?T Eeq?TuO uͺ?T1сhash?TH=KH?Tft Ye9?T&pRqfmt?TF&ospan?T u0?TF_from?T&` ?TC ?T4vx6eq?T]: ?T~W!hash?T͸^NH?Tat+:жIBitAnd?T+q?T}CFShift?TlKN?Tݸ ] Arithmetic?TP'H?T?TC__K_??Tv@?T^AA?TGMDYٰB?TD2C?T> ZTD?TBu`Б:E?Tz6 fwF?Tg[.hG?TDHW^}&H?T1A7tI?T]$J?T 6BK?T8CL?TNf7OM?T(xFN?Tt|fO?Tg_+:CP?T?2(Q?T~Wl?T8gtm?TVTRwn?TNFno?TC.qSp?TO^ѹq?TK r?T6TC8s?TͱN|t?ToEsu?T_v?T-WG :w?TbNx?TuY`y?T>j0z?TU0$?{?TE`|?TFÞ>-^}?T} }ζ~?TBej?TBf: ?T)3?T]?Ta#Ŵ!?TGVR 2?T58?T5g~5?TݣN[2B?T{4,?T*٢?Tuv?Tvl?T63?TCו'o?Tz̔]{?TG`?T\#x?TB +]?TG5DT?T S)GVw?T,($h?T?T\(>?T+-Cvq?T[\generics?T{aWG?T@Kυe?TsPwC?T՟?TXfS?TU;&?T[8?Ta ?TP?T:8 ?T{C ?T~\?T?1%AE|default?TǭO'W?T/? b type_params?Te/Ktype_params_mut?T x lifetimes?Ty lifetimes_mut?T] u-ʹC const_params?TkԦ_j@const_params_mut?TK"make_where_clause?TshRl6 ?T4 TypeParams?T~{mB?TZmR'a?T k0?T4?T҃6C~'a?TZItem?T next?Tgv TypeParamsMut?Tl?T&drU='a?TI& 0?TS/8F?TP7nq_'a?TOTItem?TKZ%next?TRa\NV Lifetimes?TaS3*?TW6|O'a?T:kh "0?TL|?T&-89'a?T5:K2LItem?T(¥7next?T /ׂq LifetimesMut?TlQw Lj?T,)MR{'a?T в0?TyŃx?TFN~,Ql'a?T?`ی QItem?TY%_6next?T4߾QR ConstParams?Tcj .?Tzc]0'a?TGĚ0?TM ?Tx(`'a?T"Item?Tmn}wnext?TF\ConstParamsMut?TSt.V?Tt'a?Tؠl¨0?Tdefault?T׍y89B ?TXU"new?T\iA ?T^(Dmfrom?Trh8parsing?TR?g?T w;n;?T6ިi-?T`4Ծ?TgL9?Tg\\g?TnI??TA'Уҡ ?TUe_J=?T1x ?Tg ?T_# ^ ?Th_kparse?T(ɀz ?Tzgwparse?T]k2 ?T  tparse?Tzr0$B\ ?TErparse?TW%~Lprinting?T{c v)?T+Zh?TB"U?T7=l?T>R?T>!7?Tt0(?T1c*b?Try?TC;5 ?Tf9cog+ ?T2!z+ ?TDg| ?T.)x ?T= H?T壴uH2?Tjӥ(?T΍t2]?TV[ to_tokens?T}‡?T6:)'a?TU to_tokens?Tzy$T?T~0'a?TDEA~:7  to_tokens?Tܚ= N?TUA'a?TiS to_tokens?TyMP~?T*%WY^D to_tokens?Tb?TS"Uxq to_tokens?T'G?T< to_tokens?TK|X?Ts to_tokens?T9j?TuV?T`~GQ to_tokens?TqZPf3 ?T @`eW to_tokens?TsnZx ?T얬p to_tokens?T7rJ/Q< ?TVwv to_tokens?Tm[< ?TLSJwM to_tokens?TuF  ?T21 to_tokens?T> p?T:`0f(?THa?T܃5Kӽ?TyM?TγO?T& ?T!L<+9I?T4$i?To7ex (?T 8"?TOaGM?T\~|D?TX3[?T-qi?Txh@?Tq&r|?Tէ2?TkA)310L_?TQ?T.-t?Tc:ӳ̦?TJ%xą?T*TA?T[d?TF[.%C?TN79 ?TL?Tg;K$?T4?T)dFf ?T>[m?Tu,?Tt[z2?T H?TEYL<?TTT?Tℋy?T; W?Tn,UL'?Ti.}"?T7GUE?T^M'??TX7`'Fad?Tzu?T`(2Q?Tj4' ?T.?T bc?TAv9?T84PV?TѼYC0J?TwHO#?T #&lifetime?T?TITaY?Ty4?TS@?Tr??TwA?T_\?T>?TL"r?T`u̷! ?Ti⃃] ?T2݅u[] ?TNiP ?T6Q ?Tes`?X?Tu~E{>?TˡyN?T*}?Tcb?T ?Tb8ǡ?T2=E7[?Thg2Fة?T?\3?TVvZ?T:s6z!?TLy6,?TogvX.xLifetime?T68:  apostrophe?T7T? ident?T8q#?TX8. new?TC9QV span?T+. set_span?T 6hi?T]6 fmt?TGتN?T9T clone?T/C ?TVVs/ eq?TrW]?T3.ܪ?T{>83  partial_cmp?TsG_q1?T]9BC cmp?T.c.?Tw%.( hash?Tft H?TEJZpcLifetime?T9 parsing?TZrT ?TĶDVo ?TLi5 ?Ty{dU| ?Tߙܢ ?Tr-ѯf ?T ]"& ?T7|7Y  ?T@2Ph ?TBU  ?TҚظ~)  ?TZ՞wz6t ?TJR9] ?Tq=F  ?T= ^` ?Txt ?Tء)Ow ?TLD0i8 ?TuiP ?T[ Uݺ ?T e ]E}  ?T !?TU "?TS. #?TCF- $?Tu0Cc %?TTUni4 &?TQ۽] '?T>he (?Te$J o )?TX:~] *?Th  +?TU> ,?TҦ -?Tߦ+E .?Ti҉r LitRepr?TU 5 token?T)t@ suffix?TVDŽK  LitIntRepr?TP token?T$ا digits?TIH.0 suffix?T-kFG&?  LitFloatRepr?T+KQ token?T^c7A@ digits?T,$ȫ suffix?T㬷xx ?T͎" new?TM^b value?THH22 parse?Tmӡ T?T9(  parse_with?T2JL F?Td y ?T ! ?TM/f$ ?TK_ respan_token_stream?TM@P ?TۨnPv? respan_token_tree?T,ެ span?Tj7  set_span?Ts;u suffix?TV{$/# ?TKKE5N new?T{ value?TQf1 span?T.s+ׂ set_span?TQF> suffix?Th)U]( ?TӅFĶ new?T ?Lʼnsg value?TIb)& span?TĄ set_span?T+dv~ suffix?Tmr ?T,9,w- new?Ta value?TK span?T+\@ok set_span?TNvu  ?Tf=w fmt?T%N3í  ?T8Q new?T*8P value?TnӤc@  span?Tۄ* set_span?T[YI2  ?T.w x clone?TKS  ?TPjk  clone?TMNgUD  ?TފU_@Fe clone?TQ^v٨ lit_extra_traits?T.982 LitBool?TNl Lit?TN| - parsing?Ta֊cd ?T*ɮ ?T@|{0: ?T0%K ?TL{ ?TKAr ?TO`A- ?T_dTsӧ ?TJ.1 ?T=:)  ?TIwqk3  ?TpvY  ?TR}  ?T] *  ?T/sĨ ?TzL\ ?T} 8 ?TT.#.x ?Tcș~Mi parse?T4f] ?TI/L! parse_negative_lit?TY鬨 ?TF2L[T parse?TAQh ?TD&@l parse?Ths&l ?T l52 parse?TFY& ?To< parse?T~NR ?Tw?Z parse?T6 /u@ ?Tհ|ї?(  parse?Tf: ?TO{GJ parse?Te,7}_ printing?T1 ?T+bHD ?TfbF# ?To{SV& ?TKU@FЩ ?TK  ?T-   ?Twܖ ?T+}  to_tokens?TvB ?T:?  to_tokens?T\P^Z| ?Tlw?V  to_tokens?TP4=Y ?T қ  to_tokens?T+f D ?T(  to_tokens?Tvr|ŷ! ?T3>  to_tokens?T smq ?T$\  to_tokens?T^4R* value?TP]f) ?TߦYз ?TW>Yo ?T ?To,;Ċh  ?T&z4. ?TePl`" ?T̗2n  ?TaBѲ60  ?T]gд  ?T)^^>  ?Tg3-[  ?TMĔ ?Tk/KSX ?TYxnȩ ?Tlj ?TM} new?T؄ C; suffix?T5F span?T?=H! set_span?T{7 byte?Tz~O S?T:`=@zl next_chr?Tv={I  parse_lit_str?TD쫕 parse_lit_str_cooked?TF parse_lit_str_raw?TFd7< parse_lit_byte_str?TpYHQ k parse_lit_byte_str_cooked?TvNwrS parse_lit_byte_str_raw?TPTW5W parse_lit_byte?T(TѶ  parse_lit_char?T[Ñmp  backslash_x?TnKH S?TXVũM-  backslash_u?T}{  parse_lit_int?TĥI parse_lit_float?T>+G )  ?TRK!G[  to_literal?Tߋ ?TwD9 ?TGt'h ?Tq ?TVd|m?T؂ǜ?Z??Tܙ?TR}h?TXcw?TV+?TVL?T Ʌe9?Tp{VH?Tk_Rr?T'x0J?TL T?TB?TZ ?T ;?T%xRyUr?T4\s ?Tc$ޠ?TИc?TlI?TJ}b??T3(?T&@r?TH̆ ?TځjD?Tf?T@5ϧn~?T+ !`Y?Tٶ$7>Wmac?T _p r] ?T]QfUh ?To[ ?T4NX ?T}Vqp ?TYV:J ?T؇7j ?TtC, o ?Tq_[ ?T2Qc  ?T^Z[N  ?TT  ?TL'lyf  ?T  ?Tݎ@ͦY ?TCQq? ?TwG@ ?TFp~\T{ ?TzIR ?T|&aZ ?Tls*s ?T`T} ?Tڇ0a3 ?T'^! ?T|d;ޔ ?Td3Jq5a ?T8CT ?Tшd ?T 2 * ?T.QǗo ?TR9! ?T)52 V ?T3KnRv疰  ?T)LI, !?TR*rH "?TM? #?T$ㄒx $?T<ݪ %?T^G.\ &?T)v '?TP_B delimiter_span_close?TI / ?T7M  parse_body?T 4!*L T?Tbd parse_body_with?T5QY F?T B`8 parse_delimiter?Tq}dHo ?T,%j parsing?T~W!\ ?T) ?TUA[ѿP ?TȾT ?T)k#9 ?Tj :n' ?T7fT ?T5!: ?T4^ ?TsXw  ?TZ*6@  ?T@+IW ?T6M+ parse?Tdn !L printing?TI/wB ?Tzw% ?TW/0 ?T}F7 ?TL&s+e ?T$~Rw ?TfC HX" ?T"̝ ?T?z6Xgw  to_tokens?Tdi ?TD1sI# ?T {{O F ?TH]m^?T;=?T S8x?T*{oI8?Ta_D*W?TӚ?TL}Ed?T+j"Ӽiderive?T #GP ?Tat - ?T J >d ?Tty ?T}`~  parsing?T6)edR ?Tt` ?TJ  ?T,QVRۥ ?TMV$zM ?T-߬ xe ?Tae ?TO/ ?Tn_Sl_ ?T ֗=l;  ?T9 &  ?T1 s ?Tܥ ` parse?Tǫ~  data_struct?TÑpJ   data_enum?T^[8  data_union?TD?lk printing?TyjeM ?TQk&+ ?T'fF܍ ?Tڀj ?T~ߓIp9 ?TR ?T/K " ?T5k}y- ?T|$ ?T+z'  ?T)=B"'  ?T:۝,  ?TKY{2Z   ?TvU9 "z ?TP7ԗ  to_tokens?Tm_a ?TL/%?T1,5nSS?TYƺsJ3e?THWȴӲ+?TmN(?T̃c+?TVZ*z?T?T.=i?T:^[4?Tұc8RIH?TEp?ToUI3?T H6 3?TKš̰?T'YK5?T&Yop?T+l0w parsing?T ?TBJ ?Th] ?T,"H ?Tx4$j/g ?Tq53zX ?TIRj ?THB= ?Tg(I ?T 8  ?T+  ?T  parse_binop?T bХ ?TF_ parse?T~>z̉ ?T6 BY parse?T{ printing?TU ?T*[E ?Tx7 ?T*(x ?T;I ?TVx ?TMo ta ?Tl>u  ?T(/R  to_tokens?TJ]o^ ?T9̣">  to_tokens?TL^?TǗʓq?TyGr GV<?T1(]?TFzUߑ7?TT4h0j?T溥6J?TqsFty?Tٴbža ?TyB5 ?Txw󸶁 ?Teɼ ?T̂G@ ?T]§6hl ?T4\ ?TW*  parsing?T0j ?TPr1 ?T\m ?T'+Q9 ?TLڎh ?TB ?To( ?T J ?T )z ?T]`q  ?TI9}T  ?T{c  ?T$2'P,  ?T   ?T8Jr ?T ?T (yR ?TlG1 ?TD ?T < ?TbU ?T6[ ?Ty|@I ?Tg1"u ?Tzu ?Tf/g ?T7c ?T%*A ?T\G|LR parse?TK:V ?T7(pM T  without_plus?Tգ ambig_ty?TJ0"= ?T![ parse?Tk\ ?T,jӠӃ parse?TP> ?TsEC parse?T\O ?T A<ߩ= parse?T:c ?T"t: parse?T,|  parse_bare_fn?T 9+ǂ ?T͗/&[3 parse?T2X ?Tn]G parse?TʨF  ?TS3 parse?T   ?T1 Ui parse?T= *  ?TFa|X parse?TBbr  ?TM̆S  without_plus?TZ~"xj parse?TDXhXf}  ?TΈ뀳M parse?T][S8w ?Tύkp parse?T $- at_least_one_type?T! S ?Tɕ  without_plus?T7`.M parse?TN ۹0 ?Tsy?I parse?TxoEv ?Tt parse?T?LI ?T/lcuj parse?TPJ&=f< ?TfZVEۇ parse?THp2)J ?T90 parse?T parse_bare_fn_arg?TNUdPA ?T %X ?TxӂG0 parse?T$M{Zr. ?T^ parse?Tɇ@_ printing?TP{# ?T 1! ?T" { ?T)ه% ?TC%De ?Tx 3* ?T,& ?T)^|"vN ?Thx@ ?TC}{q  ?TU;=  ?T(  ?T/ JE-O  ?TxU[N  ?Tyvv/2 ?T.&1^ ?Tw"N: ?T \e{ ?T=Hoea  to_tokens?Ty >~6 ?T1s. ?T Q{K  to_tokens?TB!7n ?T@b&n ?TҬ  to_tokens?Ty ~ ?T>o6XJ  to_tokens?TR ?TOޤ*  to_tokens?T0G}s ?Tt]( ?TPEy6V{  to_tokens?T=a   ?Tm &A  to_tokens?T_4 ?TR~ ?Tbz7v to_tokens?Trg`bJ ?TWMGA to_tokens?TDWʞ  ?TMy to_tokens?T6m6]  ?TM0c, to_tokens?Tk2?TMfݲ $w  ?T]^ to_tokens?T[5Y?T6  ?T]V to_tokens?T_x8 -N[_  ?TY to_tokens?TrUa.oi ?TT+NF? to_tokens?T }ÇU ?T59 to_tokens?T G ?TOř to_tokens?TFr ?T]by to_tokens?T@d1J?T"#?TYW?Tg4?TD c?TwE_u?Tg/N?TWV,dP?TxO(y?T.ہQ:?T!@=?T t4h?T$ =W?T\J?Tx3K?TVcZ=?Twjxʬ?Th>#L ?T4o\;l~?TW?8]?Tv2ꬻ?T1`?T[֭$'2?Tp9T?TOZJ?TW8)?T"k1?Tʃ.?TʫI?T!?TՐe}7?Tx(4z?Tz ݆ is_empty?TG^ is_none?TW_A0pparsing?T|)?T5bwu~?T䫻I*?T ۍTl?T V?Tu0Ws?T} IeR?T:7ԕ?T#oqn?TuȪ ?TX&ϳX ?TUpr ?T|پ ?T8]ODp ?Tli +ˠ^?T,-&parse?T@2<?Tm9)parse?TWҭl\const_argument?Tǝ2y3?T蚚/}z parse?TSUϛ?T9ukparse?T(7?T ' parse?TStN3?TÍ kt parse_helper?T7}"?T,䑿mparse?T?Z/?TW!7 Sparse_mod_style?T:3ﲣA[is_ident?TTvvNI?To get_ident?TJ ec parse_helper?T7 parse_rest?T1]VXqpath?Tcprinting?T5 jO?TE'=?TpbAB?T ?TdW?TmKk?T-y@n?T:hr?T<~w?T+87^: ?TZ g= ?T< ?Tڴު ?T~vL?Tw- to_tokens?T8_I?TLu", to_tokens?TڼޙSy?Tk 92 to_tokens?T N*$?T*'e to_tokens?T'j?TDs?TƸY  to_tokens?T&#Pv?T瘽 to_tokens?T ^'?TR0ݡX to_tokens?Tج95?THE; to_tokens?T·7rX?TbP1+?T/:R print_path?T1%?TlCo\S?TfwV?T HU?T tI' ?Td!j6?Ttvֹ?T RT?T.n?TE|?T4.?Ta#ͤ?TϠ?TT0M?T8|$q?T]ʮ?Tylw?T>P6?TCP?T03YG?T',l?TWjm{?TR?TȭKrx?Tt]"{?T͹v?TI{5?Td$?T܎gFbuffer?Tn  @?TH4/?T6a??Tˆ?T_V8{IJ?Tλay?T umc?TBg.(>?T*)x?TZ*. ?TUg ?TYH'ֳ ?T#{p ?THإw1 ?Tҵd"?Twm^:?TDh#fWʒ?T8@w?T:CQP?TXJJ?TF=!tT|?T xБ?TW5_?Tl G?T_${G?T0 9֓?To5IpR?TjTpa/?T%D?Tlaa?T[Rk?T{eR ?T` ( ?TBQ}0a!?T9d>/s"?T\A#?T,^l$?T 9? %?TM:b&?T#5ZJ'?To0Entry?TrmGroup?TP0V@?Tj+0?T#w$1?T8{nIdent?T/}?Te0?T$#cPunct?T*ᝤ?T_O0?TpvmLiteral?TF(Ӹ?T%?>0?TZBQEnd?Tqm?TM:ݰL10?T TokenBuffer?Tdmdata?T ?T~;[* inner_new?Tјnew?T+ۢ!new2?T4}>.begin?Tΰ9Cursor?TvDxAp'a?Twq2Hptr?Txscope?ToQmarker?Tg$OǮ?Tb{LY'a?TK/empty?T>(qaGUnsafeSyncEntry?T-~Ț ?TnaV0?T2*"[?T1U EMPTY_ENTRY?TWx2create?T90entry?T EVbump?T\N" ignore_none?TS k4eof?T#Ǔ@fgroup?Tk41Pident?Tpunct?T",2literal?T\Elifetime?T%ܤc token_stream?T_S token_tree?TCspan?T_F!askip?T_A 1?T 92BK<'a?T@37??T)n&'a?Ts%b^+clone?TW*?e+?Tn"'a?TA\.h?T/  c'a?T2|SBVclose_span_of_group?Tو_X@ext?T=[ ?TE ?T7LtJ?TI[)?T*82?T ?Tnâ?T :#H~?T”7?TX1Y" ?T/oR^K ?T4m  ?Tÿ( ?TLsZ ?Tk.?T]|N?T}Jk{?TvP(?TC@Ѡ?T`fCҳv?T 1eus?Tc?TS BMIdentExt?Tg<$X parse_any?TH"peek_any?TgQ3 unraw?T w?Ts_| parse_any?TnLpr?Tm@unraw?Tw,*?TfGToken?Tnoo?Tppeek?Tijw=?T*\^]0P?T*KKg?TU&[= Sealed?T  !?TFINPeekFn?T;xР?TzͣtiIdentAny?T P32?Thc( ?TZФ:?Ti-?T/?TlT?T/?TNyC~-I?TAb8M ?T\P: ?T4 j ?T1U ?T  ?TÅ.?T^@6?Tޑ͉A]?TSĞ?TyF}NB?TQ?T,T B?TQл`?T끒K,?T1ѐV\?TTߏ+!?TVיu?TM,"?TC̝?TVHԑ?T c?TI?Tv␫m-t?TE?; ?T_ if!=u!?T% l"?T6g̑t Punctuated?TDF/T?TnFP?TD:inner?T/z=blast?T5KLS?T$}`TT?TaU=uuP?T6(>unew?TEMֱis_empty?Tn@ʝlen?TW;ꉃfirst?TH|*  first_mut?To1Clast?T$[tlast_mut?TBC^oPiter?TUpbaiter_mut?T2вI jpairs?Tc"|Q pairs_mut?T<O` into_pairs?T%~ ?TžŚ push_value?T袍(9= push_punct?T:ʑpop?TY/ ?T0:<5?T"eXtrailing_punct?T1Aempty_or_trailing?T/}Aspush?TDinsert?TU:(clear?TouPparse_terminated?T)MbVNparse_terminated_with?TXparse_separated_nonempty?TrObparse_separated_nonempty_with?TshH-?T砯T?T/bfP?T\/Y)clone?T9s[r?TY*T?TwPP?T|M И from_iter?Tz ,ΈI?T:Jڈ ?T+T?T߳P?TQj7extend?TSdF*tI?T57%l?T®=zPT?TQ7LB "P?Th!9 from_iter?T(I?TTe?TET$T?T0 [ P?T?lR#9Fh%extend?T&MI?TFM -?T ]G~T?TI?sP?Ty;8ZŴItem?T|uRIntoIter?TdT!M into_iter?Tf&~wޢ?T{GFS5?The[?TJo'a?T䷌yT?TOP?TT];Item?T`kIntoIter?TQt into_iter?T0:N?Tmy%Q'a?Tٹđ.T?TlaWP?T=]Item?T>DoOMIntoIter?T}* into_iter?TM^H־ ?TP-T?T~GP?Tjg-[default?TEڠ]*UPairs?T![r'a?T jDT?T;w8c1lP?TKinner?Te last?T5C* ?T.9'a?T.ET?TٶE- P?T4/O]EDItem?Tt>9next?Tlyd6?TZ/YC?T~WC size_hint?T!ue ?T`'a?T Zx 3T?TE^P?TD5 next_back?TK#?TTQˎ-?T  ?TGӡl'a?Thc;ѪT?T6E GDP?TH(ɓ"len?TOl ?T&'a?T{F T?T=cHP?T3| clone?TVdzPairsMut?T^܎'a?T((rT?T^LP?T'm inner?TLP,last?Te?T~0r'a?T T?TrzP?T?7*7Item?TlV}next?Tg(p?TQΨ2Al?T Hc I  size_hint?Tdt?T)L"'a?TO8CjT?T w<+MP?T!T next_back?TIˉC?TKݽR-?Tu>Iac?TA @,'a?T&T?T8A89xP?T$?~len?T"{~hXc IntoPairs?TNJ#KDkT?TzawP?T">-2inner?T#9Ilast?TaQ&l?T )t2T?TyMP_P?TV|Item?TX`a/ϴnext?Ta }PR?TTnAk?Tr򁉪w size_hint?Ttmg?Te߆ClT?Tūߓr(P?T  next_back?T% 2?T{O3?T Dj F?T`WmT?T4truP?Tq"Mlen?Txdl,j?T,N?T?TȺaP?T}_Z clone?TfY2GIntoIter?TٍxT?Tv,qjinner?T i϶I?TJ闲2T?TItem?TH;next?T02"B size_hint?TޝY?T̺T?T.u * next_back?Tw󈋶?TByjT?T̔*/9len?TdEG?T6(m T?T4*clone?T<$Iter?TQz'Kyb'a?TzE"T?TVDt\inner?T|%d™ IterTrait?T~&36'a?TR܃2T?Tߗ  clone_box?T1o PrivateIter?Tarc#'a?TA`T?TjpP?Tmhۗinner?T?tlast?Tt pempty_punctuated_iter?TX|'a?TQ*"T?TB] D?TF7Yr'a?T size_hint?TՈΊk#?T`x'a?TO*1T?Tgu,zlV next_back?TH30L$?TEE52'a?TL]D`VgT?T6nJlen?THbY3h%?TA襗'a?TeGv`T?TlL${~CP?T׽( Item?T~Jnext?T~i9Q;$?Tc=?TP**&?T2('a?T5NS 5T?TAUXP?TX` next_back?T1h"?TvyR?Tn:"'?T]2ר 'a?Tj@4=T?T;P?T  len?T=(?T=|];'a?TF/eT?THzI?TNmן Pair?TTT?Tf=lhBP?Te Punctuated?TڳRcމ?T׍p0?TEC1?T#*End?TJN?TNNe0?TklB[Q1)?Tl, A;T?T# WP?T#i into_value?TVlX]value?T;F' value_mut?Tu punct?T"7wnew?T>| into_tuple?TF_QV*?TCd)QT?T P?TyH:% clone?Ta+_@7+?T'm8 ST?T9v6!GP?TnDiOutput?T]˿index?T!Dqv,?TdB T?T AJRKP?T!Ol index_mut?Tprinting?TY{:?TzRJVO?T2;=kE?T u~?T]]?T3?T o?T.sss?T`%n1?TFݕ ?TJˉ ?T|?TՁfT?TӺEa@P?T-5 to_tokens?TbS?p?T(*BT?T+YdP?T7A to_tokens?TY"qHA parse_quote?TizҮ  parse_quote?T{u )?T*LE@.?Tj6^+?T$yao*?TI{\L?T ,TC;?T7O#?T,_+X?THԪhZZ?T!s,a ?T:!n] ?Tz6 ?TdN$ ?Ta  ?T& r=Hb?T[CB I?T76parse?T0T?TPr$5 ParseQuote?TN ?!pparse?T50?TV]ju?T?Tn>parse?Tk>Y?T 1P?T=xD;YJ?TCLJH?T}јmG?T<!:?T:h?TDžZMe?TORlu;?TXܐrB4?TO?TGNparse?TEj9?T.T?T,}$hP?TN31parse?T)nparse_macro_input?T@j3parse_macro_input?TY_%I?TZԤ'?T5zx~f?T[z{D?TRl?T|p- jcИ ?TFh5f ?T_ah ?TUZ)u ?Tsr{O ?Tzm'2?TÅ{e?T/dparse?TGxT?Ta2ParseMacroInput?T *:parse?T" ?TCqtT?Topm#parse?TYzk?TQ'լЀ~?T3Ѣ?TNQPYJo?T 1pparse?T\{spanned?T=Yk+<#?T͍{ZC?Tȯ"?TL3Y?TԢ4^ 7?TKpR?T>6Spanned?T͊6s7span?TĞkXt?TTx`6^NT?T^qצ-0span?T|9#-9gen?TLxtnrhelper?TQT#S?TՖBBN __private?Tҭr$?TxK?TPT ?T_`Pr?TXE?T 红?T>o5I0u?T`V?TdC4?T < ?T9 ?T|=U ?Tl3;' ?TgD!E+ ?TPYCi/?TtPAg?TzTD}?T@?T"G=d?TwVTA?TL>+c?T6H;k ,?TT͘-?TQn1A?T?{x|?Tk5?Tg%T?T9&gvB?TAZ?Tvs$1$?TӯX I?T@)-?T0 dcl ?T[嗾 x!?Tws`]i"?T088{8#?T- $?TD,:%?T ߰yY &?TaK%gk*'?Tb~a;(?TzYө)?TTq*?T֜S+?TV,?TZ=-?Tzf %q.?T_< /?T%Ds0?T  n^1?TSK'quote?TsfA _2?ThO`s3?T`Wp; 4?Tļ5?T-u,.6?Tҽ8E`7?Ts>b48?TTMAC9?Tj$\8ix:?T+QZOu;?Tr)u@P<?Tw$r=?T %Y>?T1u_s??Tvz~M@?T29 A?Toԏ: B?TnAC?TϷD?Te9PE?T2\U bool?T\)O str?ThmBhelp?T&.X Bool?T CStr?TGMhprivate?T# ?T9#ORj10?T7$custom_keyword?T+ Aqsvcustom_keyword?Tq1yoimpl_parse_for_custom_keyword?TM!impl_to_tokens_for_custom_keyword?T`ۚ $impl_clone_for_custom_keyword?Tȋ^_uRu$impl_extra_traits_for_custom_keyword?TѦoVXcustom_punctuation?Tj$Icustom_punctuation?T0@|!impl_parse_for_custom_punctuation?Tԭ4I(%impl_to_tokens_for_custom_punctuation?Ti5ӯ}!impl_clone_for_custom_punctuation?T6(impl_extra_traits_for_custom_punctuation?T~w#custom_punctuation_repr?Ty;i]|custom_punctuation_unexpected?T_)4{ stringify_punct?TS>p]sealed?Tsq lookahead?T/lѮSealed?T;zs8mspan?TWokd?Tl Ku?T:.0?T6 IntoSpans?TO'S?T+a% into_spans?Tp >?Tڬ ?T0g5 into_spans?T,Kh ?TdÛ>"?T ߟ$ ?T0߆r into_spans?T`Jd ?T19*V<?Th?0}MN ?T' R into_spans?Tdw}B ?T˿a?TF4l ?T9" ?Tpv into_spans?Tg4p ?T'XPX?T I{ ?T:WB ?Tz;3 into_spans?TCT@ ?TQ]U?T4@ ?TDܪ ?Tea &  into_spans?T8f=Q ?Td!8@ FromSpans?TV.:~h` from_spans?TD)x?T9oN ?T\'z from_spans?TZJC?T&s ?Tc}["M from_spans?Tw|{0Gi?T< ?TYEU from_spans?TV5thread?Tu(?Tr;5]?TYv ?TCii?TA{ jSA|?Ta % ?TNG?T,T;P?TЎ0q?T_S?TnRVuqT?TeLbU?TxJ"T?TvpA&7T?TDW][ T?Thnew?T5h vget?T )Xa3?TKlkhlTT?TNM7^|fmt?Tvb&]+ lookahead?Te]'?T} ]?TTiKn?Tⷦ \uS?Tzm?TSY?TY|uMl?T ?T$͐‰4?TY} ?Tz49* ?T_U ?T\Q@ ?T/3̋ ?T݌0[?TrV(]2?Thu ?T@P[?T 2?T?T#]?T!7L?T\ B?T)j?T|r@j?TQǔV?T.+y?T2;HG?T?T! Lookahead1?T |'a?Tgrpscope?Tx&VJcursor?T4K comparisons?T5>new?TYc˅ peek_impl?TZB&K}X?TCR6K2f'a?TGV peek?TG>A=*T?TvMerror?T ^ߦPeek?T(/ #Token?T:CUL?T>&lF?T,Ur~T?TF!UkhToken?TkLV; TokenMarker?TzG3lr4?Tq-|c,S?TCuB into_spans?TEY~- is_delimiter?TA=?TCF?TT T?T-%parse?TVYHc discouraged?Tn+Glh?TD-e: Speculative?T ow advance_to?TN-56?T_%1}?T/JDO|X?Tc /Yjn?T=Z*+?TgYl?Tz< ?TaO+, ?TR? ?T둺{y  ?T)'D ?Th{.?Tʄ\s?T4]o?TpA}g?T=,z?T&~ ?TljL3?T ! (?T5>G?T/g?T+],?T 3S2f}?TQ:?T4zFgq?T\7DmC&?TW'?TE(?T.rOt)?T QI;p*?TF2 +?T <$ו,?T:o-?T9]ƴݤ.?Tcݻ/?T יo"0?TOp(1?T_oF2?TUNϩ3?Tԗm4?To\&|5?Tv^]C6?Tfoܤ7?T,7P8?TÀt9?Ta:?T [_.;?TMT9<?Tq=?Tt>?TrM??T.Qt@?T2ׯ:A?Ts۶B?T۳C?Tp6D?T!FE?TvF?TdYhtG?T̩flH?ToI?TK!ρ |J?T |aQK?TfhL?T{\ݒ3M?T˯s@N?TCO?T&sCP?T>F Q?T).lLR?TI"czʛS?Tw%8T?T۱[G=U?T`p|EV?TzRKW?T#QI3JX?Ti}sZParse?TueAQparse?Ttw# ParseStream?TZփt3'a?TXh ParseBuffer?Tw*w'a?TѤXscope?TM^k3cell?TP<ީ) marker?TԦeQE unexpected?Tx?,˴?T8B"ʢ"S'a?Trdrop?TK?Tځ5H'a?TH}fmt?T[',| ?T|e'a?TI`!G2fmt?Ta#~ StepCursor?TYx'c?T/9֑'a?Ti"O$scope?T}V˹cursor?TqRBsmarker?Tg/0W?T8>•\'c?T70hr'a?T|dsTarget?T*V0deref?T2[?T/N<'c?Tœ'a?T?1E?TgZa'c?TZp mE'a?T"$N clone?T Us?TeDO'c?TYo'a?T,terror?T1Y?nT?Tė3fwadvance_step_cursor?T3|>'c?T]Yh'a?T|o new_parse_buffer?T0i`7 Unexpected?TϓMnNone?T|߁:y?Twf'bSome?T9| ?TtU0?THChain?T- ?T-bls0?T,o;?T Ssvdefault?T;E2?TZ\Eclone?T|  cell_clone?T4Z~ewT?TVI;inner_unexpected?TKget_unexpected?Tdgo!span_of_unexpected_ignoring_nones?TkFxl0 ?T$8B'a?Ti~nparse?TfYxT?Tp(lJ%call?TB?N T?TJ <peek?T#MT?Tw?peek2?Ty%L:T?T; PαApeek2?TvVpeek3?T& @T?TY۝GSpeek3?Th/Uvparse_terminated?Ty4T?TX[bP?T0+39Bis_empty?TF\ lookahead1?T;t2bfork?T~R=oerror?TFܸ`T?T(xstep?T׾e eVF?T/@YOR?T_T'c?T:Gzspan?ThDkcursor?T=O=\check_unexpected?T/ ?TyUT?T$hI\parse?Tx[@+8 ?T;T?T;QxEparse?T(E] ?TgDparse?Tq0?T*I%Η ?Tӓ퉔parse?Tf4|*?T! -W1l?T.2wMparse?Tx>E?TqWmB?Tsckparse?T/Ɩ?T2]?Tparse?T ͛m6?T}~ Parser?Tb xOutput?TxQI5parse2?Tמ'parse?TH1ȀW parse_str?TLI__parse_scoped?TBJ1D__parse_stream?T&R"?TݤSl8tokens_to_parse_buffer?T:nN?TLX`F?TO؋cT?T'}+Output?T nⳟparse2?T __parse_scoped?TOu8^__parse_stream?T"rm parse_scoped?T6R HcF?Tdh|j parse_stream?TpF?TsyR)Nothing?T53ˉ?T.<]Q?TL[WNparse?T%t2?tverbatim?T*WF?T_4~N?T/X"*V?T* ~0'm?Tk?T^$ &%?Trv ?TgL`?Th3?Tf ?TnF \  ?T φנlJ ?TaHQ ?T*X21between?T'* T'a?T̫_7print?T;-!t?Tw5?Td[r%#?T⭞ߝ?T3+Y8:?TwNB?TB!TokensOrDefault?TIz?TP'a?T#Vq&T?T=W$F0?T~rP"?T3dA'a?Ty ѢST?TQ=om0 to_tokens?T3r?TB)2b??TsK ?T#x?TvA{7]ܔ?T/ Η[error?T(,Z?T?Tk϶<?T@na?TuCY?TDG|b ?Tb:I@RY?T.)w?TXSX-5?TP_IJ[ ?T}8u ?Tv) ?TЭ8 ?TNk4π. ?Td߽H?TK٣$?TtⰏ?Tehc.@?TXET/?T1.?TUr is?Tx};?T[?Tl '?Tr?Txa>?TѓDN,?T?T9)!i?T!#?Tѯ~f?T3?TvN ?T)d{!?TZF"?TߛPC#?Tm$?T=݁cz%?T&?T;6 $'?T%%ɭv(?TM֟|)?T)</*?TOr+?Tb{,?Tbg&-?TF\ވ@j.?T;6.Rt/?T};0?TmH61?Tq{w.r`2?Tn]k3?TB*4?Tu@O/Pbq5?TWK+e6?T;|(@7?T~ _8?T'[ 9?TR8: :?T` \Q힠Result?TpWPT?TymGaError?T 0messages?Tx% ErrorMessage?Tfm start_span?T[H:end_span?T4.7>message?Tu^{?T7 new?T֋q #T?TXJBws new_spanned?Tp6|MZT?TB2VU?T&+~2?T.#f5?TA* span?ToZjto_compile_error?Tx2!9 into_compile_error?T;*hcombine?TT_A?TY2zrto_compile_error?TYMYnew_at?TP]T?Tkʑ,$new2?TRT?T%Ȫ?Tl/Xfmt?TcZ=;y?T тIfmt?T#qT?T|R5gfmt?T3T?T)Nuwclone?TؐBj`?TS@4clone?TO̧?TR_?T\нIL"from?T8/ű ?Tm&~=Item?T6grIntoIter?TB(8` into_iter?TUiIntoIter?TBtT6E*messages?TuǴ ?TQ@CAPvItem?TG~aj]next?T7 C9S ?Tl ">'a?Te=7Item?Tt9xiIntoIter?Tg9r WI into_iter?T?*^Iter?Tx{"UH'a?TQmessages?Tp% ?Tuw'a?TxF$oItem?Tu"7dnext?T~#zyy ?TF́oextend?T|xT?TS!?TBˋ?T`)D?Tn@;}?Thm|N?Tģeޖ?TOby?T)޽parse?T}XT?Tvg parse2?T]F&UpT?TXin'೑ parse_str?TFPT?Tޜ ϖC ?T@d xtpeek?Tۇ~Epeek?T+display?T$&$iC ?T_<#C ?T:*Speek?T8Rpeek?Tw7x}display?Tg{YlC?TQ^C C?TF5peek?TU鵫vpeek?TevVdisplay?T1'C?Ti^_C?Tj}peek?T #}peek?T7tdisplay?T sC?ThmC?T)epeek?TjqEpeek?TDK;9peek?Tbsdisplay?TA9'C?Tⲗ7KC?TDFpeek?THepeek?T'^1display?T, C?T hZH.lC?T<$apeek?TD5peek?T0display?TcĺC?T){uC?Tpeek?T q5^peek?T5 display?Txo8C?TğFNpC?TBpeek?Tm}J2}peek?TRsNdisplay?TrZɀ C?T rTV(C?TO0bpeek?TdlW:/i%display?Trb C ?T,+C!?TE $peek?TGOKSdisplay?T:GGC"?ToCnC#?TV:d`Fpeek?TKgdisplay?Tf)IC$?T2;;MoC Underscore?T<5Pspans?TÃEy3 ?T(| C Underscore?T 2S?T` ?TgهEC%?T{B_L(Hdefault?TB++ ?Te&{C&?T48 CC'?TCͿclone?T:ni__C(?Td4HTarget?TG.Aderef?TsC)?T`̙۷MA deref_mut?TzB}$CAbstract?Tixspan?Tl#9CAbstract?Tm~kS?TbZ ?T^s=C*?T5-@/Zdefault?TC[]C+?T1h,yC,?Tr5rqTclone?T C-?T+gu6 to_tokens?T *2QC.?TGparse?Ts3X$ʙC/?Tpeek?TK0display?Tjp^sC0?T*ː%CAs?T_Y@z@span?Tj&돶ށCAs?T>zn9S?Tt} a ?TkT~D@C1?T4 R^?|default?THk9C2?Tnh_C3?Tj]wPclone?TceoC4?TvGt to_tokens?TyoKC5?TN\Q,rparse?T0bC6?T ImʱTpeek?T>N-8ndisplay?T.v6$C7?Tot eCCAsync?TR7 Bspan?TuNx5CAsync?T8rS?Tha&# ?T`8:xC8?TX3IA&default?TsɑCrC9?TQ5㊳oC:?TO(clone?TC;?TfȬ4S to_tokens?Td<_HbC<?T!DWKparse?Ta. C=?T> peek?Te jdisplay?T^ ԎC>?T#oyCAuto?T_ݰ!'Ҵspan?TeiCAuto?T`|ISоS?T^̻ ?TE1qC??T\45Wdefault?T rC@?T>mCA?TTyQ&clone?T f JCB?TU7 to_tokens?T%!CC?T.*vbI$parse?TZ dLeCD?TK,5peek?TW{_display?TJ"e"CE?T)WKCAwait?TTaJspan?T1kMCAwait?TRBw$S?Tc$Qk ?TpzA{CF?T4MLycdefault?T-QBCG?Ts:g[CH?TpOTclone?T_X;+ :CI?T@uLa  to_tokens?T$P3KGCJ?TF/pT;@parse?T[y}CK?TB28peek?T@]5=display?T6^pCL?TUFXŁCBecome?TyB Aaspan?TQE-CBox?T3jHS?T*7oS6 ?T Г#JxCT?Ti=]default?Ta.-ECU?T^9TvDCV?Tf Noclone?Ts=oGCW?TU to_tokens?T\tCX?T0E?parse?TO]+\CY?Tfpeek?T)X display?Tf}CZ?TD0DVCBreak?TdÆ0w to_tokens?T26 C{?T<#NU;|parse?T"G+bC|?TҲ1ɩpeek?T7Sz;display?T,I`\C}?T⮇i}iCDo?TEƼ7 Nspan?T* vݪ3CDo?TϚ|FաS?TfU ?T8@V!C~?Tgd 7#default?T;})C?TT1cC?Tu0*Vclone?T3pҿyC?TH/ to_tokens?TC?TTt|parse?T]C?T/>[9peek?Thjdisplay?T>aHC?TIYopCCDyn?T\Ospan?T_# LCDyn?TL`gS?THy`~ ?TK6~Y:C?Ttecdefault?T}TC?T)ڒ9C?T[{clone?TPNdefault?Tp?5C?T_%4YC?Tq Ƽclone?THpfC?Ta^!ct to_tokens?TEgC?T*dparse?T0Aa0C?T!tw6peek?Tdisplay?T=L+C?T;CFn?T F{ fspan?TC ;nCFn?T$DLT9S?TC*) ?T{a="[C?T&&;³default?T:k wKC?T$DC?T\o0Tclone?TlU C?T@x#  to_tokens?Tl\-C?T=o Qparse?TϚ%C?TlHpeek?Tk،w,display?TuiRC?T7CFor?TTXQspan?TgC ޚCFor?Tq]ѭS?TS-v ?T]f{C?T~default?T.|:C?TC?TXU}clone?TD@\C?TN}o@ to_tokens?TLc@C?Tp^%uA,parse?T.*=0C?T8ѿ:-peek?TA6upeek?TwBl&display?TZQsC?T%h-XCOverride?T=Zspan?T z,_COverride?T[O#S?T~G"$ ?TnT!C?T͑.ذdefault?TnyC?TcEcC?T w!" clone?T7DB C?T̨{~ to_tokens?TȽC?TCblparse?Tm'}HpC?TlNLpeek?TB f\display?TG-C?T f<[CPriv?TG##lspan?T<~ׁ6CPriv?T,/W.\S?TЪ Yux ?TbyJC?Te<$[[default?T\uN6MC?TyC?T\Yclone?T^NVC?Tg<k to_tokens?T ݈C?T_= parse?T8WGC?T%le֦peek?T2ZRP5display?T}RI!IC?T[ߵR:.CPub?T' +span?T+8){5CPub?TBlsmOS?T!|, ?TyL=|C?TX}default?TýjC?T9UDfDC?TVYeclone?T 5.qC?TW*a1k؛ to_tokens?TY!kj,wC?Tz]oxparse?T5-CdC?T&A|peek?TZݷdisplay?T+ C1C?TezDFCRef?TTkRspan?TXtCRef?Ti6 nS?TM?% ?T1d2C?Th Jdefault?T!5"C?Tj/ei1C?TSkcclone?TN iC?T&Y  to_tokens?Tӕ ɖ+C?T7NZparse?TK2usC?T!peek?TH;86$ display?ToY 7C?T@CReturn?TPہſspan?TiI|/uCReturn?T@S?TTj ?TkBC?TPzdefault?T2C?TەRC?T?h=IZclone?TimVSS5C?T%~fܾ to_tokens?Tpw1C?T\$vparse?TCFC?T3Mgpeek?TԨl)xdisplay?TZXxC?TchG CSelfType?Tlr$Dspan?TjA]pCSelfType?TpGS?Tm Gzs ?T@UtķC?TةT@default?TjDC?T-H-tC?TRW԰:clone?TވC C?T ~ to_tokens?T|Qa6,C?T >lM6parse?T|=C?TmΛkpeek?T>;hdisplay?TXC?Tt#C SelfValue?Tx]xspan?Tv7M{C SelfValue?TڰvPeS?T ?TIeq)mC?TIbBdefault?T 8sC?T2qr'C?T Bz clone?TN;C?TJhZ9 to_tokens?TjK(oRC?Twparse?T.3C?T8QZSj"peek?TxTdisplay?TlKLC?ThqCStatic?T}(wspan?T GZ7PCStatic?T"etS?T@p+h ?TҋUH!0C?TN\*SXdefault?TxFmjLC?T*%u6C?TǢ>Pclone?TXC?T/9 㓬 to_tokens?TɔZC?T5=@xջparse?T1#bC?TA71Ppeek?T\ display?TSsC?TsDpwQCStruct?T&O%span?TjNnCStruct?TPw|}S?T0] ?TVm*vC?Tk-+default?Tܑg] bC?T_C?Trclone?T$ RC?TPI8\. to_tokens?T-1+Y>C?Tea[ cparse?T0kWOC?TKbG Tpeek?T@display?TLr C?TȈqrCSuper?TA $E7span?T'!wc CSuper?T ~3S?T~Y ?T,#'C?TOq!{default?T-3ُC?Tc/vC?T2ZKclone?Tcg71C?T/D͏ to_tokens?T}*=C?T4\WgRwqparse?Tu+³C?T,<+;peek?T n9Jdisplay?TYzC?Tcn!CTrait?T4T[span?TICUCTrait?T 3S?TTo ?T C?T hEidefault?TeVC?T7qoC?T_TGpclone?TgP@wC?TkK^ͷ to_tokens?TuC?Tw;oX*Tparse?TuL#vC?T7K(Ꝅpeek?T^%Kdisplay?TҬ!C?TB7CTry?T 2rspan?T۽l1>CTry?T)~ZS?TbQ醙 ?Tn"#%C?TwC`4k/default?T92OLC?Tv%ɯ̕VC?T^ ?Uclone?Ts\a[6C?TnX"= to_tokens?TwkBmC?Te|parse?T(MgwC?T3KN peek?TSV`Z display?TV$C?T~"ezCType?T\ma[ span?T^$wCType?T4Z  S?Tavp ?T'wiC?TՄn default?Tl4xC?Tw%l&C?TX/$0ԟ clone?T xC?TA_   to_tokens?Tt.m1C?T_3[ parse?T}! C?T^mY peek?TSn& display?T>WjQ`C?Tm,9CTypeof?T&/f span?T<9|:CTypeof?T*eZ S?TSA: ?T_C?T >.r default?Tk%LގC?T:{dҰC?TOk}g clone?T>@߶#C?T_!`%?  to_tokens?TtSJjC?T7BU parse?TF4|~:sC?T]E4q peek?TCPo׫ display?TE1ʀ`zC?T>}ѵzCUnion?TF span?T;hΆCUnion?T#dl S?Tl   ?T;|(vC?TOlX?2u default?TA 7X C?Tܥz*k"C?T}O e clone?Tn뷘C?TFI  to_tokens?TܛTTC?T o parse?Tݛ C?TIaE peek?T^]R display?TL$C?TMǣ[CUnsafe?TuP< span?T]CUnsafe?Tme S?T1S ?TWLv#C?TVb default?T$C?TTTN WC?Tzh u) clone?Th3P "C?TC2g  to_tokens?TU:VcϐC?TyՎYJ parse?T-.xDC?T>O=:$ peek?T]y display?TL\C?T6rؙCUnsized?Ty=: span?T촙yCUnsized?TG . S?TAPA ?T >KC?T}} Q default?T[FCC?TsZ@C?TuK99+ clone?T,'j3*C?T*׿(F  to_tokens?T^C?TvRXl parse?T6˔C?T[j{| peek?Tf 2n display?T>IC?TEԵ$CUse?T1[8 span?TBG#$CUse?T>@J S?T}X*v`? ?T!}<C?T;QlXDn default?T筬C?TĐ4z C?TImSP clone?T`=dmKC?T|0  to_tokens?TiYC?Tiޛ parse?T_3FC?T.1E peek?T!yd4@ display?T9OȱC?TM- CVirtual?Tta?l span?T]'CVirtual?T@OfT S?TH$/y\ ?T`ߟyOC?Tw~5E default?T`]C?TbcC?T'´KP clone?Td >]C?TU:9f  to_tokens?TG}>|YFC?T}  parse?T ϸC?T%$ peek?T-qR display?TO7'C?T`@oe'CWhere?T[ \!span?T;ħlgCWhere?Tp|!S?Tf47=J! ?TEc5C?TĂ| !default?T3&C?TIC?T ׫3%!clone?T|LC?TQiL! to_tokens?Tx[vC?TR ZuKI!parse?TC?TV !peek?T%oD@%!display?THC?Tɴ#sCWhile?T@(=!span?T k>2ӱCWhile?TyW!S?TQ!^ a! ?T[IR` C?TV(C!default?TycC?T/OSKvC?Tjx6!clone?TpNC?TG*kߔ^! to_tokens?TsA8:bC?T8J"L!parse?Tn?@.vC?T^u!peek?T&BwKU⿆!display?T]pǷC?T7æCYield?TG7B !span?TY6݊CYield?TbI>V!S?T5c>! ?T"C?TGKݏc]D!default?Tl C?Tn&C?T_ Mn!!clone?T$tfC?TY *~! to_tokens?T UyiC?T}q+!parse?TPlC?T#`!peek?TXOR}!display?TDh |C?T8Vy)?C?TƓ-6B! to_tokens?T\k_|C?TxXSdr!parse?T^ZC?T &HG#+!peek?T7$t!display?Tlj趺C?T>XyC?T&! to_tokens?T[ǛLXuC?Tѽʴ!parse?T5pʒ-C?T,qݍ!peek?Tn J=Kn!display?T╒(LC?T6{/ϵC?T ~t! to_tokens?Tq<7C?T&B*y!parse?T%Aw<C?T5X⸫!peek?TpFF]bo!display?T?0QC?T 1/C?Tٍ! to_tokens?TǸ/gC?T}RC!parse?Th`qC?T7ʰ!peek?T.uNכ(!display?T~<C?T~N'C?T$ݪ\! to_tokens?Tt'YC?T29!parse?Ty>VI$.C?TsI3p`!peek?T3 5Hs!display?TAʂmھC?T֙MC?T5! to_tokens?T:<C?TBi4!parse?TGEC?T0!peek?Tn!display?Toq^ C?T)Gd*ApC?T@c71g! to_tokens?T n K ذC?T%,s]!parse?Tfw01C?T#eӑO!peek?TZrs!display?T2C?T۝FqC?T 9}g! to_tokens?T&=*{C?Tf6~!parse?TA/X C?T;9!peek?Tv: !display?T;';C?T06C?Tl! to_tokens?TU(NY"&C?T!b}!parse?TґRڙC?T{HZ225!peek?T+Tah!display?TG+<C?TJC?T0Ğ^y.W" to_tokens?T C?Tp*"parse?Tak乊C?TE{Ϯ"peek?T -ʸ"display?T.6BC?TdhrC?TDoמ" to_tokens?TF6kC?T 90"parse?Teg|C?TlxU"peek?T-T"display?T{,*C?T=̘C?Te731" to_tokens?TMRՂC?TV8"parse?T%]׶C?TFhD|"peek?T{W-05 "display?T$xIC?T^ảC?T~]"@[ŵ" to_tokens?T2pcC?T!^+*+f"parse?TqcŠC?T]7c٫"peek?T8'b"display?TG?AdC?TUTǚDC?Th\}G" to_tokens?TpC?TKݿ"parse?TQVpC?T52"peek?T(L?!U"display?T`C,xC?T9QLC?TKttG" to_tokens?T} i5C?T"parse?T kIJC?Ta/&a"peek?TȆ"display?T"G2C?T@$~?C?TÞc" to_tokens?T<{~"parse?T=JӅC?T"peek?Tcg"display?T- FxC?TMgjSC?TRง" to_tokens?T皴oiC?T "parse?T8ؒNC?TC("peek?To"display?T(c@?IC?T bgC?TUdBC~F" to_tokens?TnaC?TAf ؋"parse?T5tVh8C?T9V#U`Z"peek?T >X"display?TA-C?TԵC?T w=" to_tokens?TՊx!C?T^Qb 3"parse?TҊC?T9;ns"peek?Tf<_"display?TvմEC?TE5y>C?Te" to_tokens?T4 [?`C?T9:"parse?T'v%f`ýC?T/"peek?Ty"display?TVXVUC?Tm2bkC?T(+ Vπ" to_tokens?T-C?Tia= "parse?T4 FnC?T7вF#peek?TlNv_)#display?TظwC?TALǭC?TH# to_tokens?TvmECC?TǏ{W#parse?T\O o=C?Tev#peek?T"(`#display?TߕvsC?T)+sC?TgRoT# to_tokens?TkC?T 26#parse?T?Nm'jpC?TIk 7#peek?Tnr^[#display?T;on C?TL#} u C?TUsޕ# to_tokens?TjOZC?TXI1P#parse?T/6C?T1y#peek?T!#=s#display?TUƉ֙C?T`e|g)/C?Tz=Qo# to_tokens?T6qJC?TLد#parse?Ti09֡C?T'#g+m#peek?T/ю#ǩ#display?TQC?TO9—C?TmыIz}# to_tokens?TIVtC?T j#parse?T8۲EC?T\ P5#peek?T@#display?TVFevgC?TmKLpqC?T 9n# to_tokens?T>~ufC?T%-#parse?T1d!C?TX8&#peek?T2]a#display?TF"+C?Tٮ9C?TdKAӺ# to_tokens?TSa~C?T- ȁ#parse?Td?J+C?TEs#peek?T%zH#display?TKj_ ZMC?T)ffC?Tv# to_tokens?T-MojC?T0q,y #parse?TTqD3C?T;O #peek?Tdz#display?Td2́C?TSҥC?TM+GPr# to_tokens?T0C?T} I#parse?T&fSC?TD #peek?T]4#display?TQ#ճC?T:<BwC?T0y# to_tokens?T!C?T1ee#parse?T*}C?TḌwQ#peek?Tǫ&5#display?Tb޵_C?T.y}D]C?T'y?# to_tokens?T 0c9C?TDZo{#parse?T>!yC,C?Tt09#peek?T+sP#display?TEe.C?Tg w;oC?Tu# to_tokens?TU1EO2C?Te%GnM#parse?T.ͥ6 C?TIH@#peek?TPLwmK#display?TJ1t"lC?TC70C?T婝Xd# to_tokens?Tzi:hIC?T٥#<#parse?T^-Xo"GC?TT'~#peek?T$,G^#display?T[VgLd[C?TZ]*rC?TB #$ to_tokens?TY}sC?T$|{w$parse?T%/ =C?Trc&m4$peek?TxD&qn$display?T{4BC?TnD C?T&Qq_C$ to_tokens?TxU2-C?TMmfv:$parse?T]`yZC?T 8OQ1$peek?Tqk$display?TW)eͦ8C?T.*C?T' +y$ to_tokens?T):@4C?T$parse?T(Ѯ~];C?T24z;$peek?TTc9$display?T j7C?TeUC?Tx N|٠$ to_tokens?T|- (иC?TwM(j$parse?TL"bC?TɅ͏js$peek?T*T=$display?T_I^C?T ;͑C?T\wkF$ to_tokens?T;JAC?T3}_IJD$parse?TٌK1C?Tp&c$peek?TQK].[`$display?THTC?TI("CAdd?TY߱`3$spans?T$x3Ǘ$ ?TueCAdd?TXi4$S?T1 c$ ?Tk}C?TF84$default?Tr $ ?T/' 4C?T YC?Tk9e$clone?T ~k{C?TJ$Target?Tcڌ$deref?T,$EC?T&򫲸$ deref_mut?T~|PGQCAddEq?T%{ȭ$spans?TsXMm5$ ?Ts}CAddEq?TG;ǡ$S?Tl!$ ?TyjNC?T3Y$default?T3Hp$ ?TtoqC?T'k"(C?T=;$clone?T%mYCAnd?T q6$spans?T<1!$ ?TCP@N4ЉCAnd?T73麐_$S?T Ύ~)r$ ?TQ3zC?TEdf $default?TZG$ ?TΏ"C?TVGЁnlCBang?T%*}%spans?TT2XHo% ?T?MwCBang?T,5%S?TAUw% ?T+jC?Tš&%default?T@o!% ?T' C?T~#CC?T#$%clone?T9bpBcC?T9ؼa1:P%Target?Tܸ9b%deref?T;C?T .% deref_mut?T'CCaret?T)wl;%spans?T[8% ?T户 CCaret?TLu.%S?To<7% ?TD C?TeU( %default?T+ew&% ?T?#']gC?T IAC?Tg<=`G%clone?T!Q lC?T1*L%Target?THX7%deref?TƦ0*.&C?T#EŃK% deref_mut?T^+pf)#CCaretEq?Tdϝ%%spans?T| ?t% ?THvCCaretEq?T2 G%S?TCd< 8% ?T@-e=yC?TaH%default?Tz]Vއ% ?T+'CmC?T_C?T*Ֆz%clone?TKڍuCColon?T4y45%spans?T}`% ?TXCColon?Te{H%S?TD_!#y% ?T8¹C?T-fme#%default?TtD7Y"[% ?T&.אrϚC?T<;pC?T+ B8%clone?TkMdׅO(C?ToccC%Target?Tw&V{%deref?Tr6«DC?T/ʠ% deref_mut?TrCColon2?Tٖ m%spans?T S"% ?Tb#?0ACColon2?TkDg%S?Tur@% ?TV-,tC?Te8%default?TPO% ?Tz^4КCC?TqFe/C?Te`=n{%clone?T J^hqCComma?T`vX6%spans?Te 6W~% ?THCComma?TSKS*%S?Tx-ڠA% ?T *w C?T0j.,%default?TT.ד=% ?T4vKC?TL`u*C?TKZa%clone?T>UU<C?TR3٧e͟%Target?TV;I%deref?T"#ohGtC?T7|ӈ% deref_mut?T)Kv'3CDiv?T|߃F%spans?T'PfN% ?TԌn6CDiv?T1Zjo%S?Tw QEl % ?T!E?bC?Thylq%default?T`P]J% ?TJ#C?TLCC?T7%clone?TgBiC?TA"Ħ%Target?T<7&V%deref?TNC?TÔ`% deref_mut?TEC~CDivEq?T .%spans?T0% ?TAҭj>CDivEq?Tn q%S?Tbo% ?Te76C?TB~:%default?ToDKJ% ?TF5}ϢC?T{toNC?TPurG%clone?T,HE CDollar?Tv,%spans?Ts֯y% ?T|-DC./CDollar?TИpF%S?TF{% ?TĠ6C?TNaf%default?TbQj7& ?TXUC?Tz@7C?TPk.;&clone?T@WIEC?TE.&Target?TpEy̳J&deref?Tl_ W3C?T PD,5sq& deref_mut?T&#RCDot?T5/Dm&spans?TښX& ?T:PMCDot?T}&S?Td/ & ?TS,C?T߂uYX3&default?T"z ʸ& ?T)F`C?T\W/#6C?TLsXZz&clone?T9)rLC?ThJ?#"&Target?Tdcf]s&deref?TJ=9C?T^1I& deref_mut?TM_nL!CDot2?Tx&spans?T&l2Nc& ?TfCDot2?T£ R%޺&S?TK= & ?TGsC?T-]~&default?T|f& ?TBfEڗC?TXS1ؐC?T @%Y&clone?T5pfn:CDot3?T *c&spans?T%|֬& ?T'.V`CDot3?TVۨS&S?TDLA? x& ?T }`C?Tq5[&default?TBF'& ?T91C?TnoDC?T77 y0&clone?T*[NHCDotDotEq?TytI/&spans?Tp=v& ?T anCDotDotEq?T2,u&S?TPhfA& ?TiyC?Tm-sQq&default?TZ T& ?T4 OC?TGElyXC?TjH&clone?T b^CEq?Tx(0&spans?TpD;& ?Tc֧OCEq?T$-"K&S?Tݖ.:& ?T2WgGC?T j&default?T+$& ?Tw>C?TN[C?Tcbtvh/&clone?TY&bC?TW$ggLm&Target?TP-X&deref?Tq,C?T{u& deref_mut?TT&{YCEqEq?TQ{7&spans?T(6p& ?TIYvkCEqEq?T&6&S?TS& ?TNih7C?TVׁ4&default?TKՃF?ť& ?TnxSfC?TF|EC?Tacd?&&clone?T1CGe?T"`&spans?T[G*Yn& ?T>-\CGe?Tt<^&S?T q& ?Tu=;C?TP &^O&default?T΅& & ?TDf~VC?T ,HC?T'v&clone?T8!gƲCGt?Tˆ&spans?T2qX{& ?Tob~if.CGt?T2K8&S?TS< fg& ?TfC?TמM;'&default?T\{& ?TBfC?Tb%1C?Tmr&clone?TUn&dC?TA#2&Target?TqC2 N&deref?TfzCwh$C?TZ]mȼ& deref_mut?T8VCLe?THǎ&&spans?Ta_4-& ?T4 nMCLe?T '&S?T "r& ?TG#c C?Tb'P&default?Tr{<' ?T|C?T@1F C?Tµ-S''clone?TQ BςFCLt?ToY'spans?T ' ?T9.[CLt?TAr@h{'S?T`ۍf' ?TF{eC?T+5:I'default?T]T\' ?TjZ NRC?TA*o]~C?T=ŝ%h'clone?TݥDRC?Tw5uIy'Target?Ts_'deref?THٻ$C?TC#@' deref_mut?TT%CMulEq?Tkƌ'spans?THKd[*' ?TڡaU)CMulEq?T pKA'S?T8VM' ?T2?CC?T:4He'default?T`X&"' ?TmC?T]C?Tώ*3$'clone?TuNq CNe?TdQ'spans?TIUq' ?TǞCNe?TW'S?Tb;*' ?TJ(-C?TP}G9'default?T mv' ?T{hC?T{SC?T .b'clone?Tc3툲COr?TáD2%'spans?Tf7wkO' ?TNG7COr?T[&'S?Tz]?' ?To"C?T[29'default?TQ˧3' ?TۘC?T/;/C?T6#'clone?T_\qC?T*f'c0'Target?T讱Tj'deref?Tl|)C?T4ڠ' deref_mut?TA'COrEq?Tsd@.'spans?T(`' ?T0ХV@COrEq?Td"U+J'S?TY#' ?TaP^QN1C?T^M 'default?Tq,Zf&' ?TC?T\.5\9C?T*-M'clone?TFD~^COrOr?TҊ8'spans?Toh' ?T ]COrOr?Td%h'S?T1y'7' ?TFV)!1C?T@\!^"@'default?TAy]L_' ?TW)C?Th oOUC?TڣIC'clone?TWh YCPound?T,u'spans?TEE' ?TEnCPound?T 'S?T$+' ?TY@C?T ;/GG'default?TQU\+qvQ' ?T'YSC?TE J,C?T?"'clone?Tܛ' ZC?T%P,U'Target?Tߦ% X'deref?TbgEGC?T PA,J' deref_mut?TMQ}iWCQuestion?TY$/H'spans?T .' ?T4PߊCQuestion?Tp'S?Tb$bl' ?T =c8C?T1_;'default?TB""S_' ?Tٞډ[C?T$M؄C?T1"L'clone?ToD}C?TMgCRem?T.6(spans?Tْo-H( ?T :CRem?T9[p(S?T,RvYe( ?Tf2T-LC?Ti(default?Tf6`ukr( ?TafWC?TɼXC?TPUQM(clone?T3ԚC?T B+ (Target?TԾX(deref?TE0SuC?T | ( deref_mut?TY9CRemEq?Ta_(spans?Tb/( ?T@{PDCRemEq?T~Њ (S?T60( ?TjIF6=C?T3(default?Tg3( ?T LC?T)v $ebC?TE"m(clone?Te-yxCFatArrow?T3A*?(spans?T( ?TS@CFatArrow?TD"65(S?Tl/mWϛ( ?Tӡ$C?T%  (default?TFI( ?TApjCC?T)ʊ,-3C?Tr#(clone?Tat_CSemi?Tu(spans?TK|S( ?T瘔>RCSemi?Tʚ/Dn(S?T2s,( ?T3XC?T g!C?TM(clone?Tg70.C?TDs9N(Target?TWvs(deref?T|$}-GC?TT>Y( deref_mut?T^[O~eCShl?TJ9ST%(spans?T( ?Tc`.T CShl?T@3I% (S?TFu)n( ?T.V+eC?Tߛ'L(default?T%( ?T>|h|C?TƬRuC?T$0N(clone?TW(CShlEq?T9 Ǣo(spans?TڜNt( ?T06CShlEq?T"׆' (S?T[->;t( ?T[8r-8C?Tߠ(default?T5 ( ?TuIpC?Tj< uCC?TM\(clone?TKb:CShr?T(spans?TL%DP( ?T*CShr?T/݌7(S?TcK*( ?TCbH6C?T M!(default?TqV`m( ?TXfgC?TĻL^C?Ts6(clone?TpꐏeCShrEq?T^ m? (spans?Tp &&( ?Tg辧"]CShrEq?T* (S?T!mٽg( ?TcMm9C?TmMؗ4(default?THmiŚ( ?T1XCC?T05NͬC?T&#_(clone?TB2zCStar?T:{-S}B(spans?T=䟠( ?T͒5.CStar?TZ" W(S?TV -3( ?T|C?T^O])default?T'40) ?TA9K%WC?T'4LC?TT>JW)clone?Tڃ' !kC?T"TYpr)Target?Tvˮ_U)deref?TQb;|C?T) deref_mut?Thp2ҭ%CSub?T~k׃z )spans?T|֜:k) ?T@9ﳇ:cCSub?Tx8j{)S?TotlN') ?TU5C?T1)default?Tޞr5) ?Tq6C?TRwڰC?Tjd:)clone?T͒C?Tk)Target?T)^w{8)deref?TC?T<]Ѿ) deref_mut?Tl]CSubEq?T%)spans?TFwx) ?T w'CSubEq?T {P.)S?T) ?T.멒iC?T=|7?G )default?T(%[) ?TbLC?T/+C?T)-<)clone?Tt:҅\CTilde?T8Wj?Bi()spans?TPN) ?TW6CTilde?T(MA)S?TR%P) ?TtyL@C?TMv)default?Ta] }3) ?T /:C?TaӍKXC?TjfK)clone?TҌC?T-tF)Target?T3)bqp)deref?TXC?T"X(+sS) deref_mut?TS CBrace?ThrK)span?T'![:DCBrace?TuGřu)S?T7) ?TO@ C?T 7 )default?TXtC?TϱRhC?TV\Fk)clone?Ty5G7C?Toj덷A)surround?TAܠ.)F?T7%eT`C?T`_CBracket?TsŅ)span?Tϵ}jCBracket?TlyCt)S?TPu5) ?T2 Ub+C?T 9͍+)default?T.O1v#kC?Tw<C?T"敛)clone?Tt N1C?T&^zkF)surround?T6G c)F?T_ȿ{C?Tf\-7yCParen?ToTF)span?T\t䪃,CParen?Tf)S?T26j%5G) ?T@jC?TjiƬ*?Tʴ-Ht*Inner?T:Q]W*?Td1"*0?T. Meta?T&0*Path?Tk*?T)J@U*0?T^2:*List?Tח^*?Tk?v/*0?T* NameValue?TeBVb*?TNqݱ*0?T}p :b?Tו8d*from?Ts?TFbr e*from?TٷL??T]'aA,&*from?T1d?Tb 2=p* to_tokens?T$&́)MetaList?T>*path?TsE J* paren_token?T}6D؃*nested?T$>vI3 MetaNameValue?Tպ4k*path?T*BѦP>*eq_token?Tļ*lit?TsW NestedMeta?T|Q*Meta?TD *?T@(*;*0?T䄞a*Lit?T_2r*?TӣC*0?T5`zP?TuBۅ#s*from?TG?Tmw*from?T’L$q ?T\C* to_tokens?Txy Variant?TF*NG*attrs?T}* *ident?T9cz*fields?TrQ$<* discriminant?TUKFields?TMd*Named?Tf6='*?TuI!,Zn*0?TZ|*Unnamed?Th1*?TOc{&*0?T"`:*Unit?T lp*?T}:?Tv1*from?T~!dy?Tjnu*from?Tr;|v?T6]+* to_tokens?Td{٩ FieldsNamed?T/$FM* brace_token?To386y*named?Ta FieldsUnnamed?Ta|}B-* paren_token?T,g##~*unnamed?TL1-)\Field?TʠF1*attrs?TC0 *Block?Tud4+?T-yC5+0?Ti\~,*Box?T[/z6^+?T Gu=+0?T\$$ d*Break?TԠ*h?+?T`c!+0?T#'g*Call?TwMH+?Tc} 1+0?TffSol*Cast?TAB`H+?THI 5+0?T%X*Closure?T^+1 +?T9.}'+0?TN4>*Continue?T7M K+?TF=dz:D+0?T4900p*Field?TGz)Yw+?Te*J+0?Tqv-*ForLoop?TTC֕+?Tslvt+0?Ti*>`w*Group?TXߓ=+?Tuz-"+0?Tx}*If?TML60+?Tk!%UJ+0?TFm*Index?Tس%r+?T*ϵC+0?TveFU߱X*Let?Ti+?T.d+0?T!#=tJ6*Lit?T:ǚb+?T.Qؕ&+0?TVH*N*Loop?TVbK{+?T:|+0?T流آ*Macro?T[{x+?T7@;+0?TUJ *Match?T)*]+?TU6I:+0?T~ܗ=* MethodCall?T i+?T)6dPY+0?T`*ȟ*Paren?T @ +?T)D{*+0?TQjiC*Path?T+Wu+?T`-.)+0?T|8GT*Range?T"$-(*+?TQNGA+0?Tj* Reference?TC 8+?TRsC2+0?T8d{*Repeat?T(+?T!IU+0?T_*Return?Tu"& ~+?TLXh+0?THvS*Struct?T2X;#+?TW!C +0?T?)Z'Dk*Try?TwΙ#+?Tg+0?T!5}*TryBlock?TrT.ay+?T^IU6L+0?TG磵*Tuple?T^Bv+?TV[V:.+0?Tט[V]*Type?TQ 5=+?Tc*0$+0?Tw9aM*Unary?T>[+?TS?#+0?T3v *Unsafe?T @|+?T&*=+0?TwЮi*Verbatim?T k+?Tya+0?TV @*While?T xj+?T44q+0?TC]#+?T¤+0?TqA\\O*__TestExhaustive?TzLש+?TersʼJ+0?TȎ߲ ?Tsu(ߗ+from?Tg/܆?TvN-?+from?T뻧?T f+from?TN2?T>\+from?TP"z?TL}LM+from?T_5Q?TrE,i9+from?T r<?Tx mY+from?T>|]?TKo"4J+from?T&v Q?Tpb|+from?Tr/'OH?Ta+from?T-Ƽ/Q?T&fWґ;+from?T٬6?T M%+from?Td_?TPG.,from?Tk$ֆ7?Tt0,from?T7K?TA"9y/,from?TǪR(E?Tu t ,from?TbU>H?Tn}e,from?T.bUb?T\!,from?TBW*?TNiB?,from?T>Z| ?T _G/z[,from?TL!?T6\,from?TlR u"?T,!],from?T6*셗#?T.Hn,from?TW_+$?TG*Ơ,from?T."<(%?T3c,from?T)r51[&?T;bKȥ,from?Tؽ1Մ'?T'h-,from?TV7T((?T+ʞ),from?T4!)")?Ts":r,from?T=U͌Q, _noconstruct?T 7?Tq,right?TA}  ExprBlock?TI4, _noconstruct?TiM3:?T[?T8f, to_tokens?T p'E˂ ExprField?Tu'C,attrs?TVxQr9,base?T:; 2, dot_token?T$Cjy,member?Tﰱ ExprForLoop?T*, _noconstruct?T5UQtB??TY, to_tokens?TI|ӜlY ExprGroup?T=, _noconstruct?TV]':U@?Tm`-F, to_tokens?T̤loExprIf?T%D, _noconstruct?T4;J/-A?TLy l, to_tokens?T!ЕW ExprIndex?TKj:$-attrs?T/7M-expr?Tm0%D?TG`=- to_tokens?T bU ExprMatch?T=q>3- _noconstruct?T\ sE?T6n- to_tokens?T_c2ExprMethodCall?Tr#=*- _noconstruct?TϝZF?TZd- to_tokens?T&z ExprParen?Ti-attrs?T̷k#a- paren_token?TQeo*-expr?TDkf<\ExprPath?T b'-attrs?T]6*>-qself?Tm :qYC-path?TՒK& ExprRange?TKFiM/>- _noconstruct?Tok:9G?T _OیB- to_tokens?TƪطF4 ExprReference?Tvj- _noconstruct?T7<H?T:uX- to_tokens?TO.LU ExprRepeat?T- _noconstruct?T5@+BI?THuV- to_tokens?T-[# ExprReturn?Tѕ- _noconstruct?T6afM`J?T- _noconstruct?TYN?TAW- to_tokens?TXS$9ExprType?Tro- _noconstruct?T$4O?T[1- to_tokens?T(ZM ExprUnary?Tsz ek-attrs?T_-op?T"q|W-expr?Te~zl ExprUnsafe?T}PD/)- _noconstruct?TaQP?T80- to_tokens?T)y ExprWhile?T$x- _noconstruct?Tvm3FQ?Tآdp- to_tokens?T- {. ExprYield?Ţm}$- _noconstruct?TxP2mR?Ty?om- to_tokens?T\sqR#>Member?T7Yo-Named?T3IK-?TJ:~L-0?Tc@ }-Unnamed?Thƽ-?TrK6-0?TUIndex?TZTR% -index?Ta5-span?Tu{@;p"raw?TM *p}-span?Tepraw?TCSWN-__S?T6%v - ?Ty}GB`) ?TJ؁,-default?T ƓɊ?TF[0@-peek?Tg0-display?TG62SJ1?Toll-parse?T)0-?T?T;?- to_tokens?TATL?T%<8?T-clone?TK5!AGenerics?T@ =v-lt_token?T=1) *F-params?Tg7mxs-gt_token?T81- where_clause?T|(0  GenericParam?TaY--Type?TaI-?T9P@'-0?TGui,-Lifetime?T]=|R-?T{+9L-0?TE͉V-Const?T2n.?T%V}F.0?TA 5 ?T`j;=~.from?T.?T#yyU.from?Tl=?T-.from?Ta|=H?TΩgsJ. to_tokens?Tm r TypeParam?TG}.attrs?T=zj.ident?T$7. colon_token?TtLt`.bounds?T9`F'⥻.eq_token?Thv.default?Tr6  LifetimeDef?T#: T .attrs?TGM.lifetime?TrpѺ. colon_token?T#y|.bounds?Ty(sI> ConstParam?T 3m.attrs?T{ 0L. const_token?TNJ>.ident?T5. colon_token?T;' .ty?T6pJ.eq_token?TH)ѽ.default?Ti PO?Tt1f.'a?Tq^0b.clone?T\Z*?TFY9:.'a?T$kbN,.clone?T_X%?TrZa\W.'a?T 5g.clone?TReFЋBoundLifetimes?Tp. for_token?T*g.lt_token?TDUD. lifetimes?T9ץ".gt_token?Tq]8JTypeParamBound?T bd_:>Y.Trait?TN{fu.?T71u .0?Tx-|1.Lifetime?T] .?T)d.0?Tv?TB_~TX&P.from?Tb& ?T5.from?TPrRd]?TuH. to_tokens?T.Gb TraitBound?T$\7. paren_token?T73O.modifier?T٠uzQ. lifetimes?T?On.path?T9}[Ԩ\DkTraitBoundModifier?T _2.None?T>x..?Ty2tn.Maybe?TplӉ.?Ts当-S$.0?T# WhereClause?TŃ. where_token?TuN/. predicates?TCR xVWherePredicate?TYe.Type?T vf.?T:.0?TqJ.Lifetime?T1?Y7G.?TؐSp.0?Tܴ.Eq?TEZ.?TzAű!1.0?T*X?T/k.from?T-J/g?TW$5J.from?TRxz?TsSt1.from?T0̡?TS. to_tokens?T  PredicateType?T`ip`+. lifetimes?Tc1zk0T. bounded_ty?TEE!. colon_token?TT?U2ށ.bounds?T,PredicateLifetime?TD.lifetime?T ? . colon_token?TYOY:.bounds?TblCK8 PredicateEq?T\p.lhs_ty?TN>W|.eq_token?T.rhs_ty?T'l Lit?T7S6x.Str?TeM\9.?TR_w.0?T|@n.ByteStr?T n;M.?TrOz.0?TyIkB .Byte?T+@/.?TD.0?T>W.Char?T~.?T}]H.0?ToRpS.Int?TI_" .?TƯs .0?T"p-.Float?TLJO.?Td;֡+.0?Ti@fA.Bool?Tw6|K.:.?T~JN.0?Tgג.Verbatim?T_.?Txǽ "/.0?T+Q ?T߭[/from?T% z ?Tu d#/from?T2 | ?TH/from?Th, ?TBa?/from?Trv I ?TT7.GA/from?Tpg} ?TvƟ (>/from?T | ?T}/from?Tϱ[6g߅ ?T xK/ to_tokens?TmTO LitStr?TN+>/repr?TO(  LitByteStr?TU@`#/repr?T1 LitByte?Tbfu/repr?TI"< LitChar?TT/repr?Tp 4 LitInt?Tzj11/repr?T{/B*? LitFloat?TiXGKF/repr?Td,\) LitBool?TXN/value?TF si/span?T]4U$R ?T_|kϵ/clone?TOv W LitStr?T[S ?T^Q._x/clone?T0=  LitByteStr?TE r.^ ?TC//clone?TS!~ Data?T-OY 5r/Struct?TRM/?T=Ѳ/0?TM/Enum?TV /?Tp_r+/0?T*g-(//Union?T u[Zgn/0?TMnpΘ/And?Tw/H/?T9Æ=/0?TS) ?/BitXor?Tiiâ*/?Tm#Ο/0?T|nY/BitAnd?TJ@a0?T8Z*00?TJtf/BitOr?TX-0?T#{|cf00?T"kÐc/Shl?Tx8ED0?TQ+000?T.KPyƾ/Shr?Tp 0?T)N/00?T*G/Eq?T"^0?Ti3hXv00?T4|+g/Lt?T_K=0?T,QdX00?Til9A /Le?Tk(V0?Tn!00?TPyݽV/Ne?TDꭒ0?Tn9~sRL00?T;(/Ge?T絥"QO0?TB00?T܎y/Gt?T A90?T$iXG00?TW\!_׼/AddEq?TM^K0?Tz'00?TQtFf/SubEq?T B*m0?Tχmo00?Tƹ$44-/MulEq?TA$`p0?T0u/00?T5*i/DivEq?Tlһ٫0?T-H$00?T?` ] b/RemEq?T֯^0?Tv W]_00?TrLA/BitXorEq?T27>0?Tϐ00?T"yv}͊/BitAndEq?Tp[`v 0?T&䰠00?T-_%Z/BitOrEq?Tc^AJ@0?TflJ00?T.D//ShlEq?TIG0?T'1N*00?Tw/ShrEq?T8f70?T#p0 Reference?TVֺ0?TO`Ya00?T40Slice?Tf3pM0?T68R00?Th}"^H0 TraitObject?T0zS0?T]0‘900?TUE0Tuple?TH10?Tb^iř00?Tj*0Verbatim?TB#n$ K0?TC<#00?T3 u0__TestExhaustive?TYX0?T \Jz00?T|[FF ?T/SԵ0from?T/ ?T:I0from?T;H=uz ?TU"u^0from?T$ǒ  ?TH3@0from?T") ?Tjwy1from?TXNn\ ?Tq `1from?TiZ- ?TQY^)1from?T} ?T 71from?TB&9 ?T 9蕘R1from?TjBq2%  ?T{si1from?Tu!==  ?T2UR31from?TR i<  ?TRHK [ f1from?TFzY(  ?TE ww1from?T?'C9Ƨ  ?T"ka1from?T h@ ?Tث/1 to_tokens?T Vkҵ   TypeArray?T蛬!1 bracket_token?Tٔn1elem?Tc Oy1 semi_token?Tˬ?^Ȏ1len?T  TypeBareFn?T~S͵ظ1 lifetimes?T{l.K1unsafety?Tr\y1abi?T Z1fn_token?T$R1 paren_token?T[y}O1inputs?TUYbOZCo1variadic?Tؠ@1output?TVkk  TypeGroup?TjN1 group_token?T*5Fl1elem?TO㥻p  TypeImplTrait?TG,ߦP1 impl_token?TYٳ|G1bounds?TKær1  TypeInfer?Tj`hPM@o1underscore_token?T_b9  TypeMacro?T&ᯘ,1mac?T6s1$p  TypeNever?T' 6rZ1 bang_token?T+ua^  TypeParen?TI"-oW1 paren_token?T!r-/1elem?T |< TypePath?THW=˃I1qself?T' &1path?TD#3 TypePtr?TTx 1 star_token?T Ǥ\(1 const_token?T{$|<1 mutability?T.: 1elem?Tcqn]]  TypeReference?T2 1 and_token?TԔ/1lifetime?TF@s9 y1 mutability?T15uZ #1elem?T0_iCȌ  TypeSlice?TMA?1 bracket_token?Tצwvݼ5<1elem?Tm.' TypeTraitObject?Ts[1 dyn_token?T9 ~1bounds?TiEE8  TypeTuple?TkF1dnC1 paren_token?TR1elems?T5,^:T Abi?T.|1 extern_token?TMW1name?T6y  BareFnArg?TBi1attrs?TBm=-1name?T|]IP1ty?Tb Variadic?T=>Mn41attrs?Td1P1dots?TT>\  ReturnType?TCڊ1Default?TL>C1?Txh1Type?TMc?1?T -V10?T.!11?To#xPath?TD,4z1 leading_colon?TiD781segments?T1Nn_9 PathSegment?T1ident?T,.z1 arguments?T9^cR PathArguments?Tn[$W:1None?TsU ?B1?T=}+}c1AngleBracketed?TH`lO1?T㨕9( 10?TF?Y)1 Parenthesized?Tr{i1?TbE10?Te& GenericArgument?T,縋1Lifetime?Td# 1?T%WW10?T`:׳%1Type?TsߴMЩ1?TEJ10?T[,)1Binding?T dP1?Tk #AS10?T>+A1 Constraint?TL1,1?T+B"10?T*wHl1Const?TS\ 4%w1?TUi10?TE AngleBracketedGenericArguments?Ty*1 colon2_token?T6#K;^1lt_token?Ty՞i!Q1args?T<Ѽ‚Jk1gt_token?TcүjBinding?T I1ident?T˼jH/1eq_token?TSBoV1ty?T!Yc Constraint?TU>/2ident?TˉQEI2 colon_token?TRt2bounds?TvParenthesizedGenericArguments?TS.A/2 paren_token?T 0m[2inputs?Ti1Ԓ2output?T*FQSelf?TnE2lt_token?T#-P62ty?T!C|2position?Tw=2as_token?TtKq:c2gt_token?TGa:clone?T K2?T !2?Tϓ 22clone?T_f﹭ϥ2?T̎e2clone?TrF2?T5y@N=2?Tyx.2clone?T*2?T;<2clone?Tk+2?T>, 2clone?T[ƴj2?TJ[OK]2?T]K{Z|v,2clone?T]9Os2?T(*W2clone?T pXKP2 ?TI1}2clone?T|Zñ2 ?T-7@32clone?T.oP2 ?T `9 2clone?Ty} 2 ?TTW%ܬ2clone?TpmO?w|2 ?Tڡ&@62clone?Txlb2?T!VSg2b2clone?T"nb2?T9?2clone?T' $2?T]>2clone?TpTi2?T0\2clone?T}sa2?Tgc`;l.2clone?T0'+ZF_2?TlloEc2clone?T ^iz2?T_I c2clone?T,C' 2?T\$wWC2clone?Tn}oR2?TBn2clone?T X]2?Tԏ]2clone?TUb.|Fl2?TXq2clone?TKj2?TlhQ2clone?TVtlJ2?To~;^x2clone?T,mD2?TR2clone?T~p2?TßοxUo2clone?Ttw&2?Tu𡸜{fX2"?TD(#2clone?T?aj2#?T^l, 2clone?TA%U]2$?T/˽u2clone?TZ2%?TG"u2clone?T2+tc2&?TB 2clone?TԱR܏2'?TSН72clone?T?;2(?T-42clone?T62)?T1Ju2clone?T6S[2*?T$>2clone?ThW2+?Tdd\E.2clone?TZEÈ2,?TJ$2clone?TI8k2-?Tdsk2clone?T]}ў2.?T >2clone?TA+r!:2/?TU Am2clone?T7)-L20?T$%)~2clone?T( 2ḋV21?T6Ѝ 2clone?TqųiL22?T,#[c*2clone?T7u|23?T6Q02clone?T{=Z24?T*<2clone?TKF25?Ti2clone?TI[26?TaCR 92clone?TN%U27?T+eJ28?TaCW2clone?Te+29?TVye?q3clone?Tܩ\2:?Tli@O3clone?TB2;?T[% W3clone?TۻK 2<?T_gmEE3clone?T ؒϼ2=?Tai;v3clone?Tgg(2>?T|;43clone?TK2f,O2??T2 !c3clone?TU/02@?Tʨ`3clone?TبZl2A?THq.q?3clone?TwoM2B?T&V3clone?T?ђO!2C?Tl3clone?T溯h$2D?THu3clone?TqU"-=2E?Ty43clone?TÇ l 2F?TH-r#F3clone?TS2G?Tv3clone?T~5FN߼o2H?T< j}3clone?T !,z2I?T;X13clone?TQ®0gE2J?TO>/M2K?T 83clone?TlmAW2L?TnD#X(3clone?T!<#z B2M?TxheyM3clone?T< 3J2N?Tg彩!M3clone?Tv2O?TRn|3clone?Tƹtהf2P?TG )vxPe3clone?Tq= n2Q?TV\@5 }3clone?T$ʧP2R?TۚeGV3clone?T:94$l2S?T?x3clone?T}X custom_punctuation_len?Ti@&A-"&2  1"&#( /1#'11 1 1!!11"% /"&#'"'!$$( /. 1!!  / 1.*#' 0"& / / 1*!%-#("%- .$) 1 /--"&!$**"&"&- 1!$$)#' 0.#(  !% 1#( 1#(.* 1#'  1"%#( /#'*.!$.!!#'*  #(!%"&!$  *"% /$(-"& 1$)#'!$ 1#("%.    "%. /- 1. 1* 1.!!/"%/#(  #($)#(  /#(!$$($(!%#'#'#'#("&  #'/!%#'"%  "&!$!!)#'"&$) )/  )!$/#($))!$!$ "%!$!%"&!!"'#(#'/"%"&#'"%  "&"%"&  #("&"&#("&$(#'$(.))!$!$  #'#'!$  #("&!!"%"&/"%"&"&  "&))#'//#(!$/#'!%$(#())  /#'/"%!!!%!$"%  #'"%!!"%#'"%"&!$"&#("&   #'$)))#($)/! $)#()--4-  -  --  $$  ''((&&%%&&))%%((&&&&%%''!!''%%$$)(''%%((  &&%%   ))))-&&$$&&%%''''$$(((())''))&&''  --((!!  ))!!))  $$((&&.%%$$1((((%%'''&  ((((  !!%%''%%&&((&&))''))2*  &&)(30$$''  ))&&$$$$$$((!!''$$%%2/))!!&&((&%%%))((''%%$$))((     %%--2.%%('&&((&&''''&&((''))%%%%))$$''&%&&%%((%%''&&$$&&%%''%%((''$$)))(-  -&&$$$$&%''%%((%%''''&&)(''&&%%%%$$(())))%%2.  212.3122222.&&2*213.%%''  2-))312.''2/&&3.2*2*21))3.!!2-''!!&&'&31  //  2,&&&&((2/2/%%2..$$$$213.))''2,31%%%%3*((31)(.31//((((2/312,  3*2*212*$$302/2.2*31312121//2*((31$$.313*2*222*3*&%('2/!!))2.2-2-2,////21''2*2/31(())2/  $$''  ''((''2-2)2-  2.2-%%2-((&&30312///$$21))  %%%%31((%%&&  312-2.))  &&--3*  ,***,*),*,*10,*-/.+***.-,***+*+*/.,*/.00/.,*//**+*+*..10+***,*/.0010,***//,*//+*10.,*,*1,*,***).-,*1010**-..**10,*+*+*,*..1,*00)/.).-)..+*..,*10,*,*/.+***-,*,*10,*,* /,*10+*-00 /*** /   /,,,,"&,,  /."',*11-**#("&,,--1,,1--**--1$(,-!$ 1*--"%1,,1-2"&"&  /#(--!$$(-.  "&"%..#',,  .- 1 1.#'--1"%2--#'!$!!*,, 1"&1,  --*#',**..#(1 /$),*"&!$**$),,.. /!%#(#' /-----  #("%$).!$--- 1 /#'--#'10!%"% /"&1*.1 0-.!$"&#( 11 /.  ,,1--,,----1*,,- /!!"%)#'--#( /  1--**#(,,1 1--!%..!! /*--Ev!v   9G`mqE8707 8 0 a7E0u?       2-222İ 228̰ 888 88͕1İ ͕1͕1͕1İ ͕1͕17 777 773İ 333İ 339 999 99* -*** **˨* ˨*˨*˨* ˨*˨*' ''' ''GroupGroupͷ   Ident         Punct        Literal ׺ End  Ȼ   Ȼ EndȻ . UUڼ  Ȼ U 222   4TP M4 7Mÿ  xÿ ȿ M  M x Punctuatedÿ  Punctuatedȿ ÿ ȿ ÿ ȿ ʕEndÿ ʕʕʕ ʕÿ ʕʕ""""""־־־־־־ Some       Chain"       ɏ#9 Tɏ#9ɏ#9 ɏ#9 ɏ#9ɏ#9ܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢܢ ܢܢܢܢܢܢ ܢܢܢܢܢܢ ܢܢܢܢܢܢ ܢܢܢܢܢܢ ܢܢܢܢܢܢ ܢܢܢܢܢܢ ܢܢܢܢܢܢ!ܢܢܢܢܢܢ!ܢܢܢܢܢܢ!ܢܢܢ$$$֔֔֔$֔֔֔֔֔֔$֔֔֔֔֔֔$֔֔֔$$$$$$$$$$$$ҖҖҖ%ҖҖҖҖҖҖ%ҖҖҖҖҖҖ%ҖҖҖ%%%%%%%%%%%%ϘϘϘ%ϘϘϘϘϘϘ%ϘϘϘϘϘϘ%ϘϘϘ%%%%%%%%&&&&ɚɚɚ&ɚɚɚɚɚɚ&ɚɚɚɚɚɚ&ɚɚɚ&&&&&&&&&&&&ǜǜǜ&ǜǜǜǜǜǜ&ǜǜǜǜǜǜ&ǜǜǜ&&&&&'ߝߝߝ'ߝߝߝߝߝߝ'ߝߝߝߝߝߝ'ߝߝߝ'''ĞĞĞ'ĞĞĞĞĞĞ'ĞĞĞĞĞĞ'ĞĞĞ''''''ޟޟޟ'ޟޟޟޟޟޟ'ޟޟޟޟޟޟ'ޟޟޟ'''ǠǠǠ'ǠǠǠǠǠǠ'ǠǠǠǠǠǠ'ǠǠǠ''((((ڡڡڡ(ڡڡڡڡڡڡ(ڡڡڡڡڡڡ(ڡڡڡ(((ĢĢĢ(ĢĢĢĢĢĢ(ĢĢĢĢĢĢ(ĢĢĢ((((((٣٣٣(٣٣٣٣٣٣(٣٣٣٣٣٣(٣٣٣((((((()))))إإإ)إإإإإإ)إإإإإإ)إإإ)))))))Inner%**  Path1  * *    List**   NameValue**   Meta   * *    Lit.*  Named*** Unnamed**  Public*** Crate**   Restricted**  Array,** Assign,*  AssignOp,*  Async,*  Await,*  Binary,*  Block,+   Box,  +      Break,+  Call , +  Cast , +  Closure , +  Continue , +  Field , +  ForLoop,+  Group,+   If,  +      Index-+   Let-  +       Lit-  +      Loop-+  Macro-+  Match-+   MethodCall-+  Paren-+  Path-+  Range-+   Reference-+  Repeat-+  Return-+  Struct-+   Try-  +      TryBlock - +  Tuple!-!+  Type"-"+  Unary#-#+  Unsafe$-$+  Verbatim%%+ ׁ While&-&+ ʂ Yield'-'+   __TestExhaustive(  ( +       Named   - -   Ӛ Unnamed-Ӛ Ӛ -Ӛ ߅ Ӛ  Ӛ Ӛ -Type.-̰  Lifetime.-̰  Const..̰ ׉ Trait...ʊ Lifetime . ‹ Maybe'.. Type... Lifetime..ލ  Eq..ލ   Str/  .      ByteStr/.   Byte/  .       Char/  .   ے    Int/  .   ̓   Float/.   Bool/  .      Verbatim׺ . ׺  Raw  / /    Paren)  / /     Brace)  /      Bracket)/  ЍStruct/ЍЍ/Ѝ/Ѝ ЍЍEnum// ٛ Union// ̜ Add$// Sub)/  Mul(/  Div%/  Rem(/  And$/  Or'/  BitXor%/ أ BitAnd$0 ̤ BitOr ' 0  Shl ( 0  Shr ( 0  Eq & 0   Lt '   0      Le&0  Ne'0  Ge&0 ѫ  Gt&  0      AddEq$0  SubEq)0  MulEq'0  DivEq%0  RemEq(0  BitXorEq%0  BitAndEq$0  BitOrEq'0  ShlEq(0 Դ ShrEq(0 ǵ Deref 00 Not 0  Neg 0  Array100 ܕBareFn1ܕܕ0ܕ ܕ ܕܕGroup10   ImplTrait10  Infer10 ޼ Macro10 ѽ Never10 ľ Paren10  Path10   Ptr 1   0      œ Reference 1œ œ0œ œ œœSlice 1 0   TraitObject 1 0  Tuple 1 0  ϟVerbatimׁ ϟϟ0ϟ ϟׁ ϟϟ __TestExhaustive   0      Type'Type  11  .AngleBracketed1..1.1. .., Parenthesized2,,1, , ,,Lifetime‹ 11‹  Type   1      Binding11   Constraint21   Const   1      w [![github]](https://github.com/dtolnay/syn) [![crates-io]](https://crates.io/crates/syn) [![docs-rs]](crate)z{g [github]: https://img.shields.io/badge/github-8da0cb?style=for-the-badge&labelColor=555555&logo=githubjk [crates-io]: https://img.shields.io/badge/crates.io-fc8d62?style=for-the-badge&labelColor=555555&logo=rustn [docs-rs]: https://img.shields.io/badge/docs.rs-66c2a5?style=for-the-badge&labelColor=555555&logoColor=white&logo=data:image/svg+xml;base64,PHN2ZyByb2xlPSJpbWciIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgdmlld0JveD0iMCAwIDUxMiA1MTIiPjxwYXRoIGZpbGw9IiNmNWY1ZjUiIGQ9Ik00ODguNiAyNTAuMkwzOTIgMjE0VjEwNS41YzAtMTUtOS4zLTI4LjQtMjMuNC0zMy43bC0xMDAtMzcuNWMtOC4xLTMuMS0xNy4xLTMuMS0yNS4zIDBsLTEwMCAzNy41Yy0xNC4xIDUuMy0yMy40IDE4LjctMjMuNCAzMy43VjIxNGwtOTYuNiAzNi4yQzkuMyAyNTUuNSAwIDI2OC45IDAgMjgzLjlWMzk0YzAgMTMuNiA3LjcgMjYuMSAxOS45IDMyLjJsMTAwIDUwYzEwLjEgNS4xIDIyLjEgNS4xIDMyLjIgMGwxMDMuOS01MiAxMDMuOSA1MmMxMC4xIDUuMSAyMi4xIDUuMSAzMi4yIDBsMTAwLTUwYzEyLjItNi4xIDE5LjktMTguNiAxOS45LTMyLjJWMjgzLjljMC0xNS05LjMtMjguNC0yMy40LTMzLjd6TTM1OCAyMTQuOGwtODUgMzEuOXYtNjguMmw4NS0zN3Y3My4zek0xNTQgMTA0LjFsMTAyLTM4LjIgMTAyIDM4LjJ2LjZsLTEwMiA0MS40LTEwMi00MS40di0uNnptODQgMjkxLjFsLTg1IDQyLjV2LTc5LjFsODUtMzguOHY3NS40em0wLTExMmwtMTAyIDQxLjQtMTAyLTQxLjR2LS42bDEwMi0zOC4yIDEwMiAzOC4ydi42em0yNDAgMTEybC04NSA0Mi41di03OS4xbDg1LTM4Ljh2NzUuNHptMC0xMTJsLTEwMiA0MS40LTEwMi00MS40di0uNmwxMDItMzguMiAxMDIgMzguMnYuNnoiPjwvcGF0aD48L3N2Zz4K 
  K Syn is a parsing library for parsing a stream of Rust tokens into a syntax N tree of Rust source code.  K Currently this library is geared toward use in Rust procedural macros, but N6 contains some APIs that may be useful more generally. 9 G - **Data structures** — Syn provides a complete syntax tree that can JE represent any valid Rust source code. The syntax tree is rooted atHI [`syn::File`] which represents a full source file, but there are otherLA entry points that may be useful to procedural macros includingD2 [`syn::Item`], [`syn::Expr`] and [`syn::Type`].5= - **Derives** — Of particular interest to derive macros is@H [`syn::DeriveInput`] which is any of the three legal input items to aKM derive macro. An example below shows using this type in a library that canP2 derive implementations of a user-defined trait.5M - **Parsing** — Parsing in Syn is built around [parser functions] with thePK signature `fn(ParseStream) -> Result`. Every syntax tree node definedNJ by Syn is individually parsable and may be used as a building block forMI custom syntaxes, or you may dream up your own brand new syntax withoutL* involving any of our syntax tree types.-N - **Location information** — Every token parsed by Syn is associated with aQL `Span` that tracks line and column information back to the source of thatOH token. These spans allow a procedural macro to display detailed errorKL messages pointing to all the right places in the user's code. There is anO example of this below.L - **Feature flags** — Functionality is aggressively feature gated so yourOJ procedural macros enable only what they need, and do not pay in compileM time for all the rest. [`syn::File`]: File [`syn::Item`]: Item [`syn::Expr`]: Expr [`syn::Type`]: Type" [`syn::DeriveInput`]: DeriveInput% [parser functions]: mod@parse!
 # Example of a derive macroK The canonical derive macro using Syn looks like this. We write an ordinaryNJ Rust function tagged with a `proc_macro_derive` attribute and the name ofML the trait we are deriving. Any time that derive appears in the user's code,OK the Rust compiler passes their data structure as tokens into our macro. WeNG get to execute arbitrary Rust code to figure out what to do with thoseJG tokens, then hand some tokens back to the compiler to compile into theJ user's crate.) [`TokenStream`]: proc_macro::TokenStream, ```toml  [dependencies] syn = "1.0" quote = "1.0" [lib]  proc-macro = true  ```   ```  # extern crate proc_macro;  #  use proc_macro::TokenStream;  use quote::quote; + use syn::{parse_macro_input, DeriveInput};!.!+ # const IGNORE_TOKENS: &str = stringify! {!. #[proc_macro_derive(MyMacro)]!! # };"5 pub fn my_macro(input: TokenStream) -> TokenStream {"81 // Parse the input tokens into a syntax tree"4: let input = parse_macro_input!(input as DeriveInput);#=#8 // Build the output, possibly using quasi-quotation#; let expanded = quote! {$ // ...$ };$ $3 // Hand the output tokens back to the compiler$6 TokenStream::from(expanded)$# }% ```%%K The [`heapsize`] example directory shows a complete working implementation%NL of a derive macro. It works on any Rust compiler 1.31+. The example derives%OK a `HeapSize` trait which computes an estimate of the amount of heap memory&N owned by a value.''K [`heapsize`]: https://github.com/dtolnay/syn/tree/master/examples/heapsize'N( ```( pub trait HeapSize {(> /// Total number of bytes of heap memory owned by `self`.(A. fn heap_size_of_children(&self) -> usize;(1 }) ```))E The derive macro allows users to write `#[derive(HeapSize)]` on data)H structures in their program.) * ```*+ # const IGNORE_TOKENS: &str = stringify! {*. #[derive(HeapSize)]* # };* struct Demo<'a, T: ?Sized> {*  a: Box,+ b: u8,+ c: &'a str,+ d: String,+ }+ ```++


+, # Spans and error reporting,,K The token-based procedural macro API provides great control over where the,NM compiler's error messages are displayed in user code. Consider the error the,PE user sees if one of their field types does not implement `HeapSize`.-H. ```.+ # const IGNORE_TOKENS: &str = stringify! {.. #[derive(HeapSize)]. # };. struct Broken {. ok: String,/ bad: std::thread::Thread,/! }/ ```//D By tracking span information all the way through the expansion of a/GK procedural macro as shown in the `heapsize` example, token-based macros in0NH Syn are able to trigger errors that directly pinpoint the source of the0K problem.1 1 ```text1 O error[E0277]: the trait bound `std::thread::Thread: HeapSize` is not satisfied1R --> src/main.rs:7:52 |2" 7 | bad: std::thread::Thread,2%V | ^^^^^^^^^^^^^^^^^^^^^^^^ the trait `HeapSize` is not implemented for `Thread`2Y ```33
33 # Parsing a custom syntax33D The [`lazy-static`] example directory shows the implementation of a3GK `functionlike!(...)` procedural macro in which the input tokens are parsed4N using Syn's parsing API.55Q [`lazy-static`]: https://github.com/dtolnay/syn/tree/master/examples/lazy-static5T6M The example reimplements the popular `lazy_static` crate from crates.io as a6P procedural macro.66 ```6 # macro_rules! lazy_static {6  # ($($tt:tt)*) => {}7 # }7 #7 lazy_static! {7L static ref USERNAME: Regex = Regex::new("^[a-z0-9_-]{3,16}$").unwrap();7O }8 ```88K The implementation shows how to trigger custom warnings and error messages8N on the macro input.99 ```text9 , warning: come on, pick a more creative name9/ --> src/main.rs:10:169 |:< 10 | static ref FOO: String = "lazy_static".to_owned();:? | ^^^: ```::
:: # Testing; ;G When testing macros, we often care not just that the macro can be used;JL successfully but also that when the macro is provided with invalid input it;OK produces maximally helpful error messages. Consider using the [`trybuild`]FK mistakenly make an error no longer trigger or be less helpful than it used>N to be.? ?2 [`trybuild`]: https://github.com/dtolnay/trybuild?5?
?@ # Debugging@@I When developing a procedural macro it can be helpful to look at what the@LB generated code looks like. Use `cargo rustc -- -Zunstable-options@E7 --pretty=expanded` or the [`cargo expand`] subcommand.A:A: [`cargo expand`]: https://github.com/dtolnay/cargo-expandA=BJ To show the expanded code for some crate that uses your procedural macro,BMI run `cargo expand` from that crate. To show the expanded code for one ofBLL your own test cases, run `cargo expand --test the_test_case` where the lastCOC argument is the name of the test file without the `.rs` extension.DFDG This write-up by Brandon W Maister discusses debugging in more detail:DJ8 [Debugging Rust's new Custom Derive system][debugging].E;E[ [debugging]: https://quodlibetor.github.io/posts/debugging-rusts-new-custom-derive-system/E^F
FF # Optional featuresFFE Syn puts a lot of functionality behind optional features in order toFHL optimize compile time for the most common use cases. The following featuresGO are available.HHO - **`derive`** *(enabled by default)* — Data structures for representing theHRK possible input to a derive macro, including structs and enums and types.HNO - **`full`** — Data structures for representing the syntax tree of all validIR5 Rust source code, including items and expressions.J8N - **`parsing`** *(enabled by default)* — Ability to parse input tokens intoJQ' a syntax tree node of a chosen type.K*K - **`printing`** *(enabled by default)* — Ability to print a syntax treeKN& node as tokens of Rust source code.L)6 - **`visit`** — Trait for traversing a syntax tree.L9J - **`visit-mut`** — Trait for traversing and mutating in place a syntaxMM tree.M > - **`fold`** — Trait for transforming an owned syntax tree.MAO - **`clone-impls`** *(enabled by default)* — Clone impls for all syntax treeNR types.N N - **`extra-traits`** — Debug, Eq, PartialEq, Hash impls for all syntax treeOQ types.O H - **`proc-macro`** *(enabled by default)* — Runtime dependency on theOK6 dynamic library libproc_macro from rustc toolchain.P9QdocQQQ html_root_urlQ Qhttps://docs.rs/syn/1.0.76QQ5RallowRRR non_camel_case_typesRRRallowRRW; clippyRR collapsible_matchRR clippySS doc_markdownS S clippySS eval_order_dependenceSS clippySS inherent_to_stringSS clippyST large_enum_variantTT clippyTT manual_mapT T clippyTT match_on_vec_itemsTU clippyUU missing_panics_docUU clippyUU needless_doctest_mainUU clippyUU needless_pass_by_valueUU clippyUU never_loopU V clippyVV too_many_argumentsVV clippyVV trivially_copy_pass_by_refVV clippyVV unnecessary_unwrapVV clippyWW wrong_self_conventionWRXallowXX^O clippyXX cast_possible_truncationXX clippyXY cloned_instead_of_copiedYY clippyYY default_trait_accessYY clippyYY empty_enumY Y clippyYY expl_impl_clone_on_copyYY clippyZZ if_not_elseZ Z clippyZZ match_same_armsZZ clippy[[ "match_wildcard_for_single_variants["[ clippy[[ missing_errors_doc[[ clippy[[ module_name_repetitions[[ clippy[[ must_use_candidate[\ clippy\\ option_if_let_else\\ clippy\\ redundant_else\\ clippy\\ shadow_unrelated\\ clippy\\ similar_names\ ] clippy]] single_match_else]] clippy]] too_many_lines]] clippy]] unseparated_literal_suffix]] clippy]] used_underscore_binding]^ clippy^^ wildcard_imports^Xprelude_import macro_use _^cfg^^_ all^^_ not^^_ all^^_ target_arch^ ^wasm32^^ any^^_ target_os^ ^unknown^ ^ target_os^ _wasi__ feature__ proc-macro_ ^__`_cfg_`` feature``printing` _` `  macro_use` ` a`cfg``` feature``parsing` ``doc` `a hidden``a  macro_usea !a ߬# ǭXdoc> hidden'a""XdocI hiddenޮ'a&&\ܯdocܯT߯ hiddenگ'a**Wܰcfgܰ_߰ any featurefull featurederiveڰ1doc` hidden'a..ӱ Fdock hiddenT133331 Fdoc hiddenT466664 Jdoc hiddenX799997 Kcfg any featurefull featurederive1S:<<<<: s=????=K Parse a set of parentheses and expose their content to subsequent parsers.N # Example  ``` # use quote::quote; #= use syn::{parenthesized, token, Ident, Result, Token, Type};@& use syn::parse::{Parse, ParseStream};)! use syn::punctuated::Punctuated;$0 // Parse a simplified tuple struct syntax like:3 // // struct S(A, B); struct TupleStruct {" struct_token: Token![struct],% ident: Ident, paren_token: token::Paren,") fields: Punctuated,, semi_token: Token![;], } impl Parse for TupleStruct { 3 fn parse(input: ParseStream) -> Result {6 let content; Ok(TupleStruct {* struct_token: input.parse()?,-# ident: input.parse()?,&; paren_token: parenthesized!(content in input),>< fields: content.parse_terminated(Type::parse)?,?( semi_token: input.parse()?,+ }) }  } # # fn main() { # let input = quote! { # struct S(A, B); # }; 2 # syn::parse2::(input).unwrap();5 # } ```  macro_export L Parse a set of curly braces and expose their content to subsequent parsers.O # Example  ``` # use quote::quote; #6 use syn::{braced, token, Ident, Result, Token, Type};9& use syn::parse::{Parse, ParseStream};)! use syn::punctuated::Punctuated;$* // Parse a simplified struct syntax like:- // // struct S { // a: A, // b: B, // }  struct Struct {" struct_token: Token![struct],% ident: Ident, brace_token: token::Brace,"* fields: Punctuated,- } struct Field { name: Ident, colon_token: Token![:], ty: Type, } impl Parse for Struct {3 fn parse(input: ParseStream) -> Result {6 let content; Ok(Struct {* struct_token: input.parse()?,-# ident: input.parse()?,&4 brace_token: braced!(content in input),7= fields: content.parse_terminated(Field::parse)?,@ }) }  } impl Parse for Field {3 fn parse(input: ParseStream) -> Result {6 Ok(Field {" name: input.parse()?,%) colon_token: input.parse()?,, ty: input.parse()?,# }) }  } # # fn main() { # let input = quote! { # struct S { # a: A, # b: B, # } # }; - # syn::parse2::(input).unwrap();0 # } ```  macro_export F Parse a set of square brackets and expose their content to subsequentI parsers.  # Example  ``` # use quote::quote; # use proc_macro2::TokenStream;!, use syn::{bracketed, token, Result, Token};/& use syn::parse::{Parse, ParseStream};)" // Parse an outer attribute like:% // // #[repr(C, packed)] struct OuterAttribute { pound_token: Token![#],# bracket_token: token::Bracket,& content: TokenStream, } impl Parse for OuterAttribute {#3 fn parse(input: ParseStream) -> Result {6 let content; Ok(OuterAttribute {) pound_token: input.parse()?,,9 bracket_token: bracketed!(content in input),<' content: content.parse()?,* }) }  } # # fn main() { # let input = quote! { # #[repr(C, packed)]  # }; 5 # syn::parse2::(input).unwrap();8 # } ```  macro_export aa  macro_usea a @ Tokens representing Rust punctuation, keywords, and delimiters.CG The type names in this module can be difficult to keep straight, so weJF prefer to use the [`Token!`] macro instead. This is a type-macro thatI. expands to the token type of the given token.1 [`Token!`]: crate::Token # Example : The [`ItemStatic`] syntax tree node is defined like this.=" [`ItemStatic`]: crate::ItemStatic% ```> # use syn::{Attribute, Expr, Ident, Token, Type, Visibility};A # pub struct ItemStatic { pub attrs: Vec," pub vis: Visibility,& pub static_token: Token![static],)) pub mutability: Option,, pub ident: Ident, pub colon_token: Token![:],# pub ty: Box, pub eq_token: Token![=],  pub expr: Box, pub semi_token: Token![;]," } ``` # Parsing J Keywords and punctuation can be parsed through the [`ParseStream::parse`]MB method. Delimiter tokens are parsed using the [`parenthesized!`],E' [`bracketed!`] and [`braced!`] macros.*; [`ParseStream::parse`]: crate::parse::ParseBuffer::parse()>* [`parenthesized!`]: crate::parenthesized!-" [`bracketed!`]: crate::bracketed!% [`braced!`]: crate::braced! ``` use syn::{Attribute, Result};!& use syn::parse::{Parse, ParseStream};) # # enum ItemStatic {}, // Parse the ItemStatic struct shown above./ impl Parse for ItemStatic {3 fn parse(input: ParseStream) -> Result {6 # use syn::ItemStatic;"? # fn parse(input: ParseStream) -> Result {B Ok(ItemStatic {8 attrs: input.call(Attribute::parse_outer)?,;! vis: input.parse()?,$* static_token: input.parse()?,-( mutability: input.parse()?,+# ident: input.parse()?,&) colon_token: input.parse()?,, ty: input.parse()?,#& eq_token: input.parse()?,)" expr: input.parse()?,%( semi_token: input.parse()?,+ }) # } # unimplemented!() }  } ``` # Other operationsG Every keyword and punctuation token supports the following operations.J* - [Peeking] — `input.peek(Token![...])`-0 - [Parsing] — `input.parse::()?`30 - [Printing] — `quote!( ... #the_token ... )`3E - Construction from a [`Span`] — `let the_token = Token![...](sp)`H9 - Field access to its span — `let sp = the_token.span`<- [Peeking]: crate::parse::ParseBuffer::peek()0. [Parsing]: crate::parse::ParseBuffer::parse()1@ [Printing]: https://docs.rs/quote/1.0/quote/trait.ToTokens.htmlCG [`Span`]: https://docs.rs/proc-macro2/1.0/proc_macro2/struct.Span.htmlJCcfg featureparsing Ccfg featureparsing Ccfg featureparsing Ccfg featureparsing CWۀcfgۀހ feature߀parsing ـCۀcfgۀހ feature߀parsing ـCۀcfgۀހ feature߀parsing ـCۀcfgۀހ feature߀parsing ـCۀcfgۀހ feature߀parsing ـCۀcfgۀހ feature߀parsing ـCۀcfgۀހ feature߀parsing ـC ۀcfgۀހ feature߀parsing ـC ۀcfgۀހ feature߀parsing ـCۀcfgۀހ feature߀parsing ـCۀcfgۀހ feature߀parsing ـCۀcfgۀހ feature߀parsing ـCۀcfgۀހ feature߀parsing ـCۀcfgۀހ feature߀parsing ـCۀcfgۀހ feature߀parsing ـCāۀcfgۀހ feature߀parsing ـCāۀcfgۀހ feature߀parsing ـCρcfgρҁ featureӁہparsing݁ ́C'cfg featureparsing Ccfg featureparsing C cfg featureparsing CÂCcfg any featureparsing  featureprinting ߂6CCǃcfgǃʃ߃ feature˃ӃprintingՃ ŃC8cfg featureparsing C cfg featureparsing Ccfg featureparsing C„cfg featureparsing CɄ cfg featureparsing C&ׄcfgׄڄ featureۄprinting ՄCׄcfgׄڄ featureۄprinting ՄCׄcfgׄڄ featureۄprinting ՄCƆ CՆC܆C5 Marker trait for types that represent single tokens.8I This trait is sealed and cannot be implemented for types outside of Syn.Lcfg featureparsing SelfSelf߈ ΈdocΈш؈ hidden҈̈doc hiddenЉCcfg featureparsing Self3I Support writing `token.span` rather than `token.spans[0]` on tokens thatL hold a single span.repr C ы!cfg featureparsing C ŌCcfgŒ featureparsing CڌCCʍC͛`doc hiddencfgʛ featureparsing Self ˜-cfgȜ featureparsing CTÿ Мÿ Ӝ Мcfg featureparsing CT ͝cfg featureprinting C-cfg featureparsing C, cfg featureparsing C&cfg featureparsing Ccfg featureparsing Ccfg featureparsing Ccfg featureparsing Ccfg featureparsing Cdoc hiddencfg featureparsing "! ?  8 HS S  U  : doc  hiddencfg  featureprinting N   ? = sFF ׁ  a cfg  featureparsing cfg  featureparsing /cfg  featureparsing cfg  featureparsing  cfg  featureparsing cfg  featureparsing cfg  featureparsing  5cfg  featureparsing doc  hiddenallow  non_snake_case )cfg  featureparsing cfg featureparsing , „͆cfg͆І featureцنparsingۆ ˆu" #aab acfgaab anyaab featureaafullab featurebbderiveba1 "ڏDcfg featureparsing cfg featureparsing  cfg featureparsing ː cfg featureparsing ؐcfg featureparsing cfg featureparsing cfg featureparsing ׻(H Parses the content of the attribute, consisting of the path and tokens,K as a [`Meta`] if possible.߼F *This function is available only if Syn is built with the `"parsing"`I feature.* ɽcfgɽ̽ featureͽսparsing׽ ǽ Ҿ<@/7 Parse the arguments to the attribute as a syntax tree.:@ This is similar to `syn::parse2::(attr.tokens)` except that:CD - the surrounding delimiters are *not* included in the input to theG parser; andC - the error message has a more useful span when `tokens` is empty.F ```text  #[my_attr(value < 5)]% ^^^^^^^^^ what gets parsed( ```F *This function is available only if Syn is built with the `"parsing"`I feature.* cfg featureparsing Tÿ  H= Parse the arguments to the attribute using the given parser.@F *This function is available only if Syn is built with the `"parsing"`I feature.* cfg featureparsing F ;6 Parses zero or more outer attributes from the stream.9F *This function is available only if Syn is built with the `"parsing"`I feature.* cfg featureparsing  ;6 Parses zero or more inner attributes from the stream.9F *This function is available only if Syn is built with the `"parsing"`I feature.* cfg featureparsing   3cfg featureparsing  Vcfg featureparsing > Returns the identifier that begins this structured meta item.AG For example this would return the `test` in `#[test]`, the `derive` inJC `#[derive(Copy)]`, and the `path` in `#[path = "sys/windows.rs"]`.F)I Conventional argument type associated with an invocation of an attributeL macro. K For example if we are developing an attribute macro that is intended to beN& invoked on function items as follows:) ```$ # const IGNORE: &str = stringify! {'& #[my_attribute(path = "/v1/refresh")]) # };ǁ pub fn refresh() {Ё /* ... */ } ```M The implementation of this macro would want to parse its attribute argumentsP as type `AttributeArgs`.܂ ``` # extern crate proc_macro; # use proc_macro::TokenStream; 5 use syn::{parse_macro_input, AttributeArgs, ItemFn};˃8$ # const IGNORE: &str = stringify! {' #[proc_macro_attribute] # };̄L pub fn my_attribute(args: TokenStream, input: TokenStream) -> TokenStream {ՄO: let args = parse_macro_input!(args as AttributeArgs);=5 let input = parse_macro_input!(input as ItemFn);8 /* ... */ # "".parse().unwrap() }Ά ```ԆчSelf'a )'aT 7 'a)7 "   > & &Ɍ"cfg featureparsing Ԏ /  Pӏ Bӑ Bϔ ޗ6 ,ğ ,ơ £,ң ѥ,  L Q ޮ\  ǰcfgǰʰ߰ feature˰Ӱprintingհ Ű -t-Gϸ-ܸbmbcfgbbb anybbb featurebbfullbb featurebbderivebb1b bcfgbbb anybbb featurebbfullbb featurebbderivebb1b bcfgbbb anybbb featurebbfullbb featurebbderivebb1c bcfgbbb anybbb featurebbfullbb featurebbderivebb1cbcfgbbb anybbb featurebbfullbb featurebbderivebb1cbcfgbbb anybbb featurebbfullbb featurebbderivebb1c bcfgbbb anybbb featurebbfullbb featurebbderivebb1c bcfgbbb anybbb featurebbfullbb featurebbderivebb1c %  *! +"d ccfgccd anyccd featureccfullcc featureccderivecc1 " -G Get an iterator over the borrowed [`Field`] items in this object. ThisJB iterator can be used to iterate over a named or unnamed struct orE variant's fields uniformly.8B Get an iterator over the mutably borrowed [`Field`] items in thisEE object. This iterator can be used to iterate over a named or unnamedH& struct or variant's fields uniformly.) Returns the number of fields.!) Returns `true` if there are zero fields.,  ,$'a  ,$'a  /$3cfg  featureparsing  +/ ̀,܀ ш, ܋,  x 6& Parses a named (braced struct) field.) 8( Parses an unnamed (tuple struct) field.͕+ٖ ԙ, ՟0 2 cfg& featureprinting Ӳ "&ij-Ĵٷ-߸F-H-Ƽ޿---ddcfgd(dd anyddd featureddfulldd featureddderivedd1ddcfgd(dd anyddd featureddfulldd featureddderivedd1ddcfgd(dd anyddd featureddfulldd featureddderivedd1d dcfgd(dd anyddd featureddfulldd featureddderivedd1d dcfgd(dd anyddd featureddfulldd featureddderivedd1edcfgd(dd anyddd featureddfulldd featureddderivedd1edcfgd(dd anyddd featureddfulldd featureddderivedd1e dcfgd(dd anyddd featureddfulldd featureddderivedd1e dcfgd(dd anyddd featureddfulldd featureddderivedd1e dcfgd(dd anyddd featureddfulldd featureddderivedd1e ecfge(ee anyeee featureeefullee featureeederiveee1 "% cfg) featureprinting cfg) featureprinting cfg) featureprinting cfg) featureprinting  cfg) featureparsing   h ֛ j œ w  ҝ  "   (H H G   ȡ cfgȡ *ˡ   feature̡ ԡ printing֡ ơ  <     ȩ ީ m " ͪ l (H    ث  cfg , ի  feature ɫ printing˫  <     cfg ,   feature  parsing   /                                        ,    `    _    "   7   cfg /   not    feature  full  ݞ   4 Pȯ L cfg 2   not    feature  full   N cfg 2   not    feature  full   L֙ cfg֙ 4ٙ   notڙ ݙ   featureޙ  full ԙ    ,  6 ֗  ,   ,ʛ   ,Ũ  ! XӬ  #  cfg 8   feature  printing   (   &   Tż cfgż 8ȼ ޼  notɼ ̼ ݼ  featureͼ ռ full׼ ü   IĽ cfgĽ 8ǽ ݽ  notȽ ˽ ܽ  feature̽ Խ fullֽ ½    -  E  -   -   -   - ˣ-̦-٦-ʫ-׫F-̲-ggcfgg<gg anyggg featureggfullgg featureggderivegg1ggcfgg<gg anyggg featureggfullgg featureggderivegg1g gcfgg<gg anyggg featureggfullgg featureggderivegg1g gcfgg<gg anyggg featureggfullgg featureggderivegg1g gcfgg<gg anyggg featureggfullgg featureggderivegg1h gcfgg<gg anyggg featureggfullgg featureggderivegg1h gcfgg<gg anyggg featureggfullgg featureggderivegg1h gcfgg<gg anyggg featureggfullgg featureggderivegg1h gcfgg<gg anyggg featureggfullgg featureggderivegg1hgcfgg<gg anyggg featureggfullgg featureggderivegg1h gcfgg<gg anyggg featureggfullgg featureggderivegg1hgcfgg<gg anyggg featureggfullgg featureggderivegg1hgcfgg<gg anyggg featureggfullgg featureggderivegg1h gcfgg<gg anyggg featureggfullgg featureggderivegg1h gcfgg<gg anyggg featureggfullgg featureggderivegg1h gcfgg<gg anyggg featureggfullgg featureggderivegg1i gcfgg<gg anyggg featureggfullgg featureggderivegg1i gcfgg<gg anyggg featureggfullgg featureggderivegg1igcfgg<gg anyggg featureggfullgg featureggderivegg1i gcfgg<gg anyggg featureggfullgg featureggderivegg1igcfgg<gg anyggg featureggfullgg featureggderivegg1igcfgg<gg anyggg featureggfullgg featureggderivegg1igcfgg<gg anyggg featureggfullgg featureggderivegg1i gcfgg<gg anyggg featureggfullgg featureggderivegg1i gcfgg<gg anyggg featureggfullgg featureggderivegg1igcfgg<gg anyggg featureggfullgg featureggderivegg1i gcfgg<gg anyggg featureggfullgg featureggderivegg1jgcfgg<gg anyggg featureggfullgg featureggderivegg1j gcfgg<gg anyggg featureggfullgg featureggderivegg1j gcfgg<gg anyggg featureggfullgg featureggderivegg1j gcfgg<gg anyggg featureggfullgg featureggderivegg1j gcfgg<gg anyggg featureggfullgg featureggderivegg1j gcfgg<gg anyggg featureggfullgg featureggderivegg1jgcfgg<gg anyggg featureggfullgg featureggderivegg1j gcfgg<gg anyggg featureggfullgg featureggderivegg1j gcfgg<gg anyggg featureggfullgg featureggderivegg1jgcfgg<gg anyggg featureggfullgg featureggderivegg1j gcfgg<gg anyggg featureggfullgg featureggderivegg1k gcfgg<gg anyggg featureggfullgg featureggderivegg1k gcfgg<gg anyggg featureggfullgg featureggderivegg1k gcfgg<gg anyggg featureggfullgg featureggderivegg1kgcfgg<gg anyggg featureggfullgg featureggderivegg1kgcfgg<gg anyggg featureggfullgg featureggderivegg1k kcfgk=kk anykkk featurekkfullkk featurekkderivekk1 3 ' Returns an Iterator<Item = &TypeParam>)+ over the type parameters in `self.params`..2 Returns an Iterator<Item = &mut TypeParam>)+ over the type parameters in `self.params`..$ Returns an Iterator<Item = &LifetimeDef>Ҁ)/ over the lifetime parameters in `self.params`.2ȁۄ/ Returns an Iterator<Item = &mut LifetimeDef>)/ over the lifetime parameters in `self.params`.2) Returns anŅ Iterator<Item = &ConstParam>)/ over the constant parameters in `self.params`.ԇ24 Returns an Iterator<Item = &mut ConstParam>ϊ)/ over the constant parameters in `self.params`.2̋7I Initializes an empty `where`-clause if there is not one present already.Lݍz2'a2'a (8'a8˒'aВ (͕1'a͕1'a ̖(Ԗ7'a7'a  (3'a3ϜӜ'a (9'a9'a נ(*( Returned by `Generics::split_for_impl`.+ۣM *This type is available only if Syn is built with the `"derive"` or `"full"`ߣP' feature and the `"printing"` feature.**ݤcfgݤB featureprinting ۤ'a*( Returned by `Generics::split_for_impl`.+ۣM *This type is available only if Syn is built with the `"derive"` or `"full"`ߣP' feature and the `"printing"` feature.**ݤcfgݤB featureprinting ۤ ˨*( Returned by `Generics::split_for_impl`.+M *This type is available only if Syn is built with the `"derive"` or `"full"`æP' feature and the `"printing"` feature.**cfgBħ٧ featureŧͧprintingϧ 'a˨*( Returned by `Generics::split_for_impl`.+M *This type is available only if Syn is built with the `"derive"` or `"full"`æP' feature and the `"printing"` feature.**cfgBħ٧ featureŧͧprintingϧ  '* Returned by `TypeGenerics::as_turbofish`.-M *This type is available only if Syn is built with the `"derive"` or `"full"`P' feature and the `"printing"` feature.**cfgB featureprinting 'a'* Returned by `TypeGenerics::as_turbofish`.-M *This type is available only if Syn is built with the `"derive"` or `"full"`P' feature and the `"printing"` feature.**cfgB featureprinting ƫʫ ܫcfgܫB߫ featureprinting ګRF Split a type's generics into the pieces required for impl'ing a traitI for that type.٬ ```" # use proc_macro2::{Span, Ident};% # use quote::quote; #ʭ4 # let generics: syn::Generics = Default::default();ԭ76 # let name = Ident::new("MyType", Span::call_site());9 #ήL let (impl_generics, ty_generics, where_clause) = generics.split_for_impl();خO quote! { G impl #impl_generics MyTrait for #name #ty_generics #where_clause {J // ... }  } # ; ```ǰӰF *This method is available only if Syn is built with the `"derive"` or۰I0 `"full"` feature and the `"printing"` feature.*3cfgB featureprinting 'a'G Turn a type's generics like `` into a turbofish like `::`.JF *This method is available only if Syn is built with the `"derive"` orI0 `"full"` feature and the `"printing"` feature.*3&pcfgC featureparsing  / , ,  , א, , Ù,ә ,Ĩ ʭ,ڭ γ,޳ , ¼, , , [cfgP featureprinting  "& -'a-'a-'a-ڎ-- --ʣ--ܮ--ܳ--ŶlkcfgkYkl anykll featurellfullll featurellderivelk1lkcfgkYkl anykll featurellfullll featurellderivelk1l kcfgkYkl anykll featurellfullll featurellderivelk1l kcfgkYkl anykll featurellfullll featurellderivelk1lkcfgkYkl anykll featurellfullll featurellderivelk1l kcfgkYkl anykll featurellfullll featurellderivelk1m kcfgkYkl anykll featurellfullll featurellderivelk1mkcfgkYkl anykll featurellfullll featurellderivelk1m kcfgkYkl anykll featurellfullll featurellderivelk1m kcfgkYkl anykll featurellfullll featurellderivelk1mkcfgkYkl anykll featurellfullll featurellderivelk1m kcfgkYkl anykll featurellfullll featurellderivelk1mkcfgkYkl anykll featurellfullll featurellderivelk1m kcfgkYkl anykll featurellfullll featurellderivelk1nkcfgkYkl anykll featurellfullll featurellderivelk1nAncfgnYnn allnnn anynnn featurennfullnn featurennderivenn featurennprintingn nLo ncfgnYnn allnnn anynnn featurennfullnn featurennderivenn featurennprintingn nLo ncfgnYnn allnnn anynnn featurennfullnn featurennderivenn featurennprintingn nLo ncfgnYnn allnnn anynnn featurennfullnn featurennderivenn featurennprintingn nLt Ÿ˸ոcfgZ featureparsing G A Rust lifetime: `'a`.ù4 Lifetime names must conform to the following rules:ǹ7! - Must start with an apostrophe.$/ - Must not consist of just an apostrophe: `'`.2J - Character after the apostrophe must be `_` or a Unicode code point withۺM the XID_Start property.M - All following characters must be Unicode code points with the XID_ContinueǻP property.¼ܼ ʿ, # Panics E Panics if the lifetime does not conform to the bulleted rules above.H # Invocation ``` # use proc_macro2::Span; # use syn::Lifetime; #ھ # fn f() -> Lifetime {' Lifetime::new("'a", Span::call_site())* # } ``` ݿ   &  <    v&  ;  v+  g$ H     ;cfg\ featureparsing doc\ hiddenallow\ non_snake_casecfg\ featureparsing   /      ,         $      cfg] featureprinting   /     &    -  t"uucfg] featureparsing  "cfg] featureparsing  cfg] featureparsing  cfg] featureparsing     cfg^ featureprinting  cfg^ featureparsing   !         <   U    W     +    *B Parse a syntax tree node from the content of this string literal.EF All spans in the syntax tree will point to the span of this `LitStr`.I # Example  ``` use proc_macro2::Span;L use syn::{Attribute, Error, Ident, Lit, Meta, MetaNameValue, Path, Result};O6 // Parses the path from an attribute that looks like:9 // // #[path = "a::b::c"] //; // or returns `None` if the input is some other attribute.>8 fn get_path(attr: &Attribute) -> Result> {;% if !attr.path.is_ident("path") {( return Ok(None); }  match attr.parse_meta()? {"K Meta::NameValue(MetaNameValue { lit: Lit::Str(lit_str), .. }) => {N& lit_str.parse().map(Some)) }  _ => {8 let message = "expected #[path = \"...\"]";;3 Err(Error::new_spanned(attr, message))6 }  }  } ```cfg_ featureparsing  T    C5 Invoke parser on the content of this string literal.8F All spans in the syntax tree will point to the span of this `LitStr`.I # Example  ``` # use proc_macro2::Span; # use syn::{LitStr, Result};  # # fn main() -> Result<()> {? # let lit_str = LitStr::new("a::b::c", Span::call_site());B #( # const IGNORE: &str = stringify! {+! let lit_str: LitStr = /* ... */;$ # }; C // Parse a string literal like "a::b::c" into a Path, not allowingF2 // generic arguments on any of the path segments.5B let basic_path = lit_str.parse_with(syn::Path::parse_mod_style)?;E # # Ok(()) # } ```cfg_ featureparsing  F     F &      C   &  և   ,  Պ    nj& ׌    )     Ǒ &  ޒ   +  ԕ    & ϗ   ݘ *  Н#  ɣa0 Parses the literal into a selected number type.3ӞD This is equivalent to `lit.base10_digits().parse()` except that the۞GI resulting errors will be correctly spanned to point to the literal tokenL in the macro input. ``` use syn::LitInt;. use syn::parse::{Parse, ParseStream, Result};1 struct Port { value: u16, } impl Parse for Port {3 fn parse(input: ParseStream) -> Result {ݡ6* let lit: LitInt = input.parse()?;-0 let value = lit.base10_parse::()?;ʢ3 Ok(Port { value }) }  } ``` N   NݣX̿E̿X ݣ"          & ¦    Ҫ <  ߫  *  հ#  a N   ƿؿ ϲ"        ³ γ &      θ< ո  й+      &  cfgh feature clone-impls    cfgh feature clone-impls    cfgi feature clone-impls    9cfgi featureparsing doci hiddenallowi non_snake_case 1cfgi featureparsing doci hiddenallowi non_snake_case'cfgi featureparsing    /       ,         J  ,    ,    ,    ,   ل ,    ܇,    NJ, ׊   ьcfgьoԌ featureՌ݌printingߌ ό    &  ɍ  - Ȏ  -   -   -  ޔ -   Ӗ-   -  ۙ      њ!     ˛"4 Interpret a Syn literal from a proc-macro2 literal.7    Ų Ѳ &  =E Get the byte at offset idx, or a default of `b'\0'` if we're lookingH" past the end of the input buffer.%S  ǻ   ݼ  ҽ5 <allowv clippy needless_continue#  9  9 @allowy clippy needless_continue#  9  0 6 u S  ܀#   +  A C      L6            6            uluuuuuuu u uuuuuuuuvvvcfgvÈvv anyvvv featurevvfullvv featurevvderivevv1  *        5cfgۈ featureparsing   cfgۈ featureparsing  cfgۈ featureparsing  cfgۈ featureparsing   cfgۈ featureparsing  7cfg featureparsing  cfg featureparsing   cfg featureparsing  cfg featureparsing  cfg featureparsing  Acfg featureparsing   /H Parse the tokens within the macro invocation's delimiters into a syntaxK tree. D This is equivalent to `syn::parse2::(mac.tokens)` except that itG4 produces a more useful span when `tokens` is empty.7 # Example  ```I use syn::{parse_quote, Expr, ExprLit, Ident, Lit, LitStr, Macro, Token};L use syn::ext::IdentExt;5 use syn::parse::{Error, Parse, ParseStream, Result};8! use syn::punctuated::Punctuated;$C // The arguments expected by libcore's format_args macro, and as aFB // result most other formatting and printing macros like println.E //C // println!("{} is {number:.prec$}", "x", prec=5, number=0.01)F struct FormatArgs { format_string: Expr, positional_args: Vec,#$ named_args: Vec<(Ident, Expr)>,' } impl Parse for FormatArgs {3 fn parse(input: ParseStream) -> Result {6! let format_string: Expr;$. let mut positional_args = Vec::new();1) let mut named_args = Vec::new();,( format_string = input.parse()?;+" while !input.is_empty() {%) input.parse::()?;," if input.is_empty() {% break; }G if input.peek(Ident::peek_any) && input.peek2(Token![=]) {J* while !input.is_empty() {-E let name: Ident = input.call(Ident::parse_any)?;H1 input.parse::()?;46 let value: Expr = input.parse()?;94 named_args.push((name, value));7* if input.is_empty() {- break;" }1 input.parse::()?;4 } break; }2 positional_args.push(input.parse()?);5 }  Ok(FormatArgs { format_string, positional_args,  named_args, }) }  }B // Extract the first argument, the format string literal, from anE1 // invocation of a formatting or printing macro.44 fn get_format_string(m: &Macro) -> Result {7, let args: FormatArgs = m.parse_body()?;/ match args.format_string {"B Expr::Lit(ExprLit { lit: Lit::Str(lit), .. }) => Ok(lit),E other => {C // First argument was not a string literal expression.FA // Maybe something like: println!(concat!(...), ...)DU Err(Error::new_spanned(other, "format string must be a string literal"))X }  }  } fn main() {$ let invocation = parse_quote! {') println!("{:?}", Instant::now()), }; 7 let lit = get_format_string(&invocation).unwrap();:% assert_eq!(lit.value(), "{:?}");( } ```cfg܉ featureparsing  T    HD Parse the tokens within the macro invocation's delimiters using theG given parser.cfg featureparsing  F     Scfg featureparsing        cfg featureparsing   /      ,   cfg featureprinting       -  &      ł&      &      w,vcfgvvv anyvvv featurevvfullvv featurevvderivevv1wvcfgvvv anyvvv featurevvfullvv featurevvderivevv1wvcfgvvv anyvvv featurevvfullvv featurevvderivevv1w wcfgwww anywww featurewwfullww featurewwderiveww1  ̈́" %cfg featureparsing   И/      ,      cfg featureprinting  о   "   Ϳ  -  Y      xLwcfgwwx featurewwderivewwxwcfgwwx featurewwderivewwxwcfgwwx featurewwderivewwx wcfgwwx featurewwderivewwx wcfgwwx featurewwderivewwx wcfgwwx featurewwderivewwyxcfgxxy anyxxy featurexxfullxx featurexxderivexx1cfg featureparsing   /     3    ,cfg not featurefull    ,   cfg featureprinting      ـ  -   Ǝ- ӎ y!ycfgyȚyy anyyyy featureyyfullyy featureyyderiveyy1yycfgyȚyy anyyyy featureyyfullyy featureyyderiveyy1yycfgyȚyy anyyyy featureyyfullyy featureyyderiveyy1zzcfgzԚzz anyzzz featurezzfullzz featurezzderivezz1ѐ  ߐ"  cfg featureparsing    /      -      ,    7? In some positions, types may not contain the `+` character, toBE disambiguate them. For example in the expression `1 as T`, T may notH contain a `+` character.A This parser does not allow a `+`, while the default parser does.D   A   ,    ,    ,    ,    ,   X   ,    ,    ,    ,    ,    7   Bdoc֫ hidden    ,    ,   L   7   Bdoc hidden   ؇ ,    ,    ,    >  Ȓ   ,   v  r       ժ,   ɬ ,   ݮ/®cfg®Ůڮ featureƮήprintingЮ     "  ˯ &   Ұ -  رE       -         -   -   ¼- ϼ о       -   -  F       - - - -E -E - - - - - -{{cfg{{{ any{{{ feature{{full{{ feature{{derive{{1{{cfg{{{ any{{{ feature{{full{{ feature{{derive{{1{ {cfg{{{ any{{{ feature{{full{{ feature{{derive{{1{ {cfg{{{ any{{{ feature{{full{{ feature{{derive{{1{{cfg{{{ any{{{ feature{{full{{ feature{{derive{{1{ {cfg{{{ any{{{ feature{{full{{ feature{{derive{{1{ {cfg{{{ any{{{ feature{{full{{ feature{{derive{{1| {cfg{{{ any{{{ feature{{full{{ feature{{derive{{1| {cfg{{{ any{{{ feature{{full{{ feature{{derive{{1| {cfg{{{ any{{{ feature{{full{{ feature{{derive{{1| {cfg{{{ any{{{ feature{{full{{ feature{{derive{{1| {cfg{{{ any{{{ feature{{full{{ feature{{derive{{1| {cfg{{{ any{{{ feature{{full{{ feature{{derive{{1|{cfg{{{ any{{{ feature{{full{{ feature{{derive{{1|{cfg{{{ any{{{ feature{{full{{ feature{{derive{{1| {cfg{{{ any{{{ feature{{full{{ feature{{derive{{1| {cfg{{{ any{{{ feature{{full{{ feature{{derive{{1}{cfg{{{ any{{{ feature{{full{{ feature{{derive{{1} {cfg{{{ any{{{ feature{{full{{ feature{{derive{{1}{cfg{{{ any{{{ feature{{full{{ feature{{derive{{1 cfg¸ any featurefull featurederive1 "Tÿ 1 Tÿ   _cfgʹ featureparsing ׏wcfgԏ featureɏparsingˏ  / Ő, Ғ,  ϣ9 ˭,ۭ ۴, ȸ,ظ ԹE , .:D Parse a `Path` containing no path arguments on any of its segments.GF *This function is available only if Syn is built with the `"parsing"`I feature.*  # Example  ``` use syn::{Path, Result, Token};#& use syn::parse::{Parse, ParseStream};)- // A simplified single `use` statement like:0 //& // use std::collections::HashMap;) //E // Note that generic parameters are not allowed in a `use` statementH* // so the following must not be accepted.- // // use a::::c; struct SingleUse { use_token: Token![use], path: Path, } impl Parse for SingleUse {3 fn parse(input: ParseStream) -> Result {6 Ok(SingleUse {' use_token: input.parse()?,*6 path: input.call(Path::parse_mod_style)?,9 }) }  } ``` cA Determines whether this is a path of length 1 equal to the givenD ident. 5 For them to compare equal, it must be the case that:8! - the path has no leading colon,$$ - the number of path segments is 1,'A - the first path segment has no angle bracketed or parenthesizedD path arguments, andA - the ident of the first path segment is equal to the given one.DF *This function is available only if Syn is built with the `"parsing"`I feature.*  # Example  ```7 use syn::{Attribute, Error, Meta, NestedMeta, Result};: # use std::iter::FromIterator;"G fn get_serde_meta_items(attr: &Attribute) -> Result> {J% if attr.path.is_ident("serde") {(# match attr.parse_meta()? {&A Meta::List(meta) => Ok(Vec::from_iter(meta.nested)),DK bad => Err(Error::new_spanned(bad, "unrecognized attribute")),N }  } else { Ok(Vec::new()) }  } ```I I )< If this path consists of a single ident, returns the ident.?" A path is considered an ident if:%! - the path has no leading colon,$( - the number of path segments is 1, and+A - the first path segment has no angle bracketed or parenthesizedD path arguments.F *This function is available only if Syn is built with the `"parsing"`I feature.* P   S 7ևcfgևه featureڇprinting ԇ "߈ ĉ-‹-- -allow clippy match_same_arms!əMÛ-ЛѮ-ޮͰ--G Vѵcfg any featurefull featurederive1cfg any featurefull featurederive1ڀcfg any featurefull featurederive1 cfg any featurefull featurederive1cfg any featurefull featurederive1cfg any featurefull featurederive1cfg any featurefull featurederive1 cfg any featurefull featurederive1 cfg any featurefull featurederive1Łcfg any featurefull featurederive1ҁcfgҁՁ featureցށparsing ЁJ A stably addressed token buffer supporting efficient traversal based on aֿM cheaply copyable cursor.N *This module is available only if Syn is built with the `"parsing"` feature.*Qcfg all not all target_arch wasm32 any target_os unknown  target_os wasi feature proc-macro b    M Internal type which is used instead of `TokenTree` to represent a token treeP within a `TokenBuffer`.      B A buffer that can be efficiently traversed multiple times, unlikeEH `TokenStream` which requires a deep copy in order to traverse more thanK once. L *This type is available only if Syn is built with the `"parsing"` feature.*OB2A Creates a `TokenBuffer` containing all the tokens from the inputD `TokenStream`.M *This method is available only if Syn is built with both the `"parsing"` andP `"proc-macro"` features.*cfg all not all target_arch wasm32 any target_os unknown  target_os wasi feature proc-macro /A Creates a `TokenBuffer` containing all the tokens from the inputD `TokenStream`.G Creates a cursor referencing the first token in the buffer and able toJ& traverse until the end of the buffer.)0 A cheaply copyable cursor into a `TokenBuffer`.3K This cursor holds a shared reference into the immutable data which is usedNL internally to represent a `TokenStream`, and can be efficiently manipulatedO and copied around.M An empty `Cursor` can be created directly, or one may create a `TokenBuffer`P; object and get a cursor to its first token with `begin()`.>G Two cursors are equal if they have the same location in the same inputJ! stream, and have the same scope.$L *This type is available only if Syn is built with the `"parsing"` feature.*O'a?'a9 Creates a cursor referencing a static empty TokenStream.<'UD> This create method intelligently exits non-explicitly-enteredAA `None`-delimited scopes when the cursor reaches the end of them,D/ allowing for them to be treated transparently.2 Get the current entry."G Bump the cursor to point at the next token after the current one. ThisJ? is undefined behavior if the cursor is currently looking at anB `Entry::End`.I While the cursor is looking at a `None`-delimited group, move it to lookLI at the first token inside instead. If the group is empty, this will moveL, the cursor past the `None`-delimited group./$ WARNING: This mutates its argument.'H Checks whether the cursor is currently pointing at the end of its validK scope. RI If the cursor is pointing at a `Group` with the given delimiter, returnsLC a cursor into that group and one pointing to the next `TokenTree`.F5G If the cursor is pointing at a `Ident`, returns it along with a cursorJ" pointing at the next `TokenTree`.ދ%5H If the cursor is pointing at an `Punct`, returns it along with a cursorK" pointing at the next `TokenTree`.ǎ%9H If the cursor is pointing at a `Literal`, return it along with a cursorK" pointing at the next `TokenTree`.‘%ٔ;C If the cursor is pointing at a `Lifetime`, returns it along with aݓF) cursor pointing at the next `TokenTree`.,(< Copies all remaining tokens visible from this cursor into a? `TokenStream`.˚:D If the cursor is pointing at a `TokenTree`, returns it along with aG) cursor pointing at the next `TokenTree`.,@ Returns `None` if the cursor has reached the end of its stream.CžG This method does not treat `None`-delimited groups as transparent, andʞJA will return a `Group(None, ..)` if the cursor is looking at one.DH Returns the `Span` of the current token, or `Span::call_site()` if thisK cursor points to eof..D Skip over the next token without cloning it. Returns `None` if thisӦG cursor points to eof.3 This method treats `'lifetimes` as a single token.ŧ6'a¬ެS'a'aҭ'a׭" 6 8 9ұ cfgɂ featureparsing > Extension traits to provide parsing methods on foreign types.ڲAN *This module is available only if Syn is built with the `"parsing"` feature.*Q( ƴϴѷM Additional methods for `Ident` not provided by proc-macro2 or libproc_macro.PL This trait is sealed and cannot be implemented for types outside of Syn. ItO. is implemented only for `proc_macro2::Ident`.ʶ1M *This trait is available only if Syn is built with the `"parsing"` feature.*PSelfξ1* Parses any identifier including keywords.-F This is useful when parsing macro input which allows Rust keywords asI identifiers. # Example  ```¹( use syn::{Error, Ident, Result, Token};ι+ use syn::ext::IdentExt; use syn::parse::ParseStream; ú mod kw {˺  syn::custom_keyword!(name);ܺ# }B // Parses input that looks like `name = NAME` where `NAME` can beE // any identifier. // // Examples: // // name = anything // name = implż4 fn parse_dsl(input: ParseStream) -> Result {7 input.parse::()?;#! input.parse::()?;Ľ$. let name = input.call(Ident::parse_any)?;1 Ok(name) } ```¾ 20 Peeks any identifier including keywords. Usage:3 `input.peek(Ident::peek_any)`!F This is different from `input.peek(Ident)` which only returns true inI2 the case of an ident which is not a Rust keyword.5allow non_upper_case_globals D Strips the raw marker `r#`, if any, from the beginning of an ident.G - unraw(`x`) = `x` - unraw(`move`) = `move` - unraw(`r#move`) = `move`  # Example D In the case of interop with other languages like Python that have aGF different set of keywords than Rust, we might come across macro inputID that involves raw identifiers to refer to ordinary variables in theG> other language with a name that happens to be a Rust keyword.AH The function below appends an identifier from the caller's input onto aKB fixed prefix. Without using `unraw()`, this would tend to produceE. invalid identifiers like `__pyo3_get_r#move`.1 ``` use proc_macro2::Span; use syn::Ident; use syn::ext::IdentExt;1 fn ident_for_getter(variable: &Ident) -> Ident {4= let getter = format!("__pyo3_get_{}", variable.unraw());@+ Ident::new(&getter, Span::call_site()). } ```0 E -Self[E A punctuated sequence of syntax tree nodes separated by punctuation.H1 Lots of things in Rust are punctuated sequences.4= - The fields of a struct are `Punctuated`.@D - The segments of a path are `Punctuated`.GD - The bounds on a generic parameter are `Punctuated`.F - The arguments to a function call are `Punctuated`.IL This module provides a common representation for these punctuated sequencesOL in the form of the [`Punctuated`] type. We store a vector of pairs ofOM syntax tree node + punctuation, where every node in the sequence is followedP2 by punctuation except for possibly the final one.5! [`Punctuated`]: Punctuated$ ```text # a_function_call(arg1, arg2, arg3);&! ~~~~^ ~~~~^ ~~~~$ ```cfg any featurefull featurederive1  /cfg featureparsing cfg featureparsing  cfg featureparsing cfg featureparsing cfg featureparsing QD A punctuated sequence of syntax tree nodes of type `T` separated byG punctuation of type `P`.L Refer to the [module documentation] for details about punctuated sequences.O [module documentation]: self TPȿ   NTPÁ  & Creates an empty punctuated sequence.)cfg not syn_no_const_vec_new!A Determines whether this punctuated sequence is empty, meaning itD. contains no syntax tree nodes or punctuation.1E Returns the number of syntax tree nodes in this punctuated sequence.HI This is the number of nodes of type `T`, not counting the punctuation ofL type `P`. !, Borrows the first element in this sequence./-4 Mutably borrows the first element in this sequence.7 + Borrows the last element in this sequence..,3 Mutably borrows the last element in this sequence.6B Returns an iterator over borrowed syntax tree nodes of type `&T`.E(D Returns an iterator over mutably borrowed syntax tree nodes of typeG `&mut T`. "C Returns an iterator over the contents of this sequence as borrowedF punctuated pairs.-B Returns an iterator over the contents of this sequence as mutablyE borrowed punctuated pairs.*@ Returns an iterator over the contents of this sequence as ownedC punctuated pairs.&I Appends a syntax tree node onto the end of this punctuated sequence. TheL6 sequence must previously have a trailing punctuation.9G Use [`push`] instead if the punctuated sequence may or may not alreadyJ have trailing punctuation. [`push`]: Punctuated::push # Panics I Panics if the sequence does not already have a trailing punctuation whenL this method is called.,I Appends a trailing punctuation onto the end of this punctuated sequence.LB The sequence must be non-empty and must not already have trailingE punctuation. # Panics G Panics if the sequence is empty or already has a trailing punctuation.J+F Removes the last punctuated pair from this sequence, or `None` if theI sequence is empty.˄$A Determines whether this punctuated sequence ends with a trailingD punctuation.'H Returns true if either this `Punctuated` is empty, or it has a trailingK punctuation.F Equivalent to `punctuated.is_empty() || punctuated.trailing_punct()`.Iԉ>E Appends a syntax tree node onto the end of this punctuated sequence.HI If there is not a trailing punctuation in this sequence when this methodLH is called, the default value of punctuation type `P` is inserted before߈K the given value of type `T`. ȿ N( Inserts an element at position `index`.+֋ # Panicsދ G Panics if `index` is greater than the number of elements previously inJ this punctuated sequence.ƌD Clears the sequence of all values and punctuation, making it empty.ُGԔiH Parses zero or more occurrences of `T` separated by punctuation of typeK) `P`, with optional trailing punctuation.Б,I Parsing continues until the end of this parse stream. The entire contentL2 of this parse stream must consist of `T` and `P`.ڒ5F *This function is available only if Syn is built with the `"parsing"`I feature.* cfg featureparsing  ȿ G Parses zero or more occurrences of `T` using the given parse function,J= separated by punctuation of type `P`, with optional trailingӖ@ punctuation.I Like [`parse_terminated`], the entire content of this stream is expectedL to be parsed.3 [`parse_terminated`]: Punctuated::parse_terminated6ߘF *This function is available only if Syn is built with the `"parsing"`I feature.* əcfgə̙ feature͙ՙparsingי Ǚ̚ yG Parses one or more occurrences of `T` separated by punctuation of typeޞJ) `P`, not accepting trailing punctuation.,ޟG Parsing continues as long as punctuation `P` is present at the head ofJI the stream. This method returns upon parsing a `T` and observing that itLD is not followed by a `P`, even if there are remaining tokens in theG stream.ҡ F *This function is available only if Syn is built with the `"parsing"`I feature.* ̢cfg̢Ϣ featureТآparsingڢ ʢɣ ȿ F Parses one or more occurrences of `T` using the given parse function,I= separated by punctuation of type `P`, not accepting trailing@ punctuation.F Like [`parse_separated_nonempty`], may complete early without parsingI# the entire content of this stream.&C [`parse_separated_nonempty`]: Punctuated::parse_separated_nonemptyFF *This function is available only if Syn is built with the `"parsing"`I feature.* ШcfgШӨ featureԨܨparsingި Ψ۩ ɪcfgѭ feature­ clone-implsĭ TPÁÿ ȿ ͮ  ڮϹTPԹÁ׹ Թ ׹5II77ÿ  TPÁ߻  5I޷ TPÁ  >I޷7 ̽ žTPʾÁ; ʾ ;>I޷ TPÁ    $ 'aTPP    $'aTP    $fTPÁ  m8 An iterator over borrowed pairs of type `Pair<&T, &P>`.;L Refer to the [module documentation] for details about punctuated sequences.O [module documentation]: self 'aTP 'a'a  'aTP   ("-'aTP  ->'aTP  'aTP  wH An iterator over mutably borrowed pairs of type `Pair<&mut T, &mut P>`.KL Refer to the [module documentation] for details about punctuated sequences.O [module documentation]: self 'aTP 'a'a  !!'aTP   '("-'aTP  ->'aTP  _3 An iterator over owned pairs of type `Pair`.6L Refer to the [module documentation] for details about punctuated sequences.O [module documentation]: self TPÁ  TPÁ   ("-TPÁ  ->TPÁ  TPÁ  7+ An iterator over owned values of type `T`..L Refer to the [module documentation] for details about punctuated sequences.O [module documentation]: self T T  (-T -iT T / An iterator over borrowed values of type `&T`.2L Refer to the [module documentation] for details about punctuated sequences.O [module documentation]: self 'aT 'a 3Self'aT8!89 'aT  'a!   Do'aTP 'a'a   ;cfg any featurefull featurederive1'aT 'aT 'aT  (-'aT -m'aT 'aTP   ('aTP  --'aTP  'aTP  'aTI 9 'a ‚  ޷'a8!8҂ 'a  Ca; An iterator over mutably borrowed values of type `&mut T`.>L Refer to the [module documentation] for details about punctuated sequences.O [module documentation]: self 'aT 'a ˅:rSelf'aT%Ն#9 'aҁ'a%Ն#ҁҁ y'aTP 'a'aȃ  !Ӈ! Bcfg any featurefull featurederive1'aT׈ӈ ׈'aT  ݉(Ɋ-֊'aT -p'aTÌ Ì'aTP   ('aTP  -ސ1'aTP  ޑ'aTI9 'a ޷'a%# 'a  9K A single syntax tree node of type `T` followed by its trailing punctuationN of type `P` if any.L Refer to the [module documentation] for details about punctuated sequences.O [module documentation]: self TPÁ  •ʕʕΕՕ TPڕÁݕ ڕ ݕH Extracts the syntax tree node from this punctuated pair, discarding theK following punctuation.8 Borrows the syntax tree node from this punctuated pair.;%@ Mutably borrows the syntax tree node from this punctuated pair.C!G Borrows the punctuation from this punctuated pair, unless this pair isJ4 the final one and there is no trailing punctuation.7&D Creates a punctuated pair out of a syntax tree node and an optionalG following punctuation.)A Produces this punctuated pair as a tuple of syntax tree node andD optional following punctuation.#ɡcfgɡ̡ feature͡ա clone-implsס ǡTPÁ̢ڢ  TPÁ   ܤ.TPÁ  :ɧcfg featureprinting  ̪&تTPÁuÿ uȿ   -ǭTP̭Áϭ ̭ ϭ-لcfgDŽ featureparsing ̄doc̄τք hiddenЄʄL Quasi-quotation macro that accepts input like the [`quote!`] macro but uses۰O= type inference to figure out a return type for those tokens.@7 [`quote!`]: https://docs.rs/quote/1.0/quote/index.html:J The return type can be any syntax tree node that implements the [`Parse`]M trait.  [`Parse`]: crate::parse::Parse" ``` use quote::quote; use syn::{parse_quote, Stmt};ѳ! fn main() { let name = quote!(v); let ty = quote!(u8);´$ let stmt: Stmt = parse_quote! {ƴ'- let #name: #ty = Default::default();0 };  println!("{:#?}", stmt);  }ϵ ```յݵL *This macro is available only if Syn is built with the `"parsing"` feature,OK although interpolation of syntax tree nodes into the quoted tokens is onlyNB supported if Syn is built with the `"printing"` feature as well.*EƷ # Exampleʷ طG The following helper function adds a bound `T: HeapSize` to every typeܷJ% parameter `T` in the input generics.(и ```Ը0 use syn::{parse_quote, Generics, GenericParam};ܸ38 // Add a bound `T: HeapSize` to every type parameter T.;: fn add_trait_bounds(mut generics: Generics) -> Generics {й=( for param in &mut generics.params {+8 if let GenericParam::Type(type_param) = param {;< type_param.bounds.push(parse_quote!(HeapSize));? }  }Ļ  genericsλ }߻ ``` # Special casesK This macro can parse the following additional types as a special case evenN0 though they do not implement the `Parse` trait.ؼ3N - [`Attribute`] — parses one attribute, allowing either outer like `#[...]`Q or inner like `#![...]`L - [`Punctuated`] — parses zero or more `T` separated by punctuationO) `P` with optional trailing punctuationо,= - [`Vec`] — parses the same as `Block::parse_within`@4 [`Punctuated`]: crate::punctuated::Punctuated¿7# [`Vec`]: Block::parse_within& # Panics I Panics if the tokens fail to parse as the expected syntax tree type. TheLK caller is responsible for ensuring that the input tokens are syntacticallyN valid.   macro_export 7  ;doc hiddenTÿ  Qdoc hiddenSelf- T , "cfg any featurefull featurederive1cfg any featurefull featurederive1 cfg any featurefull featurederive1cfg any featurefull featurederive1, TPÁ  , Іcfg all not all target_arch ˅wasm32ͅՅ anyׅڅ target_osۅ unknown  target_os wasi featureparsing  feature proc-macro ÆdocÆƆ͆ hiddendžJ Parse the input TokenStream of a macro, triggering a compile error if theM tokens fail to parse.K Refer to the [`parse` module] documentation for more details about parsingN in Syn. : [`parse` module]: crate::rustdoc_workaround::parse_module=
 # Intended usage7 This macro must be called from a function that returns:M `proc_macro::TokenStream`. Usually this will be your proc macro entry point,PE the function that has the #\[proc_macro\] / #\[proc_macro_derive\] /H% #\[proc_macro_attribute\] attribute.( ``` # extern crate proc_macro; # use proc_macro::TokenStream; & use syn::{parse_macro_input, Result};)& use syn::parse::{Parse, ParseStream};) struct MyMacroInput { /* ... */ } impl Parse for MyMacroInput {!3 fn parse(input: ParseStream) -> Result {6 /* ... */ # Ok(MyMacroInput {}) }  }$ # const IGNORE: &str = stringify! {' #[proc_macro] # };6 pub fn my_macro(tokens: TokenStream) -> TokenStream {9< let input = parse_macro_input!(tokens as MyMacroInput);? /* ... */ # "".parse().unwrap() } ```
 # Usage with ParserJ This macro can also be used with the [`Parser` trait] for types that haveM' multiple ways that they can be parsed.*B [`Parser` trait]: crate::rustdoc_workaround::parse_module::ParserE ``` # extern crate proc_macro; # # use proc_macro::TokenStream;"( # use syn::{parse_macro_input, Result};+ # use syn::parse::ParseStream;" # # struct MyMacroInput {} # impl MyMacroInput {= fn parse_alternate(input: ParseStream) -> Result {@ /* ... */ # Ok(MyMacroInput {}) }  }$ # const IGNORE: &str = stringify! {' #[proc_macro] # };6 pub fn my_macro(tokens: TokenStream) -> TokenStream {9O let input = parse_macro_input!(tokens with MyMacroInput::parse_alternate);R /* ... */ # "".parse().unwrap() } ```
 # ExpansionD `parse_macro_input!($variable as $Type)` expands to something like:G ```no_run  # extern crate proc_macro; # # macro_rules! doc_test {) # ($variable:ident as $Type:ty) => {,' match syn::parse::<$Type>($variable) {*$ Ok(syntax_tree) => syntax_tree,'N Err(err) => return proc_macro::TokenStream::from(err.to_compile_error()),Q } # };  # } #G # fn test(input: proc_macro::TokenStream) -> proc_macro::TokenStream {J. # let _ = doc_test!(input as syn::Ident);1% # proc_macro::TokenStream::new()( # } ```  macro_export 7  Hdoc hiddenTÿ  Vdoc hiddenSelf- T , cfg any featurefull featurederive1cfg any featurefull featurederive1, cfg all featureparsing  featureprinting 6I A trait that can provide the `Span` of the complete contents of a syntaxL tree node.M *This module is available only if Syn is built with both the `"parsing"` andP `"printing"` features.*
 # Example H Suppose in a procedural macro we have a [`Type`] that we want to assertKK implements the [`Sync`] trait. Maybe this is the type of one of the fieldsNM of a struct for which we are deriving a trait implementation, and we need toPC be able to pass a reference to one of those fields across threads.F [`Type`]: crate::Type [`Sync`]: std::marker::SyncG If the field type does *not* implement `Sync` as required, we want theJD compiler to report an error pointing out exactly which type it was.GM The following macro code takes a variable `ty` of type `Type` and produces aP; static assertion that `Sync` is implemented for that type.> ``` # extern crate proc_macro; # use proc_macro::TokenStream;  use proc_macro2::Span; use quote::quote_spanned; use syn::Type;Ѐ use syn::spanned::Spanned;+ # const IGNORE_TOKENS: &str = stringify! {. #[proc_macro_derive(MyMacro)]! # };ׁ5 pub fn my_macro(input: TokenStream) -> TokenStream {8 # let ty = get_a_type();  /* ... */̂2 let assert_sync = quote_spanned! {ty.span()=>Ђ5, struct _AssertSync where #ty: Sync;/ };  /* ... */Ń # input׃ } # # fn get_a_type() -> Type { # unimplemented!() # } ```K By inserting this `assert_sync` fragment into the output code generated by„NK our macro, the user's code will fail to compile if `ty` does not implementN; `Sync`. The errors they would see look like the following.> ```text O error[E0277]: the trait bound `*const i32: std::marker::Sync` is not satisfiedR --> src/main.rs:10:21 | 10 | bad_field: *const i32,#T | ^^^^^^^^^^ `*const i32` cannot be shared between threads safelyˇW ```K In this technique, using the `Type`'s span for the error message makes theN> error appear in the correct place underlining the right type.A
ĉ͉ # LimitationsщG The underlying [`proc_macro::Span::join`] method is nightly-only. WhenJL called from within a procedural macro in a nightly compiler, `Spanned` willOL use `join` to produce the intended span. When not using a nightly compiler,OH only the span of the *first token* of the syntax tree node is returned.ҋKF In the common case of wanting to use the joined span as the span of aIJ `syn::Error`, consider instead using [`syn::Error::new_spanned`] which isMM able to span the error correctly under the complete syntax tree node withoutP needing the unstable `join`. 7 [`syn::Error::new_spanned`]: crate::Error::new_spanned:(I A trait that can provide the `Span` of the complete contents of a syntaxL tree node.E This trait is automatically implemented for all types that implementHC [`ToTokens`] from the `quote` crate, as well as for `Span` itself.֐F [`ToTokens`]: quote::ToTokens!Ñ/ See the [module documentation] for an example.Ǒ2 [module documentation]: self L *This trait is available only if Syn is built with both the `"parsing"` andO `"printing"` features.*SelfD Returns a `Span` covering the complete contents of this syntax treeG6 node, or [`Span::call_site()`] if this node is empty.94 [`Span::call_site()`]: proc_macro2::Span::call_site7eTÿ  ǕȈP cfg any featurefull featurederive1path../gen_helper.rsdoc hiddenpath export.rs "ȶȶ̶ ̶ ض+ "ӷӷٷ*'ƸƸ˸˸ӸcfgӸָ feature׸߸printing Ѹ9¹ cfg allߺ not all target_arch wasm32 any target_os unknown  target_os wasiº featureȺк proc-macroҺ *cfg featureprinting cfg featureprinting cfg featureprinting лallowлջ non_camel_case_typesֻλallow non_camel_case_typesü>Ҽ"" M Define a type that supports parsing and printing a given identifier as if itP were a keyword. # Usage G As a convention, it is recommended that this macro be invoked within aJI module called `kw` or `keyword` and that the resulting parser be invokedL% with a `kw::` or `keyword::` prefix.( ``` mod kw { $ syn::custom_keyword!(whatever);' } ```K The generated syntax tree node supports the following operations just likeN any built-in keyword token.+ - [Peeking] — `input.peek(kw::whatever)`.1 - [Parsing] — `input.parse::()?`45 - [Printing] — `quote!( ... #whatever_token ... )`8K - Construction from a [`Span`] — `let whatever_token = kw::whatever(sp)`N> - Field access to its span — `let sp = whatever_token.span`A+ [Peeking]: crate::parse::ParseBuffer::peek., [Parsing]: crate::parse::ParseBuffer::parse/ [Printing]: quote::ToTokens [`Span`]: proc_macro2::Span # Example L This example parses input that looks like `bool = true` or `str = "value"`.OI The key must be either the identifier `bool` or the identifier `str`. IfLK `bool`, the value may be either `true` or `false`. If `str`, the value mayN be any string literal.L The symbols `bool` and `str` are not reserved keywords in Rust so these areOC not considered keywords in the `syn::token` module. Like any otherFK identifier that is not a keyword, these can be declared as custom keywordsN) by crates that need to use them as such., ```+ use syn::{LitBool, LitStr, Result, Token};.& use syn::parse::{Parse, ParseStream};) mod kw {  syn::custom_keyword!(bool);# syn::custom_keyword!(str);" } enum Argument { Bool { bool_token: kw::bool,! eq_token: Token![=],  value: LitBool, },  Str {  str_token: kw::str, eq_token: Token![=],  value: LitStr, },  } impl Parse for Argument {3 fn parse(input: ParseStream) -> Result {6, let lookahead = input.lookahead1();/& if lookahead.peek(kw::bool) {) Ok(Argument::Bool {#8 bool_token: input.parse::()?,;* eq_token: input.parse()?,-' value: input.parse()?,* }), } else if lookahead.peek(kw::str) {/ Ok(Argument::Str {"6 str_token: input.parse::()?,9* eq_token: input.parse()?,-' value: input.parse()?,* }) } else {# Err(lookahead.error())& }  }  } ```  macro_export  cfg featureparsing doc hidden  macro_export cfg featureprinting doc hidden  macro_export cfg feature clone-impls doc hidden  macro_export Ocfg not feature extra-traits%doc hidden  macro_export ʼnJ Define a type that supports parsing and printing a multi-character symbolM# as if it were a punctuation token.& # Usage  ```/ syn::custom_punctuation!(LeftRightArrow, <=>);2 ```K The generated syntax tree node supports the following operations just likeN any built-in punctuation token.#- - [Peeking] — `input.peek(LeftRightArrow)`03 - [Parsing] — `input.parse::()?`6. - [Printing] — `quote!( ... #lrarrow ... )`1F - Construction from a [`Span`] — `let lrarrow = LeftRightArrow(sp)`IW - Construction from multiple [`Span`] — `let lrarrow = LeftRightArrow([sp, sp, sp])`Z< - Field access to its spans — `let spans = lrarrow.spans`?+ [Peeking]: crate::parse::ParseBuffer::peek., [Parsing]: crate::parse::ParseBuffer::parse/ [Printing]: quote::ToTokens [`Span`]: proc_macro2::Span # Example  ```+ use proc_macro2::{TokenStream, TokenTree};.4 use syn::parse::{Parse, ParseStream, Peek, Result};7! use syn::punctuated::Punctuated;$ use syn::Expr;. syn::custom_punctuation!(PathSeparator, );1ǀ // expr expr expr ...ˀ! struct PathSegments {/ segments: Punctuated,2 } impl Parse for PathSegments {ā!3 fn parse(input: ParseStream) -> Result {6. let mut segments = Punctuated::new();1ς8 let first = parse_until(input, PathSeparator)?;ӂ;2 segments.push_value(syn::parse2(first)?);5Ń* while input.peek(PathSeparator) {Ƀ-1 segments.push_punct(input.parse()?);4; let next = parse_until(input, PathSeparator)?;>5 segments.push_value(syn::parse2(next)?);8 } & Ok(PathSegments { segments })) }  }M fn parse_until(input: ParseStream, end: E) -> Result {P) let mut tokens = TokenStream::new();Ɇ,2 while !input.is_empty() && !input.peek(end) {5. let next: TokenTree = input.parse()?;1# tokens.extend(Some(next));އ& }  Ok(tokens) } fn main() {) let input = r#" a::b c::d::e "#;,: let _: PathSegments = syn::parse_str(input).unwrap();= } ```  macro_export cfg featureparsing doc hidden  macro_export cfgÚؚ featureĚ̚printingΚ ݚdocݚ hiddenۚ  macro_export cfgğ feature clone-impls ɟdocɟ̟ӟ hidden͟ǟ؟  macro_export؟ ۪֟_cfg not feature extra-traits%docȪ hiddenªͪ  macro_exportͪ ˪ѫdocѫԫ۫ hiddenիϫ  macro_export ޫȻ<doc hidden  macro_export cdoc hidden  macro_export  3cfg featureparsing ѽSelf 8SelfSS b־ hͿ n e e e Icfg featureparsing Self&ecfg featureparsing %ocfg featureparsing %ycfg featureparsing % "DI ThreadBound is a Sync-maker and Send-maker that allows accessing a valueLE of type T only from the original thread on which the ThreadBound wasH constructed.T )T /Tÿ  T TEÿ  <cfg featureparsing  %# sH Support for checking the next token in a stream to decide how to parse.KB An important advantage over [`ParseStream::peek`] is that here weEH automatically construct an appropriate error message based on the tokenKK alternatives that get peeked. If you are producing your own error message,N. go ahead and use `ParseStream::peek` instead.1: Use [`ParseStream::lookahead1`] to construct this object.=7 [`ParseStream::peek`]: crate::parse::ParseBuffer::peek:C [`ParseStream::lookahead1`]: crate::parse::ParseBuffer::lookahead1F # Example  ```O use syn::{ConstParam, Ident, Lifetime, LifetimeDef, Result, Token, TypeParam};R& use syn::parse::{Parse, ParseStream};)L // A generic parameter, a single one of the comma-separated elements insideO // angle brackets in: //< // fn f() { ... }? //D // On invalid input, lookahead gives us a reasonable error message.G //= // error: expected one of: identifier, lifetime, `const`@ // |! // 5 | fn f() {}$ // | ^ enum GenericParam { Type(TypeParam), Lifetime(LifetimeDef), Const(ConstParam), } impl Parse for GenericParam {!3 fn parse(input: ParseStream) -> Result {6, let lookahead = input.lookahead1();/# if lookahead.peek(Ident) {&2 input.parse().map(GenericParam::Type)5- } else if lookahead.peek(Lifetime) {06 input.parse().map(GenericParam::Lifetime)92 } else if lookahead.peek(Token![const]) {53 input.parse().map(GenericParam::Const)6 } else {# Err(lookahead.error())& }  }  } ```'a ' 5 t'a-D Looks at the next token in the parse stream to determine whether itG% matches the requested type of token.( # Syntax H Note that this method does not use turbofish syntax. Pass the peek typeK inside of parentheses. - `input.peek(Token![struct])`" - `input.peek(Token![==])`8 - `input.peek(Ident)` *(does not accept keywords)*; - `input.peek(Ident::peek_any)`# - `input.peek(Lifetime)` - `input.peek(token::Brace)` T  ? Triggers an error at the current position of the parse stream.BE The error message will identify all of the expected token types thatH2 have been peeked against this lookahead instance.5[7 Types that can be parsed by looking at just one token.:G Use [`ParseStream::peek`] to peek one of these types in a parse streamJ& without consuming it from the stream.)I This trait is sealed and cannot be implemented for types outside of Syn.L7 [`ParseStream::peek`]: crate::parse::ParseBuffer::peek:Self doc hiddenUFT ߌ    cS  ABFT،  cfg featureparsing F Parsing interface for parsing a token stream into a syntax tree node.IK Parsing in Syn is built on parser functions that take in a [`ParseStream`]NK and produce a [`Result`] where `T` is some syntax tree node. UnderlyingNC these parser functions is a lower level mechanism built around theFG [`Cursor`] type. `Cursor` is a cheaply copyable cursor over a range ofJ tokens in a token stream. [`Result`]: Result" [`Cursor`]: crate::buffer::Cursor% # Example E Here is a snippet of parsing code to get a feel for the style of theHI library. We define data structures for a subset of Rust syntax includingLM enums (not shown) and structs, then provide implementations of the [`Parse`]PF trait to parse these syntax tree data structures from a token stream.IM Once `Parse` impls have been defined, they can be called conveniently from aPJ procedural macro through [`parse_macro_input!`] as shown at the bottom ofMG the snippet. If the caller provides syntactically invalid input to the JE procedural macro, they will receive a helpful compiler error messageӀ HB pointing out the exact token that triggered the failure to parse. E 2 [`parse_macro_input!`]: crate::parse_macro_input! 5  ```  # extern crate proc_macro;  #ǂ  use proc_macro::TokenStream;͂ J use syn::{braced, parse_macro_input, token, Field, Ident, Result, Token}; M& use syn::parse::{Parse, ParseStream}; )! use syn::punctuated::Punctuated; $  enum Item {  Struct(ItemStruct),  Enum(ItemEnum),  }ӄ ل  struct ItemStruct {݄ " struct_token: Token![struct], % ident: Ident,  brace_token: token::Brace, "* fields: Punctuated,ԅ - }  #  # enum ItemEnum {}   impl Parse for Item { 3 fn parse(input: ParseStream) -> Result {Æ 6, let lookahead = input.lookahead1(); /, if lookahead.peek(Token![struct]) { /, input.parse().map(Item::Struct)ڇ /1 } else if lookahead.peek(Token![enum]) { 4* input.parse().map(Item::Enum) - } else { # Err(lookahead.error()) & }  }  } lj  impl Parse for ItemStruct {ˉ 3 fn parse(input: ParseStream) -> Result { 6 let content;  Ok(ItemStruct { * struct_token: input.parse()?,׊ -# ident: input.parse()?, &4 brace_token: braced!(content in input), 7C fields: content.parse_terminated(Field::parse_named)?, F })  }  }Č  #ʌ  # impl Parse for ItemEnum {Ќ 5 # fn parse(input: ParseStream) -> Result { 8 # unimplemented!()  # }ȍ  # }ԍ ܍ $ # const IGNORE: &str = stringify! { ' #[proc_macro]  # }; 6 pub fn my_macro(tokens: TokenStream) -> TokenStream { 94 let input = parse_macro_input!(tokens as Item);ݎ 7  /* ... */  # "".parse().unwrap()  }Ǐ  ```͏ Տ  # The `syn::parse*` functionsُ ! L The [`syn::parse`], [`syn::parse2`], and [`syn::parse_str`] functions serve OI as an entry point for parsing syntax tree nodes that can be parsed in anϐ LJ obvious default way. These functions can return any syntax tree node that MB implements the [`Parse`] trait, which includes most types in Syn. E  [`syn::parse`]: crate::parse() "! [`syn::parse2`]: crate::parse2()ג $' [`syn::parse_str`]: crate::parse_str() *  ```  use syn::Type; Ɠ ' # fn run_parser() -> syn::Result<()> {ʓ *K let t: Type = syn::parse_str("std::collections::HashMap")?; N # Ok(())Ĕ  # }Ք  #ݔ  # run_parser().unwrap();  ```  4 The [`parse_quote!`] macro also uses this approach. 7ĕ & [`parse_quote!`]: crate::parse_quote!ȕ )  # The `Parser` trait  K Some types can be parsed in several ways depending on context. For example NE an [`Attribute`] can be either "outer" like `#[...]` or "inner" like HM `#![...]` and parsing the wrong one would be a bug. Similarly [`Punctuated`] PH may or may not allow trailing punctuation, and parsing it the wrong way K9 would either reject valid input or accept invalid input.Ș <  [`Attribute`]: crate::Attribute #" [`Punctuated`]: crate::punctuated %ә M The `Parse` trait is not implemented in these cases because there is no goodי P" behavior to consider the default. %Κ  ```compile_failҚ  # extern crate proc_macro;  # # # use syn::punctuated::Punctuated; &) # use syn::{PathSegment, Result, Token}; , #ߛ 8 # fn f(tokens: proc_macro::TokenStream) -> Result<()> { ; # I // Can't parse `Punctuated` without knowing whether trailing punctuation L& // should be allowed in this context. )E let path: Punctuated = syn::parse(tokens)?; H #  # Ok(())  # }  ```  L In these cases the types provide a choice of parser functions rather than a OI single `Parse` implementation, and those parser functions can be invoked L through the [`Parser`] trait. !џ ՟  ```ٟ  # extern crate proc_macro;  #  use proc_macro::TokenStream;  use syn::parse::Parser; ! use syn::punctuated::Punctuated;à $8 use syn::{Attribute, Expr, PathSegment, Result, Token}; ; @ fn call_some_parser_methods(input: TokenStream) -> Result<()> { CP // Parse a nonempty sequence of path segments separated by `::` punctuation S% // with no trailing punctuation. ( let tokens = input.clone(); #R let parser = Punctuated::::parse_separated_nonempty; U' let _path = parser.parse(tokens)?; * P // Parse a possibly empty sequence of expressions terminated by commas with S) // an optional trailing punctuation. , let tokens = input.clone(); #B let parser = Punctuated::::parse_terminated; E' let _args = parser.parse(tokens)?; * E // Parse zero or more outer attributes but not inner attributes. H let tokens = input.clone(); #) let parser = Attribute::parse_outer; ,( let _attrs = parser.parse(tokens)?;Ƨ +  Ok(())  }  ```   ---  N *This module is available only if Syn is built with the `"parsing"` feature.* Q  path  discouraged.rs  8 Extensions to the parsing API with niche applicability.";" "0D Extensions to the `ParseStream` API to support speculative parsing."GSelf""D Advance this parse stream to the position of a forked parse stream."G"H This is the opposite operation to [`ParseStream::fork`]. You can fork a"KG parse stream, perform some speculative parsing, then join the original"JE stream to the fork to "commit" the parsing from the fork to the main"H stream." "E If you can avoid doing this, you should, as it limits the ability to"HE generate useful errors. That said, it is often the only way to parse"HI syntax of the form `A* B*` for arbitrary syntax `A` and `B`. The problem"LE is that when the fork fails to parse an `A`, it's impossible to tell"HI whether that was because of a syntax error and the user meant to provide"LE an `A`, or that the `A`s are finished and it's time to start parsing"H `B`s. Use with care.""C Also note that if `A` is a subset of `B`, `A* B*` can be parsed by"F> parsing `B*` and removing the leading members of `A` from the"AH repetition, bypassing the need to involve the downsides associated with"K speculative parsing."") [`ParseStream::fork`]: ParseBuffer::fork"," # Example" "I There has been chatter about the possibility of making the colons in the"LF turbofish syntax like `path::to::` no longer required by accepting"IF `path::to` in expression position. Specifically, according to [RFC"IH 2544], [`PathSegment`] parsing should always try to consume a following"KE `<` token as the start of generic arguments, and reset to the `<` if"H? that fails (e.g. the token is acting as a less-than operator)."B"E This is the exact kind of parsing behavior which requires the "fork,"HC try, commit" behavior that [`ParseStream::fork`] discourages. With"FD `advance_to`, we can avoid having to parse the speculatively parsed"G content a second time.""H This change in behavior can be implemented in syn by replacing just the"K* `Parse` implementation for `PathSegment`:"-" ```" # use syn::ext::IdentExt;"* use syn::parse::discouraged::Speculative;"-( # use syn::parse::{Parse, ParseStream};"+2 # use syn::{Ident, PathArguments, Result, Token};"5" pub struct PathSegment {" pub ident: Ident,"" pub arguments: PathArguments,"% }" #"" # impl From for PathSegment"% # where"  # T: Into," # {"" # fn from(ident: T) -> Self {"% # PathSegment {"# # ident: ident.into(),"&. # arguments: PathArguments::None,"1 # }" # }"  # }"" impl Parse for PathSegment {" 3 fn parse(input: ParseStream) -> Result {"6% if input.peek(Token![super])"(( || input.peek(Token![self])"+( || input.peek(Token![Self])"+) || input.peek(Token![crate])", {" 7 let ident = input.call(Ident::parse_any)?;":1 return Ok(PathSegment::from(ident));"4 }" "$ let ident = input.parse()?;"'> if input.peek(Token![::]) && input.peek3(Token![<]) {"A$ return Ok(PathSegment {"' ident,"J arguments: PathArguments::AngleBracketed(input.parse()?),"M });" }" > if input.peek(Token![<]) && !input.peek(Token![<=]) {"A% let fork = input.fork();"(2 if let Ok(arguments) = fork.parse() {"5) input.advance_to(&fork);",( return Ok(PathSegment {"+ ident,"I arguments: PathArguments::AngleBracketed(arguments),"L });" }" }" % Ok(PathSegment::from(ident))"( }"  }""4 # syn::parse_str::("a").unwrap();"7 ```"" # Drawbacks""C The main drawback of this style of speculative parsing is in error"FF presentation. Even if the lookahead is the "correct" parse, the error"IG that is shown is that of the "fallback" parse. To use the same example"JC as the turbofish above, take the following unfinished "turbofish":"F" ```text" ( let _ = f<&'a fn(), for<'a> serde::>();"+ ```""I If this is parsed as generic arguments, we can provide the error message"L" ```text"  error: expected identifier" --> src.rs:L:C" |", L | let _ = f<&'a fn(), for<'a> serde::>();"/) | ^", ```""D but if parsed using the above speculative parsing, it falls back to"GH assuming that the `<` is a less-than when it fails to parse the generic"KG arguments, and tries to interpret the `&'a` as the start of a labelled"J/ loop, resulting in the much less helpful error"2" ```text"  error: expected `:`" --> src.rs:L:C" |", L | let _ = f<&'a fn(), for<'a> serde::>();"/ | ^^" ```""G This can be mitigated with various heuristics (two examples: show both"JE forks' parse errors, or show the one that consumed more tokens), but"HD when you can control the grammar, sticking to something that can be"GB parsed LL(3) and without the LL(*) speculative parsing this makes"EA possible, displaying reasonable errors becomes much more simple."D"8 [RFC 2544]: https://github.com/rust-lang/rfcs/pull/2544";$ [`PathSegment`]: crate::PathSegment"'" # Performance""G This method performs a cheap fixed amount of work that does not depend"J1 on how far apart the two streams are positioned."4" # Panics" "A The forked stream in the argument of `advance_to` must have been"DF obtained by forking `self`. Attempting to advance to any other stream"I will cause a panic.""" 'a"#!# ) é ѩ    cfg    all    not  ת  all  ֪  target_arch wasm32   any  ժ  target_os unknown   target_osê ͪ wasiϪ ت  featureު   proc-macro  " ̫ Xޫ          %ɬ Ϭ Ϭ ֬       ʭ &   -   LK Parsing interface implemented by all types that can be parsed in a default N way from a token stream.  M Refer to the [module documentation] for details about implementing and using P the `Parse` trait.   [module documentation]: self Self   -ʰ Ѳ / Input to a Syn parser function. # M See the methods of this type under the documentation of [`ParseBuffer`]. For PD an overview of parsing in Syn, refer to the [module documentation]. G  [module documentation]: self 'a  0 Cursor position within a buffered token stream. 3 M This type is more commonly used through the type alias [`ParseStream`] which P is an alias for `&ParseBuffer`. # K `ParseStream` is the input type for all parser functions in Syn. They have N. the signature `fn(ParseStream) -> Result`. 1  ## Calling a parser function ٵ I There is no public way to construct a `ParseBuffer`. Instead, if you areݵ LJ looking to invoke a parser function that requires `ParseStream` as input, MD you will need to go through one of the public parsing entry points. G K - The [`parse_macro_input!`] macro if parsing input of a procedural macro;ķ N6 - One of [the `syn::parse*` functions][syn-parse]; or 9$ - A method of the [`Parser`] trait.͸ ' ) [syn-parse]: self#the-synparse-functions ,'a ǹ о   .ɿ 'aο    'a  4  'a  4  2 Cursor state associated with speculative parsing. 5 I This type is the input of the closure provided to [`ParseStream::step`]. L ) [`ParseStream::step`]: ParseBuffer::step ,  # Example   ```  use proc_macro2::TokenTree;  use syn::Result;  use syn::parse::ParseStream;  I // This function advances the stream past the next occurrence of `@`. If LI // no `@` is present in the stream, the stream position is unchanged and L // an error is returned. 9 fn skip_past_next_at(input: ParseStream) -> Result<()> { < input.step(|cursor| {  let mut rest = *cursor; #9 while let Some((tt, next)) = rest.token_tree() { < match &tt { G TokenTree::Punct(punct) if punct.as_char() == '@' => { J+ return Ok(((), next)); . } " _ => rest = next, % }  } ? Err(cursor.error("no `@` was found after this point")) B })  }  # , # fn remainder_after_skipping_past_next_at( / # input: ParseStream, * # ) -> Result { -! # skip_past_next_at(input)?; $ # input.parse()  # }  #  # use syn::parse::Parser; 8 # let remainder = remainder_after_skipping_past_next_at ; # .parse_str("a @ b c")  # .unwrap(); , # assert_eq!(remainder.to_string(), "b c"); / ``` 'c'a     1 'c'a      +'c'a   _'c'a     'c'a   3? Triggers an error at the current position of the parse stream. B G The `ParseStream::step` invocation will return this same error without J advancing the stream state. T E   b    {  Y         Y     6T  ÿ     Q  J  H  է'a  *E Parses a syntax tree node of type `T`, advancing the position of our H parse stream past it. T      JH Calls the given parser function to parse a syntax tree node of type `T` K from this stream.   # Example  I The parser below invokes [`Attribute::parse_outer`] to parse a vector of L zero or more outer attributes. " : [`Attribute::parse_outer`]: crate::Attribute::parse_outer =  ``` , use syn::{Attribute, Ident, Result, Token}; /& use syn::parse::{Parse, ParseStream}; ) ) // Parses a unit struct with attributes. , //  // #[path = "s.tmpl"]  // struct S;  struct UnitStruct {  attrs: Vec, " struct_token: Token![struct], % name: Ident,  semi_token: Token![;],  }   impl Parse for UnitStruct { 3 fn parse(input: ParseStream) -> Result { 6 Ok(UnitStruct { 8 attrs: input.call(Attribute::parse_outer)?, ;* struct_token: input.parse()?, -" name: input.parse()?, %( semi_token: input.parse()?, + })  }  }  ``` T   !-D Looks at the next token in the parse stream to determine whether it G% matches the requested type of token. ( 3 Does not advance the position of the parse stream. 6  # Syntax  H Note that this method does not use turbofish syntax. Pass the peek type K inside of parentheses.   - `input.peek(Token![struct])` " - `input.peek(Token![==])` 8 - `input.peek(Ident)` *(does not accept keywords)* ; - `input.peek(Ident::peek_any)` # - `input.peek(Lifetime)`  - `input.peek(token::Brace)`   # Example  H In this example we finish parsing the list of supertraits when the next K@ token in the input is either `where` or an opening curly brace. C  ``` J use syn::{braced, token, Generics, Ident, Result, Token, TypeParamBound}; M& use syn::parse::{Parse, ParseStream}; )! use syn::punctuated::Punctuated; $!= // Parses a trait definition containing no associated items.!@ //߀!? // trait Marker<'de, T>: A + B<'de> where Box: Clone {}!B struct MarkerTrait {! trait_token: Token![trait],΁!# ident: Ident,! generics: Generics,!$ colon_token: Option,!'8 supertraits: Punctuated,܂!; brace_token: token::Brace,!" }Ã!̓! impl Parse for MarkerTrait {Ճ! 3 fn parse(input: ParseStream) -> Result {!69 let trait_token: Token![trait] = input.parse()?;!<+ let ident: Ident = input.parse()?;!.5 let mut generics: Generics = input.parse()?;!8= let colon_token: Option = input.parse()?;!@!1 let mut supertraits = Punctuated::new();!4# if colon_token.is_some() {!& loop {!8 supertraits.push_value(input.parse()?);!;K if input.peek(Token![where]) || input.peek(token::Brace) {!N break;ň! }!8 supertraits.push_punct(input.parse()?);!; }‰! }؉! !0 generics.where_clause = input.parse()?;!3 let content;!; let empty_brace_token = braced!(content in input);NJ!>! Ok(MarkerTrait {! trait_token,! ident,ԋ! generics,! colon_token,! supertraits,!, brace_token: empty_brace_token,ό!/ })! }!  }! ```!Tύ!ƍ!ɍ! ƍ!͘!.4 Looks at the second-next token in the parse stream.!7!C This is commonly useful as a way to implement contextual keywords.!F! # Exampleɏ! ۏ!F This example needs to use `peek2` because the symbol `union` is not a!II keyword in Rust. We can't use just `peek` and decide to parse a union if!LH the very next token is `union`, because someone is free to write a `mod!KH union` and a macro invocation that looks like `union::some_macro! { ...ґ!K4 }`. In other words `union` is a contextual keyword.!7ޒ! ```!3 use syn::{Ident, ItemUnion, Macro, Result, Token};!6& use syn::parse::{Parse, ParseStream};!)ۓ!0 // Parses either a union or a macro invocation.!3 enum UnionOrMacro {!5 // union MaybeUninit { uninit: (), value: T }!8 Union(ItemUnion),! // lazy_static! { ... }! Macro(Macro),! }Е!ڕ! impl Parse for UnionOrMacro {!!3 fn parse(input: ParseStream) -> Result {!6= if input.peek(Token![union]) && input.peek2(Ident) {Ö!@3 input.parse().map(UnionOrMacro::Union)!6 } else {×!3 input.parse().map(UnionOrMacro::Macro)ܗ!6 }!  }!  }! ```!T!ژ!ݘ! ژ! !@!Ϝ!.3 Looks at the third-next token in the parse stream.!6T!ܜ!ߜ! ܜ! !@!׬!H Parses zero or more occurrences of `T` separated by punctuation of type!K) `P`, with optional trailing punctuation.ء!,!I Parsing continues until the end of this parse stream. The entire content!L2 of this parse stream must consist of `T` and `P`.!5! # Example! ! ```! # use quote::quote;ʣ! #!= use syn::{parenthesized, token, Ident, Result, Token, Type};!@& use syn::parse::{Parse, ParseStream};!)! use syn::punctuated::Punctuated;!$!0 // Parse a simplified tuple struct syntax like:!3 //̥! // struct S(A, B);ץ! struct TupleStruct {!" struct_token: Token![struct],!% ident: Ident,! paren_token: token::Paren,צ!") fields: Punctuated,!, semi_token: Token![;],! }ҧ!ܧ! impl Parse for TupleStruct {! 3 fn parse(input: ParseStream) -> Result {!6 let content;Ĩ! Ok(TupleStruct {!* struct_token: input.parse()?,!-# ident: input.parse()?,!&; paren_token: parenthesized!(content in input),ߩ!>< fields: content.parse_terminated(Type::parse)?,!?( semi_token: input.parse()?,!+ })! }!  }! #! # let input = quote! {˫! # struct S(A, B);! # };!. # syn::parse2::(input).unwrap();!1 ```ˬ!TP!!!! ! !!; Returns whether there are tokens remaining in this stream.!>!? This method returns true at the end of the content of a set of!BD delimiters, as well as at the very end of the complete macro input.!G! # Example! ! ```!6 use syn::{braced, token, Ident, Item, Result, Token};!9& use syn::parse::{Parse, ParseStream};!)!@ // Parses a Rust `mod m { ... }` containing zero or more items.!C struct Mod {! mod_token: Token![mod],! name: Ident,! brace_token: token::Brace,!" items: Vec,! }!! impl Parse for Mod {!3 fn parse(input: ParseStream) -> Result {!6 let content;! Ok(Mod {!' mod_token: input.parse()?,!*" name: input.parse()?,ϴ!%4 brace_token: braced!(content in input),!7 items: {!, let mut items = Vec::new();ҵ!/, while !content.is_empty() {!/2 items.push(content.parse()?);!5 }! items! },! })÷! }ַ!  }! ```!!!*E Constructs a helper for peeking at the next token in this stream and¸!HH building an error message if it is not one of a set of expected tokens.!K߹! # Example! ! ```!O use syn::{ConstParam, Ident, Lifetime, LifetimeDef, Result, Token, TypeParam};!R& use syn::parse::{Parse, ParseStream};!)!L // A generic parameter, a single one of the comma-separated elements inside!O // angle brackets in:! //!< // fn f() { ... }!? //ۼ!D // On invalid input, lookahead gives us a reasonable error message.!G //!= // error: expected one of: identifier, lifetime, `const`!@ // |!! // 5 | fn f() {}!$ // | ^! enum GenericParam {ܾ! Type(TypeParam),! Lifetime(LifetimeDef),! Const(ConstParam),! }׿!! impl Parse for GenericParam {!!3 fn parse(input: ParseStream) -> Result {!6, let lookahead = input.lookahead1();!/# if lookahead.peek(Ident) {!&2 input.parse().map(GenericParam::Type)!5- } else if lookahead.peek(Lifetime) {!06 input.parse().map(GenericParam::Lifetime)!92 } else if lookahead.peek(Token![const]) {!53 input.parse().map(GenericParam::Const)!6 } else {!# Err(lookahead.error())!& }!  }!  }! ```!!!G Forks a parse stream so that parsing tokens out of either the original!J8 or the fork does not advance the position of the other.!;! # Performance!!D Forking a parse stream is a cheap fixed amount of work and does not!GH involve copying token buffers. Where you might hit performance problems!KE is if your macro ends up parsing a large amount of content more than!H once.! ! ```! # use syn::{Expr, Result};! # use syn::parse::ParseStream;!" #!/ # fn bad(input: ParseStream) -> Result {!2 // Do not do this.!* if input.fork().parse::().is_ok() {!-" return input.parse::();!% }! # unimplemented!()! # }! ```!!G As a rule, avoid parsing an unbounded amount of tokens out of a forked!JH parse stream. Only use a fork when the amount of work performed against!K the fork is small and bounded.!"!> When complex speculative parsing against the forked stream is!AD unavoidable, use [`parse::discouraged::Speculative`] to advance the!GA original stream once the fork's parse is determined to have been!D successful.!!I For a lower level way to perform speculative parsing at the token level,!L. consider using [`ParseStream::step`] instead.!1!> [`parse::discouraged::Speculative`]: discouraged::Speculative!A) [`ParseStream::step`]: ParseBuffer::step!,! # Example! !E The parse implementation shown here parses possibly restricted `pub`!H visibilities.!! - `pub`!  - `pub(crate)`! - `pub(self)`! - `pub(super)`! - `pub(in some::path)`!!G To handle the case of visibilities inside of tuple structs, the parser!JF needs to distinguish parentheses that specify visibility restrictions!I1 from parentheses that form part of a tuple type.!4! ```! # struct A;! # struct B;! # struct C;! #!$ struct S(pub(crate) A, pub (B, C));!' ```!!@ In this example input the first tuple struct element of `S` has!CH `pub(crate)` visibility while the second tuple struct element has `pub`!KH visibility; the parentheses around `(B, C)` are part of the type rather!K' than part of a visibility restriction.!*!I The parser uses a forked parse stream to check the first token inside of!LG parentheses after the `pub` keyword. This is a small bounded amount of!J0 work performed against the forked parse stream.!3! ```!= use syn::{parenthesized, token, Ident, Path, Result, Token};!@ use syn::ext::IdentExt;!& use syn::parse::{Parse, ParseStream};!)! struct PubVisibility {! pub_token: Token![pub],!$ restricted: Option,!' }!! struct Restricted {! paren_token: token::Paren,!"" in_token: Option,!% path: Path,! }!! impl Parse for PubVisibility {!"3 fn parse(input: ParseStream) -> Result {!65 let pub_token: Token![pub] = input.parse()?;!8!& if input.peek(token::Paren) {!)& let ahead = input.fork();!) let mut content;! . parenthesized!(content in ahead);!1!+ if content.peek(Token![crate])!.. || content.peek(Token![self])!1/ || content.peek(Token![super])!2 {!* return Ok(PubVisibility {!- pub_token,!"2 restricted: Some(Restricted {!5G paren_token: parenthesized!(content in input),!J( in_token: None,!+K path: Path::from(content.call(Ident::parse_any)?),!N }),! });!1 } else if content.peek(Token![in]) {!4* return Ok(PubVisibility {!- pub_token,!"2 restricted: Some(Restricted {!5G paren_token: parenthesized!(content in input),!J: in_token: Some(content.parse()?),!=D path: content.call(Path::parse_mod_style)?,!G }),! });! }! }! ! Ok(PubVisibility {! pub_token,! restricted: None,!! })! }!  }! ```!!!4? Triggers an error at the current position of the parse stream.!B! # Example! ! ```! use syn::{Expr, Result, Token};!#& use syn::parse::{Parse, ParseStream};!)!2 // Some kind of loop: `while` or `for` or `loop`.!5 struct Loop {! expr: Expr,! }!! impl Parse for Loop {!3 fn parse(input: ParseStream) -> Result {!6% if input.peek(Token![while])!(' || input.peek(Token![for])!*( || input.peek(Token![loop])!+ {!  Ok(Loop {!& expr: input.parse()?,!) })! } else {!; Err(input.error("expected some kind of loop"))!> }!  }!  }! ```!T!!E ! !"B Speculatively parses tokens from this parse stream, advancing the!E2 position of this stream only if parsing succeeds.!5!H This is a powerful low-level API used for defining the `Parse` impls of!KF the basic built-in token types. It is not something that will be used!I$ widely outside of the Syn codebase.!'! # Example! ! ```! use proc_macro2::TokenTree;! use syn::Result;! use syn::parse::ParseStream;! !I // This function advances the stream past the next occurrence of `@`. If!LI // no `@` is present in the stream, the stream position is unchanged and!L // an error is returned.!9 fn skip_past_next_at(input: ParseStream) -> Result<()> {!< input.step(|cursor| {! let mut rest = *cursor;!#9 while let Some((tt, next)) = rest.token_tree() {!< match &tt {!G TokenTree::Punct(punct) if punct.as_char() == '@' => {!J+ return Ok(((), next));!. }!" _ => rest = next,!% }! }! ? Err(cursor.error("no `@` was found after this point"))!B })!  }! #!, # fn remainder_after_skipping_past_next_at(!/ # input: ParseStream,!* # ) -> Result {!-! # skip_past_next_at(input)?;!$ # input.parse()" # }" #" # use syn::parse::Parser;"8 # let remainder = remainder_after_skipping_past_next_atـ"; # .parse_str("a @ b c")" # .unwrap();", # assert_eq!(remainder.to_string(), "b c");ց"/ ```"FR"F"R"'c'c'aނ"='c'c" " """= Returns the `Span` of the next token in the parse stream, or"@F `Span::call_site()` if this parse stream has completely exhausted its"I input `TokenStream`.""Ғ""F Provides low-level access to the token representation underlying this"I parse stream."ȑ"F Cursors are immutable so no operations you perform against the cursorБ"I, will affect the state of this parse stream."/""(""T"" "",̕" ̖"Tі"Ԗ"ÿ ܖ" і""," ""," ƙ"5"ٚ"," """," ӝ"ɡ""," """," ""F Parser that can parse Rust tokens into a particular syntax tree node."I"F Refer to the [module documentation] for details about parsing in Syn."I" [module documentation]: self" ֧"M *This trait is available only if Syn is built with the `"parsing"` feature.*ڧ"PSelf"" ɨ" Ȫ"=C Parse a proc-macro2 token stream into the chosen syntax tree node.ۨ"F"F This function will check that the input is fully parsed. If there are"ID any unparsed tokens at the end of the stream, an error is returned."G"G> Parse tokens of source code into the chosen syntax tree node."Aѫ"F This function will check that the input is fully parsed. If there are٫"ID any unparsed tokens at the end of the stream, an error is returned."G"M *This method is available only if Syn is built with both the `"parsing"` and"P `"proc-macro"` features.*Э""cfg"Š"" all""" not""Ԯ" all""Ӯ" target_arch" "wasm32"" any""Ү" target_os" "unknown" " target_os" ʮ"wasi̮"ծ" feature߮"" proc-macro" ""3> Parse a string of Rust code into the chosen syntax tree node."Aٰ"F This function will check that the input is fully parsed. If there are"ID any unparsed tokens at the end of the string, an error is returned."G" # Hygiene" "F Every span in the resulting syntax tree will be set to resolve at the"I macro call site."""Q"doc""" hidden"""cfg""ڴ" any""ٴ" feature""full"Ŵ" featureǴ"ϴ"deriveѴ""1Ӷ"C"doc""" hidden"""cfg""̶" any""˶" feature""full"" feature""deriveö""1" " ߷">"ҹ" FT  " ڹ"" ׹" ׹" ڹ" ""1"Q"doc""" hidden"""cfg""" any""" feature""full"" feature""derive""1"C"doc""" hidden"""cfg""" any""" feature""full"" feature""derive""1"  "b"cfg""" any""" feature""full"" feature""derive""1F"" " "T"cfg"׍"" any""" feature""full"" feature""derive""1F" "" ""? An empty syntax tree node that consumes no tokens when parsed."B"E This is useful for attribute macros that want to ensure they are not"H provided any attribute args." " ```" # extern crate proc_macro;" #" use proc_macro::TokenStream;"  use syn::parse_macro_input;" use syn::parse::Nothing;""$ # const IGNORE: &str = stringify! {"' #[proc_macro_attribute]" # };"G pub fn my_attr(args: TokenStream, input: TokenStream) -> TokenStream {"J) parse_macro_input!(args as Nothing);"," /* ... */" # "".parse().unwrap()" }" ```"" ```text"  error: unexpected token" --> src/main.rs:3:19" |" 3 | #[my_attr(asdf)]" | ^^^^" ```""? An empty syntax tree node that consumes no tokens when parsed."B"E This is useful for attribute macros that want to ensure they are not"H provided any attribute args." " ```" # extern crate proc_macro;" #" use proc_macro::TokenStream;"  use syn::parse_macro_input;" use syn::parse::Nothing;""$ # const IGNORE: &str = stringify! {"' #[proc_macro_attribute]" # };"G pub fn my_attr(args: TokenStream, input: TokenStream) -> TokenStream {"J) parse_macro_input!(args as Nothing);"," /* ... */" # "".parse().unwrap()" }" ```"" ```text"  error: unexpected token" --> src/main.rs:3:19" |" 3 | #[my_attr(asdf)]" | ^^^^" ```""h"-"  cfg all any featurefull featurederive featureparsing Kڋ#-# # ## #OŌ#Ō# cfg all any featurefull featurederive featureprinting L##ɏ#9'aT# 'a##ɏ#9# ###'aT#u # ̐## #ې#-#Lcfg featureparsing - ##cfg### feature##parsing# #̒##s# #######œ# ғ# ##cfg### feature##printing# ##%#####Ք## ##3 The result of a Syn parser.#T# #ƥ#5@ Error returned when a Syn parser cannot parse the input tokens.ɕ#C#! # Error reporting in proc macros#$#H The correct way to report errors back to the compiler from a procedural#K< macro is by emitting an appropriately spanned invocation of#?L [`compile_error!`] in the generated code. This produces a better diagnosticƗ#O) message than simply panicking the macro.#,Ø#( [`compile_error!`]: std::compile_error!ǘ#+#G When parsing macro input, the [`parse_macro_input!`] macro handles the#J. conversion to `compile_error!` automatically.™#1# ```# # extern crate proc_macro;# ## use proc_macro::TokenStream;# 5 use syn::{parse_macro_input, AttributeArgs, ItemFn};ƚ#8#$ # const IGNORE: &str = stringify! {#' #[proc_macro_attribute]# # };Ǜ#G pub fn my_attr(args: TokenStream, input: TokenStream) -> TokenStream {Л#J: let args = parse_macro_input!(args as AttributeArgs);#=5 let input = parse_macro_input!(input as ItemFn);ٜ#8# /* ... */# # TokenStream::new()# }ŝ# ```˝#ӝ#@ For errors that arise later than the initial parsing stage, theם#CM [`.to_compile_error()`] method can be used to perform an explicit conversion#P to `compile_error!`.##1 [`.to_compile_error()`]: Error::to_compile_error#4# ```Ÿ# # extern crate proc_macro;ʟ# ## # use proc_macro::TokenStream;#"- # use syn::{parse_macro_input, DeriveInput};#0 #à#$ # const IGNORE: &str = stringify! {ɠ#' #[proc_macro_derive(MyDerive)]#" # };#6 pub fn my_derive(input: TokenStream) -> TokenStream {#9: let input = parse_macro_input!(input as DeriveInput);ס#=#@ // fn(DeriveInput) -> syn::Result#C expand::my_derive(input)ݢ# 6 .unwrap_or_else(|err| err.to_compile_error())#9 .into()# }̣# #ң# # mod expand {أ#$ # use proc_macro2::TokenStream;#'& # use syn::{DeriveInput, Result};#) ##D # pub fn my_derive(input: DeriveInput) -> Result {ä#G # unimplemented!()# # }#  # }# ```#ݥ####Ʃ##(#6F Usually the [`ParseStream::error`] method will be used instead, which#IE automatically uses the correct span from the current position of the#H parse stream.#ի#I Use `Error::new` when the error needs to be triggered on some span otherݫ#L5 than where the parse stream is currently positioned.#8#9 [`ParseStream::error`]: crate::parse::ParseBuffer::error#<# # Example# έ# ```֭#0 use syn::{Error, Ident, LitStr, Result, Token};#3 use syn::parse::ParseStream;# #H // Parses input that looks like `name = "string"` where the key must beǮ#KB // the identifier `name` and the value may be any string literal.#E // Returns the string literal.#"6 fn parse_name(input: ParseStream) -> Result {#9, let name_token: Ident = input.parse()?;ư#/ if name_token != "name" {#!G // Trigger an error not on the current position of the stream,#J= // but on the position of the unexpected identifier.#@F return Err(Error::new(name_token.span(), "expected `name`"));#I }# ! input.parse::()?;#$$ let s: LitStr = input.parse()?;#' Ok(s)#  }# ```#T#Eÿ # ##JF Creates an error with the specified message spanning the given syntax#I tree node.##H Unlike the `Error::new` constructor, this constructor takes an argument#KH `tokens` which is a syntax tree node. This allows the resulting `Error`#KB to attempt to span all tokens inside of `tokens`. While you would¸#EI typically be able to use the `Spanned` trait with the above `Error::new`#L8 constructor, implementation limitations today mean thatݹ#;C `Error::new_spanned` may provide a higher-quality error message on#F stable Rust.##< When in doubt it's recommended to stick to `Error::new` (or#? `ParseStream::error`)!ɻ##cfg#ː## feature##printing# #TU##U#E# # #ҽ# # #" The source location of the error.#%#G Spans are not thread-safe so this function returns `Span::call_site()`#JH if called from a different thread than the one on which the `Error` was#K originally created.###-9 Render the error as an invocation of [`compile_error!`].#<#E The [`parse_macro_input!`] macro provides a convenient way to invoke#H- this method correctly in a procedural macro.#0#( [`compile_error!`]: std::compile_error!#+##.9 Render the error as an invocation of [`compile_error!`].#<#( [`compile_error!`]: std::compile_error!#+# # Example# # ```# # extern crate proc_macro;# ## use proc_macro::TokenStream;# 2 use syn::{parse_macro_input, DeriveInput, Error};#5# # const _: &str = stringify! {#" #[proc_macro_derive(MyTrait)]#! # };#< pub fn derive_my_trait(input: TokenStream) -> TokenStream {#?: let input = parse_macro_input!(input as DeriveInput);#= my_trait::expand(input)#3 .unwrap_or_else(Error::into_compile_error)#6 .into()# }## mod my_trait {#" use proc_macro2::TokenStream;#%$ use syn::{DeriveInput, Result};#'#F pub(crate) fn expand(input: DeriveInput) -> Result {#I /* ... */# # unimplemented!()# }#  }# ```##)I Add another error message to self such that when `to_compile_error()` is#L. called, both errors will be emitted together.#1###)# #K#cfg### feature##parsing# #T### # #D#cfg### all### feature##parsing# # any### feature##full## feature##derive##KT## ###<###<###<##########x## # ##$#B#%# ##(##'a# # ##$#D'a##'#'a# ##(###<T##7ÿ #ÿ 7# #& K> Parse tokens of source code into the chosen syntax tree node.AL This is preferred over parsing a string because tokens are able to preserveOM information about where in the user's code they were originally written (thePM "span" of the token), possibly allowing the compiler to produce better errorP messages. L This function parses a `proc_macro::TokenStream` which is the type used forO< interop with the compiler in a procedural macro. To parse a?9 `proc_macro2::TokenStream`, use [`syn::parse2`] instead.< [`syn::parse2`]: parse2O *This function is available only if Syn is built with both the `"parsing"` andR `"proc-macro"` features.* # Examples ``` # extern crate proc_macro; # use proc_macro::TokenStream;  use quote::quote; use syn::DeriveInput;+ # const IGNORE_TOKENS: &str = stringify! {. #[proc_macro_derive(MyMacro)]! # };5 pub fn my_macro(input: TokenStream) -> TokenStream {8+ // Parse the tokens into a syntax tree.7 let ast: DeriveInput = syn::parse(input).unwrap();:8 // Build the output, possibly using quasi-quotation; let expanded = quote! { /* ... */ }; 1 // Convert into a token stream and return it4 expanded.into() } ```cfg all not all target_arch wasm32 any target_os unknown  target_os wasi featureparsing  feature proc-macro T  MC Parse a proc-macro2 token stream into the chosen syntax tree node.FF This function will check that the input is fully parsed. If there areID any unparsed tokens at the end of the stream, an error is returned.GK This function parses a `proc_macro2::TokenStream` which is commonly usefulNI when the input comes from a node of the Syn syntax tree, for example theLH body tokens of a [`Macro`] node. When in a procedural macro parsing theKG `proc_macro::TokenStream` provided by the compiler, use [`syn::parse`]J instead.  [`syn::parse`]: parse()P *This function is available only if Syn is built with the `"parsing"` feature.*Scfg featureparsing T  7> Parse a string of Rust code into the chosen syntax tree node.AP *This function is available only if Syn is built with the `"parsing"` feature.*S # Hygiene L Every span in the resulting syntax tree will be set to resolve at the macroO call site. # Examples ``` use syn::{Expr, Result}; fn run() -> Result<()> {3 let code = "assert_eq!(u8::max_value(), 255)";6. let expr = syn::parse_str::(code)?;1 println!("{:#?}", expr);  Ok(()) } # # run().unwrap(); ```cfg featureparsing T   ߏcfg ߏۖ   feature  parsing  ݏC   ֐#C    ! cfg    feature  parsing  C  ߏcfg ߏ   feature  parsing  ݏC   ֐#C    ! cfg    feature  parsing  C  ߏcfg ߏŗ   feature  parsing  ݏC   ֐#C    ! cfg    feature  parsing  C  ߏcfg ߏ   feature  parsing  ݏC   ֐#C    ! cfg    feature  parsing  Cߏcfgߏ featureparsing ݏC ֐#C !cfgݘ featureparsing Cߏcfgߏ featureparsing ݏC ֐#C !cfg featureparsing Cߏcfgߏ featureparsing ݏC ֐#C !cfgǙ featureparsing CߏcfgߏΙ featureparsing ݏ C  ֐# C  !cfg featureparsing  Cߏcfgߏ featureparsing ݏ C  ֐# C  !cfg featureparsing  Cߏcfgߏ featureparsing ݏ C  ֐# C  !cfg featureparsing  C—cfg featureparsing  C Ș řcfg featureparsing  C—cfg featureparsing  C Ș řcfg featureparsing  C—cfg featureparsing CȘřcfgϛ featureparsing CI½repr½֛ƽȽ Cǽ docכ `_`׽< Don't try to remember the name of this type — use the? [`Token!`] macro instead.Ǿ [`Token!`]: crate::tokenͿ ;doc hiddenallow non_snake_caseS  Ccfg feature clone-impls Czcfg feature clone-impls CC ѹ ڹۺC,@doc `abstract`ڟ< Don't try to remember the name of this type — use the? [`Token!`] macro instead.ʠ [`Token!`]: crate::tokenС 7doc hiddenallow non_snake_caseSȢˢ ȢܢCʥcfgʥͥ featureΥ֥ clone-implsإ ȥÇzަcfgަ feature clone-impls ܦCcfg featureprinting C-cfgǝӲ featureȲparsingʲ Cɳ,ٳ õcfg featureparsing C!cfg featureparsing C@doc `as`ڟ< Don't try to remember the name of this type — use the? [`Token!`] macro instead.ʠ [`Token!`]: crate::tokenС 7doc hiddenallow non_snake_caseSȢˢ ȢܢCʥcfgʥͥ featureΥ֥ clone-implsإ ȥÇzަcfgަ feature clone-impls ܦCcfgў featureprinting C-cfgӲ featureȲparsingʲ Cɳ,ٳ õcfg featureparsing C!cfg featureparsing C@ doc   `async` ڟ< Don't try to remember the name of this type — use the? [`Token!`] macro instead.ʠ [`Token!`]: crate::tokenС 7doc hiddenallow non_snake_caseSȢˢ ȢܢCʥcfgʥߟͥ featureΥ֥ clone-implsإ ȥÇzަcfgަ feature clone-impls ܦCcfg featureprinting C-cfgӲ featureȲparsingʲ Cɳ,ٳ õcfg featureparsing C!cfgʠ featureparsing C@ doc Ѡ  `auto` ڟ< Don't try to remember the name of this type — use the? [`Token!`] macro instead.ʠ [`Token!`]: crate::tokenС 7docנ hiddenallowؠ non_snake_caseSȢˢ ȢܢCʥcfgʥͥ featureΥ֥ clone-implsإ ȥÇzަcfgަ feature clone-impls ܦCcfg featureprinting C-cfgӲ featureȲparsingʲ Cɳ,ٳ õcfgԡ featureparsing C!cfg featureparsing C@ doc   `await` ڟ< Don't try to remember the name of this type — use the? [`Token!`] macro instead.ʠ [`Token!`]: crate::tokenС 7doc hiddenallow non_snake_caseSȢˢ ȢܢCʥcfgʥͥ featureΥ֥ clone-implsإ ȥÇzަcfgަ feature clone-impls ܦCcfg featureprinting C-cfgۢӲ featureȲparsingʲ Cɳ,ٳ õcfg featureparsing C!cfg featureparsing C@ doc   `become` ڟ< Don't try to remember the name of this type — use the? [`Token!`] macro instead.ʠ [`Token!`]: crate::tokenС 7doc hiddenallow non_snake_caseSȢˢ ȢܢCʥcfgʥΣͥ featureΥ֥ clone-implsإ ȥÇzަcfgަԣ feature clone-impls ܦCcfg featureprinting C-cfgӲ featureȲparsingʲ Cɳ,ٳ õcfg featureparsing C!cfg featureparsing C@ doc   `box` ڟ< Don't try to remember the name of this type — use the? [`Token!`] macro instead.ʠ [`Token!`]: crate::tokenС 7docƤ hiddenallowǤ non_snake_caseSȢˢ ȢܢCʥcfgʥͥ featureΥ֥ clone-implsإ ȥÇzަcfgަ feature clone-impls ܦCcfg featureprinting C-cfgӲ featureȲparsingʲ Cɳ,ٳ õcfgå featureparsing C!cfgޥ featureparsing C@ doc   `break` ڟ< Don't try to remember the name of this type — use the? [`Token!`] macro instead.ʠ [`Token!`]: crate::tokenС 7doc hiddenallow non_snake_caseSȢˢ ȢܢCʥcfgʥͥ featureΥ֥ clone-implsإ ȥÇzަcfgަ feature clone-impls ܦCcfg featureprinting C-cfgʦӲ featureȲparsingʲ Cɳ,ٳ õcfg featureparsing C!cfg featureparsing C@߁ doc߁ ߁  `const`߁ ڟ< Don't try to remember the name of this type — use the? [`Token!`] macro instead.ʠ [`Token!`]: crate::tokenС 7doc hiddenallow non_snake_caseSȢˢ ȢܢCʥcfgʥͥ featureΥ֥ clone-implsإ ȥÇzަcfgަç feature clone-impls ܦCcfgԧ featureprinting C-cfgӲ featureȲparsingʲ Cɳ,ٳ õcfg featureparsing C!cfg featureparsing C@doc `continue`ڟ< Don't try to remember the name of this type — use the? [`Token!`] macro instead.ʠ [`Token!`]: crate::tokenС 7doc hiddenallow non_snake_caseSȢˢ ȢܢCʥcfgʥͥ featureΥ֥ clone-implsإ ȥÇzަcfgަ feature clone-impls ܦCcfg featureprinting C-cfgӲ featureȲparsingʲ Cɳ,ٳ õcfg featureparsing C!cfgͩ featureparsing C@΂ doc΂ ԩ΂  `crate`΂ ڟ< Don't try to remember the name of this type — use the? [`Token!`] macro instead.ʠ [`Token!`]: crate::tokenС 7docک hiddenallow۩ non_snake_caseSȢˢ ȢܢCʥcfgʥͥ featureΥ֥ clone-implsإ ȥÇzަcfgަ feature clone-impls ܦCcfg featureprinting C-cfgӲ featureȲparsingʲ Cɳ,ٳ õcfgת featureparsing C!cfg featureparsing C@ doc   `default` ڟ< Don't try to remember the name of this type — use the? [`Token!`] macro instead.ʠ [`Token!`]: crate::tokenС 7doc hiddenallow non_snake_caseSȢˢ ȢܢCʥcfgʥͥ featureΥ֥ clone-implsإ ȥÇzަcfgަ feature clone-impls ܦCcfgë featureprinting C-cfgޫӲ featureȲparsingʲ Cɳ,ٳ õcfg featureparsing C!cfg featureparsing C@doc `do`ڟ< Don't try to remember the name of this type — use the? [`Token!`] macro instead.ʠ [`Token!`]: crate::tokenС 7doc hiddenallow non_snake_caseSȢˢ ȢܢCʥcfgʥѬͥ featureΥ֥ clone-implsإ ȥÇzަcfgަ׬ feature clone-impls ܦCcfg featureprinting C-cfgӲ featureȲparsingʲ Cɳ,ٳ õcfg featureparsing C!cfg featureparsing C@ doc í  `dyn` ڟ< Don't try to remember the name of this type — use the? [`Token!`] macro instead.ʠ [`Token!`]: crate::tokenС 7docɭ hiddenallowʭ non_snake_caseSȢˢ ȢܢCʥcfgʥͥ featureΥ֥ clone-implsإ ȥÇzަcfgަ feature clone-impls ܦCcfg featureprinting C-cfgӲ featureȲparsingʲ Cɳ,ٳ õcfgƮ featureparsing C!cfg featureparsing C@ doc   `else` ڟ< Don't try to remember the name of this type — use the? [`Token!`] macro instead.ʠ [`Token!`]: crate::tokenС 7doc hiddenallow non_snake_caseSȢˢ ȢܢCʥcfgʥͥ featureΥ֥ clone-implsإ ȥÇzަcfgަ feature clone-impls ܦCcfg featureprinting C-cfgͯӲ featureȲparsingʲ Cɳ,ٳ õcfg featureparsing C!cfg featureparsing C@؄ doc؄ ؄  `enum`؄ ڟ< Don't try to remember the name of this type — use the? [`Token!`] macro instead.ʠ [`Token!`]: crate::tokenС 7doc hiddenallow non_snake_caseSȢˢ ȢܢCʥcfgʥͥ featureΥ֥ clone-implsإ ȥÇzަcfgަư feature clone-impls ܦCcfgװ featureprinting C-cfgӲ featureȲparsingʲ Cɳ,ٳ õcfg featureparsing C!cfg featureparsing C@ doc   `extern` ڟ< Don't try to remember the name of this type — use the? [`Token!`] macro instead.ʠ [`Token!`]: crate::tokenС 7doc hiddenallow non_snake_caseSȢˢ ȢܢCʥcfgʥͥ featureΥ֥ clone-implsإ ȥÇzަcfgަ feature clone-impls ܦCcfg featureprinting C-cfgӲ featureȲparsingʲ Cɳ,ٳ õcfg featureparsing C!cfgв featureparsing C@ą docą ײą  `final`ą ڟ< Don't try to remember the name of this type — use the? [`Token!`] macro instead.ʠ [`Token!`]: crate::tokenС 7docݲ hiddenallow޲ non_snake_caseSȢˢ ȢܢCʥcfgʥͥ featureΥ֥ clone-implsإ ȥÇzަcfgަ feature clone-impls ܦCcfg featureprinting C-cfgӲ featureȲparsingʲ Cɳ,ٳ õcfgڳ featureparsing C!cfg featureparsing C@doc `fn`ڟ< Don't try to remember the name of this type — use the? [`Token!`] macro instead.ʠ [`Token!`]: crate::tokenС 7doc hiddenallow non_snake_caseSȢˢ ȢܢCʥcfgʥͥ featureΥ֥ clone-implsإ ȥÇzަcfgަ feature clone-impls ܦCcfgƴ featureprinting C-cfgӲ featureȲparsingʲ Cɳ,ٳ õcfg featureparsing C!cfg featureparsing C@ doc   `for` ڟ< Don't try to remember the name of this type — use the? [`Token!`] macro instead.ʠ [`Token!`]: crate::tokenС 7doc hiddenallow non_snake_caseSȢˢ ȢܢCʥcfgʥԵͥ featureΥ֥ clone-implsإ ȥÇzަcfgަڵ feature clone-impls ܦCcfg featureprinting C-cfgӲ featureȲparsingʲ Cɳ,ٳ õcfg featureparsing C!cfg featureparsing C@docƶ `if`ڟ< Don't try to remember the name of this type — use the? [`Token!`] macro instead.ʠ [`Token!`]: crate::tokenС 7doc̶ hiddenallowͶ non_snake_caseSȢˢ ȢܢCʥcfgʥͥ featureΥ֥ clone-implsإ ȥÇzަcfgަ feature clone-impls ܦCcfg featureprinting C-cfgӲ featureȲparsingʲ Cɳ,ٳ õcfgɷ featureparsing C!cfg featureparsing C@ doc   `impl` ڟ< Don't try to remember the name of this type — use the? [`Token!`] macro instead.ʠ [`Token!`]: crate::tokenС 7doc hiddenallow non_snake_caseSȢˢ ȢܢCʥcfgʥͥ featureΥ֥ clone-implsإ ȥÇzަcfgަ feature clone-impls ܦCcfg featureprinting C-cfgиӲ featureȲparsingʲ Cɳ,ٳ õcfg featureparsing C!cfg featureparsing C@ɇdocɇɇ `in`ɇڟ< Don't try to remember the name of this type — use the? [`Token!`] macro instead.ʠ [`Token!`]: crate::tokenС 7doc hiddenallow non_snake_caseSȢˢ ȢܢCʥcfgʥùͥ featureΥ֥ clone-implsإ ȥÇzަcfgަɹ feature clone-impls ܦCcfgڹ featureprinting C-cfgӲ featureȲparsingʲ Cɳ,ٳ õcfg featureparsing C!cfg featureparsing C@ doc   `let` ڟ< Don't try to remember the name of this type — use the? [`Token!`] macro instead.ʠ [`Token!`]: crate::tokenС 7doc hiddenallow non_snake_caseSȢˢ ȢܢCʥcfgʥͥ featureΥ֥ clone-implsإ ȥÇzަcfgަ feature clone-impls ܦCcfg featureprinting C-cfgӲ featureȲparsingʲ Cɳ,ٳ õcfg featureparsing C!cfgӻ featureparsing C@ doc ڻ  `loop` ڟ< Don't try to remember the name of this type — use the? [`Token!`] macro instead.ʠ [`Token!`]: crate::tokenС 7doc hiddenallow non_snake_caseSȢˢ ȢܢCʥcfgʥͥ featureΥ֥ clone-implsإ ȥÇzަcfgަ feature clone-impls ܦCcfg featureprinting C-cfgӲ featureȲparsingʲ Cɳ,ٳ õcfgݼ featureparsing C!cfg featureparsing C@ doc   `macro` ڟ< Don't try to remember the name of this type — use the? [`Token!`] macro instead.ʠ [`Token!`]: crate::tokenС 7doc hiddenallow non_snake_caseSȢˢ ȢܢCʥcfgʥͥ featureΥ֥ clone-implsإ ȥÇzަcfgަ feature clone-impls ܦCcfgɽ featureprinting C-cfgӲ featureȲparsingʲ Cɳ,ٳ õcfg featureparsing C!cfg featureparsing C@ doc   `match` ڟ< Don't try to remember the name of this type — use the? [`Token!`] macro instead.ʠ [`Token!`]: crate::tokenС 7doc hiddenallow non_snake_caseSȢˢ ȢܢCʥcfgʥ׾ͥ featureΥ֥ clone-implsإ ȥÇzަcfgަݾ feature clone-impls ܦCcfg featureprinting C-cfgӲ featureȲparsingʲ Cɳ,ٳ õcfg featureparsing C!cfg¿ featureparsing C@щ docщ ɿщ  `mod`щ ڟ< Don't try to remember the name of this type — use the? [`Token!`] macro instead.ʠ [`Token!`]: crate::tokenС 7docϿ hiddenallowп non_snake_caseSȢˢ ȢܢCʥcfgʥͥ featureΥ֥ clone-implsإ ȥÇzަcfgަ feature clone-impls ܦCcfg featureprinting C-cfgӲ featureȲparsingʲ Cɳ,ٳ õcfg featureparsing C!cfg featureparsing C@ doc   `move` ڟ< Don't try to remember the name of this type — use the? [`Token!`] macro instead.ʠ [`Token!`]: crate::tokenС 7doc hiddenallow non_snake_caseSȢˢ ȢܢCʥcfgʥͥ featureΥ֥ clone-implsإ ȥÇzަcfgަ feature clone-impls ܦCcfg featureprinting C-cfgӲ featureȲparsingʲ Cɳ,ٳ õcfg featureparsing C!cfg featureparsing C@ doc   `mut` ڟ< Don't try to remember the name of this type — use the? [`Token!`] macro instead.ʠ [`Token!`]: crate::tokenС 7doc hiddenallow non_snake_caseSȢˢ ȢܢCʥcfgʥͥ featureΥ֥ clone-implsإ ȥÇzަcfgަ feature clone-impls ܦCcfg featureprinting C-cfgӲ featureȲparsingʲ Cɳ,ٳ õcfg featureparsing C!cfg featureparsing C@doc `override`ڟ< Don't try to remember the name of this type — use the? [`Token!`] macro instead.ʠ [`Token!`]: crate::tokenС 7doc hiddenallow non_snake_caseSȢˢ ȢܢCʥcfgʥͥ featureΥ֥ clone-implsإ ȥÇzަcfgަ feature clone-impls ܦCcfg featureprinting C-cfgӲ featureȲparsingʲ Cɳ,ٳ õcfg featureparsing C!cfg featureparsing C@ doc   `priv` ڟ< Don't try to remember the name of this type — use the? [`Token!`] macro instead.ʠ [`Token!`]: crate::tokenС 7doc hiddenallow non_snake_caseSȢˢ ȢܢCʥcfgʥͥ featureΥ֥ clone-implsإ ȥÇzަcfgަ feature clone-impls ܦCcfg featureprinting C-cfgӲ featureȲparsingʲ Cɳ,ٳ õcfg featureparsing C!cfg featureparsing C@܋ doc܋ ܋  `pub`܋ ڟ< Don't try to remember the name of this type — use the? [`Token!`] macro instead.ʠ [`Token!`]: crate::tokenС 7doc hiddenallow non_snake_caseSȢˢ ȢܢCʥcfgʥͥ featureΥ֥ clone-implsإ ȥÇzަcfgަ feature clone-impls ܦCcfg featureprinting C-cfgӲ featureȲparsingʲ Cɳ,ٳ õcfg featureparsing C!cfg featureparsing C@ doc   `ref` ڟ< Don't try to remember the name of this type — use the? [`Token!`] macro instead.ʠ [`Token!`]: crate::tokenС 7doc hiddenallow non_snake_caseSȢˢ ȢܢCʥcfgʥͥ featureΥ֥ clone-implsإ ȥÇzަcfgަ feature clone-impls ܦCcfg featureprinting C-cfgӲ featureȲparsingʲ Cɳ,ٳ õcfg featureparsing C!cfg featureparsing C@Č docČ Č  `return`Č ڟ< Don't try to remember the name of this type — use the? [`Token!`] macro instead.ʠ [`Token!`]: crate::tokenС 7doc hiddenallow non_snake_caseSȢˢ ȢܢCʥcfgʥͥ featureΥ֥ clone-implsإ ȥÇzަcfgަ feature clone-impls ܦCcfg featureprinting C-cfgӲ featureȲparsingʲ Cɳ,ٳ õcfg featureparsing C!cfg featureparsing C@ doc   `Self` ڟ< Don't try to remember the name of this type — use the? [`Token!`] macro instead.ʠ [`Token!`]: crate::tokenС 7doc hiddenallow non_snake_caseSȢˢ ȢܢCʥcfgʥͥ featureΥ֥ clone-implsإ ȥÇzަcfgަ feature clone-impls ܦCcfg featureprinting C-cfgӲ featureȲparsingʲ Cɳ,ٳ õcfg featureparsing C!cfg featureparsing C@ doc   `self` ڟ< Don't try to remember the name of this type — use the? [`Token!`] macro instead.ʠ [`Token!`]: crate::tokenС 7doc hiddenallow non_snake_caseSȢˢ ȢܢCʥcfgʥͥ featureΥ֥ clone-implsإ ȥÇzަcfgަ feature clone-impls ܦCcfg featureprinting C-cfgӲ featureȲparsingʲ Cɳ,ٳ õcfg featureparsing C!cfg featureparsing C@ doc   `static` ڟ< Don't try to remember the name of this type — use the? [`Token!`] macro instead.ʠ [`Token!`]: crate::tokenС 7doc hiddenallow non_snake_caseSȢˢ ȢܢCʥcfgʥͥ featureΥ֥ clone-implsإ ȥÇzަcfgަ feature clone-impls ܦCcfg featureprinting C-cfgӲ featureȲparsingʲ Cɳ,ٳ õcfg featureparsing C!cfg featureparsing C@ doc   `struct` ڟ< Don't try to remember the name of this type — use the? [`Token!`] macro instead.ʠ [`Token!`]: crate::tokenС 7doc hiddenallow non_snake_caseSȢˢ ȢܢCʥcfgʥͥ featureΥ֥ clone-implsإ ȥÇzަcfgަ feature clone-impls ܦCcfg featureprinting C-cfgӲ featureȲparsingʲ Cɳ,ٳ õcfg featureparsing C!cfg featureparsing C@ӎ docӎ ӎ  `super`ӎ ڟ< Don't try to remember the name of this type — use the? [`Token!`] macro instead.ʠ [`Token!`]: crate::tokenС 7doc hiddenallow non_snake_caseSȢˢ ȢܢCʥcfgʥͥ featureΥ֥ clone-implsإ ȥÇzަcfgަ feature clone-impls ܦCcfg featureprinting C-cfgӲ featureȲparsingʲ Cɳ,ٳ õcfg featureparsing C!cfg featureparsing C@ doc   `trait` ڟ< Don't try to remember the name of this type — use the? [`Token!`] macro instead.ʠ [`Token!`]: crate::tokenС 7doc hiddenallow non_snake_caseSȢˢ ȢܢCʥcfgʥͥ featureΥ֥ clone-implsإ ȥÇzަcfgަ feature clone-impls ܦCcfg featureprinting C-cfgӲ featureȲparsingʲ Cɳ,ٳ õcfg featureparsing C!cfg featureparsing C@ doc   `try` ڟ< Don't try to remember the name of this type — use the? [`Token!`] macro instead.ʠ [`Token!`]: crate::tokenС 7doc hiddenallow non_snake_caseSȢˢ ȢܢCʥcfgʥͥ featureΥ֥ clone-implsإ ȥÇzަcfgަ feature clone-impls ܦCcfg featureprinting C-cfgӲ featureȲparsingʲ Cɳ,ٳ õcfg featureparsing C    !cfg featureparsing C@ doc   `type` ڟ< Don't try to remember the name of this type — use the? [`Token!`] macro instead.ʠ [`Token!`]: crate::tokenС 7doc hiddenallow non_snake_caseS  Ȣˢ ȢܢC  ʥcfgʥͥ featureΥ֥ clone-implsإ ȥÇzަcfgަ feature clone-impls ܦC  cfg featureprinting C-  cfgӲ featureȲparsingʲ Cɳ, ٳ  õcfg featureparsing C    !cfg featureparsing C@ doc   `typeof` ڟ< Don't try to remember the name of this type — use the? [`Token!`] macro instead.ʠ [`Token!`]: crate::tokenС 7doc hiddenallow non_snake_caseS  Ȣˢ ȢܢC  ʥcfgʥͥ featureΥ֥ clone-implsإ ȥÇzަcfgަ feature clone-impls ܦC  cfg featureprinting C-  cfgӲ featureȲparsingʲ Cɳ, ٳ  õcfg featureparsing C    !cfg featureparsing C@ߐ docߐ ߐ  `union`ߐ ڟ< Don't try to remember the name of this type — use the? [`Token!`] macro instead.ʠ [`Token!`]: crate::tokenС 7doc hiddenallow non_snake_caseS  Ȣˢ ȢܢC  ʥcfgʥͥ featureΥ֥ clone-implsإ ȥÇzަcfgަ feature clone-impls ܦC  cfg featureprinting C-  cfgӲ featureȲparsingʲ Cɳ, ٳ  õcfg featureparsing C    !cfg featureparsing C@ doc   `unsafe` ڟ< Don't try to remember the name of this type — use the? [`Token!`] macro instead.ʠ [`Token!`]: crate::tokenС 7doc hiddenallow non_snake_caseS  Ȣˢ ȢܢC  ʥcfgʥͥ featureΥ֥ clone-implsإ ȥÇzަcfgަ feature clone-impls ܦC  cfg featureprinting C-  cfgӲ featureȲparsingʲ Cɳ, ٳ  õcfg featureparsing C    !cfg featureparsing C@̑ doc̑ ̑  `unsized`̑ ڟ< Don't try to remember the name of this type — use the? [`Token!`] macro instead.ʠ [`Token!`]: crate::tokenС 7doc hiddenallow non_snake_caseS  Ȣˢ ȢܢC  ʥcfgʥͥ featureΥ֥ clone-implsإ ȥÇzަcfgަ feature clone-impls ܦC  cfg featureprinting C-  cfgӲ featureȲparsingʲ Cɳ, ٳ  õcfg featureparsing C    !cfg featureparsing C@ doc   `use` ڟ< Don't try to remember the name of this type — use the? [`Token!`] macro instead.ʠ [`Token!`]: crate::tokenС 7doc hiddenallow non_snake_caseS  Ȣˢ ȢܢC  ʥcfgʥͥ featureΥ֥ clone-implsإ ȥÇzަcfgަ feature clone-impls ܦC  cfg featureprinting C-  cfgӲ featureȲparsingʲ Cɳ, ٳ  õcfg featureparsing C    !cfg featureparsing C@ doc   `virtual` ڟ< Don't try to remember the name of this type — use the? [`Token!`] macro instead.ʠ [`Token!`]: crate::tokenС 7doc hiddenallow non_snake_caseS  Ȣˢ ȢܢC  ʥcfgʥͥ featureΥ֥ clone-implsإ ȥÇzަcfgަ feature clone-impls ܦC  cfg featureprinting C-  cfgӲ featureȲparsingʲ Cɳ, ٳ  õcfg featureparsing C    !cfg featureparsing C@ doc   `where` ڟ< Don't try to remember the name of this type — use the? [`Token!`] macro instead.ʠ [`Token!`]: crate::tokenС 7doc hiddenallow non_snake_caseS!!Ȣˢ ȢܢC!!ʥcfgʥͥ featureΥ֥ clone-implsإ ȥÇzަcfgަ feature clone-impls ܦC!!cfg featureprinting C-!!cfgӲ featureȲparsingʲ Cɳ,!ٳ !õcfg featureparsing C!!!!!cfg featureparsing C@ doc   `while` ڟ< Don't try to remember the name of this type — use the? [`Token!`] macro instead.ʠ [`Token!`]: crate::tokenС 7doc hiddenallow non_snake_caseS!!Ȣˢ ȢܢC!!ʥcfgʥͥ featureΥ֥ clone-implsإ ȥÇzަcfgަ feature clone-impls ܦC!!cfg featureprinting C-!!cfgӲ featureȲparsingʲ Cɳ,!ٳ !õcfg featureparsing C!!!!!cfg featureparsing C@ܓ docܓ ܓ  `yield`ܓ ڟ< Don't try to remember the name of this type — use the? [`Token!`] macro instead.ʠ [`Token!`]: crate::tokenС 7doc hiddenallow non_snake_caseS!!Ȣˢ ȢܢC!!ʥcfgʥͥ featureΥ֥ clone-implsإ ȥÇzަcfgަ feature clone-impls ܦC!!cfg featureprinting C-!!cfgӲ featureȲparsingʲ Cɳ,!ٳ !õcfg featureparsing C!!!!!cfg featureparsing CNNcfgNNN featureNNprintingN NCN-!N!NNcfgNNN featureNNparsingN NCN,!N !NNcfgNNN featureNNparsingN NCN!N!N!!N!NcfgNNN featureNNparsingN NCNNcfgNNN featureNNprintingN NCN-!N!NNcfgNNN featureNNparsingN NCN,!N !NNcfgNNN featureNNparsingN NCN!N!N!!N!NcfgNNN featureNNparsingN NCNNcfgNNN featureNNprintingN NCN-!N!NNcfgNNN featureNNparsingN NCN,!N !NNcfgNNN featureNNparsingN NCN!N!N!!N!NcfgNNN featureNNparsingN NCNNcfgNNN featureNNprintingN NCN-!N!NNcfgNNN featureNNparsingN NCN,!N !NNcfgNNN featureNNparsingN NCN!N!N!!N!NcfgNNN featureNNparsingN NCNNcfgNNN featureNNprintingN NCN-!N!NNcfgNNN featureNNparsingN NCN,!N !NNcfgNNN featureNNparsingN NCN!N!N!!N!NcfgNNN featureNNparsingN NCNNcfgNNN featureNNprintingN NCN-!N!NNcfgNNN featureNNparsingN NCN,!N !NNcfgNNN featureNNparsingN NCN!N!N!!N!NcfgNNN featureNNparsingN NCNNcfgNNN featureNNprintingN NCN-!N!NNcfgNNN featureNNparsingN NCN,!N !NNcfgNNN featureNNparsingN NCN!N!N!!N!NcfgNNN featureNNparsingN NCNNcfgNNN featureNNprintingN NCN-!N!NNcfgNNN featureNNparsingN NCN,!N !NNcfgNNN featureNNparsingN NCN!N!N!!N!NcfgNNN featureNNparsingN NCNNcfgNNN featureNNprintingN NCN-!N!NNcfgNNN featureNNparsingN NCN,!N !NNcfgNNN featureNNparsingN NCN!N!N!!N!NcfgNNN featureNNparsingN NCNNcfgNNN featureNNprintingN NCN-"N"NNcfgNNN featureNNparsingN NCN,"N "NNcfgNNN featureNNparsingN NCN"N"N""N!NcfgNNN featureNNparsingN NCNNcfgNNN featureNNprintingN NCN-"N"NNcfgNNN featureNNparsingN NCN,"N "NNcfgNNN featureNNparsingN NCN"N"N""N!NcfgNNN featureNNparsingN NCNNcfgNNN featureNNprintingN NCN-"N"NNcfgNNN featureNNparsingN NCN,"N "NNcfgNNN featureNNparsingN NCN"N"N""N!NcfgNNN featureNNparsingN NCNNcfgNNN featureNNprintingN NCN-"N"NNcfgNNN featureNNparsingN NCN,"N "NNcfgNNN featureNNparsingN NCN"N"N""N!NcfgNNN featureNNparsingN NCNNcfgNNN featureNNprintingN NCN-"N"NNcfgNNN featureNNparsingN NCN,"N "NNcfgNNN featureNNparsingN NCN"N"N""N!NcfgNNN featureNNparsingN NCNNcfgNNN featureNNprintingN NCN-"N"NNcfgNNN featureNNparsingN NCN,"N "NNcfgNNN featureNNparsingN NCN"N"N""N!NcfgNNN featureNNparsingN NCNNcfgNNN featureNNprintingN NCN-"N"NNcfgNNN featureNNparsingN NCN,"N "NNcfgNNN featureNNparsingN NCN"N"N""N!NcfgNNN featureNNparsingN NCNNcfgNNN featureNNprintingN NCN-"N"NNcfgNNN featureNNparsingN NCN,"N "NNcfgNNN featureNNparsingN NCN"N"N""N!NcfgNNN featureNNparsingN NCNNcfgNNN featureNNprintingN NCN-"N"NNcfgNNN featureNNparsingN NCN,"N "NNcfgNNN featureNNparsingN NCN"N"N""N!NcfgNNN featureNNparsingN NCNNcfgNNN featureNNprintingN NCN-"N"NNcfgNNN featureNNparsingN NCN,"N "NNcfgNNN featureNNparsingN NCN"N"N""N!NcfgNNN featureNNparsingN NCNNcfgNNN featureNNprintingN NCN-"N"NNcfgNNN featureNNparsingN NCN,"N "NNcfgNNN featureNNparsingN NCN"N"N""N!NcfgNNN featureNNparsingN NCNNcfgNNN featureNNprintingN NCN-"N"NNcfgNNN featureNNparsingN NCN,"N "NNcfgNNN featureNNparsingN NCN"N"N""N!NcfgNNN featureNNparsingN NCNNcfgNNN featureNNprintingN NCN-"N"NNcfgNNN featureNNparsingN NCN,"N "NNcfgNNN featureNNparsingN NCN"N"N""N!NcfgNNN featureNNparsingN NCNNcfgNNN featureNNprintingN NCN-"N"NNcfgNNN featureNNparsingN NCN,"N "NNcfgNNN featureNNparsingN NCN"N"N""N!NcfgNNN featureNNparsingN NCNNcfgNNN featureNNprintingN NCN-"N"NNcfgNNN featureNNparsingN NCN,"N "NNcfgNNN featureNNparsingN NCN"N"N""N!NcfgNNN featureNNparsingN NCNNcfgNNN featureNNprintingN NCN-"N"NNcfgNNN featureNNparsingN NCN,"N "NNcfgNNN featureNNparsingN NCN"N"N""N!NcfgNNN featureNNparsingN NCNNcfgNNN featureNNprintingN NCN-#N#NNcfgNNN featureNNparsingN NCN,#N #NNcfgNNN featureNNparsingN NCN#N#N##N!NcfgNNN featureNNparsingN NCNNcfgNNN featureNNprintingN NCN-#N#NNcfgNNN featureNNparsingN NCN,#N #NNcfgNNN featureNNparsingN NCN#N#N##N!NcfgNNN featureNNparsingN NCNNcfgNNN featureNNprintingN NCN-#N#NNcfgNNN featureNNparsingN NCN,#N #NNcfgNNN featureNNparsingN NCN#N#N##N!NcfgNNN featureNNparsingN NCNNcfgNNN featureNNprintingN NCN-#N#NNcfgNNN featureNNparsingN NCN,#N #NNcfgNNN featureNNparsingN NCN#N#N##N!NcfgNNN featureNNparsingN NCNNcfgNNN featureNNprintingN NCN-#N#NNcfgNNN featureNNparsingN NCN,#N #NNcfgNNN featureNNparsingN NCN#N#N##N!NcfgNNN featureNNparsingN NCNNcfgNNN featureNNprintingN NCN-#N#NNcfgNNN featureNNparsingN NCN,#N #NNcfgNNN featureNNparsingN NCN#N#N##N!NcfgNNN featureNNparsingN NCNNcfgNNN featureNNprintingN NCN-#N#NNcfgNNN featureNNparsingN NCN,#N #NNcfgNNN featureNNparsingN NCN#N#N##N!NcfgNNN featureNNparsingN NCNNcfgNNN featureNNprintingN NCN-#N#NNcfgNNN featureNNparsingN NCN,#N #NNcfgNNN featureNNparsingN NCN#N#N##N!NcfgNNN featureNNparsingN NCNNcfgNNN featureNNprintingN NCN-#N#NNcfgNNN featureNNparsingN NCN,#N #NNcfgNNN featureNNparsingN NCN#N#N##N!NcfgNNN featureNNparsingN NCNNcfgNNN featureNNprintingN NCN-#N#NNcfgNNN featureNNparsingN NCN,#N #NNcfgNNN featureNNparsingN NCN#N#N##N!NcfgNNN featureNNparsingN NCNNcfgNNN featureNNprintingN NCN-#N#NNcfgNNN featureNNparsingN NCN,#N #NNcfgNNN featureNNparsingN NCN#N#N##N!NcfgNNN featureNNparsingN NCNNcfgNNN featureNNprintingN NCN-#N#NNcfgNNN featureNNparsingN NCN,#N #NNcfgNNN featureNNparsingN NCN#N#N##N!NcfgNNN featureNNparsingN NCNNcfgNNN featureNNprintingN NCN-#N#NNcfgNNN featureNNparsingN NCN,#N #NNcfgNNN featureNNparsingN NCN#N#N##N!NcfgNNN featureNNparsingN NCNNcfgNNN featureNNprintingN NCN-#N#NNcfgNNN featureNNparsingN NCN,#N #NNcfgNNN featureNNparsingN NCN#N#N##N!NcfgNNN featureNNparsingN NCNNcfgNNN featureNNprintingN NCN-#N#NNcfgNNN featureNNparsingN NCN,#N #NNcfgNNN featureNNparsingN NCN#N#N##N!NcfgNNN featureNNparsingN NCNNcfgNNN featureNNprintingN NCN-#N#NNcfgNNN featureNNparsingN NCN,#N #NNcfgNNN featureNNparsingN NCN#N#N##N!NcfgNNN featureNNparsingN NCNNcfgNNN featureNNprintingN NCN-$N$NNcfgNNN featureNNparsingN NCN,$N $NNcfgNNN featureNNparsingN NCN$N$N$$N!NcfgNNN featureNNparsingN NCNNcfgNNN featureNNprintingN NCN-$N$NNcfgNNN featureNNparsingN NCN,$N $NNcfgNNN featureNNparsingN NCN$N$N$$N!NcfgNNN featureNNparsingN NCNNcfgNNN featureNNprintingN NCN-$N$NNcfgNNN featureNNparsingN NCN,$N $NNcfgNNN featureNNparsingN NCN$N$N$$N!NcfgNNN featureNNparsingN NCNNcfgNNN featureNNprintingN NCN-$N$NNcfgNNN featureNNparsingN NCN,$N $NNcfgNNN featureNNparsingN NCN$N$N$$N!NcfgNNN featureNNparsingN NCNNcfgNƀNN featureNNprintingN NCN-$N$NNcfgNNN featureNNparsingN NCN,$N $NNcfgNNN featureNNparsingN NCN$N$N$$N!NcfgNNN featureNNparsingN NCOIO½reprO½OƽOȽ COǽO doc `+`O׽O< Don't try to remember the name of this type — use theO? [`Token!`] macro instead.OǾO [`Token!`]: crate::tokenOOͿ O;OdocOOO hiddenOOOallowOOO non_snake_caseOOS$$OO OOCO$$$$OOcfgOځOO featureOO clone-implsO OCOzOcfgOOO featureOO clone-implsO OCO$O$PC P$$Pѹ $Pڹ$PۺCP,$P$RIR½reprR½RƽRȽ CRǽR ݔdocݔݔ `+=`ݔR׽R< Don't try to remember the name of this type — use theR? [`Token!`] macro instead.RǾR [`Token!`]: crate::tokenRRͿ֔ R;RdocRRR hiddenRRRallowRRR non_snake_caseRRS$$R R R֔RCR$$֔$$RRcfgRRR featureRR clone-implsR RCRzRcfgRRR featureRR clone-implsR RCR$R$TIT½reprT½TƽTȽ CTǽT doc `&`T׽T< Don't try to remember the name of this type — use theT? [`Token!`] macro instead.TǾT [`Token!`]: crate::tokenTTͿ T;TdocTTT hiddenTTTallowTTT non_snake_caseTTS$$TT TTCT$$$$TTcfgTTT featureTT clone-implsT TCTzTcfgTTT featureTT clone-implsT TCT$T$UC U$$Uѹ $Uڹ$UۺCU,$U$WIW½reprW½WƽWȽ CWǽW •doc•• `&&`•W׽W< Don't try to remember the name of this type — use theW? [`Token!`] macro instead.WǾW [`Token!`]: crate::tokenWWͿ W;WdocWWW hiddenWWWallowWWW non_snake_caseWWS$$W!W WWCW$$$$WWcfgWĄWW featureWW clone-implsW WCWzWcfgWʄWW featureWW clone-implsW WCW$W$YIY½reprY½܄YƽYȽ CYǽY doc݄ `&=`Y׽Y< Don't try to remember the name of this type — use theY? [`Token!`] macro instead.YǾY [`Token!`]: crate::tokenYYͿ Y;YdocYYY hiddenYYYallowYYY non_snake_caseYYS$$Y!Y YYCY$$$$YYcfgYYY featureYY clone-implsY YCYzYcfgYYY featureYY clone-implsY YCY$Y$[I[½repr[½[ƽ[Ƚ C[ǽ[ doc `@`[׽[< Don't try to remember the name of this type — use the[? [`Token!`] macro instead.[Ǿ[ [`Token!`]: crate::token[[Ϳ [;[doc[[[ hidden[[[allow[[[ non_snake_case[[S$$[[ [[C[$$$$[[cfg[[[ feature[[ clone-impls[ [C[z[cfg[[[ feature[[ clone-impls[ [C[$[$\C \$$\ѹ $\ڹ$\ۺC\,$\$^I^½repr^½^ƽ^Ƚ C^ǽ^ ږdocږږ `!`ږ^׽^< Don't try to remember the name of this type — use the^? [`Token!`] macro instead.^Ǿ^ [`Token!`]: crate::token^^ͿҖ ^;^doc^Æ^^ hidden^^^allow^Ć^^ non_snake_case^^S%%^^ ^Җ^C^%%Җ%%^^cfg^^^ feature^^ clone-impls^ ^C^z^cfg^^^ feature^^ clone-impls^ ^C^%^%_C _%%_ѹ %_ڹ%_ۺC_,%_%aIa½repra½ƇaƽaȽ Caǽa docLJ `^`a׽a< Don't try to remember the name of this type — use thea? [`Token!`] macro instead.aǾa [`Token!`]: crate::tokenaaͿ a;adocaЇaa hiddenaaaallowaчaa non_snake_caseaaS%%aa aaCa%%%%aacfgaaa featureaa clone-implsa aCazacfgaaa featureaa clone-implsa aCa%a%bC b%%bѹ %bڹ%bۺCb,%b%dId½reprd½ӈdƽdȽ Cdǽd docԈ `^=`d׽d< Don't try to remember the name of this type — use thed? [`Token!`] macro instead.dǾd [`Token!`]: crate::tokenddͿ d;ddocd݈dd hiddendddallowdވdd non_snake_caseddS%%d!d ddCd%%%%ddcfgddd featuredd clone-implsd dCdzdcfgddd featuredd clone-implsd dCd%d%fIf½reprf½fƽfȽ Cfǽf doc `:`f׽f< Don't try to remember the name of this type — use thef? [`Token!`] macro instead.fǾf [`Token!`]: crate::tokenffͿ f;fdocfff hiddenfffallowfff non_snake_caseffS%%ff ffCf%%%%ffcfgfۉff featureff clone-implsf fCfzfcfgfff featureff clone-implsf fCf%f%gC g%%gѹ %gڹ%gۺCg,%g%iIi½repri½iƽiȽ Ciǽi doc `::`i׽i< Don't try to remember the name of this type — use thei? [`Token!`] macro instead.iǾi [`Token!`]: crate::tokeniiͿ i;idociii hiddeniiiallowiii non_snake_caseiiS%%i!i iiCi%%%%iicfgiii featureii clone-implsi iCizicfgiii featureii clone-implsi iCi%i%kIk½reprk½kƽkȽ Ckǽk ֘doc֘֘ `,`֘k׽k< Don't try to remember the name of this type — use thek? [`Token!`] macro instead.kǾk [`Token!`]: crate::tokenkkͿϘ k;kdockkk hiddenkkkallowkkk non_snake_casekkS%%kk kϘkCk%%Ϙ%%kkcfgkkk featurekk clone-implsk kCkzkcfgkkk featurekk clone-implsk kCk%k%lC l%%lѹ %lڹ%lۺCl,%l%nIn½reprn½nƽnȽ Cnǽn doc `/`n׽n< Don't try to remember the name of this type — use then? [`Token!`] macro instead.nǾn [`Token!`]: crate::tokennnͿ n;ndocnnn hiddennnnallownnn non_snake_casennS%%nn nnCn%%%%nncfgnŌnn featurenn clone-implsn nCnzncfgnˌnn featurenn clone-implsn nCn%n%oC o%%oѹ %oڹ%oۺCo,%o%qIq½reprq½qƽqȽ Cqǽq doc `/=`q׽q< Don't try to remember the name of this type — use theq? [`Token!`] macro instead.qǾq [`Token!`]: crate::tokenqqͿ q;qdocqqq hiddenqqqallowqqq non_snake_caseqqS%%q!q qqCq%%%%qqcfgqҍqq featureqq clone-implsq qCqzqcfgq؍qq featureqq clone-implsq qCq%q%sIs½reprs½sƽsȽ Csǽs doc `$`s׽s< Don't try to remember the name of this type — use thes? [`Token!`] macro instead.sǾs [`Token!`]: crate::tokenssͿ s;sdocsss hiddensssallowsss non_snake_casessS%%ss ssCs%%&&sscfgsss featuress clone-implss sCszscfgsss featuress clone-implss sCs&s&tC t&&tѹ &tڹ&tۺCt,&t&vIv½reprv½vƽvȽ Cvǽv doc `.`v׽v< Don't try to remember the name of this type — use thev? [`Token!`] macro instead.vǾv [`Token!`]: crate::tokenvvͿ v;vdocvvv hiddenvvvallowvvv non_snake_casevvS&&vv vvCv&&&&vvcfgvvv featurevv clone-implsv vCvzvcfgvvv featurevv clone-implsv vCv&v&wC w&&wѹ &wڹ&wۺCw,&w&yIy½repry½yƽyȽ Cyǽy њdocњњ `..`њy׽y< Don't try to remember the name of this type — use they? [`Token!`] macro instead.yǾy [`Token!`]: crate::tokenyyͿɚ y;ydocyyy hiddenyyyallowyyy non_snake_caseyyS&&y!y yɚyCy&&ɚ&&yycfgyyy featureyy clone-implsy yCyzycfgyyy featureyy clone-implsy yCy&y&{I{½repr{½Ԑ{ƽ{Ƚ C{ǽ{  doc Ր  `...` {׽{< Don't try to remember the name of this type — use the{? [`Token!`] macro instead.{Ǿ{ [`Token!`]: crate::token{{Ϳ {;{doc{ސ{{ hidden{{{allow{ߐ{{ non_snake_case{{S&&{ { {{C{&&&&{{cfg{{{ feature{{ clone-impls{ {C{z{cfg{{{ feature{{ clone-impls{ {C{&{&}I}½repr}½}ƽ}Ƚ C}ǽ}  doc   `..=` }׽}< Don't try to remember the name of this type — use the}? [`Token!`] macro instead.}Ǿ} [`Token!`]: crate::token}}Ϳ };}doc}}} hidden}}}allow}}} non_snake_case}}S&&}!} }}C}&&&&}}cfg}ܑ}} feature}} clone-impls} }C}z}cfg}}} feature}} clone-impls} }C}&}&I½repr½ƽȽ Cǽ doc `=`׽< Don't try to remember the name of this type — use the? [`Token!`] macro instead.Ǿ [`Token!`]: crate::tokenͿ ;doc hiddenallow non_snake_caseS&& C&&&&cfg feature clone-impls Czcfg feature clone-impls C&&C &&ѹ &ڹ&ۺC,&&I½repr½ƽȽ Cǽ doc `==`׽< Don't try to remember the name of this type — use the? [`Token!`] macro instead.Ǿ [`Token!`]: crate::tokenͿ ;doc hiddenallow non_snake_caseS&&! C&&&&cfg feature clone-impls Czcfg feature clone-impls C&&I½repr½ѓƽȽ Cǽ ќdocќғќ `>=`ќ׽< Don't try to remember the name of this type — use the? [`Token!`] macro instead.Ǿ [`Token!`]: crate::tokenͿǜ ;docۓ hiddenallowܓ non_snake_caseS&&! ǜC&&ǜ&&cfg feature clone-impls Czcfg feature clone-impls C&&I½repr½ƽȽ Cǽ doc `>`׽< Don't try to remember the name of this type — use the? [`Token!`] macro instead.Ǿ [`Token!`]: crate::tokenͿ ;doc hiddenallow non_snake_caseS&& C&&&&cfgٔ feature clone-impls Czcfgߔ feature clone-impls C&&C &&ѹ &ڹ&ۺC,&&I½repr½ƽȽ Cǽ doc `<=`׽< Don't try to remember the name of this type — use the? [`Token!`] macro instead.Ǿ [`Token!`]: crate::tokenͿ ;doc hiddenallow non_snake_caseS&&! C&&''cfg feature clone-impls Czcfg feature clone-impls C''I½repr½ƽȽ Cǽ doc `<`׽< Don't try to remember the name of this type — use the? [`Token!`] macro instead.Ǿ [`Token!`]: crate::tokenͿߝ ;doc hiddenallow non_snake_caseS'' ߝC''ߝ''cfg feature clone-impls Czcfg feature clone-impls C''C ''ѹ 'ڹ'ۺC,''I½repr½ƽȽ Cǽ doc `*=`׽< Don't try to remember the name of this type — use the? [`Token!`] macro instead.Ǿ [`Token!`]: crate::tokenͿ ;doc hiddenallow non_snake_caseS''! C''''cfg× feature clone-impls Czcfgɗ feature clone-impls C''I½repr½ۗƽȽ Cǽ ΞdocΞܗΞ `!=`Ξ׽< Don't try to remember the name of this type — use the? [`Token!`] macro instead.Ǿ [`Token!`]: crate::tokenͿĞ ;doc hiddenallow non_snake_caseS''! ĞC''Ğ''cfg feature clone-impls Czcfg feature clone-impls C''I½repr½ƽȽ Cǽ doc `|`׽< Don't try to remember the name of this type — use the? [`Token!`] macro instead.Ǿ [`Token!`]: crate::tokenͿ ;doc hiddenallow non_snake_caseS'' C''''cfg feature clone-impls Czcfg feature clone-impls C''C ''ѹ 'ڹ'ۺC,''I½repr½ƽȽ Cǽ doc `|=`׽< Don't try to remember the name of this type — use the? [`Token!`] macro instead.Ǿ [`Token!`]: crate::tokenͿ ;doc™ hiddenallowÙ non_snake_caseS''! C''''cfg feature clone-impls Czcfg feature clone-impls C''I½repr½ƽȽ Cǽ doc `||`׽< Don't try to remember the name of this type — use the? [`Token!`] macro instead.Ǿ [`Token!`]: crate::tokenͿޟ ;doc hiddenallow non_snake_caseS''! ޟC''ޟ''cfg feature clone-impls Czcfgƚ feature clone-impls C''I½repr½ؚƽȽ Cǽ docٚ `#`׽< Don't try to remember the name of this type — use the? [`Token!`] macro instead.Ǿ [`Token!`]: crate::tokenͿ ;doc hiddenallow non_snake_caseS'' C''''cfg feature clone-impls Czcfg feature clone-impls C''C ''ѹ 'ڹ'ۺC,''I½repr½ƽȽ Cǽ ˠdocˠˠ `?`ˠ׽< Don't try to remember the name of this type — use the? [`Token!`] macro instead.Ǿ [`Token!`]: crate::tokenͿǠ ;doc hiddenallow non_snake_caseS'' ǠC''Ǡ''cfg feature clone-impls Czcfg feature clone-impls C''C ''ѹ 'ڹ'ۺC,''I½repr½ƽȽ Cǽ doc `->`׽< Don't try to remember the name of this type — use the? [`Token!`] macro instead.Ǿ [`Token!`]: crate::tokenͿ ;doc hiddenallow non_snake_caseS''! C''((cfg feature clone-impls Czcfg feature clone-impls C((I½repr½ƽȽ Cǽ docÝ `<-`׽< Don't try to remember the name of this type — use the? [`Token!`] macro instead.Ǿ [`Token!`]: crate::tokenͿ ;doc̝ hiddenallow͝ non_snake_caseS((! C((((cfg feature clone-impls Czcfg feature clone-impls C((I½repr½ƽȽ Cǽ doc `%`׽< Don't try to remember the name of this type — use the? [`Token!`] macro instead.Ǿ [`Token!`]: crate::tokenͿڡ ;doc hiddenallow non_snake_caseS(( ڡC((ڡ((cfgʞ feature clone-impls CzcfgО feature clone-impls C((C ((ѹ (ڹ(ۺC,((I½repr½ƽȽ Cǽ doc `%=`׽< Don't try to remember the name of this type — use the? [`Token!`] macro instead.Ǿ [`Token!`]: crate::tokenͿ ;doc hiddenallow non_snake_caseS((! C((((cfgן feature clone-impls Czcfgݟ feature clone-impls C((I½repr½ƽȽ Cǽ ȢdocȢȢ `=>`Ȣ׽< Don't try to remember the name of this type — use the? [`Token!`] macro instead.Ǿ [`Token!`]: crate::tokenͿĢ ;doc hiddenallow non_snake_caseS((! ĢC((Ģ((cfg feature clone-impls Czcfg feature clone-impls C((I½repr½ƽȽ Cǽ doc `;`׽< Don't try to remember the name of this type — use the? [`Token!`] macro instead.Ǿ [`Token!`]: crate::tokenͿ ;docɠ hiddenallowʠ non_snake_caseS(( C((((cfg feature clone-impls Czcfg feature clone-impls C((C ((ѹ (ڹ(ۺC,((I½repr½̡ƽȽ Cǽ doc͡ `<<`׽< Don't try to remember the name of this type — use the? [`Token!`] macro instead.Ǿ [`Token!`]: crate::tokenͿ ;doc֡ hiddenallowס non_snake_caseS((! C((((cfg feature clone-impls Czcfg feature clone-impls C((I½repr½ƽȽ Cǽ  doc   `<<=` ׽< Don't try to remember the name of this type — use the? [`Token!`] macro instead.Ǿ [`Token!`]: crate::tokenͿ٣ ;doc hiddenallow non_snake_caseS((! ٣C((٣((cfgԢ feature clone-impls Czcfgڢ feature clone-impls C((I½repr½ƽȽ Cǽ doc `>>`׽< Don't try to remember the name of this type — use the? [`Token!`] macro instead.Ǿ [`Token!`]: crate::tokenͿ ;doc hiddenallow non_snake_caseS((! C((((cfg feature clone-impls Czcfg feature clone-impls C((I½repr½ƽȽ Cǽ Ǥ docǤ Ǥ  `>>=`Ǥ ׽< Don't try to remember the name of this type — use the? [`Token!`] macro instead.Ǿ [`Token!`]: crate::tokenͿ ;docƣ hiddenallowǣ non_snake_caseS((! C((((cfg feature clone-impls Czcfg feature clone-impls C((I½repr½ƽȽ Cǽ doc `*`׽< Don't try to remember the name of this type — use the? [`Token!`] macro instead.Ǿ [`Token!`]: crate::tokenͿ ;doc hiddenallow non_snake_caseS(( C))))cfgĤ feature clone-impls Czcfgʤ feature clone-impls C))C ))ѹ )ڹ)ۺC,))I½repr½ƽȽ Cǽ doc `-`׽< Don't try to remember the name of this type — use the? [`Token!`] macro instead.Ǿ [`Token!`]: crate::tokenͿ ;doc hiddenallow non_snake_caseS)) C))))cfgѥ feature clone-impls Czcfgץ feature clone-impls C))C ))ѹ )ڹ)ۺC,))I½repr½ƽȽ Cǽ ߥdocߥߥ `-=`ߥ׽< Don't try to remember the name of this type — use the? [`Token!`] macro instead.Ǿ [`Token!`]: crate::tokenͿإ ;doc hiddenallow non_snake_caseS))! إC))إ))cfgަ feature clone-impls Czcfg feature clone-impls C))I½repr½ƽȽ Cǽ doc `~`׽< Don't try to remember the name of this type — use the? [`Token!`] macro instead.Ǿ [`Token!`]: crate::tokenͿ ;doc hiddenallow non_snake_caseS)) C))))cfg feature clone-impls Czcfg feature clone-impls C))C ))ѹ )ڹ)ۺC,))@ܦ docܦ ܦ  `{...}`ܦ  7doc hiddenallow non_snake_caseS)) C))cfg feature clone-impls Czcfg feature clone-impls C))CcfgѨ featureprinting )F))) !cfg featureparsing C@ doc   `[...]`  7doc hiddenallow non_snake_caseS)) C))cfg feature clone-impls Czcfg feature clone-impls C))Ccfgɩ featureprinting )F))) !cfg featureparsing C@ȧ docȧ ȧ  `(...)`ȧ  7doc hiddenallow non_snake_caseS)) C))cfg feature clone-impls Czcfg feature clone-impls C))Ccfg featureprinting )F))) !cfg featureparsing C@doc None-delimited group 7doc hiddenallow non_snake_caseS)) C))cfg feature clone-impls Czcfg feature clone-impls C))Ccfg featureprinting )F))) !cfgܫ featureparsing C*K A type-macro that expands to the name of the Rust type representation of aN given token.ҩ? See the [token module] documentation for details and examples.ީB [token module]: crate::token ӫ  macro_exportӫ ѫ'))'))'))'))'))׫-doc--* An attribute like `#[repr(transparent)]`.-ϫdocϫPdocPîPM *This type is available only if Syn is built with the `"derive"` or `"full"`PϫĒ docĒ ŮĒ  feature.*Ē ϫ֒doc֒Ǯ֒֒ϫޒdocޒɮޒ
ޒϫdocˮϫ doc ͮ  # Syntax ϫdocϮϫ%doc%Ѯ%" Rust has six types of attributes.%ϫdocӮϫKdocKծKH - Outer attributes like `#[repr(transparent)]`. These appear outside orKϫ)doc)׮)& in front of the item they describe.)ϫJdocJٮJG - Inner attributes like `#![feature(proc_macro)]`. These appear insideJϫ2doc2ۮ2/ of the item they describe, usually a module.2ϫ•.doc•.ݮ•.+ - Outer doc comments like `/// # Example`.•.ϫ9doc9߮96 - Inner doc comments like `//! Please file an issue`.9ϫ.doc..+ - Outer block comments `/** # Example */`..ϫ9doc996 - Inner block comments `/*! Please file an issue */`.9ϫdocϫLdocLLI The `style` field of type `AttrStyle` distinguishes whether an attributeLϫFdocFFC is outer or inner. Doc comments and block comments are promoted toFϫȘHdocȘHȘHE attributes, as this is how they are processed by the compiler and byȘHϫdoc `macro_rules!` macros.ϫdocϫJdocJJG The `path` field gives the possibly colon-delimited path against whichJϫGdocGGD the attribute is resolved. It is equal to `"doc"` for desugared docGϫךKdocךKךKH comments. The `tokens` field contains the rest of the attribute body asךKϫ doc   tokens. ϫdocϫ doc   ```text ϫϛ5docϛ5ϛ52 #[derive(Copy)] #[crate::precondition x < 5]ϛ5ϫ4doc441 ^^^^^^~~~~~~ ^^^^^^^^^^^^^^^^^^^ ~~~~~4ϫœ5docœ5œ52 path tokens path tokensœ5ϫdoc ```ϫdocϫdoc
ϫdocϫ&doc&&# # Parsing from tokens to Attribute&ϫНdocНННϫ؝Gdoc؝G؝GD This type does not implement the [`Parse`] trait and thus cannot be؝Gϫ:doc::7 parsed directly by [`ParseStream::parse`]. Instead use:ϫ>doc>>; [`ParseStream::call`] with one of the two parser functions>ϫIdocIIF [`Attribute::parse_outer`] or [`Attribute::parse_inner`] depending onIϫdoc which you intend to parse.ϫdocϫdoc [`Parse`]: parse::Parseϫ5doc552 [`ParseStream::parse`]: parse::ParseBuffer::parse5ϫ3doc330 [`ParseStream::call`]: parse::ParseBuffer::call3ϫdocϫdoc ```ϫš/docš/š/, use syn::{Attribute, Ident, Result, Token};š/ϫ)doc))& use syn::parse::{Parse, ParseStream};)ϫdocϫ,doc,,) // Parses a unit struct with attributes.,ϫdoc //ϫdoc // #[path = "s.tmpl"]ϫdoc // struct S;ϫdoc struct UnitStruct {ϫ£doc££ attrs: Vec,£ϫ%doc%%" struct_token: Token![struct],%ϫdoc name: Ident,ϫdoc semi_token: Token![;],ϫˤdocˤˤ }ˤϫդdocդդդϫݤdocݤݤ impl Parse for UnitStruct {ݤϫ6doc6ï63 fn parse(input: ParseStream) -> Result {6ϫdoců Ok(UnitStruct {ϫܥ;docܥ;ǯܥ;8 attrs: input.call(Attribute::parse_outer)?,ܥ;ϫ-doc-ɯ-* struct_token: input.parse()?,-ϫΦ%docΦ%˯Φ%" name: input.parse()?,Φ%ϫ+doc+ͯ+( semi_token: input.parse()?,+ϫdocϯ })ϫ doc ѯ  } ϫɧdocɧӯɧ }ɧϫӧdocӧկӧ ```ӧϫߧdocߧׯߧߧϫdocٯ


ϫdocۯϫ4doc4ݯ41 # Parsing from Attribute to structured arguments4ϫdoc߯ϫĨGdocĨGĨGD The grammar of attributes in Rust is very flexible, which makes theĨGϫKdocKKH syntax tree not that useful on its own. In particular, arguments of theKϫHdocHHE attribute are held in an arbitrary `tokens: TokenStream`. Macros areHϫFdocFFC expected to check the `path` of the attribute, decide whether theyFϫKdocKKH recognize it, and then parse the remaining tokens according to whateverKϫȫ<docȫ<ȫ<9 grammar they wish to require for that kind of attribute.ȫ<ϫdocϫBdocBB? If the attribute you are parsing is expected to conform to theBϫجFdocجFجFC conventional structured form of attribute, use [`parse_meta()`] toجFϫHdocHHE obtain that structured representation. If the attribute follows someHϫIdocIIF other grammar of its own, use [`parse_args()`] to parse that into theIϫdoc expected data structure.ϫ߮doc߮߮߮ϫ+doc++( [`parse_meta()`]: Attribute::parse_meta+ϫ+doc++( [`parse_args()`]: Attribute::parse_args+ϫǯdocǯǯǯϫϯdocϯϯ


ϯϫdocϫdoc # Doc commentsϫdocϫHdocHHE The compiler transforms doc comments, such as `/// comment` and `/*!HϫװLdocװLװLI comment */`, into attributes before macros are expanded. Each comment isװLϫAdocAA> expanded into an attribute of the form `#[doc = r"comment"]`.AϫdocϫFdocFFC As an example, the following `mod` items are expanded identically:Fϫdocϫɲdocɲɲ ```ɲϫղ&docղ&ղ&# # use syn::{ItemMod, parse_quote};ղ&ϫ%doc%%" let doc: ItemMod = parse_quote! {%ϫ$doc$$! /// Single line doc comments$ϫӳdocӳӳ /// We write so many!ӳϫ doc   /** ϫ!doc!! * Multi-line comments...!ϫdoc * May span many linesϫδ docδ δ  */δ ϫ޴doc޴޴ mod example {޴ϫ0doc00- //! Of course, they can be inner too0ϫ+doc++( /*! And fit in a single line */+ϫݵ docݵ ݵ  }ݵ ϫdoc };ϫ&doc&&# let attr: ItemMod = parse_quote! {&ϫ-doc--* #[doc = r" Single line doc comments"]-ϫӶ&docӶ&Ӷ&# #[doc = r" We write so many!"]Ӷ&ϫdoc #[doc = r"ϫ!doc!! * Multi-line comments...!ϫdoc * May span many linesϫ޷ doc޷ ޷  "]޷ ϫdoc mod example {ϫ:doc::7 #![doc = r" Of course, they can be inner too"]:ϫǸ3docǸ3ðǸ30 #![doc = r" And fit in a single line "]Ǹ3ϫ doc Ű  } ϫdocǰ };ϫdocɰ assert_eq!(doc, attr);ϫdoc˰ ```ϫԺ!׫IdocIIF Distinguishes between attributes that decorate an item and attributesIϫ&doc&&# that are contained within an item.&ϫdocϫPdocPPM *This type is available only if Syn is built with the `"derive"` or `"full"`Pϫ doc   feature.* ϫdocϫdoc # Outer attributesϫdocϫdoc - `#[repr(transparent)]`ϫdoc - `/// # Example`ϫ#doc## - `/** Please file an issue */`#ϫdocϫdoc # Inner attributesϫdocϫdoc - `#![feature(proc_macro)]`ϫdoc - `//! # Example`ϫ#doc## - `/*! Please file an issue */`#ϫ******** ׫3doc330 Content of a compile-time structured attribute.3ϫdocϫPdocPPM *This type is available only if Syn is built with the `"derive"` or `"full"`Pϫ doc   feature.* ϫdocϫ doc   ## Path ϫdocϫ0doc00- A meta path is like the `test` in `#[test]`.0ϫdocϫ doc   ## List ϫdoc³ϫ@doc@ij@= A meta list is like the `derive(Copy)` in `#[derive(Copy)]`.@ϫdocƳϫdocȳ ## NameValueϫdocʳϫ=doc=̳=: A name-value meta is like the `path = "..."` in `#[path ==ϫdocγ "sys/windows.rs"]`.ϫdocгϫdocҳ # Syntax tree enumϫdocԳϫ&doc&ֳ&# This type is a [syntax tree enum].&ϫdocسϫ.doc.ڳ.+ [syntax tree enum]: Expr#syntax-tree-enums.ϫ ** **C A structured list within an attribute, like `derive(Copy, Clone)`.F**C A structured list within an attribute, like `derive(Copy, Clone)`.F**C A name-value pair within an attribute, like `feature = "nightly"`.F**C A name-value pair within an attribute, like `feature = "nightly"`.F** ******ڨ=**׫FdocFFC A structured list within an attribute, like `derive(Copy, Clone)`.FϫdocϫGdocGGD *This type is available only if Syn is built with the `"derive"` orGϫdoc `"full"` feature.*ϫ-׫FdocFFC A name-value pair within an attribute, like `feature = "nightly"`.FϫdocϫGdocGGD *This type is available only if Syn is built with the `"derive"` orGϫdoc `"full"` feature.*ϫ ׫-doc--* Element of a compile-time attribute list.-ϫdocϫPdocPPM *This type is available only if Syn is built with the `"derive"` or `"full"`Pϫ doc   feature.* ϫ C A structured meta item, like the `Copy` in `#[derive(Copy)]` whichF would be a nested `Meta::Path`.#** C A structured meta item, like the `Copy` in `#[derive(Copy)]` whichF would be a nested `Meta::Path`.#**B A Rust literal, like the `"new_name"` in `#[rename("new_name")]`.E**B A Rust literal, like the `"new_name"` in `#[rename("new_name")]`.E******ڨ=**׫doc An enum variant.ϫdocϫPdocPPM *This type is available only if Syn is built with the `"derive"` or `"full"`Pϫ doc   feature.* ϫ" Attributes tagged on the variant.% Name of the variant. Content stored in the variant."+% Explicit discriminant: `Variant = 1`(׫1doc11. Data stored within an enum variant or struct.1ϫdocϫPdocPPM *This type is available only if Syn is built with the `"derive"` or `"full"`Pϫ doc   feature.* ϫdocϫdoc # Syntax tree enumϫdocϫ&doc&&# This type is a [syntax tree enum].&ϫdocϫ.doc..+ [syntax tree enum]: Expr#syntax-tree-enums.ϫD Named fields of a struct or struct variant such as `Point { x: f64,G y: f64 }`.**D Named fields of a struct or struct variant such as `Point { x: f64,G y: f64 }`.** E Unnamed fields of a tuple struct or tuple variant such as `Some(T)`.H**E Unnamed fields of a tuple struct or tuple variant such as `Some(T)`.H** , Unit struct or unit variant such as `None`./**, Unit struct or unit variant such as `None`./******ڨ=**׫GdocGGD Named fields of a struct or struct variant such as `Point { x: f64,Gϫdoc y: f64 }`.ϫdocϫGdocGGD *This type is available only if Syn is built with the `"derive"` orGϫdoc `"full"` feature.*ϫ'׫HdocHĸHE Unnamed fields of a tuple struct or tuple variant such as `Some(T)`.HϫdocƸϫGdocGȸGD *This type is available only if Syn is built with the `"derive"` orGϫdocʸ `"full"` feature.*ϫ)׫(doc(ڸ(% A field of a struct or enum variant.(ϫdocܸϫPdocP޸PM *This type is available only if Syn is built with the `"derive"` or `"full"`Pϫ doc   feature.* ϫ Attributes tagged on the field.# Visibility of the field. Name of the field, if any.' Fields of tuple structs have no names.*"  Type of the field.׫:doc::7 The visibility level of an item: inherited or `pub` or:ϫdoc `pub(restricted)`.ϫdocϫPdocPPM *This type is available only if Syn is built with the `"derive"` or `"full"`Pϫ doc   feature.* ϫdocϫdoc # Syntax tree enumϫdocϫ&doc&&# This type is a [syntax tree enum].&ϫdocϫ.doc..+ [syntax tree enum]: Expr#syntax-tree-enums.ϫ" A public visibility level: `pub`.%**" A public visibility level: `pub`.%** # A crate-level visibility: `crate`.&**# A crate-level visibility: `crate`.&**; A visibility level restricted to some path: `pub(self)` or>8 `pub(super)` or `pub(crate)` or `pub(in some::module)`.;**; A visibility level restricted to some path: `pub(self)` or>8 `pub(super)` or `pub(crate)` or `pub(in some::module)`.;**  6 An inherited visibility, which usually means private.9** 6 An inherited visibility, which usually means private.9********ڨ=**׫%doc%%" A public visibility level: `pub`.%ϫdocϫGdocGGD *This type is available only if Syn is built with the `"derive"` orGϫdoc `"full"` feature.*ϫ׫&doc&&# A crate-level visibility: `crate`.&ϫdocϫGdocGGD *This type is available only if Syn is built with the `"derive"` orGϫdoc `"full"` feature.*ϫ׫>doc>>; A visibility level restricted to some path: `pub(self)` or>ϫ;doc;;8 `pub(super)` or `pub(crate)` or `pub(in some::module)`.;ϫdocϫGdocGGD *This type is available only if Syn is built with the `"derive"` orGϫdocú `"full"` feature.*ϫ ׫doc A Rust expression.ϫdocϫPdocPPM *This type is available only if Syn is built with the `"derive"` or `"full"`PϫRdocRRO feature, but most of the variants are not available unless "full" is enabled.*Rϫdocϫdoc # Syntax tree enumsϫdocϫLdocLLI This type is a syntax tree enum. In Syn this and other syntax tree enumsLϫEdocEüEB are designed to be traversed using the following rebinding idiom.EϫdocżϫdocǼ ```ϫdocɼ # use syn::Expr;ϫdoc˼ #ϫdocͼ # fn example(expr: Expr) {ϫ'doc'ϼ'$ # const IGNORE: &str = stringify! {'ϫdocѼ let expr: Expr = /* ... */;ϫdocӼ # };ϫdocռ match expr {ϫ#doc#׼# Expr::MethodCall(expr) => {#ϫdocټ /* ... */ϫ doc ۼ  } ϫdocݼ Expr::Cast(expr) => {ϫdoc߼ /* ... */ϫ doc   } ϫdoc Expr::If(expr) => {ϫdoc /* ... */ϫ doc   } ϫdocϫdoc /* ... */ϫdoc # _ => {}ϫdoc # }ϫdoc # }ϫdoc ```ϫdocϫEdocEEB We begin with a variable `expr` of type `Expr` that has no fieldsEϫKdocKKH (because it is an enum), and by matching on it and rebinding a variableKϫKdocKKH with the same name `expr` we effectively imbue our variable with all ofKϫLdocLLI the data fields provided by the variant that it turned out to be. So forLϫLdocLLI example above if we ended up in the `MethodCall` case then we get to useLϫLdocLLI `expr.receiver`, `expr.args` etc; if we ended up in the `If` case we getLϫ?doc??< to use `expr.cond`, `expr.then_branch`, `expr.else_branch`.?ϫdocϫIdocIIF This approach avoids repeating the variant names twice on every line.Iϫdocϫdoc ```ϫ&doc&&# # use syn::{Expr, ExprMethodCall};&ϫdoc #ϫdoc # fn example(expr: Expr) {ϫ,doc,,) // Repetitive; recommend not doing this.,ϫdoc match expr {ϫBdocBB? Expr::MethodCall(ExprMethodCall { method, args, .. }) => {Bϫdoc # }ϫ doc   # _ => {} ϫdoc # }ϫdoc # }ϫdoc ```ϫdocϫLdocLLI In general, the name to which a syntax tree enum variant is bound shouldLϫ>doc>>; be a suitable name for the complete syntax tree enum type.>ϫdocϫdoc ```ϫ!doc!! # use syn::{Expr, ExprField};!ϫdoc #ϫ+doc++( # fn example(discriminant: ExprField) {+ϫGdocGGD // Binding is called `base` which is the name I would use if I wereGϫ:doc::7 // assigning `*discriminant.base` without an `if let`.:ϫ3doc330 if let Expr::Tuple(base) = *discriminant.base {3ϫdoc # }ϫdoc # }ϫdoc ```ϫdocϫJdocJJG A sign that you may not be choosing the right variable names is if youJϫ;doc;ý;8 see names getting repeated in your code, like accessing;ϫ4doc4Ž41 `receiver.receiver` or `pat.pat` or `cond.cond`.4ϫ, A slice literal expression: `[a, b, c, d]`./**, A slice literal expression: `[a, b, c, d]`./** + An assignment expression: `a = compute()`..**+ An assignment expression: `a = compute()`..** 2 A compound assignment expression: `counter += 1`.5**2 A compound assignment expression: `counter += 1`.5** ! An async block: `async { ... }`.$**! An async block: `async { ... }`.$** " An await expression: `fut.await`.%**" An await expression: `fut.await`.%** & A binary operation: `a + b`, `a * b`.)**& A binary operation: `a + b`, `a * b`.)**  A blocked scope: `{ ... }`.** A blocked scope: `{ ... }`.**   A box expression: `box f`.**  A box expression: `box f`.**; A `break`, with an optional label to break and an optional> expression.**; A `break`, with an optional label to break and an optional> expression.** , A function call expression: `invoke(a, b)`./**, A function call expression: `invoke(a, b)`./**! A cast expression: `foo as f64`.$**! A cast expression: `foo as f64`.$**& A closure expression: `|a, b| a + b`.)**& A closure expression: `|a, b| a + b`.)** & A `continue`, with an optional label.)**& A `continue`, with an optional label.)** A Access of a named struct field (`obj.k`) or unnamed tuple structD field (`obj.0`).**A Access of a named struct field (`obj.k`) or unnamed tuple structD field (`obj.0`).** ' A for loop: `for pat in expr { ... }`.***' A for loop: `for pat in expr { ... }`.*** 5 An expression contained within invisible delimiters.8E This variant is important for faithfully representing the precedenceH= of expressions and is related to `None`-delimited spans in a@ `TokenStream`.**5 An expression contained within invisible delimiters.8E This variant is important for faithfully representing the precedenceH= of expressions and is related to `None`-delimited spans in a@ `TokenStream`.**  C An `if` expression with an optional `else` block: `if expr { ... }F else { ... }`.< The `else` branch expression may only be an `If` or `Block`?6 expression, not any of the other types of expression.9** C An `if` expression with an optional `else` block: `if expr { ... }F else { ... }`.< The `else` branch expression may only be an `If` or `Block`?6 expression, not any of the other types of expression.9**5 A square bracketed indexing expression: `vector[2]`.8**5 A square bracketed indexing expression: `vector[2]`.8**  $ A `let` guard: `let Some(x) = opt`.'** $ A `let` guard: `let Some(x) = opt`.'** 3 A literal in place of an expression: `1`, `"foo"`.6** 3 A literal in place of an expression: `1`, `"foo"`.6**$ Conditionless loop: `loop { ... }`.'**$ Conditionless loop: `loop { ... }`.'**3 A macro invocation expression: `format!("{}", q)`.6**3 A macro invocation expression: `format!("{}", q)`.6** ? A `match` expression: `match n { Some(n) => {}, None => {} }`.B**? A `match` expression: `match n { Some(n) => {}, None => {} }`.B** . A method call expression: `x.foo::(a, b)`.1**. A method call expression: `x.foo::(a, b)`.1**' A parenthesized expression: `(a + b)`.***' A parenthesized expression: `(a + b)`.*** < A path like `std::mem::replace` possibly containing generic?& parameters and a qualified self-type.)3 A plain identifier like `x` is a path of length 1.6**< A path like `std::mem::replace` possibly containing generic?& parameters and a qualified self-type.)3 A plain identifier like `x` is a path of length 1.6**; A range expression: `1..2`, `1..`, `..2`, `1..=2`, `..=2`.>**; A range expression: `1..2`, `1..`, `..2`, `1..=2`, `..=2`.>** + A referencing operation: `&a` or `&mut a`..**+ A referencing operation: `&a` or `&mut a`..** D An array literal constructed from one repeated element: `[0u8; N]`.G**D An array literal constructed from one repeated element: `[0u8; N]`.G** 3 A `return`, with an optional value to be returned.6**3 A `return`, with an optional value to be returned.6** 5 A struct literal expression: `Point { x: 1, y: 1 }`.8D The `rest` provides the value of the remaining fields as in `S { a:G 1, b: 1, ..rest }`.**5 A struct literal expression: `Point { x: 1, y: 1 }`.8D The `rest` provides the value of the remaining fields as in `S { a:G 1, b: 1, ..rest }`.**   A try-expression: `expr?`.**  A try-expression: `expr?`.** A try block: `try { ... }`.** A try block: `try { ... }`.** $ A tuple expression: `(a, b, c, d)`.'**$ A tuple expression: `(a, b, c, d)`.'** * A type ascription expression: `foo: f64`.-*** A type ascription expression: `foo: f64`.-** A unary operation: `!x`, `*x`."** A unary operation: `!x`, `*x`."** # An unsafe block: `unsafe { ... }`.&**# An unsafe block: `unsafe { ... }`.&** 6 Tokens in expression position not interpreted by Syn.9**6 Tokens in expression position not interpreted by Syn.9** $ A while loop: `while expr { ... }`.'**$ A while loop: `while expr { ... }`.'** " A yield expression: `yield expr`.%**" A yield expression: `yield expr`.%**  doc hidden** doc hidden**++++++++++++++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,ڨ=,,׋cfg׋ڋ notۋދ featureߋfullՋ/doc//, A slice literal expression: `[a, b, c, d]`./ϫdocϫLdocLLI *This type is available only if Syn is built with the `"full"` feature.*Lϫ=cfg all not featurefull featureprinting 87,,׋cfg׋ڋ notۋދ featureߋfullՋى.docى.ى.+ An assignment expression: `a = compute()`.ى.ϫdocϫLdocLLI *This type is available only if Syn is built with the `"full"` feature.*Lϫ=cfg all not featurefull featureprinting 87,,׋cfg׋ڋ notۋދ featureߋfullՋҌ5docҌ5Ҍ52 A compound assignment expression: `counter += 1`.Ҍ5ϫdocϫLdocLLI *This type is available only if Syn is built with the `"full"` feature.*Lϫ=cfg all not featurefull featureprinting 87,,׋cfg׋ڋ notۋދ featureߋfullՋʏ$docʏ$ʏ$! An async block: `async { ... }`.ʏ$ϫdocϫLdocLLI *This type is available only if Syn is built with the `"full"` feature.*Lϫ=cfg all not featurefull featureprinting 87,,׋cfg׋ڋ notۋދ featureߋfullՋɒ%docɒ%ɒ%" An await expression: `fut.await`.ɒ%ϫdocϫLdocLLI *This type is available only if Syn is built with the `"full"` feature.*Lϫ=cfg all not featurefull featureprinting 87,,׫•)doc•)•)& A binary operation: `a + b`, `a * b`.•)ϫdocϫGdocGGD *This type is available only if Syn is built with the `"derive"` orGϫĖdocĖĖ `"full"` feature.*Ėϫ͗ ׋cfg׋ڋ notۋދ featureߋfullՋ՘doc՘՘ A blocked scope: `{ ... }`.՘ϫdocϫLdocLLI *This type is available only if Syn is built with the `"full"` feature.*Lϫ=cfg all not featurefull featureprinting 87,,׋cfg׋ڋ notۋދ featureߋfullՋdoc A box expression: `box f`.ϫdocϫɛLdocɛLɛLI *This type is available only if Syn is built with the `"full"` feature.*ɛLϫ=cfg all not featurefull featureprinting 87,,׋cfg׋ڋ notۋދ featureߋfullՋ>doc>>; A `break`, with an optional label to break and an optional>ϫdoc expression.ϫdocϫȞLdocȞLȞLI *This type is available only if Syn is built with the `"full"` feature.*ȞLϫ=cfg all not featurefull featureprinting 87,,׫/doc//, A function call expression: `invoke(a, b)`./ϫϡdocϡϡϡϫסGdocסGסGD *This type is available only if Syn is built with the `"derive"` orסGϫdoc `"full"` feature.*ϫͣ%׫Ӥ$docӤ$Ӥ$! A cast expression: `foo as f64`.Ӥ$ϫdocϫGdocGGD *This type is available only if Syn is built with the `"derive"` orGϫХdocХХ `"full"` feature.*Хϫצ׋cfg׋ڋ notۋދ featureߋfullՋ)doc))& A closure expression: `|a, b| a + b`.)ϫdocϫLdocLLI *This type is available only if Syn is built with the `"full"` feature.*Lϫ=cfg all not featurefull featureprinting 87,,׋cfg׋ڋ notۋދ featureߋfullՋ)doc))& A `continue`, with an optional label.)ϫdocϫLdocLLI *This type is available only if Syn is built with the `"full"` feature.*Lϫ=cfg all not featurefull featureprinting 87,,׫DdocDDA Access of a named struct field (`obj.k`) or unnamed tuple structDϫdoc field (`obj.0`).ϫdocϫLdocLLI *This type is available only if Syn is built with the `"full"` feature.*Lϫϱ׋cfg׋ڋ notۋދ featureߋfullՋ*doc**' A for loop: `for pat in expr { ... }`.*ϫdocϫLdocLLI *This type is available only if Syn is built with the `"full"` feature.*Lϫ=cfg all not featurefull featureprinting 87,,׋cfg׋ڋ notۋދ featureߋfullՋ8doc885 An expression contained within invisible delimiters.8ϫdocϫHdocHHE This variant is important for faithfully representing the precedenceHϫ@doc@@= of expressions and is related to `None`-delimited spans in a@ϫdoc `TokenStream`.ϫdocϫLdocLLI *This type is available only if Syn is built with the `"full"` feature.*Lϫ=cfg all not featurefull featureprinting 87,,׋cfg׋ڋ notۋދ featureߋfullՋɺFdocɺFɺFC An `if` expression with an optional `else` block: `if expr { ... }ɺFϫdoc else { ... }`.ϫdocϫ?doc??< The `else` branch expression may only be an `If` or `Block`?ϫ9doc996 expression, not any of the other types of expression.9ϫdocϫLdocLLI *This type is available only if Syn is built with the `"full"` feature.*Lϫ=cfg all not featurefull featureprinting 87,,׫8doc885 A square bracketed indexing expression: `vector[2]`.8ϫdocϫGdocGGD *This type is available only if Syn is built with the `"derive"` orGϫdoc `"full"` feature.*ϫ!׋cfg׋ڋ notۋދ featureߋfullՋ'doc''$ A `let` guard: `let Some(x) = opt`.'ϫdocϫLdocLLI *This type is available only if Syn is built with the `"full"` feature.*Lϫ=cfg all not featurefull featureprinting 87--׫6doc663 A literal in place of an expression: `1`, `"foo"`.6ϫdocϫGdocGGD *This type is available only if Syn is built with the `"derive"` orGϫdoc `"full"` feature.*ϫ ׋cfg׋ڋ notۋދ featureߋfullՋ'doc''$ Conditionless loop: `loop { ... }`.'ϫdocϫLdocLLI *This type is available only if Syn is built with the `"full"` feature.*Lϫ=cfg all not featurefull featureprinting 87--׋cfg׋ڋ notۋދ featureߋfullՋ6doc663 A macro invocation expression: `format!("{}", q)`.6ϫdocϫLdocLLI *This type is available only if Syn is built with the `"full"` feature.*Lϫ=cfg all not featurefull featureprinting 87--׋cfg׋ڋ notۋދ featureߋfullՋBdocBB? A `match` expression: `match n { Some(n) => {}, None => {} }`.BϫdocϫLdocLLI *This type is available only if Syn is built with the `"full"` feature.*Lϫ=cfg all not featurefull featureprinting 87--׋cfg׋ڋ notۋދ featureߋfullՋ1doc11. A method call expression: `x.foo::(a, b)`.1ϫdocϫLdocLLI *This type is available only if Syn is built with the `"full"` feature.*Lϫ=cfg all not featurefull featureprinting 87--׫*doc**' A parenthesized expression: `(a + b)`.*ϫdocϫLdocLLI *This type is available only if Syn is built with the `"full"` feature.*Lϫ׫?doc??< A path like `std::mem::replace` possibly containing generic?ϫ)doc))& parameters and a qualified self-type.)ϫdocϫ6doc663 A plain identifier like `x` is a path of length 1.6ϫdocϫGdocGGD *This type is available only if Syn is built with the `"derive"` orGϫdoc `"full"` feature.*ϫ׋cfg׋ڋ notۋދ featureߋfullՋ>doc>>; A range expression: `1..2`, `1..`, `..2`, `1..=2`, `..=2`.>ϫdocϫLdocLLI *This type is available only if Syn is built with the `"full"` feature.*Lϫ=cfg all not featurefull featureprinting 87--׋cfg׋ڋ notۋދ featureߋfullՋ.doc..+ A referencing operation: `&a` or `&mut a`..ϫdocϫLdocLLI *This type is available only if Syn is built with the `"full"` feature.*Lϫ=cfg all not featurefull featureprinting 87--׋cfg׋ڋ notۋދ featureߋfullՋGdocGGD An array literal constructed from one repeated element: `[0u8; N]`.GϫdocϫLdocLLI *This type is available only if Syn is built with the `"full"` feature.*Lϫ=cfg all not featurefull featureprinting 87--׋cfg׋ڋ notۋދ featureߋfullՋ6doc663 A `return`, with an optional value to be returned.6ϫdocϫLdocLLI *This type is available only if Syn is built with the `"full"` feature.*Lϫ=cfg all not featurefull featureprinting 87--׋cfg׋ڋ notۋދ featureߋfullՋ8doc885 A struct literal expression: `Point { x: 1, y: 1 }`.8ϫdocϫGdocGGD The `rest` provides the value of the remaining fields as in `S { a:Gϫdoc 1, b: 1, ..rest }`.ϫdocϫLdocLLI *This type is available only if Syn is built with the `"full"` feature.*Lϫ=cfg all not featurefull featureprinting 87--׋cfg׋ڋ notۋދ featureߋfullՋdoc A try-expression: `expr?`.ϫdocϫLdocLLI *This type is available only if Syn is built with the `"full"` feature.*Lϫ=cfg all not featurefull featureprinting 87--׋cfg׋ڋ notۋދ featureߋfullՋdoc A try block: `try { ... }`.ϫdocϫLdocLLI *This type is available only if Syn is built with the `"full"` feature.*Lϫ=cfg all not featurefull featureprinting 87--׋cfg׋ڋ notۋދ featureߋfullՋ'doc''$ A tuple expression: `(a, b, c, d)`.'ϫdocϫLdocLLI *This type is available only if Syn is built with the `"full"` feature.*Lϫ=cfg all not featurefull featureprinting 87--׋cfg׋ڋ notۋދ featureߋfullՋ-doc--* A type ascription expression: `foo: f64`.-ϫdocϫLdocLLI *This type is available only if Syn is built with the `"full"` feature.*Lϫ=cfg all not featurefull featureprinting 87--׫"doc"" A unary operation: `!x`, `*x`."ϫdocϫGdocGGD *This type is available only if Syn is built with the `"derive"` orGϫdoc `"full"` feature.*ϫ ׋cfg׋ڋ notۋދ featureߋfullՋ&doc&&# An unsafe block: `unsafe { ... }`.&ϫdocϫLdocLLI *This type is available only if Syn is built with the `"full"` feature.*Lϫ=cfg all not featurefull featureprinting 87--׋cfg׋ڋ notۋދ featureߋfullՋ'doc''$ A while loop: `while expr { ... }`.'ϫdocϫLdocLLI *This type is available only if Syn is built with the `"full"` feature.*Lϫ=cfg all not featurefull featureprinting 87--׋cfg׋ڋ notۋދ featureߋfullՋځ %docځ %ځ %" A yield expression: `yield expr`.ځ %ϫ doc   ϫ Ldoc L LI *This type is available only if Syn is built with the `"full"` feature.* Lϫ=cfg all not featurefull featureprinting 87--׫ Hdoc H HE A struct or tuple struct field accessed in a struct literal or field Hϫ doc   expression. ϫ doc   ϫ Pdoc P PM *This type is available only if Syn is built with the `"derive"` or `"full"` Pϫ doc   feature.* ϫ  A named field like `self.x`. --  A named field like `self.x`. -- Ӛ  An unnamed field like `self.0`. #--Ӛ  An unnamed field like `self.0`. #--ۚ ׫ /doc / /, The index of an unnamed tuple struct field. /ϫ doc   ϫ Pdoc P PM *This type is available only if Syn is built with the `"derive"` or `"full"` Pϫ doc   feature.* ϫ Ч Lallow non_camel_case_types}!} zdoc hiddenallow dead_code  non_snake_case#}__S--__Sք(: }}}}--B--/--L- -------A--*~allow clippy expl_impl_clone_on_copy)--׫JdocJJG Lifetimes and type parameters attached to a declaration of a function,Jϫdoc enum, trait, etc.ϫdocϫPdocPPM *This type is available only if Syn is built with the `"derive"` or `"full"`Pϫ doc   feature.* ϫ/%׫LdocLLI A generic type parameter, lifetime, or const generic: `T: Into`,Lϫ!doc!! `'a: 'b`, `const LEN: usize`.!ϫdocϫPdocPPM *This type is available only if Syn is built with the `"derive"` or `"full"`Pϫ doc   feature.* ϫdocϫdoc # Syntax tree enumϫdocϫ&doc&&# This type is a [syntax tree enum].&ϫdocϫ.doc..+ [syntax tree enum]: Expr#syntax-tree-enums.ϫ- A generic type parameter: `T: Into`.0--- A generic type parameter: `T: Into`.0-- + A lifetime definition: `'a: 'b + 'c + 'd`..--+ A lifetime definition: `'a: 'b + 'c + 'd`..-- 2 A const generic parameter: `const LENGTH: usize`.5--2 A const generic parameter: `const LENGTH: usize`.5-- ......ڨ=..׫0doc00- A generic type parameter: `T: Into`.0ϫdocϫGdocGGD *This type is available only if Syn is built with the `"derive"` orGϫdoc `"full"` feature.*ϫ   " 1   ׫.doc..+ A lifetime definition: `'a: 'b + 'c + 'd`..ϫdocϫGdocGGD *This type is available only if Syn is built with the `"derive"` orGϫdoc `"full"` feature.*ϫ   " + ׫5doc552 A const generic parameter: `const LENGTH: usize`.5ϫdocϫGdocGGD *This type is available only if Syn is built with the `"derive"` orGϫdoc `"full"` feature.*ϫ        vcfg feature clone-impls 'a....vcfg feature clone-impls 'a....vcfg feature clone-impls 'a....׫0doc00- A set of bound lifetimes: `for<'a, 'b, 'c>`.0ϫdocϫPdocPPM *This type is available only if Syn is built with the `"derive"` or `"full"`Pϫ doc   feature.* ϫ   1  ׫<doc<<9 A trait or lifetime used as a bound on a type parameter.<ϫdocϫPdocPPM *This type is available only if Syn is built with the `"derive"` or `"full"`Pϫ doc   feature.* ϫ  .. ..  .. ..   ..  ..ڨ = ..׫0doc00- A trait used as a bound on a type parameter.0ϫdocϫPdocPPM *This type is available only if Syn is built with the `"derive"` or `"full"`Pϫ doc   feature.* ϫ %  %& The `for<'a>` in `for<'a> Foo<&'a T>`) ) The `Foo<&'a T>` in `for<'a> Foo<&'a T>`, ׫CdocCC@ A modifier on a trait bound, currently only used for the `?` inCϫ doc   `?Sized`. ϫdocϫPdocPPM *This type is available only if Syn is built with the `"derive"` or `"full"`Pϫ doc   feature.* ϫ  .. .. .. .. ׫DdocDDA A `where` clause in a definition: `where T: Deserialize<'de>, D:Dϫ doc   'static`. ϫdocϫPdocPPM *This type is available only if Syn is built with the `"derive"` or `"full"`Pϫ doc   feature.* ϫ  5 ׫BdocBB? A single predicate in a `where` clause: `T: Deserialize<'de>`.BϫdocϫPdocPPM *This type is available only if Syn is built with the `"derive"` or `"full"`Pϫ doc   feature.* ϫdocϫdoc # Syntax tree enumϫdocϫ&doc&&# This type is a [syntax tree enum].&ϫdocϫ.doc..+ [syntax tree enum]: Expr#syntax-tree-enums.ϫ D A type predicate in a `where` clause: `for<'c> Foo<'c>: Trait<'c>`.G ..D A type predicate in a `where` clause: `for<'c> Foo<'c>: Trait<'c>`.G .. 9 A lifetime predicate in a `where` clause: `'a: 'b + 'c`.< ..9 A lifetime predicate in a `where` clause: `'a: 'b + 'c`.< .. 9 An equality predicate in a `where` clause (unsupported).< ..9 An equality predicate in a `where` clause (unsupported).< ..   ..  ..  ..ڨ = ..׫GdocGGD A type predicate in a `where` clause: `for<'c> Foo<'c>: Trait<'c>`.GϫdocϫGdocGGD *This type is available only if Syn is built with the `"derive"` orGϫdoc `"full"` feature.*ϫ %# Any lifetimes from a `for` binding&  The type being bounded  11 Trait and lifetime bounds (`Clone+Send+'static`)4 ׫<doc<<9 A lifetime predicate in a `where` clause: `'a: 'b + 'c`.<ϫdocϫGdocGGD *This type is available only if Syn is built with the `"derive"` orGϫdoc `"full"` feature.*ϫ   + ׫<doc<<9 An equality predicate in a `where` clause (unsupported).<ϫdocϫGdocGGD *This type is available only if Syn is built with the `"derive"` orGϫdoc `"full"` feature.*ϫ    ׫:doc::7 A Rust literal such as a string or integer or boolean.:ϫdocϫdoc # Syntax tree enumϫdocϫ&doc&&# This type is a [syntax tree enum].&ϫdocϫ5doc552 [syntax tree enum]: crate::Expr#syntax-tree-enums5ϫ  ! A UTF-8 string literal: `"foo"`.$ .. ! A UTF-8 string literal: `"foo"`.$ .. ! A byte string literal: `b"foo"`.$ ..! A byte string literal: `b"foo"`.$ ..   A byte literal: `b'f'`. ..  A byte literal: `b'f'`. ..   A character literal: `'a'`. ..  A character literal: `'a'`. ..  # An integer literal: `1` or `1u16`.& .. # An integer literal: `1` or `1u16`.& .. 1 A floating point literal: `1f64` or `1.0e10f64`.4, Must be finite. May not be infinite or NaN./ ..1 A floating point literal: `1f64` or `1.0e10f64`.4, Must be finite. May not be infinite or NaN./ ..  & A boolean literal: `true` or `false`.) .. & A boolean literal: `true` or `false`.) .. , A raw token literal not interpreted by Syn./ .., A raw token literal not interpreted by Syn./ ..    //   //   //   //   //   //   //ڨ  = //׫$doc$$! A UTF-8 string literal: `"foo"`.$ϫ   ׫$doc$$! A byte string literal: `b"foo"`.$ϫ   ׫doc A byte literal: `b'f'`.ϫ   ׫doc A character literal: `'a'`.ϫ   ׫&doc&&# An integer literal: `1` or `1u16`.&ϫ   ׫4doc441 A floating point literal: `1f64` or `1.0e10f64`.4ϫdocϫ/doc//, Must be finite. May not be infinite or NaN./ϫ   ׫)doc))& A boolean literal: `true` or `false`.)ϫ   cfg feature clone-impls  // 1cfg featureparsing doc hiddenallow non_snake_casecfg feature clone-impls  // 1cfg featureparsing doc hiddenallow non_snake_casecfg feature clone-impls  // 1cfg featureparsing doc hiddenallow non_snake_casecfg feature clone-impls  // 1cfg featureparsing doc hiddenallow non_snake_casecfg feature clone-impls  // 1cfg featureparsing doc hiddenallow non_snake_casecfg feature clone-impls  // 1cfg featureparsing doc hiddenallow non_snake_case׫KdocKKH The style of a string literal, either plain quoted or a raw string likeKϫdoc `r##"data"##`.ϫ " An ordinary string like `"data"`.% //" An ordinary string like `"data"`.% // ! A raw string like `r##"data"##`.$8 The unsigned integer is the number of `#` symbols used.; // ! A raw string like `r##"data"##`.$8 The unsigned integer is the number of `#` symbols used.; // ׫.doc..+ A macro invocation: `println!("{}", mac)`..ϫdocϫPdocPPM *This type is available only if Syn is built with the `"derive"` or `"full"`Pϫ doc   feature.* ϫ     ׫VdocVVS A grouping token that surrounds a macro body: `m!(...)` or `m!{...}` or `m![...]`.VϫdocϫPdocPPM *This type is available only if Syn is built with the `"derive"` or `"full"`Pϫ doc   feature.* ϫ  // //  // //  // // ׫7doc774 Data structure sent to a `proc_macro_derive` macro.7ϫdocϫDžNdocDžNDžNK *This type is available only if Syn is built with the `"derive"` feature.*DžNϫ / Attributes tagged on the whole struct or enum.2 " Visibility of the struct or enum.ч% ň Name of the struct or enum. . Generics required to complete the definition.1  Data within the struct or enum.# ׫:doc::7 The storage of a struct, enum or union data structure.:ϫڊdocڊڊڊϫNdocNNK *This type is available only if Syn is built with the `"derive"` feature.*Nϫdocϫdoc # Syntax tree enumϫ؋doc؋؋؋ϫ&doc&&# This type is a [syntax tree enum].&ϫdocϫ.doc..+ [syntax tree enum]: Expr#syntax-tree-enums.ϫ Ѝ/ A struct input to a `proc_macro_derive` macro.2 //Ѝ/ A struct input to a `proc_macro_derive` macro.2 //׍ . An enum input to a `proc_macro_derive` macro.1 //. An enum input to a `proc_macro_derive` macro.1 // 8 An untagged union input to a `proc_macro_derive` macro.; //8 An untagged union input to a `proc_macro_derive` macro.; //    //   //   //׫Џ2docЏ2Џ2/ A struct input to a `proc_macro_derive` macro.Џ2ϫdocϫDdocDDA *This type is available only if Syn is built with the `"derive"`Dϫؐ docؐ ؐ  feature.*ؐ ϫ   ! ׫Œ1docŒ1Œ1. An enum input to a `proc_macro_derive` macro.Œ1ϫdocϫDdocDDA *This type is available only if Syn is built with the `"derive"`Dϫ̓ doc̓ ̓  feature.*̓ ϫ  ٔ , ׫ɕ;docɕ;ɕ;8 An untagged union input to a `proc_macro_derive` macro.ɕ;ϫdocϫDdocDDA *This type is available only if Syn is built with the `"derive"`Dϫږ docږ ږ  feature.*ږ ϫ —  ׫&doc&&# A binary operator: `+`, `+=`, `&`.&ϫdocϫPdocPPM *This type is available only if Syn is built with the `"derive"` or `"full"`Pϫ doc   feature.* ϫ  The `+` operator (addition) // The `+` operator (addition) //  The `-` operator (subtraction)" // The `-` operator (subtraction)" // " The `*` operator (multiplication)% //" The `*` operator (multiplication)% //  The `/` operator (division) // The `/` operator (division) //  The `%` operator (modulus) // The `%` operator (modulus) //  The `&&` operator (logical and)# // The `&&` operator (logical and)# //  The `||` operator (logical or)" // The `||` operator (logical or)" //  The `^` operator (bitwise xor)" // The `^` operator (bitwise xor)" //  The `&` operator (bitwise and)" // The `&` operator (bitwise and)" //  The `|` operator (bitwise or)! // The `|` operator (bitwise or)! //  The `<<` operator (shift left)" // The `<<` operator (shift left)" //  The `>>` operator (shift right)# // The `>>` operator (shift right)# //  The `==` operator (equality) // The `==` operator (equality) //   The `<` operator (less than) //  The `<` operator (less than) // * The `<=` operator (less than or equal to)- //* The `<=` operator (less than or equal to)- // ! The `!=` operator (not equal to)$ //! The `!=` operator (not equal to)$ // - The `>=` operator (greater than or equal to)0 //- The `>=` operator (greater than or equal to)0 //   The `>` operator (greater than)# //  The `>` operator (greater than)# //  The `+=` operator // The `+=` operator //  The `-=` operator // The `-=` operator //  The `*=` operator // The `*=` operator //  The `/=` operator // The `/=` operator //  The `%=` operator // The `%=` operator //  The `^=` operator // The `^=` operator //  The `&=` operator // The `&=` operator //  The `|=` operator // The `|=` operator //  The `<<=` operator // The `<<=` operator //  The `>>=` operator // The `>>=` operator // ׫$doc$$! A unary operator: `*`, `!`, `-`.$ϫdocϫPdocPPM *This type is available only if Syn is built with the `"derive"` or `"full"`Pϫ doc   feature.* ϫ # The `*` operator for dereferencing& 00# The `*` operator for dereferencing& 00 ' The `!` operator for logical inversion* 00' The `!` operator for logical inversion* 00  The `-` operator for negation! 00 The `-` operator for negation! 00  ׫4doc441 The possible types that a Rust value could have.4 ϫdoc ϫPdocPPM *This type is available only if Syn is built with the `"derive"` or `"full"`P ϫҒ docҒ Ғ  feature.*Ғ ϫdoc ϫdoc # Syntax tree enum ϫdoc ϫ&doc&&# This type is a [syntax tree enum].& ϫdoc ϫ“.doc“.“.+ [syntax tree enum]: Expr#syntax-tree-enums“. ϫ # A fixed size array type: `[T; n]`.۔& 00# A fixed size array type: `[T; n]`.۔& 00 ܕ+ A bare function type: `fn(usize) -> bool`.. 00ܕ+ A bare function type: `fn(usize) -> bool`.. 00 . A type contained within invisible delimiters.1 00. A type contained within invisible delimiters.1 00 D An `impl Bound1 + Bound2 + Bound3` type where `Bound` is a trait orΖG a lifetime. 00D An `impl Bound1 + Bound2 + Bound3` type where `Bound` is a trait orΖG a lifetime. 00 @ Indication that a type should be inferred by the compiler: `_`.ٗC 00@ Indication that a type should be inferred by the compiler: `_`.ٗC 00  A macro in the type position.! 00 A macro in the type position.! 00  The never type: `!`. 00 The never type: `!`. 00 3 A parenthesized type equivalent to the inner type.6 003 A parenthesized type equivalent to the inner type.6 00 < A path like `std::slice::Iter`, optionally qualified with a?5 self-type as in ` as SomeTrait>::Associated`.8 00< A path like `std::slice::Iter`, optionally qualified with a?5 self-type as in ` as SomeTrait>::Associated`.8 00  , A raw pointer type: `*const T` or `*mut T`./ 00 , A raw pointer type: `*const T` or `*mut T`./ 00 œ* A reference type: `&'a T` or `&'a mut T`.- 00œ* A reference type: `&'a T` or `&'a mut T`.- 00̜ ' A dynamically sized slice type: `[T]`.* 00' A dynamically sized slice type: `[T]`.* 00 B A trait object type `Bound1 + Bound2 + Bound3` where `Bound` is aE trait or a lifetime. 00B A trait object type `Bound1 + Bound2 + Bound3` where `Bound` is aE trait or a lifetime. 00 # A tuple type: `(A, B, C, String)`.ɞ& 00# A tuple type: `(A, B, C, String)`.ɞ& 00 ϟ0 Tokens in type position not interpreted by Syn.3 00ϟ0 Tokens in type position not interpreted by Syn.3 00؟  doc hidden 00 doc hidden 00      00     00     00     00     11     11     11     11     11     11     11     11     11     11 ڨ   = 1 1 ׫ߨ&docߨ&ߨ&# A fixed size array type: `[T; n]`.ߨ& ϫdoc ϫGdocGGD *This type is available only if Syn is built with the `"derive"` orG ϫީdocީީ `"full"` feature.*ީ ϫ !   ѫ  ׫.doc..+ A bare function type: `fn(usize) -> bool`.. ϫdoc ϫGdocGGD *This type is available only if Syn is built with the `"derive"` orG ϫdoc `"full"` feature.* ϫ % $    ϯ,    ׫1doc11. A type contained within invisible delimiters.1 ϫdoc ϫGdocGGD *This type is available only if Syn is built with the `"derive"` orG ϫdoc `"full"` feature.* ϫ    ׫ɳGdocɳGɳGD An `impl Bound1 + Bound2 + Bound3` type where `Bound` is a trait orɳG ϫdoc a lifetime. ϫdoc ϫGdocGGD *This type is available only if Syn is built with the `"derive"` orG ϫdoc `"full"` feature.* ϫ  1  ׫CdocCC@ Indication that a type should be inferred by the compiler: `_`.C ϫŷdocŷŷŷ ϫͷGdocͷGͷGD *This type is available only if Syn is built with the `"derive"` orͷG ϫdoc `"full"` feature.* ϫ   ׫ݹ!docݹ!ݹ! A macro in the type position.ݹ! ϫdoc ϫGdocGGD *This type is available only if Syn is built with the `"derive"` orG ϫ׺doc׺׺ `"full"` feature.*׺ ϫ ߻  ׫doc The never type: `!`. ϫdoc ϫGdocGGD *This type is available only if Syn is built with the `"derive"` orG ϫdoc `"full"` feature.* ϫ   ׫6doc663 A parenthesized type equivalent to the inner type.6 ϫdoc ϫGdocGGD *This type is available only if Syn is built with the `"derive"` orG ϫȿdocȿȿ `"full"` feature.*ȿ ϫ    ׫?doc??< A path like `std::slice::Iter`, optionally qualified with a? ϫ8doc885 self-type as in ` as SomeTrait>::Associated`.8 ϫdoc ϫGdocGGD *This type is available only if Syn is built with the `"derive"` orG ϫdoc `"full"` feature.* ϫ    ׫/doc//, A raw pointer type: `*const T` or `*mut T`./ ϫdoc ϫGdocGGD *This type is available only if Syn is built with the `"derive"` orG ϫdoc `"full"` feature.* ϫ  & #   ׫-doc--* A reference type: `&'a T` or `&'a mut T`.- ϫdoc ϫGdocGGD *This type is available only if Syn is built with the `"derive"` orG ϫdoc `"full"` feature.* ϫ   #   ׫*doc*ŀ*' A dynamically sized slice type: `[T]`.* ϫdocǀ ϫGdocGɀGD *This type is available only if Syn is built with the `"derive"` orG ϫdocˀ `"full"` feature.* ϫ !   ׫EdocE׀EB A trait object type `Bound1 + Bound2 + Bound3` where `Bound` is aE ϫdocـ trait or a lifetime. ϫdocۀ ϫGdocG݀GD *This type is available only if Syn is built with the `"derive"` orG ϫdoc߀ `"full"` feature.* ϫ " 1  ׫&doc&&# A tuple type: `(A, B, C, String)`.& ϫdoc ϫGdocGGD *This type is available only if Syn is built with the `"derive"` orG ϫdoc `"full"` feature.* ϫ  &  ׫5doc552 The binary interface of a function: `extern "C"`.5 ϫdoc ϫPdocPPM *This type is available only if Syn is built with the `"derive"` or `"full"`P ϫ doc   feature.* ϫ    ׫GdocGGD An argument in a function type: the `usize` in `fn(usize) -> bool`.G ϫdoc ϫPdocPPM *This type is available only if Syn is built with the `"derive"` or `"full"`P ϫ doc   feature.* ϫ  $   ׫0doc00- The variadic argument of a foreign function.0 ϫdoc ϫ doc   ```rust ϫdoc # struct c_char; ϫdoc # struct c_int; ϫdoc # ϫdoc extern "C" { ϫ7doc7ā74 fn printf(format: *const c_char, ...) -> c_int;7 ϫ,doc,Ɓ,) // ^^^, ϫdocȁ } ϫdocʁ ``` ϫdoć ϫPdocP΁PM *This type is available only if Syn is built with the `"derive"` or `"full"`P ϫ doc Ё  feature.* ϫ    ׫(doc(݁(% Return type of a function signature.( ϫdoc߁ ϫPdocPPM *This type is available only if Syn is built with the `"derive"` or `"full"`P ϫ doc   feature.* ϫ  Return type is not specified.!B Functions default to `()` and closures default to type inference.E 11 Return type is not specified.!B Functions default to `()` and closures default to type inference.E 11 A particular type is returned." 11 A particular type is returned." 11   ׫PdocP݆PM A path at which a named item is exported (e.g. `std::collections::HashMap`).P ϫdoc߆ ϫPdocPPM *This type is available only if Syn is built with the `"derive"` or `"full"`P ϫ doc   feature.* ϫ % 1  ׫IdocIIF A segment of a path together with any path arguments on that segment.I ϫdoc ϫPdocPPM *This type is available only if Syn is built with the `"derive"` or `"full"`P ϫ doc   feature.* ϫ    ׫AdocAA> Angle bracketed or parenthesized arguments of a path segment.A ϫdoc ϫPdocPPM *This type is available only if Syn is built with the `"derive"` or `"full"`P ϫ doc   feature.* ϫdoc ϫdoc ## Angle bracketed ϫdoc ϫ/doc//, The `<'a, T>` in `std::slice::iter<'a, T>`./ ϫdoc ϫdoc ## Parenthesized ϫdoc ϫ)doc))& The `(A, B) -> C` in `Fn(A, B) -> C`.) ϫ  11 11., The `<'a, T>` in `std::slice::iter<'a, T>`./ 11., The `<'a, T>` in `std::slice::iter<'a, T>`./ 11 ,& The `(A, B) -> C` in `Fn(A, B) -> C`.) 11,& The `(A, B) -> C` in `Fn(A, B) -> C`.) 11  ׫BdocBB? An individual generic argument, like `'a`, `T`, or `Item = T`.B ϫdoc ϫPdocPPM *This type is available only if Syn is built with the `"derive"` or `"full"`P ϫ doc   feature.* ϫ  A lifetime argument. 11 A lifetime argument. 11   A type argument. 11  A type argument. 11 C A binding (equality constraint) on an associated type: the `Item =F u8` in `Iterator`.! 11C A binding (equality constraint) on an associated type: the `Item =F u8` in `Iterator`.! 11 5 An associated type bound: `Iterator`.8 115 An associated type bound: `Iterator`.8 11  / A const expression. Must be inside of a block.2A NOTE: Identity expressions are represented as Type arguments, asD* they are indistinguishable syntactically.- 11 / A const expression. Must be inside of a block.2A NOTE: Identity expressions are represented as Type arguments, asD* they are indistinguishable syntactically.- 11  ׫LdocL̇LI Angle bracketed arguments of a path segment: the `` in `HashMap`. ϫdocЇ ϫPdocP҇PM *This type is available only if Syn is built with the `"derive"` or `"full"`P ϫ doc ԇ  feature.* ϫ $  0   ׫GdocGGD A binding (equality constraint) on an associated type: `Item = u8`.G ϫdoc ϫPdocPPM *This type is available only if Syn is built with the `"derive"` or `"full"`P ϫ doc   feature.* ϫ   π  ׫8doc885 An associated type bound: `Iterator`.8 ϫdoc ϫPdocPPM *This type is available only if Syn is built with the `"derive"` or `"full"`P ϫ doc   feature.* ϫ   Ѓ1  ׫JdocJJG Arguments of a function path segment: the `(A, B) -> C` in `Fn(A,B) ->J ϫdoc C`. ϫdoc ϫPdocPPM *This type is available only if Syn is built with the `"derive"` or `"full"`P ϫօ docօ օ  feature.*օ ϫ  ' `(A, B)`  `C`և  ׫AdocAA> The explicit Self type in a qualified path: the `T` in `::fmt`.߈ ϫdoc ϫKdocKKH The actual path, including the trait and the associated item, is storedK ϫωKdocωKˆωKH separately. The `position` field represents the index of the associatedωK ϫ'doc'Ĉ'$ item qualified with this Self type.' ϫˊdocˊƈˊˊ ϫӊ docӊ Ȉӊ  ```textӊ ϫ+doc+ʈ+( as a::b::Trait>::AssociatedItem+ ϫdoc̈ ^~~~~~ ~~~~~~~~~~~~~~^ ϫdocΈ ty position = 3 ϫ֋doc֋Ј֋֋ ϫދdocދ҈ދ >::AssociatedItemދ ϫdocԈ ^~~~~~ ^ ϫdocֈ ty position = 0 ϫdoc؈ ``` ϫdocڈ ϫƌPdocƌP܈ƌPM *This type is available only if Syn is built with the `"derive"` or `"full"`ƌP ϫ doc ވ  feature.* ϫ   Ҏ    cfg feature clone-impls  rustfmtskipallow clippy clone_on_copy  clippy expl_impl_clone_on_copyA 2cfgŋ any featurederive featurefull1222cfg any featurederive featurefull1222cfgф anyЄ featurederive featureȄfullʄ12Ncfgօ anyՅ featurederiveÅ featureŅͅfullυ1222ʇ→cfg→冒 any憒醒 featureꆒderive featurefull12釒22cfgΌ any featurederive featurefull1222cfgÌ팒 anyČnj쌒 featureȌЌderiveҌڌ feature܌䌒full挒12Jcfgč anyōȍ퍒 featureɍэderiveӍۍ featureݍ卒full獒12Ď2͎2ޏcfg any featurederive featurefull1222cfgߓ anyޓ feature“deriveē̓ featureΓ֓fullؓ122ǔ2cfgэꖒ anyĖ閒 featureŖ͖deriveϖז featureٖᖒfull㖒12ŗ2Η2cfg⚒ anyᚒ featureŚderiveǚϚ featureњٚfullۚ122ƛ2ԝcfg featurederive222ٟcfgٟܟ featureݟ埒derive矒ן2Ƞ2Ѡ2뢒cfg featurederive222ݤcfgݤऒ featureᤒ餒derive뤒ۤ2ͥ2֥2릒cfg릒ŏ feature漣derive馒2ݧ2槒2̪䩒cfg䩒穒 any詒멒 feature쩒derive featurefull⩒12檒2朗2ӒӒcfgӒӒӒ anyӒӒӒ featureӒӒderiveӒӒ featureӒӒfullӒӒ12Ԓ2Ԓ2ݒݒcfgݒݒݒ anyݒݒݒ featureݒݒderiveݒݒ featureݒݒfullݒݒ12ޒ2ޒ2ߒcfgߒؑߒ anyߒߒ featureߒderive featurefullߒ1222cfg any featurederive featurefull1222cfg any featurederive featurefull1222cfgВ any featurederive featurefull1222߉cfg any featurederive featurefull1222cfg‹싓 anyËƋ닓 featureNjϋderiveыً featureۋ㋓full勓12Ō2Ό2cfg¦ any featurederive featurefull1222cfgғװ anyְ featurederiveİ featureưΰfullа1222ƹ޸cfg޸ḓ any⸓帓 feature渓derive featurefullܸ12⹓2빓2˻cfg˻λ anyϻһ featureӻۻderiveݻ廓 feature结ﻓfullɻ12Լ2ݼ2ھcfgΔ any featurederive featurefull1222֓ՓcfgՓՓ֓ anyՓՓՓ featureՓՓderiveՓՓ featureՓՓfullՓՓ12֓2֓2ޓݓcfgݓݓݓ anyݓݓݓ featureݓݓderiveݓݓ featureݓݓfullݓݓ12ޓ2ޓ2cfg any featurederive featurefull1222cfg any featurederive featurefull1222ӿ뾔cfg뾔 anyヤ featurederive featurefull龔1222”2”2”2Ɣ2Ɣ2ǔ2˔ʔcfgʔʔ˔ any˔˔˔ feature˔˔derive˔˔ feature˔˔full˔ʔ12˔2̔2Δ͔cfg͔͔Δ any͔͔Δ feature͔͔derive͔Δ featureΔΔfullΔ͔12Δ2ϔ2ҔєcfgєӘєє anyєєє featureєєderiveєє featureєєfullєє12Ҕ2Ҕ2ԔӔcfgӔӔԔ anyӔӔԔ featureӔӔderiveӔӔ featureԔԔfullԔӔ12Ԕ2Ԕ2ה֔cfg֔֔ה any֔֔ה feature֔֔derive֔֔ feature֔֔full֔֔12ה2ה2ڔٔcfgؙٔٔٔ anyٔٔٔ featureٔٔderiveٔٔ featureٔٔfullٔٔ12ڔ2ڔ2ߔޔcfgޔޔߔ anyޔޔߔ featureޔޔderiveޔޔ featureޔޔfullޔޔ12ߔ2ߔ2cfg any featurederive featurefull1222cfgǚ␕ anyᐕ featureŐderiveǐϐ featureѐِfullې1222ؒcfgؒے anyܒߒ feature蒕derive꒕ featurefull֒12㓕2쓕2cfg any featurederive featurefull1222cfg䘕 any㘕 featureǘderiveɘј featureӘۘfullݘ122ə2뛕cfgӛ any featurederive featurefull1222͞坕cfg坕蝕 any靕읕 feature흕derive featurefull㝕1222ڡcfg any featurederive featurefull1222橕cfg˜ any featurederive featurefull1222ⴕcfg any featurederive featurefull1222ᷕ#cfg any featurederive featurefull12︕Wcfg any featurederive featurefull1222˕˕cfg˕˕˕ any˕˕˕ feature˕˕derive˕˕ feature˕˕full˕˕12̕3̕3ԕӕcfgӕӕԕ anyӕӕԕ featureӕӕderiveӕӕ featureӕӕfullӕӕ12ԕ3ԕ3ו֕cfg֕֕֕ any֕֕֕ feature֕֕derive֕֕ feature֕֕full֕֕12ו3ו3ەڕcfgڕڕە anyڕڕە featureڕەderiveەە featureەەfullەڕ12ە3ܕ3ޕݕcfgݕݕݕ anyݕݕݕ featureݕݕderiveݕݕ featureݕݕfullݕݕ12ޕ3ޕ3ߕcfgߕߕߕ anyߕߕߕ featureߕߕderiveߕߕ featureߕߕfullߕߕ1233cfg any featurederive featurefull1233cfg֠ any featurederive featurefull1233cfg any featurederive featurefull1233cfg any featurederive featurefull1233cfgˡ any featurederive featurefull1233cfg any featurederive featurefull1233cfg any featurederive featurefull1233cfg any featurederive featurefull1233cfgӢ any featurederive featurefull1233cfg any featurederive featurefull1233cfg any featurederive featurefull1233cfg any featurederive featurefull12Icfg any featurederive featurefull1233cfg捖 any卖 featureɍderiveˍӍ featureՍݍfullߍ123Ȏ3̏cfg̏ڣϏ anyЏӏ featureԏ܏deriveޏ揖 feature菖fullʏ12ѐ3ڐ3cfg꒖ anyĒ钖 featureŒ͒deriveϒג featureْᒖfull㒖12Ó3̓3cfg䔖 any㔖 featureǔderiveɔє featureӔ۔fullݔ123Ǖ3cfgܖ anyۖ featurederiveɖ feature˖ӖfullՖ123×3cfg֤ᙖ any featureęderiveƙΙ featureЙؙfullڙ123Ś3cfg any featurederive featurefull1233ğcfgğǟ anyȟ˟ feature̟ԟderive֟ޟ feature蟖fullꟖŸ12Р3٠3ѭ doc hidden  macro_export ­ rustfmt­skip˭) )     ) )   proc_macro_ _ proc_macro2_ _ unicode_xid_ _quote`` parenthesized @bracedA bracketed BIdentaaIdenta a AttrStyleb *b Attributeb )b AttributeArgsc c Metac*cMetaListc*c MetaNameValuec *c NestedMetac *c Fieldd*dFieldsd*d FieldsNamedd *d FieldsUnnamedd *d Variante*eVisCratee*e VisPublice *e VisRestrictede *e Visibilitye *e Exprg*g ExprArrayg ,g ExprAssigng ,g ExprAssignOpg ,g ExprAsynch ,h ExprAwaith ,h ExprBinaryh ,h ExprBlockh ,h ExprBoxh,h ExprBreakh ,h ExprCallh,hExprCasth,h ExprClosureh ,h ExprContinueh ,h ExprFieldh ,h ExprForLoopi ,i ExprGroupi ,i ExprIfi,i ExprIndexi -i ExprLeti-iExprLiti-iExprLoopi-i ExprMacroi -i ExprMatchi -i ExprMethodCalli-i ExprPareni -i ExprPathj-j ExprRangej -j ExprReferencej -j ExprRepeatj -j ExprReturnj -j ExprStructj -j ExprTryj-j ExprTryBlockj -j ExprTuplej -j ExprTypej-j ExprUnaryj -j ExprUnsafek -k ExprWhilek -k ExprYieldk -k Indexk-kMemberk-kBoundLifetimesl.l ConstParaml .l GenericParaml -l Genericsl-l LifetimeDefl .l PredicateEqm .m PredicateLifetimem.m PredicateTypem .m TraitBoundm .m TraitBoundModifierm.m TypeParamm .m TypeParamBoundm.m WhereClausem .m WherePredicaten.n ImplGenericso o Turbofisho o TypeGenericso o Lifetimeu uLifetimeu uLitu.uLitu uLitBoolu/uLitBoolu uLitByteu/uLitByteu /u LitByteStru /u LitByteStru /u LitCharu/uLitCharu /uLitFloatu/uLitFloatu /uLitIntu/uLitIntu /uLitStru/uLitStru /uStrStylev/vMacrow/wMacroDelimiterw/wDatax/xDataEnumx/x DataStructx /x DataUnionx /x DeriveInputx /x BinOpy/yUnOpy0yAbi{1{ BareFnArg{ 1{ ReturnType{ 1{ Type{0{ TypeArray{ 1{ TypeBareFn{ 1{ TypeGroup| 1| TypeImplTrait| 1| TypeInfer| 1| TypeMacro| 1| TypeNever| 1| TypeParen| 1| TypePath|1|TypePtr|1| TypeReference| 1| TypeSlice| 1| TypeTraitObject}1} TypeTuple} 1} Variadic}1}AngleBracketedGenericArguments1Bindingڀ1ڀ Constraint 2 GenericArgument1ParenthesizedGenericArguments2Path1 PathArguments 1 PathSegment 1 QSelfŁ2Ł parse_quote parse_macro_inputcustom_keywordimpl_parse_for_custom_keyword !impl_to_tokens_for_custom_keyword!impl_clone_for_custom_keyword$impl_extra_traits_for_custom_keyword$Ocustom_punctuation҉ʼn!impl_parse_for_custom_punctuationǒ!%impl_to_tokens_for_custom_punctuation%!impl_clone_for_custom_punctuation!(impl_extra_traits_for_custom_punctuation(۪_custom_punctuation_reprcustom_punctuation_unexpectedջȻ<stringify_punctżcprivateprivateErrorResultToken)*custom_punctuation_lenޭ3ѭ "C `aResult ParseBuffer tokenC  Delimiter  Spanǭǭ!%)-147:=#$!"'a "'a'(%&'a &'a+,)*'a *'a/0-.'a)ױ.'a3 ! input  12'a 2'a!2'a6,,,ǰ,% input  45'a 5'a%5'a9,,,ǰ,)input  78'a 8'a)8'a<,,,ǰ,- input  :;'a ;'a-;'a?,,,ʰ,input delimiter  =>'a >'a ,aWithSpanCCursorCResultCLifetimeπ CLifetimeπ CLit.CLit CLitBool/CLitBool CLitByte/CLitByte /C LitByteStr / C LitByteStr / CLitChar/CLitChar /CLitFloat/CLitFloat /CLitInt/CLitInt /CLitStrā/āCLitStrā /āC lookahead CParseC ParseStream  C IntoSpansԂ ǂCIdentCSpanC TokenStream C Delimiter  CLiteralCPunct„„C TokenTreeɄ Ʉ CToTokensuCTokenStreamExtCDerefՆՆCDerefMut܆܆C$DGJMNPQRTUWXZ[]^`acdfgilmpsvy| !!!!!!!!!!!!!!!!!!!!!!!!!!!!$$$$$$$!!!!$$$$$!!!!$$$$$$$!!!!$$$$$!!!!$$$$$!!!!$$$$$$$!!!!%%%%%%%!!!!%%%%%%%!!!!%%%%%!!!"%%%%%%%""""%%%%%""""%%%%%%%""""%%%%%%%""""%%%%%""""%%%&&&&""""&&&&&&&""""&&&&&""""&&&&&""""&&&&&""""&&&&&&&""""&&&&&""""&&&&&""""&&&&&&&""""&&&''""""'''''''"""#'''''####'''''####'''''''####'''''####'''''####'''''''####'''''''####'''((####(((((####(((((((####(((((####(((((####(((((((####(((((####(((((####(((((###$((((($$$$(()))))$$$$)))))))$$$$)))))$$$$)))))))$$$$))))))))))))))))))))))))))))cursor  ڴ,  ԉSpanՋ   Ȍ cursorҌpeek ڴ, כ cursor  ڴ, , ÿ ÿ ÿ ÿ cursorŝ  ÿ ڴ, ÿ ,u,selftokens  , ׁ ,,input  ,,,cursor  ڴ, ,,,  cursor  ڴ, ,  cursor  ڴ, ,  cursor  ڴ, ,,,cursor  ڴ, ,CursorErrorResult ParseStream  FromSpans SpacingSpan,,,, ڴ,inputtoken    cursortoken ڴ,, 3inputtoken ,3,,,,ڴ, inputtokenspans! , ! cursortoken ڴ,, Delimiter  GroupIdentPunctSpacingSpan TokenStream  TokenStreamExtsspanstokens     ׁ sspantokens , , sspantokensf$ , ,aCursor lookahead Parse ParseStream  ResultToken UnicodeXID Ident)))))marker   ident      input     cursor  ڴ, ,  ,token  , symbol  ,b PunctuatedΏ  TokenStream ޏiter# Parse ParseBuffer   ParseStreamː ː ParserؐؐResultPair proc_macro_  proc_macro2_  unicode_xid_ quote`macros`groupa parenthesized @bracedA bracketed BtokenaCidentaIdentaIdenta attrbbigintcdatadexpregenericsklifetimetlitu macv derivew opy ty{ pathbufferext punctuated  parse_quote  parse_quote parse_macro_input؆parse_macro_inputspannedgen̈ __private custom_keywordcustom_keywordimpl_parse_for_custom_keyword!impl_to_tokens_for_custom_keyword!impl_clone_for_custom_keyword$impl_extra_traits_for_custom_keyword$custom_punctuationcustom_punctuation҉!impl_parse_for_custom_punctuationǒ!%impl_to_tokens_for_custom_punctuation%!impl_clone_for_custom_punctuation!(impl_extra_traits_for_custom_punctuation(custom_punctuation_reprcustom_punctuation_unexpectedջstringify_punctżsealedspanthread lookahead parseverbatimprintrustdoc_workarounderrorparse parse2  parse_str  ImplGenericso  Turbofisho  TypeGenericso Lifetimeu Lifetimeu Litu LitBoolu privateprivateErrorToken)custom_punctuation_lenޭ3Fieldd*Fieldsd* FieldsNamedd * FieldsUnnamedd *Variante*VisCratee* VisPublice * VisRestrictede * Visibilitye *Exprg* ExprArrayg , ExprAssigng , ExprAssignOpg , ExprAsynch , ExprAwaith , ExprBinaryh , ExprBlockh ,ExprBoxh, ExprBreakh ,ExprCallh,ExprCasth, ExprClosureh , ExprContinueh , ExprFieldh , ExprForLoopi , ExprGroupi ,ExprIfi, ExprIndexi -ExprLeti-ExprLiti-ExprLoopi- ExprMacroi - ExprMatchi -ExprMethodCalli- ExprPareni -ExprPathj- ExprRangej - ExprReferencej - ExprRepeatj - ExprReturnj - ExprStructj -ExprTryj- ExprTryBlockj - ExprTuplej -ExprTypej- ExprUnaryj - ExprUnsafek - ExprWhilek - ExprYieldk -Indexk-Memberk-BoundLifetimesl. ConstParaml . GenericParaml -Genericsl- LifetimeDefl . PredicateEqm .PredicateLifetimem. PredicateTypem . TraitBoundm .TraitBoundModifierm. TypeParamm .TypeParamBoundm. WhereClausem .WherePredicaten.Litu.LitBoolu/LitByteu/LitByteu / LitByteStru / LitByteStru /LitCharu/LitCharu /LitFloatu/LitFloatu /LitIntu/LitIntu /LitStru/LitStru /StrStylev/Macrow/MacroDelimiterw/Datax/DataEnumx/ DataStructx / DataUnionx / DeriveInputx /BinOpy/UnOpy0Abi{1 BareFnArg{ 1 ReturnType{ 1Type{0 TypeArray{ 1 TypeBareFn{ 1 TypeGroup| 1 TypeImplTrait| 1 TypeInfer| 1 TypeMacro| 1 TypeNever| 1 TypeParen| 1TypePath|1TypePtr|1 TypeReference| 1 TypeSlice| 1TypeTraitObject}1 TypeTuple} 1Variadic}1AngleBracketedGenericArguments1Bindingڀ1 Constraint 2GenericArgument1ParenthesizedGenericArguments2Path1 PathArguments 1 PathSegment 1QSelfŁ2/)************self    self  ÿ -ÿ selfparser -input  4 input  -վsegment   attr  -8 attrinput 'a  'a'a- self       4  ۇ 'a)9--9 'aself  'a-selfʈ Ĉ 'a-   'aDZ 7   self  'a   'aself  'a  -attr  -attrÌ  -ƎIdentExtParse ParseStream  Result PunctuatedΏ ؎ TokenStream ؎iter#؎ ParseBuffer ؎Parserؐ؎Pair؎expected_parentheses ؎ enter_args ؎ AttributeArgs ؎ FilterAttrsۇ ؎parsingƎ؎printing؎ proc_macro_ ؎ proc_macro2_ ؎ unicode_xid_ ؎quote`؎macros`؎groupa؎ parenthesized @؎bracedA؎ bracketed B؎tokenaC؎identa؎Identa؎Identa ؎attrb؎bigintc؎datad؎expre؎genericsk؎lifetimet؎litu ؎macv ؎derivew ؎opy ؎ty{ ؎path؎buffer؎ext؎ punctuated ؎ parse_quote ؎ parse_quote ؎parse_macro_input؆؎parse_macro_input؎spanned؎gen̈؎ __private ؎custom_keyword؎custom_keyword؎impl_parse_for_custom_keyword؎!impl_to_tokens_for_custom_keyword!؎impl_clone_for_custom_keyword؎$impl_extra_traits_for_custom_keyword$؎custom_punctuation؎custom_punctuation҉؎!impl_parse_for_custom_punctuationǒ!؎%impl_to_tokens_for_custom_punctuation%؎!impl_clone_for_custom_punctuation!؎(impl_extra_traits_for_custom_punctuation(؎custom_punctuation_repr؎custom_punctuation_unexpectedջ؎stringify_punctż؎sealed؎span؎thread؎ lookahead ؎parse؎verbatim؎print؎rustdoc_workaround؎error؎parse ؎parse2 ؎ parse_str ؎ ImplGenericso ؎ Turbofisho ؎ TypeGenericso ؎Lifetimeu ؎Lifetimeu ؎Litu ؎LitBoolu ؎private؎private؎Error؎Token)؎ Attribute )؎ AttrStyle *؎Meta*؎MetaList*؎ MetaNameValue *؎ NestedMeta *؎custom_punctuation_lenޭ3؎Fieldd*؎Fieldsd*؎ FieldsNamedd *؎ FieldsUnnamedd *؎Variante*؎VisCratee*؎ VisPublice *؎ VisRestrictede *؎ Visibilitye *؎Exprg*؎ ExprArrayg ,؎ ExprAssigng ,؎ ExprAssignOpg ,؎ ExprAsynch ,؎ ExprAwaith ,؎ ExprBinaryh ,؎ ExprBlockh ,؎ExprBoxh,؎ ExprBreakh ,؎ExprCallh,؎ExprCasth,؎ ExprClosureh ,؎ ExprContinueh ,؎ ExprFieldh ,؎ ExprForLoopi ,؎ ExprGroupi ,؎ExprIfi,؎ ExprIndexi -؎ExprLeti-؎ExprLiti-؎ExprLoopi-؎ ExprMacroi -؎ ExprMatchi -؎ExprMethodCalli-؎ ExprPareni -؎ExprPathj-؎ ExprRangej -؎ ExprReferencej -؎ ExprRepeatj -؎ ExprReturnj -؎ ExprStructj -؎ExprTryj-؎ ExprTryBlockj -؎ ExprTuplej -؎ExprTypej-؎ ExprUnaryj -؎ ExprUnsafek -؎ ExprWhilek -؎ ExprYieldk -؎Indexk-؎Memberk-؎BoundLifetimesl.؎ ConstParaml .؎ GenericParaml -؎Genericsl-؎ LifetimeDefl .؎ PredicateEqm .؎PredicateLifetimem.؎ PredicateTypem .؎ TraitBoundm .؎TraitBoundModifierm.؎ TypeParamm .؎TypeParamBoundm.؎ WhereClausem .؎WherePredicaten.؎Litu.؎LitBoolu/؎LitByteu/؎LitByteu /؎ LitByteStru /؎ LitByteStru /؎LitCharu/؎LitCharu /؎LitFloatu/؎LitFloatu /؎LitIntu/؎LitIntu /؎LitStru/؎LitStru /؎StrStylev/؎Macrow/؎MacroDelimiterw/؎Datax/؎DataEnumx/؎ DataStructx /؎ DataUnionx /؎ DeriveInputx /؎BinOpy/؎UnOpy0؎Abi{1؎ BareFnArg{ 1؎ ReturnType{ 1؎Type{0؎ TypeArray{ 1؎ TypeBareFn{ 1؎ TypeGroup| 1؎ TypeImplTrait| 1؎ TypeInfer| 1؎ TypeMacro| 1؎ TypeNever| 1؎ TypeParen| 1؎TypePath|1؎TypePtr|1؎ TypeReference| 1؎ TypeSlice| 1؎TypeTraitObject}1؎ TypeTuple} 1؎Variadic}1؎AngleBracketedGenericArguments1؎Bindingڀ1؎ Constraint 2؎GenericArgument1؎ParenthesizedGenericArguments2؎Path1؎ PathArguments 1؎ PathSegment 1؎QSelfŁ2؎2 input̏attrs  -,input̑  inputȔ  -input     input  -  input     inputˣ ţ    inputڥ ԥ  ȩpathީinput  -pathجinput  - pathinput  - TokenStream ToTokensu PunctuatedΏ iter#Parse ParseBuffer  ParseStreamː ParserؐPairexpected_parentheses  enter_args  AttributeArgs  FilterAttrsۇ parsingƎprinting proc_macro_  proc_macro2_  unicode_xid_ quote`macros`groupa parenthesized @bracedA bracketed BtokenaCidentaIdentaIdenta attrbbigintcdatadexpregenericsklifetimetlitu macv derivew opy ty{ pathbufferext punctuated  parse_quote  parse_quote parse_macro_input؆parse_macro_inputspannedgen̈ __private custom_keywordcustom_keywordimpl_parse_for_custom_keyword!impl_to_tokens_for_custom_keyword!impl_clone_for_custom_keyword$impl_extra_traits_for_custom_keyword$custom_punctuationcustom_punctuation҉!impl_parse_for_custom_punctuationǒ!%impl_to_tokens_for_custom_punctuation%!impl_clone_for_custom_punctuation!(impl_extra_traits_for_custom_punctuation(custom_punctuation_reprcustom_punctuation_unexpectedջstringify_punctżsealedspanthread lookahead parseverbatimprintrustdoc_workarounderrorparse parse2  parse_str  ImplGenericso  Turbofisho  TypeGenericso Lifetimeu Lifetimeu Litu LitBoolu privateprivateErrorResultToken) Attribute ) AttrStyle *Meta*MetaList* MetaNameValue * NestedMeta *custom_punctuation_lenޭ3Fieldd*Fieldsd* FieldsNamedd * FieldsUnnamedd *Variante*VisCratee* VisPublice * VisRestrictede * Visibilitye *Exprg* ExprArrayg , ExprAssigng , ExprAssignOpg , ExprAsynch , ExprAwaith , ExprBinaryh , ExprBlockh ,ExprBoxh, ExprBreakh ,ExprCallh,ExprCasth, ExprClosureh , ExprContinueh , ExprFieldh , ExprForLoopi , ExprGroupi ,ExprIfi, ExprIndexi -ExprLeti-ExprLiti-ExprLoopi- ExprMacroi - ExprMatchi -ExprMethodCalli- ExprPareni -ExprPathj- ExprRangej - ExprReferencej - ExprRepeatj - ExprReturnj - ExprStructj -ExprTryj- ExprTryBlockj - ExprTuplej -ExprTypej- ExprUnaryj - ExprUnsafek - ExprWhilek - ExprYieldk -Indexk-Memberk-BoundLifetimesl. ConstParaml . GenericParaml -Genericsl- LifetimeDefl . PredicateEqm .PredicateLifetimem. PredicateTypem . TraitBoundm .TraitBoundModifierm. TypeParamm .TypeParamBoundm. WhereClausem .WherePredicaten.Litu.LitBoolu/LitByteu/LitByteu / LitByteStru / LitByteStru /LitCharu/LitCharu /LitFloatu/LitFloatu /LitIntu/LitIntu /LitStru/LitStru /StrStylev/Macrow/MacroDelimiterw/Datax/DataEnumx/ DataStructx / DataUnionx / DeriveInputx /BinOpy/UnOpy0Abi{1 BareFnArg{ 1 ReturnType{ 1Type{0 TypeArray{ 1 TypeBareFn{ 1 TypeGroup| 1 TypeImplTrait| 1 TypeInfer| 1 TypeMacro| 1 TypeNever| 1 TypeParen| 1TypePath|1TypePtr|1 TypeReference| 1 TypeSlice| 1TypeTraitObject}1 TypeTuple} 1Variadic}1AngleBracketedGenericArguments1Bindingڀ1 Constraint 2GenericArgument1ParenthesizedGenericArguments2Path1 PathArguments 1 PathSegment 1QSelfŁ22uselftokens -, u selftokens   , u selfݸtokensҸ   ,c AddAssign   MulAssign  <4 . .self   .Ԛ-self   ...self increment  ...selfbase .d Punctuated  proc_macro_  proc_macro2_  unicode_xid_ quote`macros`groupa parenthesized @bracedA bracketed BtokenaCidentaIdentaIdenta attrb AttributeArgsc bigintcdatadexpregenericsklifetimetlitu macv derivew opy ty{ pathbufferext punctuated  parse_quote  parse_quote parse_macro_input؆parse_macro_inputspannedgen̈ __private custom_keywordcustom_keywordimpl_parse_for_custom_keyword!impl_to_tokens_for_custom_keyword!impl_clone_for_custom_keyword$impl_extra_traits_for_custom_keyword$custom_punctuationcustom_punctuation҉!impl_parse_for_custom_punctuationǒ!%impl_to_tokens_for_custom_punctuation%!impl_clone_for_custom_punctuation!(impl_extra_traits_for_custom_punctuation(custom_punctuation_reprcustom_punctuation_unexpectedջstringify_punctżsealedspanthread lookahead parseverbatimprintrustdoc_workarounderrorparse parse2  parse_str  ImplGenericso  Turbofisho  TypeGenericso Lifetimeu Lifetimeu Litu LitBoolu privateprivateErrorResultToken)custom_punctuation_lenޭ3 AttrStyleb * Attributeb )Metac*MetaListc* MetaNameValuec * NestedMetac *Exprg* ExprArrayg , ExprAssigng , ExprAssignOpg , ExprAsynch , ExprAwaith , ExprBinaryh , ExprBlockh ,ExprBoxh, ExprBreakh ,ExprCallh,ExprCasth, ExprClosureh , ExprContinueh , ExprFieldh , ExprForLoopi , ExprGroupi ,ExprIfi, ExprIndexi -ExprLeti-ExprLiti-ExprLoopi- ExprMacroi - ExprMatchi -ExprMethodCalli- ExprPareni -ExprPathj- ExprRangej - ExprReferencej - ExprRepeatj - ExprReturnj - ExprStructj -ExprTryj- ExprTryBlockj - ExprTuplej -ExprTypej- ExprUnaryj - ExprUnsafek - ExprWhilek - ExprYieldk -Indexk-Memberk-BoundLifetimesl. ConstParaml . GenericParaml -Genericsl- LifetimeDefl . PredicateEqm .PredicateLifetimem. PredicateTypem . TraitBoundm .TraitBoundModifierm. TypeParamm .TypeParamBoundm. WhereClausem .WherePredicaten.Litu.LitBoolu/LitByteu/LitByteu / LitByteStru / LitByteStru /LitCharu/LitCharu /LitFloatu/LitFloatu /LitIntu/LitIntu /LitStru/LitStru /StrStylev/Macrow/MacroDelimiterw/Datax/DataEnumx/ DataStructx / DataUnionx / DeriveInputx /BinOpy/UnOpy0Abi{1 BareFnArg{ 1 ReturnType{ 1Type{0 TypeArray{ 1 TypeBareFn{ 1 TypeGroup| 1 TypeImplTrait| 1 TypeInfer| 1 TypeMacro| 1 TypeNever| 1 TypeParen| 1TypePath|1TypePtr|1 TypeReference| 1 TypeSlice| 1TypeTraitObject}1 TypeTuple} 1Variadic}1AngleBracketedGenericArguments1Bindingڀ1 Constraint 2GenericArgument1ParenthesizedGenericArguments2Path1 PathArguments 1 PathSegment 1QSelfŁ2-**************** self    *self    .self  .self  . 7 ..self    7 'a 7. 'a.'a.self  'a..7 'a 7. 'a.'a.self  'a..7IdentExt Speculative &Parse ParseStream  Result Punctuated parsingprintingIJ proc_macro_  proc_macro2_  unicode_xid_ quote`macros`groupa parenthesized @bracedA bracketed BtokenaCidentaIdentaIdenta attrb AttributeArgsc bigintcdatadexpregenericsklifetimetlitu macv derivew opy ty{ pathbufferext punctuated  parse_quote  parse_quote parse_macro_input؆parse_macro_inputspannedgen̈ __private custom_keywordcustom_keywordimpl_parse_for_custom_keyword!impl_to_tokens_for_custom_keyword!impl_clone_for_custom_keyword$impl_extra_traits_for_custom_keyword$custom_punctuationcustom_punctuation҉!impl_parse_for_custom_punctuationǒ!%impl_to_tokens_for_custom_punctuation%!impl_clone_for_custom_punctuation!(impl_extra_traits_for_custom_punctuation(custom_punctuation_reprcustom_punctuation_unexpectedջstringify_punctżsealedspanthread lookahead parseverbatimprintrustdoc_workarounderrorparse parse2  parse_str  ImplGenericso  Turbofisho  TypeGenericso Lifetimeu Lifetimeu Litu LitBoolu privateprivateErrorToken)Variant*Fields* FieldsNamed * FieldsUnnamed *Field* Visibility * VisPublic *VisCrate* VisRestricted *custom_punctuation_lenޭ3 AttrStyleb * Attributeb )Metac*MetaListc* MetaNameValuec * NestedMetac *Exprg* ExprArrayg , ExprAssigng , ExprAssignOpg , ExprAsynch , ExprAwaith , ExprBinaryh , ExprBlockh ,ExprBoxh, ExprBreakh ,ExprCallh,ExprCasth, ExprClosureh , ExprContinueh , ExprFieldh , ExprForLoopi , ExprGroupi ,ExprIfi, ExprIndexi -ExprLeti-ExprLiti-ExprLoopi- ExprMacroi - ExprMatchi -ExprMethodCalli- ExprPareni -ExprPathj- ExprRangej - ExprReferencej - ExprRepeatj - ExprReturnj - ExprStructj -ExprTryj- ExprTryBlockj - ExprTuplej -ExprTypej- ExprUnaryj - ExprUnsafek - ExprWhilek - ExprYieldk -Indexk-Memberk-BoundLifetimesl. ConstParaml . GenericParaml -Genericsl- LifetimeDefl . PredicateEqm .PredicateLifetimem. PredicateTypem . TraitBoundm .TraitBoundModifierm. TypeParamm .TypeParamBoundm. WhereClausem .WherePredicaten.Litu.LitBoolu/LitByteu/LitByteu / LitByteStru / LitByteStru /LitCharu/LitCharu /LitFloatu/LitFloatu /LitIntu/LitIntu /LitStru/LitStru /StrStylev/Macrow/MacroDelimiterw/Datax/DataEnumx/ DataStructx / DataUnionx / DeriveInputx /BinOpy/UnOpy0Abi{1 BareFnArg{ 1 ReturnType{ 1Type{0 TypeArray{ 1 TypeBareFn{ 1 TypeGroup| 1 TypeImplTrait| 1 TypeInfer| 1 TypeMacro| 1 TypeNever| 1 TypeParen| 1TypePath|1TypePtr|1 TypeReference| 1 TypeSlice| 1TypeTraitObject}1 TypeTuple} 1Variadic}1AngleBracketedGenericArguments1Bindingڀ1 Constraint 2GenericArgument1ParenthesizedGenericArguments2Path1 PathArguments 1 PathSegment 1QSelfŁ21*.inputՀ π .  input     input ߋ   inputattrs -..input  .inputҖ Ė .  inputݙ י   input  .input  .IJTokensOrDefaultTokensOrDefault TokenStream ToTokensuTokenStreamExtijij Punctuated ײparsingײprintingIJײ proc_macro_ ײ proc_macro2_ ײ unicode_xid_ ײquote`ײmacros`ײgroupaײ parenthesized @ײbracedAײ bracketed BײtokenaCײidentaײIdentaײIdenta ײattrbײ AttributeArgsc ײbigintcײdatadײexpreײgenericskײlifetimetײlitu ײmacv ײderivew ײopy ײty{ ײpathײbufferײextײ punctuated ײ parse_quote ײ parse_quote ײparse_macro_input؆ײparse_macro_inputײspannedײgen̈ײ __private ײcustom_keywordײcustom_keywordײimpl_parse_for_custom_keywordײ!impl_to_tokens_for_custom_keyword!ײimpl_clone_for_custom_keywordײ$impl_extra_traits_for_custom_keyword$ײcustom_punctuationײcustom_punctuation҉ײ!impl_parse_for_custom_punctuationǒ!ײ%impl_to_tokens_for_custom_punctuation%ײ!impl_clone_for_custom_punctuation!ײ(impl_extra_traits_for_custom_punctuation(ײcustom_punctuation_reprײcustom_punctuation_unexpectedջײstringify_punctżײsealedײspanײthreadײ lookahead ײparseײverbatimײprintײrustdoc_workaroundײerrorײparse ײparse2 ײ parse_str ײ ImplGenericso ײ Turbofisho ײ TypeGenericso ײLifetimeu ײLifetimeu ײLitu ײLitBoolu ײprivateײprivateײErrorײResultײToken)ײVariant*ײFields*ײ FieldsNamed *ײ FieldsUnnamed *ײField*ײ Visibility *ײ VisPublic *ײVisCrate*ײ VisRestricted *ײcustom_punctuation_lenޭ3ײ AttrStyleb *ײ Attributeb )ײMetac*ײMetaListc*ײ MetaNameValuec *ײ NestedMetac *ײExprg*ײ ExprArrayg ,ײ ExprAssigng ,ײ ExprAssignOpg ,ײ ExprAsynch ,ײ ExprAwaith ,ײ ExprBinaryh ,ײ ExprBlockh ,ײExprBoxh,ײ ExprBreakh ,ײExprCallh,ײExprCasth,ײ ExprClosureh ,ײ ExprContinueh ,ײ ExprFieldh ,ײ ExprForLoopi ,ײ ExprGroupi ,ײExprIfi,ײ ExprIndexi -ײExprLeti-ײExprLiti-ײExprLoopi-ײ ExprMacroi -ײ ExprMatchi -ײExprMethodCalli-ײ ExprPareni -ײExprPathj-ײ ExprRangej -ײ ExprReferencej -ײ ExprRepeatj -ײ ExprReturnj -ײ ExprStructj -ײExprTryj-ײ ExprTryBlockj -ײ ExprTuplej -ײExprTypej-ײ ExprUnaryj -ײ ExprUnsafek -ײ ExprWhilek -ײ ExprYieldk -ײIndexk-ײMemberk-ײBoundLifetimesl.ײ ConstParaml .ײ GenericParaml -ײGenericsl-ײ LifetimeDefl .ײ PredicateEqm .ײPredicateLifetimem.ײ PredicateTypem .ײ TraitBoundm .ײTraitBoundModifierm.ײ TypeParamm .ײTypeParamBoundm.ײ WhereClausem .ײWherePredicaten.ײLitu.ײLitBoolu/ײLitByteu/ײLitByteu /ײ LitByteStru /ײ LitByteStru /ײLitCharu/ײLitCharu /ײLitFloatu/ײLitFloatu /ײLitIntu/ײLitIntu /ײLitStru/ײLitStru /ײStrStylev/ײMacrow/ײMacroDelimiterw/ײDatax/ײDataEnumx/ײ DataStructx /ײ DataUnionx /ײ DeriveInputx /ײBinOpy/ײUnOpy0ײAbi{1ײ BareFnArg{ 1ײ ReturnType{ 1ײType{0ײ TypeArray{ 1ײ TypeBareFn{ 1ײ TypeGroup| 1ײ TypeImplTrait| 1ײ TypeInfer| 1ײ TypeMacro| 1ײ TypeNever| 1ײ TypeParen| 1ײTypePath|1ײTypePtr|1ײ TypeReference| 1ײ TypeSlice| 1ײTypeTraitObject}1ײ TypeTuple} 1ײVariadic}1ײAngleBracketedGenericArguments1ײBindingڀ1ײ Constraint 2ײGenericArgument1ײParenthesizedGenericArguments2ײPath1ײ PathArguments 1ײ PathSegment 1ײQSelfŁ2ײ1.u.selfŴtokens˴  ., u selftokens   , u selftokens   ,.u.selfǼtokensͼ  ., u selftokens   , u selftokens   , u selftokens   ,e Punctuated Span TokenStream   IdentFragment ?fmtDisplayEHashGHashGHasherGmem  proc_macro_  proc_macro2_  unicode_xid_ quote`macros`groupa parenthesized @bracedA bracketed BtokenaCidentaIdentaIdenta attrb AttributeArgsc bigintcdatadexpregenericsklifetimetlitu macv derivew opy ty{ pathbufferext punctuated  parse_quote  parse_quote parse_macro_input؆parse_macro_inputspannedgen̈ __private custom_keywordcustom_keywordimpl_parse_for_custom_keyword!impl_to_tokens_for_custom_keyword!impl_clone_for_custom_keyword$impl_extra_traits_for_custom_keyword$custom_punctuationcustom_punctuation҉!impl_parse_for_custom_punctuationǒ!%impl_to_tokens_for_custom_punctuation%!impl_clone_for_custom_punctuation!(impl_extra_traits_for_custom_punctuation(custom_punctuation_reprcustom_punctuation_unexpectedջstringify_punctżsealedspanthread lookahead parseverbatimprintrustdoc_workarounderrorparse parse2  parse_str  ImplGenericso  Turbofisho  TypeGenericso Lifetimeu Lifetimeu Litu LitBoolu privateprivateErrorResultToken)custom_punctuation_lenޭ3 AttrStyleb * Attributeb )Metac*MetaListc* MetaNameValuec * NestedMetac *Fieldd*Fieldsd* FieldsNamedd * FieldsUnnamedd *Variante*VisCratee* VisPublice * VisRestrictede * Visibilitye *BoundLifetimesl. ConstParaml . GenericParaml -Genericsl- LifetimeDefl . PredicateEqm .PredicateLifetimem. PredicateTypem . TraitBoundm .TraitBoundModifierm. TypeParamm .TypeParamBoundm. WhereClausem .WherePredicaten.Litu.LitBoolu/LitByteu/LitByteu / LitByteStru / LitByteStru /LitCharu/LitCharu /LitFloatu/LitFloatu /LitIntu/LitIntu /LitStru/LitStru /StrStylev/Macrow/MacroDelimiterw/Datax/DataEnumx/ DataStructx / DataUnionx / DeriveInputx /BinOpy/UnOpy0Abi{1 BareFnArg{ 1 ReturnType{ 1Type{0 TypeArray{ 1 TypeBareFn{ 1 TypeGroup| 1 TypeImplTrait| 1 TypeInfer| 1 TypeMacro| 1 TypeNever| 1 TypeParen| 1TypePath|1TypePtr|1 TypeReference| 1 TypeSlice| 1TypeTraitObject}1 TypeTuple} 1Variadic}1AngleBracketedGenericArguments1Bindingڀ1 Constraint 2GenericArgument1ParenthesizedGenericArguments2Path1 PathArguments 1 PathSegment 1QSelfŁ2'*++++++++++++,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,----------------------------------------- ߅ ߅  ident     ߅ ߅ ߅  index     ߅ ߅ ߅ index    ߅ ߅ ߅ ߅ ߅ ߅ self other    ߅  ߅ ߅ G߅ self state   / ߅ ?߅ self  formatter   / Eself    /   index          self other        G self state   // ? self  formatter   ///self    // Parse   ParseStream  Result  path  Ordering   Punctuated  Span  TokenStream   IdentFragment ? fmt DisplayE HashG HashG HasherG mem parsing  printing   proc_macro_   proc_macro2_   unicode_xid_  quote` macros` groupa  parenthesized @ bracedA  bracketed B tokenaC identa Identa Identa  attrb  AttributeArgsc  bigintc datad expre genericsk lifetimet litu macv derivew opy ty{ buffer ext  punctuated   parse_quote   parse_quote  parse_macro_input؆ parse_macro_input spanned gen̈  __private  custom_keyword custom_keyword impl_parse_for_custom_keyword !impl_to_tokens_for_custom_keyword! impl_clone_for_custom_keyword $impl_extra_traits_for_custom_keyword$ custom_punctuation custom_punctuation҉ !impl_parse_for_custom_punctuationǒ! %impl_to_tokens_for_custom_punctuation% !impl_clone_for_custom_punctuation! (impl_extra_traits_for_custom_punctuation( custom_punctuation_repr custom_punctuation_unexpectedջ stringify_punctż sealed span thread  lookahead  parse verbatim print rustdoc_workaround error parse  parse2   parse_str   ImplGenericso   Turbofisho   TypeGenericso  Lifetimeu Lifetimeu Litu LitBoolu private private Error Token) Expr*  ExprArray ,  ExprAssign ,  ExprAssignOp ,  ExprAsync ,  ExprAwait ,  ExprBinary ,  ExprBlock , ExprBoxڜ,  ExprBreakٟ , ExprCall, ExprCastĦ,  ExprClosure ,  ExprContinue ,  ExprField ,  ExprForLoop ,  ExprGroup , ExprIfν,  ExprIndex - ExprLet- ExprLit- ExprLoop-  ExprMacro -  ExprMatch - ExprMethodCall-  ExprParen - ExprPath-  ExprRange -  ExprReference -  ExprRepeat -  ExprReturn -  ExprStruct - ExprTry-  ExprTryBlock -  ExprTuple - ExprType-  ExprUnary -  ExprUnsafe -  ExprWhile -  ExprYield - Memberי - Index - custom_punctuation_lenޭ3  AttrStyleb *  Attributeb ) Metac* MetaListc*  MetaNameValuec *  NestedMetac * Fieldd* Fieldsd*  FieldsNamedd *  FieldsUnnamedd * Variante* VisCratee*  VisPublice *  VisRestrictede *  Visibilitye * BoundLifetimesl.  ConstParaml .  GenericParaml - Genericsl-  LifetimeDefl .  PredicateEqm . PredicateLifetimem.  PredicateTypem .  TraitBoundm . TraitBoundModifierm.  TypeParamm . TypeParamBoundm.  WhereClausem . WherePredicaten. Litu. LitBoolu/ LitByteu/ LitByteu /  LitByteStru /  LitByteStru / LitCharu/ LitCharu / LitFloatu/ LitFloatu / LitIntu/ LitIntu / LitStru/ LitStru / StrStylev/ Macrow/ MacroDelimiterw/ Datax/ DataEnumx/  DataStructx /  DataUnionx /  DeriveInputx / BinOpy/ UnOpy0 Abi{1  BareFnArg{ 1  ReturnType{ 1 Type{0  TypeArray{ 1  TypeBareFn{ 1  TypeGroup| 1  TypeImplTrait| 1  TypeInfer| 1  TypeMacro| 1  TypeNever| 1  TypeParen| 1 TypePath|1 TypePtr|1  TypeReference| 1  TypeSlice| 1 TypeTraitObject}1  TypeTuple} 1 Variadic}1 AngleBracketedGenericArguments1 Bindingڀ1  Constraint 2 GenericArgument1 ParenthesizedGenericArguments2 Path1  PathArguments 1  PathSegment 1 QSelfŁ2 2--------       00 00 00 00 00 00 00 00 00  0 0  0 0  0 0  0 00op     0  input          self       0000self     00000self other   0 0000self other  00,,, ž input֞ lhs  allow_struct base 0  00 input   0 input  allow_structկ   0 input  allow_struct   0 input  allow_struct   0 input  _allow_struct   0  input      input      input     ߅ ߅ inputÛ    ߅   input     ,,,Ĭ eЬ  dot_tokenެ float !   &  Literal   TokenStream  ToTokens u TokenStreamExt   Punctuated  Span  IdentFragment ? fmt DisplayE HashG HashG HasherG mem parsing  printing   proc_macro_   proc_macro2_   unicode_xid_  quote` macros` groupa  parenthesized @ bracedA  bracketed B tokenaC identa Identa Identa  attrb  AttributeArgsc  bigintc datad expre genericsk lifetimet litu macv derivew opy ty{ path buffer ext  punctuated   parse_quote   parse_quote  parse_macro_input؆ parse_macro_input spanned gen̈  __private  custom_keyword custom_keyword impl_parse_for_custom_keyword !impl_to_tokens_for_custom_keyword! impl_clone_for_custom_keyword $impl_extra_traits_for_custom_keyword$ custom_punctuation custom_punctuation҉ !impl_parse_for_custom_punctuationǒ! %impl_to_tokens_for_custom_punctuation% !impl_clone_for_custom_punctuation! (impl_extra_traits_for_custom_punctuation( custom_punctuation_repr custom_punctuation_unexpectedջ stringify_punctż sealed span thread  lookahead  parse verbatim print rustdoc_workaround error parse  parse2   parse_str   ImplGenericso   Turbofisho   TypeGenericso  Lifetimeu Lifetimeu Litu LitBoolu private private Error Result Token) Expr*  ExprArray ,  ExprAssign ,  ExprAssignOp ,  ExprAsync ,  ExprAwait ,  ExprBinary ,  ExprBlock , ExprBoxڜ,  ExprBreakٟ , ExprCall, ExprCastĦ,  ExprClosure ,  ExprContinue ,  ExprField ,  ExprForLoop ,  ExprGroup , ExprIfν,  ExprIndex - ExprLet- ExprLit- ExprLoop-  ExprMacro -  ExprMatch - ExprMethodCall-  ExprParen - ExprPath-  ExprRange -  ExprReference -  ExprRepeat -  ExprReturn -  ExprStruct - ExprTry-  ExprTryBlock -  ExprTuple - ExprType-  ExprUnary -  ExprUnsafe -  ExprWhile -  ExprYield - Memberי - Index - custom_punctuation_lenޭ3  AttrStyleb *  Attributeb ) Metac* MetaListc*  MetaNameValuec *  NestedMetac * Fieldd* Fieldsd*  FieldsNamedd *  FieldsUnnamedd * Variante* VisCratee*  VisPublice *  VisRestrictede *  Visibilitye * BoundLifetimesl.  ConstParaml .  GenericParaml - Genericsl-  LifetimeDefl .  PredicateEqm . PredicateLifetimem.  PredicateTypem .  TraitBoundm . TraitBoundModifierm.  TypeParamm . TypeParamBoundm.  WhereClausem . WherePredicaten. Litu. LitBoolu/ LitByteu/ LitByteu /  LitByteStru /  LitByteStru / LitCharu/ LitCharu / LitFloatu/ LitFloatu / LitIntu/ LitIntu / LitStru/ LitStru / StrStylev/ Macrow/ MacroDelimiterw/ Datax/ DataEnumx/  DataStructx /  DataUnionx /  DeriveInputx / BinOpy/ UnOpy0 Abi{1  BareFnArg{ 1  ReturnType{ 1 Type{0  TypeArray{ 1  TypeBareFn{ 1  TypeGroup| 1  TypeImplTrait| 1  TypeInfer| 1  TypeMacro| 1  TypeNever| 1  TypeParen| 1 TypePath|1 TypePtr|1  TypeReference| 1  TypeSlice| 1 TypeTraitObject}1  TypeTuple} 1 Variadic}1 AngleBracketedGenericArguments1 Bindingڀ1  Constraint 2 GenericArgument1 ParenthesizedGenericArguments2 Path1  PathArguments 1  PathSegment 1 QSelfŁ2 2 _attrs _tokens    , _attrs _tokens  0, u self tokens    , u self tokens    , u self tokens    , u self tokens    , u self tokens    , u selftokens   ,߅ u߅ selfڦtokensϦ /, u selftokens /, u selfثtokensޫͫ   , u selfͲtokensӲ²   , u selftokens   ,kIterIterMut Punctuated   proc_macro_  proc_macro2_  unicode_xid_ quote`macros`groupa parenthesized @bracedA bracketed BtokenaCidentaIdentaIdenta attrb AttributeArgsc bigintcdatadexpregenericsklifetimetlitu macv derivew opy ty{ pathbufferext punctuated  parse_quote  parse_quote parse_macro_input؆parse_macro_inputspannedgen̈ __private custom_keywordcustom_keywordimpl_parse_for_custom_keyword!impl_to_tokens_for_custom_keyword!impl_clone_for_custom_keyword$impl_extra_traits_for_custom_keyword$custom_punctuationcustom_punctuation҉!impl_parse_for_custom_punctuationǒ!%impl_to_tokens_for_custom_punctuation%!impl_clone_for_custom_punctuation!(impl_extra_traits_for_custom_punctuation(custom_punctuation_reprcustom_punctuation_unexpectedջstringify_punctżsealedspanthread lookahead parseverbatimprintrustdoc_workarounderrorparse parse2  parse_str Lifetimeu Lifetimeu Litu LitBoolu privateprivateErrorResultToken)custom_punctuation_lenޭ3 AttrStyleb * Attributeb )Metac*MetaListc* MetaNameValuec * NestedMetac *Fieldd*Fieldsd* FieldsNamedd * FieldsUnnamedd *Variante*VisCratee* VisPublice * VisRestrictede * Visibilitye *Exprg* ExprArrayg , ExprAssigng , ExprAssignOpg , ExprAsynch , ExprAwaith , ExprBinaryh , ExprBlockh ,ExprBoxh, ExprBreakh ,ExprCallh,ExprCasth, ExprClosureh , ExprContinueh , ExprFieldh , ExprForLoopi , ExprGroupi ,ExprIfi, ExprIndexi -ExprLeti-ExprLiti-ExprLoopi- ExprMacroi - ExprMatchi -ExprMethodCalli- ExprPareni -ExprPathj- ExprRangej - ExprReferencej - ExprRepeatj - ExprReturnj - ExprStructj -ExprTryj- ExprTryBlockj - ExprTuplej -ExprTypej- ExprUnaryj - ExprUnsafek - ExprWhilek - ExprYieldk -Indexk-Memberk-Litu.LitBoolu/LitByteu/LitByteu / LitByteStru / LitByteStru /LitCharu/LitCharu /LitFloatu/LitFloatu /LitIntu/LitIntu /LitStru/LitStru /StrStylev/Macrow/MacroDelimiterw/Datax/DataEnumx/ DataStructx / DataUnionx / DeriveInputx /BinOpy/UnOpy0Abi{1 BareFnArg{ 1 ReturnType{ 1Type{0 TypeArray{ 1 TypeBareFn{ 1 TypeGroup| 1 TypeImplTrait| 1 TypeInfer| 1 TypeMacro| 1 TypeNever| 1 TypeParen| 1TypePath|1TypePtr|1 TypeReference| 1 TypeSlice| 1TypeTraitObject}1 TypeTuple} 1Variadic}1AngleBracketedGenericArguments1Bindingڀ1 Constraint 2GenericArgument1ParenthesizedGenericArguments2Path1 PathArguments 1 PathSegment 1QSelfŁ2+--..........................     self    self    selfɁ  1self  1self  1selfы  1self  1 . 'a'a̰  'a1؟1'a91Ə 'a self  'a 119 'a'a̰  'aϡ11'a91 'a self  'a 119ؕ 'a'a̰  'a11'a91 'a selfٖ ϖ 'a 119 'a'a̰  'a11'a9ץ1 'a self  'a ץ1ץ19Ü 'aӜ'a̰  'a11'a91 'a׉ selfǝ  'a 119'a'a̰  'aר1¨1'a91ܠ 'a׉ self  'a 119 'a 'a  'a11֨ 'a 'a  'a11 'aʫ 'a  'a1ޫ1 self  1 1'aself  'a 1.1 1 lifetime ‹    ident   IdentExtParse ParseStream  ResultIterIterMut Punctuated  TypeParams  TypeParams  TypeParamsMut  TypeParamsMut  Lifetimesؕ  Lifetimesؕ  LifetimesMut  LifetimesMut  ConstParamsÜ  ConstParamsÜ ConstParamsMutConstParamsMut ImplGenerics  ImplGenerics  TypeGenerics֨  TypeGenerics֨  Turbofish  Turbofish parsingprinting proc_macro_  proc_macro2_  unicode_xid_ quote`macros`groupa parenthesized @bracedA bracketed BtokenaCidentaIdentaIdenta attrb AttributeArgsc bigintcdatadexpregenericsklifetimetlitu macv derivew opy ty{ pathbufferext punctuated  parse_quote  parse_quote parse_macro_input؆parse_macro_inputspannedgen̈ __private custom_keywordcustom_keywordimpl_parse_for_custom_keyword!impl_to_tokens_for_custom_keyword!impl_clone_for_custom_keyword$impl_extra_traits_for_custom_keyword$custom_punctuationcustom_punctuation҉!impl_parse_for_custom_punctuationǒ!%impl_to_tokens_for_custom_punctuation%!impl_clone_for_custom_punctuation!(impl_extra_traits_for_custom_punctuation(custom_punctuation_reprcustom_punctuation_unexpectedջstringify_punctżsealedspanthread lookahead parseverbatimprintrustdoc_workarounderrorparse parse2  parse_str Lifetimeu Lifetimeu Litu LitBoolu privateprivateErrorToken)Generics- GenericParam - TypeParam . LifetimeDef . ConstParam .BoundLifetimes.TypeParamBound. TraitBound .TraitBoundModifier. WhereClause .WherePredicate. PredicateType .PredicateLifetime. PredicateEq .custom_punctuation_lenޭ3 AttrStyleb * Attributeb )Metac*MetaListc* MetaNameValuec * NestedMetac *Fieldd*Fieldsd* FieldsNamedd * FieldsUnnamedd *Variante*VisCratee* VisPublice * VisRestrictede * Visibilitye *Exprg* ExprArrayg , ExprAssigng , ExprAssignOpg , ExprAsynch , ExprAwaith , ExprBinaryh , ExprBlockh ,ExprBoxh, ExprBreakh ,ExprCallh,ExprCasth, ExprClosureh , ExprContinueh , ExprFieldh , ExprForLoopi , ExprGroupi ,ExprIfi, ExprIndexi -ExprLeti-ExprLiti-ExprLoopi- ExprMacroi - ExprMatchi -ExprMethodCalli- ExprPareni -ExprPathj- ExprRangej - ExprReferencej - ExprRepeatj - ExprReturnj - ExprStructj -ExprTryj- ExprTryBlockj - ExprTuplej -ExprTypej- ExprUnaryj - ExprUnsafek - ExprWhilek - ExprYieldk -Indexk-Memberk-Litu.LitBoolu/LitByteu/LitByteu / LitByteStru / LitByteStru /LitCharu/LitCharu /LitFloatu/LitFloatu /LitIntu/LitIntu /LitStru/LitStru /StrStylev/Macrow/MacroDelimiterw/Datax/DataEnumx/ DataStructx / DataUnionx / DeriveInputx /BinOpy/UnOpy0Abi{1 BareFnArg{ 1 ReturnType{ 1Type{0 TypeArray{ 1 TypeBareFn{ 1 TypeGroup| 1 TypeImplTrait| 1 TypeInfer| 1 TypeMacro| 1 TypeNever| 1 TypeParen| 1TypePath|1TypePtr|1 TypeReference| 1 TypeSlice| 1TypeTraitObject}1 TypeTuple} 1Variadic}1AngleBracketedGenericArguments1Bindingڀ1 Constraint 2GenericArgument1ParenthesizedGenericArguments2Path1 PathArguments 1 PathSegment 1QSelfŁ25  input   ̰ ̰ input  ̰   input   11input  111input  1  input̙ ƙ    input   ʊ ʊ inputӭ ͭ ʊ   input׳ ѳ  ׉ ׉ input  ׉ 11input  111input  1ލ ލ input  ލ  FilterAttrs TokensOrDefaultTokensOrDefault TokenStream ToTokensuTokenStreamExtIterIterMut Punctuated  TypeParams  TypeParams  TypeParamsMut  TypeParamsMut  Lifetimesؕ  Lifetimesؕ  LifetimesMut  LifetimesMut  ConstParamsÜ  ConstParamsÜ ConstParamsMutConstParamsMut ImplGenerics  ImplGenerics  TypeGenerics֨  TypeGenerics֨  Turbofish  Turbofish parsingprinting proc_macro_  proc_macro2_  unicode_xid_ quote`macros`groupa parenthesized @bracedA bracketed BtokenaCidentaIdentaIdenta attrb AttributeArgsc bigintcdatadexpregenericsklifetimetlitu macv derivew opy ty{ pathbufferext punctuated  parse_quote  parse_quote parse_macro_input؆parse_macro_inputspannedgen̈ __private custom_keywordcustom_keywordimpl_parse_for_custom_keyword!impl_to_tokens_for_custom_keyword!impl_clone_for_custom_keyword$impl_extra_traits_for_custom_keyword$custom_punctuationcustom_punctuation҉!impl_parse_for_custom_punctuationǒ!%impl_to_tokens_for_custom_punctuation%!impl_clone_for_custom_punctuation!(impl_extra_traits_for_custom_punctuation(custom_punctuation_reprcustom_punctuation_unexpectedջstringify_punctżsealedspanthread lookahead parseverbatimprintrustdoc_workarounderrorparse parse2  parse_str Lifetimeu Lifetimeu Litu LitBoolu privateprivateErrorResultToken)Generics- GenericParam - TypeParam . LifetimeDef . ConstParam .BoundLifetimes.TypeParamBound. TraitBound .TraitBoundModifier. WhereClause .WherePredicate. PredicateType .PredicateLifetime. PredicateEq .custom_punctuation_lenޭ3 AttrStyleb * Attributeb )Metac*MetaListc* MetaNameValuec * NestedMetac *Fieldd*Fieldsd* FieldsNamedd * FieldsUnnamedd *Variante*VisCratee* VisPublice * VisRestrictede * Visibilitye *Exprg* ExprArrayg , ExprAssigng , ExprAssignOpg , ExprAsynch , ExprAwaith , ExprBinaryh , ExprBlockh ,ExprBoxh, ExprBreakh ,ExprCallh,ExprCasth, ExprClosureh , ExprContinueh , ExprFieldh , ExprForLoopi , ExprGroupi ,ExprIfi, ExprIndexi -ExprLeti-ExprLiti-ExprLoopi- ExprMacroi - ExprMatchi -ExprMethodCalli- ExprPareni -ExprPathj- ExprRangej - ExprReferencej - ExprRepeatj - ExprReturnj - ExprStructj -ExprTryj- ExprTryBlockj - ExprTuplej -ExprTypej- ExprUnaryj - ExprUnsafek - ExprWhilek - ExprYieldk -Indexk-Memberk-Litu.LitBoolu/LitByteu/LitByteu / LitByteStru / LitByteStru /LitCharu/LitCharu /LitFloatu/LitFloatu /LitIntu/LitIntu /LitStru/LitStru /StrStylev/Macrow/MacroDelimiterw/Datax/DataEnumx/ DataStructx / DataUnionx / DeriveInputx /BinOpy/UnOpy0Abi{1 BareFnArg{ 1 ReturnType{ 1Type{0 TypeArray{ 1 TypeBareFn{ 1 TypeGroup| 1 TypeImplTrait| 1 TypeInfer| 1 TypeMacro| 1 TypeNever| 1 TypeParen| 1TypePath|1TypePtr|1 TypeReference| 1 TypeSlice| 1TypeTraitObject}1 TypeTuple} 1Variadic}1AngleBracketedGenericArguments1Bindingڀ1 Constraint 2GenericArgument1ParenthesizedGenericArguments2Path1 PathArguments 1 PathSegment 1QSelfŁ26 u selftokens 1,'au2selftokens 'a 2,'au2selftokens 'a 2,'au2selftokensČ 'a 2,1u1selftokens  1, u selftokens   , u selftokens   ,ʊ uʊ selfˣtokensѣ  ʊ , u selftokens   ,׉ u׉ selftokens  ׉ ,1u1selftokens߮ 1, u selftokens   , u selftokens   , u selfƶtokens̶   ,tIdentSpanOrderingfmtŸDisplay˸E˸HashGHashGHasherG lookahead    ‹ Ƽ   ‹ symbolտspanѿ , ‹ self   ‹  selfspan  ‹  ‹ E‹ self formatter  2// ‹ ‹ self  2‹  ‹ ‹ ‹ selfother 2 ‹ ‹ ‹  ‹ ‹ ‹ selfother 220 ‹ ‹ selfother 220 ‹ G‹ selfh 2/marker  ‹ Parse ParseStream   Result Ident Span Ordering fmt Display˸E HashG HashG HasherG lookahead  Lifetime  Lifetime  parsing  printing    ‹ ‹ input  ‹ Punct Spacing TokenStream   ToTokensu TokenStreamExt Ident Span Ordering fmt Display˸E HashG HashG HasherG lookahead  Lifetime  Lifetime  parsing  printing    ‹ u‹ selftokens 2,u lookahead  Parse Parser Error Result Ident TokenStream  TokenTree  Literal Span fmt DisplayE str& FromStrX  .//////////// / / / //////////// /   ׺     ׺ 22   ׺ 22 valuespan , self    Ԛ-self  ÿ 2-selfparser 2-self  2 selfspan   self ݇ 2, ,,,2streamspan ׁ ׁ tokenspan 2 2 valuespanLj   self ܊   .self  2 self܌spanΌ   self  2, valuespan  self    selfȑ ‘ 2 selfspan   self  2, ے valuespan˓  ے self ە  ے self  2 selfԗspanڗƗ  ے self  2, ̓ reprspan , ̓ self ם  ̓ ,self У ̿2̿self  2,self  2 selfǦspanͦ  ̓  ̓ ̓ ׺ token  ׺ ̓  ̓ E̓ self formatter  2// reprspan , self ܰ   ,self  ̿22self  2,selfϳ ɳ 2 selfspan     ׺ token  ׺  E selfָ formatterܸ Ѹ 2// value۹span׹  self    self  2 selfspan    22self   22 22self   22 22self   22marker   marker   Cursor Parse ParseStream   Result Punct lookahead  Parser Ident TokenStream  TokenTree  Literal Span fmt DisplayE str& FromStrX LitRepr  LitIntRepr   LitFloatRepr   LitBool  Lit  parsing  printing  valueߙ  Error Lit. LitStr/ LitByteStr / LitByte/ LitChar/ LitInt/ LitFloat/ LitBool/ LitStr / LitByteStr / LitByte / LitChar / LitInt / LitFloat / StrStyle/ (   input   negcursor  ڴ, ڴ,  input     input     input    ے ے input  ے  ̓ ̓ input  ̓   input ߇    inputЊ ʊ   TokenStream  ToTokensu TokenStreamExtɍɍ lookahead  Parse Parser Ident TokenTree  Literal Span fmt DisplayE str& FromStrX LitRepr  LitIntRepr   LitFloatRepr   LitBool  Lit  parsing  printing  valueߙ  Error Result Lit. LitStr/ LitByteStr / LitByte/ LitChar/ LitInt/ LitFloat/ LitBool/ LitStr / LitByteStr / LitByte / LitChar / LitInt / LitFloat / StrStyle/ '  u selfɎtokensώ 2, u selftokens 2, u selftokens 2, ے uے selftokensœ 2, ̓ u̓ selftokens 2, u selftokens֖ 2, u selftokens 2,ߙBigInt TokenStream  charǚ š  Index RangeFrom   lookahead  Parse Parser Ident TokenTree  Literal Span fmt DisplayE str& FromStrX LitRepr  LitIntRepr   LitFloatRepr   LitBool  Lit  parsing  printing  valueߙ  Error Result Lit. LitStr/ LitByteStr / LitByte/ LitChar/ LitInt/ LitFloat/ LitBool/ LitStr / LitByteStr / LitByte / LitChar / LitInt / LitFloat / StrStyle/ )  token֛ қ ׺ self    ,selfҲ ̲ 3 selfspan    sĻidx˻  s ,ٽ s ,22s ,3s ,3s ,.2s ,߈3s ,߈3s ,2s ,2  s 33 s ,, s ,3 ,,,  input  ,3 ,,,  ,,, ,,,  ,,, reprdigitssuffix" ,, ׺ vBrace) Brace ) Bracket) Bracket ) Paren) Paren ) TokenStream  Delimiter   Group Span TokenTree   Parse ParseStream   Parser Result proc_macro_  proc_macro2_  unicode_xid_  quote` macros` groupa parenthesized @ bracedA bracketed B tokenaC identa Identa Identa  attrb AttributeArgsc  bigintc datad expre genericsk ImplGenericso  Turbofisho  TypeGenericso  lifetimet Lifetimeu  Lifetimeu  litu  Litu  LitBoolu  macv  derivew  opy  ty{  path buffer ext punctuated  parse_quote  parse_quote  parse_macro_input؆ parse_macro_input spanned gen̈ __private  custom_keyword custom_keyword impl_parse_for_custom_keyword !impl_to_tokens_for_custom_keyword! impl_clone_for_custom_keyword $impl_extra_traits_for_custom_keyword$ custom_punctuation custom_punctuation҉ !impl_parse_for_custom_punctuationǒ! %impl_to_tokens_for_custom_punctuation% !impl_clone_for_custom_punctuation! (impl_extra_traits_for_custom_punctuation( custom_punctuation_repr custom_punctuation_unexpectedջ stringify_punctż sealed span thread lookahead  parse verbatim print rustdoc_workaround error parse  parse2  parse_str  private private Error Token) custom_punctuation_lenޭ3 AttrStyleb * Attributeb ) Metac* MetaListc* MetaNameValuec * NestedMetac * Fieldd* Fieldsd* FieldsNamedd * FieldsUnnamedd * Variante* VisCratee* VisPublice * VisRestrictede * Visibilitye * Exprg* ExprArrayg , ExprAssigng , ExprAssignOpg , ExprAsynch , ExprAwaith , ExprBinaryh , ExprBlockh , ExprBoxh, ExprBreakh , ExprCallh, ExprCasth, ExprClosureh , ExprContinueh , ExprFieldh , ExprForLoopi , ExprGroupi , ExprIfi, ExprIndexi - ExprLeti- ExprLiti- ExprLoopi- ExprMacroi - ExprMatchi - ExprMethodCalli- ExprPareni - ExprPathj- ExprRangej - ExprReferencej - ExprRepeatj - ExprReturnj - ExprStructj - ExprTryj- ExprTryBlockj - ExprTuplej - ExprTypej- ExprUnaryj - ExprUnsafek - ExprWhilek - ExprYieldk - Indexk- Memberk- BoundLifetimesl. ConstParaml . GenericParaml - Genericsl- LifetimeDefl . PredicateEqm . PredicateLifetimem. PredicateTypem . TraitBoundm . TraitBoundModifierm. TypeParamm . TypeParamBoundm. WhereClausem . WherePredicaten. Litu. LitBoolu/ LitByteu/ LitByteu / LitByteStru / LitByteStru / LitCharu/ LitCharu / LitFloatu/ LitFloatu / LitIntu/ LitIntu / LitStru/ LitStru / StrStylev/ Datax/ DataEnumx/ DataStructx / DataUnionx / DeriveInputx / BinOpy/ UnOpy0 Abi{1 BareFnArg{ 1 ReturnType{ 1 Type{0 TypeArray{ 1 TypeBareFn{ 1 TypeGroup| 1 TypeImplTrait| 1 TypeInfer| 1 TypeMacro| 1 TypeNever| 1 TypeParen| 1 TypePath|1 TypePtr|1 TypeReference| 1 TypeSlice| 1 TypeTraitObject}1 TypeTuple} 1 Variadic}1 AngleBracketedGenericArguments1 Bindingڀ1 Constraint 2 GenericArgument1 ParenthesizedGenericArguments2 Path1 PathArguments 1 PathSegment 1 QSelfŁ2 1 // macro_delimiter     /self  ÿ  3-selfparser 3- ,,,, ׁ ڴ,input  3Parse ParseStream   Result TokenStream  Delimiter  Group Span TokenTree  Parser delimiter_span_close  parse_delimiter  parsing  printing  proc_macro_  proc_macro2_  unicode_xid_  quote` macros` groupa parenthesized @ bracedA bracketed B tokenaC identa Identa Identa  attrb AttributeArgsc  bigintc datad expre genericsk ImplGenericso  Turbofisho  TypeGenericso  lifetimet Lifetimeu  Lifetimeu  litu  Litu  LitBoolu  macv  derivew  opy  ty{  path buffer ext punctuated  parse_quote  parse_quote  parse_macro_input؆ parse_macro_input spanned gen̈ __private  custom_keyword custom_keyword impl_parse_for_custom_keyword !impl_to_tokens_for_custom_keyword! impl_clone_for_custom_keyword $impl_extra_traits_for_custom_keyword$ custom_punctuation custom_punctuation҉ !impl_parse_for_custom_punctuationǒ! %impl_to_tokens_for_custom_punctuation% !impl_clone_for_custom_punctuation! (impl_extra_traits_for_custom_punctuation( custom_punctuation_repr custom_punctuation_unexpectedջ stringify_punctż sealed span thread lookahead  parse verbatim print rustdoc_workaround error parse  parse2  parse_str  private private Error Token) Macro/ MacroDelimiter/ custom_punctuation_lenޭ3 AttrStyleb * Attributeb ) Metac* MetaListc* MetaNameValuec * NestedMetac * Fieldd* Fieldsd* FieldsNamedd * FieldsUnnamedd * Variante* VisCratee* VisPublice * VisRestrictede * Visibilitye * Exprg* ExprArrayg , ExprAssigng , ExprAssignOpg , ExprAsynch , ExprAwaith , ExprBinaryh , ExprBlockh , ExprBoxh, ExprBreakh , ExprCallh, ExprCasth, ExprClosureh , ExprContinueh , ExprFieldh , ExprForLoopi , ExprGroupi , ExprIfi, ExprIndexi - ExprLeti- ExprLiti- ExprLoopi- ExprMacroi - ExprMatchi - ExprMethodCalli- ExprPareni - ExprPathj- ExprRangej - ExprReferencej - ExprRepeatj - ExprReturnj - ExprStructj - ExprTryj- ExprTryBlockj - ExprTuplej - ExprTypej- ExprUnaryj - ExprUnsafek - ExprWhilek - ExprYieldk - Indexk- Memberk- BoundLifetimesl. ConstParaml . GenericParaml - Genericsl- LifetimeDefl . PredicateEqm . PredicateLifetimem. PredicateTypem . TraitBoundm . TraitBoundModifierm. TypeParamm . TypeParamBoundm. WhereClausem . WherePredicaten. Litu. LitBoolu/ LitByteu/ LitByteu / LitByteStru / LitByteStru / LitCharu/ LitCharu / LitFloatu/ LitFloatu / LitIntu/ LitIntu / LitStru/ LitStru / StrStylev/ Brace) Brace ) Bracket) Bracket ) Paren) Paren ) Datax/ DataEnumx/ DataStructx / DataUnionx / DeriveInputx / BinOpy/ UnOpy0 Abi{1 BareFnArg{ 1 ReturnType{ 1 Type{0 TypeArray{ 1 TypeBareFn{ 1 TypeGroup| 1 TypeImplTrait| 1 TypeInfer| 1 TypeMacro| 1 TypeNever| 1 TypeParen| 1 TypePath|1 TypePtr|1 TypeReference| 1 TypeSlice| 1 TypeTraitObject}1 TypeTuple} 1 Variadic}1 AngleBracketedGenericArguments1 Bindingڀ1 Constraint 2 GenericArgument1 ParenthesizedGenericArguments2 Path1 PathArguments 1 PathSegment 1 QSelfŁ2 3  33input  3 TokenStream  ToTokensu Delimiter  Group Span TokenTree  Parse ParseStream  Parser delimiter_span_close  parse_delimiter  parsing  printing  proc_macro_  proc_macro2_  unicode_xid_  quote` macros` groupa parenthesized @ bracedA bracketed B tokenaC identa Identa Identa  attrb AttributeArgsc  bigintc datad expre genericsk ImplGenericso  Turbofisho  TypeGenericso  lifetimet Lifetimeu  Lifetimeu  litu  Litu  LitBoolu  macv  derivew  opy  ty{  path buffer ext punctuated  parse_quote  parse_quote  parse_macro_input؆ parse_macro_input spanned gen̈ __private  custom_keyword custom_keyword impl_parse_for_custom_keyword !impl_to_tokens_for_custom_keyword! impl_clone_for_custom_keyword $impl_extra_traits_for_custom_keyword$ custom_punctuation custom_punctuation҉ !impl_parse_for_custom_punctuationǒ! %impl_to_tokens_for_custom_punctuation% !impl_clone_for_custom_punctuation! (impl_extra_traits_for_custom_punctuation( custom_punctuation_repr custom_punctuation_unexpectedջ stringify_punctż sealed span thread lookahead  parse verbatim print rustdoc_workaround error parse  parse2  parse_str  private private Error Result Token) Macro/ MacroDelimiter/ custom_punctuation_lenޭ3 AttrStyleb * Attributeb ) Metac* MetaListc* MetaNameValuec * NestedMetac * Fieldd* Fieldsd* FieldsNamedd * FieldsUnnamedd * Variante* VisCratee* VisPublice * VisRestrictede * Visibilitye * Exprg* ExprArrayg , ExprAssigng , ExprAssignOpg , ExprAsynch , ExprAwaith , ExprBinaryh , ExprBlockh , ExprBoxh, ExprBreakh , ExprCallh, ExprCasth, ExprClosureh , ExprContinueh , ExprFieldh , ExprForLoopi , ExprGroupi , ExprIfi, ExprIndexi - ExprLeti- ExprLiti- ExprLoopi- ExprMacroi - ExprMatchi - ExprMethodCalli- ExprPareni - ExprPathj- ExprRangej - ExprReferencej - ExprRepeatj - ExprReturnj - ExprStructj - ExprTryj- ExprTryBlockj - ExprTuplej - ExprTypej- ExprUnaryj - ExprUnsafek - ExprWhilek - ExprYieldk - Indexk- Memberk- BoundLifetimesl. ConstParaml . GenericParaml - Genericsl- LifetimeDefl . PredicateEqm . PredicateLifetimem. PredicateTypem . TraitBoundm . TraitBoundModifierm. TypeParamm . TypeParamBoundm. WhereClausem . WherePredicaten. Litu. LitBoolu/ LitByteu/ LitByteu / LitByteStru / LitByteStru / LitCharu/ LitCharu / LitFloatu/ LitFloatu / LitIntu/ LitIntu / LitStru/ LitStru / StrStylev/ Brace) Brace ) Bracket) Bracket ) Paren) Paren ) Datax/ DataEnumx/ DataStructx / DataUnionx / DeriveInputx / BinOpy/ UnOpy0 Abi{1 BareFnArg{ 1 ReturnType{ 1 Type{0 TypeArray{ 1 TypeBareFn{ 1 TypeGroup| 1 TypeImplTrait| 1 TypeInfer| 1 TypeMacro| 1 TypeNever| 1 TypeParen| 1 TypePath|1 TypePtr|1 TypeReference| 1 TypeSlice| 1 TypeTraitObject}1 TypeTuple} 1 Variadic}1 AngleBracketedGenericArguments1 Bindingڀ1 Constraint 2 GenericArgument1 ParenthesizedGenericArguments2 Path1 PathArguments 1 PathSegment 1 QSelfŁ2 3  3u3selftokens 3,w Punctuated ф proc_macro_ Ä proc_macro2_ Ä unicode_xid_ Ä quote`Ä macros`Ä groupaÄ parenthesized @Ä bracedAÄ bracketed BÄ tokenaCÄ identaÄ IdentaÄ Identa Ä attrbÄ AttributeArgsc Ä bigintcÄ datadÄ expreÄ genericskÄ ImplGenericso Ä Turbofisho Ä TypeGenericso Ä lifetimetÄ Lifetimeu Ä Lifetimeu Ä litu Ä Litu Ä LitBoolu Ä macv Ä derivew Ä opy Ä ty{ Ä pathÄ bufferÄ extÄ punctuated Ä parse_quote Ä parse_quote Ä parse_macro_input؆Ä parse_macro_inputÄ spannedÄ gen̈Ä __private Ä custom_keywordÄ custom_keywordÄ impl_parse_for_custom_keywordÄ !impl_to_tokens_for_custom_keyword!Ä impl_clone_for_custom_keywordÄ $impl_extra_traits_for_custom_keyword$Ä custom_punctuationÄ custom_punctuation҉Ä !impl_parse_for_custom_punctuationǒ!Ä %impl_to_tokens_for_custom_punctuation%Ä !impl_clone_for_custom_punctuation!Ä (impl_extra_traits_for_custom_punctuation(Ä custom_punctuation_reprÄ custom_punctuation_unexpectedջÄ stringify_punctżÄ sealedÄ spanÄ threadÄ lookahead Ä parseÄ verbatimÄ printÄ rustdoc_workaroundÄ errorÄ parse Ä parse2 Ä parse_str Ä privateÄ privateÄ ErrorÄ ResultÄ Token)Ä custom_punctuation_lenޭ3Ä AttrStyleb *Ä Attributeb )Ä Metac*Ä MetaListc*Ä MetaNameValuec *Ä NestedMetac *Ä Fieldd*Ä Fieldsd*Ä FieldsNamedd *Ä FieldsUnnamedd *Ä Variante*Ä VisCratee*Ä VisPublice *Ä VisRestrictede *Ä Visibilitye *Ä Exprg*Ä ExprArrayg ,Ä ExprAssigng ,Ä ExprAssignOpg ,Ä ExprAsynch ,Ä ExprAwaith ,Ä ExprBinaryh ,Ä ExprBlockh ,Ä ExprBoxh,Ä ExprBreakh ,Ä ExprCallh,Ä ExprCasth,Ä ExprClosureh ,Ä ExprContinueh ,Ä ExprFieldh ,Ä ExprForLoopi ,Ä ExprGroupi ,Ä ExprIfi,Ä ExprIndexi -Ä ExprLeti-Ä ExprLiti-Ä ExprLoopi-Ä ExprMacroi -Ä ExprMatchi -Ä ExprMethodCalli-Ä ExprPareni -Ä ExprPathj-Ä ExprRangej -Ä ExprReferencej -Ä ExprRepeatj -Ä ExprReturnj -Ä ExprStructj -Ä ExprTryj-Ä ExprTryBlockj -Ä ExprTuplej -Ä ExprTypej-Ä ExprUnaryj -Ä ExprUnsafek -Ä ExprWhilek -Ä ExprYieldk -Ä Indexk-Ä Memberk-Ä BoundLifetimesl.Ä ConstParaml .Ä GenericParaml -Ä Genericsl-Ä LifetimeDefl .Ä PredicateEqm .Ä PredicateLifetimem.Ä PredicateTypem .Ä TraitBoundm .Ä TraitBoundModifierm.Ä TypeParamm .Ä TypeParamBoundm.Ä WhereClausem .Ä WherePredicaten.Ä Litu.Ä LitBoolu/Ä LitByteu/Ä LitByteu /Ä LitByteStru /Ä LitByteStru /Ä LitCharu/Ä LitCharu /Ä LitFloatu/Ä LitFloatu /Ä LitIntu/Ä LitIntu /Ä LitStru/Ä LitStru /Ä StrStylev/Ä Macrow/Ä MacroDelimiterw/Ä BinOpy/Ä UnOpy0Ä Abi{1Ä BareFnArg{ 1Ä ReturnType{ 1Ä Type{0Ä TypeArray{ 1Ä TypeBareFn{ 1Ä TypeGroup| 1Ä TypeImplTrait| 1Ä TypeInfer| 1Ä TypeMacro| 1Ä TypeNever| 1Ä TypeParen| 1Ä TypePath|1Ä TypePtr|1Ä TypeReference| 1Ä TypeSlice| 1Ä TypeTraitObject}1Ä TypeTuple} 1Ä Variadic}1Ä AngleBracketedGenericArguments1Ä Bindingڀ1Ä Constraint 2Ä GenericArgument1Ä ParenthesizedGenericArguments2Ä Path1Ä PathArguments 1Ä PathSegment 1Ä QSelfŁ2Ä . //////// Parse ParseStream   Result Punctuated ˜ parsing ˜ printing ˜ proc_macro_ ˜ proc_macro2_ ˜ unicode_xid_ ˜ quote`˜ macros`˜ groupa˜ parenthesized @˜ bracedA˜ bracketed B˜ tokenaC˜ identa˜ Identa˜ Identa ˜ attrb˜ AttributeArgsc ˜ bigintc˜ datad˜ expre˜ genericsk˜ ImplGenericso ˜ Turbofisho ˜ TypeGenericso ˜ lifetimet˜ Lifetimeu ˜ Lifetimeu ˜ litu ˜ Litu ˜ LitBoolu ˜ macv ˜ derivew ˜ opy ˜ ty{ ˜ path˜ buffer˜ ext˜ punctuated ˜ parse_quote ˜ parse_quote ˜ parse_macro_input؆˜ parse_macro_input˜ spanned˜ gen̈˜ __private ˜ custom_keyword˜ custom_keyword˜ impl_parse_for_custom_keyword˜ !impl_to_tokens_for_custom_keyword!˜ impl_clone_for_custom_keyword˜ $impl_extra_traits_for_custom_keyword$˜ custom_punctuation˜ custom_punctuation҉˜ !impl_parse_for_custom_punctuationǒ!˜ %impl_to_tokens_for_custom_punctuation%˜ !impl_clone_for_custom_punctuation!˜ (impl_extra_traits_for_custom_punctuation(˜ custom_punctuation_repr˜ custom_punctuation_unexpectedջ˜ stringify_punctż˜ sealed˜ span˜ thread˜ lookahead ˜ parse˜ verbatim˜ print˜ rustdoc_workaround˜ error˜ parse ˜ parse2 ˜ parse_str ˜ private˜ private˜ Error˜ Token)˜ DeriveInput܆ /˜ Data/˜ DataStruct /˜ DataEnum/˜ DataUnion /˜ custom_punctuation_lenޭ3˜ AttrStyleb *˜ Attributeb )˜ Metac*˜ MetaListc*˜ MetaNameValuec *˜ NestedMetac *˜ Fieldd*˜ Fieldsd*˜ FieldsNamedd *˜ FieldsUnnamedd *˜ Variante*˜ VisCratee*˜ VisPublice *˜ VisRestrictede *˜ Visibilitye *˜ Exprg*˜ ExprArrayg ,˜ ExprAssigng ,˜ ExprAssignOpg ,˜ ExprAsynch ,˜ ExprAwaith ,˜ ExprBinaryh ,˜ ExprBlockh ,˜ ExprBoxh,˜ ExprBreakh ,˜ ExprCallh,˜ ExprCasth,˜ ExprClosureh ,˜ ExprContinueh ,˜ ExprFieldh ,˜ ExprForLoopi ,˜ ExprGroupi ,˜ ExprIfi,˜ ExprIndexi -˜ ExprLeti-˜ ExprLiti-˜ ExprLoopi-˜ ExprMacroi -˜ ExprMatchi -˜ ExprMethodCalli-˜ ExprPareni -˜ ExprPathj-˜ ExprRangej -˜ ExprReferencej -˜ ExprRepeatj -˜ ExprReturnj -˜ ExprStructj -˜ ExprTryj-˜ ExprTryBlockj -˜ ExprTuplej -˜ ExprTypej-˜ ExprUnaryj -˜ ExprUnsafek -˜ ExprWhilek -˜ ExprYieldk -˜ Indexk-˜ Memberk-˜ BoundLifetimesl.˜ ConstParaml .˜ GenericParaml -˜ Genericsl-˜ LifetimeDefl .˜ PredicateEqm .˜ PredicateLifetimem.˜ PredicateTypem .˜ TraitBoundm .˜ TraitBoundModifierm.˜ TypeParamm .˜ TypeParamBoundm.˜ WhereClausem .˜ WherePredicaten.˜ Litu.˜ LitBoolu/˜ LitByteu/˜ LitByteu /˜ LitByteStru /˜ LitByteStru /˜ LitCharu/˜ LitCharu /˜ LitFloatu/˜ LitFloatu /˜ LitIntu/˜ LitIntu /˜ LitStru/˜ LitStru /˜ StrStylev/˜ Macrow/˜ MacroDelimiterw/˜ BinOpy/˜ UnOpy0˜ Abi{1˜ BareFnArg{ 1˜ ReturnType{ 1˜ Type{0˜ TypeArray{ 1˜ TypeBareFn{ 1˜ TypeGroup| 1˜ TypeImplTrait| 1˜ TypeInfer| 1˜ TypeMacro| 1˜ TypeNever| 1˜ TypeParen| 1˜ TypePath|1˜ TypePtr|1˜ TypeReference| 1˜ TypeSlice| 1˜ TypeTraitObject}1˜ TypeTuple} 1˜ Variadic}1˜ AngleBracketedGenericArguments1˜ Bindingڀ1˜ Constraint 2˜ GenericArgument1˜ ParenthesizedGenericArguments2˜ Path1˜ PathArguments 1˜ PathSegment 1˜ QSelfŁ2˜ 0  /5input  5 inputattrs -1 ( inputattrs͸ -1 .% inputattrs -1  FilterAttrs  TokensOrDefault TokensOrDefault TokenStream  ToTokensؿuѿ Punctuated Ծ parsing Ծ printing Ծ proc_macro_ Ծ proc_macro2_ Ծ unicode_xid_ Ծ quote`Ծ macros`Ծ groupaԾ parenthesized @Ծ bracedAԾ bracketed BԾ tokenaCԾ identaԾ IdentaԾ Identa Ծ attrbԾ AttributeArgsc Ծ bigintcԾ datadԾ expreԾ genericskԾ ImplGenericso Ծ Turbofisho Ծ TypeGenericso Ծ lifetimetԾ Lifetimeu Ծ Lifetimeu Ծ litu Ծ Litu Ծ LitBoolu Ծ macv Ծ derivew Ծ opy Ծ ty{ Ծ pathԾ bufferԾ extԾ punctuated Ծ parse_quote Ծ parse_quote Ծ parse_macro_input؆Ծ parse_macro_inputԾ spannedԾ gen̈Ծ __private Ծ custom_keywordԾ custom_keywordԾ impl_parse_for_custom_keywordԾ !impl_to_tokens_for_custom_keyword!Ծ impl_clone_for_custom_keywordԾ $impl_extra_traits_for_custom_keyword$Ծ custom_punctuationԾ custom_punctuation҉Ծ !impl_parse_for_custom_punctuationǒ!Ծ %impl_to_tokens_for_custom_punctuation%Ծ !impl_clone_for_custom_punctuation!Ծ (impl_extra_traits_for_custom_punctuation(Ծ custom_punctuation_reprԾ custom_punctuation_unexpectedջԾ stringify_punctżԾ sealedԾ spanԾ threadԾ lookahead Ծ parseԾ verbatimԾ printԾ rustdoc_workaroundԾ errorԾ parse Ծ parse2 Ծ parse_str Ծ privateԾ privateԾ ErrorԾ ResultԾ Token)Ծ DeriveInput܆ /Ծ Data/Ծ DataStruct /Ծ DataEnum/Ծ DataUnion /Ծ custom_punctuation_lenޭ3Ծ AttrStyleb *Ծ Attributeb )Ծ Metac*Ծ MetaListc*Ծ MetaNameValuec *Ծ NestedMetac *Ծ Fieldd*Ծ Fieldsd*Ծ FieldsNamedd *Ծ FieldsUnnamedd *Ծ Variante*Ծ VisCratee*Ծ VisPublice *Ծ VisRestrictede *Ծ Visibilitye *Ծ Exprg*Ծ ExprArrayg ,Ծ ExprAssigng ,Ծ ExprAssignOpg ,Ծ ExprAsynch ,Ծ ExprAwaith ,Ծ ExprBinaryh ,Ծ ExprBlockh ,Ծ ExprBoxh,Ծ ExprBreakh ,Ծ ExprCallh,Ծ ExprCasth,Ծ ExprClosureh ,Ծ ExprContinueh ,Ծ ExprFieldh ,Ծ ExprForLoopi ,Ծ ExprGroupi ,Ծ ExprIfi,Ծ ExprIndexi -Ծ ExprLeti-Ծ ExprLiti-Ծ ExprLoopi-Ծ ExprMacroi -Ծ ExprMatchi -Ծ ExprMethodCalli-Ծ ExprPareni -Ծ ExprPathj-Ծ ExprRangej -Ծ ExprReferencej -Ծ ExprRepeatj -Ծ ExprReturnj -Ծ ExprStructj -Ծ ExprTryj-Ծ ExprTryBlockj -Ծ ExprTuplej -Ծ ExprTypej-Ծ ExprUnaryj -Ծ ExprUnsafek -Ծ ExprWhilek -Ծ ExprYieldk -Ծ Indexk-Ծ Memberk-Ծ BoundLifetimesl.Ծ ConstParaml .Ծ GenericParaml -Ծ Genericsl-Ծ LifetimeDefl .Ծ PredicateEqm .Ծ PredicateLifetimem.Ծ PredicateTypem .Ծ TraitBoundm .Ծ TraitBoundModifierm.Ծ TypeParamm .Ծ TypeParamBoundm.Ծ WhereClausem .Ծ WherePredicaten.Ծ Litu.Ծ LitBoolu/Ծ LitByteu/Ծ LitByteu /Ծ LitByteStru /Ծ LitByteStru /Ծ LitCharu/Ծ LitCharu /Ծ LitFloatu/Ծ LitFloatu /Ծ LitIntu/Ծ LitIntu /Ծ LitStru/Ծ LitStru /Ծ StrStylev/Ծ Macrow/Ծ MacroDelimiterw/Ծ BinOpy/Ծ UnOpy0Ծ Abi{1Ծ BareFnArg{ 1Ծ ReturnType{ 1Ծ Type{0Ծ TypeArray{ 1Ծ TypeBareFn{ 1Ծ TypeGroup| 1Ծ TypeImplTrait| 1Ծ TypeInfer| 1Ծ TypeMacro| 1Ծ TypeNever| 1Ծ TypeParen| 1Ծ TypePath|1Ծ TypePtr|1Ծ TypeReference| 1Ծ TypeSlice| 1Ծ TypeTraitObject}1Ծ TypeTuple} 1Ծ Variadic}1Ծ AngleBracketedGenericArguments1Ծ Bindingڀ1Ծ Constraint 2Ծ GenericArgument1Ծ ParenthesizedGenericArguments2Ծ Path1Ծ PathArguments 1Ծ PathSegment 1Ծ QSelfŁ2Ծ 1  5u5selftokens  5,y/0 Parse ParseStream   Result parsing  printing  BinOp/ UnOp0   input     input  5  input    TokenStream  ToTokensu parsing  printing  BinOp/ UnOp0   u selftokens 0, u selfԎtokensڎɎ   ,{ Punctuated  TokenStream  proc_macro_ Ր proc_macro2_ Ր unicode_xid_ Ր quote`Ր macros`Ր groupaՐ parenthesized @Ր bracedAՐ bracketed BՐ tokenaCՐ identaՐ IdentaՐ Identa Ր attrbՐ AttributeArgsc Ր bigintcՐ datadՐ expreՐ genericskՐ ImplGenericso Ր Turbofisho Ր TypeGenericso Ր lifetimetՐ Lifetimeu Ր Lifetimeu Ր litu Ր Litu Ր LitBoolu Ր macv Ր derivew Ր opy Ր ty{ Ր pathՐ bufferՐ extՐ punctuated Ր parse_quote Ր parse_quote Ր parse_macro_input؆Ր parse_macro_inputՐ spannedՐ gen̈Ր __private Ր custom_keywordՐ custom_keywordՐ impl_parse_for_custom_keywordՐ !impl_to_tokens_for_custom_keyword!Ր impl_clone_for_custom_keywordՐ $impl_extra_traits_for_custom_keyword$Ր custom_punctuationՐ custom_punctuation҉Ր !impl_parse_for_custom_punctuationǒ!Ր %impl_to_tokens_for_custom_punctuation%Ր !impl_clone_for_custom_punctuation!Ր (impl_extra_traits_for_custom_punctuation(Ր custom_punctuation_reprՐ custom_punctuation_unexpectedջՐ stringify_punctżՐ sealedՐ spanՐ threadՐ lookahead Ր parseՐ verbatimՐ printՐ rustdoc_workaroundՐ errorՐ parse Ր parse2 Ր parse_str Ր privateՐ privateՐ ErrorՐ ResultՐ Token)Ր custom_punctuation_lenޭ3Ր AttrStyleb *Ր Attributeb )Ր Metac*Ր MetaListc*Ր MetaNameValuec *Ր NestedMetac *Ր Fieldd*Ր Fieldsd*Ր FieldsNamedd *Ր FieldsUnnamedd *Ր Variante*Ր VisCratee*Ր VisPublice *Ր VisRestrictede *Ր Visibilitye *Ր Exprg*Ր ExprArrayg ,Ր ExprAssigng ,Ր ExprAssignOpg ,Ր ExprAsynch ,Ր ExprAwaith ,Ր ExprBinaryh ,Ր ExprBlockh ,Ր ExprBoxh,Ր ExprBreakh ,Ր ExprCallh,Ր ExprCasth,Ր ExprClosureh ,Ր ExprContinueh ,Ր ExprFieldh ,Ր ExprForLoopi ,Ր ExprGroupi ,Ր ExprIfi,Ր ExprIndexi -Ր ExprLeti-Ր ExprLiti-Ր ExprLoopi-Ր ExprMacroi -Ր ExprMatchi -Ր ExprMethodCalli-Ր ExprPareni -Ր ExprPathj-Ր ExprRangej -Ր ExprReferencej -Ր ExprRepeatj -Ր ExprReturnj -Ր ExprStructj -Ր ExprTryj-Ր ExprTryBlockj -Ր ExprTuplej -Ր ExprTypej-Ր ExprUnaryj -Ր ExprUnsafek -Ր ExprWhilek -Ր ExprYieldk -Ր Indexk-Ր Memberk-Ր BoundLifetimesl.Ր ConstParaml .Ր GenericParaml -Ր Genericsl-Ր LifetimeDefl .Ր PredicateEqm .Ր PredicateLifetimem.Ր PredicateTypem .Ր TraitBoundm .Ր TraitBoundModifierm.Ր TypeParamm .Ր TypeParamBoundm.Ր WhereClausem .Ր WherePredicaten.Ր Litu.Ր LitBoolu/Ր LitByteu/Ր LitByteu /Ր LitByteStru /Ր LitByteStru /Ր LitCharu/Ր LitCharu /Ր LitFloatu/Ր LitFloatu /Ր LitIntu/Ր LitIntu /Ր LitStru/Ր LitStru /Ր StrStylev/Ր Macrow/Ր MacroDelimiterw/Ր Datax/Ր DataEnumx/Ր DataStructx /Ր DataUnionx /Ր DeriveInputx /Ր BinOpy/Ր UnOpy0Ր AngleBracketedGenericArguments1Ր Bindingڀ1Ր Constraint 2Ր GenericArgument1Ր ParenthesizedGenericArguments2Ր Path1Ր PathArguments 1Ր PathSegment 1Ր QSelfŁ2Ր + 0000011111111111111111111111111111 IdentExt Parse ParseStream   Result path  Punct Spacing TokenTree   Punctuated  TokenStream  parsing  printing  proc_macro_  proc_macro2_  unicode_xid_  quote` macros` groupa parenthesized @ bracedA bracketed B tokenaC identa Identa Identa  attrb AttributeArgsc  bigintc datad expre genericsk ImplGenericso  Turbofisho  TypeGenericso  lifetimet Lifetimeu  Lifetimeu  litu  Litu  LitBoolu  macv  derivew  opy  ty{  buffer ext punctuated  parse_quote  parse_quote  parse_macro_input؆ parse_macro_input spanned gen̈ __private  custom_keyword custom_keyword impl_parse_for_custom_keyword !impl_to_tokens_for_custom_keyword! impl_clone_for_custom_keyword $impl_extra_traits_for_custom_keyword$ custom_punctuation custom_punctuation҉ !impl_parse_for_custom_punctuationǒ! %impl_to_tokens_for_custom_punctuation% !impl_clone_for_custom_punctuation! (impl_extra_traits_for_custom_punctuation( custom_punctuation_repr custom_punctuation_unexpectedջ stringify_punctż sealed span thread lookahead  parse verbatim print rustdoc_workaround error parse  parse2  parse_str  private private Error Token) Type̔0 TypeArrayҪ 1 TypeBareFn 1 TypeGroup޲ 1 TypeImplTrait 1 TypeInfer 1 TypeMacro˻ 1 TypeNever 1 TypeParen 1 TypePath1 TypePtr1 TypeReference 1 TypeSlice 1 TypeTraitObject1 TypeTuple 1 Abi1 BareFnArg 1 Variadic1 ReturnType 1 custom_punctuation_lenޭ3 AttrStyleb * Attributeb ) Metac* MetaListc* MetaNameValuec * NestedMetac * Fieldd* Fieldsd* FieldsNamedd * FieldsUnnamedd * Variante* VisCratee* VisPublice * VisRestrictede * Visibilitye * Exprg* ExprArrayg , ExprAssigng , ExprAssignOpg , ExprAsynch , ExprAwaith , ExprBinaryh , ExprBlockh , ExprBoxh, ExprBreakh , ExprCallh, ExprCasth, ExprClosureh , ExprContinueh , ExprFieldh , ExprForLoopi , ExprGroupi , ExprIfi, ExprIndexi - ExprLeti- ExprLiti- ExprLoopi- ExprMacroi - ExprMatchi - ExprMethodCalli- ExprPareni - ExprPathj- ExprRangej - ExprReferencej - ExprRepeatj - ExprReturnj - ExprStructj - ExprTryj- ExprTryBlockj - ExprTuplej - ExprTypej- ExprUnaryj - ExprUnsafek - ExprWhilek - ExprYieldk - Indexk- Memberk- BoundLifetimesl. ConstParaml . GenericParaml - Genericsl- LifetimeDefl . PredicateEqm . PredicateLifetimem. PredicateTypem . TraitBoundm . TraitBoundModifierm. TypeParamm . TypeParamBoundm. WhereClausem . WherePredicaten. Litu. LitBoolu/ LitByteu/ LitByteu / LitByteStru / LitByteStru / LitCharu/ LitCharu / LitFloatu/ LitFloatu / LitIntu/ LitIntu / LitStru/ LitStru / StrStylev/ Macrow/ MacroDelimiterw/ Datax/ DataEnumx/ DataStructx / DataUnionx / DeriveInputx / BinOpy/ UnOpy0 AngleBracketedGenericArguments1 Bindingڀ1 Constraint 2 GenericArgument1 ParenthesizedGenericArguments2 Path1 PathArguments 1 PathSegment 1 QSelfŁ2 1   input    input  6input allow_plus  6  input     input     input     input     input    inputallow_mut_self   ľ ľ input  ľ  ޼ ޼ input  ޼   input    ѽ ѽ input  ѽ   input    input   input allow_plus  6  input  6  input   bounds      input  6input allow_plus  6  input     input     input    input allow_plusՒ  6 16input  6 ,,,2  2inputallow_mut_self 6 16inputު ت 6 66input  6 FilterAttrs  TokensOrDefault TokensOrDefault TokenStreamܯ ϯ ToTokensu TokenStreamExt Punctuated  parsing  printing  proc_macro_  proc_macro2_  unicode_xid_  quote` macros` groupa parenthesized @ bracedA bracketed B tokenaC identa Identa Identa  attrb AttributeArgsc  bigintc datad expre genericsk ImplGenericso  Turbofisho  TypeGenericso  lifetimet Lifetimeu  Lifetimeu  litu  Litu  LitBoolu  macv  derivew  opy  ty{  path buffer ext punctuated  parse_quote  parse_quote  parse_macro_input؆ parse_macro_input spanned gen̈ __private  custom_keyword custom_keyword impl_parse_for_custom_keyword !impl_to_tokens_for_custom_keyword! impl_clone_for_custom_keyword $impl_extra_traits_for_custom_keyword$ custom_punctuation custom_punctuation҉ !impl_parse_for_custom_punctuationǒ! %impl_to_tokens_for_custom_punctuation% !impl_clone_for_custom_punctuation! (impl_extra_traits_for_custom_punctuation( custom_punctuation_repr custom_punctuation_unexpectedջ stringify_punctż sealed span thread lookahead  parse verbatim print rustdoc_workaround error parse  parse2  parse_str  private private Error Result Token) Type̔0 TypeArrayҪ 1 TypeBareFn 1 TypeGroup޲ 1 TypeImplTrait 1 TypeInfer 1 TypeMacro˻ 1 TypeNever 1 TypeParen 1 TypePath1 TypePtr1 TypeReference 1 TypeSlice 1 TypeTraitObject1 TypeTuple 1 Abi1 BareFnArg 1 Variadic1 ReturnType 1 custom_punctuation_lenޭ3 AttrStyleb * Attributeb ) Metac* MetaListc* MetaNameValuec * NestedMetac * Fieldd* Fieldsd* FieldsNamedd * FieldsUnnamedd * Variante* VisCratee* VisPublice * VisRestrictede * Visibilitye * Exprg* ExprArrayg , ExprAssigng , ExprAssignOpg , ExprAsynch , ExprAwaith , ExprBinaryh , ExprBlockh , ExprBoxh, ExprBreakh , ExprCallh, ExprCasth, ExprClosureh , ExprContinueh , ExprFieldh , ExprForLoopi , ExprGroupi , ExprIfi, ExprIndexi - ExprLeti- ExprLiti- ExprLoopi- ExprMacroi - ExprMatchi - ExprMethodCalli- ExprPareni - ExprPathj- ExprRangej - ExprReferencej - ExprRepeatj - ExprReturnj - ExprStructj - ExprTryj- ExprTryBlockj - ExprTuplej - ExprTypej- ExprUnaryj - ExprUnsafek - ExprWhilek - ExprYieldk - Indexk- Memberk- BoundLifetimesl. ConstParaml . GenericParaml - Genericsl- LifetimeDefl . PredicateEqm . PredicateLifetimem. PredicateTypem . TraitBoundm . TraitBoundModifierm. TypeParamm . TypeParamBoundm. WhereClausem . WherePredicaten. Litu. LitBoolu/ LitByteu/ LitByteu / LitByteStru / LitByteStru / LitCharu/ LitCharu / LitFloatu/ LitFloatu / LitIntu/ LitIntu / LitStru/ LitStru / StrStylev/ Macrow/ MacroDelimiterw/ Datax/ DataEnumx/ DataStructx / DataUnionx / DeriveInputx / BinOpy/ UnOpy0 AngleBracketedGenericArguments1 Bindingڀ1 Constraint 2 GenericArgument1 ParenthesizedGenericArguments2 Path1 PathArguments 1 PathSegment 1 QSelfŁ2 1  u selftokens   , u selftokens   , u selftokens   , u selftokens   , u selfмtokensּż   , ľ uľ selftokens  ľ , u selftokens   , u selftokens   , u selftokens   , u selftokens   , u selftokens   , u selftokens   ,޼ u޼ selftokens  ޼ ,ѽ uѽ selftokens  ѽ , u selftokens   ,6u6selftokens  6,1u7selftokens  7,6u6selftokens  6, Punctuated  proc_macro_  proc_macro2_  unicode_xid_ quote`macros`groupa parenthesized @bracedA bracketed BtokenaCidentaIdentaIdenta attrb AttributeArgsc bigintcdatadexpregenericsk ImplGenericso  Turbofisho  TypeGenericso lifetimetLifetimeu Lifetimeu litu Litu LitBoolu macv derivew opy ty{ pathbufferext punctuated  parse_quote  parse_quote parse_macro_input؆parse_macro_inputspannedgen̈ __private custom_keywordcustom_keywordimpl_parse_for_custom_keyword!impl_to_tokens_for_custom_keyword!impl_clone_for_custom_keyword$impl_extra_traits_for_custom_keyword$custom_punctuationcustom_punctuation҉!impl_parse_for_custom_punctuationǒ!%impl_to_tokens_for_custom_punctuation%!impl_clone_for_custom_punctuation!(impl_extra_traits_for_custom_punctuation(custom_punctuation_reprcustom_punctuation_unexpectedջstringify_punctżsealedspanthread lookahead parseverbatimprintrustdoc_workarounderrorparse parse2  parse_str privateprivateErrorResultToken)custom_punctuation_lenޭ3 AttrStyleb * Attributeb )Metac*MetaListc* MetaNameValuec * NestedMetac *Fieldd*Fieldsd* FieldsNamedd * FieldsUnnamedd *Variante*VisCratee* VisPublice * VisRestrictede * Visibilitye *Exprg* ExprArrayg , ExprAssigng , ExprAssignOpg , ExprAsynch , ExprAwaith , ExprBinaryh , ExprBlockh ,ExprBoxh, ExprBreakh ,ExprCallh,ExprCasth, ExprClosureh , ExprContinueh , ExprFieldh , ExprForLoopi , ExprGroupi ,ExprIfi, ExprIndexi -ExprLeti-ExprLiti-ExprLoopi- ExprMacroi - ExprMatchi -ExprMethodCalli- ExprPareni -ExprPathj- ExprRangej - ExprReferencej - ExprRepeatj - ExprReturnj - ExprStructj -ExprTryj- ExprTryBlockj - ExprTuplej -ExprTypej- ExprUnaryj - ExprUnsafek - ExprWhilek - ExprYieldk -Indexk-Memberk-BoundLifetimesl. ConstParaml . GenericParaml -Genericsl- LifetimeDefl . PredicateEqm .PredicateLifetimem. PredicateTypem . TraitBoundm .TraitBoundModifierm. TypeParamm .TypeParamBoundm. WhereClausem .WherePredicaten.Litu.LitBoolu/LitByteu/LitByteu / LitByteStru / LitByteStru /LitCharu/LitCharu /LitFloatu/LitFloatu /LitIntu/LitIntu /LitStru/LitStru /StrStylev/Macrow/MacroDelimiterw/Datax/DataEnumx/ DataStructx / DataUnionx / DeriveInputx /BinOpy/UnOpy0Abi{1 BareFnArg{ 1 ReturnType{ 1Type{0 TypeArray{ 1 TypeBareFn{ 1 TypeGroup| 1 TypeImplTrait| 1 TypeInfer| 1 TypeMacro| 1 TypeNever| 1 TypeParen| 1TypePath|1TypePtr|1 TypeReference| 1 TypeSlice| 1TypeTraitObject}1 TypeTuple} 1Variadic}1-111111222   ÿ segment  ÿ ÿ  ÿ ident  ÿ ÿ      self    self  7ߏIdentExtParse ParseStream  ResultŐŐ Punctuated parsingߏprinting proc_macro_  proc_macro2_  unicode_xid_ quote`macros`groupa parenthesized @bracedA bracketed BtokenaCidentaIdentaIdenta attrb AttributeArgsc bigintcdatadexpregenericsk ImplGenericso  Turbofisho  TypeGenericso lifetimetLifetimeu Lifetimeu litu Litu LitBoolu macv derivew opy ty{ pathbufferext punctuated  parse_quote  parse_quote parse_macro_input؆parse_macro_inputspannedgen̈ __private custom_keywordcustom_keywordimpl_parse_for_custom_keyword!impl_to_tokens_for_custom_keyword!impl_clone_for_custom_keyword$impl_extra_traits_for_custom_keyword$custom_punctuationcustom_punctuation҉!impl_parse_for_custom_punctuationǒ!%impl_to_tokens_for_custom_punctuation%!impl_clone_for_custom_punctuation!(impl_extra_traits_for_custom_punctuation(custom_punctuation_reprcustom_punctuation_unexpectedջstringify_punctżsealedspanthread lookahead parseverbatimprintrustdoc_workarounderrorparse parse2  parse_str privateprivateErrorToken)Path1 PathSegment 1 PathArguments 1GenericArgument1AngleBracketedGenericArguments1Binding1 Constraint 2ParenthesizedGenericArguments2QSelf2custom_punctuation_lenޭ3 AttrStyleb * Attributeb )Metac*MetaListc* MetaNameValuec * NestedMetac *Fieldd*Fieldsd* FieldsNamedd * FieldsUnnamedd *Variante*VisCratee* VisPublice * VisRestrictede * Visibilitye *Exprg* ExprArrayg , ExprAssigng , ExprAssignOpg , ExprAsynch , ExprAwaith , ExprBinaryh , ExprBlockh ,ExprBoxh, ExprBreakh ,ExprCallh,ExprCasth, ExprClosureh , ExprContinueh , ExprFieldh , ExprForLoopi , ExprGroupi ,ExprIfi, ExprIndexi -ExprLeti-ExprLiti-ExprLoopi- ExprMacroi - ExprMatchi -ExprMethodCalli- ExprPareni -ExprPathj- ExprRangej - ExprReferencej - ExprRepeatj - ExprReturnj - ExprStructj -ExprTryj- ExprTryBlockj - ExprTuplej -ExprTypej- ExprUnaryj - ExprUnsafek - ExprWhilek - ExprYieldk -Indexk-Memberk-BoundLifetimesl. ConstParaml . GenericParaml -Genericsl- LifetimeDefl . PredicateEqm .PredicateLifetimem. PredicateTypem . TraitBoundm .TraitBoundModifierm. TypeParamm .TypeParamBoundm. WhereClausem .WherePredicaten.Litu.LitBoolu/LitByteu/LitByteu / LitByteStru / LitByteStru /LitCharu/LitCharu /LitFloatu/LitFloatu /LitIntu/LitIntu /LitStru/LitStru /StrStylev/Macrow/MacroDelimiterw/Datax/DataEnumx/ DataStructx / DataUnionx / DeriveInputx /BinOpy/UnOpy0Abi{1 BareFnArg{ 1 ReturnType{ 1Type{0 TypeArray{ 1 TypeBareFn{ 1 TypeGroup| 1 TypeImplTrait| 1 TypeInfer| 1 TypeMacro| 1 TypeNever| 1 TypeParen| 1TypePath|1TypePtr|1 TypeReference| 1 TypeSlice| 1TypeTraitObject}1 TypeTuple} 1Variadic}10  input  -  input   ֣input  0  inputԭ έ    input   inputѸ ˸ input expr_style ׹ 7  input    input  -selfident - self  -,input expr_style  -inputpath expr_style %   ,input expr_style  2 TokensOrDefaultTokensOrDefault TokenStreamΈ ToTokensucmp Punctuated parsingߏprinting proc_macro_  proc_macro2_  unicode_xid_ quote`macros`groupa parenthesized @bracedA bracketed BtokenaCidentaIdentaIdenta attrb AttributeArgsc bigintcdatadexpregenericsk ImplGenericso  Turbofisho  TypeGenericso lifetimetLifetimeu Lifetimeu litu Litu LitBoolu macv derivew opy ty{ pathbufferext punctuated  parse_quote  parse_quote parse_macro_input؆parse_macro_inputspannedgen̈ __private custom_keywordcustom_keywordimpl_parse_for_custom_keyword!impl_to_tokens_for_custom_keyword!impl_clone_for_custom_keyword$impl_extra_traits_for_custom_keyword$custom_punctuationcustom_punctuation҉!impl_parse_for_custom_punctuationǒ!%impl_to_tokens_for_custom_punctuation%!impl_clone_for_custom_punctuation!(impl_extra_traits_for_custom_punctuation(custom_punctuation_reprcustom_punctuation_unexpectedջstringify_punctżsealedspanthread lookahead parseverbatimprintrustdoc_workarounderrorparse parse2  parse_str privateprivateErrorResultToken)Path1 PathSegment 1 PathArguments 1GenericArgument1AngleBracketedGenericArguments1Binding1 Constraint 2ParenthesizedGenericArguments2QSelf2custom_punctuation_lenޭ3 AttrStyleb * Attributeb )Metac*MetaListc* MetaNameValuec * NestedMetac *Fieldd*Fieldsd* FieldsNamedd * FieldsUnnamedd *Variante*VisCratee* VisPublice * VisRestrictede * Visibilitye *Exprg* ExprArrayg , ExprAssigng , ExprAssignOpg , ExprAsynch , ExprAwaith , ExprBinaryh , ExprBlockh ,ExprBoxh, ExprBreakh ,ExprCallh,ExprCasth, ExprClosureh , ExprContinueh , ExprFieldh , ExprForLoopi , ExprGroupi ,ExprIfi, ExprIndexi -ExprLeti-ExprLiti-ExprLoopi- ExprMacroi - ExprMatchi -ExprMethodCalli- ExprPareni -ExprPathj- ExprRangej - ExprReferencej - ExprRepeatj - ExprReturnj - ExprStructj -ExprTryj- ExprTryBlockj - ExprTuplej -ExprTypej- ExprUnaryj - ExprUnsafek - ExprWhilek - ExprYieldk -Indexk-Memberk-BoundLifetimesl. ConstParaml . GenericParaml -Genericsl- LifetimeDefl . PredicateEqm .PredicateLifetimem. PredicateTypem . TraitBoundm .TraitBoundModifierm. TypeParamm .TypeParamBoundm. WhereClausem .WherePredicaten.Litu.LitBoolu/LitByteu/LitByteu / LitByteStru / LitByteStru /LitCharu/LitCharu /LitFloatu/LitFloatu /LitIntu/LitIntu /LitStru/LitStru /StrStylev/Macrow/MacroDelimiterw/Datax/DataEnumx/ DataStructx / DataUnionx / DeriveInputx /BinOpy/UnOpy0Abi{1 BareFnArg{ 1 ReturnType{ 1Type{0 TypeArray{ 1 TypeBareFn{ 1 TypeGroup| 1 TypeImplTrait| 1 TypeInfer| 1 TypeMacro| 1 TypeNever| 1 TypeParen| 1TypePath|1TypePtr|1 TypeReference| 1 TypeSlice| 1TypeTraitObject}1 TypeTuple} 1Variadic}11 u selftokens -,uselftokens -, u selftokens 7, u selftokens   , u selfћtokensכƛ   , u self߮tokensԮ   , u selftokens   , u selftokensų   , tokensɵqselfpath!  7  pmLifetime Lifetime  Delimiter  GroupIdentLiteralPunctSpacingSpan TokenStream   TokenTree   PhantomData  PhantomData ptr  ͷ    ׺  Ȼ  ͷ  ͷ          ׺  ׺  Ȼ  Ȼ      streamup ׁ Ȼ stream   stream  ׁ self    ڴ,'aȻ Ȼ  'a 'a 'a8ptrscope 'aȻ Ȼ 8self  'a8 'a self  'a88self  'a 8self  'a8selfdelimĆ 'a8,8 8self  'a8 8self  'a8 8self  'a8׺ 8self  'a8‹ 8self  'a8ׁ self  'a828self  'a8 self  'a88ڼ    ڼ ڼ ڼ  ڼ 'a8'a8self  'a 88'a8'a88selfother 'a 8 8 abɯ ڴ,cursor  ڴ, cursorʱ  ڴ, CursorPeek ParseStream  Resultƴƴ lookahead Ӵ CustomToken Ident۷input۾ Ѿ 2const peek_any: private::PeekFn = private::PeekFn;2 self      input  ,self  ,   88cursor  ڴ, ,  Ident    88    self      iter#  FromIterator 7IndexIndexMutoption< slice$ vec.vecParse ParseStream  ResultToken        ÿ ȿ  self  ÿ ȿ   self  ÿ ȿ 8self  ÿ ȿ 8 ÿ self  ÿ ȿ    ÿ self  ÿ ȿ 88self  ÿ ȿ 88self  ÿ ȿ 8ÿ self  ÿ ȿ 8ÿ self  ÿ ȿ 8ÿ ȿ self  ÿ ȿ 8ÿ ȿ self  ÿ ȿ  ÿ ȿ selfvalue ÿ ȿ 8ÿ self punctuation  ÿ ȿ 8ȿ self  ÿ ȿ 8 self ҄ ÿ ȿ 8self  ÿ ȿ 8selfvalueۉ ÿ ȿ 8ÿ selfindexvalue  ÿ ȿ 8ÿ self  ÿ ȿ 8input ۔ ÿ ȿ  inputŚparser ÿ ȿ  -8input£  ÿ ȿ 8inputԩparser ÿ ȿ 88   self ݮ ÿ ȿ 8   7 ÿ iú ÿ ȿ    7 ÿ selfi ÿ ȿ 8  7  i ÿ ȿ    7  selfi ÿ ȿ 8  7 ÿ ÿ self  ÿ ȿ   7  'a 78 'a 'a self  'a 887  'a878 'a 'a self  'a 887    ÿ ȿ   'a K'a Ÿ 'a  'a 98 'a  'aself  'a  889self  'a  8 'a 88self  'a  889 'a 88self  'a  8 'a 8self  'a  88 'a K'a8Ÿ 'a 'a 98 'a  'aself  'a  889self  'a  88 'a 88self  'a  889 'a 88self  'a  8  81  Ÿÿ 898 self  ÿ ȿ  889self  ÿ ȿ  88 888self  ÿ ȿ 88 888self  ÿ ȿ 8 88self  ÿ ȿ 88 81ÿ  898ÿ self  ÿ  889self  ÿ  88 888self  ÿ 88 888self  ÿ 8 88self  ÿ 88 'a 'a 9 'a 'a  self  'a8'a9'a   'a K'a8Ÿ 'a   'a 'a  'a 8self  'a  88 'a 98 'a self  'a  889self  'a  88 'a 88self  'a  889 'a 88self  'a  8 'a 98 'a self  'a  889 'a 88self  'a  889 'a 88self  'a  8 'a 8self  'a  88 'a self  'a  'a 9'a  'a ˅'a 9 'a 'a   'a K'a8ӇŸ 'a  'a 'a  'a 98 'a self  'a  889self׊ ̊ 'a  88 'a 88self  'a  889 'a 88self  'a  8 'a 98 'a self  'a  889 'a 88self  'a  889 'a 88self  'a  8 'a   ÿ •ȿ Εÿ  ÿ ȿ ÿ ȿ  ÿ ȿ ÿ ȿ ʕ ÿ ȿ ÿ  ÿ ȿ ÿ   self  ÿ ȿ  ÿ self  ÿ ȿ   8self  ÿ ȿ   8self  ÿ ȿ 9 ȿ td ÿ ȿ ÿ ȿ self  ÿ ȿ  ÿ 9   self  ÿ ȿ 9    ÿ selfindex ÿ ȿ 8     selfΧindexԧ ÿ ȿ 8 9 TokenStream ToTokensتuتTokenStreamExtiter# FromIterator 7IndexIndexMutoption<slice$vec.vecParse ParseStream Token Punctuated PairsPairsMut IntoPairs IntoIterIter IterTrait  PrivateIter empty_punctuated_iter IterMut IterMutTrait PrivateIterMutempty_punctuated_iter_mut PairprintingResult  u selftokens ÿ ȿ 8,  u selftokens ÿ ȿ 9, Parse ParseStream  ParserResult TokenStream  Punctuated attr Attribute )   token_stream  ÿ ׁ ÿ  input  ǿ8 ÿ ÿ input  ÿ -input  -   input  ÿ ȿ 8؆Parse ParseStream  ParserResult TokenStream  AttributeArgs   token_stream  ÿ 8-input  ǿ8 ÿ ÿ input  ÿ ---input  -SpanToTokens#6self  8  ÿ ÿ selfȕ • ÿ 8 ̈2 CloneCloneEqȶȶEqȶȶ PartialEq̶ ̶ PartialEq̶ ̶ FromDefaultDefaultfmtDebugEDebugE Formatter E HashӷGӷHashӷGӷHasherٷGٷCopyCopyNoneNoneSomeSomeErrƸƸErrƸƸOk˸˸Ok˸˸quoteSpan TokenStream2  IntoSpans׹ ʹ TokenStream ToTokensuTokenStreamExt!  Ǽۼ       ۽Span  self  1  self   2  !selfۿ п  !3  !self   !11self  22!!!self  !!33!!!self  !! spans   ,1spans  92!!spans  9!3!!spans  9!fmtDebugEDebugEthreadThreadIdN  ÿ ÿ  N 99 99 9value  ÿ ÿ 9self  ÿ  98 9E9self formatter  ÿ ҭ9// CursorerrorErrorSealed  IntoSpans Token Delimiter  SpanRefCell  'a 'a 4, scopecursor  ڴ, lookahead peekdisplay&   ڴ, ,'aselftoken 'a  9 self  'a99    self   cursor delimiter  ڴ,, Cursor   TokenBufferé é errorܩ թ  lookahead   proc_macro   Punctuated  Tokenū   proc_macro2Ы ޫ  Delimiter  Group  Literal  Punct  Span   TokenStream   TokenTree  Cell  fmtì ɬ DebugϬ EϬ DebugϬ EϬ Display֬ E֬  PhantomData   PhantomData  mem  Deref  Rc " FromStr X Error  Result   Lookahead1  Peek   discouraged "Parse " ParseStreamڲ " ParseBuffer " StepCursor "advance_step_cursor  "new_parse_buffer  " Unexpected " cell_clone "inner_unexpected  "get_unexpected  "!span_of_unexpected_ignoring_nones ! "Parser""tokens_to_parse_buffer" " parse_scoped" " parse_stream" "Nothing""Nothing""Cursor " TokenBufferé "errorܩ " lookahead " proc_macro " Punctuated "Tokenū " proc_macro2Ы " Delimiter "Group "Literal "Punct "Span " TokenStream " TokenTree "Cell "fmtì "DebugϬ E"DebugϬ E"Display֬ E" PhantomData " PhantomData "mem  "Deref "Rc ""FromStr X"Error "Result " Lookahead1 "Peek "0 " self"fork"" 8 'a9self#fork## 'a 9 9 inputð    ǿ8ڲ 'a'a 'aǹ  о  'a  'a9self    'a 9'aE9self f   'a 9//'aE9self f   'a 9// 'c'a   'c  9'a'c'a9 'cself    'c'a 9 9'c'a9'c'a9self    'c'a 99'c'aself message   'c'a9 proof to  'c'a'c'a'c'a scope cursor  unexpected '  ڴ,                           self        cell   ÿ  ÿ ÿ  buffer     / buffer   9  !cursor   ڴ,/'aself    'a  9self function   'a 9 selfЍ!token֍!! 'a 9 self!token!Ԙ! 'a 9 self!token!֜! 'a 9 self!parser!ެ! 'a 998self! ! 'a9self! ! 'a9'aself! ! 'a99self!message!! 'a 9 self"function"" 'a9self" " 'a9 self" ْ" 'a9'aself" " 'a9,!buffer!peek! 99!buffer!peek! 99   inputŕ" " ÿ   ÿ 9input" " ÿ 9ׁ ׁ input" " ׁ 22input" ܚ" 2ͷ ͷ input" " ͷ   input" "  ׺ ׺ input" " ׺ "ɨ" Ψ"selfҪ"tokensت"˪" ׁ 9self"tokens"" 89self"s"" ,9self"scope"tokens"!"  ׁ 9self"input"ֶ" 9"tokens"  8 " self"tokensź""  ׁ self"scopež"tokensҾ"!"   ׁ -self"input""  - " f"scope"tokens"  ׁ - " f"input" -"999_input" " 9 ParseBuffer# #  ParseStream# #  TokenStream# #iter### y#beginɌ#end# 'a'a 'a9ׁ  TokenStream# #ToTokens#u#< ԏ#'a # 'a  'a 99 'a u9self#tokens#ސ# 'a  9, parse_module CursorĒ## ThreadBoundߒ# В# Delimiter# # Group##Ident##LexError##Literal##Punct##Spacing##Span## TokenStreamœ# œ#  TokenTreeғ# ғ# ToTokens#u#fmt##Debug#E#Debug#E#Display#E# FromIteratorǔ# 7#sliceޔ#$ٔ# vec#.#vec## # -ѥ#ݥ#4 # 9#  #9Ʃ#Ԛ-span#message## ÿ  ÿ tokens#message## ÿ ÿ self# #   self# # 9ׁ self# # ׁ self#another##  9self# #  9ׁ  #scope#cursor#message#$ ÿ  ڴ,ÿ  #start#end#message#! ÿ  ÿ Eself# formatter# # 9//9E9self# formatter# # 9//Eself# formatter# # 9//self# # 999self# # 99err# # ؀:7##self# # 7#:#19 :9:#self# #  ::9 'a7:##'aself# # 'a::7#'a#K'a9'a9:#self# # 'a ::97self#iter## ÿ 9ÿ  tokens  ÿ 8- tokens  ÿ ׁ -  s ÿ ,-‹ ‹ cursor    ڴ,  , ِinput ސ  ‹ ‹   cursor    ڴ,  , ِinput ސ      cursor    ڴ,  , ِinput ސ      cursor    ڴ,  , ِinput ސ      cursor  ڴ, ,ِinputސ    ے ے cursor  ڴ, ,ِinputސ  ے ے ̓ ̓ cursor  ڴ, ,ِinputސ  ̓ ̓   cursor  ڴ, ,ِinputސ      cursor  ڴ, ,ِinputސ    ͷ ͷ cursor  ڴ, ,ِinputސ  ͷ ͷ   cursor  ڴ,˘ ,  ׺ ׺ cursor  ڴ,˘ ,׺ ׺ 22cursor  ڴ,˘ ,221 ,ѿ1  spans  ,,, ,,,,,self  ,,,,,self۹ Թ , ,,,self   , :ԡ 1 span  ::: :::::self   :::u:selftokens :,::inputҳ ̳ :::cursor  ڴ, ,::ԡ 1 span  ל:ל:ל: ל:ל:ל:ל:ל:self   ל:ל:ל:uל:selftokens :,ל:ל:inputҳ ̳ ל:ל:ל:cursor  ڴ, ,ל:ל:ԡ 1 span  Ƞ:Ƞ:Ƞ: Ƞ:Ƞ:Ƞ:Ƞ:Ƞ:self   Ƞ:Ƞ:Ƞ:uȠ:selftokens :,Ƞ:Ƞ:inputҳ ̳ Ƞ:Ƞ:Ƞ:cursor  ڴ, ,Ƞ:Ƞ:ԡ 1 span  ::: :::::self   :::u:selftokens :,::inputҳ ̳ :::cursor  ڴ, ,::ԡ 1 span  ::: :::::self   :::u:selftokens :,::inputҳ ̳ :::cursor  ڴ, ,::ԡ 1 span  ::: :::::self   :::u:selftokens ڭ:,::inputҳ ̳ :::cursor  ڴ, ,::ԡ 1 span  ::: :::::self   :::u:selftokens ˱:,::inputҳ ̳ :::cursor  ڴ, ,::ԡ 1 span  ::: :::::self   :::u:selftokens :,::inputҳ ̳ :::cursor  ڴ, ,::ҁԡ 1 ҁspan  ::: :::::self   :::u:selftokens :,::inputҳ ̳ :::cursor  ڴ, ,::ԡ 1 span  ߻:߻:߻: ߻:߻:߻:߻:߻:self   ߻:߻:߻:u߻:selftokens :,߻:߻:inputҳ ̳ ߻:߻:߻:cursor  ڴ, ,߻:߻:ԡ 1 span  п:п:п: п:п:п:п:п:self   п:п:п:uп:selftokens :,п:п:inputҳ ̳ п:п:п:cursor  ڴ, ,п:п:ԡ 1 span  ::: :::::self   :::u:selftokens :,::inputҳ ̳ :::cursor  ڴ, ,::ԡ 1 span  ::: :::::self   :::u:selftokens :,::inputҳ ̳ :::cursor  ڴ, ,::ԡ 1 span  ::: :::::self   :::u:selftokens :,::inputҳ ̳ :::cursor  ڴ, ,::ԡ 1 span  ::: :::::self   :::u:selftokens :,::inputҳ ̳ :::cursor  ڴ, ,::˄ԡ 1 ˄span  ::: :::::self   :::u:selftokens :,::inputҳ ̳ :::cursor  ڴ, ,::ԡ 1 span  ::: :::::self   :::u:selftokens :,::inputҳ ̳ :::cursor  ڴ, ,::ԡ 1 span  ::: :::::self   :::u:selftokens :,::inputҳ ̳ :::cursor  ڴ, ,::ԡ 1 span  ::: :::::self   :::u:selftokens :,::inputҳ ̳ :::cursor  ڴ, ,::ԡ 1 span  ::: :::::self   :::u:selftokens :,::inputҳ ̳ :::cursor  ڴ, ,::Ԇԡ 1 Ԇspan  ::: :::::self   :::u:selftokens :,::inputҳ ̳ :::cursor  ڴ, ,::ԡ 1 span  ::: :::::self   :::u:selftokens :,::inputҳ ̳ :::cursor  ڴ, ,::ԡ 1 span  ::: :::::self   :::u:selftokens :,::inputҳ ̳ :::cursor  ڴ, ,::ԡ 1 span  ::: :::::self   :::u:selftokens :,::inputҳ ̳ :::cursor  ڴ, ,::ԡ 1 span  ::: :::::self   :::u:selftokens :,::inputҳ ̳ :::cursor  ڴ, ,::؈ԡ 1 ؈span  ::: :::::self   :::u:selftokens :,::inputҳ ̳ :::cursor  ڴ, ,::ԡ 1 span  ::: :::::self   :::u:selftokens :,::inputҳ ̳ :::cursor  ڴ, ,::ĉԡ 1 ĉspan  с;с;с; с;с;с;с;с;self   с;с;с;uс;selftokens ;,с;с;inputҳ ̳ с;с;с;cursor  ڴ, ,с;с;ԡ 1 span  …;…;…; …;…;…;…;…;self   …;…;…;u…;selftokens ;,…;…;inputҳ ̳ …;…;…;cursor  ڴ, ,…;…;ԡ 1 span  ;;; ;;;;;self   ;;;u;selftokens ;,;;inputҳ ̳ ;;;cursor  ڴ, ,;;ԡ 1 span  ;;; ;;;;;self   ;;;u;selftokens ;,;;inputҳ ̳ ;;;cursor  ڴ, ,;;ԡ 1 span  ;;; ;;;;;self   ;;;u;selftokens Ԓ;,;;inputҳ ̳ ;;;cursor  ڴ, ,;;ϋԡ 1 ϋspan  ;;; ;;;;;self   ;;;u;selftokens Ŗ;,;;inputҳ ̳ ;;;cursor  ڴ, ,;;ԡ 1 span  ;;; ;;;;;self   ;;;u;selftokens ;,;;inputҳ ̳ ;;;cursor  ڴ, ,;;ԡ 1 span  ;;; ;;;;;self   ;;;u;selftokens ;,;;inputҳ ̳ ;;;cursor  ڴ, ,;;ԡ 1 span  ٠;٠;٠; ٠;٠;٠;٠;٠;self   ٠;٠;٠;u٠;selftokens ;,٠;٠;inputҳ ̳ ٠;٠;٠;cursor  ڴ, ,٠;٠; ԡ 1  span  ʤ;ʤ;ʤ; ʤ;ʤ;ʤ;ʤ;ʤ;self   ʤ;ʤ;ʤ;uʤ;selftokens ;,ʤ;ʤ;inputҳ ̳ ʤ;ʤ;ʤ;cursor  ڴ, ,ʤ;ʤ;؍ԡ 1 ؍span  ;;; ;;;;;self   ;;;u;selftokens ;,;;inputҳ ̳ ;;;cursor  ڴ, ,;;ԡ 1 span  ;;; ;;;;;self   ;;;u;selftokens ;,;;inputҳ ̳ ;;;cursor  ڴ, ,;;Ǝԡ 1 Ǝspan  ;;; ;;;;;self   ;;;u;selftokens ܱ;,;;inputҳ ̳ ;;;cursor  ڴ, ,;;ԡ 1 span  ;;; ;;;;;self   ;;;u;selftokens ͵;,;;inputҳ ̳ ;;;cursor  ڴ, ,;;ԡ 1 span  ;;; ;;;;;self   ;;;u;selftokens ;, ;;inputҳ ̳ ; ;;cursor  ڴ, ,;;  ԡ 1 span  ; ;; ;;; ;;self   ;; ;u;selftokens ;, ;;inputҳ ̳ ; ;;cursor  ڴ, ,;;  ԡ 1 span  ; ;; ;;; ;;self   ;; ;u;selftokens ;, ;;inputҳ ̳ ; ;;cursor  ڴ, ,;;Ґ  ԡ 1 Ґspan  ; ;; ;;; ;;self   ;; ;u;selftokens ;, ;;inputҳ ̳ ; ;;cursor  ڴ, ,;;  ԡ 1 span  ; ;; ;;; ;;self   ;; ;u;selftokens ;, ;;inputҳ ̳ ; ;;cursor  ڴ, ,;;  ԡ 1 span  ; ;; ;;; ;;self   ;; ;u;selftokens ;, ;;inputҳ ̳ ; ;;cursor  ڴ, ,;;  ԡ 1 span  ; ;; ;;; ;;self   ;; ;u;selftokens ;, ;;inputҳ ̳ ; ;;cursor  ڴ, ,;;  ԡ 1 span  ; ;; ;;; ;;self   ;; ;u;selftokens ;, ;;inputҳ ̳ ;!!;;cursor  !ڴ, !,;;!!ԡ 1 span  !;!;; !;;;!;;self  ! ;;!;u;selftokens !;,!;;inputҳ ̳ !;!!;;cursor  !ڴ, !,;;!!ԡ 1 span  !;!;; !;;;!;;self  ! ;;!;u;selftokens !;,!;;inputҳ ̳ !;!!;;cursor  !ڴ, !,;;ϓ!!ԡ 1 ϓspan  !;!;; !;;;!;;self  ! ;;!;u;selftokens !;,!;;inputҳ ̳ !;!!;;cursor  !ڴ, !,;;! u selfNtokensNN !  ,!  inputN N ! !!  cursorN N !ڴ,N !,  ! u selfNtokensNN !  ,!  inputN N ! !!  cursorN N !ڴ,N !,  !̤ ṳ selfNtokensNN ! ̤ ,!̤ ̤ inputN N !̤ !!̤ ̤ cursorN N !ڴ,N !,̤ ̤ ! u selfNtokensNN !  ,!  inputN N ! !!  cursorN N !ڴ,N !,  ! u selfNtokensNN !  ,!  inputN N ! !!  cursorN N !ڴ,N !,  !$u;selfNtokensNN ! ;,!;;inputN N !;!!;;cursorN N !ڴ,N !,;;! u selfNtokensNN !  ,!  inputN N ! !!  cursorN N !ڴ,N !,  !أ uأ selfNtokensNN ! أ ,!أ أ inputN N !أ !!أ أ cursorN N !ڴ,N !,أ أ ! u selfNtokensNN !  ,!  inputN N ! !!  cursorN N !ڴ,N !,  "%u;selfNtokensNN " ;,";;inputN N ";"";;cursorN N "ڴ,N ",;;"%u;selfNtokensNN " ;,";;inputN N ";"";;cursorN N "ڴ,N ",;;"5u5selfNtokensNN " 5,"55inputN N "5""55cursorN N "ڴ,N ",55" u selfNtokensNN "  ,"  inputN N " ""  cursorN N "ڴ,N ",  " u selfNtokensNN "  ,"  inputN N " ""  cursorN N "ڴ,N ",  "%u<selfNtokensNN " <,"<<inputN N "<""<<cursorN N "ڴ,N ",<<"0u0selfNtokensNN " 0,"00inputN N "0""00cursorN N "ڴ,N ",00"&u<selfNtokensNN " <,"<<inputN N "<""<<cursorN N "ڴ,N ",<<"&uч<selfNtokensNN " ч<,"ч<ч<inputN N "ч<""ч<ч<cursorN N "ڴ,N ",ч<ч<"&u<selfNtokensNN " <,"<<inputN N "<""<<cursorN N "ڴ,N ",<<"&u<selfNtokensNN " <,"<<inputN N "<""<<cursorN N "ڴ,N ",<<" u selfNtokensNN "  ,"  inputN N " ""  cursorN N "ڴ,N ",  "ѫ uѫ selfNtokensNN " ѫ ,"ѫ ѫ inputN N "ѫ ""ѫ ѫ cursorN N "ڴ,N ",ѫ ѫ " u selfNtokensNN "  ,"  inputN N " ""  cursorN N "ڴ,N ",  " u selfNtokensNN "  ,"  inputN N " ""  cursorN N "ڴ,N ",  " u selfNtokensNN "  ,"  inputN N " ""  cursorN N "ڴ,N ",  # u selfNtokensNN #  ,#  inputN N # ##  cursorN N #ڴ,N #,  # u selfNtokensNN #  ,#  inputN N # ##  cursorN N #ڴ,N #,  # u selfNtokensNN #  ,#  inputN N # ##  cursorN N #ڴ,N #,  # u selfNtokensNN #  ,#  inputN N # ##  cursorN N #ڴ,N #,  # u selfNtokensNN #  ,#  inputN N # ##  cursorN N #ڴ,N #,  #'u<selfNtokensNN # <,#<<inputN N #<##<<cursorN N #ڴ,N #,<<# u selfNtokensNN #  ,#  inputN N # ##  cursorN N #ڴ,N #,  # u selfNtokensNN #  ,#  inputN N # ##  cursorN N #ڴ,N #,  #(u<selfNtokensNN # <,#<<inputN N #<##<<cursorN N #ڴ,N #,<<# u selfNtokensNN #  ,#  inputN N # ##  cursorN N #ڴ,N #,  # u selfNtokensNN #  ,#  inputN N # ##  cursorN N #ڴ,N #,  #(u<selfNtokensNN # <,#<<inputN N #<##<<cursorN N #ڴ,N #,<<#5u5selfNtokensNN # 5,#55inputN N #5##55cursorN N #ڴ,N #,55# u selfNtokensNN #  ,#  inputN N # ##  cursorN N #ڴ,N #,  #Դ uԴ selfNtokensNN # Դ ,#Դ Դ inputN N #Դ ##Դ Դ cursorN N #ڴ,N #,Դ Դ # u selfNtokensNN #  ,#  inputN N # ##  cursorN N #ڴ,N #,  $ǵ uǵ selfNtokensNN $ ǵ ,$ǵ ǵ inputN N $ǵ $$ǵ ǵ cursorN N $ڴ,N $,ǵ ǵ $ u selfNtokensNN $  ,$  inputN N $ $$  cursorN N $ڴ,N $,  $ u selfNtokensNN $  ,$  inputN N $ $$  cursorN N $ڴ,N $,  $ u selfNtokensNN $  ,$  inputN N $ $$  cursorN N $ڴ,N $,  $)u<selfNtokensNN $ <,$<<inputN N $<$$<<cursorN N $ڴ,N $,<<1$ Oѿ1 spansO  $ $  O $   $  selfO O $; $$  P,selfP۹ PԹ $;  $  selfP P $  <2Д$ Rѿ!2 ДspansR  $ $  R $   $  selfR R $; 1$̤ Tѿ1 spansT  $̤ $̤ ̤ T $̤ ̤ ̤ $̤ ̤ selfT T $;̤ $$̤ ̤ U,selfU۹ UԹ $; ̤ $̤ ̤ selfU U $ ̤ <2$ Wѿ!2 spansW  $ $  W $   $  selfW W $; 2$ Yѿ!2 spansY  $ $  Y $   $  selfY Y $; 1$;[ѿ1 spans[  $;$;;[ $;;;$;;self[ [ $;;$$;;\,self\۹ \Թ $; ;$;;self\ \ $ ; <1͖% ^ѿ1 ͖spans^  % %  ^ %   %  self^ ^ %; %%  _,self_۹ _Թ %;  %  self_ _ %  <1%أ aѿ1 spansa  %أ %أ أ a %أ أ أ %أ أ selfa a %;أ %%أ أ b,selfb۹ bԹ %; أ %أ أ selfb b % أ <2% dѿ!2 spansd  % %  d %   %  selfd d %; 1%;fѿ1 spansf  %;%;;f %;;;%;;selff f %;;%%;;g,selfg۹ gԹ %; ;%;;selfg g % ; <2%;iѿ!2 spansi  %;%;;i %;;;%;;selfi i %;;1ɘ%5kѿ1 ɘspansk  %5%55k %555%55selfk k %;5%%55l,selfl۹ lԹ %; 5%55selfl l % 5 <1% nѿ1 spansn  % %  n %   %  selfn n %; %%  o,selfo۹ oԹ %;  %  selfo o %  <2% qѿ!2 spansq  % %  q %   %  selfq q %; 1%<sѿ1 spanss  %<&<<s &<<<&<<selfs s &ʁ<<&&<<t,selft۹ tԹ &ʁ< <&<<selft t & < <1&0vѿ1 spansv  &0&00v &000&00selfv v &<0&&00w,selfw۹ wԹ &< 0&00selfw w & 0 <2Ě&<yѿ!2 Ěspansy  &<&<<y &<<<&<<selfy y &<<3&ч<{ѿ!3 spans{  &ч<&ч<ч<{ &ч<ч<ч<&ч<ч<self{ { &<ч<3&<}ѿ!3 spans}  &<&<<} &<<<&<<self} } &<<1ߛ&<ѿ1 ߛspans  &<&<< &<<<&<<self  &<<&&<<,self۹ Թ &< <&<<self  & < <2& ѿ!2 spans  & &   &   &  self  &֎< 2Ĝ&ѫ ѿ!2 Ĝspans  &ѫ &ѫ ѫ  &ѫ ѫ ѫ &ѫ ѫ self  &<ѫ 1& ѿ1 spans  & &   &   &  self  &< &&  ,self۹ Թ &<  &  self  &  <2& ѿ!2 spans  & '   '   '  self  '< 1ܝ' ѿ1 ܝspans  ' '   '   '  self  '< ''  ,self۹ Թ '<  '  self  '  =2' ѿ!2 spans  ' '   '   '  self  'ę< 2' ѿ!2 spans  ' '   '   '  self  'ڛ< 1' ѿ1 spans  ' '   '   '  self  '< ''  ,self۹ Թ '<  '  self  '  =2' ѿ!2 spans  ' '   '   '  self  '< 2ٟ' ѿ!2 ٟspans  ' '   '   '  self  '< 1'<ѿ1 spans  '<'<< '<<<'<<self  '<<''<<,self۹ Թ '< <'<<self  ' < ב=1' ѿ1 spans  ' '   '   '  self  'ʦ< ''  ,self۹ Թ 'ʦ<  '  self  '  =2' ѿ!2 spans  ' (   (   (  self  (< 2(<ѿ!2 spans  (<(<< (<<<(<<self  (<<1֡( ѿ1 ֡spans  ( (   (   (  self  (< ((  ,self۹ Թ (<  (  self  (  ٛ=2( ѿ!2 spans  ( (   (   (  self  (< 2(<ѿ!2 spans  (<(<< (<<<(<<self  (<<1(5ѿ1 spans  (5(55 (555(55self  (ҳ<5((55,self۹ Թ (ҳ< 5(55self  ( 5 â=2( ѿ!2 spans  ( (   (   (  self  (< 3ӣ(Դ ѿ!3 ӣspans  (Դ (Դ Դ  (Դ Դ Դ (Դ Դ self  (<Դ 2( ѿ!2 spans  ( (   (   (  self  (< 3(ǵ ѿ!3 spans  (ǵ (ǵ ǵ  (ǵ ǵ ǵ (ǵ ǵ self  (<ǵ 1( ѿ1 spans  ( )   )   )  self  )< ))  ,self۹ Թ )<  )  self  )  =1) ѿ1 spans  ) )   )   )  self  )< ))  ,self۹ Թ )<  )  self  )  =2ҥ) ѿ!2 ҥspans  ) )   )   )  self  )< 1)<ѿ1 spans  )<)<< )<<<)<<self  )<<))<<,self۹ Թ )< <)<<self  ) < =Ϧ)  1 Ϧspan  ) )   )   )  self  )   ) selftokensf  )˷=,  )  1 span  ) )   )   )  self  )   ) selftokensf  )=,  )  1 span  ) )   )   )  self  )   ) selftokensf  )=,  ), 1 span  ),),, ),,,),,self  ) ,,),selftokensf  )Ϳ=,,,)  ʤ;token  )ʤ; )  ٠;token  )٠; )  ;token  ); )  п:token  )п: )  :token  ):  ))*** <غ   ׁ  **  * * ** * * *  ***    ** * * * ** * * * ** * * * *   e * *   e * *   e * * u selftokens *-,***    5 ***  <  **   ** * * * ** * * * *   e * *   e * * u selftokens *  ,****.-   <  ***   ** * * * ** * * * * * *   e * *   e * * u selftokens *., **  .5 **  =*****.-   ;  ****    ** * * * ** * * * ** * * * * * *   e * *   e * *   e * * u selftokens *  , *  ;*  п: ****  ; :   ******+++++++++++++++++++++++++++++++++++                                       ׁ  ʂ   ** * * * ** * * * ** * * * ** * * * ** * * * ** * * * ++ + + + ++ + + + ++ + + +  ++ +  + +  ++ +  + +  ++ +  + +  ++ +  + +  ++ +  + + ++ + + + ++ + + + ++ + + + ++ + + + ++ + + + ++ + + + ++ + + + ++ + + + ++ + + + ++ + + + ++ + + + ++ + + + ++ + + + ++ + + + ++ + + + ++ + + + ++ + + + ++ + + +  ++ +  + + !++ + !+ + "++ + "+ + #++ + #+ + $++ + $+ + %++ +ׁ %+ +ׁ &++ +ʂ &+ +ʂ '++ + '+ + (++ + (+ + +   e + +   e + +   e + +   e + +   e + +   e + +   e + +   e + +   e + +   e + +   e + ,   e , ,   e , ,   e , ,   e , ,   e , ,   e , ,   e , ,   e , ,   e , ,   e , ,   e , ,   e , ,   e , ,   e , ,   e , ,   e , ,   e , ,   e , ,   e , ,   e , ,   e , ,   e , ,   e , ,   e , ,   e , ,   e , ,  ʂ e ,ʂ ,   e , , u selftokens ,  , ,   , u self  ,  , ,  т>, u self  ,  , ,  т>, u self  ,  , ,  т>, u self  ,  , ,  т>, u self  ,  , ,,,, ї-   > ,  т>, u self  ,  ,ڜ,  т>, u self  ,  ,ٟ ,  т>, u self  ,  ,,,,, -ѣ>  5Ħ,,,, ۦ->ל:  ,  т>, u self  ,  , ,  т>, u self  ,  , ,,,, ӱ-> 0߅  ,  т>, u self  ,  , ,  т>, u self  ,  ,ν,  т>- u self  -  , ---- -> >-  т>- u self  -  ,-- - -  т>- u self  -  , -  т>- u self  -  , -  т>- u self  -  ,-  т>- u self  -  , --- - >--- -7  -  т>- u self  -  , -  т>- u self  -  , -  т>- u self  -  , -  т>- u self  -  , -  т>- u self  -  ,-  т>- u self  -  , -  т>- u self  -  , -  т>- u self  -  ,-  т>- u self  -  , --- - > -  т>- u self  -  , -ʂ  т>-ʂ uʂ self  - ʂ , -  т>- u self  -  ,י  --߅   ۚ  --  - ߅ - - ߅ --Ӛ  - ߅ - - ߅  --  ԧ  -- 1 span  -ք(ք(>->> ->-->>cursor  -ڴ, -,->>input  ->->u>selftokens - >,>>->>self  ->>----  ̰ 5  1 --.̰    ׉ -- - ̰ - - ̰ -. - ̰ - - ̰ .. .׉ ̰ . .׉ ̰ .̰ ̰  e . ̰ .̰ ̰  e . ̰ .̰ ̰ ׉ e .׉ ̰ .̰ ṵ selftokens . ̰ , ...... -  =6<  .... -‹  =‹   .......׉ - :  ; > ..'a>self  ..'a >>..'a>self  ..'a >>..'aɯ>self  ..'a ɯ>ɯ>....1 :   5  ..  ʊ ‹ .. .ʊ . .ʊ .. .‹ . .‹ .  ʊ e .ʊ .  ‹ e .‹ . u selftokens .  , ....ʊ     1  ..  . . .. . . .  ..1 ; ލ 5 ...ލ    .. . ލ . . ލ .. . ލ . . ލ .. . ލ . . ލ .ލ ލ  e . ލ .ލ ލ  e . ލ .ލ ލ  e . ލ .ލ uލ selftokens . ލ , ....  1  ;6... ‹  ;> ...  <  ........    ے ̓   ׺ .. . . . .. . . . .. . . . .. .ے . .ے .. .̓ . .̓ .. . . . .. . . . ./ .׺ . .׺ /   e / /   e / /   e / /  ے e /ے /  ̓ e /̓ /   e / /   e / / u selftokens /3,/ 2  / >/ >/ے >/̓ 2 / 2 //  /  self  /2 marker  / /  self  /2  marker  / /  self  /2 marker  / /ے ے self  /2ے marker  /ے /̓ ̓ self  /2̓ marker  /̓ /  self  /2 marker  /  //ȗ /ȗ /ȗ // /ȗ / /ȗ ////3   ׁ  ///    // / / / // / / / // / / / ܆ /////5- Ɉ    /// ׍ ٛ  ̜ //Ѝ / / / // /ٛ / /ٛ // /̜ / /̜ /   e / /  ٛ e /ٛ /  ̜ e /̜  /// ő ;  5///ٛ  :ݔ 5 //̜ Ɨ ;  ////////00000000000000000000         أ  ̤         ѫ           Դ  ǵ // / / / // / / / // / / / // / / / // / / / // / / / // / / / /0 /أ / /أ 00 0̤ 0 0̤  00 0  0 0  00 0  0 0  00 0  0 0  00 0  0 0  00 0  0 0 00 0 0 0 00 0 0 0 00 0ѫ 0 0ѫ 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0 0 0 00 0Դ 0 0Դ 00 0ǵ 0 0ǵ  000    00 0 0 0 00 0 0 0 00 0 0 0 ̔ 0000000000000000      ޼  ѽ  ľ    ̜    ؟ ׁ  00 0 0 0 00ܕ 0 0 0 00 0 0 0 00 0 0 0 00 0޼ 0 0޼ 00 0ѽ 0 0ѽ 00 0ľ 0 0ľ 00 0 0 0 00 0 0 0  00 0  0 0  00œ 0  0 0  00 0  0 0  00 0  0 0  00 0  0 0 00ϟ 0ׁ 0 0ׁ 00 0 0 0 0   e   0 0   e   0 0   e   0 0   e   0 1  ޼ e   1޼ 1  ѽ e   1ѽ 1  ľ e   1ľ 1   e   1 1   e   1 1   e   1 1   e   1 1   e   1 1   e   1 1   e   1 1 u self tokens   1  ,Ҫ 1111    5ի  11111111  1;6: ӯ657 ޲ 11  ,  11  :6 1޼ ,˻ 1ѽ 3 1ľ   11   11 7 1111   : ;  1111  ̤ ‹  >  11   11  :6 11   5116 :  1116- ; 117-ч< 11   1 1 111 1 1 1 11  ;; 11   111   1 1 11 1 1 1 11 1 1 1  11111 ‹     11 1‹ 1 1‹ 11 1 1 1 11 1 1 1 11 1 1 1 11 1 1 1 1111  >  5 122  <Ӏ  222   ;ԃ6222  > 222227  ֎ל:  proc_macro_ 2 proc_macro2_ 2 unicode_xid_ 2quote`2macros`2groupa2 parenthesized @2bracedA2 bracketed B2tokenaC2identa2Identa2Identa 2attrb2 AttrStyleb *2 Attributeb )2 AttributeArgsc 2Metac*2MetaListc*2 MetaNameValuec *2 NestedMetac *2bigintc2datad2Fieldd*2Fieldsd*2 FieldsNamedd *2 FieldsUnnamedd *2Variante*2VisCratee*2 VisPublice *2 VisRestrictede *2 Visibilitye *2expre2Exprg*2 ExprArrayg ,2 ExprAssigng ,2 ExprAssignOpg ,2 ExprAsynch ,2 ExprAwaith ,2 ExprBinaryh ,2 ExprBlockh ,2ExprBoxh,2 ExprBreakh ,2ExprCallh,2ExprCasth,2 ExprClosureh ,2 ExprContinueh ,2 ExprFieldh ,2 ExprForLoopi ,2 ExprGroupi ,2ExprIfi,2 ExprIndexi -2ExprLeti-2ExprLiti-2ExprLoopi-2 ExprMacroi -2 ExprMatchi -2ExprMethodCalli-2 ExprPareni -2ExprPathj-2 ExprRangej -2 ExprReferencej -2 ExprRepeatj -2 ExprReturnj -2 ExprStructj -2ExprTryj-2 ExprTryBlockj -2 ExprTuplej -2ExprTypej-2 ExprUnaryj -2 ExprUnsafek -2 ExprWhilek -2 ExprYieldk -2Indexk-2Memberk-2genericsk2BoundLifetimesl.2 ConstParaml .2 GenericParaml -2Genericsl-2 LifetimeDefl .2 PredicateEqm .2PredicateLifetimem.2 PredicateTypem .2 TraitBoundm .2TraitBoundModifierm.2 TypeParamm .2TypeParamBoundm.2 WhereClausem .2WherePredicaten.2 ImplGenericso 2 Turbofisho 2 TypeGenericso 2lifetimet2Lifetimeu 2Lifetimeu 2litu 2Litu.2Litu 2LitBoolu/2LitBoolu 2LitByteu/2LitByteu /2 LitByteStru /2 LitByteStru /2LitCharu/2LitCharu /2LitFloatu/2LitFloatu /2LitIntu/2LitIntu /2LitStru/2LitStru /2StrStylev/2macv 2Macrow/2MacroDelimiterw/2derivew 2Datax/2DataEnumx/2 DataStructx /2 DataUnionx /2 DeriveInputx /2opy 2BinOpy/2UnOpy02ty{ 2Abi{12 BareFnArg{ 12 ReturnType{ 12Type{02 TypeArray{ 12 TypeBareFn{ 12 TypeGroup| 12 TypeImplTrait| 12 TypeInfer| 12 TypeMacro| 12 TypeNever| 12 TypeParen| 12TypePath|12TypePtr|12 TypeReference| 12 TypeSlice| 12TypeTraitObject}12 TypeTuple} 12Variadic}12path2AngleBracketedGenericArguments12Bindingڀ12 Constraint 22GenericArgument12ParenthesizedGenericArguments22Path12 PathArguments 12 PathSegment 12QSelfŁ22buffer2ext2 punctuated 2 parse_quote 2 parse_quote 2parse_macro_input؆2parse_macro_input2spanned2gen̈2 __private 2custom_keyword2custom_keyword2impl_parse_for_custom_keyword2!impl_to_tokens_for_custom_keyword!2impl_clone_for_custom_keyword2$impl_extra_traits_for_custom_keyword$2custom_punctuation2custom_punctuation҉2!impl_parse_for_custom_punctuationǒ!2%impl_to_tokens_for_custom_punctuation%2!impl_clone_for_custom_punctuation!2(impl_extra_traits_for_custom_punctuation(2custom_punctuation_repr2custom_punctuation_unexpectedջ2stringify_punctż2sealed2span2thread2 lookahead 2parse2verbatim2print2private2private2rustdoc_workaround2error2Error2Result2parse 2parse2 2 parse_str 2Token)2custom_punctuation_lenޭ3202222222222222222222222222222222222222222222222222222222222333333333333333333333333333266self  2762  self  28   2  self  2   2self 쇒 2-266self  2Ɓ76  2  selfΎ ǎ 20 2  self  28 211selfȔ  2212׉ ׉ selfϗ ȗ 22׉ 2  selfǛ  2Ӧ8 2  self  2   2ٛ ٛ selfҠ ˠ 2 ٛ ٛ 2  self  2   2̜ ̜ selfץ Х 2 ̜ ̜ 255self秒 ৒ 2552  self 骒 2> 2  selfԒ Ԓ 20 2  selfޒ ޒ 20 2  self  20 2  self  20 2  self  20 2  self  20 2  self  20 2  selfό Ȍ 20 2  self  20 2..self  2/.2  self칓 幓 2. 2  self޼ ׼ 2/ 2  self  2/ 2  self֓ ֓ 2Ȥ8 2̰ ̰ selfޓ ޓ 2ʫ>̰ 2  self  21 2  self  2/ 2  self  22 2  self” ” 23 2  selfǔ Ɣ 22 233self̔ ̔ 2332  selfϔ Δ 23 2߅ ߅ selfҔ Ҕ 2/߅ 2  selfԔ Ԕ 2- 2  selfה ה 2. 2  selfڔ ڔ 2. 2  selfߔ ߔ 2= 2  self  28 2  self  2- 2  self퓕 擕 27 2self  2-2  selfʙ Ù 2Ѱ2 2  self  22 2  self  22 277self  2 772  self  27 2ʊ ʊ self  2¬2ʊ   3  self  32 3  self̕ ̕ 3> 3  selfԕ ԕ 36 3  selfו ו 36 3  selfܕ ܕ 36 3  selfޕ ޕ 36 3޼ ޼ self  36޼ 3ѽ ѽ self  37ѽ 3ľ ľ self  36ľ 3  self  32 3  self  3ѳ> 3  self  36 3  self  36 3  self  36 3  self  36 3  self  36 3  self  36 3  self  36   3  self  35 377selfɎ Ž 3773..selfې Ԑ 3/.3  self͓ Ɠ 3ɷ/ 3  selfȕ  3/ 3  selfė  3/ 3  selfƚ  3= 311self  3113ލ ލ selfڠ Ӡ 3Ź>ލ ׁ 9,,,,,ڴ,,,,, ڴ,,,, ;;,,, ?;,,,- ???-,,,,,,,,,,,,,,, ,,,ң,,,,,,,,,,,,1,,,  ,,, ,,,,‹ ڴ,  ̿???  ̿???? ,,,,2  ,,, ,,, ,,, ,,, ,,, ,,, ,,, ,,,,,,,,, ,,,,,,,,,,?ÿ ȿ  ÿ ÿ ȿ ???? ÿ ȿ ???  ÿ ȿ ????ÿ ÿ ȿ ????ÿ 'a  8   'a ????'a ?????'a ????'a ??? 8   'a ????'a ?????'a ????ÿ ȿ ???? ÿ ȿ ???8ÿ ȿ ???? ÿ ȿ ???8'a ?????'a ????'a ?????'a ????'a ?????'a ????'a ?????'a ????123123 ,,,,ׁ ڴ,,,,,2ڴ,,,,,ͷ ڴ,,,,, ڴ,,,,,׺ ڴ, ÿ ???2 ÿ ???2  11212211121211211233122121221221122122123231121 -,,,,>ڴ,  content ident in cursor expr match crate group parse_parens   cursor crate __private  Ok parens  content parens content parens token crate __private  Err error return crate __private  Err error   content ident in cursor expr match crate group parse_braces   cursor crate __private  Ok braces  content braces content braces token crate __private  Err error return crate __private  Err error  content ident in cursor expr match crate group parse_brackets  cursor crate __private  Ok brackets  content brackets content brackets token crate __private  Err error return crate __private  Err error ** abstract $crate token AbstractĬǬ asŬҬլ $crate׬ݬ token߬ As async $crate token Async auto֭ $crate­ȭ tokenʭϭ Autoѭ׭ await $crate token Await becomeǮ $crate token BecomeȮ֮ڮ box׮ $crate token Box break $crate token Break¯ȯ constïЯӯ $crateկۯ tokenݯ Const continue $crate token Continue crateİ۰ $crateư̰ tokenΰӰ Crateհܰ default $crate token Default doȱ $crate tokenñ Doűɱױ۱ dynر $crate token Dyn else $crate token Else²Dz enumòвӲ $crateղ۲ tokenݲ Enum extern $crate token Extern finalس $crateóɳ token˳г Finalҳٳ fn $crate token Fn for $crate token For´дӴ ifѴ޴ $crate token If impl $crate token Impl inȵ˵ߵ $crate͵ӵ tokenյڵ Inܵ let $crate token Let loopʶ $crate tokenö LoopŶ˶ٶ߶ macroڶ $crate token Macro match $crate token MatchǷ˷ modȷշط $crateڷ token Mod move $crate token Move mutøظ $crateŸ˸ token͸Ҹ MutԸٸ override $crate token Override privȹ $crate token Privùɹ׹۹ pubع $crate token Pub ref $crate token RefȺ returnºϺҺ $crateԺں tokenܺ Return Self $crate token SelfType selfĻ߻ $crateƻ̻ tokenλӻ SelfValueջ  static $crate token Static structϼ $crate tokenƼ Structȼм޼ super߼ $crate token Super trait $crate token Trait̽н tryͽڽݽ $crate߽ token Try type $crate token Type typeofžȾ $crateʾо tokenҾ׾ Typeofپ union $crate token Union unsafeϿ $crate tokenƿ Unsafeȿп޿ unsized߿ $crate token Unsized use $crate token Use virtual $crate token Virtual where $crate token Where while $crate token While yield $crate token Yield  $crate token Add  $crate token AddEq  $crate token And $crate token AndAnd  $crate token AndEq  $crate token At  $crate token Bang  $crate token Caret  $crate token CaretEq $crate token Colon $crate token Colon2 $crate token Comma  $crate token Div  $crate token DivEq $crate token Dollar $crate token Dot $crate token Dot2 $crate token Dot3 $crate token DotDotEq $crate token Eq $crate token EqEq $crate token Ge $crate token Gt $crate token Le $crate token Lt  $crate token MulEq $crate token Ne  $crate token Or  $crate token OrEq $crate token OrOr $crate token Pound $crate token Question $crate token RArrow $crate token LArrow  $crate token Rem  $crate token RemEq $crate token FatArrow $crate token Semi  $crate token Shl  $crate token ShlEq  $crate token Shr  $crate token ShrEq  $crate token Star  $crate token Sub  $crate token SubEq  $crate token Tilde _ $crate token Underscore m tt tt  crate parse_quote  parse  crate __private  From from  crate __private  quote quote  tt     tokenstream  ident as ty ty match crate parse_macro_input parse ty tokenstream  crate __private  Ok data data crate __private  Err err return crate __private  TokenStream  from err to_compile_error  tokenstream  ident with parser path match crate parse Parser parse parser tokenstream  crate __private  Ok data data crate __private  Err err return crate __private  TokenStream  from err to_compile_error tokenstream  ident crate parse_macro_input  tokenstream as _ ident identG allow non_camel_case_types pub struct ident pub span crate __private  Span doc hidden allow dead_code  non_snake_case pub fn ident __S crate __private  IntoSpans  crate __private  Span1  span __S ident ident span crate __private  IntoSpans  into_spans  span0 impl crate __private  Default for ident fn default Self ident span crate __private  Span call_site  crate impl_parse_for_custom_keyword  ident crate !impl_to_tokens_for_custom_keyword!  ident crate impl_clone_for_custom_keyword  ident crate $impl_extra_traits_for_custom_keyword$  ident ident ident impl crate token CustomToken for ident fn peek cursor crate buffer Cursor crate __private  bool if let Some ident _rest cursor ident ident stringify   ident else false fn display !'static crate __private  str concat ` stringify   ident` impl crate parse Parse for ident fn parse input crate parse ParseStream  crate parse Result ident input step  cursor  if let crate __private  Some ident rest cursor ident if ident stringify   ident return crate __private  Ok ident span ident span rest crate __private  Err cursor error concat  expected `  stringify   ident` ident ident impl crate __private  ToTokens for ident fn to_tokens   self tokens  mut crate __private  TokenStream2  let ident crate Ident new stringify   ident self span crate __private  TokenStreamExt append tokens ident! ident ident impl crate __private  Copy for ident allow clippy expl_impl_clone_on_copy impl crate __private  Clone for ident fn clone  self Self  self ident idents$ ident ident tt tt J pub struct ident pub spans crateĊ custom_punctuation_reprƊ ݊ފߊ tt  doc hidden allow dead_code  non_snake_case pub fnËƋ identNj̋ __S͋Ћҋ crateӋ؋ __privateڋ  IntoSpans  crate custom_punctuation_repr  tt   spans __S identŒȌ let֌ _validate_lenڌ 0  crate custom_punctuation_len  strict tt  ident spansōʍ̍ crate͍ҍ __privateԍ ݍ IntoSpansߍ  into_spans  spans impl crate __private  Default for identŽȎ fn֎ defaultَ Self ident  crate __private  Span call_site ˏ cratȅя !impl_parse_for_custom_punctuationӏ!  ident tt  crate %impl_to_tokens_for_custom_punctuation% ΐ identŐǐȐ̐ɐ ttʐ ͐ϐِ crateڐߐ !impl_clone_for_custom_punctuation!  ident tt  crate (impl_extra_traits_for_custom_punctuation( ΑϑߑБ identёّ֑ؑݑڑ ttۑ ޑ҉ ident ident tt tt  impl crate token CustomToken for ident“ fnГ peekӓד cursorؓޓ crate buffer Cursor bool  crate token parsing peek_punct ޔ cursor crateÔ stringify_punctŔ ԔՔݔ֔ה۔ؔ ttٔ ܔ fn display !'static crate __private  str concat Õĕ `ŕȕʕ crate˕Е stringify_punctҕ  tt ` impl crate parse Parse for ident fnƖ parseɖΖ inputϖԖ֖ crateזܖ parseޖ ParseStream  crate parse Result ident let spans crate custom_punctuation_repr ϗЗؗїҗ֗ӗ ttԗ חڗ crate token parsing punct input crate stringify_punct  tt  Okʘ̘ژ͘ identΘӘ٘ spansԘǒ!ߝ̛ ident ident›Ûʛě ttśǛ ttț ˛Λћܝ implۛ crate __private  ToTokens for ident֝ fn to_tokens ՜  self tokens  mut crate __private ǜ TokenStream2ɜ ל̝  crate token printing punct  crate stringify_punct  tt   self spans tokensݝ% ident ident tt tt  implàȠ crateɠΠ __privateР ٠ Copy۠ for ident allow clippy expl_impl_clone_on_copy impl crate __private  Clone forǡˡ ident̡ҡ fn clone  self Self  self! ident ident tt tt ( tt tt   crate __private Ŭ SpanǬˬ0ͬϬЬ ѬӬ crateԬ٬ custom_punctuation_len۬  lenient tt  mode ident 1 mode ident 2Ю® modeîǮ identȮͮ Ϯ֮ٮݮ1ۮޮ mode ident2 mode ident 2 mode ident ¯Ư1įǯͯܯί modeϯӯ identԯٯ ۯ1 mode ident 1 mode ident 2Ű mode ident°İ˰ΰҰ1аӰٰڰ mode۰߰ ident2 mode ident1 mode ident 1±ұñ modeıȱ identɱα бױڱޱ2ܱ߱ mode ident1 mode ident2 mode identòDz3ŲȲβ߲ϲ modeвԲ identղڲܲ3 mode ident1 mode ident2dz mode identóų̳ϳӳ2ѳԳڳ۳ modeܳ ident1 mode ident2 mode ident1ôӴĴ modeŴɴ identʴϴ Ѵش۴ߴ2ݴ mode ident2 mode ident 1 mode ident ĵȵ2Ƶɵϵߵе modeѵյ identֵ۵ݵ2 mode ident1 mode ident1ȶ mode identĶƶͶжԶ2Ҷն۶ܶ modeݶ ident2 mode ident 1 mode ident 2ķԷŷ modeƷʷ ident˷зҷٷܷ2޷ mode ident1 mode ident 2 mode ident ¸Ÿɸ3ǸʸиѸ modeҸָ ident׸ܸ ޸2 mode ident 3 mode ident 1ȹ mode identŹ ǹιѹչ1ӹֹܹݹ mode޹ ident 2 mode ident 1 lenient tt tt0źԺ strictƺ̺κ ttϺѺ ttҺںݺ޺ crate custom_punctuation_unexpected  tt01ޭAջռۼܼݼ޼ tt߼ tt  concat  stringify   tt ż!']]]]_e_m___```````PaYacamaaaaaBbKbUb_bgcpczcccc?ddddRe[ee~ffffgcg,mty3?w߈GOW'_Ǐ/gs1=vޓF K[eՙKWco0Oh ΜYwiڞ'Π?]u¢Ϣܢ*7Oʣ5PaĤܤĥѥޥ(U'yĬܬɭ֭LY°ذ7RyW`÷&Nvdm=qz9BKc}4AN[hu/Mcn{+A_C8-8ER_q~5S , </G`<IVcp}3Mc5Kl,9FSi3Q1Oe5*xm#0=JW+ &3 !9Nde,nw&%;Vq.Id!<Wr0Fdz  >Trg/Si  >t:8Nl<i_TI>3(vk`UJ   ?   4  )w -:GTawmU(Hdmz"/R[s(Gg8ANqz&/Gf !!!;#x$$$%''&''*7+@+D,Z,r,,,,,5-B-O-\-i-v------..5.S.i....../#/9/W/m////// 0'00000000001.1Q1Z1y1111112%2C2Y2w22222B3X3v3333334(4F4\4z4"55p677e8 99Z:;;O<<=D>:?0@&AB'B4BABNB[BhBuBBBBBBCDDEEFFFFGG:GOGmGGGGGGG@HIH?IIIIIIIIJ~JJKKXKeKrKKKKKKKKKKLmLL?MMMMM9NNNNNNNNN OO$O9OFOSOhOuOOOOOOOOOP"U+UXY Y"YYYYYY Z'ZEZcZZZZZZ ['[E[[[s[[[[[\\=\___`&`D`Z`r``````DaMaaaa bb7bMbkbbbbbbicccdddefggg)g6gCgPg]gsgggh%hChYhwhhhhhhi)iGi]i{iiij jj'j=j[jqjjjjjj k+kAk_kukkkkkkkkkklillll{mmmm8nSnknnoo7ooooooTplpp0qqqqrrr!r*r3rKXe{ˎP]jwҏ4Kb tГ|)6CYwSMZgtݘ+8ER_l3Ig}ϛ4RhМ"8Vʝ7Mkɞߞ1Ge{ПMc!.;HUbo|5S̢4Rˣɤ1OǥG]{Ŧ-Ka(Шx Ȫph`XPJWd̵2G_uyǷݷ/G]{Ÿ0Ndk0=JWdq~0+I_}G]}.>N^,9FS`mz~,GTo98H]xT :jv'Fhq (5BO\iv08=[p*?Qi{\0S\er2hxfb_  :    c CF!*3NW S\e .F`$< E N W o      !""""""##"#+#C#d##($I$$$$$$<%%%%&&/&&&&&&A(J(S(\(i(v(((((()))*Y*b*k*t***Y++++++,---*-r-{----....../|//&0/080X000001112&2>2]2|22223 3)3b3k334444555566666677778 8)8e8n8w8888 999=9x99999:::2:S::;l;u;~;;; <l<<<<<<R=[=d=m==c>l>u>~>>????@@@rA{AAAAABBBBBB C)CICCCCCCCD$DyDDDDDD/EEEEEF"FFF;GDGMGVGwG-H6H?HHHIIIIIIIJJ&JnJwJJ KoKKLMM]NfNoNNNNNO!OiOrO{OOPP!P.P;PHPPPPP>QGQPQpQRg\t\\\\\\2];]]] ^^4^A^^_r`6aTaaaaacq)q6qCqPq]qjqqqjrrrrrsitthu߄ԅ 1>;Eʇԇއ$.8BLV`jt~ĈΈ؈gq{R#5GYsb6 h]ӬHɭ0q}Ѯڮ 2CXiЯ0AVgxǰذ):Xʲ۲k|ͳڳ 7@ٵ8A`ɶֶ $1>KXɿ(L>GPhzQZcQ_'4AN[h*7DQ^kx!+5?IS] & / N q z      +Kz&/>Gajs /IUj*D_ENKT&&=,F,a,,,-3338Y?RVV^^^^_```a&apayaaaa.bDbbbbbb\crccc d'ddff'g7jklmOnjno oo+oEoMp[qArJr6s?svozzz{{{{{{ ||#}0}=}}}}}}-~6~?~_~k~w~~~~jwq~̀ـ7@Պ5<EN'Tt3T/8NlԞ<Qf~ğܟ)Gjsܠ6UkǡСڡ~ٰTrײHس { %= >XpSqָG׹ z $<=WoRpk+PZk>GXm'!(03QjT^'8MeOmp6^gx >@^vY_} & $,/MfT^'8MeOmp6\ev<>\tX^| ~% # +.LeU_(9NfPnq7_hy!?A_w]c* %-0NgR \  % 6 K c  M k   n    4  [du;=[sV\z |# " *-KdQ[$5JbL j   m!!!"3""##X$a$r$$$%%%&8&&&:'X'p''(()))))R***X+v++,x,,,- .....///0"000%1C1111\2H3R344,4A4Y44C5a555d6667*7788O9X9i9~99 :::;/;;;1<O<g<<==>>>>>I???O@m@@@oAAABC CCCCCDDDEEEF>>??_e6Wn4vg]NDyB8i)@Y(' 3' >' I' T' _' U, n, , , , , *3 C3 \3 g3 3 34 >4 4 5 5 -5 G5 _5 y5 5 5 5 5 ^7 i7 t7 7 8 9 9 9 {: ; ; ; < p< {< < < < < < = `> > > > /? 'B B C *C C C D TD D D D D E E @E F G G H H H I 2J `J J J J EN N N N O fO qO P P P Q nQ Q Q Q Q Q R R =R S S T U V V V W W m m Ln Wn n n n So o o o ;p Fp p p p $q mq xq q q r ?r }r r r ps {s s t $t ht t t u Iu Tu u u u pv v v Dw w w x y y z { { G| | | | 8} C} } } } A~ ~ ~ ~ ? J    j ƀ  Z e ;   z ؃ 1  X c   = H ƈ ш  _ j   Q * 5 9 Ќ  y ҍ ݍ  ' A Y s ׎ ! ; S m я   5 M g  ː  / G a y ő ݑ  ) A [ s ג # ; U m ѓ   5 O g ˔  / I a { Z i a ' 6 . O  # ͟ Š    ( 3 ɦ ئ Ч ʭ - 8 C N Y ǰ Ұ ݰ } E T L m  Ĺ ݺ   * " C y  ! u | E T L m   & 1  n } u 6 E = ^   w ~ C R J k  E T L m   1 , l w  k v    - F ^     7 O p   4     # ' 2 . $ < ]  e p {       & 1 < G       H S u      u        ! 9 S k     A  3 L e ~   W b m v D! O! ! " " n" " " " # # 9# Q# k# # # % W% % % % D' O' Z' e' ( ( ( ( + R+ + + + ), 4, o, , , , 3- >- - - - i. . / Q/ / / / C0 N0 f0 0 0 0 0 0 0 1 .1 H1 `1 z1 1 1 1 1 M2 [2 2 2 03 >3 3 3 4 '4 15 ?5 5 5 5 C6 d6 s7 7 8 $9 9 9 : V; w; < = (= 7> > > ? @ @ CA A cB nB C C C C C E E E E E E F F 2F =F iG G G H XH H OK K K K OL L L M aM lM M M M M M N \O gO rO }O P P P P ZR eR pR S T HT ST T T T 'U lU wU U U V >V |V V V W W ZW W W W +X 6X xX X X Y GY RY Y Y Y $Z gZ rZ Z Z Z =[ }[ [ [ "\ -\ q\ \ \ ] `] k] ] ] ] 1^ f^ q^ ^ ^ ^ _ P_ [_ _ _ _ ` :` E` z` ` ` ` $a /a da a a a b b Qb b b c 0d vd d d e e ae e e h h 4i ?i i i i 7j j j k k k k ^l il l l l .m fm qm m n (n n do oo o p p ep p p q Qq \q q dr or r r s Ys s s t it tt t t t t t u "u _ 4 U * K A  7 -  #     > V w L m B c 8 Y . O $ E  ;  1  '   u k a W x M n C d 9 Z / P % F  <  2  (   v l b X y N o D e h          . 8 W k w   p ;   b -   TP Z o& & & & & ' ' &' U' ' ' ' ' ' ' ' ( 6( U( ( ( ( ) () F) a) t) ) ) ) ) * .* R* p* * * * + ), + w, , , , P- , , - . . W/ / t/ 0 0 #1 C1 d1 1 1 1 1 2 A2 J 4K TK L .QK K L aL L L NM fM M M N N TN N yN N N cO )O O i !j Yj j j j k "k Ck ok k k k $l ]l l $ J v  χ = X e ~  A c ; s ҡ  < [ n y ܢ  I f { * N q S t Ǿ 5 P } ' K w  ) +V  4 a Jb  9 V i i) Z  ' W j  F   2 # L w            + = I [ g y           : [        H x   [     O     2 S     ka  1 D2 2 2 2 3 03 ]3 3 3 3 4 ;4 h4 4 4 4 5 ?5 e5 5 5 5 6 C6  M M M M M N ON N N N O PO O fO O O O 2P hP HP P P P Q JQ *Q oQ Q Q Q ,R R QR mR R R S R 3S OS uS S S S T 1T WT T T T T *U U VU U lU U U V 1V jV V V V V V r r r s 0s \s }s s s s t Jt kt t t t u 1u Ru ~u u u u v @v lv v ݒ / f ӓ @ v ϔ ( T ڕ  3 _ ޖ 7 c $ 1 ; K t ; e ֚   E l &"   = C'x s  % B S ] g |  C u v~ :  ϥ 1 d Ц  H z  3 ] Ũ  H w wx  H r  < k Ϋ 1 [ ά " L } ޭ & F n Ǯ س  K l  2 S  ̵  : պ ! G s Ż  = i ( Q / T % L y  _  5 t 4  } . 9 M n M ]   )/ H I $I lI I 'J c c d HNd +e Se ye e e e f f f g Kg }  X y  = i י  $ P q š  = ^ כ $ E q ՜  9 Z ܝ  < ] ֞ # M o ; ^ κ g' S  ٻ  2 ^   = i ½  H t  ;  & S  ؿ  1 ^ g  # 7 R l  2 S t  9 e  K l ! $ n k5a" 9eADuh#?`y+6Qz+EOYy <+XkWGGyu H.`' H W j     !!7!G!]!m!|!!!-#########3$a$$$%X%%%&@&&&'W''''8((((?))))))*>*6*7*_******** + 5+-+.+a+!++++++"G,++',<,g,,,,,,,2-*-+-F-p-c-d-------3.l.....; F/>/?/y/////&000F0_00z0{000h31n1f1g111112[2N2O2h2|222222;` 3>36373^333333333"44-4H4A4[4w44445.5'5N5s5l55555&66;6666666617*7`77777+8a8Z88889890919\999999]/E:=:>:x::::: ;;;M;;;;!<<0<#<$<P<i<<<<<<=U======,>b>Z>[>>>>>>'?o?g?h????????/@]@ @@@@@@@@@AZAAABFB>B?BfBBBBBB CCC9CGGGGKG{GsGtGGH;BIH(I>IdI]IIIIIIIJJJ+K KMKcKKKKKKXLnLLLLLLMKPPPPPPPPPQRz].acMd%QBo#x{~l\0Q=QMQsQQQQQQRI+RRORSwRiRR]RRRRg#S SSGSqySaSkSS{SS TS.TYTKTzTTTTvUUUUUUUUUUUVjǬ߬2Fat/[Юݮ#7Reٯ Lpΰڰ(CVvʱ=aӲ˲4Gg.RpڴĴ %8XҵCa|˶)Iq÷4Rmظ:bչ%C^vɺݺ +Sƻ4OgtμDp%@Xeyqھ 5aԿ1IVjb&Rx":Gq[SCi+8bLD~4Z{)S=5o%Kl D.&`t<] 5Qe-Nz&BVq?k3Gbu0\$8Sf!Mq)DWw>b5Hh/Sq &9Y Db}*Jr5Sn;c&D_w ,T5PhuEq&AYfzr6b2JWkc'Sy#;Hr\TDj,9cME 5[|*T>6p&LmE/'au=^ 6 Rf.O{' CWr@l4Hcv1]&Gs<]%Rs;h%Q~ (;i%@S;Vi3Ql%Ig=a)Uy?k4UJk5b Kx"5c:M{7Re 1Oj}%Ig;_}%Qu ; g      0 Q }      F g      / \ }      E r    /[2Eq-H[%C^q=[v/SqEi1]&Gs<]'Tu=j'S*=i%@S;Vi3Ql%Ig ; _ }    !%!Q!u!!!!!"="i"""""""##":#N#i#|#####$8$v$$c$$$$$$$ %*%Z%e%G%%y%q%%%%%&/&@&\&&&&&&''&:'N'i'|'''''(''(2( M(`(((((((())1)D)d)))))*>*I*+*t*]*U******+$+@+n+++++,++,2,)M,`,,,,,,-Z-e-G--y-q---3--.>.I.+.t.].U...=.../$/@/n/////0//020GM0`0000000011Q11D1d111112>2I2+2t2]2U222[2223$3@3n33333433424eM4`4444444455o15D5d555556>6I6+6t6]6U666y6667$7@7n77777877828M8`888888889919D9d999999999:(:H:x::e::::::: ;,;M;^;|;;; <<;C<+<#<_<s<<<<<<<,== =H=\=x======>==1>E>a>t>>>>>?6?u??b??????? @-@^@i@K@@~@v@@@@@A8AIAgAAAABA.BBBJB^BzBBBBBBCBB3CGCcCvCCCCCDCCD0DLD_DDDDDE!E`EkEMEEExEEEEEFIFTF6FFiFaFFFFFG2G=GGjGRGJGGGGGG HH;HjHHHHHIHHI2INIaIIIIIJ#JbJmJOJJJzJJJ#JJKKKVK8KKkKcKKK-KKL4L?L!LlLTLLLLL7LLLMM=MlMMMMMNMM N4NAPNcNNNNNNNN OOK9OLOmOOOOOOOOPU"P5PVPxPPPPP6QAQ#QnQVQNQQQ_QQQR*R RWR?R7RsRRiRRRSSR@S(S S\SpSsSSSSSS)TT TETYT}uTTTTTTUTT.UBU^UqUUUUUV3VrV}V_VVVVVVV W*WLW]W{WWW XXWBX*X"X^XrXXXXXXX+YY YGY[YwYYYYYY+ZLZZZZZZZZ[[8[a[[[[[\[[*\>\Z\m\\\\]-]8]d]M]E]]]]]] ^=^k^^^^^^^^__:_c___@__`?`^`````a2aEaOaYacama}aaaaaaa$bEba^bb bbbbbbc4cScucccccdd0d?dIdSdcdddodddydde>e`eeeeeeff-fVfwf;fffEffff g(gJgigggggghh%h8hBhLh]hnh~hhhhhih'iHihaisi~iiiij"jAjojjjjjjjjkk2k-mNmkgmmkmmkmmkn6nkOnpnknnknnknok7oXokqookookoplp@plYpzplpp"lpp,lq(q6lAqbq@l{qqJlqqTlqr^l)rJrhlcrrrlrr|lrrls2slKslslsslsslstl3tTtlmttlttltulu]ɀ6ARuā%6Y˂-7LWhɃڃ0;LoDŽф 4?Ps…)3=G\gxΆن @K\Çׇ͇5huӈ"Ex)\ků׊ >IZ}̋"->aӌ"Ex)\gxΎݎ"Ex)W~cِm !.ZC;vˑ(UĒ .BScqГ{ +CeŔ4g|ѕ6@JT^hrEq×͗9Rs̘ ;nљ-:D^l˚v&>`/bs}ɜޜ)۝3=.OGhQÞ[ܞe7oOqџ4SuՠDp{šڡ$/N[csȢ5Mnۣ'H|/;[ w ĥ#DΥ]~إ¦̦֦:StƧ)Hjƨըߨ %eߪoy2Slǫ;TuȬɩ#ө<]ݩvѭ $E^Ү# --Fg7AۯKU.O_hiðs۰/HiIJ8Yr ͳ A)Z{3=δG)QBc[|e׵oy)KjͶ-Onѷ1Srո5Wv)3=G\uºӺ!+@K`k̻ٻ $5J[evμ߼ *7A]lvʽ5ֽUbs!Ǿ:[Ѿs߿2Sl 2AKUjy k>`!Cd@b 2S|1St=_(Ik4Uw@a *Lm6Xy!Bd -Np9Z| *L_(Ik4Uw@a *Lm(Ik4Uw@a]]_```````;abalaaaa-bTb^bRcycccdCemff+mty2< t܈D|LT$\ď,dp.: sۓC}  Rdʙ:T`l9X͛xלNbݝϞu4Hfۡ ˢآ &3@ӣ>ͤͥڥ1Q#zmͬŭҭ߭HṴ"@z9aۺRw|4GTl3=JWdq~#8Wljw5JB7,5AN[hz )> 'x 8Pj;ER_ly <W  ?Tu(5BO]r'<%:Yn4)wl,9FS'"/*BXmYn 5!/D_z7Rm*E`{:On)H]pA]r)c%#BWv'^SH=2'uj_TI   >   3  (v)6CP]klX@1Qv+9d|1Pp%JX 8P !!$#e$$%&"''*+.,N,c,|,,,,4->-K-X-e-r------- .).>.].r....../-/B/a/v//////00000000001181c111112.2M2b22222L3a3333333414P4e4!55o677d8 99Y:;;N<<=C>9?/@%AB$B0B=BJBWBdBqB~BBBBBCDDE EFFFFFG%GCGXGvGGGGGGH6IIIIIIIIJGKTKaKnK{KKKKKKKKKLiLL;MMMMM5NNNNNNNNNOO O-OBOOO\OqO~OOOOOOOOPTX YYYYYYYZ0ZNZlZZZZZZ[0[O[d[|[[[[[ \(\ __`/`N`c`|`````aaaab(bAbVbubbbbb]crccdddefg gg%g2g?gLgYggg|ggh.hMhbhhhhhhhi2iQifiiii jj#j1jFjejzjjjjjkk5kJkik~kkkkkkkkklZlrlllGmmm&nAn\nnno(o@oooo]pqrrr r)r2r;rDrMrVr_rhrqrzrrrr=sIsVscsps}ssssstttYuu-vvwkww?x[xćΈۈ{ʼnO#-:GTaoՎLYfsJa s}ړg%2?MbRJVcpܘ '4AN[hvϚ =Rqٛ (=\qĜٜ ,Aӝ%AVӞ;PoٟWl*7DQ^kx)>բ (=ԣҤ%:ХQfΦ!6Uj'ϨwǪog_WOGS`nֵ";Pi~x÷ѷ8Qfθ$9XQVt,9FS`mz$4ShQf-=M](5BO\ivr 5P]x')y8QfD*Zf0O{$1>KXer)Fdy 3HZrX,n{~QaOiH  # i L  =< an7O.` x   !!"""4#L#1$S$$%&9&&'e(r((())*}*c++,-&-4---..//A0b00111/2G2f2222333t3^4445566v778388888&9F999#:;:!;;v<<=v==>???@AA^BBBC2CSCCC D.DDDE FF_GGUIIIIII J%J0JJXKKqLMM NxNNN O+OOPPP*P7PDPRPPPYQRf\p\}\\\\\\]]]^=^^_n`*a?a^aacq%q2q?qLqYqfqq9rsrrrs]trtgq~„݅;7DɇӇ݇#-7AKU_is}È͈׈pzQ ,>Pb|a5  g\ҬGƭ/9z#Lr!JgC_ɳֳôIɵJƶҶ߶ -:GTſҿVYqPB0=JWd &3@MZgt*4>HR\ 8 X    s4TP|8R^s3MjX&,O,,,638C?RgV]v_```a0aaaa8bMbbbfc{ccde fg'jklmXntno4o>>>???D@X@@@dAxAA BB CCCD}DDEEEF'FFFFJG9HKHH0IDII2JFJJJSKgKKKLLyMMNpNNNrOOPPPP#Q7QUQQRR]SSS;TTTAUUUUUaVuVVWWXXXYzYYZZZ[$[[[[G\4]F]]+^?^^-_A___N`b```aawbbcncccpddeeee!f5fSffgg\hhh:iii@jTjjj`ktkkllmmmmxnno~oop"ppppEq2rDrr)s=ss+t?tttLu`uuuvvswwxjx~xxlyyyzzz{1{O{{||X}}}6~~~<P\pu{ ͅB2D؇)=+?ЉL`܊sj~l1OĐőY7=Q͔]qw} !ϚD1Cל(<*>ϞK_۟ pg{i}.LæW5;O˩ߩ[ou{ ͯB2Dر)=+?гL`ܴtkm2PźĻX6<P̾\px~"E4F+?-ANbtkm2PZ8>R^rx?BVy|  >&:FZx`t'*>adx&".B`H\h|&IL` *H0DPdj~14Hkn0,8LjRfr0SVj 4R:NZnt;> R    u   x    :  " 6   BVt\p|#&:]`t" *>\DXdx ~"EH\  & D  ,!@!!!L"`"~""f#z## $$$$-%%%0&D&&&&g'''j(~((),))*(***4+H+f++N,b,,,n---.../,////O000R1f111222333404N4465J555V6j666p77888887999::N::::q;<<S===N>>>>?'?G?\?@@IAAAWBBBD'DD"E7EE?FTFtFFFFF HHHI-II5JJJ}KK7LLL2MMMNOOOPPQ/QOQdQ}QQQRRSSTTU$UDUYUrUUUVVWWWXYY9YNYgYYYZZ[[[\\]A^T^^O_d__l``````a7bJbbEcZccbdwdeecfff^ggg hh7hWhlhiiXjjjSkkkkl,lLlalmmNnnnIoooqqqr)rr1sFsfs{sssstuu vvv&w;w[wpwwwwxyyyzz{1{e|x|}}}-~~~,^qlՅ'h|09Ή#׋/E_uɎ}Տ=Sm6LT—]ܘ*Df|њݛ #dx,5ʠ Ң*@ۣZp¤;O[q 2HPYد&@bx̱ز@Vp 9OXƺa6JVlԿ&g{/8".D^t|<Rl5KU^4HTj,BJS  :\rz:Pj3IQZ'Acyu)ko\RVCs9J7g-ht4J' 2' =' H' S' ^' L, _, x, , , , !3 43 M3 f3 3 $4 =4 4 4 5 !5 85 S5 j5 5 5 5 5 U7 h7 s7 ~7 8 9 9 9 r: : ; ; ; a< z< < < < < < = W> > > > .? B B C )C C C D ED D D D D D E *E F G G H H H I 1J _J J J J U v z < P @ W     ] v  b u  ! 7 R i    C Z {       " ~  1 q  t  0 G  \ o z       % 0 ; F   u  / ^      l         - D _ v    @ ~ * = V o   N a l m 5! N! ! ! " _" " " " " # *# E# \# w# # % V% % % % ;' N' Y' d' ( ( ( ( + C+ + + + , 3, `, , , , $- =- u- - - Z. . / B/ / / / 40 M0 Z0 q0 0 0 0 0 0 1 "1 91 T1 k1 1 1 1 1 D2 W2 2 2 '3 :3 3 3 4 #4 (5 ;5 5 5 5 76 N6 j7 7 7 9 9 9 : J; a; }< < = .> > > ? @ @ 4A A TB mB C C C C C }E E E E E E E F #F i ~i i i (j yj j k ~k k k Ol hl l l l m Wm pm m n 'n n Uo no o o p Vp p p p Bq [q q Ur nr r r s Js s s t Zt st t t t t t t u -u Hu _u zu u u u u u v 'v Bv Yv tv v v v v v w !w wߓGL\f֙LXdp1Pi ϜZxj۞(Ϡ@^vâТݢ+8Pˣ6QbŤݤťҥߥ)V(zŬݬʭ׭MZðٰ8SzXaķ'Owen>r{:CLd~5BO\iv0Ndo|,B`D9.9FS`r 6T -=0Ha=JWdq~4Nd6Lm -:GTj4R2Pf6+y n$1>KX, '4 ":Oef-ox '&<Wr/Je"=Xs1Ge{ !?Ush0Tj !?u;9Om =j`UJ?4)wlaVK   @   5  *x!.;HUbxnV)Ien{#0S\t)Hh9BOr{'0Hg !!!<#y$$$%'''''*8+A+E,[,s,,,,,6-C-P-]-j-w------. .6.T.j....../$/:/X/n////// 0(00000000001/1R1[1z1111112&2D2Z2x22222C3Y3w3333334)4G4]4{4#55q677f8 99[:;;P<<=E>;?1@'AB(B5BBBOB\BiBvBBBBBB CDDEEFFFFGG;GPGnGGGGGGGAHJH@IIIIIIIIJJJLKYKfKsKKKKKKKKKKLnLL@MMMMM:NNNNNNNNN OO%O:OGOTOiOvOOOOOOOOPP#U,UXYY#YYYYYY Z(ZFZdZZZZZZ [([F[\[t[[[[[\ \>\___ `'`E`[`s``````EaNaaaa b b8bNblbbbbbbjcccdddefggg*g7gDgQg^gtgggh&hDhZhxhhhhhhi*iHi^i|iiijjj(j>j\jrjjjjjjk,kBk`kvkkkkkkkkkkljllll|mmmm9nTnlnno o8ooooooUpmpp1qqqqrrr"r+r4r=rFrOrXrarjrsr|rrrrAsNs[shsussssss ttt^uu2vvwpwwRxhxHQV_ԇ7ƈӈۉ=Q%2?LYf|̎Q^kxӏ5Lc uѓ}*7DZxTN[huޘ,9FS`m4Jh~Л5Siќ#9W˝8Nlʞ2Hf|џNd"/<IVcp} 6T͢5Ṣʤ2PȥH^|Ʀ.Lb)Ѩy!ɪqia YQKXe͵3H`vzȷ޷0H^|Ƹ1Oel1>KXer1,J`~H^~/?O_-:GTan{-HUp :9I^yU;kw(Gir )6CP]jw19>\q+@Rj|]1T]fs3iygc`  ;    d  DG"+4OX T]f/Ga%= F O X p      !""""""####,#D#e##)$J$$$$$$=%%%%&&0&&&&&&B(K(T(](j(w(((((( )))*Z*c*l*u***Z++++++,---+-s-|----....../}//'00090Y000001112'2?2^2}22223 3*3c3l334444555566666677778 8*8f8o8x8888 999>9y9999: :::3:T::;m;v;;;; <m<<<<<<S=\=e=n==d>m>v>>>????@@@sA|AAAAABBBBBB C*CJCCCCCCCD%DzDDDDDD0EEEEEF#FFF,G,b,,,-3338Z?RVV^^^^_```a'aqazaaaa/bEbcbbbb]csccc d(ddff(g8jklmPnkno oo,oFoNp\qBrKr7s@svpzzz{{{{{{ ||$}1}>}}}}}}.~7~@~`~l~x~~~~kxr̀ڀ8A֊ 6=FO(Uu4U09Om՞ =Rgşݟ*Hktݠ7VlȡѡۡڰUsزIٳ | &>!?YqTr׸Hع { %= >XpSql,Q[l?HYn (")14RkU_(9NfPnq7_hy!?A_wZ`~' %-0NgU_(9NfPnq7]fw=?]uY_} & $,/MfV` ):OgQor 8`iz"@B`x^d+&.1OhS ]  & 7 L d  N l   o    5  \ev<>\tW]{ }$ # +.LeR\%6KcM k   n!!!"4""##Y$b$s$$$%%%&9&&&;'Y'q''(()))))S***Y+w++,y,,, - .....///0#000&1D1111]2I3S344-4B4Z44D5b555e6667+7788P9Y9j999 :::;0;;;2<P<h<<==>>>>>J???P@n@@@pAAABC CCCCCDDDEEEF=FFFFVGCHMH II'IJ\JJJ_K}KK L%LLMMMNVNgN|NN O~OOP-PPP/QMQeQQRRSSSSSGTTTMUkUUUmVVVWX XXXXXYYYZZZ[:[[[[S\>]H]^^"^7^O^^9_W___Z`x``a aabbKcTceczccd|dd e+eee-fKfcffgghhhhhFiiiLjjjjjlkkkllmmmmmnnnooop8ppppQqH"7O9WZx ~HQbwy (*H`DJhj2KNl6N2PRpl36Tmp68:XpTrt<UXv "@X<Z\zv$=@^wz (@$BDbz^| ~%(F_b( *,JbFdf .GJ h          2 J  . L   Nlh/2Pil246TlPnp8QTr < T  8!V!!!X"v"""r##$ $$$$9%%%<&Z&&&'s''(v(()$)<)) *>***@+^+v++Z,x,,-z---!...$/B////[000^1|11 2$223&333(4F4^44B5`555b666 7|77 8*8888C999F:d::: ;};<<<======Z>>>??=?S?r?@@@AAAAAAcBBBD)D;DDEE.EGE_EEKFjFFFFFFHH1HHHI$I=IUIIAJ`JKKKeLoLLLLL>MMMNOOOOO P"P:PP&QEQ[QtQQQQRR SSSSST/TTU:UPUiUUUUVVWWWWW X$XXY/YEY^Y}YYYZZZ[[[[\\\]%]K^V^h^)_3_E_[_t__`x``````aAbLb^bc)c;cQcjcccnddeeeffffffjgggh.hMhchhiiijjjjjj_kkk l#lBlXlwlmmm|nnnnnnUoooqq-qqq r r9rQrr=s\srsssssuu"uuuuv.vFvv2wQwgwwwwwxyyyyy z$zr~`k}ƈEĉ%7$;Umkˎݎʏ2Icޓ,DÔBcҗi  :[rǚӚқ:nz\gyŸA 2 6Phf٤EQc3>Pg ڪ(@>_ήe6Wn±αͲ5Lf/GƷEfֺm @L^.9Kb|ʿ=q}_j|D$6#:Tlj1Hb +CAbj >J\,7I`z":8Yz_0Qh/F` )A?`f7Xo5wh^OEzC:j*AZ)' 4' ?' J' U' `' V, o, , , , , +3 D3 ]3 h3 3 44 ?4 4 5 5 .5 H5 `5 z5 5 5 5 5 _7 j7 u7 7 8 9 9 9 |: ; ; ; < q< |< < < < < < = a> > > > 0? (B B C +C C C D UD D D D D E E AE F G G H H H I 3J aJ J J J FN N N N !O gO rO P P P Q oQ Q Q Q Q Q R R >R S S T U V V V W W m m Mn Xn n n n To o o o

I Lj ҈  ` k   R + 6 : ь  ! z Ӎ ލ  ( B Z t ؎ " < T n ҏ   6 N h ̐  0 H b z Ƒ ޑ  * B \ t ؒ $ < V n ғ   6 P h ̔  0 J b | [ j b ( 7 / P  $ Ο Ơ    ) 4 ʦ ٦ ѧ ˭ . 9 D O Z Ȱ Ӱ ް ~ F U M n  Ź ޺   + # D z  " v } F U M n   ' 2  o ~ v 7 F > _   x  D S K l F U M n   2 - m x l w    . G _     8 P q   5     $ ( 3 / % = ^  f q |       ' 2 = H       I T v      v        " : T l     B  4 M f    X c n w E! P! ! " " o" " " " # # :# R# l# # # % X% % % % E' P' [' f' ( ( ( ( + S+ + + + *, 5, p, , , , 4- ?- - - - j. . / R/ / / / D0 O0 g0 0 0 0 0 0 0 1 /1 I1 a1 {1 1 1 1 1 N2 \2 2 2 13 ?3 3 3 4 (4 25 @5 5 5 5 D6 e6 t7 7 8 %9 9 9 : W; x; < = )= 8> > > ? @ @ DA A dB oB C C C C C E E E E E E F F 3F >F jG G G H YH H PK K K K PL L L M bM mM M M M M M N ]O hO sO ~O P P P P [R fR qR S T IT TT T T T (U mU xU U U V ?V }V V V W W [W W W W ,X 7X yX X X Y HY SY Y Y Y %Z hZ sZ Z Z Z >[ ~[ [ [ #\ .\ r\ \ \ ] a] l] ] ] ] 2^ g^ r^ ^ ^ ^ _ Q_ \_ _ _ _ ` ;` F` {` ` ` ` %a 0a ea a a a b b Rb b b c 1d wd d d e !e be e e h h 5i @i i i i 8j j j k k k k _l jl l l l /m gm rm m n )n n eo po o p p fp p p q Rq ]q q er pr r r s Zs s s t jt ut t t t t t u #u =u Uu ou u u u u u v v 7v Ov iv v v v v v v w 1w Iw jw x x x x x Rz ]z hz sz ~z z z z z | | %| } } } l w ̀ ׀ # .   # .  $ /  ` k v ߎ p { . p ȗ L W b ߚ x H S f ֡  I T p { ӣ + 6  ŧ Ч ۧ V a l w  Ĭ Բ ߲ b q F g < ] 1  &   ۻ Ѽ ǽ / P i  ' { q g ] ~ S t I j ? ` 5 V + L ! B  8 .  $     ? W x M n C d 9 Z / P % F  <  2  (   v l b X y N o D e : [ 0 Q & G  =  3  )    w m c Y z O p E g          / 9 L l x  Z  L  WS W c& & & & & & ' ' 3' u' ' ' ' ' ( 8( O( ( ( ( ( *) H) [) n) ) ) ) ) * (* T* r* * * * * , T, , "- - - . -/ u/ / 0 1 =1 f1 1 1 1 1 2 *2 T2 .K VK |L K K !L cL L L HM hM M M N N VN zN N N NO +O yO O i Cj yj j j k k Ek ik k k k l U p { ޢ  C h } ͣ H s 1 n ɾ / R  E y + P  6 [ ~  ; P c # \  ! Y  H a  $ F y      - K i       4 ]       " B z    y   & g    , U y    3  2 f2 2 2 2 23 W3 3 3 3 4 =4 b4 4 4 4 5 A5 _5 5 5 5 6 E6 j6 M M M M N QN N N N !O CO gO O O O %P IP P P P Q +Q iQ Q Q Q R KR oR R R R -S QS wS S S T 3T YT T T T U IU mU U U V 3V dV V V V V V W r r s 2s Vs s s s s t Dt mt t t t u +u Tu xu u u u v Bv fv v v ג ) h Փ  B p ɔ " V { ԕ  - a ؖ 1 e  2 < E v  = _ ؚ  G f 4  ? c ޠ   & 7 T ^ h q  E \ ! ɥ 3 f Ҧ  J |  5 _ Ǩ  J y  J l > m Ы 3 U Ь $ N  ح H h ٮ  ڳ E n ߴ  , U y Ƶ  < ` # A u ǻ  7 k ۼ  -  * S  B p  : g I  b j  g G p W   / H &I JI I J TJ c !d Fd Xd =e se e e e f f f g Mg rg E~ R { ٘  ? c ٙ & J s  7 ` ћ  G k ל  3 \ ޝ  6 _ О  O i 5 ` ؠ Ⱥ ! U z ӻ  , ` ޼  7 k Ľ  B v Ͼ ( M ڿ 3 X   9 L n 4 M v  ; _ ! E n & p /c3g>wC} 7K| FPZs,ReYI I{oJ~0) B Y d      !!*!P!v!!!!####5$c$$$%Z%%%&B&&&'Y'''':((((A))))*8*a**** +/+c++++++),>,i,,,,,,-H-e-----5.../@/{///0G0`0|00051h1112P2i2}2222383`333334.4B4]4y444 5(5P5m55556=66666+7b7777-8[888929^9999?:z:::;O;;;<%<Q<j<<<< =W====.>\>>>>)?i????5@ @@@@@@!A\AAAB@BhBBBBC;CeCGMGuGGG>BHI@I^IIIIIJ2JJKAKeKKKKKLbLLLLLLMPPPPPPPQR}]1acOdQEo&x{~o^'Q4QAQOQQQQR%RQRqRRRRSISsSSSST0TST|TTTTUUUUUUV>VcVVVWX&X;XTXXY>YYYYYYZZ;ZUZZZ^dddeMeqeeeeeef$fWffff'gYggggggh]hhhh4icii(jYjyj=jjGjjjk9kZkkk l5lzllmcmpmYpm;nnnnnrݽ ':MfzԾ/cο+>Wk Tr /H\Ec  9Mx6T}*>i'En/Zv6_  Kgz 'Pt<Xk~Ae-I\o 2V:M`#Gs+>Qy8d/Bj)Us  3[{Fdw$Ll 7Uh{=](FYl.N7J]v?s (;Ng{0d,?Xl!Us 0I]Fd!:Ny7U~+?j(Fo0[w7` !Lh{ (Qu=YlBf.J]p 3W Im6_'Lu =b Sx"5k ':M=Pc 5SfyKi|7c+O{Ae .W{Dm7\Mr /e!4G}9L_3QdwKi|5a'Kw = a      * S w      @ i      1 V       G l    )],?s/BU'EXk?]p)Us?k 3W Im6_)Nw ?d!Uz$7k ':M=Pc 5SfyKi| 5 a      '!K!w!!!!!"?"c""""""#4#P#c#v#####$:$k$$$$$$%,%O%f%z%%%%%&)&B&^&&&&&'4'P'c'v'''''(4(G(Z(((((()+)>)f)))))*3*J*^****** +&+B+h+++++,4,G,Z,,,,,,-O-f-z-----.3.J.^...... /&/B/h/////040G0Z0000001+1>1f11111232J2^222222 3&3B3h33333444G4Z4444445+5>5f55555636J6^666666 7&7B7h77777848G8Z8888889+9>9f999999:":J:m::::::;.;G;`;~;;;<<,<Y<u<<<<<==B=^=r======+>G>[>n>>>>>?8?j??????@/@S@j@@@@@@A2AKAiAAAABBDB`BtBBBBBC-CIC]CpCCCCCD2DFDYDDDDDD#EUElEEEEEEF>FUFjFFFFFG'G>GSGGGGGGHH=HdHHHHHI4IHI[IIIIII%JWJnJJJJJJK@KWKlKKKKKL)L@LULLLLLLM!M?MfMMMMMN6NJN]NNNNNOO3OFOoOOOOOPP/PXPrPPPPP+QBQWQQQQQQR+R@RmRRRRRRS)SVSrSSSSSST?T[ToTTTTTT(UDUXUkUUUUU V5VgV~VVVVVW,WFW_W}WWWWX+XXXtXXXXXXYAY]YqYYYYYY%ZNZvZZZZZZ[:[[[[[[[[$\@\T\g\\\\]"]9]N]z]]]]]^?^e^x^^^^^__<_]___@__`A`X`````a'aFaPaZadanawaaaaa(bbbb bbbbb c6cMcwcccccdd%d@dJdTd]ddpddzdd!e8ebeyeeeeeff'fZfHQhrÆچ5LVć·؇ 7]vՈGm߉+Qlv؊ 3JTƋ.8cՌGmߍ+QhrÎގGmߏ+Qdn /Dp͑*O/CT]rԓ|=g~6\}ƕ7AKU_is?sėΗVƘ=cә";EXmϚw 8by1Wt~ʜӜ *4>2HlR\fpIs˟ 6MwϠFe|ơϡ0C\dmڢGpݣ!JdѤ?lť'ϥa٥æͦצW +Bl֨ fªpz6pX̬ʩԩ@ީz(b֮$.J8BLV2`ljtհLȲ<v  $*^4>ҴH RF\fpz#Md϶'Qhӷ+Ul׸/Yp *4>HQvúԺݺ ",5LUluڻ %6?\fwϼ 8BRmwĽ׽JctȾ>Ҿm¿6p 'BLV_z %@Z#=fB\ ,Uv 3Mv?Y"Ke.Wq :c},Fo8R{D^ 'Pj3\v,FY"Ke.Wq :c},Fo"Ke.Wq :c(']]]c_k_s___```````Wa`ajataaaaaIbRb\bfbncwcccccFdddeYebeefffgglg+5m?t(yZ:F~NV&^ƍ.fΏ6nz8D}MR "blܙR^jv7Vo՜`q/֠Fd} $ɢ֢ $1>Wѣ%<Wiˤ˥إ/!\Ũ.ˬ íЭݭS%`ʰ߰>Y^g˷-U}ku#Ex@IRj;HUbo|!6Uj u3HfI>3?LYfx'<Y3C6NhCP]jw:Uj =Rs &3@M[p%:X#8Wl;0~%s*7DQ^2 -:(@Vkl3u/-B]x5Pk (C^y8Ml'F[z n6[p'E&{#A !@Ut%Cpe ZOD9.|#qf [P   E   :  /}'4AN[i~t\/Okt )7Ybz/Nn#?HVx -6Nm !!"B#$$$%' '.''*>+G+L,a,z,,,,,<-I-V-c-p-}------.'.<.[.p...... /+/@/_/t//////0/0000000001161X1a11111112,2K2`222222J3_3~3333334/4N4c44(55v677k899`:;;U<<=J>@?6@,A"B.B;BHBUBbBoB|BBBBBB&C DD EEFFFFG#GAGVGtGGGGGGHGHPHGIIIIIIIJ#JJJRK_KlKyKKKKKKKKKK LtLLFMMMMM@NNNNNNNNOOO+O@OMOZOoO|OOOOOOOOP$P )U2UXYY)YYYYYYZ.ZLZjZZZZZZ[.[M[b[z[[[[[\&\D\___`-`L`a`z``````KaTaaaab&b?bTbsbbbbbbpccd#dddef gg#g0g=gJgWgegzgggh,hKh`hhhhhhhi0iOidiiiijj!j/jDjcjxjjjjjjk3kHkgk|kkkkkkkkkllpllllmmmm?nZnrnno&o>oooooo[pspp7qqqr rrr'r0r9rBrKrTr]rfrorxrrrrrGsTsasns{ssssss&tttduu8vv wvwwYxnxSNW\eۇ>̈وÉCVč+8ER_mӎWdq~ُ:Q h{ؓ#0=K`YTan} %2?LYft;Poכ &;Zoœל *?]ѝ#?Trў9NmןUj(5BO\ivġ'<[Ӣ&;Zң$Ф#8VΥOd̦4Sh.֨~&ΪvƬnf^VQ^lԵ 9Ng|Ϸ6Od̸"7Vk! r7DQ^kx"72QfOd5EUe3@MZgt 3N[v%@? Od[Aq}%.Moy"/<IVcp}7?Dbw 1FXpc7 Zcly9o"mi f  A    j & K  N (1:U_ Zcl 5Mg,C L U ^ v     !!""""""# #)#2#J#k##/$Q$$$$$$C%%%& &&7&&&&&&H(Q(Z(c(p(~((((()&))) *`*i*r*{***a++++++---$-2-y-----%...../!///-060?0`00000111$2-2E2d222223313i3r334444555566666677778818l8u8~888899$9D99999:::!:9:Z::;s;|;;;;<t<<<<<=Y=b=k=t==j>s>|>>>????@@@yAAAAAABBBBBBC0CQCCCCCCD D,DDDDDDD6EEEEEF)FFFBGKGTG]GG4H=HFHOHIIIIIII J#J.JuJ~JJKvKKLMMdNmNvNNNNNO)OpOyOOOPP(P5PBPPPPPPPEQNQWQwQ REn\{\\\\\\9]B]]]^^;^H^__z`=a\aaaaacj#q0q=qJqWqdqqqqqqrrrrrspttTo|ۅ9EBLчۇ !+5?IS]gq{ˈՈ߈nx!Y*<N`zYk? MƩpf۬PĭЭ7xخ!9J_pׯ7H]nΰ߰0A_ѲrdzԳ>Gǵ?Hgжݶ+8ER_2ÿп&/SENWoXajXf.;HUbo $1>KXer(2<FPZd  - 6 V x      ,2R$-6ENhqz6P\q 1KhLU$R[H&&"D,M,h,,, -,333%8)`?~RVV-^^^^_``aa.awaaaaa6bKbjbbbcdcycccd/ddf f.g>j klmVnrnooo2oLoTpbqHrQr=sFsvvzzz{{{{{{||*}7}D}}}}}}4~=~F~f~r~~~~~~q~ xƀӀ>GA܊ '<CLU.[ {%:[6@Utܞ%CXm˟0Oqzà%=]rΡס*[yƲ޲P߳,D'E_wZxŸݸO޹+C&D^vYwr2WarEN`t.(/8:Yq[e%.@TlVuw%=en!'FGe}`f-$+46Um[e%.@TlVuw%=cl~%DEc{_e,#*35Tl\f&/AUmWvx&>fo"(GHf~dj1%,57VnY c # , > R j  T s   u   # ;  bk}$CDbz]c*")24SkXb"+=QiS r  !t!!""":""##_$h$z$$$%%%!&@&&&A'_'w''(()))))Y***_+~++,,,,&-..... /!// 0*000,1K1111c2O3Y34"444H4`44J5i555k666717788V9_9q999:::;7;;;8<V<n<<==>>>>>P???V@u@@AvAAAB CCCCCDDDE#EEE%FDFFFF\GIHSHII.IBIZIIDJcJJJeKKKL+LLMMSN\NnNNNOOOP4PPP5QSQkQQRRSSSSSMTTTSUrUUVsVVVWXXXXXXYYZ ZZZ"[A[[[[Y\D]N]^^)^=^U^^?_^___````a&aabbQcZclccc ddde2eee3fQfiffgghhhhhLiiiRjqjjkrkkklmmmmmmnnnooo p?ppppWqBrLr ss's;sSss=t\ttt^u}uu v$vvwwMxVxhx|xx y~yyz.zzz/{M{e{{||}}}}}H~~~Nmn ˂Ԃ<˅TBL ';SȈ=\Ή^} $MVh| ~./Me֐Ñ͑ԒIݓOnߔo ͗֗>͚VAK &:Rǝ<[͞]| #JSey{ +,Jbӥ˦ҧGۨMlݩm ˬԬ<˯TBL ';SȲ=\γ^} $NWi} /0Nf׺»̻ӼHܽNm޾n ?WDN)=U?^`&NWi} /0NfJPop9RTs<T8WXvr!:<[tv$< ?@^vZy z"$C\^} $'(F^Bab | +DFe ~.F*IJhd,.Mfh.12PhLkl5NP o          8 P  4 S   Trn68Wpr 8;<ZrVuv ?XZy #$ B Z  >!]!!!^"|""#x##$'$$$$@%%%B&a&&&'z'' (|(( )*)B))&*E***F+d+|++`,,,----(...*/I////b000d1112*223-333.4L4d44H5g555h666777818888J999L:k:::;;<<<======`>>> ?$?D?Y?x?@@@AAAAAAiBBB$D/DADE EE4EMEeEEQFqFFFFFFH%H7HHII*ICI[IIGJfJKKKkLuLLLLLDMMMN OOOOOP(P@PP,QLQaQzQQQQRRSSSSTT5TT!UAUVUoUUUUVVWWWWWX*XXY6YKYdYYYYZZZ[[[[\ \\ ]+]Q^\^n^/_9_L_a_z__`~`````a aGbRbdb%c/cBcWcpccctddeeeffffffpgghh4hThihhiiijjjjjjekkkl)lIl^l}lmmmnnnnnn[oooq!q3qqqr&r?rWrrCscsxsssss uu(uuuvv4vLvv8wXwmwwwwwy yyyyyz*zBzz.{M{u|||f}p}}}}}?~~~ڀ %=)HnyLVi~%҅$Eygq͈Lˉ +>,B[trƎюҏ:PjÑ2KʔIjؗp'AcyΚٚƛڛ " AucmɟHǠ&9 '=VomLWj:DXn.GƫEfԮl #=_uɱԱղ=Smƴ5NͷLmúܺtGRe5?Siѿ #DxfpK*= +AZsq9Oi1JHiqEPc3=Qg (A?`f7Yo7Mg/HFgm$>`v '=~o$eV LJBr2Ha/' :' E' P' [' g' \, u, , , , , 13 J3 c3 n3 3 :4 E4 4 5 5 55 P5 g5 5 5 5 5 5 e7 p7 {7 7 9 9 9 "9 : ; ; ; < w< < < < < < < = g> > > > 7? .B B &C 1C C D D [D D D D D E 'E HE G G G H H H J 9J gJ J J K LN N N N 'O mO xO P P P Q wQ Q Q Q Q Q R $R ER S S U U V V W W W Jm n Sn ^n n n o Zo o o o Bp Mp p p p +q tq q q q r Fr r r s ws s s  t +t ot t t u Pu [u u u u wv v w Kw w w x y y z { { N| | | | ?} J} } } ~ H~ ~ ~ ~ F Q   q € ̀  a l B  #  ߃ 8   _ j   !   ȇ  D O  ͈ ؈  f q    X   1 <   @  ׌  '  ٍ  / J a | Ŏ  ) D [ v ڏ # > U p Ԑ   8 O j Α  2 I d { Ȓ ߒ  , C ^ u “ ٓ & = X o Ӕ  7 R i b r i / ? 6 X    , Ɵ ֟ ͠     $ / < Ѧ ا     ҭ 4 ? J U a  ð ΰ ٰ   M ] T u      ͹ ĺ     # 3 * K      *     }  M ] T u   " - :        v } > N E g   $     K [ R s    M ] T v  !  9  3 s ~    r }     5 O f     @ W x   <     +  . 9   5   - D e   l w       " - 8 C O       P [ }      |        * A \ s     H  : S l    ^ i u }  K! V! ! " " u" " " " # '# B# Y# t# # # &% ^% % % % K' V' a' m' ( ( ( ( + Y+ + + + 0, ;, v, , , , :- E- - - - p. / / X/ / / / J0 W0 n0 0 0 0 0 0 1 1 61 Q1 h1 1 1 1 1 1 T2 c2 2 2 73 F3 3 3  4 /4 85 G5 5 5 5 K6 l6 |7 7 8 -9 9 9 : ^; ; < = 0= @> > > ? @ A JA A jB vB C C C C D E E E E E E F F 9F EF pG G G H _H H VK K K L VL L L  M hM uM M M M M M N cO nO yO O P P P P aR lR xR S T OT ZT T T T .U sU ~U U U V EV V V V W W aW W W W 2X =X X X X  Y NY YY Y Y Y +Z nZ yZ Z Z [ D[ [ [ [ )\ 4\ x\ \ \ ] g] r] ] ] ^ 8^ m^ x^ ^ ^ ^ "_ W_ b_ _ _ _  ` A` L` ` ` ` ` +a 6a ka a a a b "b Xb b b c 7d }d d d e 'e he e e h h ;i Fi i i i >j j j k k k l el pl l l l 5m mm xm m $n /n n ko vo o p p lp p p q Xq cq q kr vr r s s `s s s t pt }t t t t t t u *u Eu \u wu u u u u u v $v ?v Vv qv v v v v v w w 9w Pw qw x x x x x Xz cz nz yz z z z z z | | ,| } } } r ~ Ҁ ހ ) 5      ) 5  ˆ  * 6   f q }  v    4 v  × ϗ R ] i  ~  N Y   l  ܡ  O Z  v ٣ 1 <    ˧ ֧ \ g r ~   ʬ   ڲ   i y M o C d 8  .  $      ټ  Ͻ  ž  6 X  p  /      x n d Z | P r F h < ^ 2 T ( J  @  6  ,  "     % G ^ T v J l @ b 6 X , N " D  :  0  &             } s i _ U w K m A c 7 Y - O # E  ;  1  '            ~ t j ` V x L n j       ] \ q& & & ' (' ' ' ' W( ( ) c) v) ) 0* * + . 0 E1 1 1 J !6K PM M N i j $k qk k   L  ? ^   e = u ]  K , P   v  7 ) M   X   c d   X k  +   )    & Q y      - K i      <      J   4   1 2 3 _3 3 4 j4 4 5 g5 5 6 M 9M M VO O 8P P Q qQ Q SR R 5S S T T T \U U V lV V V r r s ^s s s Lt t t 3u u u v nv  ߒ 1   x є *  ܕ 5   9   * M  g    n    z u F H   ѥ    t   ]    ( p   M   4  ε  ׺ I   ?     6  ; O O _ / H I c c Pd -e {e e f f !g } ' &Z   k   R  ?  ٛ & s  ; Ý >  ؞ % q =   к )  ۻ 4   ?   J   U   `  i   % T   U   g   M m7;FjA{1S1{&ZwJ l   !!=!c!~!!/#J##)@***7++,,4-v--.H//,00p11a22@333(4J4405u55(66377c88:99G::";;#<6<<==d>>q??@1@@@HBB C G!G}GH*IfIIIJ OKKKZLpLLLMMP,PPQ'Q2Q?QOQuQ QQ-RyRR%S{SST[TTxU UUUUkVWX YYY ZZZ ^G}ddd[ee,fffjggehhh3jYjwjjjk=lppGqqq.r{rrztvvvwwxx{,{{{K}'~~~5v v~%"5΄Tg2ˇQdZmʉ݉:`݊13bu\Ս$SfMƏDW>5H/&9Ӕ }*rĖnٗc_{ʙ TPlEA]۝6՞2N̟ߟ'yƠ#?Сj0 [!pLa=Rܩ.{تCrͫlɬ4cv]֮%TgNǰEX?6I0':Ե!~+sŷoڸ d`|˺ UQmFB^ܾ7ֿ3O(z$@k1 \"qMb>S/|Ds m5dw^&UhOFY@7J1(;",tp ea}VRnGC_84P){%Al2 ]#rNc?T0}Et!n6ex_(u>Tj'*=BUXkn'? W m6L d!z$7<OTgl'=S i   2    H    ^    t  14GJ]`sx1G_(u>Vl),?BUXkn'=   !S!!!"k"""<#k#~##$|$$$ %`%%%%1&&&<'k'~'' (O(b(()3)F)))D****+p++ ,O,b,,,`----D..../p// 0O0b00131F111D22223p33 4O4b44535F555D66667p77 8O8b88939F999:*:~:::;O;;<a<<<<J=z===3>c>v>>?{???@d@@@@:AAALB|BBB5CeCxCCDNDaDDEfEEEEOFFFF8GGGGHlHH IPIcIIJhJJJJQKKKK:LLLLMnMM"NRNeNN O;ONOOO$P7PzPPx&`ԮH0jJƲ:t"\д D~+l/p3t7xbFfһPǼ0cϽ[<x4n8pmUbE!d4~Ua*m6yB NZ#f/r;~ Na*m6yB N*m6yB      " 5 ? _ r ~   r <   d .   & & ' ' (' W' ' ' ' ' ( >( Y( ( ( (  ) 0) N) c) z) ) ) ) ) * 4* Z* x* * * * +, + y, , , R- , , - . Y/ / 0 %1 G1 l1 1 1 1 1 2 C2 @K \K L /RK K 'L iL L L RM nM M &N \N N N N eO 1O O #j [j j j j k &k Kk sk k k k &l _l l , N ~  ׇ ` l  I g } ڡ  D c v Ǣ $ Q n R y ƽ  U z Ͼ  ; X O   1 ,Z < e K  A X m / b  + _  N  8 * k            ! 3 ? Q ] o {           > c       ( L    ]     Q     6 [     lc  F2 2 2 2 3 83 a3 3 3 3 4 C4 l4 4 4 4 5 G5 i5 5 5 5 6 K6 M M M M N WN N N N 'O XO O mO O O O :P nP OP P P P Q PQ 1Q uQ Q Q Q 2R R WR uR R R S R 9S WS }S S S S T 9T _T T T T U 0U U ^U U sU U U V 9V nV V V V V W r r s 8s `s s s s s &t Nt st t t t u 5u Zu u u u u v Hv pv v  3 n ۓ H z Ӕ  , \ ޕ  7 g  ; k ė . 8 B S |  C i ޚ   M p Û $ E D( Ơ  " , N Z d n  K ; ' ۥ  9 l ئ % P  ; e ͨ  ) P  y  P v  D s ֫  9 _ ֬  * T  * N r ɮ ! O t  6 [ е  B ) K { ͻ  A q ü   0 Y 1 V ' N {  a 7 u   / Q v a   *I ,I nI I )J c 'd IUe }e e e e f g #g Sg \ Ƙ  E m ߙ  , T y Ě  A f ۛ ( M w ݜ = b ǝ " @ e ڞ ' U s  ? f Һ  h+ [  ݻ 6 f   A q ʽ # L |  վ  . W 9 b ' ? X t  : W |  A i  ' W t , v 9i#=mBH} %Ib3=[7LV`(B2Zl#_OOwP6 a/ L _ p    !=!M!c!s!~!!!###+$;$i$$$%`%%%&H&&&'_'''(@((((G))))*B*g****+9+i+++++#H,/,D,o,,,,-6-N-z----.;.m../<J////00M0f0000i;1r111$2e2o22222<a3B3f33333*444P4c4444525V5w5555C6666757h777738e888 9>9d999:^0I::::$;U;;;:<W<p<<<<=]===>4>h>>>>/?s???@;@_@@@@@%@@@'AbAAABJBnBBBBCAC#GSGGGIFIhIIIIIJ-KkKKKKKLLLPPPPPQPQQQ RO/R#RWRY{RoRRcRRRRm'SSSOSw}SgSqSSSTT6T]TQTTTTTUUUUUUVDVmVV X"X,XAXyXXYDYYYY ZZAZ~ZZddeweeeeeef.f]ffff-gpgggggg$hehhhh:iij9j_jkjjjCjjjMjjkk?kqkkk"lYlll#mimBpm}pmAntnnnBoooppppqIqnqqqqr0rUr&}rrXsgsss*t~]tttt uNuuuvv!vGvwwwwxRxr{{{{{{{{|]||||'}M}i}}~)~]~~~~7[x&1Oxʀ'Nс'Z-pKƃ "9_}҄;Tkԅ*mHÆ6\zχ8Qhш'EZqʉ%:blMwȊ݊5Hd5Mbw6`׍&>Sh'Qwȏԏߏ/DY}ѐBhőБ 5Jn’ 3Ywۓ&;_Ք$Jh}̕,PtƖ;YnۗAeܘ,J_}̙2V͚;Pnz՛#Gw,A_kvƝ۝8hٞ2P\g̟)Y{ʠ#AMrXҡJl2>cIã ;]Ҥ#/T:rإ,Nsæ E+c{ɧ?dҨ6Tlީ0Uêت' E]rϫ!Fpɬ6Ncx7aخ '?Ti(Rxɰհ0EZ~ұCiƲѲ !6Koó 4Zxܴ´'<`ֵ%Ki~Ͷ-QuǷ<Zoܸ Bfݹ-K`~ͺ3Wλ<Qo{ּ$Hx-B`lwǾܾ9iڿ3Q]h*Z|$BNsYKm3?dJ <^$0U;s-Ot!F,d|@e7Um1V(F^s"Gq7Ody8b (@Uj)Sy1F[Dj "7Lp 5[y(=a&Lj.Rv=[p Cg.La4X=Rp|%Iy.Camx:j4R^i+[}%COtZLn4@eK =_%1V<t.Pu"G-e}Af8Vn2W)G_t#Hr8Pez9c*Oy@e-V{Cl)Y*?q-BW%CXm;Yn+QoCi 1["Gq8]%Ns =f#S|$9k '<Q!?Ti9Wl+QoAg-W} C m      4 Y      ! J o      7 `       M v     3c4Iy5J_-K`uEcx 5[y!Kq9c*Oy@e/X}En+[,Aq-BW%CXm;Yn+Qo A g     !-!W!}!!!!! "E"o""""""" ##>#V#k######$@$~$$i$$$$$$%2%b%l%M%%w%%%%%&5&H&d&&&&&& ''>'V'k''''''('"(:(O(d((((((())3)H)l)))))*F*P*1*v*[***%***+,+H+r+++++,+",:,/O,d,,,,,-$-b-l-M--w---9--.F.P.1.v.[...C.../,/H/r/////0/"0:0MO0d000000011W31H1l111112F2P212v2[222a2223,3H3r3333343"4:4kO4d444444455u35H5l555556F6P616v6[6666667,7H7r7777787"8:8O8d88888889939H9l9999999::,:P:::k::::::;4;S;g;;;;<<;E<)<c<|<<<<<=<.==L=e=z======>=5>N>c>x>>>>>???}??h??????@6@f@q@Q@@|@@@@@A>ARApAAAA BA0BBNBgB|BBBBBBCB7CPCeCzCCCCCDC D9DNDcDDDDDE*EhEsESEE~EEEEE!FQF\FKKiKKK3KK LQIQ)QpQTQQQeQQQ'R2RRYR=RwRRoRRRSSRBS&S`SySySSSSTS+TTITbTwTTTTTTUT2UKU`UuUUUUUVul_uxuluumuum v&vmGv`v#mzvvvvv#w=wdw~wwwwx'xAxhxxxxxy+yEylyyyyyz/zIzpzzzzz {3{M{t{{{{{|7|Q|x|||||};}U}|}}}}}~?~Y~~~~~C] Gaƀр >IV~ȁ"-:bԂ  4>T_lƃуރ8CPxĄ΄؄&<GT|ƅ&0:DNdo|ֆHS`ʇԇއ >r|܈&N 2hr|ԊߊFQ^ËЋ*5Bj܌&N 2do|ڎ&N 2`jېt )6\Azԑ 1YȒ$5IZnxړ-Gnɔ =yߕ3=GQ[eoyIzʗԗ";\uИD|ٙǙ7AKis՚}(Biě8pzƜМ&0ĝݝ:D8QNrXŞbl 9vSz՟=W~٠Mx¡̡ ,6Xbjwʢ 7Qw+Q~ %1E] ˥-FեgߥɦӦݦ#<]vʧ 2LsҨܨblȪv<Uvɫ$=^wƩҬЩ %کF_ӭ .G h ܮ*/4Pi>HįݯR\8QfrpŰz1Rkβ!B[|ϳ &*C0d}:DشN+XLeblٵv-Tnֶ1Xrڷ5\v޸9`z&0:DNr|ɺں(2HRhrֻ+<Xbl}˼ռ4>His}ӽ7ݽ_izľ #ξD]ؾȿ<Uv$>HR\v"!Gd*Gm#If6\:W} Fc,Ro8^{'Dj 3Pv?\%Kh1Wt =c 3Nc,Ro8^{'Dj 3Pv,Ro8^{'Dj  v L   h >   & & \' ' ' %( G( ( ( 5) S) ) ) * * _* }* * * 0, + ~, , W- - - / ^/ / 1 *1 q1 1 1 2 H2 aK L @cK K ,L nL L M sM 8N nN N jO CO O (j `j j j k Pk k k +l dl l 1  ܇ N ߡ  I 2 ~ ˽  Z Ծ  ] 6 = A \  F g  d  S =  h  -   b     V    `   }h % K2 2 2 =3 3 3 H4 4 4 L5 5 5 P6 M M !N \N N N N ,O O P |P P ^Q Q @R R "S S T mT T >U U U GV V V W r =s s s +t xt t u _u u u Mv v  | V  a  l Ŗ  p ɗ H R ) J U9ˠ  T L ,  > q ݦ * U @ j Ҩ  U   U I x ۫  > ۬ / Y S ή & y ƴ  ` G . һ $ v ȼ  5 ^  6 [  , S f 1 <  @ {  ;1I sI I .J ,d ZZe e e g Xg ˘  J 1 ~ ɚ  k  R % g ' j  Z  ʟ k  y`   k ļ  v Ͻ ( ھ 3 >  D y ? F , y 1 { n4r$S*Ng G1m]]^? r4   !H$v$$$$%m%%%&U&&&$'l'''(M((()T)))(*x**"+z++<a,-[-Q../^0/01Q111:22Uz!3s334445_55Y67z77E8899:R:;k;<"=o==F>>E?=?H@l@@@A4AoAAA,B{BBNC`GGIOIII$J6KtKKKLLQQR\RRRTSSS;TTT VMVV~XXVYYJZZd,eekff;g;hhUiijjjjj kDkzkkk'lll5m{mGpmp nOnnn oXooopp&qsqq rZr7ri(spsss3tbttu[uuuLv!wwdx&|j||||,}n}}~b~~`Tπ\cĂ2uP˃d@م/rMȆ a=ֈ,J *͊i R;C,|4֐m%sǒ^|dOmՕU@^ƗF1O7Қ"@ڛ(|Ü1˝m" ^{Ol@פ]ݥ1xȦNΧ"iר?qZȪ0bK!S<D-}5ױn&tȳ_}ePnֶVA_ǸG2P8ӻ#Aۼ)}Ľ2̾n# _|PmA^2yO#j@r[1cL"T=E.~6o'u`~fQo WB`H3Q9$B*~3o$ `}QnB_3zP$kAs\2dM#U>Tj2H^v2*H@^Vtn6Lb*xBXp,&D>\Vtl2H    ^   & t   <    R   h$~:2PJh`~&v>Tj4J`v2*H@^Vt l   2!!!!J""")#[###E$$$7%%%&i&&)'['' (?(((#)q)) ****M++ ,?,,,)---....M// 0?000#1q11 2222M33 4?444#5q55 6666M77 8?888#9q99:U:::9;;;N<<<7=j== >S>>>D???;@@@$AuAA9BlBB"CUCC D>DDD/EEE&FFFGuGGGIHH I@III1JJJ(KKKLwLLLKMMNBNNN+O{OOPdPPQyQQQbRRRKS~SS4TgTTUPUUUAVVV8WWWMXXX6YiYY ZZZZZF[[\L\\\o]]]O^^^H__`M```aaa3bLbmbbbbcBcccdddd-eneeef~fffgXgghhhi6iOiii0j}jBĠRϢ<|VäJb2Kl(Ab{7xͪ AZ{Ϋ)Bc|׬*Kdح3Lm4Unɯ=Vwʰ6WpӲ &G`Գ/Hiݴ0Qjŵ޵Y۶]߷ a$e <(IbͿ AZ{L/r Na?KW c,o8{D P\%h8W c,o8{W c,o+' ' ' ^( ( ) f) }) ) 7* * J1 1 1 N j )k vk k Q  j f Ԣ ^ W R  ]  h  [ p 2  . A     O   9   2 3 d3 3 4 o4 4 5 l5 5 6 M O P Q eR GS )T sV V r s cs s t Qt t t 8u u u &v sv A  } ֔ / : >  l   s ƛ # y b - u R 9 ӵ N D T d I c e e f &g _ # p W D ޛ + @ C ݞ x D պ . 9 D O  Z g *  Z  l  <@]O s  "!!!)E***<++,,9--.`//0122E333S4455z5G77w88T99_::';<=>~>???MBBC&GGkIIIKKLQ2R~RR*SST`TTUUpVYZZdؔ'/wɖqޗ  h bϙYSJDޝ;ܞ5ϟ,~͠&աoƣ`uQfBW3۪Huҫ$s̬9f{íd*WlUH]F 9N7*?ٵ(0xʷr߸ !i cкZTKE߾<ݿ6-'pa vRgCX4Iv%t:g|e+XmVI^G :O8+@)1ys "j d[ULF=7.(qb wShDY5Jw&u;h}f-|CYo,-DEZ[pq.F^%t;Qi&'>?VWno.D Z! p   7    M    c    y  !67LMb cz"{8Nf-|C[q./DEZ[pq.D    !Z!!!#"r""A#n###$$$%%%%8&&A'n''%(R(g( )6)K)))***+u+%,R,g,,----.../u/%0R0g0 161K1112223u3%4R4g4 565K5556667u7%8R8g8 969K99:/:::;V;;f<<<O=}==8>f>{>>???@@@@AAAQBBB:ChC}C#DQDfDDEEEEFFFGGGHqH%ISIhII JJJKKKKLLLMsM'NUNjNO>OSOO'P rڜBԝ)WQݟm?֢ >գ Ӥ;ѥgϦ7k#Q9gϸ:RWw5iiv9a|+*z9UjE+[g1GI[sRbPjI  $ j M   = oP !!M#2$$&&'))~*+,-./B001H2g223u3_455y7888'99<:;<w=>?@aBC3CCDD F`GVIIII JJYKKrLMMyN OOPZQ\]^@aaqtrrstQe$s¯"DĴʵKӿWr9   t5S!;t6QY&,S,,,738D?RhV]w_``aaaNbb|cdg(jklm\n5o=pEqrsvazz{G}}I~͊dד@f @X(pΟ3Ơ@uɩR^~ɲij/*Jb]}ȸù.)Ia\zuHw=LWYz (2*Jhqi 9LWYz (0(Hfph 8MXZ{ )3+Kium :J  U W  x  & /'Genf 7ITV  w!"%"#,$$%$&&D'b'(j))*b++,,.. /00/111@33K4M55n667}8#99:;;;<Y<=a>>?Y@@yAABCDEE(FFF:HHEIGJJhKKLzM NNOPP8QVQR^SSTVUUvVVWXYZZ%[[[5]]@^B__c``axbccdee6fTfg]hhiUjjukklmnoo#ppp3rr>s@ttauuvtwxxyzz2{P{|Y}}~Qq ΅3ه>@щat2PZRr"К2؜=?О`q|~/MXPp ί3ٱ>@ѳau3QYQq#5@Bcu3Q[SsW!?;[yu?y '#Ca]}'a +IEeI1-Mkg1k5SOoS      ; 7  Wuq;u#?]Yy#] ' E A!!a""{# $$$%E&&&'()-))**I+g+c,,--.-///0g1123314O4K55k6678889O:::<T==>(?]?@JAABDD8EUFFF HH.IKJ~K8LLMNOP0Q~QQRST%UsUUVWWYhYYZ[[]B^^e_``a8bb[cxdedffg8hmhiYjjk-lblmOnnoqq*rGssstuv B B C C C FD D D D +E F H I =N |N N O XO P P Q `Q Q Q Q (R S T V m m >n n n Eo o o -p }p p q _q q q 1r or r bs s t Zt t t ;u u u bv v 6w w x y z { 9| | | *} } } 3~ z~ ~ 1  \  L -  l ʃ # q J  چ / y Q C ֊  ً + r Œ  k č  3 e Ɏ - _ Ï ' Y ! S  M   G y ݓ  A s ה ; m R m  :  Ѡ z ܧ ~ % u = X Ⱥ  . q  m = X  f . I  o ; V w = X    ^ c  8 j   [     r u  H ]    _  m      E w  + > W p  O n 6! ! ! `" " " +# ]# # % <' ( + D+ + + , a, , , %- v- - [. . C/ / / 50 r0 0 0 1 :1 l1 1 1 E2 2 (3 3 4 )5 5 O6 k7 8 9 9 : b; ~< = /> > ? @ @ 5A A UB C ~E E E E E F $F aG GK K K AL L L SM M M M TO P RR S S :T T T U ^U U U 0V nV V V LW W W X jX X X 9Y Y Y Z YZ Z Z /[ o[ [ \ c\ \ ] R] ] ] #^ X^ ^ ^ _ B_ _ _ _ ,` l` ` ` a Va a a b Cb yb c "d hd d e Se e h h &i i i )j zj k k k Pl l l m Xm m n n Vo o o Wp p p Cq q Vr r r Ks s t [t t t t .u `u u u u (v Zv v v v "w Tw x Iz | } c À   W ֎ g  a C ֚ o 9 ֟ ] ǡ  : Ӣ a ģ   ݥ M ڪ ˲ Q G   Ż : t  | r h ^ T J @ 6 , "    ) b X N D : 0 &    w m c Y O E ; 1 '   x n d Z P =aa/bTcccddDedepfffgS͙=;ZЛ{ٜQcҞx7IgޡAYգ'BYkΤ3~qάа#D[ |ͷ:bߺV{}5HUo'9[m9Khi -?$(y!9Rn ?[!CXyas+=Z);]o+F\n]o$7 3Hc~ ;Vq.Id>Pr*L^t!Eas*Gf&C$FXz(EomYA3V =e~3Ru*\9R !&#j$%''*"+0,R,d,,,,,----- .-.?.a.s....../1/C/e/w/////0011<1e111112/2Q2c222222P3b3333333 424T4f4DEFFFFFG&GGGYGzGGGGGG H7IIJ%JJKK1O`OOOO PTXY+YYYYYZZ1ZOZmZZZZZZ[1[S[e[}[[[[[ \)\"___`0`R`d``````aVaaaab)bEbWbybbbbbacsccdddefkg}gghh/hQhchhhhhhh!i3iUigi5jGjij{jjjjjkk9kKkmkk l[lslllImmm*nEn]nnno)oEooooo^pupp9qqCx_xŇ݇ƉEs֎ۏ“ޓhQczК ASuݛ,>`rȜڜ0Bԝ)EWמ ?Qsݟ[mơ-?]Ģ֢ ,>\ãգ &Ӥ);XѥUgϦ%7Ykrڵ$?Qmշ 9Ugϸ(:\SWw(#5WiUiv9a|+*{:UjF,\h 2S*Ghz7I[sTdRl K  & C  l O   A@ er 8Ri2a y   !!"5#P#m##5$W$$$E%%&=&&'(( )()))***+g++,8----'.../#///D0f001102I2h2222373v3a4455{778788888)9J999$:?:\::%;;;<z<< =z==>?@@cBBBC5CWCCCD2DDDD8EEF+FFFcGGXIIIIJ4JJ[KKtLMMN{NNN O/OOVPPP\Q]]]] ^.a@abaaq:rurrratstÄ-?Qe:$;Pas¯ٯ"9N_pаh!2D²ӲctŴM˵Lӿ YZrC : \    v7XS!;bt6Qn[&,S,,,:38E?RjV]x_```a4aaaaa>>>A???G@Y@@@gAyAABBCCCDDDEEEF(FFFFMG:HHI3IEII5JGJJJVKhKKKLLzM!N^NsNNOuOOPPPP&Q8QVQQR_SSSS>TTTDUVUUUdVvVV WWXXXY}YYZZZ[%[[[[J\5]]^.^@^^0_B___Q`c```aaxbc\cqcccsddeeee$f6fTffg^hhhh=iiiCjUjjjckukk llmmmn{nnooop#ppppHq3rrs,s>ss.t@tttOuauuuvvtwxXxmxxxoyyzzzz {2{P{{|Z}}}}9~~~?Q_qւx~ ΅E3ڇ,>.@щOaߊtXmo 2Pǐ[:@RД`rؗz"КG2ٜ+=-?ОN`ޟqUj|l~/MĥY8>PΩ^p֬x~ ίE3ڱ,>.@ѳOaߴuYnp!3QȺZ9?QϾ_q{#H5.@0BQcuYnp!3Q\;ASas{ BEW|!?);I[ycu*-?dgy '#1CaK]k}'LOa +I3ESem47Inq1-;MkUgu1VYk#5S=O]ow>A S    x   {    ;  % 7   EWu_q&);`cu# -?]GYgy#HK]  ' E  /!A!!!O"a"""i#{## $$$$0%%%3&E&&&&j'''m((()-))*)***7+I+g++Q,c,,,q---.../-////R000U1g111222333414O4495K555Y6k667s7788888:999=:O::::t;<<U=====Q>>>>?(?J?]?@@KAAAAAZBBBD2DDE%E8EPEEBFUFwFFFFF H(HHII.IFII8JKJ~KK9LxLLLL5MMMN OOOPP+PPQ0QRQeQ~QQQRSSSST TTU%UGUZUsUUUVVWWWWXXYY B B C C C FD D D D D D E +E F H I =N |N N O XO P P Q `Q ~Q Q Q Q Q Q R (R S T V m m >n n n Eo o o -p }p p q _q q q 1r or r bs s t Zt t t ;u u u bv v 6w w x y z { 9| | | *} } } 3~ z~ ~ 1  \  L -  l ʃ # q J  چ / y Q C ֊  ً + r Œ  k č   3 Q e Ɏ  - K _ } Ï  ' E Y w ې ! ? S q Ց   9 M k  ϒ   3 G e y ɓ ݓ  - A _ s Ô ה ' ; Y m R Y m  & :  Ѡ z ȧ ܧ ~ % u | = D X Ⱥ   . q x  m t = D X  f m . 5 I  o v ; B V w ~ = D X     ^ c   % 8 V j     G [       r u   4 H ]    y  3 `  m       1 E c w  + > W p  O n 6! ! ! `" " " " # +# I# ]# {# # % <' ( + D+ + + , a, , , %- v- - [. . C/ / / 50 ^0 r0 0 0 0 0 0 1 &1 :1 X1 l1 1 1 1 1 E2 2 (3 3 4 )5 5 ;6 O6 k7 7 8 9 9 9 : N; b; ~< < = /> > > ? @ @ 5A A UB C ~E E E E E F $F aG GK K K AL L L SM |M M M M M M TO P RR S S :T T T U ^U U U 0V nV V V LW W W X jX X X 9Y Y Y Z YZ Z Z /[ o[ [ \ c\ \ ] R] ] ] #^ X^ ^ ^ _ B_ _ _ _ ,` l` ` ` a Va a a b Cb yb c "d hd d e Se e h h &i i i )j zj k k k Pl l l m Xm m n n Vo o o Wp p p Cq q Vr r r Ks s t [t t t t t t t u .u Lu `u ~u u u u u u v (v Fv Zv xv v v v v v w "w @w Tw x Iz | } c À   W ֎ g  a C ֚ o 9 ֟ ] ǡ  : Ӣ a ģ   ݥ M ڪ ˲ = Q 3 G (   ݺ Ż & : ` t  | r h | ^ r T h J ^ @ T 6 J , @ " 6  ,  "      ) N b D X : N 0 D & :  0  &     m c w Y m O c E Y ; O 1 E ' ;  1  '   x n d x Z n P d F Z < P Naa@becc;dddPee|fff_g(YәI,JcɜWrd؞ ~ "ɠ=XpMȣ0N_ڤ&Nw¬׬ְ2Pt7!Iqb;m^x-Ha|&?Zo3N*7 *B[.Ka0Igg1L/Jc~4Lb}c~*U!9Ql)D_z7Rm +D_x9Rmb-Qg9r53Lg7du |hP#F_Pn#Be~3o$Ba !9#s$% ''*5+?,X,m,,,,,-----.3.N.g......//7/R/k//////0"01)1O1t1111 2#2>2W2r22222=3V3q333333 4&4A4Z4u4DEFFFFGG5GMGhGGGGGGG'H=IIJyJJKK7OfOOOOP UX YYYYYYZ"Z@Z^Z|ZZZZZ["[@[Y[n[[[[[[\8\@__`!`?`X`m``````!aaaabb2bKbfbbbbbbgcccdddefqggg h#h>hWhrhhhhhhi'iBi[ivi;jVjojjjjjj k&k?kZkskkldlllldmmm6nQninnoo5o`ooooOpjpp+qqqOxex.<ч1Չ7yɎ͏/ΓwWrߚ.Gb{ʛ2MfΜ6Qȝ5KfĞݞ,E`y˟Ha|3Nʢ2MɣzǤ/JťB[væަ+F_zǵ-EZs ۷*E[vø޸.Ibqf.)D]xB[x|'Bj43C[sO5eqAf38Vn&=Ody6- csa{]Z  5   { ^ #eX+=)A[c& j    !2"">#_###$D$$$7%%%*&n&&'(()|)))C***T+++,\---.{.../w//0S0001292X2w2222$3L334556677$8Y8888889l999-:N::;V;;<g<<<<===>?;@ABBC$CDCyCCCDcDDD*EEEFFF%GrGG|IIIIJXJKjKKL MM3NNNNOSOOzPPQkQ]]]]/^4aOaaaqRrrrrgttۄυ,3EWnR-AVg|˯߯+?TevŰְ'8SȲٲizڴ+bԵ[߿w-cx["$ I o    &Fx_*Dh}(B]%<y&$,_,,-g38T?RV]_```!aIaaaa)bBb]bbbbWcpcccd"ddef"g2jklmJnhnn&o@oHpVq+r svjzzz|q}}~Z~+ӊ3} "Oo1OלLgϞ7Odyן$Bhڠ1PiߩhðRmҲFӳy#89Vk߶QlѸEҹx"78Uj޼Pki)NiVk"#+1LhR6K`Mhn1Hv9>YqW]x}$  '-HdR6K`Mhn1Ft7<WoV\w|#  &,GcS 7LaNio2Iw:?Zr[a| (   (.IeP  4 I ^  K f   l    /  Es6;VnTZuz! %+FbO3H]J e   k!!!".""#B$p$$$%%%&3&&&8'S'k''())))P***V+q++,v,,,-...///0000#1>1111Z2F33*4?4T44A5\555b6}66 7%77899g9|99 :~::;*;;;/<J<b<<=w>>>>G???M@h@@@mAAABCCCCDDDEEEF7FFFFSG@HH$I9INII;JVJJJ\KwKKLLLM6NdNyNNO{OO P'PPP,QGQ_QQRtSSSSDTTTJUeUUUjVVVWWXXX YYYZZZ[4[[[[P\;]]^4^I^^6_Q___W`r``aaa~b4cbcwccdydd e%eee*fEf]ffgshhhhCiiiIjdjjjikkkllmmm nnnooop2ppppNq9rrs2sGss4tOtttUupuuvvvzw0x^xsxxyuyyz!zzz&{A{Y{{|o}}}}?~~~E`e ܂~/ׅK92G4OʼnUpz0^su!&AY͐pȒ@ГFa֔f ޗ1ٚM81F3NĞߞTow-[pr#>VʥnƧ>ΨD_ԩd ܬ~/ׯK92G4OųUp{1_tv"'BZκoǼ?ϽE`վe  2N;4I6QWr{1_tv"'BZqAGbg,HKf0H/JOji03Njm027RjQlq6RUp:R9TYts:=Xtw":!<A\t[v{"%@\_z " $)D\C^c~ } (DG b    ~      , D  + F   Kf~e,/Jfi,.3NfMhm2NQl 6 N  5!P!!!U"p"""o###$$$$6%%%9&T&&&&p'''s(())6))*8***=+X+p++W,r,,-w---...!/>>??7?P?l?@@`AAAAA`BBBD8DDE+EAEYEEHFdF}FFFFFH.HH I!I7IOII>JZJKKNL~LLLL;MMMNOOOPP4PP#Q?QXQnQQQQRSSSST)TTU4UMUcUUUUVVWWWXXX Y)YBYXYwYYYZZ[[[[\\]]H^e^_B_X_n___u``````a>b[bc8cNcdc|cckddeezfffffggggh(hGh`h|hiiojjjjj\kkkll?]k̗f4UoĚϛ4kCv>۠/3JbcӤ B`Md{ ":;YgȮb0Qkݱʲ/I`ȶ)A÷B`oкj=[H_vǿ޿7nFyA3 7Nfg  +E\} %=>\lg;YF]t45Sa\*Ke  )CZ{ #;<Zhc1Rl~2te[mLBa@6~$>T&' S, i, , , , (3 >3 W3 3 .4 4 5 +5 B5 ]5 t5 5 5 5 5 \7 8 y: ; ; < k< < < < < < = ^> %B B C C C OD D D D D E E ;E F H I CN N N O aO P P Q iQ Q Q Q Q Q Q R 8R S T V m m Gn n n No o o 6p p p q hq q q :r xr r ks s t ct t t Du u u kv v ?w w x y z { B| | | 3} } } <~ ~ ~ :  e U 6 u Ӄ , z S 8  Z L ߊ % 4 { ˌ  t ͍ % < W n Ҏ   6 Q h ̏  0 K b } Ɛ  * E \ w ۑ $ ? V q Ւ   9 P k ϓ   3 J e | ɔ  - D _ v X _ } % , J  à  Ǧ Χ ŭ + { C J h غ  > w ~ s z C J h  l s 4 ; Y  u | A H f } C J h   , ' g i   + A \ z    2 M k   /  " { ) ~   : X c      F p  s       7 N i   1 G ` y  U t ?! ! " i" " " # # 4# O# f# # # % B' ( + M+ + + $, j, , , .- - - d. . L/ / / >0 d0 {0 0 0 0 0 0 1 ,1 C1 ^1 u1 1 1 1 1 K2 2 .3 3 4 /5 5 A6 _6 q7 7 8 "9 9 9 : T; r; < = #= 5> > > ? @ @ >A A ^B C E E E E E F -F gG MK K K JL L M \M M M M M M M ZO P XR S T CT T T "U gU U U 9V wV V W UW W W &X sX X Y BY Y Y Z bZ Z Z 8[ x[ [ \ l\ \ ] [] ] ] ,^ a^ ^ ^ _ K_ _ _ ` 5` u` ` ` a _a a a b Lb b c +d qd d e \e e h h /i i i 2j j k k k Yl l l )m am m n n _o o p `p p q Lq q _r r r Ts s t dt t t t t t u u 7u Ru iu u u u u u u v 1v Lv cv ~v v v v v v w +w Fw dw x Oz | } i ɀ  ] ܎ m ( j I ܚ u B ߟ c С  C ܢ j ͣ % S Ѳ C a 9 W .   ջ ˼ , J f  ! x n d Z x P n F d < Z 2 P ( F  <  2 (    9 T r J h @ ^ 6 T , J " @  6  ,  "    s i _ } U s K i A _ 7 U - K # A  7  -  #    ~ t j ` ~ V t L j B ` ]]][_c_k___```````9aWa`ajaaaaa+bIbRb\bPcncwcccccdddAeYebekffffgg)mty0: rڈBzJR"Z*bn,8 qٓA{  ~Pbș8R^j7V˛v՜L`۝͞s2Fd١ ɢ֢ $1>Wѣ%<Wiˤ˥إ/}O!xkˬíЭݭFSʰ >Y^x˷7_ٺPkuz2Ex@IRj1;HUbo|!6Ujhu3Hf@5*3?LYfx'<%v6Nh9CP]jw:U =Rs &3@M[p%:X#8Wl2'uj*7DQ% -(@VkWl3u-B]x5Pk (C^y8Ml'F[ n?[p'Ea#A !@Ut%C\QF;0~%sh]RG   <   1  &t'4AN[i~jV>/Okt )7Ybz/Nn#?HVx -6N !!!"#c$$$%&' ''*+>+,,L,a,z,,,,2-<-I-V-c-p-}------.'.<.[.p...... /+/@/_/t//////00000000001161X1a11111112,2K2`222222J3_3~3333334/4N4c455m677b8 99W::;L<<=A>7?-@#AB"B.B;BHBUBbBoB|BBBBBCDDD EFFFFFG#GAGVGtGGGGGGHGH4IIIIIIIIJ#JJEKRK_KlKyKKKKKKKKKKgLL9MMMMM3NNNNNNNNNOOO+O@OMOZOoO|OOOOOOOOPT)UXXYY)YYYYYYZ.ZLZjZZZZZZ[.[M[b[z[[[[[\&\____`-`L`a`z``````KaTaaaab&b?bTbsbbbbb[cpccdddeff gg#g0g=gJgWgegzgggh,hKh`hhhhhhhi0iOidiiiijj!j/jDjcjxjjjjjjk3kHkgk|kkkkkkkkklXlplllEmmmm$n?nZnnno&o>oooooo[pspp7qqqr rrr'r0r9rBrKrTr]rfrorxrrrr;sGsTsasns{ssssstttWuu+vvviww=xYx N\‡ۇ̈وyÉCM!+8ER_mӎJWdq~ُH_q{ؓe#0=K`PHTanژ %2?LYft͚;Poכ &;Zoœל *?ѝ#?Tў9NmןUj(5BO\ivġ'<[Ӣ&;Zң$Ф#8VΥOd̦4Sh%ͨuŪme ]UMEQ^lԵ 9Ng|vϷ6Od̸"7VOTr*7DQ^kx"2QfOd+;K[&3@MZgtp 3N[v%'w6OdB(Xd%.Moy"/<IVcp}'Dbw 1FXpV* Zcly|O_MgF  ! A  g J ;(1:U_ Zcl 5Mg,C L U ^ v     !!""""""# #)#2#J#k##/$Q$$$$$$C%%%& &&7&&&&&'H(Q(Z(c(p(~((((()&))) *`*i*r*{***a+++++,---$-2-y-----%...../!///-060?0`00001111$2-2E2d222223313i3r3\44444555566666t777778818l8u8~888899$9D99999:::!:9:Z::;s;|;;;;<t<<<<<=Y=b=k=t==j>s>|>>?????@@@yAAAAA\BBBBBBBC0CQCCCCCCD D,DDDDDDD6EEEEEF)FFFBGKGTG]GG4H=HFHSIIIIIIII J#J.JuJ~JJVKKoLLM NdNmNvNNNNNO)OpOyOOPPP(P5PBPPPPPPPEQNQWQRd\n\{\\\\\\9]]]]^^;^^_l`(a=a\aaaacq#q0q=qJqWqdqqq7rqrrrrs[tpteo|ۅ95BLJчۇ !+5?IS]gq{ˈՈ߈enxO *<N`z_3  eZЬEĭ-7xخ!9J_pׯ7H]nΰ߰e0AѲ]rdzԳ>Gǵ?HĶжݶ+8ERÿп&TENWoXaN@.;HUb $1>KXer(2<FPZ  - 6 V x     q2R$-ENhqz6P\q 1KhLRV&&,D,M,,,,43338A?ReVV]^^^t_```aa.awaaaaa6bKbjbbbcdcycccd/defg%jklmmVnrnooo2o:pBqrHrr=sv^zvzz{{{{{{{|}*}7}D}}}}}}4~=~F~f~r~~~~~dq~kxƀӀ>ʊ܊ 'aԓCLU=c%:6@Utܞ%CXm˟0Oqzà%=]rΡסƩOG[yzƲ;߳n,'E_ԶFZxyŸ:޹mߺ+&D^ӼEYw^rwEWaEN`ty &:]I[%.@TBVcw%/en '3GenLRfr"6YI[%.@TBVcw%-cl~ %1EcmKQeq!5XJ\&/AUCWdx&0fo(4HfrPVjv #7ZG Y  # , > R  @ T   a u   #  ,bk} $0DbkIOco 4WFX"+=Q? S   `!t!!""""##)$_$h$z$$%|%% &!&&&-'A'_''((g)))))E***K+_+++k,,,--..... /// 0001,1111O2=3O334"444H4465J555W6k66677z88 9V9_9q999s::;;;;$<8<V<<==^>>>>>jRjjj^krkkllmmmmmmvnnn|oo p ppppCq0rBrr ss's;ss)t=tttJu^uuu vvqwwxMxVxhx|xxjy~yyzzz{/{M{{||V}}}}}4~~~:NZn˂Ԃsy ˅@0Bև ';)=ΉJ^ڊ qMVh|j~/MÑW5;O˔ߔ[o͗֗u{ ͚B/A՜ &:(<͞I]ٟ nJSeyg{ ,JU39MɩݩYmˬԬsy ˯@0Bֱ ';)=γJ^ڴ rNWi}k0Nú»V4:Nʾ޾Znv|  C2D)=+?L`rNWi}k0NX6<P\pv=@Twz <$8DXv^r~%(<_bv$  ,@^FZfz $GJ^ (F.BNbh| /2Fil.*6JhPdp.QTh2P8LXlr9< P    s   v    8   4   @TrZnz!$8[^r (<ZBVbv |  CFZ} $ B  *!>!!!J"^"|""d#x##$$$$+%%%.&B&&&&e'''h(|(( )*))*&***2+F+d++L,`,,,l---.../*////M000P1d1112223334.4L4445H555T6h666n777888859998:L::::o;<<<P======K>>>> ?$?D?Y?@@@FAAAAAATBBBD$D/DDE EE4EMEE^Q^\^^/_9_L_a_z__i`~`````a4bGbRbb%c/cBcWcpcc_dtdeee`ffffff[ggghh4hThihiiiUjjjjjjPkkkkl)lIl^lmmmKnnnnnnFoooqq!qqqqr&r?rr.sCscsxsssst uuuuuvv4vv#w8wXwmwwwwxy yyyyyz*zz{.{b|u||}f}p}}}}*~~~ڀ %)[nyLVi~҅$ey-gq6ˉ  +ԋ,B[݌\rƎюzҏ:Pj23IQؗZ٘'AcyΚٚƛڛ   au)cm2Ǡ&Ϣ '=VأWm8LW:DXn ߩ./EMԮVկ #=_uɱԱ}ղ=Sm56LUúܺ^ݻ3GR5?Siѿ #dx,fp5 * +AZ[qy9Oi12HR[1EP3=Qg()?GP7Yow7Mg/0FNW$>`vs'imZPTAq7H5e+er2H' /' :' E' P' [' I, \, u, , , , 3 13 J3 c3 3 !4 :4 4 4 5 5 55 P5 g5 5 5 5 5 R7 e7 p7 {7 8 9 9 9 o: : ; ; ; ^< w< < < < < < < T> > > > +? B B C &C C C D BD D D D D D E 'E F G G H H H I .J \J J J J 9N xN N N O TO mO O P P Q \Q wQ Q Q Q Q Q R $R S S T U V V V W W m m :n Sn n n n Ao o o o )p Bp yp p p q [q tq q q q -r kr r r ^s ws s t t Vt t t t 7u Pu u u u ^v v v 2w |w w x y y z { { 5| | | | &} ?} } } } /~ v~ ~ ~ - F    X € H a )  h ƃ ߃  m ߄ F _  ֆ + D u ͈  M f ? Ҋ  1 | Ջ ' n   g ٍ  / J a | Ŏ  ) D [ v ڏ # > U p Ԑ   8 O j Α  2 I d { Ȓ ߒ  , C ^ u “ ٓ & = X o Ӕ  7 R i N b R i  /  6  Ɵ ͠ v z   $ / Ѧ ا z ~ ! 4 ? J U ð ΰ ٰ q u 9 M = T ܷ   ĺ ݽ  #  * m q   i } m 9 M = T ~   " - b v f } * > . E  k  o 7 K ; R s w 9 M = T     Z s  _ r }     5 O f     @ W x        {  . n  q  - D Y l w       " - 8 C    r   , P [      i |        * A \ s    = { ' : S l   K ^ i j 2! K! ! ! " \" " " " " # '# B# Y# t# # % S% % % % 8' K' V' a' ( ( ( ( + @+ + + + , 0, ], , , , !- :- r- - - W. . / ?/ / / / 10 J0 W0 n0 0 0 0 0 0 1 1 61 Q1 h1 1 1 1 1 A2 T2 2 2 $3 73 3 3 4 4 %5 85 5 5 5 46 K6 g7 7 7 9 9 9 : G; ^; z< < = +> > > ? @ @ 1A A QB jB C C C C C zE E E E E E E F F 9F ]G G G H TH H CK K K K =L L L L OM hM uM M M M M M PO cO nO yO P P P P NR aR lR S S 6T OT T T T U ZU sU U U U ,V jV V V V W HW W W W X 2X fX X X X 5Y NY Y Y Y Z UZ nZ Z Z Z +[ k[ [ [ \ )\ _\ \ \ \ N] g] ] ] ] ^ T^ m^ ^ ^ ^ _ >_ W_ ~_ _ _ _ (` A` h` ` ` ` a +a Ra a a a a b ?b ub b c d dd }d d e e Oe e e h h "i ;i {i i i %j vj j j {k k k Ll el l l l m Tm mm m n $n n Ro ko o o p Sp p p p ?q Xq q Rr kr r r s Gs s s s Wt pt }t t t t t t u *u Eu \u wu u u u u u v $v ?v Vv qv v v v v v w w 9w Pw x x x x x Ez Xz cz nz yz z z z z | | | } } } _ r Ҁ  ) |    )  *  S f q Ҏ c v  ] × ? R ] Қ k ~ 5 N ҟ Y á ܡ  6 O Ϣ ] v  1 ٥ ˧ ֧ I \ g r ֪ ݬ Dz ڲ  Z i 6 M , C !  ֺ  6 Y p  u k a x W n M d C Z 9 P / F % <  2  (     % G ^ = T 3 J ) @  6  , "     f } \ s R i H _ > U 4 K * A 7  - #     { q g ~ ] t S j I ` ? V 5 L  n")(4r6?ZA}?.o(5@]^r݄eϮ@]eM Yr[!Lt՚6؛K3מ8W ^]\[ZY"dc b a ` _ ^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)~(}'|&{%z$5ybE/ybI-oW:t_D.qV=&X@(mS7     p  X  C  ( }_@( }]=v\H0iP:  v  `!!L""<##b$$S%%8&&Z K sԚ5כJ2֞7V]\[ZYX!c b a ` _ ^]\[ZYXWVUTSRQPONMLKJIHGFEDCBA@?>=<;:9876543210/.-,+*)~(}'|&{%z$y#~4xaD.xaH,nV9s^C-pU<%W?'lR6     o  W  B  ' |^?' |\<u[G/hO9 u  _!!K"";##a$$R%%7&& '"B\w1X|$8L`t2Lh:Tk % 9 \ s ! C ^ |  " 6 J ^ r  & : N b v   * > R f z .BVj~ 2FZn"6J^r&:Nh4Nb(=\2Li4Hg{ 8Ui6]y !6K`u2G\y.Cc(=Rg|$9Ncx&;Pez "7Lav 9^s * D ` t !!3!H!]!r!!!!!!!""/"D"Y"n"""""""##+#K#t######$&$;$\$}$$$$$%1%R%j%%%%%%%&1&O&j&&&&&&&'#'8'M'b'w''''''(<(a(v(((((()!)L)|)))))*$*9*N*c*x****** +)+=+Q+e+y+++++++,,-,A,U,i,},,,,,,,-&-;-P-e-z------.<.Q.q......./(/B/`/y/////0000J0h000000 1(1=1R1g1|11111112$292N2c2x22222233?3T3u3333334;4P4e4z4444444 5"575L5a5v5555556'6<6[6p666666 7 747H7\7p777777778$888L8`8t888888899(9<9U9j99999999:':<:Q:f:{:::::::;#;8;M;b;w;;;;;;; <$<9<S<h<<<<<<< ==8=R=g======= >>7>Q>n>>>>>>>??+?@?U?j??????? @ @@@Y@n@@@@@@@A*AGA\AwAAAAAA BB>BSBmBBBBBBBC#C8CMChC}CCCCCCD0DEDjDDDDDEE?EiE~EEEEEEF/FDFbFwFFFFFFF GG4GIG^GsGGGGGH'HMRMfMzMMMMMMMNN.NBNVNjN~NNNNNNN OO2OFOZOnOOOOOOOOP"P6PKP`PuPPPPPPPQQ2QGQ\QqQQQQQQQRR.RCRXRmRRRRRRRSS*S?STSiS~SSSSSSST&T;TPTeTzTTTTTTUU*U?UTUiU~UUUUUU V?VbVVVVVWW3WJW_WwWWWWWWX'X?XYXsXXXXXXYY7YYYnYYYYYYYZ4ZLZcZxZZZZZZ[,[A[Y[s[[[[[[\*\B\Y\x\\\\\\!]6]N]p]]]]]]]^1^F^[^p^^^^^^^__-_B_W_r______``2`G`b`w``````a"a7aRagaaaaaaab$b9bNbcbxbbbbbbb c c5cJcic~cccccdd.dMdbddddddde2eGefe{eeeeeff6fKfjffffffffg'go[opooooooopp-pBpWprpppppppq#q8qMqbqwqqqqqqq rr4rIrhr}rrrrrrrs(s=sRsgs|ssssssst$t9tNtctxttttttt u u5uJu_utuuuuuuuvv1vFv[vpvvvvvvw)wEwawwwwwwxx:xQxqxxxxxxy,yFydyyyyyyzz2zKzfzzzzzz{{;{W{l{{{{{{|,|J|_|y||||||}1}F}b}|}}}}}} ~%~@~Z~x~~~~~~.Kd)>Sh}р+Shȁ(CXsւ*?Ti~܃%DYx/DYn…ׅ+@Uj†ކ0Geه0\ň܈ EZzΉ "7Lavʊߊ 3H]rƋۋ2G\qŌڌ.CXm֍*?Ti~Ҏ&;Pezُ,Qfא+@Uj͑ !6K`Ӓ'<Qlݓ1F[pĔٔ4Trƕە/DYn̖ 5J_tȗݗ3PezΘ "7Xm֙*?Ti~њ%:Od{ϛ+@UjӜ'<Qf{ϝ#8Mbwɞ,G\wן*?ZoϠ!<Qláء*EZuբ,AVqԣ(=Rg|Ф$9Xm˥3Rg|Ϧ-Laɧާ'F[zè+J_tȩݩ1F[pĪ٪-BWlի)>Sh}Ѭ%:Odyͭ %:OdyԮ7Ljί "7Lavʰ߰*Nc~ñޱ*EZӲ0Ncx̳ 5J_tǴܴ/DYx)>^sǶܶ0EZo÷ط,AVkŸڸ.CXmֹ*?Ti~Һ&;Pezλ (CXoͼ1F]výݽ*D_{Ǿ+Pe|ο$=Xs %?Tl&Fn-BWl)>Sh}'<Wl/D`u=Rg|$9Ncx 5J_t<Sj2Ml6Kk3Oj1H_z6Ri~%AXm1I`w)Ca*A\v/Nc{6Mf{)@[u.Mbz5Le*D^s 3H_v "=Ri3Lax.Ed+CZo1Pe}%=Tk $CXm%<Wl8Zr(Wo2Ja !8Rl%:Og~ #:Qq%<\w-H]t$BWl)>Ul .CXm*?Ti~2G\q4I`w 3H]r/Ja'<Ws(=Tn)>Sh}%:Ody !6K`u2G\q 4I^s0EZo.K`w([V+Pk4Ti~'<\q$DYn !6Vk/DYn+Lc~ !:Sh 4I^s0EZo7Oj & = X r       ! 8 X z       . N c {        . C X m         * ? T i ~       &;Pez "7Lav 3H]r/DYn+@Uj?Wx.H]u $?[w 8Me}8Ph #>Sj)M.E`w3Qq7Sy7La|0K`|6Kw : \ s      !+!@!U!j!!!!!!!!"'"<"Y"q""""""" #.#C#[#r######$$+$R$g$|$$$$$$$%)%>%S%h%}%%%%%%%&%&:&O&d&y&&&&&&& '!'6'K'`'u'''''''((2(G(\(q((((((()).)C)X)m))))))*%*E*c*******+)+>+X+~+++++,1,K,b,w,,,,,,--1-L-a-v------.8.M.g......//7/U/j///////0(0=0R0g0|0000001)1=1W1q11111122/2I2c2222222 3!3;3U3r33333334-4G4d4x4444445595V5j5~5555556.6B6V6p66666677:7O7n77777778#878S8n888888 9!959R9f9z999999 :%:B:V:m:::::::;#;>;R;q;;;;;;;<3<M<d<y<<<<<<= =4=O=c=}======>&>:>W>k>>>>>>>?*?G?[?u??????@@.@I@]@|@@@@@@ A%A?AZAqAAAAAAAB-BAB\BpBBBBBBCC1CECbCvCCCCCCDD5DRDfDDDDDDDE%E9ETEhEEEEEEFF/FIFcFzFFFFFFGG6GJGeGyGGGGGGH/HDHXHuHHHHHHHI.IHIeIyIIIIIIJ$J8JLJgJ{JJJJJJK(KDK^KzKKKKKKKL.LMLaL|LLLLLL M#M:MOMcMMMMMMM N(N=NWNtNNNNNNNO1OFO[OvOOOOOO P&P;PTPnPPPPPPPQ*Q?Q^QsQQQQQQR"R;RRRgR|RRRRRRS'SBSWSqSSSSSS TT4TQTfT{TTTTTTU)UFU[UuUUUUUUVV1VLVaVVVVVVVW(WBWYWpWWWWWWWX0XEX`XuXXXXXX Y"Y7YLYiY~YYYYYYZ'ZAZ^ZsZZZZZZZ[.[C[^[s[[[[[[\#\<\V\o\\\\\\\]']F][]v]]]]]]^^6^K^`^}^^^^^^ _&_;_U_r_______`/`D`Y`t``````a$a9aRalaaaaaaa b(b=b\bqbbbbbbc!c;cRcgc|ccccccd'dBdWdqddddddee2eOedeyeeeeee f'fDfYfqffffffgg+gFg[gzgggggg h$h>hWhnhhhhhhhi.iCi^isiiiiii j j5jJjgj|jjjjjjk%k?k\kqkkkkkkl#l8lMlhl}llllllm-mFm`mymmmmmmnn1nPnennnnnnno+oBoWoloooooopp2pGpap~pppppp qq;qPqeqqqqqqqr0rEr`rzrrrrrrss8sMslssssssst4tQtht}tttttt u(u=uXumuuuuuuv&v;vPvmvvvvvvvw+wEwbwwwwwwwwx%x:xOxjxxxxxxxy/yJydyyyyyyyz"z7zVzkzzzzzz{{5{L{a{v{{{{{{ |!|<|Q|k||||||}},}I}^}s}}}}}}~!~>~S~k~~~~~~~%@Ut8Qh}Āـ (=Xmԁ  5Jg|%?\qփ2GbwƄۄ'B\wՅ/Nc~ʆ߆1H]rԇ8Mgˈ$AVkω6KgɊފ%@UtӋ9Sjƌی *?ZoՍ  5Jg|%?\q֏2GbwƐې'<[pב 5Peƒ*Davړ &;PoΔ4Idyŕڕ)>XuӖ:Odȗ)H]xĘ٘ "=Rlҙ1Ncxǚܚ(=\q؛!6Qfǜ+Ebw۝ '<QpϞ5JezƟ۟*?YvԠ;Peɡ*I^yŢڢ#>Smӣ2OdyȤݤ)>]r٥"7RgȦ,Fcxܧ (=RqШ6Kf{ǩܩ+@Zwժ<Qfʫ+J_zƬ۬$?Tnԭ3Pezɮޮ*?^sگ#8Shɰ-Gdy±ݱ )>SrѲ7Lg|ȳݳ,A[xմ.K`uֵ%?Zoʶ&AYtͷ)>Ynٸ$?Vkǹܹ,A[rκ*EZqϻ)>Zu¼ݼ "7Li~ýؽ$C]xӾ/D_t߿+G^s4Icz0Lg|-B_t4I^{!6Um(=Rm"7Qh} $?To '<Xs3Hez  ?Xs)>Yr.CXs ;Pez 4Qf{ +D_t*E\w+@[r,AVq#8Of{9Ne|2Ni~-B_t.CXu-DYn1Fe~%:Od "?Ti~)>[p5Rm'<Wl "=Ti~+@[r+F[s+@\w&;Pm1H]r2Kbw4Od$AVk+@]r.CXu3J_t4Mdy6Qf&CXm7Rg 9Sn%:Uj #:Od%A[w/Mdy%:Oj.CXu3Hbw=^y !<Qh-BYn8Rs#=Ri !@]x4Qf} >_2Kf"7Nn,A[p /No$9Pn(DYp,C]r6Kb} "9Qf} " 7 N h }       " B W n        + B a v        9 N e ~       $ ; U j       .CZu#:Oi~ %:Ti%?Tn*?Yn*DYs/D^s/I^x4Icx ,Nc;Po9Ql 5Ts=Wu#8Wy #B^+Jf3Nk 0 R g      !>9>V>k>>>>>>?*???X?m??????@8@S@h@@@@@@@A0AKAdAAAAAABB3BHB_BzBBBBBBCC3CSCuCCCCCD.DMDnDDDDDDEE/EHE]EtEEEEEEEF,FCF[FpFFFFFFGG2GGG^GwGGGGGGHH,HDHYHpHHHHHHHI%IJUJpJJJJJJKK-KKK`KwKKKKKKL"L7LNLhLLLLLLL M"M9MSMnMMMMMMMN)NHN]NtNNNNNNOO2OIOdOyOOOOOOPP:POPfPPPPPPPQ*QAQ_QtQQQQQQ R!R;RPRjRRRRRRR S&S;SUSjSSSSSSST&T@TUToTTTTTTU8UXUwUUUUU V'VCVbVVVVVVWAW`WyWWWWWX0XKXeXXXXXX Y?Y]Y}YYYYYZ7ZSZrZZZZZ["[=[W[o[[[[[[\.\C\Z\q\\\\\]']J]d]y]]]]]^^=^[^p^^^^^^^_6_K_b_}_____`7`U`r``````a;anaaaaabb6bTbrbbbbbbcc,cGc\cwccccccdd1dLdad|dddddd e!e R f z   . B V j ~ 2FZn"6J^r&:Nbv*>Xr$>Rp-Lu "<Y}$8Wk(EYs &Mi~&;Pez "7Li~ 3Sp-BWl)>Sh}+@Uj'<Qf{)Nc~  4 P d x !#!8!M!b!w!!!!!!! ""4"I"^"s"""""""##;#d#y######$+$L$m$$$$$$!%B%Z%s%%%%%%&!&?&Z&x&&&&&&&'('='R'g'|'''''(,(Q(f((((((()<)l))))))*)*>*S*h*******+-+A+U+i+}+++++++ ,,1,E,Y,m,,,,,,,--+-@-U-j------.,.A.a.v......//2/P/i//////0 0:0X0w0000001-1B1W1l111111112)2>2S2h2}222222 3/3D3e333333 4+4@4U4j444444445'5<5Q5f55555566,6K6`66666667$787L7`7t777777788(8<8P8d8x888888899,9E9Z9o9999999::,:A:V:k::::::::;(;=;R;g;|;;;;;;;<)<C<X<r<<<<<<<=(=B=W=q=======>'>A>^>s>>>>>>>??0?E?Z?o???????@0@I@^@z@@@@@@AA7ALAgA|AAAAAAB.BCB]BrBBBBBBBC(C=CXCmCCCCCCD D5DZD~DDDDDE/EYEnEEEEEEEF4FRFgF|FFFFFFFG$G9GNGcGxGGGGGH,HAH`HuHHHHHHI0IEIdIyIIIIIIJ*JIJ^JrJJJJJJJJK&K:KNKbKvKKKKKKKLL*L>LRLfLzLLLLLLLMM.MBMVMjM~MMMMMMM NN2NFNZNnNNNNNNNNO"O6OJO^OrOOOOOOOOP&P;PPPePzPPPPPPP Q"Q7QLQaQvQQQQQQQ RR3RHR]RrRRRRRRRSS/SDSYSnSSSSSSSTT+T@TUTjTTTTTTTUU/UDUYUnUUUUUUV/VRVtVVVVV W#W:WOWgWWWWWWXX/XIXcXXXXXXX Y'YIY^YvYYYYYYZ$Z]`]u]]]]]] ^!^6^K^`^u^^^^^^^__2_G_b_w______`"`7`R`g```````a'aBaWaraaaaaaab)b>bSbhb}bbbbbbbc%c:cYcnccccccdd=dRdqdddddd e"e7eVekeeeeeef&f;fZfofffffffgg,gAgVgkggggggggh(h=hRhgh|hhhhhhhi$i9iNicixiiiiiii j j5jJj_jtjjjjjjjk$k9kNkckxkkkkkkk l l5lJl_ltlllllllm%mEm`mummmmmm n$n9nQnfn{nnnnnno.oKo`ouooooooopp2pGpbpwpppppppq(q=qRqgq|qqqqqqqr$r9rXrmrrrrrrrss-sBsWslsssssssst)t>tStht}tttttttu%u:uOuduyuuuuuuu v!v6vKv`vuvvvvvvw5wQwswwwwwwx*xAxaxxxxxxxxy6yTypyyyyyy z"z;zVzpzzzzzz {+{G{\{u{{{{{||:|O|i|~||||| }!}6}R}l}}}}}}}~0~J~h~}~~~~~~;Tq.CXmրCXsӁ3HcxƂۂ/DYñ4Ih}Є4I^sDž܅0EZoΆ 7Uxɇ Lp̈5JjӉ'<Qf{ϊ#8Mbwˋ "7Lavʌߌ 3H]rƍۍ/DYnŽ׎+@UjɏAVsǐܐ0EZoґ&;PoÒؒ,A\q͓ !6K`uɔ$Dbw˕ 4I^sі%:Ody͗ #@UjӘ'H]xƙۙ/DYn֚*?Tkԛ0EZoÜ؜,AVkԝ(=Rgמ7Lg|ǟ/J_zڠ,A\qȡ5JezŢڢ1Favģ٣-BWlդ)H]rڥ#BWlԦ<QpΧ6KjҨ:Odyͩ !6K`uɪު2G\qūګ.CXm֬*?Ti~ҭ*?Ti~Įۮ '<Zwӯ'<Qf{ϰ>Snα5Joò >Sh}ѳ%:Od̴4Ih}е.Ncx̶ 5J_tȷݷ1F[pʸ߸ 3H]rƹ۹/DYnº׺+@Ujӻ3H_vؼ!6Mf{ͽ4OkӾ@Ulٿ-Hc~/D\q6^2G\q.CXm,G\w 4Pe-BWl)>Sh}%:Ody ,CZu "=\v&;[{ #?Z !8Oj&BYn1H]t !9Pg3Qp1Lf{ >Sk&=Vk0Kez =Rj%<Ut4Ncx#8Of-BYs #<Qh5Tu3J_w!@Um-D[u3H]r,G\t (JbyG_v ":Qp(B\q*?Wn*Aav,Lg8Md{2G\q.E\{3H]r/DYn"7Lav $9Pg#8Mbw :Qv,Gcx-D^v.CXm*?Ti~&;Pez "7Lav$9Ncx 5J_t;PgK F}@[z $DYn,Lav4I^s&F[p 4I^s<Sn*CXo$9Ncx  5J_t'?Zv - H b }       ( H j        > S k         3 H ] r         / D Y n       +@Uj'<Qf{#8Mbw 4I^s0EZo/Gh8Me~/Kg|(=Um(@X~.CZo=t5Pg #Aa{ 'Ci~ '<Ql  ;Pl&;g| * L c       !0!E!Z!o!!!!!!!"","I"a"{"""""""#3#K#b#y######$$B$W$l$$$$$$$%%.%C%X%m%%%%%%%&&*&?&T&i&~&&&&&&&'&';'P'e'z''''''' ("(7(L(a(v((((((( ))3)H)])r))))))*5*S*p******++.+H+n+++++ ,!,;,R,g,,,,,,, -!-<-Q-f------ .(.=.W.q....../'/E/Z/r//////00-0B0W0l00000011-1G1a1~111111 2292S2p22222223+3E3b3v3333334474T4h4|4444445)5F5Z5n5555556626F6`6}6666667*7?7^7u77777778'8C8^8r8888889%9B9V9j9999999:2:F:]:w:::::::;.;B;a;u;;;;;; <#<=<T<i<}<<<<<<=$=?=S=m======>>*>G>[>o>>>>>>??7?K?e??????? @@9@M@l@@@@@@@A/AJAaAvAAAAAAAB1BLB`BzBBBBBB C!C5CRCfCzCCCCCC D%DBDVDpDDDDDDEE)EDEXEwEEEEEEFF9FSFjFFFFFFFG&G:GUGiGGGGGGHH4HHHeHyHHHHHH II8IUIiIIIIIIIJ(JSnφ!8Mbćه (=Wtӈ1F[vډ &;WqΊ0EdyË)CZoˌ/J_yōߍ%:WlЎ/La{Əۏ "7Rgː,K`{Ǒܑ%@UoՒ4Qf{ʓߓ+@_t۔$9Tiʕ.HezÖޖ *?Tsҗ8Mh}ɘޘ-B\y™י!>Sh̚-La|țݛ&AVp֜5Rg|˝,A`uܞ%:Uj˟/If{Ġߠ+@Utӡ9Ni~ʢߢ.C]zãأ"?Tiͤ.Mb}ɥޥ'BWqצ6Sh}̧-Bavݨ&;Vk̩0Jg|Ū,AVuԫ:Ojˬ/D^{ĭ٭ #@Ujή/Nc~ʯ߯(CXrذ7Ti~ͱ.Cbw޲'<Wlͳ1Kh}Ŵݴ ;PezƵ/J_y׶1Idyҷ.I^zɸ/F[p̹1KbwӺ5JaxԻ.Jezͼ'<YnȽ3Mh}þؾ 4OdϿ7Ncx $9Sj  <Wl2Ody $9Nk&E]x-B]r'AXm/D_v,Hcx#8Uj/Hcx.Ib} 3Hc+@Uj$AVk4Od}5Lg|0Kb}1Fav(?Vk)>Ul ">Yn2Ody3Hez4I^{!6Un*?To/DYn.K`u%B]r,G\x-DYn0Kbw6Kcz0Lg|+@]r!8Mb ";Rg|$?Ts1F[p0Mbw3Hez #:Od$=Ti~ &AVu3H]r 'BWq)C^s*EZv*?Tq1Kg~ =Ti*?Zo3Hez #8Rg-Ni,AXr2I^x (Bc-BYr0Mh $AVm.Op";Vw'>^s1K`>_})@^s4I`{3Mby&;Rm)AVm ' > X m        2 G ^ y        2 Q f }       ) > U n        + E Z q      3Jez*?Yn*DYs/D^s/I^x4Icx4Nc} 9Nh} $9Sh>Sr +@_~)A\{%Dc -Ge(Gi2No:Vx#>[}  B W v      !,!A!`!!!!!!"5"O"m""""""#2#U#w#####$!$A$c$x$$$$$ %*%L%a%%%%%%&9&N&m&&&&&''3'M'm'''''((8(W(y(((((()-)B)Y)t))))))*#*8*U*j*******+/+D+_+}+++++,3,H,_,},,,,,,--4-N-c-}-----.'.C.a.~...../5/P/q/////00-0H0]0u000000191X1v1111112+2@2Z2o2222223;3U3}333333454U4y444444 5!565M5b5|555555616P6p666667/7P7l7777778!868M8g8|8888889999N9e9999999 :$:9:S:h:::::::;$;>;S;r;;;;;;<6<P<l<<<<<<=%=@=\=q======>)>F>[>v>>>>>>?/?H?]?t?????@(@C@X@o@@@@@@@ A;ATAoAAAAAA B#B8BOBjBBBBBBB C#CCCeCCCCCDD=D^DzDDDDDDEE8EMEdE}EEEEEEFF3FKF`FwFFFFFFG"G7GNGgG|GGGGGGHH4HIH`HxHHHHHHII,IDIYIpIIIIIIIJ.JEJ`JuJJJJJJKK;KPKgKKKKKKKL'L>LXLsLLLLLLLM)MCM^MsMMMMMMNN8NMNdNNNNNNN O"O9OTOiOOOOOOO P*P?PVPqPPPPPPQQ1QOQdQ{QQQQQQR+R@RZRoRRRRRRRS+SESZStSSSSSSTT0TET_TtTTTTTU(UHUgUUUUUUV3VRVsVVVVV W1WPWiWWWWWX X;XUXrXXXXXY/YMYmYYYYYZ'ZCZbZZZZZZ[-[G[_[}[[[[[\\3\J\a\{\\\\\]:]T]i]]]]]]^-^K^`^w^^^^^^_&_;_R_m_____ `'`E`b`}`````a+a^aaaaaab&bDbbb}bbbbbbcc7cLcgc|cccccc d!dAǘ ast_enum_from_structƛ6՝  impl_token! ast_struct ƫ ast_enum ƫ  strip_attrs_pub& lit_extra_traits strip_attrs_pubj&define_punctuation_structsN`&ast_enumƫ strip_attrs_pubǓ$ ast_structƫ ast_structƫdefine_punctuation_structsN`ast_enum_from_structƛ6՝ ast_enum_from_struct ƛ6՝  impl_deref_if_len_is_1v$¸ast_enum_from_structƛ6՝  impl_token/  ast_struct ƫ ast_enum_from_struct ƛ6՝  define_punctuation_structsN` ast_structƫ ast_struct ƫ ast_enum_from_structƛ6՝ ast_enum_from_structƛ6՝  ast_struct ƫ export_token_macro.strip_attrs_pubǓ$ define_punctuation_structsN` ast_structƫstrip_attrs_pub\&%$crate::impl_parse_for_custom_keyword}/ strip_attrs_pub?&strip_attrs_pub & impl_deref_if_len_is_1$¸ast_enum_from_structƛ6՝ #define_keywords ast_structƫast_enum_from_struct ƛ6՝  strip_attrs_pubǓ$ strip_attrs_pubw&strip_attrs_puba&define_punctuation_structsN`-ast_enum_from_structƛ6՝   ast_structƫast_enum ƫ  strip_attrs_pubǓ$ strip_attrs_pub&ast_enum_from_structƛ6՝  ast_struct ƫ define_punctuation_structsN`!strip_attrs_pub&  ast_structƫast_enum_of_structs_impl/Aǘ strip_attrs_pub & define_punctuation_structsN` ast_structƫ ast_struct ƫ impl_deref_if_len_is_1[$¸ast_enum_from_structƛ6՝ ast_enum_from_struct ƛ6՝  generate_to_tokens Ϥ   strip_attrs_pub_&define_punctuation_structsN` ast_enum_of_structs_impl Aǘ   ast_structƫstrip_attrs_pub & ast_enum_of_structs_implRAǘ  ast_struct ƫ strip_attrs_pube&strip_attrs_pub& generate_to_tokensϤ  ast_enum_from_struct ƛ6՝   ast_structƫimpl_deref_if_len_is_1n$¸ast_enum_from_structƛ6՝  impl_tokenȔ$strip_attrs_pub &ast_enum_from_struct ƛ6՝   ast_struct ƫ  ast_struct ƫ define_punctuation_structsN`(ast_enum_from_structƛ6՝ ast_enumƫ impl_deref_if_len_is_1$¸strip_attrs_pub &  ast_structƫgenerate_to_tokens Ц   define_punctuation_structsN`strip_attrs_pubW& ast_struct ƫ impl_deref_if_len_is_1$¸ast_enum_from_structƛ6՝  impl_low_level_token1Ɩ  ast_structƫast_enum_from_struct ƛ6՝  define_punctuation_structsN`strip_attrs_pub{& ast_struct ƫ strip_attrs_pub]&ast_enum_from_structƛ6՝  ast_struct ƫ strip_attrs_pub;&strip_attrs_pubv&define_punctuation_structsN`strip_attrs_pubr&strip_attrs_pub+Ǔ$strip_attrs_pubS&strip_attrs_pub@&strip_attrs_pub & ast_enum_from_structƛ6՝ 'strip_attrs_pubn& ast_struct ƫ impl_deref_if_len_is_1T$¸ast_enum_from_structƛ6՝ strip_attrs_pub & strip_attrs_pubi&strip_attrs_pub9&strip_attrs_pub & define_punctuation_structsN`#strip_attrs_pub&strip_attrs_pubd&generics_wrapper_impls&״ ident_from_tokenast_enum ƫ   ast_structƫdefine_punctuation_structsN`strip_attrs_pubǓ$strip_attrs_pub & impl_deref_if_len_is_1f$¸ast_enum_from_structƛ6՝  impl_tokenדstrip_attrs_pub & strip_attrs_pub& define_punctuation_structsN`  ast_structƫ ast_struct ƫ lit_extra_traits strip_attrs_pub[&ast_enum ƫ  ast_enum ƫ  ast_enum_of_structs_implAǘ  ast_structƫast_enum_from_struct ƛ6՝  strip_attrs_pubzǓ$ast_enum_from_structƛ6՝  ast_struct ƫ ast_enum_from_structƛ6՝  impl_token'  ast_structƫast_enum_from_struct ƛ6՝  strip_attrs_pub& strip_attrs_pub&  ast_struct ƫ define_punctuation_structsN`*ast_enum_from_structƛ6՝  ast_structƫast_enum_from_structƛ6՝ strip_attrs_pubǓ$strip_attrs_pub & define_punctuation_structsN`)$crate::impl_to_tokens_for_custom_keyword}3 ast_structƫast_enum_from_structƛ6՝ $define_punctuation ast_enum_from_struct ƛ6՝  define_punctuation_structsN`strip_attrs_pub<& ast_struct ƫ strip_attrs_pub^&ast_enum_from_structƛ6՝  strip_attrs_pub Ǔ$ ast_enum_from_struct ƛ6՝  strip_attrs_pub Ǔ$ define_punctuation_structsN` ast_structƫstrip_attrs_pubA&strip_attrs_pub & impl_deref_if_len_is_1$¸ast_enum_from_struct ƛ6՝  ast_enum_from_structƛ6՝ ast_enum_of_structs_implAǘ   ast_structƫ ast_struct ƫ impl_deref_if_len_is_1^$¸]cratecrate  crate cratedcrate cratecratezcratevcrate cratecrate cratecratecrate cratecratecratecrate crateAcrate/crate crate+cratecrate9crate crate crate cratecratecrate<crate cratecratecrate cratecrate cratecrate cratecratecrateScrate crate^cratecrate cratecrateRcratecrate cratemcrate crate_crateTcrate cratecrateYcratencratecrate crateUcratecrate?crate-crate`cratecrate,crate cratecrateZcratecrateocrate:cratecrateVcrate cratecratecrate=crategcrate[cratepcratecrate crateWcrate cratelcrate cratehcratecrate\crateqcrate cratecrate crateXcrate cratecrateicratercratecrate{cratecrateecratecrate cratewcratecratecrateacrate  cratejcrate.crate@cratescrate cratefcratecratecratexcratecrate cratebcratekcrate cratetcrate>crate cratecrate crate crateycratecrateccrate;crate crate crateucrate crateast_enum:4  ast_struct ast_structnast_enum_of_structs  ast_structV ast_structͨgenerate_to_tokensϤ  ast_enum_of_structs > ast_structuast_enum  ast_struct ast_struct]generate_to_tokensϤ   ast_structgenerate_to_tokensϤ   ast_struct- ast_structngenerate_to_tokens Ϥ    ast_structdast_enum_of_structs  ast_struct ast_struct ast_structk ast_structφS ast_struct; ast_structrast_enum_of_structs  ast_structZ ast_structgenerate_to_tokensϤ   ast_structȁ y ast_structr ast_structβa ast_struct ast_structgenerate_to_tokensϤ   ast_struct ast_structhast_enum>4  ast_struct ast_structo ast_struct ast_struct*  ast_structW ast_struct ast_struct? ast_structvast_enum ast_enum/4  ast_structէ^ ast_structast_enum4   ast_struct. ast_structw ast_structe ast_struct ast_struct ast_structgenerate_to_tokens Ϥ   ast_enum 4   ast_struct ast_structlast_enumR4  ast_structgenerate_to_tokensϤ   ast_structljT ast_struct< ast_structs ast_structgenerate_to_tokens Ϥ    ast_structם[ ast_struct˹ast_enum  zast_enum + ast_structv ast_structbast_enum  ast_structincludeY#ast_enum  ast_structi ast_struct9ast_enum4  ast_structpast_enum  ast_structX ast_structΰ ast_struct@ ast_structw ast_struct_ ast_structast_enum_of_structs_implAǘ  ast_enum_of_structs / ast_struct ast_structf ast_struct ast_struct ast_structast_enum4   ast_struct ast_structm ast_structUast_enum_of_structs  ast_struct=ast_enum  ast_structt ast_struct ast_struct\ ast_struct ast_struct {ast_enum_of_structs , ast_structj ast_structc ast_struct ast_struct ast_struct ast_structjgenerate_to_tokens Ϥ   ast_enum ast_enum_of_structs= Rast_enum ƫ  ast_enum_of_structs : ast_structq ast_struct ast_structØY ast_struct ast_structA ast_structxast_enum4   ast_struct`ast_enum_of_structs ast_enum4   ast_structast_enum,4  ast_struct ast_struct ast_structg ast_struct ast_structast_enum cratecrate  crate cratecratecratecrate cratecratecrate crategenerate_to_tokensϤ  generate_to_tokens Ϥ   generate_to_tokens Ϥ   generate_to_tokens    generate_to_tokensϤ  generate_to_tokensϤ  generate_to_tokens  ast_enum_of_structs generate_to_tokensϤ  generate_to_tokensϤ  generate_to_tokens Ϥ   cratecratecratecratecrate  cratecrate crategenerate_to_tokens  generate_to_tokens  generate_to_tokens  generate_to_tokensϤ  generate_to_tokens Ϥ   generate_to_tokensϤ  generate_to_tokens Ϥ   generate_to_tokens    cratecrate crate  crategenerate_to_tokens Ϥ   generate_to_tokens  generate_to_tokensϤ  generate_to_tokens Ϥ    crate cratecrategenerate_to_tokensϤ  generate_to_tokens Ϥ   generate_to_tokens Ϥ    cratecrate crategenerate_to_tokensϤ  generate_to_tokens Ϥ   generate_to_tokens Ϥ   crate crate  crategenerate_to_tokens Ϥ   generate_to_tokens Ϥ   generate_to_tokensϤ  crate  crate crategenerate_to_tokens Ϥ   generate_to_tokensϤ  generate_to_tokens     cratecrategenerate_to_tokensϤ  generate_to_tokens Ϥ    cratecrategenerate_to_tokensϤ  generate_to_tokens Ϥ   crate  crategenerate_to_tokens Ϥ   generate_to_tokensϤ    cratecrategenerate_to_tokensϤ  generate_to_tokens Ϥ    cratecrategenerate_to_tokensϤ  generate_to_tokens Ϥ    cratecrategenerate_to_tokensϤ  generate_to_tokens Ϥ   crate  crategenerate_to_tokens Ϥ   generate_to_tokensϤ    cratecrategenerate_to_tokensϤ  generate_to_tokens    crategenerate_to_tokensϤ  crategenerate_to_tokensϤ  crategenerate_to_tokensϤ  crategenerate_to_tokensϤ  crategenerate_to_tokensϤ  crategenerate_to_tokensϤ  crategenerate_to_tokensϤ  crategenerate_to_tokensϤ  crategenerate_to_tokensϤ  crategenerate_to_tokensϤ  crategenerate_to_tokensϤ  crategenerate_to_tokensϤ  crategenerate_to_tokensϤ  crategenerate_to_tokensϤ  crategenerate_to_tokensϤ  crategenerate_to_tokensϤ  crategenerate_to_tokensϤ  crategenerate_to_tokensϤ  crategenerate_to_tokensϤ  crategenerate_to_tokensϤ  crategenerate_to_tokensϤ  crategenerate_to_tokensϤ  crategenerate_to_tokensϤ  crategenerate_to_tokensϤ  crategenerate_to_tokens  Q$f$=׿xC5zO{(=gASR$psL>j*CJ!\hmT MvO0~m'&)"&b>IG)(TI]0r>"W WOW WVVGVVUU?UTTyT7TSSqS/SRRiR'RQQaQPYPO_ONINMOM{LKJEJ!I-GD&'U(\(np))*n~( -)¾)hKH* ~%'H(X(J+P+p6,i޾%S*+)-*Wk*ee+l,*--(/(}H)L)U**+!,|,%!+j'+bs,wо%7*%#(+p(g3GDp*E+' 'y&z',8;5fD,h&+t&L&~*`F(GDW,?0&}%)I,)&0^LK K7J=IsGD*.+b)_'%o+N:)y5'Dսx(*C')'Db*7b(*:*e)L(R)&W+/ɿ5'vPgPOQONWNMAMLKJ)JKIWGXD%a)k+*'&F,'I%:(Dv&+(!Q'%e, ''6);,&})0(3&,A*|+>&%' *[ 7#^!A9 4'97?|/5<<h:A17>.4^;A@07=-44 ;A18>.)5;lBb2w9?05<C=3?:9@0%7=1-3:KA-1&8h>F.4;B29?Q@+0J6<CQv7Z-3:tAV1O8>.B92N9i?/5n<CC)@>29?BF 6<Co.4=-]44;A18>/R5;B29?^0t6=DmC3:@06h=-3xo?R#y okIXa!a_  0z ]b f|K [ G%YU$hRB CW$5GE7Sf5  ( F2Y,upGuF1^{! f3Dj5IHE.#zN7"Ls:YJ "D& N&f)!W]WWVVUVVUUMU UTTETTSS=SRRwR5RQQoQPPOmONNM]MLGLKSJIHD-q62I2# fYY"  1p  "v$kNN *0M`4qjV]K< $dsE DK:$GFH/ %iSS\B".N$UrEb@0CB["OH>E6 / ?=$?%j>y MKMKJYIQHF/ ]3 W@65H|5<"&[[ E`4.VQ  '6--Z~6_# !-QuP%POOeNNMLLKJIH Ey8J 7 c;} A."Pc t.%#8Z6qPy "#9H+/ rQ/home/fraco/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.76/src/lib.rs fSLwCO|6 |{ko OO:KIME6ALQ6QONM.RPLPPN&"  ONPOKK-  !//" 95><  7$OPOOB2I!/ ! OQI/ "HOL  S&Z HOUQ!PO 0 @ KPOMOGO 6 MF;>NMPGK<_ IPSOS9R+O*:N BS R L:<6(  W# P #$ ( H"" &H&"%H0 % (% V    2 2T 2 2\2 Q2\_d`c22Ra!MB ][a_c4 # T2 2-2 M22" +22bc _N2 2JL44 Q39 V7O3 HOPOD  9 F/D:= M% &)'&(  T O1 C'!/>CO2  @0 OQ4 '!!* 5>+2  @C.)@ 6POPLJ* 9 I3G=@ J" *-/.0  N OE G.9*<174>VN$M7  %D<2 ":NNQLJ 9 M-J;? N !8 9,;  S M B*+&.:(';: 49G4: 5$% %%6! 4LM Q22Q 'BPQQP@=S!/" 9/;<  5 VQN+GJHOMLK T4P,BTP72!4:*O".JLQDN)7),.-% /3K7&"")#4$4<+5 .  HIKLLMMNOPʣT/home/fraco/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.76/src/macros.rs c=g3=ެ. !.&&K A+F ( ./30 :& ,-#@ CJ4 =J(-*<  *, C %6 $32296'+# "3T.( bF( c>( 7=+L <*(%̃ム䨈鰫S/home/fraco/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.76/src/group.rs cփ$VQY߬߬$"""2"IR#IL#MP%2NJ#'GEMBU(,B=B?' OA*%4&#-!7.'?@,  64*6/+/6 P:*%. &#. 7.'8A 7&-$  14*6/+/6 J "0*& '$7 -=+ ! 94*81-/6 ҏ쿾ЬS/home/fraco/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.76/src/token.rs <VTvDKJ2>&B#*-$!#NF+?.& "*0 7#C<%.,'-$*&, K.44I=12DKX(79'!!!!9M#%" Q"F"#;L $.6;(+ $*"&/%*'0(/$,$.(+ $(825%".#&,#)= L*) %F03'1,D#,D#*-E#G3-E&-E'7-E"=)A&@B(@#?@(#2:/.(. &$/F ";F !*E L*))%J/3':,D#,D#*-E#G3-E&-E'7-E"=1 "E *5)A&@B(@#??(#28/.(. !=  %F03'1,D#,D#*-E#G3-E&-E'7-E"=-J1C(. (54343:"A:,A. &7! 7+ #'&@#&:#&<#&9#93656746696834557634353456645495447557766457678486662323322232322322344233232332332233233234342232666C"W K )9::47698577:79456687454645677565:6558:;887756878959777575874679787578566:464444744667:8857:657576577< L2L-7('# &F:$5? ?7 O+1"\&17'-13#93F#'#G A3#)/5%B# SF*#&-/-9  5D,I %+'%$5 ,.찂S/home/fraco/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.76/src/ident.rs 5c (=[Vf08,'D^YPQLGOP.43:-.5 &7$ # .6; !)$&$'<.  ը‡䦉R/home/fraco/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.76/src/attr.rs :rlosi#E2U *P.O73>3>QKMOLP:9:  +L?CN# :8 4.1 "#*# $; @2*0 9LPMKPAGKMN!00MQFK +*)"&#50 +2+&#?8  N$+!P#N 8/G.0  7)6\K W;?HLK- N 86'EN 8O,1/ +>N 8B$&B >N 8B$26#!%")C ,(Y3X'#% &3A&"*+&)# L D N+U!($(N8U5EB+3NOO"KLN'7KLN! FOK"&,1 2UNO,NM O*(* Q!9( P>9J*.!!"+C"1*. *"1-+ *4W@B I)598& I)%98& D=+64:C100)>6F 875/ 8754 8#75: 8 7U32J4C S&D*O! X;B c&! "9"807%;-/ 9!8)9/ 9&8)-( ؞؁ޏT/home/fraco/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.76/src/bigint.rs #Cno'MiB&8&(A%0(4   '%d( 2#2'"  )#(.  ͈򳟬ѨR/home/fraco/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.76/src/data.rs TCмsV\#p#UN.#!+156U+3NPQ 8LLN'1MLN'3OJ$4H04 JM.?L48 &!/3 1%"48 1+H59 '1++4+-UN,#%' 3",?U+3N./GD#B*LN$+LN(C@LN$'*0487A:/7?&10::9/ 8!78F 8#7?J  $56C/25AE.E#%2.< =)*01 !/0 '"+9 8,*+A,( 9$89. 9&890 98,(/)F' 9"8. 9!80 9&8.9M>1- ٢6R/home/fraco/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.76/src/expr.rs }BRYͩg(#&UWQJ  #,$ ("  JPPQQQDN + #1G  QC & 0L?8 O@9N87> -.2('G8-22 M3A QIO HBA0?0?K:$3H2 ?G7"P?A P '( 06+/B0.P +,+ B%5 POOM F3Q*4Q5!#+03Q5"#!:Q5$#)Q5!#(+*Q5!#"'.LN#$Q5!#"#Q5#$CQ5!#(%%4LN#'/)LN#".Q5##.0+"0" .Q5$#.%IQN#"/Q5##"$"=MEQ5!#'KD>Q5#" <=LN#+,Q5#$!;LN#,Q5 #"&;Q5!#GQ5!#('6Q5&#!"0'//QN#'D.;LN#"CQ5!#%!#3Q5%#"-LQ5"#+#;Q5"#*%=LQ5"#'7,%#Q5#'$Q5$#$,Q5!#'02Q5 #$'LN#+Q5"#*,Q5!#"(*Q5!#(% 7T-31=353/11/-3713753593331;39535533/339P-;!  MUN),&&&,)JN //1  CQ5%; M60Q5,#(I/, 9Q5$G   Q5#4)& 8Q5>079e'4 !O@:1"  $IS20886D7 """"%%$"9 875 IJJ MQPQ +&5 - O L & #(0 GMK? JPMP>  #'M" KNQNKPE!SO6 !!"   " $-( %B$&# #"A06@7eK<2+-..+-.1)++:@74K0')*L:.--HCD;6O!#.'/+K;:,')&e=:,')!& "#"A06@7eK0')*K;:,')& ;/ E+)Z  &W4>B$**@VS/".L S"-#7#a)B71CD3. ,@\D5 "SU'#$B. '##427# I**''CB,+-?H90++#%D9K"5Q+62 >#;+"R8;+"<8!2E<%>/3'$'KJ",''3,''A-.(''4 "U5**''CBe?D9K",'',3,''A- O2R$('* 4$),e +I.(b*( A$&%(()) 9-".=1./E/(4)(.)$ 8 7=>(.' C13%.(,*-'.(I+/).4-(2=:'K W1:'2K 6#87#% =7&* 87 =;$ V&E &3I 787#+H*N 87=*N-26 M7,6)-$#'+ 08!7A79I7K9?<&4 87A7;9?<4 87A=@9?'(6& ( :DD,C=)KHQ =G794?>K::7187$21 #'> 87$23 # > 8!72. 8#72#+*,B 872, 8 72* 8"7#+' 87#-_- \?J <3,'-&'3& 39:+.F0#=( " 87#-)' 89+##$-$4646356:5676<0'5>"% 87A7=@9?<&4 87&- 8#7&( 8"7#0' X)#$--CE) W*XVW0DE) 8 7=1X=2+;2'!5 8 7$-3 #5;,$*'!829+$5&  8 7?9E<$5 J")#/,,87A79?<5 X$$--HCC' 8!70-748A39' 87*$%=D0 87#1+3C 86 &@%! Y*N*"\"Q9 88.) 9"88;<. 9!88)9- 9'88-.+.9- 9(81-)- 9.8GH 9"889<.M9K> 9#88)'* 9"88') 9 88( 9!88)-' 9!88)0' ^3*N22-H1 9 88.(-2 988-208 9"88*02><5 9$88*.(-2><5 9!88*/><5 9"880295LN#,;)#3LN# ,5:LN#($)#' E-L.3.'I-L.39.E/N.7+&I/N.76-E.M.70(I.M.7;/Q>>5+ 3'/) ! 7 9*#/) ! 7 2&!/) ! 9 8)%/) ! 9 4( /) ! 9 :+$/) ! 9 ,Q+ S+,Q+ S+.Q+ S(N * <> TO N8WY ( &(@%& )A%K2# )A#)A)1" )A$7$ ''$ON8.5UN $!;!"+*** -' !$' AUN5UN/*2/5 HUN"IUN(?GU+3NPE%ELLN//#$=;ALN# $5ALN!487(060+A4.K)2E):G)2E>+3('3+,*6**$ 8"7=0'2%18%64%' 8!7<*/*-+8#P'868'86 8$7 +*;3>3#>* 8,7)( 87=/A,,0'aM59/@.0;.B6- !W 8$7&D*D>795 8 7?D1`RM# 8(7'=- 8 7$<-'-$/7O' 8!7-<,855P5#464#46 8)7+( 8$7@@.1<0<9999'868'868/01<0<99T9'868'86 "'" +9!8(?L%QT./E-A/(H0F614? -8*AL%QT.1E-A1E(>.'A3A@76S<4B@=7=41A -8*AL%QT.1FD45A1E(>.'A3A74B71A *8+;8 9'8.-.- 9$83-)F/ 9"83*)F/3)1CSBELWL2R.*&"C+ 9#8912-&B+ 9+8/E 9#830*0'3C+ 9$8-43 9&8./0+ 9*8-0+ 9$8+-+ 퇶ﴇV/home/fraco/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.76/src/lifetime.rs oANLzK 8%3NQM ! / 3'S 7 1A 3 !%(- #C")' -$B2%+>487" F 4+9!8C2'* 쪖ٲƬQ/home/fraco/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.76/src/lit.rs !lp zk #"!?+:--$(/= 828)) $+94!.20%/ $0<JN T> # C@-!'S.@; 81"=N !% $G 0)K:J  8J CQ= AN)H<&/ Q$;;!-(#35%/ %0A!-(#05%/  0=!-(#23%/ "0=!-(#1B"B J"G ( *8LQ 6 ;28# / 9#!-( &&F,: C'1D"? J"E * */ 9#!-("&&H.7 C'2 "!-!!=G(F = G,F =G)F =G)F =G(F =G*F =G)-  8')  8'))  8'))  (@&- )A!1L )A-9 $!< < P".- D4487">6>131#0@>0U46 Q-#6(FR&&4#$$ ?E". 87%".A 8 7%"2F 87%"/? 87%"/D 87%".B 87%"0I 87%"/B "+98/ 9#8/ 9 8/ 9 8/ 98/ 9!8/ 9 8?5  "&@-*#!<-C/%E9GA3G=/C(K18'(( M5:'(( !;3308 '/300/17 %-1..-/,2 15966573: M*D #)"<-*! D(C&)((!"?&YE">& &&&'&'%0249%1cT!*- %09@&( ++># HJ"@&2/! D(G&&X""*(!"<&'''('(&03O4-%1cT!! &M@&:3 7&'X'#$8"###$#$"_ 'M ='$$;"UA:""""#"#!_&) '9) G*11G&--C 2 2  ")..(!OGT$ %/P *H+ 4$ ' ");;!L+3/-?"'8;#:M1)2"!% ?.%N *JQIB77" !"&# ,!-0*%$)!, /+8$*#!)")!<%%-4$#" $ <- @E S#[[!>(>(?(?(?'>+-@A?72% Տӷ磯ԟQ/home/fraco/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.76/src/mac.rs {GWk A+683UN#'! [UND,<6:?+446 PL< Q =)KJ K!(, $;)610*1*O2M9><2'9: #%  J9<4'JKI] ,1?- 86'L 8O;GVI!2NHN%D04 487:,H& "98)/$2T2T6V ٍT/home/fraco/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.76/src/derive.rs ؀wqtb/xl$#<S7;#.(: ,?S+37;:D7I7*+6I7&'6@I7(!48!7A400E5;T!)&#4& *5A5;U!)&#0$,"6C5;M!)&#2% ' $D0%+1, D),/50++H'1E<.'9# $( +/6B,$6+A#"'"9$8-((EAC*-;/F212FM&FM&BA9'B3 􌜷ΜP/home/fraco/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.76/src/op.rs Z?&}"WА +UN(+.(',+++*+,))6-9, )UN/3*4:$*+)+*+*+)+)+)+)***********-*-*,*)*)9 8&7 !7(0/0/0/0/0/3/3/20000# 870+/2-2-' "9866666659986655555588888;;:88 98755 ͈ïP/home/fraco/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.76/src/ty.rs P=-`#$R!{>ѐ ѐ#9U+3N/7:P"L*!?HA86"3N!&/<P +,. B%5 POOM F3Q*+LN+#3LN/."'6( 6LN'LLN&;HLN)&LNLN#;LN'D=LN"4LN#0-2LN"(-/LN+JLN!,;+LN'0:UN*"LUN#.5 <1 UN# -UN* N+%4287#( KQ% M%%3>/)+#*2++#*.)./H+1/.+-1# 87=( 87=(.' 8780O-4-/A 8#7+*,EA 8 7(E _!&#'&!&84)DN3#1SG-)6;  87, 872 87@$&!.07-80<0#< 87% 87I`JHM) B$+ M(,7:( 8 7% 8%7% S7 B$+ GM!+8$?8'?7';K5O 8#7,PP8;4#; 87;*. 87$+ I?A 87(I "%&8\.0>;()/1.0),341>:!GGG/!&-- '_%/&!A  87.& 8!7,( "'"+9"8;- 9"8;-3, 9 8/%4J) 9&8.-/) 9#8.-(-9/9:;;0+ 9"8/ 9"89. 9!8B 9(8.+ 9&8/+ 9"89- 9"89- 9"85 9"8( 9#8*1-* 9"836()' 9!83) 981) ۪R/home/fraco/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.76/src/path.rs 'ډտ#UUN/;"!) 2 NUN&  !,  FU4.N8826!%)S6  )Y  GUN!O*A ; M6Q UN0.!:!LUN!=UN$;O UN/'1 FPP,0# ! UN!*!487- 8%7AF=E%]L=J%&1%%)4EDDF( 01,214DP0 @,&' ! #30'!- &%7/**+*@5 8470.*63#403#40* 837/?@? 8!7- Pd;56.OD!N- 87'*$ 8 7'-3 `,@(&((& P R  ,2 92Q6"( '?#3BG5#44-B:J M A -0M"M R  C+ S1/MW#<=! %) H . -4M R<4,,8. ["/:O0= " +81K1 Z#6-3;1'6;.J'-8(:03<=0&;($ $$? '"982- 9$8*. 9&8*>1=1 9(*8GCFI89QN!-;J0M- 9781-M7OT.-(61E-256-(N0F1E12;-(V0F1E1/6- 9 8*-' 9#8*0+ 9689/+ a&&,.(E6D6N&;:;326&+ ҸԄzT/home/fraco/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.76/src/buffer.rs ,~6(vmֿٲֿNRNP> VcQ (J;FL POP&IFIL.&#+5*4+5)O83; Q'&NMM6#FG;<KGA7 &IU"Z9"I6-O.$R4OPQ?K%P<POQ$AQNO7 M%'0^!#! FI7KPQNB, ! "OG)7QQ4, <6IN6F P:QKYKO:& 9,R  O*<R P*<d P*@P K1B\3%-23#/" D/"; "L1HOIA(<793  -P 4+))1 L;5$J\3%E%/   $)239;5<6毊Q/home/fraco/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.76/src/ext.rs !]l! o<ڲڲBR)QP2Q.2N 0 %( J  <()6 68&N:%7L#%LNLFPJ6  9E3 7369 '&2  $)&!#." އX/home/fraco/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.76/src/punctuated.rs 3A7{1-ڰI5AHHJPPQ6% '%!!2!0HP!.&! .! I6%5MQ!C4(<43' ;3$J$**G L/-.G K)&C J#4*C H1+5 Q>O##Q-&g +QJO3!z ./N2!4B I+0PN.MQP%% '1 0O"5 !6 !C LP1Q:N 8@ 5OEQ;N 8". 0"(*"(* O1OQLN 8H =NEN+KN 8*. 0(**(*  8&'% !9# !9*)/5!9% //!96;'$ ) 0<) *< ;E) 5E&c  LC"3# /!+;D0) 7!+;$+#*<P!%$#.$/294'94U7++'% LP!(''1,/294'<4U:+7P!"*/294'54U3+%'% /P!#/4'.4,' 3P!QQ?9HI'$#2> ($+ '/4'2404/!*?4D=+1'% .TJ?P! @P*''2E(*/4'5437/%*B4H@+7SOP! P#8 @ 8 H,8 O<(/" L-/" I(04'  8 N2 /5%.! 2A%#2% "+9- 8- 9' 8,))5 㰍澠զY/home/fraco/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.76/src/parse_quote.rs `Kk+O۰۰PA;N #"(1 !POFK)4<>,<@ O4RP-A8' MO Q2O$+: Q-8>('2"3#QD#22 3=55 ;3& 3#잏]_/home/fraco/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.76/src/parse_macro_input.rs v\\.SNO > ;QI)!**"7 ( :@ N+F#,#A ( :S H-+(R K2)Q!(F1-U 0D1-U 6Q-8K!#2'3#QJ22)3$"(") ٸҬތì䝱U/home/fraco/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.76/src/spanned.rs d^PrMQ LOQG KHQ?!/" 9!60  OO? S $XOB KPPLJNQ!;)MIG"3!PL><+ٙʟ©ٖT/home/fraco/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.76/src/export.rs ӿ 7df@%#,#+(:  V!+ ݡǒ僞9\/home/fraco/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.76/src/custom_keyword.rs j]]Bt)޹Q KM) (O /59OB/0 PMOPGO-/* $#"!  ! 70*$<.+0#:.+' '/ ,XI 5#@ 8<8?-5Q?0>6 /[&U9aA&, !-16POJ "1 -323& %-!43d9C 17E 2P &4ҳڲk`/home/fraco/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.76/src/custom_punctuation.rs u5gf|eN' 3O$172J[@/0 /8%2"3"72<6.5?9* Q-62' ->"$B ,eVG 5#= EIEL1$5>^>E /[G^" !1&5$6Pg "5& 1$323& %1&!8$3dO 17E 2P &8&'Y&##############################################R-&ѳڕΑHT/home/fraco/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.76/src/sealed.rs $ˤ1Ѻ_{J렍رҼР7R/home/fraco/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.76/src/span.rs X@.g?nh5C%'%'%'*' *' *' +,,,'բ<T/home/fraco/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.76/src/thread.rs -QO"d ))#MI*M0#/ &6 *C94 ߥ͔]W/home/fraco/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.76/src/lookahead.rs ĮzJ{̥Jp!&$LFLO2>;GS*P@HA%"70'61:67' -8/# 8 L-P'#@(!%4;GM:"5"'FGF@\@3D@ ;K*M;@'D&S/home/fraco/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.76/src/parse.rs ƜrHYphJ" JOOGK&IMQJQNKIF6!N*%&#.70005.'  7.'8G  9 ( :8"PMNF#%++O8*OIQL=$&Q&'-<M*IPM"!%<DT)$V+T-$F+I$-,R* V#Y&'.OQ!2$QH!04Q$O2!MNHO:(-OKHOP@JN!%4$Z<$> ';7%;56M- !MM=$=K/&C 0.%< 0 &IKJPP7,',,"GO$:8eJKF?< &;W1 !2?H J 9T1 (;G: M,KKM%  M1PQ'B 4.1 "#*# $; @2*0 QL-;P'#@(!%PH R.)E G( ,@' %;A3=E9+@S#@8C!!!!4 4&<KNQPP< ;.8=$ &;E;; 5KJ8!7 $;5KJO!(% $P1Q:  E.)8 *'1# %;!2+CD0  6 *.$8CGL >.H$' ;/*<44: %MP W.T D L E)# &;4+:5>:;+ 12O@LPM #' 72*  OP'FLIQ6F1MON9  , HPP/QO8 E .$, '* ';=..%63672':O0S 92':OBL #& !%!L:O G (.: ;-/0.C ;:J:PN, $%QQ!A"(A O3*G 4"2) "@$4 7 JML9 NQQMKO1 LONP>1%! EN!$6 NN4)/)E 4"3$4-3%% 43J4380> 43[KO*.6 4336E 435:A JJ!QKNLBFNLU"ZN<FNLN:<6X6J=A#!;0)8-2"#[A 6X-"?A"#[A 6J2e$2WCI!! ( K- 4凌Y/home/fraco/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.76/src/discouraged.rs pHì{‘:^7 "ً#"<HLPOMMMQMQMKFP1QNNPMGMKLP2 "20:!* * * +6 %;-001?9,F,RF-:10#Q- < KNOK0 Q# 41 LPO7 4 OMLJI@,O9IN'+(FL <<3'P(<N"CONM.$JI# ;WڋᄖёV/home/fraco/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.76/src/verbatim.rs rB; ~ .uڋ##ڋ#.R%)7' ǣڇ⎉Ҵ`S/home/fraco/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.76/src/print.rs ]cb&SÐyR###:04,4 ǯS/home/fraco/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.76/src/error.rs r9'|<1ɐUK### ^& 4D%L@P-,K2!9( K>9DQ5#1(# :>D!:(*H !PMPD:#!  NMQ=A 8%PJ'>4&OEN), =*42. NPPJQ@KD!Q?L;*51. *OP!>!. :!. )AM5041A0 # %:'& DB$; *,N# 5 Q6000.P$%BA'?EI.% NK >"LG &1-* C&&*&' C-C7- .P1-+ $ %,+1 +/3 &+, -!/; C ȴƬŗS/home/fraco/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.76/src/await.rs ! EsY)ؤ蔨W/home/fraco/.cargo/registry/src/github.com-1ecc6299db9ec823/syn-1.0.76/src/gen/clone.rs KV PoDab4*B285% 280)5-%- 8'#';%' 2828283'7%) 28'%! 282828'-! 83' 28 /-/- 28'3'3!-+ 28'3) 8:68 813- 85)1 83) 8'#'-% 28%8%:%>%8%8:%8%4%866%<%>8%<%8%28%44%6%8%8%B86%8%@%:%:%:%4%>%8%68%:>%8%8! 8'7' 8'%-' 8'%!' 8'3+' 8'%/3 28'%!' 8''' 8'/% 8'3'% 28'%3% 28'%-! 8'/1+/)/)% 8'9' 28'%/) 8''/#-%% 8'3% 8'-%33 28'%7' 8'/#-% 28'# 8''1% 8'# 8'3%3% 8 '-/)/3% 28'3% 28''% 8'%)! 8'/#1% 8'7%1# 8'5% 8'%3)1% 8'%9 8'/' 8'3' 8'%3! 28'!% 8'5' 8''3%% 8'3% 28'#'3! 8')3# 8')3% 28<@* 283' 283+ 8+'' 8@: 8@HDFL! 8'##1 8"'#1 8#'#51'3!1 8!'#1'1 28!TLRXN 8'XZ 28FNH 28-)-5 8@B>@F! 8'#33'3!-%1 8'#1 8 '#3#' 8'#31'--!1 28'% 886D2B68:4::8B684>! 8'#3'3!-%1 8'#1'-3- 8!'#53')1 8'##' 8 '#3' 8'3-1-)+3' 8''#1 8'#3'' 8'#/'+% 8'#51'3!-%1 8'#5'-)1 8'#-13'-333' 8 '#3'--)1 8'#1'--!1 8'#3'-) 8'#/7%1 8%3 28'-3) 82:44264< 8'% 8'/#%1 28%1/) 28 LLP 28<@ 2866@ 28%3) 28%-# 8!5-%- 28B@ 28/(3)) 82626046>4686B4<4! 8'/# 8')1') 8'% 8'# 8'5' 8''% 8'!)! 8'/1# 8'1 8'7' 8'%3)1 8'3' 8 '%# 8'#3! 8'= 287- 288\Z 28'/ 28)-) 28#-3) 28/13) 28-!--- 888'/11 288R 8//-#-'-3)-) 8866F 283-/% 28$28$8BD@BH! 8 '3'3!+1 8 '#1 8!'#+1 8'1'-3)+1 288:8@888864@8D8>! 287%1# 28/-#-3)-) 283% 281) 28= 28# 281 28''3)-+ 28 LR 283% 28'% 28131% 28/-1% 287% 28!/) 283' 282881 83' 8' 8'5% 8'-) 8<<@<> 28'% 28'')5 283 28/ 28/3-% 28FDN< 2831 28 JRF ꧒ԡϵsynx86_64-unknown-linux-gnu-a48f1133688ebb7dƙоxҘ'cDmβ