diff --git a/services/web/frontend/js/features/source-editor/lezer-typst/tokens.mjs b/services/web/frontend/js/features/source-editor/lezer-typst/tokens.mjs index 2575e579a5..96177bc7c6 100644 --- a/services/web/frontend/js/features/source-editor/lezer-typst/tokens.mjs +++ b/services/web/frontend/js/features/source-editor/lezer-typst/tokens.mjs @@ -37,6 +37,7 @@ const COLON = 58 // : const SEMICOLON = 59 // ; const OPEN_ANGLE = 60 // < const CLOSE_ANGLE = 62 // > +const PLUS = 43 // + const KEYWORDS = new Set([ 'let', 'set', 'show', 'import', 'include', @@ -324,7 +325,7 @@ export const codeIdentTokenizer = new ExternalTokenizer( while (input.peek(back) === SPACE || input.peek(back) === TAB || input.peek(back) === NEWLINE) back-- const prev = input.peek(back) - if (prev !== HASH && prev !== DOT && prev !== OPEN_PAREN && prev !== COMMA && prev !== EQUALS && prev !== COLON) { + if (prev !== HASH && prev !== DOT && prev !== OPEN_PAREN && prev !== COMMA && prev !== EQUALS && prev !== COLON && prev !== PLUS) { if (!isIdentTail(prev)) { // prev is a structural delimiter (e.g. ')' after a function call, '{' at // block start, '}' after a nested block). These are valid statement-start diff --git a/services/web/frontend/js/features/source-editor/lezer-typst/typst.grammar b/services/web/frontend/js/features/source-editor/lezer-typst/typst.grammar index 093007a010..0fff257d01 100644 --- a/services/web/frontend/js/features/source-editor/lezer-typst/typst.grammar +++ b/services/web/frontend/js/features/source-editor/lezer-typst/typst.grammar @@ -88,7 +88,11 @@ codeExprBody { // kw — prefer CodeKeyword !kw callOrValueAndBody over CodeKeyword keywordBody? // when an identifier follows the keyword. shift = kw << 2, reduce // (second alternative) = 0; kw > 0, no @right needed. -@precedence { call @right, kw } +// add — resolves the shift/reduce conflict when a '+' follows a codeArgValue: +// SHIFT '+' (extend codeArgValue → codeArgValue !add "+" codeValue): prec add +// REDUCE codeArgItem → codeArgValue (complete arg): prec 0 +// add > 0 → shift wins, so 0.8pt + brand stays as one arg value. +@precedence { call @right, kw, add } // KeywordExpr: used in markup-level code (#show, #let, #set …) AND nested // inside codeExprBody (e.g. the RHS after ':' in a show-rule). @@ -140,10 +144,19 @@ callSuffix { CodeArgs { "(" codeArgList? ")" } codeArgList { codeArgItem ("," codeArgItem)* ","? } codeArgItem { - CodeArgKey ":" codeValue | - codeValue + CodeArgKey ":" codeArgValue | + codeArgValue } +// codeArgValue extends codeValue with '+' chaining for expressions like +// `stroke: 0.8pt + brand` or `fill: base + overlay`. +// Left-recursive rule: LALR state for codeArgValue · seeing '+': +// SHIFT '+' (extend, !add prec): prec add > 0 +// REDUCE codeArgItem → codeArgValue (complete): prec 0 +// add > 0 → shift wins cleanly. No @right needed (strict dominance). +// Only used inside CodeArgs, so codeStatement* LALR-merging does not apply. +codeArgValue { codeValue | codeArgValue !add "+" codeValue } + codeValue { CodeString | CodeNumber | @@ -303,7 +316,7 @@ Escape { "\\" EscapeChar } // CodeString > MarkupContent: '"' starts a string literal after a keyword. // ":" > MarkupContent: keywordBody ':' wins over markup colon in code states. // URL > MarkupContent: 'https://' / 'http://' wins over plain markup text. - @precedence { CodeBool EscapeChar CodeString URL "[" ":" "(" "." "]" ClosingSquare "_" spaces MarkupContent } + @precedence { CodeBool EscapeChar CodeString URL "[" ":" "(" "." "+" "]" ClosingSquare "_" spaces MarkupContent } } @skip { spaces } diff --git a/services/web/frontend/js/features/source-editor/lezer-typst/typst.mjs b/services/web/frontend/js/features/source-editor/lezer-typst/typst.mjs index 3d772d7471..8f14d10d7c 100644 --- a/services/web/frontend/js/features/source-editor/lezer-typst/typst.mjs +++ b/services/web/frontend/js/features/source-editor/lezer-typst/typst.mjs @@ -3,15 +3,15 @@ import {LRParser} from "@lezer/lr" import {headingTokenizer, headingTitleTokenizer, rawTokenizer, rawInlineTokenizer, blockCommentTokenizer, lineCommentContentTokenizer, mathContentTokenizer, codeKeywordTokenizer, codeIdentTokenizer, strongBodyTokenizer, emphBodyTokenizer} from "./tokens.mjs" export const parser = LRParser.deserialize({ version: 14, - states: ".jQVQMmOOO!WQMoO'#ClO#bQN_O'#CmO$lQ!LbO'#CnO$tQMlO'#CoO$|QMpO'#CpO%UQNzO'#CzO%^Q#&bO'#CqO%oQ!*nO'#C}O%wQ!5tO'#DOO&PQ$ISO'#DPO&UQ(CWO'#DRO&ZQ07`O'#DTOOQT'#Da'#DaOOQT'#DY'#DYQVQMmOOOOQT,59W,59WOOQT,59X,59XOOQT,59Y,59YO&`Q!LQO,59YOOQT,59Z,59ZO&eQMlO,59ZOOQT,59[,59[O&jQMhO,59[OOQ!b'#D['#D[O&oQNzO,59fOOQ)e,59f,59fO&wQMmO'#CxO'pQ#&bO'#CyO'wQMmO'#DgO)XQ!%XO'#CrOOQ)e'#C|'#C|OOQ)e'#Dg'#DgOOQT,59],59]OOQT,59i,59iO*lQMhO,59iOOQT,59j,59jO*qQMhO,59jO*vQ!LQO,59kOOQT,59m,59mOOQT,59o,59oOOQT-E7W-E7WOOQT1G.t1G.tOOQT1G.u1G.uOOQT1G.v1G.vOOQ!b-E7Y-E7YOOQ)e1G/Q1G/QOOQ)e,59d,59dO*{QMmO,59dO+SQ#&bO'#DtOOQ)`'#Dt'#DtOOQ)`'#DZ'#DZO+}Q#&bO,59eOOQ)e,59e,59eO,sQ##lO'#C{OOQ)e'#Dp'#DpO,zQ#&bO'#DpO-xQ##lO'#CtOOQ)e'#Dk'#DkO.PQ!%SO'#DkOOQ)e'#Dj'#DjO.jQMmO,59_O%^Q#&bO'#DuO/pQ##lO'#DuO0]QMmO'#DiOOQ)e'#Di'#DiO1cQMmO'#DhOOQ)e,59^,59^OOQT1G/T1G/TOOQT1G/U1G/UOOQT1G/V1G/VOOQ)e1G/O1G/OOOQ)`,5:`,5:`O2pQ#&bO'#DiO3^Q#&bO'#DhOOQ)`-E7X-E7XOOQ)e1G/P1G/POOQ)e,59g,59gO4XQ!LQO,59gO4^QMhO'#DnOOQO'#Dn'#DnO4cQ!LQO'#DmO4kQ#&bO,59_OOQ)e,59`,59`O5_Q!LQO,59`OOQ)e,5:V,5:VOOQ)e,5:U,5:UOOQ)e,5:a,5:aO5dQMmO'#DpOOQ)e,5:S,5:SO6tQ#&bO'#DgO7lQ#&bO'#CrOOQ)e1G/R1G/RO8gQ##lO,5:YO8nQ##lO,5:XO8uQ!LQO,5:XOOQ)e1G.z1G.zOOQO1G/t1G/tOOQO,59w,59wO8}Q##lO1G/sOOQO-E7Z-E7ZP,UQ##lO'#D]O9UQ#&bO'#DuO8gQ##lO'#Du", - stateData: "9v~O!SOS~OPPORSOy]Oz]O{]O!UQO!VRO!XTO!YVO!mUO!qWO!rXO!sYO!uZO!v[O~OQ`OP`XR`Xy`Xz`X{`X!Q`X!U`X!V`X!X`X!Y`X!m`X!q`X!r`X!s`X!u`X!v`X!f`X~OWaOPaXRaXyaXzaX{aX!QaX!UaX!VaX!XaX!YaX!maX!qaX!raX!saX!uaX!vaX!faX~OVcO!WbO~OSeOTdO~OUgO!XfO~OXhO!mjO~OYnOZmOkoO!ekO!glO~O]sO!qrO~O^uO!rtO~OtvO~OvwO~OxxO~O!WzO~OT{O~O!X|O~OXhO!m!OO~O!f!PO~PVOY!ROZ!YOi!XOj!XOk!XO!`!WO!ekO!glO!k!SO!mUO~O!l!VO~P'OO!`!ZO!ekO!p!]OP!ZXR!ZXy!ZXz!ZX{!ZX!Q!ZX!U!ZX!V!ZX!X!ZX!Y!ZX!m!ZX!q!ZX!r!ZX!s!ZX!u!ZX!v!ZX!f!ZX~OZ!bOi!cO!c!`O!j!aOPfXRfXyfXzfX{fX!QfX!UfX!VfX!XfX!YfX!mfX!qfX!rfX!sfX!ufX!vfX!ffX~O!q!fO~O!r!gO~O!t!hO~O!f!iO~PVOZ!kOi!cO!c#YO!j#ZOY!hXj!hXk!hX!`!hX!e!hX!g!hX!k!hX!l!hX!m!hX~O!l!nO~P'OOZ!YO[!qOi!XOj!XOk!XO!`!WO!ekO!glO!mUO~O!n!oO~P,UO!`!ZO!ekO!p!]OY!dXZ!dXi!dXj!dXk!dX!g!dX!k!dX!l!dX!m!dX!n!dX!o!dX~O!n!uO~P,UOZ!wO~O!`!ZO!ekO!p!]O!mga!cga!jga~OPgaRgaygazga{ga!Qga!Uga!Vga!Xga!Yga!qga!rga!sga!uga!vga!fga~P.UOZ!zO~P,[O!`!ZO!ekO!p!]O!c!]X!j!]X!m!]X~OP!]XR!]Xy!]Xz!]X{!]X!Q!]X!U!]X!V!]X!X!]X!Y!]X!q!]X!r!]X!s!]X!u!]X!v!]X!f!]X~P/wO!c!`O!j!aOP![XR![Xy![Xz![X{![X!Q![X!U![X!V![X!X![X!Y![X!m![X!q![X!r![X!s![X!u![X!v![X!f![X~OY!]XZ!]Xi!]Xj!]Xk!]X!g!]X!k!]X!l!]X~P/wO!c#YO!j#ZOY![XZ![Xi![Xj![Xk![X!`![X!e![X!g![X!k![X!l![X!m![X~O!n#OO~O!c#PO~O!o#QO!n!aX~OYgaZgaigajgakga!gga!kga!lga!nga!oga~P.UO!n#SO~O!`!ZO!ekO!p!]OP!dXR!dXy!dXz!dX{!dX!Q!dX!U!dX!V!dX!X!dX!Y!dX!m!dX!q!dX!r!dX!s!dX!u!dX!v!dX!f!dX~O!`!ZO!ekO!p!]OY!ZXZ!ZXi!ZXj!ZXk!ZX!g!ZX!k!ZX!l!ZX!m!ZX~OZ!kOi!cO!c#YO!j#ZOYfXjfXkfX!`fX!efX!gfX!kfX!lfX!mfX~OZ!YO~P,[O!n!aa~P,UO!o#VO!n!aa~O!n!ai~P,UOY!}OZ!|OkoO!ekO!glO~Okxiy!e!c!`!p!f{!r!Sz!`~", - goto: "'k!jPPPPPPPPPPPPPPPP!k!k!k!k!k!k!q!v#^PPP#h$T$f$Y!q!k!k!kP!kP!kPPPP$x%S%Y%`PPP%fPPPPP%l%s%z&R&]P&i&oP&xPPP'['`X]O_k!QVpV!`#YUpV!`#Yd!Xl!U!W!Z!a#P#Q#V#X#ZV!cn!R!}a![m!Y!_!b!k!t!z!|UpV!`#Yd!Xl!U!W!Z!a#P#Q#V#X#Za![m!Y!_!b!k!t!z!|UpV!`#Ye!Xl!U!W!Z!a#P#Q#V#X#ZW]O_k!Qe!Xl!U!W!Z!a#P#Q#V#X#ZQ_OSy_!QR!QkQ!UlR!m!UQiUR}iQ#R!sR#W#RX^O_k!QQqVT!y!`#YS!en!}R!j!RQ!dnT!l!R!}U!_m!b!zV!t!Y!k!|[!^m!Y!b!k!z!|T!x!_!tQ!p!WR!v!ZS!s!W!ZV#U#Q#V#XS!Sl!UY!r!W!Z#Q#V#XS!y!a#ZR#T#PT!Tl!US!en!}Q!j!RT!{!d!l", + states: ".|QVQMmOOO!WQMoO'#ClO#bQN_O'#CmO$lQ!LbO'#CnO$tQMlO'#CoO$|QMpO'#CpO%UQNzO'#CzO%^Q#&bO'#CqO%oQ!*nO'#C}O%wQ!5tO'#DOO&PQ$ISO'#DPO&UQ(CWO'#DRO&ZQ07`O'#DTOOQT'#Da'#DaOOQT'#DY'#DYQVQMmOOOOQT,59W,59WOOQT,59X,59XOOQT,59Y,59YO&`Q!LQO,59YOOQT,59Z,59ZO&eQMlO,59ZOOQT,59[,59[O&jQMhO,59[OOQ!b'#D['#D[O&oQNzO,59fOOQ)e,59f,59fO&wQMmO'#CxO'pQ#&bO'#CyO'wQMmO'#DgO)XQ!%XO'#CrOOQ)e'#C|'#C|OOQ)e'#Dg'#DgOOQT,59],59]OOQT,59i,59iO*lQMhO,59iOOQT,59j,59jO*qQMhO,59jO*vQ!LQO,59kOOQT,59m,59mOOQT,59o,59oOOQT-E7W-E7WOOQT1G.t1G.tOOQT1G.u1G.uOOQT1G.v1G.vOOQ!b-E7Y-E7YOOQ)e1G/Q1G/QOOQ)e,59d,59dO*{QMmO,59dO+SQ#&bO'#DuOOQ)`'#Du'#DuOOQ)`'#DZ'#DZO+}Q#&bO,59eOOQ)e,59e,59eO,sQ##lO'#C{OOQ)e'#Dq'#DqO,zQ#&bO'#DqO-{Q##lO'#CtOOQ)e'#Dk'#DkO.SQ!%SO'#DkOOQ)e'#Dj'#DjO.mQMmO,59_O%^Q#&bO'#DvO/sQ##lO'#DvO0`QMmO'#DiOOQ)e'#Di'#DiO1fQMmO'#DhOOQ)e,59^,59^OOQT1G/T1G/TOOQT1G/U1G/UOOQT1G/V1G/VOOQ)e1G/O1G/OOOQ)`,5:a,5:aO2sQ#&bO'#DiO3aQ#&bO'#DhOOQ)`-E7X-E7XOOQ)e1G/P1G/POOQ)e,59g,59gO4[Q!LQO,59gOOQO'#Dp'#DpO4aQ!LQO'#DnO4lQMhO'#DnO4qQ!LQO'#DmO4yQ#&bO,59_OOQ)e,59`,59`O5pQ!LQO,59`OOQ)e,5:V,5:VOOQ)e,5:U,5:UOOQ)e,5:b,5:bO5uQMmO'#DqOOQ)e,5:S,5:SO7VQ#&bO'#DgO7}Q#&bO'#CrOOQ)e1G/R1G/RO8xQ##lO,5:[O8xQ##lO,5:YO9PQ##lO,5:XO9WQ!LQO,5:XOOQ)e1G.z1G.zOOQO1G/v1G/vO9`Q!LQO1G/tOOQO,59w,59wO9kQ##lO1G/sOOQO-E7Z-E7ZP,UQ##lO'#D]O9rQ#&bO'#DvO8xQ##lO'#Dv", + stateData: ":e~O!SOS~OPPORSOy]Oz]O{]O!UQO!VRO!XTO!YVO!nUO!sWO!tXO!uYO!wZO!x[O~OQ`OP`XR`Xy`Xz`X{`X!Q`X!U`X!V`X!X`X!Y`X!n`X!s`X!t`X!u`X!w`X!x`X!g`X~OWaOPaXRaXyaXzaX{aX!QaX!UaX!VaX!XaX!YaX!naX!saX!taX!uaX!waX!xaX!gaX~OVcO!WbO~OSeOTdO~OUgO!XfO~OXhO!njO~OYnOZmOkoO!fkO!hlO~O]sO!srO~O^uO!ttO~OtvO~OvwO~OxxO~O!WzO~OT{O~O!X|O~OXhO!n!OO~O!g!PO~PVOY!ROZ!YOi!XOj!XOk!XO!`!WO!fkO!hlO!l!SO!nUO~O!m!VO~P'OO!`!ZO!fkO!r!]OP!ZXR!ZXy!ZXz!ZX{!ZX!Q!ZX!U!ZX!V!ZX!X!ZX!Y!ZX!n!ZX!s!ZX!t!ZX!u!ZX!w!ZX!x!ZX!g!ZX~OZ!bOi!cO!c!`O!k!aOPfXRfXyfXzfX{fX!QfX!UfX!VfX!XfX!YfX!nfX!sfX!tfX!ufX!wfX!xfX!gfX~O!s!fO~O!t!gO~O!v!hO~O!g!iO~PVOZ!kOi!cO!c#]O!k#^OY!iXj!iXk!iX!`!iX!f!iX!h!iX!l!iX!m!iX!n!iX~O!m!nO~P'OOZ!YO[!sOi!XOj!XOk!XO!`!WO!fkO!hlO!nUO~O!o!oO~P,UO!`!ZO!fkO!r!]OY!eXZ!eXi!eXj!eXk!eX!h!eX!l!eX!m!eX!n!eX!o!eX!p!eX!q!eX~O!o!vO~P,UOZ!xO~O!`!ZO!fkO!r!]O!nga!cga!kga~OPgaRgaygazga{ga!Qga!Uga!Vga!Xga!Yga!sga!tga!uga!wga!xga!gga~P.XOZ!{O~P,[O!`!ZO!fkO!r!]O!c!]X!k!]X!n!]X~OP!]XR!]Xy!]Xz!]X{!]X!Q!]X!U!]X!V!]X!X!]X!Y!]X!s!]X!t!]X!u!]X!w!]X!x!]X!g!]X~P/zO!c!`O!k!aOP![XR![Xy![Xz![X{![X!Q![X!U![X!V![X!X![X!Y![X!n![X!s![X!t![X!u![X!w![X!x![X!g![X~OY!]XZ!]Xi!]Xj!]Xk!]X!h!]X!l!]X!m!]X~P/zO!c#]O!k#^OY![XZ![Xi![Xj![Xk![X!`![X!f![X!h![X!l![X!m![X!n![X~O!o#PO~O!p#QO!o!bX!q!bX~O!c#RO~O!q#SO!o!aX~OYgaZgaigajgakga!hga!lga!mga!oga!pga!qga~P.XO!o#UO~O!`!ZO!fkO!r!]OP!eXR!eXy!eXz!eX{!eX!Q!eX!U!eX!V!eX!X!eX!Y!eX!n!eX!s!eX!t!eX!u!eX!w!eX!x!eX!g!eX~O!`!ZO!fkO!r!]OY!ZXZ!ZXi!ZXj!ZXk!ZX!h!ZX!l!ZX!m!ZX!n!ZX~OZ!kOi!cO!c#]O!k#^OYfXjfXkfX!`fX!ffX!hfX!lfX!mfX!nfX~OZ!YO~P,[O!o!aa~P,UO!q#YO!o!aa~O!p#QO!o!bi!q!bi~O!o!ai~P,UOY#OOZ!}OkoO!fkO!hlO~Okxiy!f!c!`!r!p!g{!t!Sz!r~", + goto: "'{!kPPPPPPPPPPPPPPPP!l!l!l!l!l!l!r!w#`PPP#j$W$j$]!r!l!l!lP!lP!lPPPP$}%X%_%ePPP%kPPPPP%q%x&P&W&bP&n&tP&}'XPPP'l'pX]O_k!QVpV!`#]UpV!`#]f!Xl!U!W!Z!a#Q#R#S#Y#[#^V!cn!R#Oa![m!Y!_!b!k!u!{!}UpV!`#]f!Xl!U!W!Z!a#Q#R#S#Y#[#^a![m!Y!_!b!k!u!{!}UpV!`#]g!Xl!U!W!Z!a#Q#R#S#Y#[#^W]O_k!Qg!Xl!U!W!Z!a#Q#R#S#Y#[#^Q_OSy_!QR!QkQ!UlR!m!UQiUR}iQ#T!tR#Z#TX^O_k!QQqVT!z!`#]S!en#OR!j!RQ!dnT!l!R#OU!_m!b!{V!u!Y!k!}[!^m!Y!b!k!{!}T!y!_!uQ!p!WR!w!ZS!t!W!ZV#X#S#Y#[Y!r!W!Z#S#Y#[R#W#RS!Sl!U[!q!W!Z#R#S#Y#[S!z!a#^R#V#QT!Tl!US!en#OQ!j!RT!|!d!l", nodeNames: "⚠ HeadingMark HeadingTitle RawBlockOpen RawBlockBody RawBlockClose RawInlineContent BlockCommentBody LineCommentContent MathContent CodeKeyword CodeIdent CodeArgKey StrongBody EmphBody Document Heading LineComment BlockComment RawBlock RawInline CodeExpr KeywordExpr FuncExpr CodeArgs CodeString CodeNumber CodeBool ContentBlock CodeBlock InlineMath CodeArray AtomExpr Strong Emphasis Label LabelName Ref RefName Escape EscapeChar URL MarkupContent ClosingSquare", - maxTerm: 84, + maxTerm: 86, skippedNodes: [0], repeatNodeCount: 4, - tokenData: "!HP~R!UOX$eXY&cYZ&cZ]$e]^'X^p$epq&cqr$ers)sst/vtu/}ux$exy0Uyz1Tz{2S{|$e|}2c}!O$e!O!P3b!P!Q4a!Q![4v![!]Mx!]!^Nw!^!_! v!_!`! }!`!a!!U!a!b$e!b!c!#T!c!}!#[!}#O!&t#O#P!'s#P#Q!'z#Q#R$e#R#S!(T#S#T!(u#T#U!(|#U#Y!#[#Y#Z!/W#Z#[!#[#[#]!5c#]#b!#[#b#c!?d#c#h!#[#h#i!Bl#i#o!#[#o#p!Et#p#q$e#q#r!Fs#r;'S$e;'S;=`!Gr;=`<%l!Gz<%lO$ea$l[x`zPOX%bZp%bqs%buz%b{!P%b!Q!^%b!`!b%b!c#O%b#Q#R%b#T;'S%b;'S;=`&]<%lO%bP%g[zPOX%bZp%bqs%buz%b{!P%b!Q!^%b!`!b%b!c#O%b#Q#R%b#T;'S%b;'S;=`&]<%lO%bP&`P;=`<%l%b~&jSx`!S~XY&vYZ&v]^&vpq&v~&{S!S~XY&vYZ&v]^&vpq&v~'bax`!S~zPOX%bXY&vYZ&vZ]%b]^(g^p%bpq&vqs%buz%b{!P%b!Q!^%b!`!b%b!c#O%b#Q#R%b#T;'S%b;'S;=`&]<%lO%b~(na!S~zPOX%bXY&vYZ&vZ]%b]^(g^p%bpq&vqs%buz%b{!P%b!Q!^%b!`!b%b!c#O%b#Q#R%b#T;'S%b;'S;=`&]<%lO%b~)zgx`zPOX+cXY-PZp+cpq-Pqr+crs.ssu-Puz+cz{-P{!P+c!P!Q-P!Q!^+c!^!`-P!`!b+c!b!c-P!c#O+c#O#P-q#P#Q-P#Q#R+c#R#T-P#T;'S+c;'S;=`/p<%lO+c~+hgzPOX+cXY-PZp+cpq-Pqr+crs.ssu-Puz+cz{-P{!P+c!P!Q-P!Q!^+c!^!`-P!`!b+c!b!c-P!c#O+c#O#P-q#P#Q-P#Q#R+c#R#T-P#T;'S+c;'S;=`/p<%lO+c~-SWOY-PZr-Prs-ls#O-P#O#P-q#P;'S-P;'S;=`.m<%lO-P~-qOi~~-tRO;'S-P;'S;=`-};=`O-P~.QXOY-PZr-Prs-ls#O-P#O#P-q#P;'S-P;'S;=`.m;=`<%l-P<%lO-P~.pP;=`<%l-P~.z[i~zPOX%bZp%bqs%buz%b{!P%b!Q!^%b!`!b%b!c#O%b#Q#R%b#T;'S%b;'S;=`&]<%lO%b~/sP;=`<%l+ca/}O!YPx`c0UO!mRx`~0_[x`!`~zPOX%bZp%bqs%buz%b{!P%b!Q!^%b!`!b%b!c#O%b#Q#R%b#T;'S%b;'S;=`&]<%lO%bc1^[!nQx`zPOX%bZp%bqs%buz%b{!P%b!Q!^%b!`!b%b!c#O%b#Q#R%b#T;'S%b;'S;=`&]<%lO%bc2ZP!qPx`!P!Q2^Q2cO!WQc2l[!oQx`zPOX%bZp%bqs%buz%b{!P%b!Q!^%b!`!b%b!c#O%b#Q#R%b#T;'S%b;'S;=`&]<%lO%b~3k[x`!p~zPOX%bZp%bqs%buz%b{!P%b!Q!^%b!`!b%b!c#O%b#Q#R%b#T;'S%b;'S;=`&]<%lO%ba4fQx`z{4l!P!Q4qP4qO!VPP4vO!UPg5RqjQtSx`zPOX%bZp%bqs%buv7Yvz%b{}%b}!O8V!O!P:T!Q![Kh![!]8V!]!^%b!`!b%b!c!}8V!}#O%b#Q#R%b#R#S9i#T#V8V#V#W=w#W#X@u#X#Y=w#Y#ZCw#Z#]8V#]#^Ea#^#a8V#a#b=w#b#d8V#d#eFy#e#f8V#f#gHc#g#o8V#o;'S%b;'S;=`&]<%lO%bR7a[jQzPOX%bZp%bqs%buz%b{!P%b!Q!^%b!`!b%b!c#O%b#Q#R%b#T;'S%b;'S;=`&]<%lO%bT8^ctSzPOX%bZp%bqs%buz%b{}%b}!O8V!O!P8V!Q![8V![!]8V!]!^%b!`!b%b!c!}8V!}#O%b#Q#R%b#R#S9i#T#o8V#o;'S%b;'S;=`&]<%lO%bS9nVtS}!O9i!O!P9i!Q![9i![!]9i!c!}9i#R#S9i#T#o9iV:[ctSzPOX%bZp%bqs%buz%b{}%b}!O8V!O!P8V!Q![;g![!]8V!]!^%b!`!b%b!c!}8V!}#O%b#Q#R%b#R#S9i#T#o8V#o;'S%b;'S;=`&]<%lO%bV;pqjQtSzPOX%bZp%bqs%buv7Yvz%b{}%b}!O8V!O!P8V!Q![;g![!]8V!]!^%b!`!b%b!c!}8V!}#O%b#Q#R%b#R#S9i#T#V8V#V#W=w#W#X@u#X#Y=w#Y#ZCw#Z#]8V#]#^Ea#^#a8V#a#b=w#b#d8V#d#eFy#e#f8V#f#gHc#g#o8V#o;'S%b;'S;=`&]<%lO%bV>OetSzPOX%bZp%bqs%buz%b{}%b}!O8V!O!P8V!Q![8V![!]8V!]!^%b!`!b%b!c!}8V!}#O%b#Q#R%b#R#S9i#T#a8V#a#b?a#b#o8V#o;'S%b;'S;=`&]<%lO%bV?jcjQtSzPOX%bZp%bqs%buz%b{}%b}!O8V!O!P8V!Q![8V![!]8V!]!^%b!`!b%b!c!}8V!}#O%b#Q#R%b#R#S9i#T#o8V#o;'S%b;'S;=`&]<%lO%bV@|etSzPOX%bZp%bqs%buz%b{}%b}!O8V!O!P8V!Q![8V![!]8V!]!^%b!`!b%b!c!}8V!}#O%b#Q#R%b#R#S9i#T#X8V#X#YB_#Y#o8V#o;'S%b;'S;=`&]<%lO%bVBfetSzPOX%bZp%bqs%buz%b{}%b}!O8V!O!P8V!Q![8V![!]8V!]!^%b!`!b%b!c!}8V!}#O%b#Q#R%b#R#S9i#T#Z8V#Z#[?a#[#o8V#o;'S%b;'S;=`&]<%lO%bVDOetSzPOX%bZp%bqs%buz%b{}%b}!O8V!O!P8V!Q![8V![!]8V!]!^%b!`!b%b!c!}8V!}#O%b#Q#R%b#R#S9i#T#f8V#f#g?a#g#o8V#o;'S%b;'S;=`&]<%lO%bVEhetSzPOX%bZp%bqs%buz%b{}%b}!O8V!O!P8V!Q![8V![!]8V!]!^%b!`!b%b!c!}8V!}#O%b#Q#R%b#R#S9i#T#b8V#b#c?a#c#o8V#o;'S%b;'S;=`&]<%lO%bVGQetSzPOX%bZp%bqs%buz%b{}%b}!O8V!O!P8V!Q![8V![!]8V!]!^%b!`!b%b!c!}8V!}#O%b#Q#R%b#R#S9i#T#h8V#h#i?a#i#o8V#o;'S%b;'S;=`&]<%lO%bVHjftSzPOX%bZp%bqs%buz%b{}%b}!O8V!O!P8V!Q![8V![!]8V!]!^%b!`!b%b!c!}8V!}#O%b#Q#R%b#R#S9i#T#UJO#U#X8V#X#Y=w#Y#o8V#o;'S%b;'S;=`&]<%lO%bVJVetSzPOX%bZp%bqs%buz%b{}%b}!O8V!O!P8V!Q![8V![!]8V!]!^%b!`!b%b!c!}8V!}#O%b#Q#R%b#R#S9i#T#W8V#W#X?a#X#o8V#o;'S%b;'S;=`&]<%lO%bVKqqjQtSzPOX%bZp%bqs%buv7Yvz%b{}%b}!O8V!O!P:T!Q![Kh![!]8V!]!^%b!`!b%b!c!}8V!}#O%b#Q#R%b#R#S9i#T#V8V#V#W=w#W#X@u#X#Y=w#Y#ZCw#Z#]8V#]#^Ea#^#a8V#a#b=w#b#d8V#d#eFy#e#f8V#f#gHc#g#o8V#o;'S%b;'S;=`&]<%lO%b~NR[x`!c~zPOX%bZp%bqs%buz%b{!P%b!Q!^%b!`!b%b!c#O%b#Q#R%b#T;'S%b;'S;=`&]<%lO%bc! Q[!kQx`zPOX%bZp%bqs%buz%b{!P%b!Q!^%b!`!b%b!c#O%b#Q#R%b#T;'S%b;'S;=`&]<%lO%ba! }O!sPx`c!!UO!jRx`c!!_[!tQx`zPOX%bZp%bqs%buz%b{!P%b!Q!^%b!`!b%b!c#O%b#Q#R%b#T;'S%b;'S;=`&]<%lO%ba!#[O!uPx`m!#gctSvWx`zPOX%bZp%bqs%buz%b{}%b}!O!$r!O!P8V!Q![!$r![!]8V!]!^%b!`!b%b!c!}!$r!}#O%b#Q#R%b#R#S!&W#T#o!$r#o;'S%b;'S;=`&]<%lO%b]!${ctSvWzPOX%bZp%bqs%buz%b{}%b}!O!$r!O!P8V!Q![!$r![!]8V!]!^%b!`!b%b!c!}!$r!}#O%b#Q#R%b#R#S!&W#T#o!$r#o;'S%b;'S;=`&]<%lO%b[!&_VtSvW}!O!&W!O!P9i!Q![!&W![!]9i!c!}!&W#R#S!&W#T#o!&W~!&}[x`!e~zPOX%bZp%bqs%buz%b{!P%b!Q!^%b!`!b%b!c#O%b#Q#R%b#T;'S%b;'S;=`&]<%lO%ba!'zO!vPx`~!(TOx`!f~{~m!(`VtSvWx`!rP}!O!&W!O!P9i!Q![!&W![!]9i!c!}!&W#R#S!&W#T#o!&Wa!(|O!XPx`o!)XetSvWx`zPOX%bZp%bqs%buz%b{}%b}!O!$r!O!P8V!Q![!$r![!]8V!]!^%b!`!b%b!c!}!$r!}#O%b#Q#R%b#R#S!&W#T#i!$r#i#j!*j#j#o!$r#o;'S%b;'S;=`&]<%lO%b_!*setSvWzPOX%bZp%bqs%buz%b{}%b}!O!$r!O!P8V!Q![!$r![!]8V!]!^%b!`!b%b!c!}!$r!}#O%b#Q#R%b#R#S!&W#T#h!$r#h#i!,U#i#o!$r#o;'S%b;'S;=`&]<%lO%b_!,_etSvWzPOX%bZp%bqs%buz%b{}%b}!O!$r!O!P8V!Q![!$r![!]8V!]!^%b!`!b%b!c!}!$r!}#O%b#Q#R%b#R#S!&W#T#c!$r#c#d!-p#d#o!$r#o;'S%b;'S;=`&]<%lO%b_!-{ctSvWkQzPOX%bZp%bqs%buz%b{}%b}!O!$r!O!P8V!Q![!$r![!]8V!]!^%b!`!b%b!c!}!$r!}#O%b#Q#R%b#R#S!&W#T#o!$r#o;'S%b;'S;=`&]<%lO%bo!/cdtSvWx`zPOX%bZp%bqs%buz%b{}%b}!O!$r!O!P8V!Q![!$r![!]8V!]!^%b!`!b%b!c!}!$r!}#O%b#Q#R%b#R#S!&W#T#U!0q#U#o!$r#o;'S%b;'S;=`&]<%lO%b_!0zetSvWzPOX%bZp%bqs%buz%b{}%b}!O!$r!O!P8V!Q![!$r![!]8V!]!^%b!`!b%b!c!}!$r!}#O%b#Q#R%b#R#S!&W#T#`!$r#`#a!2]#a#o!$r#o;'S%b;'S;=`&]<%lO%b_!2fetSvWzPOX%bZp%bqs%buz%b{}%b}!O!$r!O!P8V!Q![!$r![!]8V!]!^%b!`!b%b!c!}!$r!}#O%b#Q#R%b#R#S!&W#T#g!$r#g#h!3w#h#o!$r#o;'S%b;'S;=`&]<%lO%b_!4QetSvWzPOX%bZp%bqs%buz%b{}%b}!O!$r!O!P8V!Q![!$r![!]8V!]!^%b!`!b%b!c!}!$r!}#O%b#Q#R%b#R#S!&W#T#X!$r#X#Y!-p#Y#o!$r#o;'S%b;'S;=`&]<%lO%bm!5netSvWx`zPOX%bZp%bqs%buz%b{}%b}!O!$r!O!P8V!Q![!$r![!]8V!]!^%b!`!b%b!c!}!$r!}#O%b#Q#R%b#R#S!&W#T#h!$r#h#i!7P#i#o!$r#o;'S%b;'S;=`&]<%lO%b]!7YetSvWzPOX%bZp%bqs%buz%b{}%b}!O!$r!O!P8V!Q![!$r![!]8V!]!^%b!`!b%b!c!}!$r!}#O%b#Q#R%b#R#S!&W#T#h!$r#h#i!8k#i#o!$r#o;'S%b;'S;=`&]<%lO%b]!8tetSvWzPOX%bZp%bqs%buz%b{}%b}!O!$r!O!P8V!Q![!$r![!]8V!]!^%b!`!b%b!c!}!$r!}#O%b#Q#R%b#R#S!&W#T#d!$r#d#e!:V#e#o!$r#o;'S%b;'S;=`&]<%lO%b]!:`etSvWzPOX%bZp%bqs%buz%b{}%b}!O!$r!O!P8V!Q![!$r![!]!;q!]!^%b!`!b%b!c!}!$r!}#O%b#Q#R%b#R#S!&W#T#g!$r#g#h!>O#h#o!$r#o;'S%b;'S;=`&]<%lO%bT!;xdtSzPOX%bZp%bqs%buz%b{}%b}!O8V!O!P8V!P!Q!=W!Q![8V![!]8V!]!^%b!`!b%b!c!}8V!}#O%b#Q#R%b#R#S9i#T#o8V#o;'S%b;'S;=`&]<%lO%bP!=ZP!P!Q!=^P!=cVyPOX!=^Zp!=^q!^!=^!_!`!=^!a;'S!=^;'S;=`!=x<%lO!=^P!={P;=`<%l!=^]!>XctSvWzPOX%bZp%bqs%buz%b{}%b}!O!$r!O!P8V!Q![!$r![!]!;q!]!^%b!`!b%b!c!}!$r!}#O%b#Q#R%b#R#S!&W#T#o!$r#o;'S%b;'S;=`&]<%lO%bo!?oetSvWx`zPOX%bZp%bqs%buz%b{}%b}!O!$r!O!P8V!Q![!$r![!]8V!]!^%b!`!b%b!c!}!$r!}#O%b#Q#R%b#R#S!&W#T#c!$r#c#d!AQ#d#o!$r#o;'S%b;'S;=`&]<%lO%b_!AZetSvWzPOX%bZp%bqs%buz%b{}%b}!O!$r!O!P8V!Q![!$r![!]8V!]!^%b!`!b%b!c!}!$r!}#O%b#Q#R%b#R#S!&W#T#b!$r#b#c!3w#c#o!$r#o;'S%b;'S;=`&]<%lO%bo!BwetSvWx`zPOX%bZp%bqs%buz%b{}%b}!O!$r!O!P8V!Q![!$r![!]8V!]!^%b!`!b%b!c!}!$r!}#O%b#Q#R%b#R#S!&W#T#f!$r#f#g!DY#g#o!$r#o;'S%b;'S;=`&]<%lO%b_!DcetSvWzPOX%bZp%bqs%buz%b{}%b}!O!$r!O!P8V!Q![!$r![!]8V!]!^%b!`!b%b!c!}!$r!}#O%b#Q#R%b#R#S!&W#T#i!$r#i#j!3w#j#o!$r#o;'S%b;'S;=`&]<%lO%bc!E}[!gQx`zPOX%bZp%bqs%buz%b{!P%b!Q!^%b!`!b%b!c#O%b#Q#R%b#T;'S%b;'S;=`&]<%lO%bc!F|[!lQx`zPOX%bZp%bqs%buz%b{!P%b!Q!^%b!`!b%b!c#O%b#Q#R%b#T;'S%b;'S;=`&]<%lO%ba!GwPx`;=`<%l$e`!HPOx`", + tokenData: "!IO~R!UOX$eXY&cYZ&cZ]$e]^'X^p$epq&cqr$ers)sst/vtu/}ux$exy0Uyz1Tz{2S{|2c|}3b}!O$e!O!P4a!P!Q5`!Q![5u![!]Nw!]!^! v!^!_!!u!_!`!!|!`!a!#T!a!b$e!b!c!$S!c!}!$Z!}#O!'s#O#P!(r#P#Q!(y#Q#R$e#R#S!)S#S#T!)t#T#U!){#U#Y!$Z#Y#Z!0V#Z#[!$Z#[#]!6b#]#b!$Z#b#c!@c#c#h!$Z#h#i!Ck#i#o!$Z#o#p!Fs#p#q$e#q#r!Gr#r;'S$e;'S;=`!Hq;=`<%l!Hy<%lO$ea$l[x`zPOX%bZp%bqs%buz%b{!P%b!Q!^%b!`!b%b!c#O%b#Q#R%b#T;'S%b;'S;=`&]<%lO%bP%g[zPOX%bZp%bqs%buz%b{!P%b!Q!^%b!`!b%b!c#O%b#Q#R%b#T;'S%b;'S;=`&]<%lO%bP&`P;=`<%l%b~&jSx`!S~XY&vYZ&v]^&vpq&v~&{S!S~XY&vYZ&v]^&vpq&v~'bax`!S~zPOX%bXY&vYZ&vZ]%b]^(g^p%bpq&vqs%buz%b{!P%b!Q!^%b!`!b%b!c#O%b#Q#R%b#T;'S%b;'S;=`&]<%lO%b~(na!S~zPOX%bXY&vYZ&vZ]%b]^(g^p%bpq&vqs%buz%b{!P%b!Q!^%b!`!b%b!c#O%b#Q#R%b#T;'S%b;'S;=`&]<%lO%b~)zgx`zPOX+cXY-PZp+cpq-Pqr+crs.ssu-Puz+cz{-P{!P+c!P!Q-P!Q!^+c!^!`-P!`!b+c!b!c-P!c#O+c#O#P-q#P#Q-P#Q#R+c#R#T-P#T;'S+c;'S;=`/p<%lO+c~+hgzPOX+cXY-PZp+cpq-Pqr+crs.ssu-Puz+cz{-P{!P+c!P!Q-P!Q!^+c!^!`-P!`!b+c!b!c-P!c#O+c#O#P-q#P#Q-P#Q#R+c#R#T-P#T;'S+c;'S;=`/p<%lO+c~-SWOY-PZr-Prs-ls#O-P#O#P-q#P;'S-P;'S;=`.m<%lO-P~-qOi~~-tRO;'S-P;'S;=`-};=`O-P~.QXOY-PZr-Prs-ls#O-P#O#P-q#P;'S-P;'S;=`.m;=`<%l-P<%lO-P~.pP;=`<%l-P~.z[i~zPOX%bZp%bqs%buz%b{!P%b!Q!^%b!`!b%b!c#O%b#Q#R%b#T;'S%b;'S;=`&]<%lO%b~/sP;=`<%l+ca/}O!YPx`c0UO!nRx`~0_[x`!`~zPOX%bZp%bqs%buz%b{!P%b!Q!^%b!`!b%b!c#O%b#Q#R%b#T;'S%b;'S;=`&]<%lO%bc1^[!oQx`zPOX%bZp%bqs%buz%b{!P%b!Q!^%b!`!b%b!c#O%b#Q#R%b#T;'S%b;'S;=`&]<%lO%bc2ZP!sPx`!P!Q2^Q2cO!WQ~2l[x`!p~zPOX%bZp%bqs%buz%b{!P%b!Q!^%b!`!b%b!c#O%b#Q#R%b#T;'S%b;'S;=`&]<%lO%bc3k[!qQx`zPOX%bZp%bqs%buz%b{!P%b!Q!^%b!`!b%b!c#O%b#Q#R%b#T;'S%b;'S;=`&]<%lO%b~4j[x`!r~zPOX%bZp%bqs%buz%b{!P%b!Q!^%b!`!b%b!c#O%b#Q#R%b#T;'S%b;'S;=`&]<%lO%ba5eQx`z{5k!P!Q5pP5pO!VPP5uO!UPg6QqjQtSx`zPOX%bZp%bqs%buv8Xvz%b{}%b}!O9U!O!P;S!Q![Lg![!]9U!]!^%b!`!b%b!c!}9U!}#O%b#Q#R%b#R#S:h#T#V9U#V#W>v#W#XAt#X#Y>v#Y#ZDv#Z#]9U#]#^F`#^#a9U#a#b>v#b#d9U#d#eGx#e#f9U#f#gIb#g#o9U#o;'S%b;'S;=`&]<%lO%bR8`[jQzPOX%bZp%bqs%buz%b{!P%b!Q!^%b!`!b%b!c#O%b#Q#R%b#T;'S%b;'S;=`&]<%lO%bT9]ctSzPOX%bZp%bqs%buz%b{}%b}!O9U!O!P9U!Q![9U![!]9U!]!^%b!`!b%b!c!}9U!}#O%b#Q#R%b#R#S:h#T#o9U#o;'S%b;'S;=`&]<%lO%bS:mVtS}!O:h!O!P:h!Q![:h![!]:h!c!}:h#R#S:h#T#o:hV;ZctSzPOX%bZp%bqs%buz%b{}%b}!O9U!O!P9U!Q![v#W#XAt#X#Y>v#Y#ZDv#Z#]9U#]#^F`#^#a9U#a#b>v#b#d9U#d#eGx#e#f9U#f#gIb#g#o9U#o;'S%b;'S;=`&]<%lO%bV>}etSzPOX%bZp%bqs%buz%b{}%b}!O9U!O!P9U!Q![9U![!]9U!]!^%b!`!b%b!c!}9U!}#O%b#Q#R%b#R#S:h#T#a9U#a#b@`#b#o9U#o;'S%b;'S;=`&]<%lO%bV@icjQtSzPOX%bZp%bqs%buz%b{}%b}!O9U!O!P9U!Q![9U![!]9U!]!^%b!`!b%b!c!}9U!}#O%b#Q#R%b#R#S:h#T#o9U#o;'S%b;'S;=`&]<%lO%bVA{etSzPOX%bZp%bqs%buz%b{}%b}!O9U!O!P9U!Q![9U![!]9U!]!^%b!`!b%b!c!}9U!}#O%b#Q#R%b#R#S:h#T#X9U#X#YC^#Y#o9U#o;'S%b;'S;=`&]<%lO%bVCeetSzPOX%bZp%bqs%buz%b{}%b}!O9U!O!P9U!Q![9U![!]9U!]!^%b!`!b%b!c!}9U!}#O%b#Q#R%b#R#S:h#T#Z9U#Z#[@`#[#o9U#o;'S%b;'S;=`&]<%lO%bVD}etSzPOX%bZp%bqs%buz%b{}%b}!O9U!O!P9U!Q![9U![!]9U!]!^%b!`!b%b!c!}9U!}#O%b#Q#R%b#R#S:h#T#f9U#f#g@`#g#o9U#o;'S%b;'S;=`&]<%lO%bVFgetSzPOX%bZp%bqs%buz%b{}%b}!O9U!O!P9U!Q![9U![!]9U!]!^%b!`!b%b!c!}9U!}#O%b#Q#R%b#R#S:h#T#b9U#b#c@`#c#o9U#o;'S%b;'S;=`&]<%lO%bVHPetSzPOX%bZp%bqs%buz%b{}%b}!O9U!O!P9U!Q![9U![!]9U!]!^%b!`!b%b!c!}9U!}#O%b#Q#R%b#R#S:h#T#h9U#h#i@`#i#o9U#o;'S%b;'S;=`&]<%lO%bVIiftSzPOX%bZp%bqs%buz%b{}%b}!O9U!O!P9U!Q![9U![!]9U!]!^%b!`!b%b!c!}9U!}#O%b#Q#R%b#R#S:h#T#UJ}#U#X9U#X#Y>v#Y#o9U#o;'S%b;'S;=`&]<%lO%bVKUetSzPOX%bZp%bqs%buz%b{}%b}!O9U!O!P9U!Q![9U![!]9U!]!^%b!`!b%b!c!}9U!}#O%b#Q#R%b#R#S:h#T#W9U#W#X@`#X#o9U#o;'S%b;'S;=`&]<%lO%bVLpqjQtSzPOX%bZp%bqs%buv8Xvz%b{}%b}!O9U!O!P;S!Q![Lg![!]9U!]!^%b!`!b%b!c!}9U!}#O%b#Q#R%b#R#S:h#T#V9U#V#W>v#W#XAt#X#Y>v#Y#ZDv#Z#]9U#]#^F`#^#a9U#a#b>v#b#d9U#d#eGx#e#f9U#f#gIb#g#o9U#o;'S%b;'S;=`&]<%lO%b~! Q[x`!c~zPOX%bZp%bqs%buz%b{!P%b!Q!^%b!`!b%b!c#O%b#Q#R%b#T;'S%b;'S;=`&]<%lO%bc!!P[!lQx`zPOX%bZp%bqs%buz%b{!P%b!Q!^%b!`!b%b!c#O%b#Q#R%b#T;'S%b;'S;=`&]<%lO%ba!!|O!uPx`c!#TO!kRx`c!#^[!vQx`zPOX%bZp%bqs%buz%b{!P%b!Q!^%b!`!b%b!c#O%b#Q#R%b#T;'S%b;'S;=`&]<%lO%ba!$ZO!wPx`m!$fctSvWx`zPOX%bZp%bqs%buz%b{}%b}!O!%q!O!P9U!Q![!%q![!]9U!]!^%b!`!b%b!c!}!%q!}#O%b#Q#R%b#R#S!'V#T#o!%q#o;'S%b;'S;=`&]<%lO%b]!%zctSvWzPOX%bZp%bqs%buz%b{}%b}!O!%q!O!P9U!Q![!%q![!]9U!]!^%b!`!b%b!c!}!%q!}#O%b#Q#R%b#R#S!'V#T#o!%q#o;'S%b;'S;=`&]<%lO%b[!'^VtSvW}!O!'V!O!P:h!Q![!'V![!]:h!c!}!'V#R#S!'V#T#o!'V~!'|[x`!f~zPOX%bZp%bqs%buz%b{!P%b!Q!^%b!`!b%b!c#O%b#Q#R%b#T;'S%b;'S;=`&]<%lO%ba!(yO!xPx`~!)SOx`!g~{~m!)_VtSvWx`!tP}!O!'V!O!P:h!Q![!'V![!]:h!c!}!'V#R#S!'V#T#o!'Va!){O!XPx`o!*WetSvWx`zPOX%bZp%bqs%buz%b{}%b}!O!%q!O!P9U!Q![!%q![!]9U!]!^%b!`!b%b!c!}!%q!}#O%b#Q#R%b#R#S!'V#T#i!%q#i#j!+i#j#o!%q#o;'S%b;'S;=`&]<%lO%b_!+retSvWzPOX%bZp%bqs%buz%b{}%b}!O!%q!O!P9U!Q![!%q![!]9U!]!^%b!`!b%b!c!}!%q!}#O%b#Q#R%b#R#S!'V#T#h!%q#h#i!-T#i#o!%q#o;'S%b;'S;=`&]<%lO%b_!-^etSvWzPOX%bZp%bqs%buz%b{}%b}!O!%q!O!P9U!Q![!%q![!]9U!]!^%b!`!b%b!c!}!%q!}#O%b#Q#R%b#R#S!'V#T#c!%q#c#d!.o#d#o!%q#o;'S%b;'S;=`&]<%lO%b_!.zctSvWkQzPOX%bZp%bqs%buz%b{}%b}!O!%q!O!P9U!Q![!%q![!]9U!]!^%b!`!b%b!c!}!%q!}#O%b#Q#R%b#R#S!'V#T#o!%q#o;'S%b;'S;=`&]<%lO%bo!0bdtSvWx`zPOX%bZp%bqs%buz%b{}%b}!O!%q!O!P9U!Q![!%q![!]9U!]!^%b!`!b%b!c!}!%q!}#O%b#Q#R%b#R#S!'V#T#U!1p#U#o!%q#o;'S%b;'S;=`&]<%lO%b_!1yetSvWzPOX%bZp%bqs%buz%b{}%b}!O!%q!O!P9U!Q![!%q![!]9U!]!^%b!`!b%b!c!}!%q!}#O%b#Q#R%b#R#S!'V#T#`!%q#`#a!3[#a#o!%q#o;'S%b;'S;=`&]<%lO%b_!3eetSvWzPOX%bZp%bqs%buz%b{}%b}!O!%q!O!P9U!Q![!%q![!]9U!]!^%b!`!b%b!c!}!%q!}#O%b#Q#R%b#R#S!'V#T#g!%q#g#h!4v#h#o!%q#o;'S%b;'S;=`&]<%lO%b_!5PetSvWzPOX%bZp%bqs%buz%b{}%b}!O!%q!O!P9U!Q![!%q![!]9U!]!^%b!`!b%b!c!}!%q!}#O%b#Q#R%b#R#S!'V#T#X!%q#X#Y!.o#Y#o!%q#o;'S%b;'S;=`&]<%lO%bm!6metSvWx`zPOX%bZp%bqs%buz%b{}%b}!O!%q!O!P9U!Q![!%q![!]9U!]!^%b!`!b%b!c!}!%q!}#O%b#Q#R%b#R#S!'V#T#h!%q#h#i!8O#i#o!%q#o;'S%b;'S;=`&]<%lO%b]!8XetSvWzPOX%bZp%bqs%buz%b{}%b}!O!%q!O!P9U!Q![!%q![!]9U!]!^%b!`!b%b!c!}!%q!}#O%b#Q#R%b#R#S!'V#T#h!%q#h#i!9j#i#o!%q#o;'S%b;'S;=`&]<%lO%b]!9setSvWzPOX%bZp%bqs%buz%b{}%b}!O!%q!O!P9U!Q![!%q![!]9U!]!^%b!`!b%b!c!}!%q!}#O%b#Q#R%b#R#S!'V#T#d!%q#d#e!;U#e#o!%q#o;'S%b;'S;=`&]<%lO%b]!;_etSvWzPOX%bZp%bqs%buz%b{}%b}!O!%q!O!P9U!Q![!%q![!]!}#h#o!%q#o;'S%b;'S;=`&]<%lO%bT!V!Q![9U![!]9U!]!^%b!`!b%b!c!}9U!}#O%b#Q#R%b#R#S:h#T#o9U#o;'S%b;'S;=`&]<%lO%bP!>YP!P!Q!>]P!>bVyPOX!>]Zp!>]q!^!>]!_!`!>]!a;'S!>];'S;=`!>w<%lO!>]P!>zP;=`<%l!>]]!?WctSvWzPOX%bZp%bqs%buz%b{}%b}!O!%q!O!P9U!Q![!%q![!]!