rip-lang 3.7.3 → 3.7.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,36 +1,32 @@
1
- var L1=new Set(["html","head","title","base","link","meta","style","body","address","article","aside","footer","header","h1","h2","h3","h4","h5","h6","main","nav","section","blockquote","dd","div","dl","dt","figcaption","figure","hr","li","ol","p","pre","ul","a","abbr","b","bdi","bdo","br","cite","code","data","dfn","em","i","kbd","mark","q","rp","rt","ruby","s","samp","small","span","strong","sub","sup","time","u","var","wbr","area","audio","img","map","track","video","embed","iframe","object","param","picture","portal","source","svg","math","canvas","noscript","script","del","ins","caption","col","colgroup","table","tbody","td","tfoot","th","thead","tr","button","datalist","fieldset","form","input","label","legend","meter","optgroup","option","output","progress","select","textarea","details","dialog","menu","summary","slot","template"]),f1=new Set(["svg","g","defs","symbol","use","marker","clipPath","mask","pattern","circle","ellipse","line","path","polygon","polyline","rect","text","textPath","tspan","linearGradient","radialGradient","stop","filter","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","animate","animateMotion","animateTransform","set","mpath","desc","foreignObject","image","metadata","switch","title","view"]),n=new Set([...L1,...f1]);function X1(Y){let W=Y.prototype;W.rewriteTypes=function(){let F=this.tokens,U=(A,$,Q)=>{let J=[A,$];if(J.pre=0,J.data=null,J.loc=Q?.loc??{r:0,c:0,n:0},J.spaced=!1,J.newLine=!1,J.generated=!0,Q)J.origin=Q;return J};this.scanTokens((A,$,Q)=>{let J=A[0];if(J==="IDENTIFIER"){let Z=Q[$+1];if(Z&&Z[0]==="COMPARE"&&Z[1]==="<"&&!Z.spaced){let K=Q[$-1]?.[0]==="DEF",X=u1(Q,$+1);if(X){let M=!K&&Q[$+1+X.length]?.[0]==="TYPE_ALIAS";if(K||M){if(!A.data)A.data={};if(A.data.typeParams=l(X),Q.splice($+1,X.length),K&&Q[$+1]?.[0]==="("){Q[$+1][0]="CALL_START";let R=1,D=$+2;while(D<Q.length&&R>0){if(Q[D][0]==="("||Q[D][0]==="CALL_START")R++;if(Q[D][0]===")"||Q[D][0]==="CALL_END")R--;if(R===0)Q[D][0]="CALL_END";D++}}}}}}if(J==="TYPE_ANNOTATION"){let Z=Q[$-1];if(!Z)return 1;let K=Z1(Q,$+1),X=l(K),M=Z,R="type";if(Z[0]==="CALL_END"||Z[0]===")"){let z=1,q=$-2;while(q>=0&&z>0){let H=Q[q][0];if(H==="CALL_END"||H===")")z++;if(H==="CALL_START"||H==="(")z--;q--}if(q>=0)M=Q[q];R="returnType"}else if(Z[0]==="PARAM_END"){let z=$+1+K.length,q=Q[z];if(q&&(q[0]==="->"||q[0]==="=>"))M=q;R="returnType"}else if(Z[0]==="IDENTIFIER"&&$>=2&&Q[$-2]?.[0]==="DEF")R="returnType";if(!M.data)M.data={};M.data[R]=X;let D=1+K.length;return Q.splice($,D),0}if(J==="TYPE_ALIAS"){let Z=Q[$-1];if(!Z)return 1;let K=Z[1],X=$>=2&&Q[$-2]?.[0]==="EXPORT",M=X?$-2:$-1,R=Q[$+1],D=(q)=>{let H=U("TYPE_DECL",K,Z);if(H.data={name:K,typeText:q,exported:X},Z.data?.typeParams)H.data.typeParams=Z.data.typeParams;return H};if(R&&R[0]==="IDENTIFIER"&&R[1]==="type"&&Q[$+2]?.[0]==="INDENT"){let q=$1(Q,$+2);return Q.splice(M,q-M+1,D(J1(Q,$+2))),0}if(R&&(R[0]==="TERMINATOR"||R[0]==="INDENT")){let q=V1(Q,$+1);if(q)return Q.splice(M,q.endIdx-M+1,D(q.typeText)),0}let z=Z1(Q,$+1);return Q.splice(M,$+1+z.length-M,D(l(z))),0}if(J==="INTERFACE"){let Z=$>=1&&Q[$-1]?.[0]==="EXPORT",K=$+1,X=Q[K];if(!X)return 1;let M=X[1],R=null,D=K+1;if(Q[D]?.[0]==="EXTENDS")R=Q[D+1]?.[1],D=D+2;if(Q[D]?.[0]==="INDENT"){let z=J1(Q,D),q=$1(Q,D),H=U("TYPE_DECL",M,X);H.data={name:M,kind:"interface",extends:R,typeText:z,exported:Z};let G=Z?$-1:$,I=q-G+1;return Q.splice(G,I,H),0}return 1}return 1})}}function Z1(Y,W){let F=[],U=0;while(W<Y.length){let A=Y[W],$=A[0],Q=$==="("||$==="["||$==="CALL_START"||$==="PARAM_START"||$==="INDEX_START"||$==="COMPARE"&&A[1]==="<",J=$===")"||$==="]"||$==="CALL_END"||$==="PARAM_END"||$==="INDEX_END"||$==="COMPARE"&&A[1]===">";if($==="SHIFT"&&A[1]===">>"&&U>=2){U-=2,F.push(A),W++;continue}if(Q){U++,F.push(A),W++;continue}if(J){if(U>0){U--,F.push(A),W++;continue}break}if(U===0){if($==="="||$==="REACTIVE_ASSIGN"||$==="COMPUTED_ASSIGN"||$==="READONLY_ASSIGN"||$==="REACT_ASSIGN"||$==="TERMINATOR"||$==="INDENT"||$==="OUTDENT"||$==="->"||$===",")break}F.push(A),W++}return F}function l(Y){if(Y.length===0)return"";if(Y[0]?.[0]==="=>")Y.unshift(["","()"]);let W=Y.map((F)=>F[1]).join(" ").replace(/\s+/g," ").trim();return W=W.replace(/\s*<\s*/g,"<").replace(/\s*>\s*/g,">").replace(/\s*\[\s*/g,"[").replace(/\s*\]\s*/g,"]").replace(/\s*\(\s*/g,"(").replace(/\s*\)\s*/g,")").replace(/\s*,\s*/g,", ").replace(/\s*=>\s*/g," => ").replace(/ :: /g,": ").replace(/:: /g,": "),W}function u1(Y,W){if(W>=Y.length)return null;let F=Y[W];if(F[0]!=="COMPARE"||F[1]!=="<")return null;let U=[F],A=1,$=W+1;while($<Y.length&&A>0){let Q=Y[$];if(U.push(Q),Q[0]==="COMPARE"&&Q[1]==="<")A++;else if(Q[0]==="COMPARE"&&Q[1]===">")A--;$++}return A===0?U:null}function J1(Y,W){let F=[],U=W+1,A=1;while(U<Y.length&&A>0){let $=Y[U];if($[0]==="INDENT"){A++,U++;continue}if($[0]==="OUTDENT"){if(A--,A===0)break;U++;continue}if($[0]==="TERMINATOR"){U++;continue}if(A===1&&($[0]==="PROPERTY"||$[0]==="IDENTIFIER")){let Q=$[1],J=!1,Z=!1;if(U++,Q==="readonly"&&(Y[U]?.[0]==="PROPERTY"||Y[U]?.[0]==="IDENTIFIER")){if(Z=!0,Q=Y[U][1],Y[U].data?.predicate)J=!0;U++}if($.data?.predicate)J=!0;if(Y[U]?.[1]==="?"&&!Y[U]?.spaced)J=!0,U++;if(Y[U]?.[1]===":"||Y[U]?.[0]==="TYPE_ANNOTATION")U++;let K=[],X=0;while(U<Y.length){let z=Y[U];if(z[0]==="INDENT"){X++,U++;continue}if(z[0]==="OUTDENT"){if(X>0){X--,U++;continue}break}if(z[0]==="TERMINATOR"&&X===0)break;K.push(z),U++}let M=l(K),R=Z?"readonly ":"",D=J?"?":"";F.push(`${R}${Q}${D}: ${M}`)}else U++}return"{ "+F.join("; ")+" }"}function $1(Y,W){let F=0;for(let U=W;U<Y.length;U++){if(Y[U][0]==="INDENT")F++;if(Y[U][0]==="OUTDENT"){if(F--,F===0)return U}}return Y.length-1}function V1(Y,W){let F=W;if(Y[F]?.[0]==="TERMINATOR")F++;if(Y[F]?.[0]!=="INDENT")return null;let U=F;F++;while(F<Y.length&&Y[F][0]==="TERMINATOR")F++;if(!Y[F]||Y[F][1]!=="|")return null;let A=[],$=1;F=U+1;while(F<Y.length&&$>0){let J=Y[F];if(J[0]==="INDENT"){$++,F++;continue}if(J[0]==="OUTDENT"){if($--,$===0)break;F++;continue}if(J[0]==="TERMINATOR"){F++;continue}if(J[1]==="|"&&$===1){F++;let Z=[];while(F<Y.length){let K=Y[F];if(K[0]==="TERMINATOR"||K[0]==="OUTDENT"||K[1]==="|"&&$===1)break;Z.push(K),F++}if(Z.length>0)A.push(l(Z));continue}F++}if(A.length===0)return null;let Q=$1(Y,U);return{typeText:A.join(" | "),endIdx:Q}}function Y1(Y,W=null){let F=[],U=0,A=" ",$=()=>A.repeat(U),Q=!1,J=!1,Z=!1,K=(D,z,q)=>{if(z.startsWith("{ ")&&z.endsWith(" }")){let H=z.slice(2,-2).split("; ").filter((G)=>G.trim());if(H.length>0){F.push(`${$()}${D}{`),U++;for(let G of H)F.push(`${$()}${G};`);U--,F.push(`${$()}}${q}`);return}}F.push(`${$()}${D}${z}${q}`)},X=(D,z)=>{let q=[],H=z,G=D[H]?.[0];if(G!=="CALL_START"&&G!=="PARAM_START")return{params:q,endIdx:H};let I=G==="CALL_START"?"CALL_END":"PARAM_END";H++;let P=0;while(H<D.length&&!(D[H][0]===I&&P===0)){let B=D[H];if(B[1]===","&&P===0){H++;continue}if(B[0]==="{"||B[0]==="["||B[0]==="CALL_START"||B[0]==="PARAM_START"||B[0]==="INDEX_START")P++;if(B[0]==="}"||B[0]==="]"||B[0]==="CALL_END"||B[0]==="PARAM_END"||B[0]==="INDEX_END"){P--,H++;continue}if(B[0]==="@"){if(H++,D[H]?.[0]==="PROPERTY"||D[H]?.[0]==="IDENTIFIER"){let _=D[H][1],w=D[H].data?.type;q.push(w?`${_}: ${C(w)}`:_),H++}continue}if(B[0]==="SPREAD"||B[1]==="..."){if(H++,D[H]?.[0]==="IDENTIFIER"){let _=D[H][1],w=D[H].data?.type;q.push(w?`...${_}: ${C(w)}`:`...${_}: any[]`),H++}continue}if(B[0]==="{"){let _="{";H++;let w=1;while(H<D.length&&w>0){if(D[H][0]==="{")w++;if(D[H][0]==="}")w--;if(w>0)_+=D[H][1]+(D[H+1]?.[0]==="}"?"":", ");H++}_+="}";let O=D[H-1]?.data?.type;q.push(O?`${_}: ${C(O)}`:_);continue}if(B[0]==="IDENTIFIER"){let _=B[1],w=B.data?.type,O=!1;if(D[H+1]?.[0]==="=")O=!0;if(w)q.push(`${_}${O?"?":""}: ${C(w)}`);else q.push(_);if(H++,O){H++;let N=0;while(H<D.length){let E=D[H];if(E[0]==="("||E[0]==="["||E[0]==="{")N++;if(E[0]===")"||E[0]==="]"||E[0]==="}")N--;if(N===0&&(E[1]===","||E[0]==="CALL_END"))break;H++}}continue}H++}return{params:q,endIdx:H}};for(let D=0;D<Y.length;D++){let z=Y[D],q=z[0],H=!1;if(q==="EXPORT"){if(H=!0,D++,D>=Y.length)break;if(z=Y[D],q=z[0],q==="DEFAULT"){if(D++,D>=Y.length)break;if(z=Y[D],q=z[0],q==="IDENTIFIER")F.push(`${$()}export default ${z[1]};`);continue}}if(q==="IMPORT"){let G=[],I=D+1;while(I<Y.length&&Y[I][0]!=="TERMINATOR")G.push(Y[I]),I++;let P="import "+G.map((B)=>B[1]).join(" ");P=P.replace(/\s+/g," ").replace(/\s*,\s*/g,", ").replace(/\{\s*/g,"{ ").replace(/\s*\}/g," }").trim(),F.push(`${$()}${P};`),D=I;continue}if(q==="TYPE_DECL"){let G=z.data;if(!G)continue;let I=H||G.exported?"export ":"",P=G.typeParams||"";if(G.kind==="interface"){let B=G.extends?` extends ${G.extends}`:"";K(`${I}interface ${G.name}${P}${B} `,G.typeText||"{}","")}else{let B=C(G.typeText||"");K(`${I}type ${G.name}${P} = `,B,";")}continue}if(q==="ENUM"){let G=H?"export ":"",I=Y[D+1];if(!I)continue;let P=I[1],B=D+2;if(Y[B]?.[0]==="INDENT"){F.push(`${$()}${G}enum ${P} {`),U++,B++;let _=[];while(B<Y.length&&Y[B][0]!=="OUTDENT"){if(Y[B][0]==="TERMINATOR"){B++;continue}if(Y[B][0]==="IDENTIFIER"){let w=Y[B][1];if(B++,Y[B]?.[1]==="="){B++;let O=Y[B]?.[1];_.push(`${w} = ${O}`),B++}else _.push(w)}else B++}for(let w=0;w<_.length;w++){let O=w<_.length-1?",":"";F.push(`${$()}${_[w]}${O}`)}U--,F.push(`${$()}}`)}continue}if(q==="CLASS"){let G=H?"export ":"",I=Y[D+1];if(!I)continue;let P=I[1],B="",_=D+2;if(Y[_]?.[0]==="EXTENDS")B=` extends ${Y[_+1]?.[1]||""}`,_+=2;if(Y[_]?.[0]==="INDENT"){let w=!1,O=_+1;while(O<Y.length&&Y[O][0]!=="OUTDENT"){if(Y[O].data?.type||Y[O].data?.returnType){w=!0;break}O++}if(w)F.push(`${$()}${G}declare class ${P}${B} {`),Q=!0,U++}continue}if(q==="DEF"){let G=Y[D+1];if(!G)continue;let I=G[1],P=G.data?.returnType,B=G.data?.typeParams||"",{params:_,endIdx:w}=X(Y,D+2);if(P||_.some((O)=>O.includes(":"))){let O=H?"export ":"",N=Q?"":H?"":"declare ",E=P?`: ${C(P)}`:"",T=_.join(", ");if(Q)F.push(`${$()}${I}${B}(${T})${E};`);else F.push(`${$()}${O}${N}function ${I}${B}(${T})${E};`)}continue}if(q==="{"&&Q){let G=D+1,I=1;while(G<Y.length&&I>0){let P=Y[G];if(P[0]==="{"){I++,G++;continue}if(P[0]==="}"){I--,G++;continue}if(P[0]==="TERMINATOR"){G++;continue}if(P[0]==="PROPERTY"&&I===1){let B=P[1],_=P.data?.returnType;if(G++,Y[G]?.[1]===":")G++;let w=[];if(Y[G]?.[0]==="PARAM_START"){let O=X(Y,G);w=O.params,G=O.endIdx+1}if(Y[G]?.[0]==="->"||Y[G]?.[0]==="=>")G++;if(Y[G]?.[0]==="INDENT"){let O=1;G++;while(G<Y.length&&O>0){if(Y[G][0]==="INDENT")O++;if(Y[G][0]==="OUTDENT")O--;G++}}if(_||w.some((O)=>O.includes(":"))){let O=_?`: ${C(_)}`:"",N=w.join(", ");F.push(`${$()}${B}(${N})${O};`)}continue}G++}D=G-1;continue}if(q==="INDENT")continue;if(q==="OUTDENT"){if(Q)U--,F.push(`${$()}}`),Q=!1;continue}if(q==="IDENTIFIER"&&!Q&&Y[D+1]?.[0]==="="&&(Y[D+2]?.[0]==="PARAM_START"||Y[D+2]?.[0]==="(")){let G=z[1],I=D+2,{params:P}=X(Y,I),B=I,_=0;while(B<Y.length){if(Y[B][0]==="PARAM_START"||Y[B][0]==="(")_++;if(Y[B][0]==="PARAM_END"||Y[B][0]===")")_--;if(_===0&&(Y[B][0]==="->"||Y[B][0]==="=>"))break;B++}let w=Y[B]?.data?.returnType;if(w||P.some((O)=>O.includes(":"))){let O=H?"export ":"",N=H?"":"declare ",E=w?`: ${C(w)}`:"",T=P.join(", ");F.push(`${$()}${O}${N}function ${G}(${T})${E};`);continue}}if(q==="IDENTIFIER"&&z.data?.type){let G=z[1],I=C(z.data.type),P=Y[D+1];if(P){let B=H?"export ":"",_=H?"":"declare ";if(P[0]==="READONLY_ASSIGN")F.push(`${$()}${B}${_}const ${G}: ${I};`);else if(P[0]==="REACTIVE_ASSIGN")J=!0,F.push(`${$()}${B}${_}const ${G}: Signal<${I}>;`);else if(P[0]==="COMPUTED_ASSIGN")Z=!0,F.push(`${$()}${B}${_}const ${G}: Computed<${I}>;`);else if(P[0]==="REACT_ASSIGN")F.push(`${$()}${B}${_}const ${G}: () => void;`);else if(P[0]==="="){let w=D+2;if(Y[w]?.[0]==="PARAM_START"){let N=1,E=w+1;while(E<Y.length&&N>0){if(Y[E][0]==="PARAM_START")N++;if(Y[E][0]==="PARAM_END")N--;E++}w=E}let O=Y[w];if(O&&(O[0]==="->"||O[0]==="=>")&&O.data?.returnType){let N=C(O.data.returnType),{params:E}=X(Y,D+2),T=E.join(", ");F.push(`${$()}${B}${_}function ${G}(${T}): ${N};`)}else if(Q)F.push(`${$()}${G}: ${I};`);else F.push(`${$()}${B}let ${G}: ${I};`)}else if(Q)F.push(`${$()}${G}: ${I};`)}else if(Q)F.push(`${$()}${G}: ${I};`)}}let M=new Set;if(W){if(A1(W,F,$,U,M),M.size>0)for(let D=F.length-1;D>=0;D--){let z=F[D].match(/(?:declare |export )*(?:const|let) (\w+)/);if(z&&M.has(z[1]))F.splice(D,1)}}if(F.length===0)return null;let R=[];if(J)R.push("interface Signal<T> { value: T; read(): T; lock(): Signal<T>; free(): Signal<T>; kill(): T; }");if(Z)R.push("interface Computed<T> { readonly value: T; read(): T; lock(): Computed<T>; free(): Computed<T>; kill(): T; }");if(R.length>0)R.push("");return R.concat(F).join(`
1
+ var f1=new Set(["html","head","title","base","link","meta","style","body","address","article","aside","footer","header","h1","h2","h3","h4","h5","h6","main","nav","section","blockquote","dd","div","dl","dt","figcaption","figure","hr","li","ol","p","pre","ul","a","abbr","b","bdi","bdo","br","cite","code","data","dfn","em","i","kbd","mark","q","rp","rt","ruby","s","samp","small","span","strong","sub","sup","time","u","var","wbr","area","audio","img","map","track","video","embed","iframe","object","param","picture","portal","source","svg","math","canvas","noscript","script","del","ins","caption","col","colgroup","table","tbody","td","tfoot","th","thead","tr","button","datalist","fieldset","form","input","label","legend","meter","optgroup","option","output","progress","select","textarea","details","dialog","menu","summary","slot","template"]),V1=new Set(["svg","g","defs","symbol","use","marker","clipPath","mask","pattern","circle","ellipse","line","path","polygon","polyline","rect","text","textPath","tspan","linearGradient","radialGradient","stop","filter","feBlend","feColorMatrix","feComponentTransfer","feComposite","feConvolveMatrix","feDiffuseLighting","feDisplacementMap","feDistantLight","feDropShadow","feFlood","feFuncA","feFuncB","feFuncG","feFuncR","feGaussianBlur","feImage","feMerge","feMergeNode","feMorphology","feOffset","fePointLight","feSpecularLighting","feSpotLight","feTile","feTurbulence","animate","animateMotion","animateTransform","set","mpath","desc","foreignObject","image","metadata","switch","title","view"]),n=new Set([...f1,...V1]);function K1(Y){let W=Y.prototype;W.rewriteTypes=function(){let F=this.tokens,U=(A,$,Q)=>{let J=[A,$];if(J.pre=0,J.data=null,J.loc=Q?.loc??{r:0,c:0,n:0},J.spaced=!1,J.newLine=!1,J.generated=!0,Q)J.origin=Q;return J};this.scanTokens((A,$,Q)=>{let J=A[0];if(J==="IDENTIFIER"){let Z=Q[$+1];if(Z&&Z[0]==="COMPARE"&&Z[1]==="<"&&!Z.spaced){let K=Q[$-1]?.[0]==="DEF",X=u1(Q,$+1);if(X){let z=!K&&Q[$+1+X.length]?.[0]==="TYPE_ALIAS";if(K||z){if(!A.data)A.data={};if(A.data.typeParams=m(X),Q.splice($+1,X.length),K&&Q[$+1]?.[0]==="("){Q[$+1][0]="CALL_START";let R=1,D=$+2;while(D<Q.length&&R>0){if(Q[D][0]==="("||Q[D][0]==="CALL_START")R++;if(Q[D][0]===")"||Q[D][0]==="CALL_END")R--;if(R===0)Q[D][0]="CALL_END";D++}}}}}}if(J==="TYPE_ANNOTATION"){let Z=Q[$-1];if(!Z)return 1;let K=J1(Q,$+1),X=m(K),z=Z,R="type";if(Z[0]==="CALL_END"||Z[0]===")"){let G=1,M=$-2;while(M>=0&&G>0){let q=Q[M][0];if(q==="CALL_END"||q===")")G++;if(q==="CALL_START"||q==="(")G--;M--}if(M>=0)z=Q[M];R="returnType"}else if(Z[0]==="PARAM_END"){let G=$+1+K.length,M=Q[G];if(M&&(M[0]==="->"||M[0]==="=>"))z=M;R="returnType"}else if(Z[0]==="IDENTIFIER"&&$>=2&&Q[$-2]?.[0]==="DEF")R="returnType";if(!z.data)z.data={};z.data[R]=X;let D=1+K.length;return Q.splice($,D),0}if(J==="TYPE_ALIAS"){let Z=Q[$-1];if(!Z)return 1;let K=Z[1],X=$>=2&&Q[$-2]?.[0]==="EXPORT",z=X?$-2:$-1,R=Q[$+1],D=(M)=>{let q=U("TYPE_DECL",K,Z);if(q.data={name:K,typeText:M,exported:X},Z.data?.typeParams)q.data.typeParams=Z.data.typeParams;return q};if(R&&R[0]==="IDENTIFIER"&&R[1]==="type"&&Q[$+2]?.[0]==="INDENT"){let M=$1(Q,$+2);return Q.splice(z,M-z+1,D(X1(Q,$+2))),0}if(R&&(R[0]==="TERMINATOR"||R[0]==="INDENT")){let M=j1(Q,$+1);if(M)return Q.splice(z,M.endIdx-z+1,D(M.typeText)),0}let G=J1(Q,$+1);return Q.splice(z,$+1+G.length-z,D(m(G))),0}if(J==="INTERFACE"){let Z=$>=1&&Q[$-1]?.[0]==="EXPORT",K=$+1,X=Q[K];if(!X)return 1;let z=X[1],R=null,D=K+1;if(Q[D]?.[0]==="EXTENDS")R=Q[D+1]?.[1],D=D+2;if(Q[D]?.[0]==="INDENT"){let G=X1(Q,D),M=$1(Q,D),q=U("TYPE_DECL",z,X);q.data={name:z,kind:"interface",extends:R,typeText:G,exported:Z};let H=Z?$-1:$,I=M-H+1;return Q.splice(H,I,q),0}return 1}return 1})}}function J1(Y,W){let F=[],U=0;while(W<Y.length){let A=Y[W],$=A[0],Q=$==="("||$==="["||$==="CALL_START"||$==="PARAM_START"||$==="INDEX_START"||$==="COMPARE"&&A[1]==="<",J=$===")"||$==="]"||$==="CALL_END"||$==="PARAM_END"||$==="INDEX_END"||$==="COMPARE"&&A[1]===">";if($==="SHIFT"&&A[1]===">>"&&U>=2){U-=2,F.push(A),W++;continue}if(Q){U++,F.push(A),W++;continue}if(J){if(U>0){U--,F.push(A),W++;continue}break}if(U===0){if($==="="||$==="REACTIVE_ASSIGN"||$==="COMPUTED_ASSIGN"||$==="READONLY_ASSIGN"||$==="REACT_ASSIGN"||$==="TERMINATOR"||$==="INDENT"||$==="OUTDENT"||$==="->"||$===",")break}F.push(A),W++}return F}function m(Y){if(Y.length===0)return"";if(Y[0]?.[0]==="=>")Y.unshift(["","()"]);let W=Y.map((F)=>F[1]).join(" ").replace(/\s+/g," ").trim();return W=W.replace(/\s*<\s*/g,"<").replace(/\s*>\s*/g,">").replace(/\s*\[\s*/g,"[").replace(/\s*\]\s*/g,"]").replace(/\s*\(\s*/g,"(").replace(/\s*\)\s*/g,")").replace(/\s*,\s*/g,", ").replace(/\s*=>\s*/g," => ").replace(/ :: /g,": ").replace(/:: /g,": "),W}function u1(Y,W){if(W>=Y.length)return null;let F=Y[W];if(F[0]!=="COMPARE"||F[1]!=="<")return null;let U=[F],A=1,$=W+1;while($<Y.length&&A>0){let Q=Y[$];if(U.push(Q),Q[0]==="COMPARE"&&Q[1]==="<")A++;else if(Q[0]==="COMPARE"&&Q[1]===">")A--;$++}return A===0?U:null}function X1(Y,W){let F=[],U=W+1,A=1;while(U<Y.length&&A>0){let $=Y[U];if($[0]==="INDENT"){A++,U++;continue}if($[0]==="OUTDENT"){if(A--,A===0)break;U++;continue}if($[0]==="TERMINATOR"){U++;continue}if(A===1&&($[0]==="PROPERTY"||$[0]==="IDENTIFIER")){let Q=$[1],J=!1,Z=!1;if(U++,Q==="readonly"&&(Y[U]?.[0]==="PROPERTY"||Y[U]?.[0]==="IDENTIFIER")){if(Z=!0,Q=Y[U][1],Y[U].data?.predicate)J=!0;U++}if($.data?.predicate)J=!0;if(Y[U]?.[1]==="?"&&!Y[U]?.spaced)J=!0,U++;if(Y[U]?.[1]===":"||Y[U]?.[0]==="TYPE_ANNOTATION")U++;let K=[],X=0;while(U<Y.length){let G=Y[U];if(G[0]==="INDENT"){X++,U++;continue}if(G[0]==="OUTDENT"){if(X>0){X--,U++;continue}break}if(G[0]==="TERMINATOR"&&X===0)break;K.push(G),U++}let z=m(K),R=Z?"readonly ":"",D=J?"?":"";F.push(`${R}${Q}${D}: ${z}`)}else U++}return"{ "+F.join("; ")+" }"}function $1(Y,W){let F=0;for(let U=W;U<Y.length;U++){if(Y[U][0]==="INDENT")F++;if(Y[U][0]==="OUTDENT"){if(F--,F===0)return U}}return Y.length-1}function j1(Y,W){let F=W;if(Y[F]?.[0]==="TERMINATOR")F++;if(Y[F]?.[0]!=="INDENT")return null;let U=F;F++;while(F<Y.length&&Y[F][0]==="TERMINATOR")F++;if(!Y[F]||Y[F][1]!=="|")return null;let A=[],$=1;F=U+1;while(F<Y.length&&$>0){let J=Y[F];if(J[0]==="INDENT"){$++,F++;continue}if(J[0]==="OUTDENT"){if($--,$===0)break;F++;continue}if(J[0]==="TERMINATOR"){F++;continue}if(J[1]==="|"&&$===1){F++;let Z=[];while(F<Y.length){let K=Y[F];if(K[0]==="TERMINATOR"||K[0]==="OUTDENT"||K[1]==="|"&&$===1)break;Z.push(K),F++}if(Z.length>0)A.push(m(Z));continue}F++}if(A.length===0)return null;let Q=$1(Y,U);return{typeText:A.join(" | "),endIdx:Q}}function Y1(Y,W=null){let F=[],U=0,A=" ",$=()=>A.repeat(U),Q=!1,J=!1,Z=!1,K=(D,G,M)=>{if(G.startsWith("{ ")&&G.endsWith(" }")){let q=G.slice(2,-2).split("; ").filter((H)=>H.trim());if(q.length>0){F.push(`${$()}${D}{`),U++;for(let H of q)F.push(`${$()}${H};`);U--,F.push(`${$()}}${M}`);return}}F.push(`${$()}${D}${G}${M}`)},X=(D,G)=>{let M=[],q=G,H=D[q]?.[0];if(H!=="CALL_START"&&H!=="PARAM_START")return{params:M,endIdx:q};let I=H==="CALL_START"?"CALL_END":"PARAM_END";q++;let B=0;while(q<D.length&&!(D[q][0]===I&&B===0)){let P=D[q];if(P[1]===","&&B===0){q++;continue}if(P[0]==="{"||P[0]==="["||P[0]==="CALL_START"||P[0]==="PARAM_START"||P[0]==="INDEX_START")B++;if(P[0]==="}"||P[0]==="]"||P[0]==="CALL_END"||P[0]==="PARAM_END"||P[0]==="INDEX_END"){B--,q++;continue}if(P[0]==="@"){if(q++,D[q]?.[0]==="PROPERTY"||D[q]?.[0]==="IDENTIFIER"){let _=D[q][1],w=D[q].data?.type;M.push(w?`${_}: ${C(w)}`:_),q++}continue}if(P[0]==="SPREAD"||P[1]==="..."){if(q++,D[q]?.[0]==="IDENTIFIER"){let _=D[q][1],w=D[q].data?.type;M.push(w?`...${_}: ${C(w)}`:`...${_}: any[]`),q++}continue}if(P[0]==="{"){let _="{";q++;let w=1;while(q<D.length&&w>0){if(D[q][0]==="{")w++;if(D[q][0]==="}")w--;if(w>0)_+=D[q][1]+(D[q+1]?.[0]==="}"?"":", ");q++}_+="}";let O=D[q-1]?.data?.type;M.push(O?`${_}: ${C(O)}`:_);continue}if(P[0]==="IDENTIFIER"){let _=P[1],w=P.data?.type,O=!1;if(D[q+1]?.[0]==="=")O=!0;if(w)M.push(`${_}${O?"?":""}: ${C(w)}`);else M.push(_);if(q++,O){q++;let N=0;while(q<D.length){let E=D[q];if(E[0]==="("||E[0]==="["||E[0]==="{")N++;if(E[0]===")"||E[0]==="]"||E[0]==="}")N--;if(N===0&&(E[1]===","||E[0]==="CALL_END"))break;q++}}continue}q++}return{params:M,endIdx:q}};for(let D=0;D<Y.length;D++){let G=Y[D],M=G[0],q=!1;if(M==="EXPORT"){if(q=!0,D++,D>=Y.length)break;if(G=Y[D],M=G[0],M==="DEFAULT"){if(D++,D>=Y.length)break;if(G=Y[D],M=G[0],M==="IDENTIFIER")F.push(`${$()}export default ${G[1]};`);continue}}if(M==="IMPORT"){let H=[],I=D+1;while(I<Y.length&&Y[I][0]!=="TERMINATOR")H.push(Y[I]),I++;let B="import "+H.map((P)=>P[1]).join(" ");B=B.replace(/\s+/g," ").replace(/\s*,\s*/g,", ").replace(/\{\s*/g,"{ ").replace(/\s*\}/g," }").trim(),F.push(`${$()}${B};`),D=I;continue}if(M==="TYPE_DECL"){let H=G.data;if(!H)continue;let I=q||H.exported?"export ":"",B=H.typeParams||"";if(H.kind==="interface"){let P=H.extends?` extends ${H.extends}`:"";K(`${I}interface ${H.name}${B}${P} `,H.typeText||"{}","")}else{let P=C(H.typeText||"");K(`${I}type ${H.name}${B} = `,P,";")}continue}if(M==="ENUM"){let H=q?"export ":"",I=Y[D+1];if(!I)continue;let B=I[1],P=D+2;if(Y[P]?.[0]==="INDENT"){F.push(`${$()}${H}enum ${B} {`),U++,P++;let _=[];while(P<Y.length&&Y[P][0]!=="OUTDENT"){if(Y[P][0]==="TERMINATOR"){P++;continue}if(Y[P][0]==="IDENTIFIER"){let w=Y[P][1];if(P++,Y[P]?.[1]==="="){P++;let O=Y[P]?.[1];_.push(`${w} = ${O}`),P++}else _.push(w)}else P++}for(let w=0;w<_.length;w++){let O=w<_.length-1?",":"";F.push(`${$()}${_[w]}${O}`)}U--,F.push(`${$()}}`)}continue}if(M==="CLASS"){let H=q?"export ":"",I=Y[D+1];if(!I)continue;let B=I[1],P="",_=D+2;if(Y[_]?.[0]==="EXTENDS")P=` extends ${Y[_+1]?.[1]||""}`,_+=2;if(Y[_]?.[0]==="INDENT"){let w=!1,O=_+1;while(O<Y.length&&Y[O][0]!=="OUTDENT"){if(Y[O].data?.type||Y[O].data?.returnType){w=!0;break}O++}if(w)F.push(`${$()}${H}declare class ${B}${P} {`),Q=!0,U++}continue}if(M==="DEF"){let H=Y[D+1];if(!H)continue;let I=H[1],B=H.data?.returnType,P=H.data?.typeParams||"",{params:_,endIdx:w}=X(Y,D+2);if(B||_.some((O)=>O.includes(":"))){let O=q?"export ":"",N=Q?"":q?"":"declare ",E=B?`: ${C(B)}`:"",T=_.join(", ");if(Q)F.push(`${$()}${I}${P}(${T})${E};`);else F.push(`${$()}${O}${N}function ${I}${P}(${T})${E};`)}continue}if(M==="{"&&Q){let H=D+1,I=1;while(H<Y.length&&I>0){let B=Y[H];if(B[0]==="{"){I++,H++;continue}if(B[0]==="}"){I--,H++;continue}if(B[0]==="TERMINATOR"){H++;continue}if(B[0]==="PROPERTY"&&I===1){let P=B[1],_=B.data?.returnType;if(H++,Y[H]?.[1]===":")H++;let w=[];if(Y[H]?.[0]==="PARAM_START"){let O=X(Y,H);w=O.params,H=O.endIdx+1}if(Y[H]?.[0]==="->"||Y[H]?.[0]==="=>")H++;if(Y[H]?.[0]==="INDENT"){let O=1;H++;while(H<Y.length&&O>0){if(Y[H][0]==="INDENT")O++;if(Y[H][0]==="OUTDENT")O--;H++}}if(_||w.some((O)=>O.includes(":"))){let O=_?`: ${C(_)}`:"",N=w.join(", ");F.push(`${$()}${P}(${N})${O};`)}continue}H++}D=H-1;continue}if(M==="INDENT")continue;if(M==="OUTDENT"){if(Q)U--,F.push(`${$()}}`),Q=!1;continue}if(M==="IDENTIFIER"&&!Q&&Y[D+1]?.[0]==="="&&(Y[D+2]?.[0]==="PARAM_START"||Y[D+2]?.[0]==="(")){let H=G[1],I=D+2,{params:B}=X(Y,I),P=I,_=0;while(P<Y.length){if(Y[P][0]==="PARAM_START"||Y[P][0]==="(")_++;if(Y[P][0]==="PARAM_END"||Y[P][0]===")")_--;if(_===0&&(Y[P][0]==="->"||Y[P][0]==="=>"))break;P++}let w=Y[P]?.data?.returnType;if(w||B.some((O)=>O.includes(":"))){let O=q?"export ":"",N=q?"":"declare ",E=w?`: ${C(w)}`:"",T=B.join(", ");F.push(`${$()}${O}${N}function ${H}(${T})${E};`);continue}}if(M==="IDENTIFIER"&&G.data?.type){let H=G[1],I=C(G.data.type),B=Y[D+1];if(B){let P=q?"export ":"",_=q?"":"declare ";if(B[0]==="READONLY_ASSIGN")F.push(`${$()}${P}${_}const ${H}: ${I};`);else if(B[0]==="REACTIVE_ASSIGN")J=!0,F.push(`${$()}${P}${_}const ${H}: Signal<${I}>;`);else if(B[0]==="COMPUTED_ASSIGN")Z=!0,F.push(`${$()}${P}${_}const ${H}: Computed<${I}>;`);else if(B[0]==="REACT_ASSIGN")F.push(`${$()}${P}${_}const ${H}: () => void;`);else if(B[0]==="="){let w=D+2;if(Y[w]?.[0]==="PARAM_START"){let N=1,E=w+1;while(E<Y.length&&N>0){if(Y[E][0]==="PARAM_START")N++;if(Y[E][0]==="PARAM_END")N--;E++}w=E}let O=Y[w];if(O&&(O[0]==="->"||O[0]==="=>")&&O.data?.returnType){let N=C(O.data.returnType),{params:E}=X(Y,D+2),T=E.join(", ");F.push(`${$()}${P}${_}function ${H}(${T}): ${N};`)}else if(Q)F.push(`${$()}${H}: ${I};`);else F.push(`${$()}${P}let ${H}: ${I};`)}else if(Q)F.push(`${$()}${H}: ${I};`)}else if(Q)F.push(`${$()}${H}: ${I};`)}}let z=new Set;if(W){if(A1(W,F,$,U,z),z.size>0)for(let D=F.length-1;D>=0;D--){let G=F[D].match(/(?:declare |export )*(?:const|let) (\w+)/);if(G&&z.has(G[1]))F.splice(D,1)}}if(F.length===0)return null;let R=[];if(J)R.push("interface Signal<T> { value: T; read(): T; lock(): Signal<T>; free(): Signal<T>; kill(): T; }");if(Z)R.push("interface Computed<T> { readonly value: T; read(): T; lock(): Computed<T>; free(): Computed<T>; kill(): T; }");if(R.length>0)R.push("");return R.concat(F).join(`
2
2
  `)+`
3
- `}function C(Y){if(!Y)return Y;return Y=Y.replace(/::/g,":"),Y=Y.replace(/(\w+(?:<[^>]+>)?)\?\?/g,"$1 | null | undefined"),Y=Y.replace(/(\w+(?:<[^>]+>)?)\?(?![.:])/g,"$1 | undefined"),Y=Y.replace(/(\w+(?:<[^>]+>)?)\!/g,"NonNullable<$1>"),Y}function A1(Y,W,F,U,A){if(!Array.isArray(Y))return;let $=Y[0]?.valueOf?.()??Y[0],Q=!1,J=null,Z=null;if($==="export"&&Array.isArray(Y[1])){Q=!0;let K=Y[1];if((K[0]?.valueOf?.()??K[0])==="="&&Array.isArray(K[2])&&(K[2][0]?.valueOf?.()??K[2][0])==="component")J=K[1]?.valueOf?.()??K[1],Z=K[2]}else if($==="="&&Array.isArray(Y[2])&&(Y[2][0]?.valueOf?.()??Y[2][0])==="component")J=Y[1]?.valueOf?.()??Y[1],Z=Y[2];if(J&&Z){let K=Q?"export ":"",X=Z[2],M=Array.isArray(X)&&(X[0]?.valueOf?.()??X[0])==="block"?X.slice(1):X?[X]:[],R=[],D=[];for(let z of M){if(!Array.isArray(z))continue;let q=z[0]?.valueOf?.()??z[0];if(q==="state"){let H=z[1]?.valueOf?.()??z[1],G=z[1]?.type;R.push(` ${H}: ${G?C(G):"any"};`),A.add(H)}else if(q==="computed"){let H=z[1]?.valueOf?.()??z[1],G=z[1]?.type;R.push(` readonly ${H}: ${G?C(G):"any"};`),A.add(H)}else if(q==="object")for(let H=1;H<z.length;H++){let G=z[H];if(!Array.isArray(G))continue;let I=G[0]?.valueOf?.()??G[0];if(I==="render")continue;let P=G[1];if(Array.isArray(P)){let B=P[0]?.valueOf?.()??P[0];if(B==="->"||B==="=>")D.push(` ${I}(): void;`)}}else if(q==="render")continue}W.push(`${K}declare class ${J} {`),W.push(" constructor(props?: Record<string, any>);");for(let z of R)W.push(z);for(let z of D)W.push(z);W.push(` mount(target: Element | string): ${J};`),W.push(" unmount(): void;"),W.push("}")}if($==="program"||$==="block"){for(let K=1;K<Y.length;K++)if(Array.isArray(Y[K]))A1(Y[K],W,F,U,A)}if($==="export"&&Array.isArray(Y[1])&&!Z)A1(Y[1],W,F,U,A)}function K1(Y,W,F){let[U,A]=W,$=U?.valueOf?.()??U,Q=[];if(Array.isArray(A)){let K=A[0]==="block"?A.slice(1):[A];for(let X of K)if(Array.isArray(X)){if(X[0]?.valueOf?.()==="="){let M=X[1]?.valueOf?.()??X[1],R=X[2]?.valueOf?.()??X[2];Q.push([M,R])}}}if(Q.length===0)return`const ${$} = {}`;let J=Q.map(([K,X])=>`${K}: ${X}`).join(", "),Z=Q.map(([K,X])=>`${X}: "${K}"`).join(", ");return`const ${$} = {${J}, ${Z}}`}var D1=new Set(["true","false","null","this","new","delete","typeof","in","instanceof","return","throw","break","continue","debugger","yield","await","if","else","switch","for","while","do","try","catch","finally","class","extends","super","import","export","default"]),z1=new Set(["undefined","Infinity","NaN","then","unless","until","loop","of","by","when","def","component","render","enum","interface"]),W1={and:"&&",or:"||",is:"==",isnt:"!=",not:"!",yes:"true",no:"false",on:"true",off:"false"},M1=new Set(Object.keys(W1)),j1=new Set(["case","function","var","void","with","const","let","native","implements","package","private","protected","public","static"]),C1=new Set(["break","continue","debugger"]),h1=new Set(["NEW","TYPEOF","DELETE"]),b1=new Set(["IN","OF","INSTANCEOF"]),r=new Set(["IDENTIFIER","PROPERTY",")","]","@","THIS","SUPER","DYNAMIC_IMPORT","?."]),B1=new Set([...r,"NUMBER","INFINITY","NAN","STRING","STRING_END","REGEX","REGEX_END","BOOL","NULL","UNDEFINED","}"]),a=new Set(["IDENTIFIER","PROPERTY","NUMBER","INFINITY","NAN","STRING","STRING_START","REGEX","REGEX_START","JS","NEW","PARAM_START","CLASS","IF","TRY","SWITCH","THIS","DYNAMIC_IMPORT","IMPORT_META","NEW_TARGET","UNDEFINED","NULL","BOOL","UNARY","DO","DO_IIFE","YIELD","AWAIT","UNARY_MATH","SUPER","THROW","@","->","=>","[","(","{","--","++"]),y1=new Set(["+","-"]),v1=new Set(["POST_IF","POST_UNLESS","FOR","WHILE","UNTIL","WHEN","BY","LOOP","TERMINATOR","||","&&","PIPE"]),g1=new Set(["STRING","STRING_END","REGEX","REGEX_END","NUMBER","BOOL","NULL","UNDEFINED","INFINITY","NAN","]","}"]),y=new Set(["(","[","{","INDENT","CALL_START","PARAM_START","INDEX_START","STRING_START","INTERPOLATION_START","REGEX_START"]),b=new Set([")","]","}","OUTDENT","CALL_END","PARAM_END","INDEX_END","STRING_END","INTERPOLATION_END","REGEX_END"]),x1={"(":")",")":"(","[":"]","]":"[","{":"}","}":"{",INDENT:"OUTDENT",OUTDENT:"INDENT",CALL_START:"CALL_END",CALL_END:"CALL_START",PARAM_START:"PARAM_END",PARAM_END:"PARAM_START",INDEX_START:"INDEX_END",INDEX_END:"INDEX_START",STRING_START:"STRING_END",STRING_END:"STRING_START",INTERPOLATION_START:"INTERPOLATION_END",INTERPOLATION_END:"INTERPOLATION_START",REGEX_START:"REGEX_END",REGEX_END:"REGEX_START"},R1=new Set(["CATCH","THEN","ELSE","FINALLY",...b]),U1=new Set(["IDENTIFIER","PROPERTY","SUPER",")","CALL_END","]","INDEX_END","@","THIS"]),k1=new Set(["IF","TRY","FINALLY","CATCH","CLASS","SWITCH","COMPONENT"]),G1=new Set(["ELSE","->","=>","TRY","FINALLY","THEN"]),c1=new Set(["TERMINATOR","CATCH","FINALLY","ELSE","OUTDENT","LEADING_WHEN"]),m=new Set(["INDENT","OUTDENT","TERMINATOR"]),q1=new Set([".","?."]),H1=new Set(["\\",".","?.","UNARY","DO","DO_IIFE","MATH","UNARY_MATH","+","-","**","SHIFT","RELATION","COMPARE","&","^","|","&&","||","SPACE?","EXTENDS"]),l1=new Set([...B1,"++","--"]),O1=new Set(["-=","+=","/=","*=","%=","||=","&&=","?=","??=","<<=",">>=",">>>=","&=","^=","|=","**=","//=","%%="]),m1=new Set(["*","/","%","//","%%"]),p1=new Set(["==","!=","===","!==","<",">","<=",">=","=~"]),i1=new Set(["<<",">>",">>>"]),d1=new Set(["!","~"]),n1=/^(?!\d)((?:(?!\s)[$\w\x7f-\uffff])+(?:!|[?](?![.?[(]))?)([^\n\S]*:(?![=:]))?/,a1=/^0b[01](?:_?[01])*n?|^0o[0-7](?:_?[0-7])*n?|^0x[\da-f](?:_?[\da-f])*n?|^\d+(?:_\d+)*n|^(?:\d+(?:_\d+)*)?\.?\d+(?:_\d+)*(?:e[+-]?\d+(?:_\d+)*)?/i,r1=/^(?:<=>|::=|::|[-=]>|~>|~=|:=|=!|===|!==|!\?|\?\?|=~|\|>|[-+*\/%<>&|^!?=]=|>>>=?|([-+:])\1|([&|<>*\/%])\2=?|\?\.?|\.{2,3})/,s1=/^[^\n\S]+/,o1=/^(?:\n[^\n\S]*)+/,t1=/^(\s*)###([^#][\s\S]*?)(?:###([^\n\S]*)|###$)|^((?:\s*#(?!##[^#]).*)+)/,e1=/^[-=]>/,$2=/^(?:~[=>]|=!)/,A2=/^(?:'''|"""|'|")/,Y2=/^(?:[^\\']|\\[\s\S])*/,U2=/^(?:[^\\"#$]|\\[\s\S]|\#(?!\{)|\$(?!\{))*/,W2=/^(?:[^\\']|\\[\s\S]|'(?!''))*/,F2=/^(?:[^\\"#$]|\\[\s\S]|"(?!"")|\#(?!\{)|\$(?!\{))*/,P1=/\n+([^\n\S]*)(?=\S)/g,Q2=/^\/(?!\/)((?:[^[\/\n\\]|\\[^\n]|\[(?:\\[^\n]|[^\]\n\\])*\])*)(\/)?/,_1=/^\w*/,Z2=/^(?!.*(.).*\1)[gimsuy]*$/,J2=/^(?:[^\\\/#\s]|\\[\s\S]|\/(?!\/\/)|\#(?!\{)|\s+(?:#(?!\{).*)?)*/,X2=/^`(?!``)((?:[^`\\]|\\[\s\S])*)`/,K2=/^```((?:[^`\\]|\\[\s\S]|`(?!``))*)```/,D2=/\s+$/,w1=/^\s*(?:,|\??\.(?![.\d]))/,z2=65279;function s(Y,W,{pre:F=0,row:U=0,col:A=0,len:$=0,data:Q=null}={}){let J=[Y,W];return J.pre=F,J.data=Q,J.loc={r:U,c:A,n:$},J.spaced=F>0,J.newLine=!1,J}function V(Y,W,F){let U=s(Y,W);if(U.generated=!0,F)U.origin=F;return U}function h(Y,{row:W=0,col:F=0,len:U=1}={}){let A=SyntaxError(Y);throw A.location={first_line:W,first_column:F,last_column:F+U-1},A}function M2(Y){if(Y==null)return NaN;switch(Y.charAt(1)){case"b":return parseInt(Y.slice(2).replace(/_/g,""),2);case"o":return parseInt(Y.slice(2).replace(/_/g,""),8);case"x":return parseInt(Y.slice(2).replace(/_/g,""),16);default:return parseFloat(Y.replace(/_/g,""))}}class g{tokenize(Y,W={}){this.code=Y,this.tokens=[],this.ends=[],this.chunk="",this.pos=0,this.row=W.row||0,this.col=W.col||0,this.indent=0,this.indents=[],this.seenFor=!1,this.seenImport=!1,this.seenExport=!1,this.importSpecifierList=!1,this.exportSpecifierList=!1,this.inRenderBlock=!1,this.renderIndent=0,Y=this.clean(Y),this.code=Y;while(this.pos<Y.length){this.chunk=Y.slice(this.pos);let F=this.identifierToken()||this.commentToken()||this.whitespaceToken()||this.lineToken()||this.stringToken()||this.numberToken()||this.regexToken()||this.jsToken()||this.literalToken();if(F===0)h(`unexpected character: ${this.chunk.charAt(0)}`,{row:this.row,col:this.col});if(this.advance(F),W.untilBalanced&&this.ends.length===0)return{tokens:this.tokens,index:this.pos}}if(this.closeIndentation(),this.ends.length>0){let F=this.ends[this.ends.length-1];h(`missing ${F.tag}`,{row:this.row,col:this.col})}if(W.rewrite===!1)return this.tokens;return this.rewrite(this.tokens)}clean(Y){if(Y.charCodeAt(0)===z2)Y=Y.slice(1);if(Y=Y.replace(/\r\n?/g,`
4
- `),Y=Y.replace(D2,""),/^[^\n\S]/.test(Y))Y=`
3
+ `}function C(Y){if(!Y)return Y;return Y=Y.replace(/::/g,":"),Y=Y.replace(/(\w+(?:<[^>]+>)?)\?\?/g,"$1 | null | undefined"),Y=Y.replace(/(\w+(?:<[^>]+>)?)\?(?![.:])/g,"$1 | undefined"),Y=Y.replace(/(\w+(?:<[^>]+>)?)\!/g,"NonNullable<$1>"),Y}function A1(Y,W,F,U,A){if(!Array.isArray(Y))return;let $=Y[0]?.valueOf?.()??Y[0],Q=!1,J=null,Z=null;if($==="export"&&Array.isArray(Y[1])){Q=!0;let K=Y[1];if((K[0]?.valueOf?.()??K[0])==="="&&Array.isArray(K[2])&&(K[2][0]?.valueOf?.()??K[2][0])==="component")J=K[1]?.valueOf?.()??K[1],Z=K[2]}else if($==="="&&Array.isArray(Y[2])&&(Y[2][0]?.valueOf?.()??Y[2][0])==="component")J=Y[1]?.valueOf?.()??Y[1],Z=Y[2];if(J&&Z){let K=Q?"export ":"",X=Z[2],z=Array.isArray(X)&&(X[0]?.valueOf?.()??X[0])==="block"?X.slice(1):X?[X]:[],R=[],D=[];for(let G of z){if(!Array.isArray(G))continue;let M=G[0]?.valueOf?.()??G[0];if(M==="state"){let q=G[1]?.valueOf?.()??G[1],H=G[1]?.type;R.push(` ${q}: ${H?C(H):"any"};`),A.add(q)}else if(M==="computed"){let q=G[1]?.valueOf?.()??G[1],H=G[1]?.type;R.push(` readonly ${q}: ${H?C(H):"any"};`),A.add(q)}else if(M==="object")for(let q=1;q<G.length;q++){let H=G[q];if(!Array.isArray(H))continue;let I=H[0]?.valueOf?.()??H[0];if(I==="render")continue;let B=H[1];if(Array.isArray(B)){let P=B[0]?.valueOf?.()??B[0];if(P==="->"||P==="=>")D.push(` ${I}(): void;`)}}else if(M==="render")continue}W.push(`${K}declare class ${J} {`),W.push(" constructor(props?: Record<string, any>);");for(let G of R)W.push(G);for(let G of D)W.push(G);W.push(` mount(target: Element | string): ${J};`),W.push(" unmount(): void;"),W.push("}")}if($==="program"||$==="block"){for(let K=1;K<Y.length;K++)if(Array.isArray(Y[K]))A1(Y[K],W,F,U,A)}if($==="export"&&Array.isArray(Y[1])&&!Z)A1(Y[1],W,F,U,A)}function D1(Y,W,F){let[U,A]=W,$=U?.valueOf?.()??U,Q=[];if(Array.isArray(A)){let K=A[0]==="block"?A.slice(1):[A];for(let X of K)if(Array.isArray(X)){if(X[0]?.valueOf?.()==="="){let z=X[1]?.valueOf?.()??X[1],R=X[2]?.valueOf?.()??X[2];Q.push([z,R])}}}if(Q.length===0)return`const ${$} = {}`;let J=Q.map(([K,X])=>`${K}: ${X}`).join(", "),Z=Q.map(([K,X])=>`${X}: "${K}"`).join(", ");return`const ${$} = {${J}, ${Z}}`}var z1=new Set(["true","false","null","this","new","delete","typeof","in","instanceof","return","throw","break","continue","debugger","yield","await","if","else","switch","for","while","do","try","catch","finally","class","extends","super","import","export","default"]),M1=new Set(["undefined","Infinity","NaN","then","unless","until","loop","of","by","when","def","component","render","enum","interface"]),W1={and:"&&",or:"||",is:"==",isnt:"!=",not:"!",yes:"true",no:"false",on:"true",off:"false"},R1=new Set(Object.keys(W1)),C1=new Set(["case","function","var","void","with","const","let","native","implements","package","private","protected","public","static"]),h1=new Set(["break","continue","debugger"]),b1=new Set(["NEW","TYPEOF","DELETE"]),y1=new Set(["IN","OF","INSTANCEOF"]),s=new Set(["IDENTIFIER","PROPERTY",")","]","@","THIS","SUPER","DYNAMIC_IMPORT","?."]),I1=new Set([...s,"NUMBER","INFINITY","NAN","STRING","STRING_END","REGEX","REGEX_END","BOOL","NULL","UNDEFINED","}"]),a=new Set(["IDENTIFIER","PROPERTY","NUMBER","INFINITY","NAN","STRING","STRING_START","REGEX","REGEX_START","JS","NEW","PARAM_START","CLASS","IF","TRY","SWITCH","THIS","DYNAMIC_IMPORT","IMPORT_META","NEW_TARGET","UNDEFINED","NULL","BOOL","UNARY","DO","DO_IIFE","YIELD","AWAIT","UNARY_MATH","SUPER","THROW","@","->","=>","[","(","{","--","++"]),v1=new Set(["+","-"]),g1=new Set(["POST_IF","POST_UNLESS","FOR","WHILE","UNTIL","WHEN","BY","LOOP","TERMINATOR","||","&&","PIPE"]),x1=new Set(["STRING","STRING_END","REGEX","REGEX_END","NUMBER","BOOL","NULL","UNDEFINED","INFINITY","NAN","]","}"]),v=new Set(["(","[","{","INDENT","CALL_START","PARAM_START","INDEX_START","STRING_START","INTERPOLATION_START","REGEX_START"]),y=new Set([")","]","}","OUTDENT","CALL_END","PARAM_END","INDEX_END","STRING_END","INTERPOLATION_END","REGEX_END"]),k1={"(":")",")":"(","[":"]","]":"[","{":"}","}":"{",INDENT:"OUTDENT",OUTDENT:"INDENT",CALL_START:"CALL_END",CALL_END:"CALL_START",PARAM_START:"PARAM_END",PARAM_END:"PARAM_START",INDEX_START:"INDEX_END",INDEX_END:"INDEX_START",STRING_START:"STRING_END",STRING_END:"STRING_START",INTERPOLATION_START:"INTERPOLATION_END",INTERPOLATION_END:"INTERPOLATION_START",REGEX_START:"REGEX_END",REGEX_END:"REGEX_START"},G1=new Set(["CATCH","THEN","ELSE","FINALLY",...y]),U1=new Set(["IDENTIFIER","PROPERTY","SUPER",")","CALL_END","]","INDEX_END","@","THIS"]),c1=new Set(["IF","TRY","FINALLY","CATCH","CLASS","SWITCH","COMPONENT"]),q1=new Set(["ELSE","->","=>","TRY","FINALLY","THEN"]),l1=new Set(["TERMINATOR","CATCH","FINALLY","ELSE","OUTDENT","LEADING_WHEN"]),p=new Set(["INDENT","OUTDENT","TERMINATOR"]),H1=new Set([".","?."]),O1=new Set(["\\",".","?.","UNARY","DO","DO_IIFE","MATH","UNARY_MATH","+","-","**","SHIFT","RELATION","COMPARE","&","^","|","&&","||","SPACE?","EXTENDS"]),m1=new Set([...I1,"++","--"]),P1=new Set(["-=","+=","/=","*=","%=","||=","&&=","?=","??=","<<=",">>=",">>>=","&=","^=","|=","**=","//=","%%="]),p1=new Set(["*","/","%","//","%%"]),i1=new Set(["==","!=","===","!==","<",">","<=",">=","=~"]),d1=new Set(["<<",">>",">>>"]),n1=new Set(["!","~"]),a1=/^(?!\d)((?:(?!\s)[$\w\x7f-\uffff])+(?:!|[?](?![.?[(]))?)([^\n\S]*:(?![=:]))?/,s1=/^0b[01](?:_?[01])*n?|^0o[0-7](?:_?[0-7])*n?|^0x[\da-f](?:_?[\da-f])*n?|^\d+(?:_\d+)*n|^(?:\d+(?:_\d+)*)?\.?\d+(?:_\d+)*(?:e[+-]?\d+(?:_\d+)*)?/i,r1=/^(?:<=>|::=|::|[-=]>|~>|~=|:=|=!|===|!==|!\?|\?\?|=~|\|>|[-+*\/%<>&|^!?=]=|>>>=?|([-+:])\1|([&|<>*\/%])\2=?|\?\.?|\.{2,3})/,o1=/^[^\n\S]+/,t1=/^(?:\n[^\n\S]*)+/,e1=/^(\s*)###([^#][\s\S]*?)(?:###([^\n\S]*)|###$)|^((?:\s*#(?!##[^#]).*)+)/,$2=/^[-=]>/,A2=/^(?:~[=>]|=!)/,Y2=/^(?:'''|"""|'|")/,U2=/^(?:[^\\']|\\[\s\S])*/,W2=/^(?:[^\\"#$]|\\[\s\S]|\#(?!\{)|\$(?!\{))*/,F2=/^(?:[^\\']|\\[\s\S]|'(?!''))*/,Q2=/^(?:[^\\"#$]|\\[\s\S]|"(?!"")|\#(?!\{)|\$(?!\{))*/,_1=/\n+([^\n\S]*)(?=\S)/g,Z2=/^\/(?!\/)((?:[^[\/\n\\]|\\[^\n]|\[(?:\\[^\n]|[^\]\n\\])*\])*)(\/)?/,w1=/^\w*/,J2=/^(?!.*(.).*\1)[gimsuy]*$/,X2=/^(?:[^\\\/#\s]|\\[\s\S]|\/(?!\/\/)|\#(?!\{)|\s+(?:#(?!\{).*)?)*/,K2=/^`(?!``)((?:[^`\\]|\\[\s\S])*)`/,D2=/^```((?:[^`\\]|\\[\s\S]|`(?!``))*)```/,z2=/\s+$/,B1=/^\s*(?:,|\??\.(?![.\d]))/,M2=65279;function r(Y,W,{pre:F=0,row:U=0,col:A=0,len:$=0,data:Q=null}={}){let J=[Y,W];return J.pre=F,J.data=Q,J.loc={r:U,c:A,n:$},J.spaced=F>0,J.newLine=!1,J}function u(Y,W,F){let U=r(Y,W);if(U.generated=!0,F)U.origin=F;return U}function h(Y,{row:W=0,col:F=0,len:U=1}={}){let A=SyntaxError(Y);throw A.location={first_line:W,first_column:F,last_column:F+U-1},A}function R2(Y){if(Y==null)return NaN;switch(Y.charAt(1)){case"b":return parseInt(Y.slice(2).replace(/_/g,""),2);case"o":return parseInt(Y.slice(2).replace(/_/g,""),8);case"x":return parseInt(Y.slice(2).replace(/_/g,""),16);default:return parseFloat(Y.replace(/_/g,""))}}class x{tokenize(Y,W={}){this.code=Y,this.tokens=[],this.ends=[],this.chunk="",this.pos=0,this.row=W.row||0,this.col=W.col||0,this.indent=0,this.indents=[],this.seenFor=!1,this.seenImport=!1,this.seenExport=!1,this.importSpecifierList=!1,this.exportSpecifierList=!1,this.inRenderBlock=!1,this.renderIndent=0,Y=this.clean(Y),this.code=Y;while(this.pos<Y.length){this.chunk=Y.slice(this.pos);let F=this.identifierToken()||this.commentToken()||this.whitespaceToken()||this.lineToken()||this.stringToken()||this.numberToken()||this.regexToken()||this.jsToken()||this.literalToken();if(F===0)h(`unexpected character: ${this.chunk.charAt(0)}`,{row:this.row,col:this.col});if(this.advance(F),W.untilBalanced&&this.ends.length===0)return{tokens:this.tokens,index:this.pos}}if(this.closeIndentation(),this.ends.length>0){let F=this.ends[this.ends.length-1];h(`missing ${F.tag}`,{row:this.row,col:this.col})}if(W.rewrite===!1)return this.tokens;return this.rewrite(this.tokens)}clean(Y){if(Y.charCodeAt(0)===M2)Y=Y.slice(1);if(Y=Y.replace(/\r\n?/g,`
4
+ `),Y=Y.replace(z2,""),/^[^\n\S]/.test(Y))Y=`
5
5
  `+Y;return Y}advance(Y){let W=this.code.slice(this.pos,this.pos+Y);for(let F=0;F<W.length;F++)if(W[F]===`
6
- `)this.row++,this.col=0;else this.col++;this.pos+=Y}emit(Y,W,{len:F,data:U,pre:A}={}){let $=s(Y,W,{pre:A??0,row:this.row,col:this.col,len:F??(typeof W==="string"?W.length:0),data:U});return this.tokens.push($),$}prev(){return this.tokens[this.tokens.length-1]}prevTag(){let Y=this.prev();return Y?Y[0]:void 0}prevVal(){let Y=this.prev();return Y?Y[1]:void 0}identifierToken(){if($2.test(this.chunk))return 0;let Y=n1.exec(this.chunk);if(!Y)return 0;let[,W,F]=Y,U=W.length,A={},$;if(W==="own"&&this.prevTag()==="FOR")return this.emit("OWN",W,{len:U}),U;if(W==="from"&&this.prevTag()==="YIELD")return this.emit("FROM",W,{len:U}),U;if(W==="as"&&!this.seenFor&&(this.seenImport||this.seenExport)){if(this.seenImport){if(this.prevVal()==="*")this.prev()[0]="IMPORT_ALL"}let X=this.prevTag();if(X==="DEFAULT"||X==="IMPORT_ALL"||X==="IDENTIFIER")return this.emit("AS",W,{len:U}),U}if((W==="as"||W==="as!")&&this.seenFor)return this.seenFor=!1,this.emit(W==="as!"?"FORASAWAIT":"FORAS","as",{len:U}),U;if(W==="default"&&this.seenExport&&(this.prevTag()==="EXPORT"||this.prevTag()==="AS"))return this.emit("DEFAULT",W,{len:U}),U;let Q;if(W==="do"&&(Q=/^(\s*super)(?!\(\))/.exec(this.chunk.slice(3))))return this.emit("SUPER","super"),this.emit("CALL_START","("),this.emit("CALL_END",")"),Q[1].length+3;let J=this.prev();if(F&&J&&J[0]==="SPACE?")F=null;if(F||J&&(J[0]==="."||J[0]==="?."||!J.spaced&&J[0]==="@")){if($="PROPERTY",this.inRenderBlock&&J&&J[0]==="."&&!F){let X=this.chunk.slice(U);while(X[0]==="-"&&/^-[a-zA-Z]/.test(X)){let M=/^-([a-zA-Z][\w]*)/.exec(X);if(!M)break;W+="-"+M[1],U+=1+M[1].length,X=this.chunk.slice(U)}}}else $="IDENTIFIER";let Z=W.endsWith("!")||W.endsWith("?")?W.slice(0,-1):W;if($==="IDENTIFIER"&&!W.endsWith("!")&&!W.endsWith("?")&&(D1.has(W)||z1.has(W)||M1.has(W))&&!(this.exportSpecifierList&&M1.has(W))){if(W1[W]!==void 0)A.original=W,W=W1[W];$=this.classifyKeyword(W,$,A)}if($==="IDENTIFIER"&&j1.has(Z))h(`reserved word '${Z}'`,{row:this.row,col:this.col,len:U});if($==="PROPERTY"&&J){if(J[0]==="."&&this.tokens.length>1){let X=this.tokens[this.tokens.length-2];if(X[0]==="UNARY"&&X[1]==="new")X[0]="NEW_TARGET";if(X[0]==="IMPORT"&&X[1]==="import")this.seenImport=!1,X[0]="IMPORT_META"}}if(W.length>1&&W.endsWith("!"))A.await=!0,W=W.slice(0,-1);if(W.length>1&&W.endsWith("?"))A.predicate=!0,W=W.slice(0,-1);let K=this.emit($,W,{len:U,data:Object.keys(A).length?A:null});if($==="RENDER")this.inRenderBlock=!0,this.renderIndent=this.indent;if(F)return this.emit(":",":",{len:1}),U+F.length;return U}classifyKeyword(Y,W,F){switch(Y){case"!":return"UNARY";case"==":case"!=":return"COMPARE";case"true":case"false":return"BOOL";case"&&":case"||":return Y}if(C1.has(Y))return"STATEMENT";let U=Y.toUpperCase();if(U==="WHEN"&&m.has(this.prevTag()))return"LEADING_WHEN";if(U==="FOR")return this.seenFor={endsLength:this.ends.length},"FOR";if(U==="UNLESS")return"UNLESS";if(U==="IMPORT")return this.seenImport=!0,"IMPORT";if(U==="EXPORT")return this.seenExport=!0,"EXPORT";if(h1.has(U))return"UNARY";if(b1.has(U)){if(U!=="INSTANCEOF"&&this.seenFor)return this.seenFor=!1,"FOR"+U;if(this.prevVal()==="!"){let A=this.tokens.pop();F.invert=A.data?.original||A[1]}return"RELATION"}if(D1.has(Y)||z1.has(Y))return U;return W}commentToken(){let Y=t1.exec(this.chunk);if(!Y)return 0;return Y[0].length}whitespaceToken(){let Y=s1.exec(this.chunk);if(!Y&&this.chunk[0]!==`
7
- `)return 0;let W=this.prev();if(W)if(Y)W.spaced=!0,W.pre=Y[0].length;else W.newLine=!0;return Y?Y[0].length:0}lineToken(){let Y=o1.exec(this.chunk);if(!Y)return 0;let W=Y[0],F=W.length-1-W.lastIndexOf(`
8
- `);if(this.isUnfinished()){if(F<this.indent&&/^\s*,/.test(this.chunk)&&!H1.has(this.prevTag())){if(this.outdentTo(F,W.length),this.prevTag()==="TERMINATOR")this.tokens.pop();return W.length}return W.length}if(this.seenFor&&!(this.seenFor.endsLength<this.ends.length))this.seenFor=!1;if(!this.importSpecifierList)this.seenImport=!1;if(!this.exportSpecifierList)this.seenExport=!1;if(F===this.indent)return this.emitNewline(),W.length;if(F>this.indent){if(!this.tokens.length)return this.indent=F,W.length;let U=F-this.indent;return this.emit("INDENT",U,{len:F}),this.indents.push(U),this.ends.push({tag:"OUTDENT"}),this.indent=F,W.length}return this.outdentTo(F,W.length),W.length}outdentTo(Y,W=0){if(this.inRenderBlock&&Y<=this.renderIndent)this.inRenderBlock=!1;let F=this.indent-Y;while(F>0){let U=this.indents[this.indents.length-1];if(!U)F=0;else this.indents.pop(),this.pair("OUTDENT"),this.emit("OUTDENT",F,{len:W}),F-=U}this.emitNewline(),this.indent=Y}closeIndentation(){this.outdentTo(0)}emitNewline(){if(this.prevTag()!=="TERMINATOR")this.emit("TERMINATOR",`
9
- `,{len:0})}isUnfinished(){if(this.inRenderBlock&&w1.test(this.chunk)&&/^\s*\./.test(this.chunk))return!1;return w1.test(this.chunk)||H1.has(this.prevTag())}pair(Y){let W=this.ends[this.ends.length-1];if(!W||Y!==W.tag){if(W?.tag==="OUTDENT"){let F=this.indents[this.indents.length-1];if(F)this.outdentTo(this.indent-F);return this.pair(Y)}h(`unmatched ${Y}`,{row:this.row,col:this.col})}return this.ends.pop()}stringToken(){let Y=A2.exec(this.chunk);if(!Y)return 0;let W=Y[0],F=this.prev();if(F&&this.prevVal()==="from"&&(this.seenImport||this.seenExport))F[0]="FROM";let U;switch(W){case"'":U=Y2;break;case'"':U=U2;break;case"'''":U=W2;break;case'"""':U=F2;break}let{tokens:A,index:$}=this.matchWithInterpolations(U,W),Q=W.length===3,J=null;if(Q)J=this.processHeredocIndent($,W,A);return this.mergeInterpolationTokens(A,{quote:W,indent:J,endOffset:$}),$}processHeredocIndent(Y,W,F){let U=Y-W.length,A=U-1;while(A>=0&&this.chunk[A]!==`
10
- `)A--;A++;let $=this.chunk.slice(A,U),Q=/^\s*$/.test($)?$.length:null,J="";for(let X of F)if(X[0]==="NEOSTRING")J+=X[1];let Z=null,K;P1.lastIndex=0;while(K=P1.exec(J))if(Z===null||K[1].length>0&&K[1].length<Z.length)Z=K[1];if(Q===null)return Z;if(Z===null)return" ".repeat(Q);if(Q<=Z.length)return" ".repeat(Q);return Z}matchWithInterpolations(Y,W,F,U){if(!F)F=W;if(!U)U=/^[#$]\{/;let A=[],$=W.length;if(this.chunk.slice(0,$)!==W)return null;let Q=this.chunk.slice($);while(!0){let[J]=Y.exec(Q);A.push(["NEOSTRING",J,{offset:$}]),Q=Q.slice(J.length),$+=J.length;let Z=U.exec(Q);if(!Z)break;let X=Z[0].length-1,M=Q.slice(X),R=new g().tokenize(M,{row:this.row,col:this.col+$+X,untilBalanced:!0,rewrite:!1}),D=R.index+X;if(Q[D-1]==="}"){let q=R.tokens[0],H=R.tokens[R.tokens.length-1];q[0]="INTERPOLATION_START",q[1]="(",H[0]="INTERPOLATION_END",H[1]=")"}if(R.tokens[1]?.[0]==="TERMINATOR")R.tokens.splice(1,1);let z=R.tokens.length;if(z>2&&R.tokens[z-3]?.[0]==="INDENT"&&R.tokens[z-2]?.[0]==="OUTDENT")R.tokens.splice(z-3,2);A.push(["TOKENS",R.tokens]),Q=Q.slice(D),$+=D}if(Q.slice(0,F.length)!==F)h(`missing ${F}`,{row:this.row,col:this.col});return{tokens:A,index:$+F.length}}mergeInterpolationTokens(Y,{quote:W,indent:F,endOffset:U}){if(Y.length>1)this.emit("STRING_START","(",{len:W?.length||0,data:{quote:W}});for(let A=0;A<Y.length;A++){let[$,Q]=Y[A];if($==="TOKENS")for(let J of Q)this.tokens.push(J);else if($==="NEOSTRING"){let J=Q;if(F){let Z=new RegExp("\\n"+F,"g");J=J.replace(Z,`
11
- `)}if(A===0&&W?.length===3)J=J.replace(/^\n/,"");if(A===Y.length-1&&W?.length===3)J=J.replace(/\n[^\S\n]*$/,"");this.emit("STRING",`"${J}"`,{len:Q.length,data:{quote:W}})}}if(Y.length>1)this.emit("STRING_END",")",{len:W?.length||0});return U}numberToken(){let Y=a1.exec(this.chunk);if(!Y)return 0;let W=Y[0],F=W.length,U={row:this.row,col:this.col};if(/^0[BOX]/.test(W))h(`radix prefix in '${W}' must be lowercase`,{...U,col:U.col+1});if(/^0\d*[89]/.test(W))h(`decimal literal '${W}' must not be prefixed with '0'`,{...U,len:F});if(/^0\d+/.test(W))h(`octal literal '${W}' must be prefixed with '0o'`,{...U,len:F});let A=M2(W),$=A===1/0?"INFINITY":"NUMBER",Q={parsedValue:A};if($==="INFINITY")Q.original=W;return this.emit($,W,{len:F,data:Q}),F}regexToken(){let Y=this.matchWithInterpolations(J2,"///");if(Y){let{tokens:K,index:X}=Y,[M]=_1.exec(this.chunk.slice(X)),R=X+M.length;if(K.length===1||!K.some((D)=>D[0]==="TOKENS")){let D=K[0]?.[1]||"";this.emit("REGEX",`/${D}/${M}`,{len:R,data:{delimiter:"///",heregex:{flags:M}}})}else{if(this.emit("REGEX_START","(",{len:0}),this.emit("IDENTIFIER","RegExp",{len:0}),this.emit("CALL_START","(",{len:0}),this.mergeInterpolationTokens(K,{quote:"///",endOffset:R-M.length}),M)this.emit(",",",",{len:0}),this.emit("STRING",`"${M}"`,{len:M.length});this.emit(")",")",{len:0}),this.emit("REGEX_END",")",{len:0})}return R}let W=Q2.exec(this.chunk);if(!W)return 0;let[F,U,A]=W,$=this.prev();if($){if($.spaced&&r.has($[0])&&(!A||/^\/=?\s/.test(F)))return 0;if(l1.has($[0])&&!($.spaced&&r.has($[0])))return 0}if(!A)h("missing / (unclosed regex)",{row:this.row,col:this.col});let Q=F.length,[J]=_1.exec(this.chunk.slice(Q)),Z=Q+J.length;if(!Z2.test(J))h(`invalid regular expression flags ${J}`,{row:this.row,col:this.col+Q,len:J.length});return this.emit("REGEX",`/${U}/${J}`,{len:Z,data:{delimiter:"/"}}),Z}jsToken(){if(this.chunk[0]!=="`")return 0;let Y=K2.exec(this.chunk)||X2.exec(this.chunk);if(!Y)return 0;let W=Y[1],F=Y[0].length;return this.emit("JS",W,{len:F,data:{here:Y[0].startsWith("```")}}),F}literalToken(){let Y=r1.exec(this.chunk),W=Y?Y[0]:this.chunk.charAt(0),F=W,U=this.prev();if(e1.test(W))this.tagParameters();if(W==="="&&U&&U[1]==="."&&!U.spaced){let A=this.tokens,$=A.length-2;while($>=1&&A[$][0]==="PROPERTY"&&A[$-1]?.[1]===".")$-=2;if($>=0&&(A[$][0]==="IDENTIFIER"||A[$][0]===")"||A[$][0]==="]")){let Q=A.slice($,A.length-1);U[0]="=",U[1]="=";for(let J of Q)this.tokens.push(s(J[0],J[1],{pre:0,row:J[2],col:J[3],len:J[4]}));return this.tokens.push(s(".",".",{pre:0,row:this.row,col:this.col,len:1})),W.length}}if(U&&(W==="="||O1.has(W))){if(W==="="&&(U[1]==="||"||U[1]==="&&"||U[1]==="??")&&!U.spaced)return U[0]="COMPOUND_ASSIGN",U[1]+="=",W.length}if(W==="("&&U?.[0]==="IMPORT")U[0]="DYNAMIC_IMPORT";if(W==="{"&&this.seenImport)this.importSpecifierList=!0;if(W==="}"&&this.importSpecifierList)this.importSpecifierList=!1;if(W==="{"&&U?.[0]==="EXPORT")this.exportSpecifierList=!0;if(W==="}"&&this.exportSpecifierList)this.exportSpecifierList=!1;if(W===";")this.seenFor=this.seenImport=this.seenExport=!1,F="TERMINATOR";else if(W==="|>")F="PIPE";else if(W==="::=")F="TYPE_ALIAS";else if(W==="::"&&/^[a-zA-Z_$]/.test(this.chunk[2]||""))return this.emit(".","."),this.emit("PROPERTY","prototype"),this.emit(".","."),2;else if(W==="::")F="TYPE_ANNOTATION";else if(W==="~=")F="COMPUTED_ASSIGN";else if(W===":=")F="REACTIVE_ASSIGN";else if(W==="<=>")F="BIND";else if(W==="~>")F="REACT_ASSIGN";else if(W==="=!")F="READONLY_ASSIGN";else if(W==="*"&&(!U||U[0]==="TERMINATOR"||U[0]==="INDENT"||U[0]==="OUTDENT")&&/^[a-zA-Z_$]/.test(this.chunk[1]||"")){let A=this.chunk.slice(1),$=/^((?:(?!\s)[$\w\x7f-\uffff])+(?:\.[a-zA-Z_$][\w]*)*)(\s*)=(?!=)/.exec(A);if($){let Q=$[1],J=$[2],Z=Q.split("."),K=()=>{this.emit("IDENTIFIER",Z[0]);for(let M=1;M<Z.length;M++)this.emit(".","."),this.emit("PROPERTY",Z[M])};K(),this.emit("=","="),this.emit("IDENTIFIER","Object"),this.emit(".","."),this.emit("PROPERTY","assign"),this.emit("CALL_START","("),K(),this.emit("COMPOUND_ASSIGN","??="),this.emit("{","{"),this.emit("}","}"),this.emit(",",",");let X=this.prev();return X.mergeClose=!0,1+Q.length+J.length+1}}else if(W==="*"&&U?.[0]==="EXPORT")F="EXPORT_ALL";else if(m1.has(W))F="MATH";else if(p1.has(W))F="COMPARE";else if(O1.has(W))F="COMPOUND_ASSIGN";else if(d1.has(W))F="UNARY_MATH";else if(i1.has(W))F="SHIFT";else if(W==="?"&&U?.spaced)F="SPACE?";else if(W==="?"&&(this.chunk[1]==="["||this.chunk[1]==="("))F="?.";else if(U){if(W==="("&&!U.spaced&&r.has(U[0])){if(U[0]==="?.")U[0]="ES6_OPTIONAL_CALL";F="CALL_START"}if(W==="["&&!U.spaced&&B1.has(U[0])){if(F="INDEX_START",U[0]==="?.")U[0]="ES6_OPTIONAL_INDEX"}}if(W==="("||W==="{"||W==="[")this.ends.push({tag:x1[W],origin:[F,W]});else if(W===")"||W==="}"||W==="]")this.pair(W);return this.emit(F,W,{len:W.length}),W.length}tagParameters(){if(this.prevTag()!==")")return this.tagDoIife();let Y=this.tokens.length-1,W=[];this.tokens[Y][0]="PARAM_END";while(Y-- >0){let F=this.tokens[Y];if(F[0]===")")W.push(F);else if(F[0]==="("||F[0]==="CALL_START")if(W.length)W.pop();else if(F[0]==="(")return F[0]="PARAM_START",this.tagDoIife(Y-1);else{this.tokens[this.tokens.length-1][0]="CALL_END";return}}}tagDoIife(Y){let W=this.tokens[Y??this.tokens.length-1];if(W?.[0]==="DO")W[0]="DO_IIFE"}rewrite(Y){return this.tokens=Y,this.removeLeadingNewlines(),this.closeOpenCalls(),this.closeOpenIndexes(),this.normalizeLines(),this.rewriteRender(),this.rewriteTypes(),this.tagPostfixConditionals(),this.addImplicitBracesAndParens(),this.addImplicitCallCommas(),this.closeMergeAssignments(),this.tokens}removeLeadingNewlines(){let Y=0;while(this.tokens[Y]?.[0]==="TERMINATOR")Y++;if(Y>0)this.tokens.splice(0,Y)}closeOpenCalls(){this.scanTokens((Y,W)=>{if(Y[0]==="CALL_START")this.detectEnd(W+1,(F)=>F[0]===")"||F[0]==="CALL_END",(F)=>F[0]="CALL_END");return 1})}closeOpenIndexes(){this.scanTokens((Y,W)=>{if(Y[0]==="INDEX_START")this.detectEnd(W+1,(F)=>F[0]==="]"||F[0]==="INDEX_END",(F,U)=>{if(this.tokens[U+1]?.[0]===":")Y[0]="[",F[0]="]";else F[0]="INDEX_END"});return 1})}normalizeLines(){let Y=null,W=null,F=null,U=($,Q)=>{return $[1]!==";"&&c1.has($[0])&&!($[0]==="TERMINATOR"&&R1.has(this.tokens[Q+1]?.[0]))&&!($[0]==="ELSE"&&Y!=="THEN")||$[0]==="INDENT"&&!$.generated&&(Y==="->"||Y==="=>")||$[0]===","&&(Y==="->"||Y==="=>")&&!this.commaInImplicitCall(Q)&&!this.commaInImplicitObject(Q)||q1.has($[0])&&(this.tokens[Q-1]?.newLine||this.tokens[Q-1]?.[0]==="OUTDENT")},A=($,Q)=>{let J=this.tokens[Q-1]?.[0]===","?Q-1:Q;this.tokens.splice(J,0,F)};this.scanTokens(($,Q,J)=>{let[Z]=$;if(Z==="TERMINATOR"){if(this.tokens[Q+1]?.[0]==="ELSE"&&this.tokens[Q-1]?.[0]!=="OUTDENT")return J.splice(Q,1,...this.makeIndentation()),1;if(R1.has(this.tokens[Q+1]?.[0]))return J.splice(Q,1),0}if(Z==="CATCH")for(let K=1;K<=2;K++){let X=this.tokens[Q+K]?.[0];if(X==="OUTDENT"||X==="TERMINATOR"||X==="FINALLY")return J.splice(Q+K,0,...this.makeIndentation()),2+K}if((Z==="->"||Z==="=>")&&(this.tokens[Q+1]?.[0]===","||this.tokens[Q+1]?.[0]==="]"))return[W,F]=this.makeIndentation(),J.splice(Q+1,0,W,F),1;if(G1.has(Z)&&this.tokens[Q+1]?.[0]!=="INDENT"&&!(Z==="ELSE"&&this.tokens[Q+1]?.[0]==="IF")){if(Y=Z,[W,F]=this.makeIndentation(),Z==="THEN")W.fromThen=!0;if(J.splice(Q+1,0,W),this.detectEnd(Q+2,U,A),Z==="THEN")J.splice(Q,1);return 1}return 1})}rewriteRender(){let Y=!1,W=0,F=0,U=[],A=(Z)=>{let K=Z.split("#")[0];return n.has(K)},$=(Z)=>{if(!Z||typeof Z!=="string")return!1;return/^[A-Z]/.test(Z)},Q=(Z)=>{return A(Z)||$(Z)},J=(Z,K)=>{let X=K;while(X>0){let M=Z[X-1][0];if(M==="INDENT"||M==="OUTDENT"||M==="TERMINATOR"||M==="RENDER"||M==="CALL_END"||M===")")break;X--}return Z[X]&&Z[X][0]==="IDENTIFIER"&&A(Z[X][1])};this.scanTokens(function(Z,K,X){let M=Z[0],R=K<X.length-1?X[K+1]:null;if(M==="RENDER")return Y=!0,W=F+1,1;if(M==="INDENT")return F++,1;if(M==="OUTDENT"){F--;let D=0;while(U.length>0&&U[U.length-1]>F){let z=V("CALL_END",")",Z);X.splice(K+1+D,0,z),U.pop(),D++}if(Y&&F<W)Y=!1;return 1+D}if(!Y)return 1;if(M==="IDENTIFIER"&&!Z.spaced){let D=[Z[1]],z=K+1;while(z+1<X.length){let q=X[z],H=X[z+1];if(q[0]==="-"&&!q.spaced&&(H[0]==="IDENTIFIER"||H[0]==="PROPERTY")){if(D.push(H[1]),z+=2,H[0]==="PROPERTY")break}else break}if(D.length>1&&z>K+1&&X[z-1][0]==="PROPERTY")return Z[0]="STRING",Z[1]=`"${D.join("-")}"`,X.splice(K+1,z-K-1),1}if(M==="."){let D=K>0?X[K-1]:null,z=D?D[0]:null;if(z==="INDENT"||z==="TERMINATOR"){if(R&&R[0]==="PROPERTY"){let q=V("IDENTIFIER","div",Z);return X.splice(K,0,q),2}}}if(M==="IDENTIFIER"||M==="PROPERTY"){let D=X[K+1],z=X[K+2];if(D&&D[0]==="#"&&z&&z[0]==="PROPERTY"){if(Z[1]=Z[1]+"#"+z[1],z.spaced)Z.spaced=!0;return X.splice(K+1,2),1}}if(M==="BIND"){let D=K>0?X[K-1]:null,z=X[K+1];if(D&&(D[0]==="IDENTIFIER"||D[0]==="PROPERTY")&&z&&z[0]==="IDENTIFIER")return D[1]=`__bind_${D[1]}__`,Z[0]=":",Z[1]=":",1}if(M==="@"){let D=K+1;if(D<X.length&&X[D][0]==="PROPERTY"){D++;while(D+1<X.length&&X[D][0]==="."&&X[D+1][0]==="PROPERTY")D+=2;if(D>K+2&&D<X.length&&X[D][0]===":"){let z=V("[","[",Z);X.splice(K,0,z);let q=V("]","]",X[D+1]);return X.splice(D+1,0,q),2}}}if(M==="."&&R&&R[0]==="("){let D=K>0?X[K-1]:null,z=D?D[0]:null,q=z==="INDENT"||z==="TERMINATOR",H=V("PROPERTY","__cx__",Z);R[0]="CALL_START";let G=1;for(let I=K+2;I<X.length&&G>0;I++)if(X[I][0]==="("||X[I][0]==="CALL_START")G++;else if(X[I][0]===")"){if(G--,G===0)X[I][0]="CALL_END"}else if(X[I][0]==="CALL_END")G--;if(q){let I=V("IDENTIFIER","div",Z);return X.splice(K,0,I),X.splice(K+2,0,H),3}else return X.splice(K+1,0,H),2}if(R&&R[0]==="INDENT"){if(M==="->"||M==="=>"||M==="CALL_START"||M==="(")return 1;let D=!1;if(M==="IDENTIFIER"&&Q(Z[1]))D=!0;else if(M==="PROPERTY"||M==="STRING"||M==="CALL_END"||M===")")D=J(X,K);else if(M==="IDENTIFIER"&&K>1&&X[K-1][0]==="..."){if(J(X,K)){let z=V(",",",",Z),q=V("->","->",Z);return q.newLine=!0,X.splice(K+1,0,z,q),3}}if(D){let z=V("CALL_START","(",Z),q=V("->","->",Z);return q.newLine=!0,X.splice(K+1,0,z,q),U.push(F+1),3}}return 1})}tagPostfixConditionals(){let Y=null,W=(U,A)=>{return U[0]==="TERMINATOR"||U[0]==="INDENT"&&!G1.has(this.tokens[A-1]?.[0])},F=(U)=>{if(U[0]!=="INDENT"||U.generated&&!U.fromThen)Y[0]="POST_"+Y[0]};this.scanTokens((U,A)=>{if(U[0]!=="IF"&&U[0]!=="UNLESS")return 1;return Y=U,this.detectEnd(A+1,W,F),1})}addImplicitBracesAndParens(){let Y=[],W=!1;this.scanTokens((F,U,A)=>{let[$]=F,Q=A[U-1]||[],J=A[U+1]||[],[Z]=Q,[K]=J,X=U,M=(O)=>U-X+O,R=()=>Y[Y.length-1],D=(O)=>O?.[2]?.ours,z=()=>D(R())&&R()?.[0]==="(",q=()=>D(R())&&R()?.[0]==="{",H=(O)=>{Y.push(["(",O,{ours:!0}]),A.splice(O,0,V("CALL_START","("))},G=()=>{Y.pop(),A.splice(U,0,V("CALL_END",")")),U+=1},I=(O,N={})=>{Y.push(["{",O,{sameLine:!0,startsLine:N.startsLine??!0,ours:!0}]);let E=V("{","{");if(!E.data)E.data={};E.data.generated=!0,A.splice(O,0,E)},P=(O)=>{O=O??U,Y.pop(),A.splice(O,0,V("}","}")),U+=1};if((z()||q())&&k1.has($))return Y.push(["CONTROL",U,{ours:!0}]),M(1);if($==="INDENT"&&D(R())){if(Z!=="=>"&&Z!=="->"&&Z!=="["&&Z!=="("&&Z!==","&&Z!=="{"&&Z!=="ELSE"&&Z!=="=")while(z()||q()&&Z!==":")if(z())G();else P();if(R()?.[2]?.ours&&R()[0]==="CONTROL")Y.pop();return Y.push([$,U]),M(1)}if(y.has($))return Y.push([$,U]),M(1);if(b.has($)){while(D(R()))if(z())G();else if(q())P();else Y.pop();Y.pop()}if(U1.has($)&&F.spaced&&(a.has(K)||K==="..."&&a.has(A[U+2]?.[0])||y1.has(K)&&!J.spaced&&!J.newLine)&&!(($==="]"||$==="}")&&(K==="->"||K==="=>")))return H(U+1),M(2);if(U1.has($)&&this.tokens[U+1]?.[0]==="INDENT"&&this.looksObjectish(U+2)&&!this.findTagsBackwards(U,["CLASS","EXTENDS","IF","CATCH","SWITCH","LEADING_WHEN","FOR","WHILE","UNTIL"]))return H(U+1),Y.push(["INDENT",U+2]),M(3);if($==="SPACE?")W=!0;if($===":"){if(W)return W=!1,M(1);let O=b.has(this.tokens[U-1]?.[0])?Y[Y.length-1]?.[1]??U-1:U-1;if(this.tokens[U-2]?.[0]==="@")O=U-2;let N=O<=0||m.has(this.tokens[O-1]?.[0])||this.tokens[O-1]?.newLine;if(R()){let[E,T]=R(),L=Y[Y.length-2];if((E==="{"||E==="INDENT"&&L?.[0]==="{"&&!D(L))&&(N||this.tokens[O-1]?.[0]===","||this.tokens[O-1]?.[0]==="{"||this.tokens[O]?.[0]==="{"))return M(1)}return I(O,{startsLine:!!N}),M(2)}if(m.has($))for(let O=Y.length-1;O>=0;O--){if(!D(Y[O]))break;if(Y[O][0]==="{")Y[O][2].sameLine=!1}let B=Z==="OUTDENT"||Q.newLine,_=$==="||"||$==="&&",w=!1;if(_){let O=U+1,N=A[O]?.[0];if(N==="("||N==="["||N==="{"){for(let E=1;++O<A.length&&E>0;)if(N=A[O][0],N==="("||N==="["||N==="{")E++;else if(N===")"||N==="]"||N==="}")E--}else if(N&&N!=="TERMINATOR"&&N!=="OUTDENT"&&N!==",")O++;w=A[O]?.[0]===","}if(v1.has($)&&!w||q1.has($)&&B)while(D(R())){let[O,,{sameLine:N,startsLine:E}]=R();if(z()&&Z!==",")G();else if(q()&&!_&&N&&$!=="TERMINATOR"&&Z!==":")P();else if(q()&&$==="TERMINATOR"&&Z!==","&&!(E&&this.looksObjectish(U+1)))P();else if(R()?.[2]?.ours&&R()[0]==="CONTROL"&&A[R()[1]]?.[0]==="CLASS"&&$==="TERMINATOR")Y.pop();else break}if($===","&&!this.looksObjectish(U+1)&&q()&&(K!=="TERMINATOR"||!this.looksObjectish(U+2))){let O=K==="OUTDENT"?1:0;while(q())P(U+O)}return M(1)})}addImplicitCallCommas(){let Y=0,W=0,F=this.tokens;while(W<F.length){let U=F[W][0],A=W>0?F[W-1][0]:null;if(U==="CALL_START"||U==="(")Y++;if(U==="CALL_END"||U===")")Y--;if(Y>0&&(U==="->"||U==="=>")&&g1.has(A))F.splice(W,0,V(",",",")),W++;W++}}scanTokens(Y){let W=0;while(W<this.tokens.length)W+=Y.call(this,this.tokens[W],W,this.tokens)}detectEnd(Y,W,F,U={}){let A=0;while(Y<this.tokens.length){let $=this.tokens[Y];if(A===0&&W.call(this,$,Y))return F.call(this,$,Y);if(y.has($[0]))A++;if(b.has($[0]))A--;if(A<0){if(U.returnOnNegativeLevel)return;return F.call(this,$,Y)}Y++}}closeMergeAssignments(){let Y=this.tokens;for(let W=0;W<Y.length;W++){if(!Y[W].mergeClose)continue;let F=0;for(let U=W+1;U<Y.length;U++){let A=Y[U][0];if(A==="("||A==="["||A==="{"||A==="CALL_START"||A==="INDEX_START"||A==="INDENT")F++;if(A===")"||A==="]"||A==="}"||A==="CALL_END"||A==="INDEX_END"||A==="OUTDENT")F--;if(F<0||F===0&&A==="TERMINATOR"){Y.splice(U,0,V("CALL_END",")",Y[U-1]));break}if(U===Y.length-1){Y.splice(U+1,0,V("CALL_END",")",Y[U]));break}}}}commaInImplicitCall(Y){let W=0;for(let F=Y-1;F>=0;F--){let U=this.tokens[F][0];if(b.has(U)){W++;continue}if(y.has(U)){if(U==="INDENT")return!1;if(W--,W<0)return!1;continue}if(W>0)continue;if(U1.has(U)&&this.tokens[F].spaced){let A=this.tokens[F+1]?.[0];return a.has(A)||A==="..."&&a.has(this.tokens[F+2]?.[0])}}return!1}commaInImplicitObject(Y){let W=0;for(let F=Y-1;F>=0;F--){let U=this.tokens[F][0];if(b.has(U)){W++;continue}if(y.has(U)){if(W--,W<0)return!1;continue}if(W>0)continue;if(U===":"&&F>0&&this.tokens[F-1][0]==="PROPERTY")return this.looksObjectish(Y+1);if(m.has(U))return!1}return!1}looksObjectish(Y){if(!this.tokens[Y])return!1;if(this.tokens[Y]?.[0]==="@"&&this.tokens[Y+2]?.[0]===":")return!0;if(this.tokens[Y+1]?.[0]===":")return!0;if(y.has(this.tokens[Y]?.[0])){let W=null;if(this.detectEnd(Y+1,(F)=>b.has(F[0]),(F,U)=>W=U),W&&this.tokens[W+1]?.[0]===":")return!0}return!1}findTagsBackwards(Y,W){let F=new Set(W),U=[];while(Y>=0){let A=this.tokens[Y]?.[0];if(!U.length&&F.has(A))return!0;if(b.has(A))U.push(A);if(y.has(A)&&U.length)U.pop();if(!U.length&&(y.has(A)&&!this.tokens[Y]?.generated||m.has(A)))break;Y--}return!1}makeIndentation(Y){let W=V("INDENT",2),F=V("OUTDENT",2);if(Y)W.generated=F.generated=!0,W.origin=F.origin=Y;else W.explicit=F.explicit=!0;return[W,F]}}X1(g);var R2={symbolIds:{$accept:0,$end:1,error:2,Root:3,Body:4,Line:5,TERMINATOR:6,Expression:7,ExpressionLine:8,Statement:9,Return:10,STATEMENT:11,Import:12,Export:13,Value:14,Code:15,Operation:16,Assign:17,ReactiveAssign:18,ComputedAssign:19,ReadonlyAssign:20,ReactAssign:21,If:22,Try:23,While:24,For:25,Switch:26,Class:27,Component:28,Render:29,Throw:30,Yield:31,Def:32,Enum:33,CodeLine:34,OperationLine:35,Assignable:36,Literal:37,Parenthetical:38,Range:39,Invocation:40,DoIife:41,This:42,Super:43,MetaProperty:44,AlphaNumeric:45,JS:46,Regex:47,UNDEFINED:48,NULL:49,BOOL:50,INFINITY:51,NAN:52,NUMBER:53,String:54,Identifier:55,IDENTIFIER:56,Property:57,PROPERTY:58,STRING:59,STRING_START:60,Interpolations:61,STRING_END:62,InterpolationChunk:63,INTERPOLATION_START:64,INTERPOLATION_END:65,INDENT:66,OUTDENT:67,REGEX:68,REGEX_START:69,REGEX_END:70,RegexWithIndex:71,",":72,"=":73,REACTIVE_ASSIGN:74,COMPUTED_ASSIGN:75,READONLY_ASSIGN:76,REACT_ASSIGN:77,SimpleAssignable:78,Array:79,Object:80,ThisProperty:81,".":82,"?.":83,INDEX_START:84,INDEX_END:85,Slice:86,ES6_OPTIONAL_INDEX:87,"{":88,ObjAssignable:89,":":90,FOR:91,ForVariables:92,FOROF:93,OptComma:94,"}":95,WHEN:96,OWN:97,AssignList:98,AssignObj:99,ObjRestValue:100,SimpleObjAssignable:101,"[":102,"]":103,"@":104,"...":105,ObjSpreadExpr:106,SUPER:107,Arguments:108,DYNAMIC_IMPORT:109,Elisions:110,ArgElisionList:111,OptElisions:112,ArgElision:113,Arg:114,Elision:115,RangeDots:116,"..":117,DEF:118,CALL_START:119,ParamList:120,CALL_END:121,Block:122,PARAM_START:123,PARAM_END:124,FuncGlyph:125,"->":126,"=>":127,Param:128,ParamVar:129,Splat:130,ES6_OPTIONAL_CALL:131,ArgList:132,SimpleArgs:133,THIS:134,NEW_TARGET:135,IMPORT_META:136,"(":137,")":138,RETURN:139,THROW:140,YIELD:141,FROM:142,IfBlock:143,IF:144,ELSE:145,UnlessBlock:146,UNLESS:147,POST_IF:148,POST_UNLESS:149,TRY:150,Catch:151,FINALLY:152,CATCH:153,SWITCH:154,Whens:155,When:156,LEADING_WHEN:157,WhileSource:158,WHILE:159,UNTIL:160,Loop:161,LOOP:162,FORIN:163,BY:164,FORAS:165,AWAIT:166,FORASAWAIT:167,ForValue:168,CLASS:169,EXTENDS:170,ENUM:171,COMPONENT:172,ComponentBody:173,ComponentLine:174,RENDER:175,IMPORT:176,ImportDefaultSpecifier:177,ImportNamespaceSpecifier:178,ImportSpecifierList:179,ImportSpecifier:180,AS:181,DEFAULT:182,IMPORT_ALL:183,EXPORT:184,ExportSpecifierList:185,EXPORT_ALL:186,ExportSpecifier:187,UNARY:188,DO:189,DO_IIFE:190,UNARY_MATH:191,"-":192,"+":193,"?":194,"--":195,"++":196,MATH:197,"**":198,SHIFT:199,COMPARE:200,"&":201,"^":202,"|":203,"||":204,"??":205,"&&":206,"!?":207,PIPE:208,RELATION:209,"SPACE?":210,COMPOUND_ASSIGN:211},tokenNames:{2:"error",6:"TERMINATOR",11:"STATEMENT",46:"JS",48:"UNDEFINED",49:"NULL",50:"BOOL",51:"INFINITY",52:"NAN",53:"NUMBER",56:"IDENTIFIER",58:"PROPERTY",59:"STRING",60:"STRING_START",62:"STRING_END",64:"INTERPOLATION_START",65:"INTERPOLATION_END",66:"INDENT",67:"OUTDENT",68:"REGEX",69:"REGEX_START",70:"REGEX_END",72:",",73:"=",74:"REACTIVE_ASSIGN",75:"COMPUTED_ASSIGN",76:"READONLY_ASSIGN",77:"REACT_ASSIGN",82:".",83:"?.",84:"INDEX_START",85:"INDEX_END",87:"ES6_OPTIONAL_INDEX",88:"{",90:":",91:"FOR",93:"FOROF",95:"}",96:"WHEN",97:"OWN",102:"[",103:"]",104:"@",105:"...",107:"SUPER",109:"DYNAMIC_IMPORT",117:"..",118:"DEF",119:"CALL_START",121:"CALL_END",123:"PARAM_START",124:"PARAM_END",126:"->",127:"=>",131:"ES6_OPTIONAL_CALL",134:"THIS",135:"NEW_TARGET",136:"IMPORT_META",137:"(",138:")",139:"RETURN",140:"THROW",141:"YIELD",142:"FROM",144:"IF",145:"ELSE",147:"UNLESS",148:"POST_IF",149:"POST_UNLESS",150:"TRY",152:"FINALLY",153:"CATCH",154:"SWITCH",157:"LEADING_WHEN",159:"WHILE",160:"UNTIL",162:"LOOP",163:"FORIN",164:"BY",165:"FORAS",166:"AWAIT",167:"FORASAWAIT",169:"CLASS",170:"EXTENDS",171:"ENUM",172:"COMPONENT",175:"RENDER",176:"IMPORT",181:"AS",182:"DEFAULT",183:"IMPORT_ALL",184:"EXPORT",186:"EXPORT_ALL",188:"UNARY",189:"DO",190:"DO_IIFE",191:"UNARY_MATH",192:"-",193:"+",194:"?",195:"--",196:"++",197:"MATH",198:"**",199:"SHIFT",200:"COMPARE",201:"&",202:"^",203:"|",204:"||",205:"??",206:"&&",207:"!?",208:"PIPE",209:"RELATION",210:"SPACE?",211:"COMPOUND_ASSIGN"},parseTable:(()=>{let Y=[107,1,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,-1,1,2,3,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,1,1,0,2,1,5,-2,107,5,1,5,59,2,71,-3,-3,-3,-3,-3,31,1,5,59,1,1,5,19,12,18,17,10,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-6,-6,-6,-6,-6,-6,127,-6,-6,-6,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,9,1,5,59,1,1,5,31,18,17,-7,-7,-7,-7,-7,-7,-7,-7,-7,14,1,5,59,1,1,5,31,18,17,10,1,9,1,1,-8,-8,-8,-8,-8,-8,-8,-8,-8,128,129,130,96,97,54,1,5,48,5,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,3,9,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-13,-13,132,105,106,-13,-13,-13,-13,135,136,137,-13,138,-13,-13,-13,-13,-13,-13,-13,133,-13,139,-13,-13,134,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,131,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,46,1,5,59,1,1,5,10,1,1,1,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-14,-14,-14,-14,-14,-14,140,141,142,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,9,1,5,59,1,1,5,31,18,17,-33,-33,-33,-33,-33,-33,-33,-33,-33,9,1,5,59,1,1,5,31,18,17,-34,-34,-34,-34,-34,-34,-34,-34,-34,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,57,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-35,-35,-35,-35,-35,-35,-35,-35,143,144,145,146,147,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,18,6,49,1,10,1,5,7,1,1,7,14,2,1,15,1,3,4,1,-173,152,104,-173,-173,-173,154,155,153,99,157,156,151,148,-173,-173,149,150,106,5,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,4,1,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,159,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,160,102,103,53,52,72,73,93,99,59,83,87,84,85,66,158,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,103,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,161,162,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,103,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,164,165,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,166,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,172,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,173,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,174,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,175,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,45,14,1,21,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,7,14,2,3,2,14,2,1,1,7,1,1,1,53,177,178,179,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,176,72,73,93,99,83,87,84,85,167,168,90,91,86,88,89,82,171,45,14,1,21,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,7,14,2,3,2,14,2,1,1,7,1,1,1,53,177,178,179,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,180,72,73,93,99,83,87,84,85,167,168,90,91,86,88,89,82,171,60,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,181,182,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,183,102,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,185,184,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,186,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,187,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,2,66,56,160,188,2,66,56,160,189,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,14,39,16,1,23,1,1,7,4,5,5,2,25,37,2,193,152,104,154,155,153,99,190,191,83,156,195,192,194,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,196,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,197,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,90,1,5,8,1,21,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,5,1,1,1,1,3,6,1,1,1,4,3,2,1,2,2,1,6,1,1,1,2,2,8,4,1,1,1,1,1,1,7,1,1,1,1,7,3,1,10,1,3,1,1,2,3,20,2,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-304,-304,177,178,179,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-304,160,-304,102,103,-304,200,72,73,93,-304,99,-304,-304,-304,-304,-304,83,-304,87,-304,84,85,-304,-304,198,167,-304,168,90,91,86,88,89,82,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,199,171,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,1,66,201,2,66,56,160,202,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,203,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,204,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,139,1,5,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,5,1,1,1,1,3,5,1,1,1,1,4,3,2,1,2,2,1,6,1,1,1,2,2,8,1,3,2,1,1,1,1,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,1,1,1,1,1,1,1,1,1,2,2,1,3,1,8,4,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-224,-224,205,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-224,206,-224,102,103,-224,53,52,72,73,93,-224,99,-224,-224,-224,-224,-224,83,-224,87,-224,84,85,-224,66,-224,167,-224,168,90,91,86,88,89,82,-224,69,64,65,207,54,94,-224,55,95,-224,-224,56,60,57,-224,-224,58,98,-224,-224,-224,49,-224,61,67,62,63,70,71,169,170,171,46,47,48,50,51,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,2,55,1,208,104,2,55,1,209,104,6,15,19,89,2,1,1,211,210,42,43,90,91,138,1,5,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,5,1,1,1,1,3,5,1,1,1,1,4,3,2,1,2,2,1,6,1,1,1,2,2,8,1,3,2,1,1,1,1,7,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,4,4,1,1,1,1,1,1,1,1,1,2,2,1,3,1,8,4,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-221,-221,212,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-221,213,-221,102,103,-221,53,52,72,73,93,-221,99,-221,-221,-221,-221,-221,83,-221,87,-221,84,85,-221,66,-221,167,-221,168,90,91,86,88,89,82,-221,69,64,65,54,94,-221,55,95,-221,-221,56,60,57,-221,-221,58,98,-221,-221,-221,49,-221,61,67,62,63,70,71,169,170,171,46,47,48,50,51,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,9,54,1,1,3,1,28,89,1,5,214,218,104,105,106,217,215,216,219,60,14,1,3,1,1,1,6,1,4,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,14,2,3,2,9,5,2,1,1,7,1,1,1,32,2,1,10,4,4,177,178,226,227,228,229,221,222,223,224,232,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,225,104,105,106,102,103,53,233,72,73,93,220,83,87,84,85,66,167,168,90,91,86,88,89,82,61,67,62,230,231,171,57,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,57,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,106,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,234,3,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,235,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,113,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,3,5,1,1,1,1,7,3,11,1,1,1,2,2,1,1,2,1,1,3,5,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,236,245,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,242,102,103,243,53,52,72,73,93,99,59,83,237,87,247,84,85,238,239,241,244,240,66,42,43,90,91,246,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,4,82,2,24,11,249,250,248,139,2,108,11,251,139,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,54,1,5,51,1,1,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-206,-206,252,253,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,1,82,254,1,82,255,54,11,35,2,1,1,1,1,1,3,3,1,6,2,1,8,11,3,11,2,3,2,9,5,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,54,11,35,2,1,1,1,1,1,3,3,1,6,2,1,8,11,3,11,2,3,2,9,5,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,61,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,61,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,256,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,257,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,258,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,259,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,4,1,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,261,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,160,102,103,53,52,72,73,93,99,59,83,87,84,85,66,260,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,23,6,39,8,1,1,1,1,1,1,1,6,1,5,9,8,6,3,1,1,1,1,2,1,-109,267,100,101,269,104,270,253,105,106,-109,-109,-109,271,262,-109,263,268,272,264,265,266,273,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,45,14,1,21,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,7,14,2,3,2,14,2,1,1,7,1,1,1,53,177,178,179,34,35,36,274,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,233,72,73,93,99,83,87,84,85,167,168,90,91,86,88,89,82,171,63,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,4,3,3,1,10,1,3,1,1,2,3,11,11,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,55,1,5,53,1,2,2,1,1,1,3,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,6,54,5,1,1,2,1,278,105,106,275,276,277,109,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,5,2,1,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,1,1,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,-5,279,-5,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-5,-5,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,-5,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,280,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,281,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,282,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,283,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,284,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,285,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,286,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,287,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,288,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,291,163,289,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,290,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,294,163,292,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,293,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,297,163,295,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,296,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,298,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,299,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,300,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,301,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,302,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,303,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,14,39,16,1,23,1,1,7,4,5,5,2,25,37,2,307,152,104,154,155,153,99,304,305,83,156,195,306,194,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,308,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,309,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,53,1,5,53,1,5,1,1,3,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,53,1,5,53,1,5,1,1,3,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,2,108,11,310,139,2,57,1,311,253,2,57,1,312,253,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,2,6,1,1,1,1,5,2,3,11,2,1,2,2,7,1,1,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,313,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,318,77,78,79,80,81,100,101,92,104,105,106,314,102,103,316,53,52,72,73,93,315,99,59,83,87,320,84,85,317,319,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,1,84,321,109,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,1,2,2,5,4,3,2,2,1,1,3,2,2,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,326,245,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,325,102,103,53,52,72,73,93,99,59,83,87,247,84,85,324,66,322,42,43,90,91,246,323,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,2,57,1,327,253,2,57,1,328,253,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,329,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,330,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,102,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,332,331,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,333,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,102,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,335,334,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,336,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,102,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,338,337,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,339,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,102,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,341,340,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,342,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,102,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,344,343,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,345,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,9,6,60,1,5,22,1,8,18,3,-217,-217,-217,347,348,-217,-217,-217,346,6,6,60,1,5,49,3,-174,-174,-174,-174,-174,-174,7,6,60,1,5,1,48,3,-178,-178,-178,-178,349,-178,-178,15,6,49,1,10,1,5,7,1,1,7,14,2,17,3,5,-181,152,104,-181,-181,-181,154,155,153,99,157,156,-181,-181,350,11,6,60,1,5,1,20,28,3,39,2,2,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,11,6,60,1,5,1,20,28,3,39,2,2,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,11,6,60,1,5,1,20,28,3,39,2,2,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,11,6,60,1,5,1,20,28,3,39,2,2,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,2,57,1,252,253,113,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,3,5,1,1,1,1,7,3,11,1,1,1,2,2,1,1,2,1,1,3,5,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,326,245,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,242,102,103,243,53,52,72,73,93,99,59,83,237,87,247,84,85,238,239,241,244,240,66,42,43,90,91,246,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,9,1,5,59,1,1,5,31,18,17,-170,-170,-170,-170,-170,-170,-170,-170,-170,106,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,7,1,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,352,3,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,351,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,125,126,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,118,-370,120,-370,-370,-370,9,1,5,59,1,1,5,31,18,17,-367,-367,-367,-367,-367,-367,-367,-367,-367,5,148,1,9,1,1,128,129,130,96,97,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,125,126,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,118,-371,120,-371,-371,-371,9,1,5,59,1,1,5,31,18,17,-368,-368,-368,-368,-368,-368,-368,-368,-368,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,125,126,-372,-372,-372,-372,-372,-372,-372,-372,-372,111,-372,-372,-372,-372,-372,-372,118,-372,120,-372,-372,-372,18,6,49,1,10,1,5,7,1,1,7,14,2,1,15,1,3,4,1,-173,152,104,-173,-173,-173,154,155,153,99,157,156,151,353,-173,-173,149,150,2,66,56,160,158,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,161,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,164,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,5,15,108,2,1,1,211,167,168,90,91,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,125,126,-373,-373,-373,-373,-373,-373,-373,-373,-373,111,-373,-373,-373,-373,-373,-373,118,-373,120,-373,-373,-373,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,125,126,-374,-374,-374,-374,-374,-374,-374,-374,-374,111,-374,-374,-374,-374,-374,-374,118,-374,120,-374,-374,-374,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,125,126,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,118,-376,120,-376,-376,-376,2,80,8,354,99,57,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-378,-378,-86,-86,-378,-378,-378,-378,-86,-86,-86,-86,-86,-86,-86,-86,-378,-86,-378,-378,-378,-378,-378,-378,-378,-378,-86,-378,-378,-86,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-86,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,10,54,5,1,22,1,1,3,21,11,12,132,105,106,135,136,137,138,133,139,134,3,82,1,1,140,141,142,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,57,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-379,-379,-86,-86,-379,-379,-379,-379,-86,-86,-86,-86,-86,-86,-86,-86,-379,-86,-379,-379,-379,-379,-379,-379,-379,-379,-86,-379,-379,-86,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-86,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,102,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,357,355,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,356,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-83,-83,-83,-83,-83,-83,-83,-83,127,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,124,125,126,96,97,-83,-83,-83,-83,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,358,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,359,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,3,66,56,22,160,360,361,46,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,2,1,1,6,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,362,363,364,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,4,93,70,2,2,366,365,367,368,11,55,1,23,1,1,7,4,10,2,25,39,152,104,154,155,153,99,369,157,156,195,194,11,55,1,23,1,1,7,4,10,2,25,39,152,104,154,155,153,99,370,157,156,195,194,3,66,56,42,160,371,372,5,72,21,70,2,2,373,-302,-302,-302,-302,6,72,1,20,70,2,2,-300,374,-300,-300,-300,-300,23,66,25,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,375,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,3,155,1,1,376,377,378,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,379,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,59,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,1,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-308,-308,-86,-86,-308,160,-308,-308,-86,-86,-86,-86,-86,-86,-86,-86,-308,-86,-308,-308,-308,-308,-308,-308,-308,-308,-86,-308,380,-308,-86,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,381,-308,-308,-86,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,105,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,1,1,1,1,8,4,1,1,1,1,1,2,1,384,385,386,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,382,383,63,70,71,44,45,68,46,47,48,50,51,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,125,126,-222,-222,-222,-222,-222,-222,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,80,8,387,99,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,125,126,-225,-225,-225,-225,-225,-225,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,80,8,388,99,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,389,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,3,66,53,3,160,390,391,2,66,56,160,392,9,1,5,59,1,1,5,31,18,17,-369,-369,-369,-369,-369,-369,-369,-369,-369,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,125,126,-219,-219,-219,-219,-219,-219,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,80,8,393,99,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,2,72,70,395,394,1,142,396,7,55,1,10,29,84,1,2,401,104,400,397,398,399,402,2,72,70,-337,-337,1,181,403,26,6,39,8,1,1,1,1,1,1,1,6,1,5,9,8,6,3,1,1,1,1,2,1,77,3,2,-109,267,100,101,408,104,270,253,105,106,407,-109,-109,271,262,404,263,268,272,264,265,266,273,409,405,406,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,61,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-89,-89,-89,-89,-89,-89,-89,-89,410,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,411,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,412,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,1,142,413,56,1,5,53,1,5,1,1,5,2,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-35,-35,-35,-35,-35,-35,-35,-35,144,145,146,147,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,57,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,2,6,132,107,414,105,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,415,3,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,31,6,60,1,5,19,12,2,11,1,4,27,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-199,-199,-199,-199,127,-199,320,416,319,-199,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,57,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,109,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,3,5,1,1,1,1,7,3,11,1,1,1,2,2,5,1,3,5,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,326,245,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,243,53,52,72,73,93,99,59,83,417,87,247,84,85,419,418,66,42,43,90,91,246,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,9,6,60,1,5,22,1,8,9,9,-217,-217,-217,421,422,-217,-217,420,-217,59,6,5,35,2,1,1,1,1,1,3,3,1,6,1,1,1,3,5,11,3,11,1,1,1,2,2,9,5,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,423,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,5,6,60,1,5,31,-145,-145,-145,-145,-145,112,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,3,5,1,1,1,1,7,3,11,2,1,2,2,1,1,2,1,1,3,5,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,326,245,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,242,102,103,243,53,52,72,73,93,99,59,83,87,247,84,85,425,424,241,244,240,66,42,43,90,91,246,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,59,6,5,35,2,1,1,1,1,1,3,3,1,6,1,1,1,3,5,11,3,11,1,1,1,2,2,9,5,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,5,6,60,1,5,31,-150,-150,-150,-150,-150,6,6,60,1,5,31,18,-200,-200,-200,-200,-200,-200,6,6,60,1,5,31,18,-201,-201,-201,-201,-201,-201,106,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,1,1,1,3,5,1,1,1,1,7,3,11,1,1,3,2,9,3,2,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,-202,426,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-202,-202,102,103,-202,53,52,72,73,93,99,59,83,-202,87,84,85,66,-202,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,53,1,5,53,1,5,1,1,3,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,2,57,1,427,253,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,428,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,429,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,53,1,5,53,1,5,1,1,3,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,61,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,61,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,2,57,1,430,253,2,57,1,431,253,24,66,25,31,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,127,432,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,24,66,25,31,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,127,433,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-255,-255,-255,-255,-255,-255,-255,-255,127,-255,-255,434,-255,-255,-255,-255,-255,-255,-255,-255,125,126,96,97,-255,-255,-255,-255,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-257,-257,-257,-257,-257,-257,-257,-257,127,-257,-257,435,-257,-257,-257,-257,-257,-257,-257,-257,125,126,96,97,-257,-257,-257,-257,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,45,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,1,2,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-264,-264,-264,160,-264,-264,-264,-264,127,-264,-264,-264,-264,-264,-264,-264,436,-264,-264,-264,-264,125,126,96,97,-264,-264,-264,-264,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,6,6,60,1,5,18,5,-114,-114,-114,-114,437,-114,8,6,60,1,5,22,1,8,18,-217,-217,-217,439,438,-217,-217,-217,7,6,60,1,5,1,17,5,-123,-123,-123,-123,440,-123,-123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,441,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,3,57,1,44,252,253,442,6,6,60,1,5,18,5,-126,-126,-126,-126,-126,-126,5,6,60,1,5,23,-110,-110,-110,-110,-110,11,6,60,1,5,1,9,1,1,6,5,24,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,11,6,60,1,5,1,9,1,1,6,5,24,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,11,6,60,1,5,1,9,1,1,6,5,24,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,5,6,60,1,5,23,-115,-115,-115,-115,-115,17,38,4,1,12,1,1,1,22,1,7,13,3,2,1,2,25,3,446,448,447,269,104,270,253,445,271,99,443,87,444,449,450,86,82,53,1,5,53,1,5,1,1,3,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-39,-39,-39,-39,-39,-39,-39,451,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,6,54,5,1,2,1,1,278,105,106,452,453,277,4,59,1,2,2,-58,-58,-58,-58,107,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,5,1,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,454,3,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,456,455,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,4,59,1,2,2,-63,-63,-63,-63,5,1,5,59,2,71,-4,-4,-4,-4,-4,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,125,126,-382,-382,-382,-382,-382,-382,-382,-382,110,111,-382,-382,-382,-382,-382,-382,118,-382,120,-382,-382,-382,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,125,126,-383,-383,-383,-383,-383,-383,-383,-383,110,111,-383,-383,-383,-383,-383,-383,118,-383,120,-383,-383,-383,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,125,126,-384,-384,-384,-384,-384,-384,-384,-384,-384,111,-384,-384,-384,-384,-384,-384,118,-384,120,-384,-384,-384,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,125,126,-385,-385,-385,-385,-385,-385,-385,-385,-385,111,-385,-385,-385,-385,-385,-385,118,-385,120,-385,-385,-385,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,125,126,-386,-386,-386,-386,-386,-386,109,108,110,111,-386,-386,-386,-386,-386,-386,118,-386,120,-386,-386,-386,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,125,126,-387,-387,-387,-387,-387,-387,109,108,110,111,112,-387,-387,-387,-387,-387,118,-387,120,-387,122,-387,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,125,126,-388,-388,-388,-388,-388,-388,109,108,110,111,112,113,-388,-388,-388,-388,118,-388,120,-388,122,-388,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,125,126,-389,-389,-389,-389,-389,-389,109,108,110,111,112,113,114,-389,-389,-389,118,-389,120,-389,122,-389,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,125,126,-390,-390,-390,-390,-390,-390,109,108,110,111,112,113,114,115,-390,-390,118,-390,120,-390,122,-390,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,125,126,-398,-398,-398,-398,-398,-398,109,108,110,111,112,113,114,115,116,-398,118,119,120,-398,122,-398,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-399,-399,-399,-399,-399,-399,-399,-399,127,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,124,125,126,96,97,-399,-399,-399,-399,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,125,126,-397,-397,-397,-397,-397,-397,109,108,110,111,112,113,114,115,116,-397,118,-397,120,-397,122,-397,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-400,-400,-400,-400,-400,-400,-400,-400,127,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,124,125,126,96,97,-400,-400,-400,-400,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,125,126,-401,-401,-401,-401,-401,-401,109,108,110,111,112,113,114,115,116,117,118,119,120,-401,122,-401,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,125,126,-402,-402,-402,-402,-402,-402,109,108,110,111,112,-402,-402,-402,-402,-402,118,-402,120,-402,-402,-402,23,90,1,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,457,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-236,-236,-236,-236,-236,-236,-236,-236,127,-236,-236,-236,-236,-236,-236,-236,-236,-236,458,-236,125,126,96,97,-236,-236,-236,-236,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-239,-239,-239,-239,-239,-239,-239,-239,127,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,124,125,126,96,97,-239,-239,-239,-239,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,4,93,70,2,2,460,459,461,462,11,55,1,23,1,1,7,4,10,2,25,39,152,104,154,155,153,99,463,157,156,195,194,11,55,1,23,1,1,7,4,10,2,25,39,152,104,154,155,153,99,464,157,156,195,194,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,465,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-235,-235,-235,-235,-235,-235,-235,-235,127,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,125,126,96,97,-235,-235,-235,-235,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-238,-238,-238,-238,-238,-238,-238,-238,127,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,124,125,126,96,97,-238,-238,-238,-238,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,53,1,5,53,1,5,1,1,3,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,61,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,61,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,26,85,6,14,11,1,31,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,466,127,320,467,319,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,104,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,5,2,3,11,2,1,2,2,7,1,1,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,468,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,469,99,59,83,87,320,84,85,317,319,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,1,85,470,1,85,471,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,7,1,1,8,1,1,1,1,4,3,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,472,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-164,102,103,53,52,72,73,93,-164,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-46,-46,-46,-46,-46,-46,-46,473,-46,-46,-46,-67,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,55,11,35,2,1,1,1,1,1,3,3,1,7,1,1,8,8,3,3,11,2,3,2,9,5,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,55,11,35,2,1,1,1,1,1,3,3,1,7,1,1,8,8,3,3,11,2,3,2,9,5,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,474,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,475,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,53,1,5,53,1,5,1,1,3,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,8,6,60,1,5,22,1,8,18,-217,-217,-217,477,476,-217,-217,-217,5,6,60,1,5,49,-194,-194,-194,-194,-194,108,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,1,2,2,5,4,5,2,1,1,3,2,2,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,326,245,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,325,102,103,53,52,72,73,93,99,59,83,87,247,84,85,324,66,42,43,90,91,246,478,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,28,6,60,1,5,19,12,18,27,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-199,-199,-199,-199,127,-199,-199,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,61,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,61,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,23,85,6,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,479,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,480,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,125,126,-68,-68,-68,-68,-68,-68,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,481,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,482,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-71,-71,-71,-71,-71,-71,-71,-71,127,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,124,125,126,96,97,-71,-71,-71,-71,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,483,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,484,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-74,-74,-74,-74,-74,-74,-74,-74,127,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,124,125,126,96,97,-74,-74,-74,-74,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,485,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,486,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-77,-77,-77,-77,-77,-77,-77,-77,127,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,124,125,126,96,97,-77,-77,-77,-77,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,487,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,488,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-80,-80,-80,-80,-80,-80,-80,-80,127,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,124,125,126,96,97,-80,-80,-80,-80,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,489,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,490,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,3,125,1,1,491,90,91,17,6,49,1,10,1,12,1,1,7,7,7,1,1,1,16,7,1,-218,152,104,-218,-218,154,155,153,99,-218,157,-218,156,151,-218,492,150,2,6,60,493,494,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,495,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,6,6,60,1,5,49,3,-180,-180,-180,-180,-180,-180,55,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,3,1,4,2,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,2,6,61,107,496,9,6,60,1,5,22,1,8,18,3,-217,-217,-217,347,348,-217,-217,-217,497,1,67,498,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,125,126,-404,-404,-404,-404,-404,-404,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,499,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,500,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-84,-84,-84,-84,-84,-84,-84,-84,127,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,124,125,126,96,97,-84,-84,-84,-84,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,23,67,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,501,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,502,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,3,7,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,503,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,2,66,56,160,504,6,55,1,10,14,8,34,505,104,160,506,99,507,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,508,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,509,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,510,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,511,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,1,93,512,1,165,513,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,514,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,10,55,1,23,1,1,7,14,2,25,39,152,104,154,155,153,99,157,156,195,515,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,516,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,3,155,1,1,517,377,378,4,67,78,11,1,518,519,520,378,3,67,78,12,-251,-251,-251,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,6,1,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,522,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,521,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,45,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,1,2,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-306,-306,-306,160,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,523,-306,-306,-306,-306,125,126,-306,-306,-306,-306,-306,-306,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,524,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,2,6,61,526,525,2,6,61,-314,-314,24,6,61,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-317,-317,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,6,61,-318,-318,7,6,61,81,1,9,1,1,-319,-319,128,129,130,96,97,1,67,527,1,67,528,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,125,126,-227,-227,-227,-227,-227,-227,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,18,6,49,1,10,1,5,7,1,1,7,14,2,1,15,1,3,4,1,-173,152,104,-173,-173,-173,154,155,153,99,157,156,151,529,-173,-173,149,150,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,1,67,530,3,54,5,1,531,105,106,3,88,90,5,533,532,219,3,54,5,1,534,105,106,1,142,535,8,6,60,1,5,22,1,8,18,-217,-217,-217,537,536,-217,-217,-217,5,6,60,1,5,23,-328,-328,-328,-328,-328,6,55,1,10,113,1,2,401,104,400,538,399,402,6,6,60,1,5,23,86,-333,-333,-333,-333,-333,539,6,6,60,1,5,23,86,-335,-335,-335,-335,-335,540,2,55,1,541,104,14,1,5,59,1,1,5,31,18,17,4,6,1,10,1,-339,-339,-339,-339,-339,-339,-339,-339,-339,542,-339,-339,-339,-339,8,6,60,1,5,22,1,8,18,-217,-217,-217,544,543,-217,-217,-217,5,6,60,1,5,23,-357,-357,-357,-357,-357,6,55,1,10,116,3,2,546,104,407,409,545,406,12,6,60,1,5,1,9,1,1,6,5,24,62,-362,-362,-362,-362,-120,-120,-120,-120,-120,-362,-120,547,6,6,60,1,5,23,86,-365,-365,-365,-365,-365,548,102,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,550,549,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,551,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,31,1,5,59,1,1,5,19,12,18,17,10,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-352,-352,-352,-352,-352,-352,127,-352,-352,-352,-352,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,80,8,552,99,3,54,5,1,553,105,106,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,2,6,61,107,554,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,555,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,57,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,59,6,5,35,2,1,1,1,1,1,3,3,1,6,1,1,1,3,5,11,3,11,1,1,1,2,2,9,5,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,423,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,5,6,60,1,5,31,-151,-151,-151,-151,-151,2,66,37,557,556,116,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,1,1,1,3,5,1,1,1,1,7,3,4,7,1,1,1,2,2,1,3,1,1,3,3,2,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,-218,326,245,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-218,-218,102,103,243,53,52,72,73,93,99,59,-218,83,-218,87,247,84,85,559,558,244,240,66,-218,42,43,90,91,246,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,4,6,60,1,36,560,-152,-152,-152,59,6,5,35,2,1,1,1,1,1,3,3,1,6,1,1,1,3,5,11,3,11,1,1,1,2,2,9,5,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,9,6,60,1,5,22,1,8,9,9,-217,-217,-217,421,422,-217,-217,561,-217,108,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,3,5,1,1,1,1,7,3,11,2,1,2,2,5,1,3,5,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,326,245,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,243,53,52,72,73,93,99,59,83,87,247,84,85,419,418,66,42,43,90,91,246,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,28,6,60,1,5,19,12,18,27,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-186,-186,-186,-186,127,-186,-186,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,23,85,6,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,562,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,563,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,564,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,565,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,566,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,567,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,568,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,3,6,60,29,570,571,569,23,6,39,8,1,1,1,1,1,1,1,6,1,14,8,6,4,1,1,1,1,1,1,16,-218,267,100,101,269,104,270,253,105,106,-218,-218,271,573,-218,572,272,264,265,-218,266,273,-218,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,574,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,575,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,23,91,12,45,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,127,576,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,577,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,10,6,60,1,5,10,1,1,11,13,11,-127,-127,-127,-127,-129,-129,-129,-127,578,139,10,6,60,1,5,10,1,1,11,13,11,-128,-128,-128,-128,580,581,582,-128,579,139,9,6,60,1,5,10,1,1,11,24,-130,-130,-130,-130,-130,-130,-130,-130,-130,9,6,60,1,5,10,1,1,11,24,-131,-131,-131,-131,-131,-131,-131,-131,-131,9,6,60,1,5,10,1,1,11,24,-132,-132,-132,-132,-132,-132,-132,-132,-132,9,6,60,1,5,10,1,1,11,24,-133,-133,-133,-133,-133,-133,-133,-133,-133,4,82,2,24,11,249,250,583,139,2,108,11,584,139,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,55,1,5,53,1,2,2,1,1,1,3,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,4,59,1,2,2,-59,-59,-59,-59,2,6,59,107,585,105,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,586,3,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,4,59,1,2,2,-62,-62,-62,-62,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,587,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,1,66,588,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,589,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,590,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,591,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,592,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,1,93,593,1,165,594,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,595,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,61,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,7,1,1,8,1,1,1,1,4,3,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,596,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-162,102,103,53,52,72,73,93,-162,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,26,67,24,14,11,1,31,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,597,127,320,467,319,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,1,67,598,61,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,61,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,24,67,18,6,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-163,-163,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,599,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,23,85,6,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,600,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,601,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,3,6,60,55,603,604,602,112,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,1,1,1,8,1,1,1,1,7,3,4,7,1,1,1,2,2,5,4,3,2,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,-218,326,245,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-218,-218,102,103,53,52,72,73,93,99,59,-218,83,-218,87,247,84,85,605,66,-218,42,43,90,91,246,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,8,6,60,1,5,22,1,8,18,-217,-217,-217,477,606,-217,-217,-217,61,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,23,67,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,607,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,125,126,-69,-69,-69,-69,-69,-69,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,23,67,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,608,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-72,-72,-72,-72,-72,-72,-72,-72,127,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,124,125,126,96,97,-72,-72,-72,-72,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,23,67,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,609,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-75,-75,-75,-75,-75,-75,-75,-75,127,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,124,125,126,96,97,-75,-75,-75,-75,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,23,67,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,610,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-78,-78,-78,-78,-78,-78,-78,-78,127,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,124,125,126,96,97,-78,-78,-78,-78,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,23,67,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,611,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-81,-81,-81,-81,-81,-81,-81,-81,127,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,124,125,126,96,97,-81,-81,-81,-81,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,23,67,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,612,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,106,5,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,4,1,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,614,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,160,102,103,53,52,72,73,93,99,59,83,87,84,85,66,613,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,6,6,60,1,5,49,3,-175,-175,-175,-175,-175,-175,11,55,1,23,1,1,7,14,2,1,23,1,152,104,154,155,153,99,157,156,151,615,150,18,6,49,1,10,1,5,7,1,1,7,14,2,1,15,1,3,4,1,-173,152,104,-173,-173,-173,154,155,153,99,157,156,151,616,-173,-173,149,150,28,6,60,1,5,19,30,3,24,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-179,-179,-179,-179,127,-179,-179,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,55,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,3,1,4,2,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,3,125,1,1,617,90,91,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,23,67,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,618,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,125,126,-406,-406,-406,-406,-406,-406,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,24,66,25,31,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,127,619,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,66,56,160,620,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,2,66,56,160,621,2,66,56,160,622,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,3,7,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,26,66,25,5,26,26,1,9,1,1,4,28,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,127,624,623,124,125,126,96,97,625,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,25,66,25,5,26,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,127,627,626,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,25,66,25,5,26,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,127,629,628,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,25,66,25,5,26,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,127,631,630,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,632,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,633,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,24,66,25,31,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,127,634,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,4,93,70,2,2,-303,-303,-303,-303,27,72,19,2,55,1,9,1,1,3,2,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-301,127,-301,124,125,126,96,97,-301,-301,-301,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,4,67,78,11,1,635,636,520,378,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,2,66,56,160,637,3,67,78,12,-252,-252,-252,3,66,6,50,160,639,638,24,66,6,19,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-203,-203,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,45,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,1,2,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-310,-310,-310,160,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,640,-310,-310,-310,-310,125,126,-310,-310,-310,-310,-310,-310,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,106,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,7,1,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,1,1,8,4,1,1,1,1,1,2,1,-316,384,385,386,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-316,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,641,63,70,71,44,45,68,46,47,48,50,51,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,8,6,60,1,5,22,1,8,18,-217,-217,-217,347,348,-217,-217,642,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,1,142,643,6,55,1,10,113,1,2,401,104,400,644,399,402,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,3,54,5,1,645,105,106,3,6,60,29,647,648,646,10,6,49,1,10,1,28,8,18,59,2,-218,401,104,-218,-218,-218,-218,-218,649,402,8,6,60,1,5,22,1,8,18,-217,-217,-217,537,650,-217,-217,-217,2,55,1,651,104,2,55,1,652,104,1,142,-338,3,54,5,1,653,105,106,3,6,60,29,655,656,654,10,6,49,1,10,1,28,8,18,61,5,-218,546,104,-218,-218,-218,-218,-218,409,657,8,6,60,1,5,22,1,8,18,-217,-217,-217,544,658,-217,-217,-217,6,6,60,1,5,23,86,-362,-362,-362,-362,-362,547,3,55,1,126,659,104,660,2,55,1,661,104,31,1,5,59,1,1,5,19,12,18,17,10,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-345,-345,-345,-345,-345,-345,127,-345,-345,-345,-345,125,126,-345,-345,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,662,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,663,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,1,67,664,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,1,138,665,23,91,12,45,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,127,666,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,57,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,112,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,3,5,1,1,1,1,7,3,11,2,1,2,2,1,1,2,1,1,3,5,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,326,245,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,242,102,103,243,53,52,72,73,93,99,59,83,87,247,84,85,425,667,241,244,240,66,42,43,90,91,246,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,5,6,60,1,5,31,-146,-146,-146,-146,-146,111,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,1,1,1,3,5,1,1,1,1,7,3,11,1,1,1,2,2,5,1,3,5,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,326,245,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-153,-153,102,103,243,53,52,72,73,93,99,59,83,-153,87,247,84,85,419,418,66,42,43,90,91,246,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,110,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,3,5,1,1,1,1,7,3,11,2,1,2,2,1,3,1,1,3,5,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,326,245,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,243,53,52,72,73,93,99,59,83,87,247,84,85,425,668,244,240,66,42,43,90,91,246,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,2,66,1,557,669,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,23,67,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,670,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,66,56,160,671,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,125,126,-256,-256,-256,-256,-256,-256,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,125,126,-258,-258,-258,-258,-258,-258,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,27,6,60,1,5,19,4,53,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-116,-116,-116,-116,672,-116,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,673,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,57,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,17,45,8,1,1,1,1,1,1,1,21,8,10,1,1,1,2,1,267,100,101,269,104,270,253,105,106,271,573,674,272,264,265,266,273,23,6,39,8,1,1,1,1,1,1,1,6,1,5,9,8,6,3,1,1,1,1,2,1,-109,267,100,101,269,104,270,253,105,106,-109,-109,-109,271,573,-109,675,268,272,264,265,266,273,5,6,60,1,5,23,-111,-111,-111,-111,-111,6,6,60,1,5,18,5,-114,-114,-114,-114,676,-114,27,6,60,1,5,19,4,53,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-118,-118,-118,-118,127,-118,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,677,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,6,6,60,1,5,18,5,-124,-124,-124,-124,-124,-124,23,91,12,45,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,127,678,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,9,6,60,1,5,10,1,1,11,24,-136,-136,-136,-136,-136,-136,-136,-136,-136,9,6,60,1,5,10,1,1,11,24,-137,-137,-137,-137,-137,-137,-137,-137,-137,2,57,1,679,253,2,57,1,680,253,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,681,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,682,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,9,6,60,1,5,10,1,1,11,24,-134,-134,-134,-134,-134,-134,-134,-134,-134,9,6,60,1,5,10,1,1,11,24,-135,-135,-135,-135,-135,-135,-135,-135,-135,4,59,1,2,2,-60,-60,-60,-60,2,6,61,107,683,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,125,126,-403,-403,-403,-403,-403,-403,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,684,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,685,-283,-283,-283,-283,-283,-283,-283,-283,125,126,-283,-283,-283,686,-283,-283,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,687,-288,-288,-288,-288,-288,-288,-288,-288,125,126,-288,-288,-288,-288,-288,-288,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,688,-292,-292,-292,-292,-292,-292,-292,-292,125,126,-292,-292,-292,-292,-292,-292,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,689,-296,-296,-296,-296,-296,-296,-296,-296,125,126,-296,-296,-296,-296,-296,-296,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,690,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,691,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,125,126,-299,-299,-299,-299,-299,-299,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,24,67,18,6,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-161,-161,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,1,85,692,1,85,693,23,85,6,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-66,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,61,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,23,67,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,694,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,53,1,5,53,1,5,1,1,3,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,106,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,1,2,2,5,4,5,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,326,245,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,247,84,85,695,66,42,43,90,91,246,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,108,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,1,2,2,5,4,5,2,1,1,3,2,2,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,326,245,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,325,102,103,53,52,72,73,93,99,59,83,87,247,84,85,324,66,42,43,90,91,246,696,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,5,6,60,1,5,49,-195,-195,-195,-195,-195,3,6,60,1,603,604,697,1,85,698,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,9,1,5,59,1,1,5,31,18,17,-169,-169,-169,-169,-169,-169,-169,-169,-169,6,6,60,1,5,49,3,-176,-176,-176,-176,-176,-176,8,6,60,1,5,22,1,8,18,-217,-217,-217,347,699,-217,-217,-217,2,66,56,160,613,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,3,7,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,3,7,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,700,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,701,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,702,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,703,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,704,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,25,66,25,5,26,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,127,706,705,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,25,66,25,5,26,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,127,708,707,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,2,66,56,160,709,1,67,710,4,6,61,78,12,711,-253,-253,-253,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,712,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,2,6,61,-315,-315,2,66,56,160,713,3,54,5,1,714,105,106,8,6,60,1,5,22,1,8,18,-217,-217,-217,537,715,-217,-217,-217,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,1,142,716,4,55,1,124,2,401,104,717,402,6,55,1,10,113,1,2,401,104,400,718,399,402,5,6,60,1,5,23,-329,-329,-329,-329,-329,3,6,60,1,647,648,719,5,6,60,1,5,23,-334,-334,-334,-334,-334,5,6,60,1,5,23,-336,-336,-336,-336,-336,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,14,1,5,59,1,1,5,31,18,17,4,6,1,10,1,-340,-340,-340,-340,-340,-340,-340,-340,-340,720,-340,-340,-340,-340,4,55,1,126,5,546,104,409,721,6,55,1,10,116,3,2,546,104,407,409,722,406,5,6,60,1,5,23,-358,-358,-358,-358,-358,3,6,60,1,655,656,723,5,6,60,1,5,23,-363,-363,-363,-363,-363,5,6,60,1,5,23,-364,-364,-364,-364,-364,5,6,60,1,5,23,-366,-366,-366,-366,-366,31,1,5,59,1,1,5,19,12,18,17,10,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-346,-346,-346,-346,-346,-346,127,-346,-346,-346,-346,125,126,-346,-346,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,23,67,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,724,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,9,6,60,1,5,22,1,8,9,9,-217,-217,-217,421,422,-217,-217,725,-217,5,6,60,1,5,31,-147,-147,-147,-147,-147,5,6,60,1,5,31,-148,-148,-148,-148,-148,1,85,726,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,14,39,16,1,23,1,1,7,4,5,5,2,25,37,2,307,152,104,154,155,153,99,727,728,83,156,195,306,194,23,67,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,729,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,5,6,60,1,5,23,-112,-112,-112,-112,-112,8,6,60,1,5,22,1,8,18,-217,-217,-217,439,730,-217,-217,-217,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,731,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,568,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,23,67,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,732,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,6,6,60,1,5,18,5,-125,-125,-125,-125,-125,-125,9,6,60,1,5,10,1,1,11,24,-138,-138,-138,-138,-138,-138,-138,-138,-138,9,6,60,1,5,10,1,1,11,24,-139,-139,-139,-139,-139,-139,-139,-139,-139,23,85,6,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,733,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,734,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,1,65,735,23,67,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,736,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,737,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,738,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,739,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,740,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,741,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,742,-290,-290,-290,-290,-290,-290,-290,-290,125,126,-290,-290,-290,-290,-290,-290,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,743,-294,-294,-294,-294,-294,-294,-294,-294,125,126,-294,-294,-294,-294,-294,-294,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,61,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,61,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,1,85,744,5,6,60,1,5,49,-196,-196,-196,-196,-196,8,6,60,1,5,22,1,8,18,-217,-217,-217,477,745,-217,-217,-217,5,6,60,1,5,49,-197,-197,-197,-197,-197,61,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,3,6,60,1,493,494,746,25,66,25,31,26,1,9,1,1,4,28,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,127,747,124,125,126,96,97,748,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,25,66,25,5,26,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,127,750,749,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,24,66,25,31,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,127,751,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,24,66,25,31,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,127,752,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,24,66,25,31,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,127,753,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,754,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,755,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,1,67,756,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,3,67,78,12,-254,-254,-254,24,66,6,19,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-204,-204,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,3,6,60,29,647,648,757,3,54,5,1,758,105,106,5,6,60,1,5,23,-330,-330,-330,-330,-330,8,6,60,1,5,22,1,8,18,-217,-217,-217,537,759,-217,-217,-217,5,6,60,1,5,23,-331,-331,-331,-331,-331,3,54,5,1,760,105,106,5,6,60,1,5,23,-359,-359,-359,-359,-359,8,6,60,1,5,22,1,8,18,-217,-217,-217,544,761,-217,-217,-217,5,6,60,1,5,23,-360,-360,-360,-360,-360,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,2,66,1,557,762,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,4,93,70,2,2,763,459,461,462,11,55,1,23,1,1,7,4,10,2,25,39,152,104,154,155,153,99,764,157,156,195,194,5,6,60,1,5,23,-117,-117,-117,-117,-117,3,6,60,1,570,571,765,27,6,60,1,5,19,4,53,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-116,-116,-116,-116,127,-116,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,5,6,60,1,5,23,-119,-119,-119,-119,-119,9,6,60,1,5,10,1,1,11,24,-140,-140,-140,-140,-140,-140,-140,-140,-140,23,67,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,766,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,4,59,1,2,2,-61,-61,-61,-61,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,125,126,-284,-284,-284,767,-284,-284,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,768,-285,-285,-285,-285,-285,-285,-285,-285,125,126,-285,-285,-285,-285,-285,-285,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,125,126,-289,-289,-289,-289,-289,-289,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,125,126,-293,-293,-293,-293,-293,-293,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,125,126,-297,-297,-297,-297,-297,-297,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,769,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,770,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,61,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,3,6,60,1,603,604,771,6,6,60,1,5,49,3,-177,-177,-177,-177,-177,-177,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,772,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,773,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,24,66,25,31,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,127,774,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,24,66,25,31,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,127,775,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,1,142,776,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,3,6,60,1,647,648,777,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,3,6,60,1,655,656,778,5,6,60,1,5,31,-149,-149,-149,-149,-149,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,779,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,1,93,780,5,6,60,1,5,23,-113,-113,-113,-113,-113,1,85,781,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,782,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,783,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,125,126,-291,-291,-291,-291,-291,-291,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,125,126,-295,-295,-295,-295,-295,-295,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,5,6,60,1,5,49,-198,-198,-198,-198,-198,24,66,25,31,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,127,784,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,24,66,25,31,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,127,785,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,3,54,5,1,786,105,106,5,6,60,1,5,23,-332,-332,-332,-332,-332,5,6,60,1,5,23,-361,-361,-361,-361,-361,45,1,5,59,1,1,5,13,5,1,2,1,1,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-288,-288,-288,-288,-288,789,-288,-288,-288,-288,787,-288,788,-288,-288,-288,-288,-288,-288,-288,-288,125,126,-288,-288,-288,-288,-288,-288,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,790,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,9,6,60,1,5,10,1,1,11,24,-141,-141,-141,-141,-141,-141,-141,-141,-141,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,125,126,-286,-286,-286,-286,-286,-286,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,125,126,-287,-287,-287,-287,-287,-287,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,1,95,791,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,792,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,6,6,60,1,28,8,18,-218,-218,-218,-218,-218,-218,45,1,5,59,1,1,5,13,5,1,2,1,1,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-290,-290,-290,-290,-290,789,-290,-290,-290,-290,793,-290,794,-290,-290,-290,-290,-290,-290,-290,-290,125,126,-290,-290,-290,-290,-290,-290,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,57,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,45,1,5,59,1,1,5,13,5,1,2,1,1,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-289,-289,-289,-289,-289,789,-289,-289,-289,-289,795,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,125,126,-289,-289,-289,-289,-289,-289,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,1,95,796,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,797,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,1,95,798,57,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,45,1,5,59,1,1,5,13,5,1,2,1,1,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-291,-291,-291,-291,-291,789,-291,-291,-291,-291,799,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,125,126,-291,-291,-291,-291,-291,-291,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,57,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,1,95,800,57,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107],W=[],F=0,U,A,$,Q;while(F<Y.length){U=Y[F++],A={},$=0,Q=[];while(U--)$+=Y[F++],Q.push($);for($ of Q)A[$]=Y[F++];W.push(A)}return W})(),ruleTable:[0,0,3,0,3,1,4,1,4,3,4,2,5,1,5,1,5,1,9,1,9,1,9,1,9,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,8,1,8,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,45,1,45,1,55,1,57,1,54,1,54,3,61,1,61,2,63,3,63,5,63,2,63,1,47,1,47,3,71,3,71,1,17,3,17,4,17,5,18,3,18,4,18,5,19,3,19,4,19,5,20,3,20,4,20,5,21,3,21,4,21,5,21,2,21,3,21,4,36,1,36,1,36,1,78,1,78,1,78,3,78,3,78,4,78,6,78,4,78,6,78,4,78,5,78,7,78,3,78,3,78,4,78,6,80,10,80,12,80,11,80,13,80,4,98,0,98,1,98,3,98,4,98,6,99,1,99,1,99,3,99,5,99,3,99,5,101,1,101,1,101,1,89,1,89,3,89,4,89,1,100,2,100,2,106,1,106,1,106,1,106,1,106,1,106,2,106,2,106,2,106,2,106,3,106,3,106,4,106,6,79,2,79,3,79,4,111,1,111,3,111,4,111,4,111,6,113,1,113,2,112,1,112,2,110,1,110,2,115,1,115,2,116,1,116,1,39,5,86,3,86,2,86,2,86,1,32,6,32,3,15,5,15,2,34,5,34,2,125,1,125,1,120,0,120,1,120,3,120,4,120,6,128,1,128,3,128,2,128,1,129,1,129,1,129,1,129,1,130,2,40,2,40,2,40,3,40,2,40,2,108,2,108,4,132,1,132,3,132,4,132,4,132,6,114,1,114,1,114,1,114,1,133,1,133,3,42,1,42,1,81,2,43,3,43,4,43,6,44,3,44,3,122,2,122,3,38,3,38,5,94,0,94,1,10,2,10,4,10,1,30,2,30,4,31,1,31,2,31,4,31,3,143,3,143,5,146,3,146,5,22,1,22,3,22,1,22,3,22,3,22,7,22,3,22,3,23,2,23,3,23,4,23,5,151,3,151,3,151,2,26,5,26,7,26,4,26,6,155,1,155,2,156,3,156,4,158,2,158,4,158,2,158,4,24,2,24,2,24,2,24,1,161,2,161,2,161,3,25,5,25,7,25,7,25,9,25,9,25,5,25,7,25,6,25,8,25,5,25,7,25,6,25,8,25,5,25,7,25,3,25,5,25,5,25,7,25,7,25,9,25,9,25,5,25,7,25,6,25,8,25,5,25,7,25,6,25,8,25,5,25,7,25,3,25,5,168,1,168,3,92,1,92,3,27,1,27,2,27,3,27,4,27,2,27,3,27,4,27,5,33,3,28,4,173,1,173,3,173,2,174,1,174,1,174,1,29,2,12,2,12,4,12,4,12,5,12,7,12,6,12,9,179,1,179,3,179,4,179,4,179,6,180,1,180,3,180,1,180,3,177,1,178,3,13,3,13,5,13,2,13,2,13,2,13,2,13,4,13,5,13,6,13,2,13,2,13,2,13,2,13,3,13,5,13,4,13,5,13,7,185,1,185,3,185,4,185,4,185,6,187,1,187,3,187,3,187,1,187,3,35,2,35,2,35,2,16,2,16,2,16,2,16,2,16,2,16,2,16,2,16,4,16,2,16,2,16,2,16,2,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,5,16,3,16,5,16,4,41,2],ruleActions:(Y,W,F,U)=>{let A=W,$=W.length-1;switch(Y){case 1:return["program"];case 2:return["program",...A[$]];case 3:case 58:case 110:case 150:case 154:case 174:case 194:case 203:case 251:case 302:case 314:case 328:case 357:return[A[$]];case 4:case 111:case 175:case 195:case 204:case 315:case 329:case 358:return[...A[$-2],A[$]];case 5:case 60:case 157:case 316:return A[$-1];case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 14:case 15:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:case 25:case 26:case 27:case 28:case 29:case 30:case 31:case 32:case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:case 44:case 45:case 46:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 63:case 64:case 86:case 87:case 88:case 89:case 90:case 115:case 120:case 121:case 122:case 123:case 126:case 129:case 130:case 131:case 132:case 133:case 145:case 171:case 172:case 178:case 182:case 183:case 184:case 185:case 199:case 200:case 201:case 217:case 218:case 232:case 234:case 262:case 300:case 317:case 318:case 319:case 333:case 335:case 337:case 362:case 365:return A[$];case 47:return"undefined";case 48:return"null";case 57:return["str",...A[$-1]];case 59:case 151:case 155:case 252:return[...A[$-1],A[$]];case 61:case 193:case 197:case 331:case 360:return A[$-2];case 62:return"";case 65:return["regex",A[$-1]];case 66:return["regex-index",A[$-2],A[$]];case 67:return["regex-index",A[$],null];case 68:return["=",A[$-2],A[$]];case 69:return["=",A[$-3],A[$]];case 70:return["=",A[$-4],A[$-1]];case 71:return["state",A[$-2],A[$]];case 72:return["state",A[$-3],A[$]];case 73:return["state",A[$-4],A[$-1]];case 74:return["computed",A[$-2],A[$]];case 75:return["computed",A[$-3],A[$]];case 76:return["computed",A[$-4],A[$-1]];case 77:return["readonly",A[$-2],A[$]];case 78:return["readonly",A[$-3],A[$]];case 79:return["readonly",A[$-4],A[$-1]];case 80:return["effect",A[$-2],A[$]];case 81:return["effect",A[$-3],A[$]];case 82:return["effect",A[$-4],A[$-1]];case 83:case 84:return["effect",null,A[$]];case 85:return["effect",null,A[$-1]];case 91:case 100:case 138:return[".",A[$-2],A[$]];case 92:case 101:case 139:return["?.",A[$-2],A[$]];case 93:case 95:case 102:case 140:return["[]",A[$-3],A[$-1]];case 94:case 96:case 103:case 141:return["[]",A[$-5],A[$-2]];case 97:return[A[$-1][0],A[$-3],...A[$-1].slice(1)];case 98:return["optindex",A[$-4],A[$-1]];case 99:return["optindex",A[$-6],A[$-2]];case 104:return["object-comprehension",A[$-8],A[$-6],[["for-of",A[$-4],A[$-2],!1]],[]];case 105:return["object-comprehension",A[$-10],A[$-8],[["for-of",A[$-6],A[$-4],!1]],[A[$-2]]];case 106:return["object-comprehension",A[$-9],A[$-7],[["for-of",A[$-4],A[$-2],!0]],[]];case 107:return["object-comprehension",A[$-11],A[$-9],[["for-of",A[$-6],A[$-4],!0]],[A[$-2]]];case 108:return["object",...A[$-2]];case 109:case 152:case 173:case 192:return[];case 112:case 176:case 196:case 330:case 359:return[...A[$-3],A[$]];case 113:case 177:case 198:case 332:case 361:return[...A[$-5],...A[$-2]];case 114:return[A[$],A[$],null];case 116:return[A[$-2],A[$],":"];case 117:return[A[$-4],A[$-1],":"];case 118:return[A[$-2],A[$],"="];case 119:return[A[$-4],A[$-1],"="];case 124:return["dynamicKey",A[$-1]];case 125:return["[]","this",A[$-1]];case 127:case 128:case 186:return["...",A[$]];case 134:case 190:return["super",...A[$]];case 135:case 136:case 137:case 188:case 191:return[A[$-1],...A[$]];case 142:return["array"];case 143:return["array",...A[$-1]];case 144:return["array",...A[$-2],...A[$-1]];case 146:return[...A[$-2],...A[$]];case 147:return[...A[$-3],...A[$]];case 148:return[...A[$-2],...A[$-1]];case 149:return[...A[$-5],...A[$-4],...A[$-2],...A[$-1]];case 153:return[...A[$]];case 156:return null;case 158:return"..";case 159:case 202:return"...";case 160:return[A[$-2],A[$-3],A[$-1]];case 161:case 384:case 386:case 387:case 402:case 404:return[A[$-1],A[$-2],A[$]];case 162:return[A[$],A[$-1],null];case 163:return[A[$-1],null,A[$]];case 164:return[A[$],null,null];case 165:return["def",A[$-4],A[$-2],A[$]];case 166:return["def",A[$-1],[],A[$]];case 167:case 169:return[A[$-1],A[$-3],A[$]];case 168:case 170:return[A[$-1],[],A[$]];case 179:case 301:return["default",A[$-2],A[$]];case 180:return["rest",A[$]];case 181:return["expansion"];case 187:return["tagged-template",A[$-1],A[$]];case 189:return["optcall",A[$-2],...A[$]];case 205:case 206:return"this";case 207:return[".","this",A[$]];case 208:return[".","super",A[$]];case 209:return["[]","super",A[$-1]];case 210:return["[]","super",A[$-2]];case 211:return[".","new",A[$]];case 212:return[".","import",A[$]];case 213:return["block"];case 214:return["block",...A[$-1]];case 215:return A[$-1].length===1?A[$-1][0]:["block",...A[$-1]];case 216:return A[$-2].length===1?A[$-2][0]:["block",...A[$-2]];case 219:return["return",A[$]];case 220:return["return",A[$-1]];case 221:return["return"];case 222:return["throw",A[$]];case 223:return["throw",A[$-1]];case 224:return["yield"];case 225:return["yield",A[$]];case 226:return["yield",A[$-1]];case 227:return["yield-from",A[$]];case 228:return["if",A[$-1],A[$]];case 229:return A[$-4].length===3?["if",A[$-4][1],A[$-4][2],["if",A[$-1],A[$]]]:[...A[$-4],["if",A[$-1],A[$]]];case 230:return["unless",A[$-1],A[$]];case 231:return["if",["!",A[$-3]],A[$-2],A[$]];case 233:return A[$-2].length===3?["if",A[$-2][1],A[$-2][2],A[$]]:[...A[$-2],A[$]];case 235:case 236:return["if",A[$],[A[$-2]]];case 237:return["?:",A[$-4],A[$-6],A[$-1]];case 238:case 239:return["unless",A[$],[A[$-2]]];case 240:return["try",A[$]];case 241:return["try",A[$-1],A[$]];case 242:return["try",A[$-2],A[$]];case 243:return["try",A[$-3],A[$-2],A[$]];case 244:case 245:case 367:case 370:case 372:return[A[$-1],A[$]];case 246:return[null,A[$]];case 247:return["switch",A[$-3],A[$-1],null];case 248:return["switch",A[$-5],A[$-3],A[$-1]];case 249:return["switch",null,A[$-1],null];case 250:return["switch",null,A[$-3],A[$-1]];case 253:return["when",A[$-1],A[$]];case 254:return["when",A[$-2],A[$-1]];case 255:return["while",A[$]];case 256:return["while",A[$-2],A[$]];case 257:return["until",A[$]];case 258:return["until",A[$-2],A[$]];case 259:return A[$-1].length===2?[A[$-1][0],A[$-1][1],A[$]]:[A[$-1][0],A[$-1][1],A[$-1][2],A[$]];case 260:case 261:return A[$].length===2?[A[$][0],A[$][1],[A[$-1]]]:[A[$][0],A[$][1],A[$][2],[A[$-1]]];case 263:return["loop",A[$]];case 264:return["loop",[A[$]]];case 265:return["loop-n",A[$-1],A[$]];case 266:return["for-in",A[$-3],A[$-1],null,null,A[$]];case 267:return["for-in",A[$-5],A[$-3],null,A[$-1],A[$]];case 268:return["for-in",A[$-5],A[$-3],A[$-1],null,A[$]];case 269:return["for-in",A[$-7],A[$-5],A[$-1],A[$-3],A[$]];case 270:return["for-in",A[$-7],A[$-5],A[$-3],A[$-1],A[$]];case 271:return["for-of",A[$-3],A[$-1],!1,null,A[$]];case 272:return["for-of",A[$-5],A[$-3],!1,A[$-1],A[$]];case 273:return["for-of",A[$-3],A[$-1],!0,null,A[$]];case 274:return["for-of",A[$-5],A[$-3],!0,A[$-1],A[$]];case 275:return["for-as",A[$-3],A[$-1],!1,null,A[$]];case 276:return["for-as",A[$-5],A[$-3],!1,A[$-1],A[$]];case 277:case 279:return["for-as",A[$-3],A[$-1],!0,null,A[$]];case 278:case 280:return["for-as",A[$-5],A[$-3],!0,A[$-1],A[$]];case 281:return["for-in",[],A[$-1],null,null,A[$]];case 282:return["for-in",[],A[$-3],A[$-1],null,A[$]];case 283:return["comprehension",A[$-4],[["for-in",A[$-2],A[$],null]],[]];case 284:return["comprehension",A[$-6],[["for-in",A[$-4],A[$-2],null]],[A[$]]];case 285:return["comprehension",A[$-6],[["for-in",A[$-4],A[$-2],A[$]]],[]];case 286:return["comprehension",A[$-8],[["for-in",A[$-6],A[$-4],A[$]]],[A[$-2]]];case 287:return["comprehension",A[$-8],[["for-in",A[$-6],A[$-4],A[$-2]]],[A[$]]];case 288:return["comprehension",A[$-4],[["for-of",A[$-2],A[$],!1]],[]];case 289:return["comprehension",A[$-6],[["for-of",A[$-4],A[$-2],!1]],[A[$]]];case 290:return["comprehension",A[$-5],[["for-of",A[$-2],A[$],!0]],[]];case 291:return["comprehension",A[$-7],[["for-of",A[$-4],A[$-2],!0]],[A[$]]];case 292:return["comprehension",A[$-4],[["for-as",A[$-2],A[$],!1,null]],[]];case 293:return["comprehension",A[$-6],[["for-as",A[$-4],A[$-2],!1,null]],[A[$]]];case 294:return["comprehension",A[$-5],[["for-as",A[$-2],A[$],!0,null]],[]];case 295:return["comprehension",A[$-7],[["for-as",A[$-4],A[$-2],!0,null]],[A[$]]];case 296:return["comprehension",A[$-4],[["for-as",A[$-2],A[$],!0,null]],[]];case 297:return["comprehension",A[$-6],[["for-as",A[$-4],A[$-2],!0,null]],[A[$]]];case 298:return["comprehension",A[$-2],[["for-in",[],A[$],null]],[]];case 299:return["comprehension",A[$-4],[["for-in",[],A[$-2],A[$]]],[]];case 303:case 334:case 336:case 363:case 364:case 366:return[A[$-2],A[$]];case 304:return["class",null,null];case 305:return["class",null,null,A[$]];case 306:return["class",null,A[$]];case 307:return["class",null,A[$-1],A[$]];case 308:return["class",A[$],null];case 309:return["class",A[$-1],null,A[$]];case 310:return["class",A[$-2],A[$]];case 311:return["class",A[$-3],A[$-1],A[$]];case 312:return["enum",A[$-1],A[$]];case 313:return["component",null,["block",...A[$-1]]];case 320:return["render",A[$]];case 321:case 324:return["import","{}",A[$]];case 322:case 323:return["import",A[$-2],A[$]];case 325:return["import",A[$-4],A[$]];case 326:return["import",[A[$-4],A[$-2]],A[$]];case 327:return["import",[A[$-7],A[$-4]],A[$]];case 338:return["*",A[$]];case 339:return["export","{}"];case 340:return["export",A[$-2]];case 341:case 342:case 343:case 344:case 348:case 349:case 350:case 351:return["export",A[$]];case 345:return["export",["=",A[$-2],A[$]]];case 346:return["export",["=",A[$-3],A[$]]];case 347:return["export",["=",A[$-4],A[$-1]]];case 352:return["export-default",A[$]];case 353:return["export-default",A[$-1]];case 354:return["export-all",A[$]];case 355:return["export-from","{}",A[$]];case 356:return["export-from",A[$-4],A[$]];case 368:case 369:case 371:case 407:return["do-iife",A[$]];case 373:return["-",A[$]];case 374:return["+",A[$]];case 375:return["?",A[$-1]];case 376:return["await",A[$]];case 377:return["await",A[$-1]];case 378:return["--",A[$],!1];case 379:return["++",A[$],!1];case 380:return["--",A[$-1],!0];case 381:return["++",A[$-1],!0];case 382:return["+",A[$-2],A[$]];case 383:return["-",A[$-2],A[$]];case 385:return["**",A[$-2],A[$]];case 388:return["&",A[$-2],A[$]];case 389:return["^",A[$-2],A[$]];case 390:return["|",A[$-2],A[$]];case 391:case 392:case 393:case 394:case 395:case 396:return["control",A[$-1],A[$-2],A[$]];case 397:return["&&",A[$-2],A[$]];case 398:return["||",A[$-2],A[$]];case 399:return["??",A[$-2],A[$]];case 400:return["!?",A[$-2],A[$]];case 401:return["|>",A[$-2],A[$]];case 403:return["?:",A[$-4],A[$-2],A[$]];case 405:return[A[$-3],A[$-4],A[$-1]];case 406:return[A[$-2],A[$-3],A[$]]}},parseError(Y,W){let F,U,A,$,Q,J,Z;if(W.recoverable)return this.trace(Y);else throw A=(W.line||0)+1,F=W.loc?.c||0,Z=W.token?` (token: ${W.token})`:"",J=W.text?` near '${W.text}'`:"",$=`line ${A}, column ${F}`,Q=`Parse error at ${$}${Z}${J}: ${Y}`,U=Error(Q),U.hash=W,U},parse(Y){let W,F,U,A,$,Q,J,Z,K,X,M,R,D,z,q,H,G,I,P,B,_,w,O,N,E,T;[B,T,X]=[[0],[null],[]],[D,E,O,w,H]=[this.parseTable,"",0,0,0],[F,W]=[2,1],Z=Object.create(this.lexer),I={ctx:{}};for(let L in this.ctx)if(Object.hasOwn(this.ctx,L)){let u=this.ctx[L];I.ctx[L]=u}if(Z.setInput(Y,I.ctx),[I.ctx.lexer,I.ctx.parser]=[Z,this],Z.loc==null)Z.loc={};N=Z.loc,X.push(N),this.parseError=typeof I.ctx.parseError==="function"?I.ctx.parseError:Object.getPrototypeOf(this).parseError,J=()=>{let L;if(L=Z.lex()||W,typeof L!=="number")L=this.symbolIds[L]||L;return L},_=z=P=U=q=R=Q=M=$=null,G={};while(!0){if(P=B[B.length-1],_==null)_=J();if(U=D[P]?.[_],U==null){if(A="",!H)$=(()=>{let L=[];for(let u in D[P]){if(!Object.hasOwn(D[P],u))continue;if(this.tokenNames[u]&&u>F)L.push(`'${this.tokenNames[u]}'`)}return L})();throw A=(()=>{if(Z.showPosition)return`Parse error on line ${O+1}:
6
+ `)this.row++,this.col=0;else this.col++;this.pos+=Y}emit(Y,W,{len:F,data:U,pre:A}={}){let $=r(Y,W,{pre:A??0,row:this.row,col:this.col,len:F??(typeof W==="string"?W.length:0),data:U});return this.tokens.push($),$}prev(){return this.tokens[this.tokens.length-1]}prevTag(){let Y=this.prev();return Y?Y[0]:void 0}prevVal(){let Y=this.prev();return Y?Y[1]:void 0}identifierToken(){if(A2.test(this.chunk))return 0;let Y=a1.exec(this.chunk);if(!Y)return 0;let[,W,F]=Y,U=W.length,A={},$;if(W==="own"&&this.prevTag()==="FOR")return this.emit("OWN",W,{len:U}),U;if(W==="from"&&this.prevTag()==="YIELD")return this.emit("FROM",W,{len:U}),U;if(W==="as"&&!this.seenFor&&(this.seenImport||this.seenExport)){if(this.seenImport){if(this.prevVal()==="*")this.prev()[0]="IMPORT_ALL"}let X=this.prevTag();if(X==="DEFAULT"||X==="IMPORT_ALL"||X==="IDENTIFIER")return this.emit("AS",W,{len:U}),U}if((W==="as"||W==="as!")&&this.seenFor)return this.seenFor=!1,this.emit(W==="as!"?"FORASAWAIT":"FORAS","as",{len:U}),U;if(W==="default"&&this.seenExport&&(this.prevTag()==="EXPORT"||this.prevTag()==="AS"))return this.emit("DEFAULT",W,{len:U}),U;let Q;if(W==="do"&&(Q=/^(\s*super)(?!\(\))/.exec(this.chunk.slice(3))))return this.emit("SUPER","super"),this.emit("CALL_START","("),this.emit("CALL_END",")"),Q[1].length+3;let J=this.prev();if(F&&J&&J[0]==="SPACE?")F=null;if(F||J&&(J[0]==="."||J[0]==="?."||!J.spaced&&J[0]==="@")){if($="PROPERTY",this.inRenderBlock&&J&&J[0]==="."&&!F){let X=this.chunk.slice(U);while(X[0]==="-"&&/^-[a-zA-Z]/.test(X)){let z=/^-([a-zA-Z][\w]*)/.exec(X);if(!z)break;W+="-"+z[1],U+=1+z[1].length,X=this.chunk.slice(U)}}}else $="IDENTIFIER";let Z=W.endsWith("!")||W.endsWith("?")?W.slice(0,-1):W;if($==="IDENTIFIER"&&!W.endsWith("!")&&!W.endsWith("?")&&(z1.has(W)||M1.has(W)||R1.has(W))&&!(this.exportSpecifierList&&R1.has(W))){if(W1[W]!==void 0)A.original=W,W=W1[W];$=this.classifyKeyword(W,$,A)}if($==="IDENTIFIER"&&C1.has(Z))h(`reserved word '${Z}'`,{row:this.row,col:this.col,len:U});if($==="PROPERTY"&&J){if(J[0]==="."&&this.tokens.length>1){let X=this.tokens[this.tokens.length-2];if(X[0]==="UNARY"&&X[1]==="new")X[0]="NEW_TARGET";if(X[0]==="IMPORT"&&X[1]==="import")this.seenImport=!1,X[0]="IMPORT_META"}}if(W.length>1&&W.endsWith("!"))A.await=!0,W=W.slice(0,-1);if(W.length>1&&W.endsWith("?"))A.predicate=!0,W=W.slice(0,-1);let K=this.emit($,W,{len:U,data:Object.keys(A).length?A:null});if($==="RENDER")this.inRenderBlock=!0,this.renderIndent=this.indent;if(F)return this.emit(":",":",{len:1}),U+F.length;return U}classifyKeyword(Y,W,F){switch(Y){case"!":return"UNARY";case"==":case"!=":return"COMPARE";case"true":case"false":return"BOOL";case"&&":case"||":return Y}if(h1.has(Y))return"STATEMENT";let U=Y.toUpperCase();if(U==="WHEN"&&p.has(this.prevTag()))return"LEADING_WHEN";if(U==="FOR")return this.seenFor={endsLength:this.ends.length},"FOR";if(U==="UNLESS")return"UNLESS";if(U==="IMPORT")return this.seenImport=!0,"IMPORT";if(U==="EXPORT")return this.seenExport=!0,"EXPORT";if(b1.has(U))return"UNARY";if(y1.has(U)){if(U!=="INSTANCEOF"&&this.seenFor)return this.seenFor=!1,"FOR"+U;if(this.prevVal()==="!"){let A=this.tokens.pop();F.invert=A.data?.original||A[1]}return"RELATION"}if(z1.has(Y)||M1.has(Y))return U;return W}commentToken(){let Y=e1.exec(this.chunk);if(!Y)return 0;return Y[0].length}whitespaceToken(){let Y=o1.exec(this.chunk);if(!Y&&this.chunk[0]!==`
7
+ `)return 0;let W=this.prev();if(W)if(Y)W.spaced=!0,W.pre=Y[0].length;else W.newLine=!0;return Y?Y[0].length:0}lineToken(){let Y=t1.exec(this.chunk);if(!Y)return 0;let W=Y[0],F=W.length-1-W.lastIndexOf(`
8
+ `);if(this.isUnfinished()){if(F<this.indent&&/^\s*,/.test(this.chunk)&&!O1.has(this.prevTag())){if(this.outdentTo(F,W.length),this.prevTag()==="TERMINATOR")this.tokens.pop();return W.length}return W.length}if(this.seenFor&&!(this.seenFor.endsLength<this.ends.length))this.seenFor=!1;if(!this.importSpecifierList)this.seenImport=!1;if(!this.exportSpecifierList)this.seenExport=!1;if(F===this.indent)return this.emitNewline(),W.length;if(F>this.indent){if(!this.tokens.length)return this.indent=F,W.length;let U=F-this.indent;return this.emit("INDENT",U,{len:F}),this.indents.push(U),this.ends.push({tag:"OUTDENT"}),this.indent=F,W.length}return this.outdentTo(F,W.length),W.length}outdentTo(Y,W=0){if(this.inRenderBlock&&Y<=this.renderIndent)this.inRenderBlock=!1;let F=this.indent-Y;while(F>0){let U=this.indents[this.indents.length-1];if(!U)F=0;else this.indents.pop(),this.pair("OUTDENT"),this.emit("OUTDENT",F,{len:W}),F-=U}this.emitNewline(),this.indent=Y}closeIndentation(){this.outdentTo(0)}emitNewline(){if(this.prevTag()!=="TERMINATOR")this.emit("TERMINATOR",`
9
+ `,{len:0})}isUnfinished(){if(this.inRenderBlock&&B1.test(this.chunk)&&/^\s*\./.test(this.chunk))return!1;return B1.test(this.chunk)||O1.has(this.prevTag())}pair(Y){let W=this.ends[this.ends.length-1];if(!W||Y!==W.tag){if(W?.tag==="OUTDENT"){let F=this.indents[this.indents.length-1];if(F)this.outdentTo(this.indent-F);return this.pair(Y)}h(`unmatched ${Y}`,{row:this.row,col:this.col})}return this.ends.pop()}stringToken(){let Y=Y2.exec(this.chunk);if(!Y)return 0;let W=Y[0],F=this.prev();if(F&&this.prevVal()==="from"&&(this.seenImport||this.seenExport))F[0]="FROM";let U;switch(W){case"'":U=U2;break;case'"':U=W2;break;case"'''":U=F2;break;case'"""':U=Q2;break}let{tokens:A,index:$}=this.matchWithInterpolations(U,W),Q=W.length===3,J=null;if(Q)J=this.processHeredocIndent($,W,A);return this.mergeInterpolationTokens(A,{quote:W,indent:J,endOffset:$}),$}processHeredocIndent(Y,W,F){let U=Y-W.length,A=U-1;while(A>=0&&this.chunk[A]!==`
10
+ `)A--;A++;let $=this.chunk.slice(A,U),Q=/^\s*$/.test($)?$.length:null,J="";for(let X of F)if(X[0]==="NEOSTRING")J+=X[1];let Z=null,K;_1.lastIndex=0;while(K=_1.exec(J))if(Z===null||K[1].length>0&&K[1].length<Z.length)Z=K[1];if(Q===null)return Z;if(Z===null)return" ".repeat(Q);if(Q<=Z.length)return" ".repeat(Q);return Z}matchWithInterpolations(Y,W,F,U){if(!F)F=W;if(!U)U=/^[#$]\{/;let A=[],$=W.length;if(this.chunk.slice(0,$)!==W)return null;let Q=this.chunk.slice($);while(!0){let[J]=Y.exec(Q);A.push(["NEOSTRING",J,{offset:$}]),Q=Q.slice(J.length),$+=J.length;let Z=U.exec(Q);if(!Z)break;let X=Z[0].length-1,z=Q.slice(X),R=new x().tokenize(z,{row:this.row,col:this.col+$+X,untilBalanced:!0,rewrite:!1}),D=R.index+X;if(Q[D-1]==="}"){let M=R.tokens[0],q=R.tokens[R.tokens.length-1];M[0]="INTERPOLATION_START",M[1]="(",q[0]="INTERPOLATION_END",q[1]=")"}if(R.tokens[1]?.[0]==="TERMINATOR")R.tokens.splice(1,1);let G=R.tokens.length;if(G>2&&R.tokens[G-3]?.[0]==="INDENT"&&R.tokens[G-2]?.[0]==="OUTDENT")R.tokens.splice(G-3,2);A.push(["TOKENS",R.tokens]),Q=Q.slice(D),$+=D}if(Q.slice(0,F.length)!==F)h(`missing ${F}`,{row:this.row,col:this.col});return{tokens:A,index:$+F.length}}mergeInterpolationTokens(Y,{quote:W,indent:F,endOffset:U}){if(Y.length>1)this.emit("STRING_START","(",{len:W?.length||0,data:{quote:W}});for(let A=0;A<Y.length;A++){let[$,Q]=Y[A];if($==="TOKENS")for(let J of Q)this.tokens.push(J);else if($==="NEOSTRING"){let J=Q;if(F){let Z=new RegExp("\\n"+F,"g");J=J.replace(Z,`
11
+ `)}if(A===0&&W?.length===3)J=J.replace(/^\n/,"");if(A===Y.length-1&&W?.length===3)J=J.replace(/\n[^\S\n]*$/,"");this.emit("STRING",`"${J}"`,{len:Q.length,data:{quote:W}})}}if(Y.length>1)this.emit("STRING_END",")",{len:W?.length||0});return U}numberToken(){let Y=s1.exec(this.chunk);if(!Y)return 0;let W=Y[0],F=W.length,U={row:this.row,col:this.col};if(/^0[BOX]/.test(W))h(`radix prefix in '${W}' must be lowercase`,{...U,col:U.col+1});if(/^0\d*[89]/.test(W))h(`decimal literal '${W}' must not be prefixed with '0'`,{...U,len:F});if(/^0\d+/.test(W))h(`octal literal '${W}' must be prefixed with '0o'`,{...U,len:F});let A=R2(W),$=A===1/0?"INFINITY":"NUMBER",Q={parsedValue:A};if($==="INFINITY")Q.original=W;return this.emit($,W,{len:F,data:Q}),F}regexToken(){let Y=this.matchWithInterpolations(X2,"///");if(Y){let{tokens:K,index:X}=Y,[z]=w1.exec(this.chunk.slice(X)),R=X+z.length;if(K.length===1||!K.some((D)=>D[0]==="TOKENS")){let D=K[0]?.[1]||"";this.emit("REGEX",`/${D}/${z}`,{len:R,data:{delimiter:"///",heregex:{flags:z}}})}else{if(this.emit("REGEX_START","(",{len:0}),this.emit("IDENTIFIER","RegExp",{len:0}),this.emit("CALL_START","(",{len:0}),this.mergeInterpolationTokens(K,{quote:"///",endOffset:R-z.length}),z)this.emit(",",",",{len:0}),this.emit("STRING",`"${z}"`,{len:z.length});this.emit(")",")",{len:0}),this.emit("REGEX_END",")",{len:0})}return R}let W=Z2.exec(this.chunk);if(!W)return 0;let[F,U,A]=W,$=this.prev();if($){if($.spaced&&s.has($[0])&&(!A||/^\/=?\s/.test(F)))return 0;if(m1.has($[0])&&!($.spaced&&s.has($[0])))return 0}if(!A)h("missing / (unclosed regex)",{row:this.row,col:this.col});let Q=F.length,[J]=w1.exec(this.chunk.slice(Q)),Z=Q+J.length;if(!J2.test(J))h(`invalid regular expression flags ${J}`,{row:this.row,col:this.col+Q,len:J.length});return this.emit("REGEX",`/${U}/${J}`,{len:Z,data:{delimiter:"/"}}),Z}jsToken(){if(this.chunk[0]!=="`")return 0;let Y=D2.exec(this.chunk)||K2.exec(this.chunk);if(!Y)return 0;let W=Y[1],F=Y[0].length;return this.emit("JS",W,{len:F,data:{here:Y[0].startsWith("```")}}),F}literalToken(){let Y=r1.exec(this.chunk),W=Y?Y[0]:this.chunk.charAt(0),F=W,U=this.prev();if($2.test(W))this.tagParameters();if(W==="="&&U&&U[1]==="."&&!U.spaced){let A=this.tokens,$=A.length-2;while($>=1&&A[$][0]==="PROPERTY"&&A[$-1]?.[1]===".")$-=2;if($>=0&&(A[$][0]==="IDENTIFIER"||A[$][0]===")"||A[$][0]==="]")){let Q=A.slice($,A.length-1);U[0]="=",U[1]="=";for(let J of Q)this.tokens.push(r(J[0],J[1],{pre:0,row:J[2],col:J[3],len:J[4]}));return this.tokens.push(r(".",".",{pre:0,row:this.row,col:this.col,len:1})),W.length}}if(U&&(W==="="||P1.has(W))){if(W==="="&&(U[1]==="||"||U[1]==="&&"||U[1]==="??")&&!U.spaced)return U[0]="COMPOUND_ASSIGN",U[1]+="=",W.length}if(W==="("&&U?.[0]==="IMPORT")U[0]="DYNAMIC_IMPORT";if(W==="{"&&this.seenImport)this.importSpecifierList=!0;if(W==="}"&&this.importSpecifierList)this.importSpecifierList=!1;if(W==="{"&&U?.[0]==="EXPORT")this.exportSpecifierList=!0;if(W==="}"&&this.exportSpecifierList)this.exportSpecifierList=!1;if(W===";")this.seenFor=this.seenImport=this.seenExport=!1,F="TERMINATOR";else if(W==="|>")F="PIPE";else if(W==="::=")F="TYPE_ALIAS";else if(W==="::"&&/^[a-zA-Z_$]/.test(this.chunk[2]||""))return this.emit(".","."),this.emit("PROPERTY","prototype"),this.emit(".","."),2;else if(W==="::")F="TYPE_ANNOTATION";else if(W==="~=")F="COMPUTED_ASSIGN";else if(W===":=")F="REACTIVE_ASSIGN";else if(W==="<=>")F="BIND";else if(W==="~>")F="REACT_ASSIGN";else if(W==="=!")F="READONLY_ASSIGN";else if(W==="*"&&(!U||U[0]==="TERMINATOR"||U[0]==="INDENT"||U[0]==="OUTDENT")&&(/^[a-zA-Z_$]/.test(this.chunk[1]||"")||this.chunk[1]==="@")){let A=this.chunk.slice(1),$=/^@(\s*)=(?!=)/.exec(A);if($){let J=$[1];this.emit("IDENTIFIER","Object"),this.emit(".",".");let Z=this.emit("PROPERTY","assign");return Z.spaced=!0,this.emit("@","@"),this.emit(",",","),2+J.length+1}let Q=/^((?:(?!\s)[$\w\x7f-\uffff])+(?:\.[a-zA-Z_$][\w]*)*)(\s*)=(?!=)/.exec(A);if(Q){let J=Q[1],Z=Q[2],K=J.split("."),X=()=>{this.emit("IDENTIFIER",K[0]);for(let R=1;R<K.length;R++)this.emit(".","."),this.emit("PROPERTY",K[R])};X(),this.emit("=","="),this.emit("IDENTIFIER","Object"),this.emit(".","."),this.emit("PROPERTY","assign"),this.emit("CALL_START","("),X(),this.emit("COMPOUND_ASSIGN","??="),this.emit("{","{"),this.emit("}","}"),this.emit(",",",");let z=this.prev();return z.mergeClose=!0,1+J.length+Z.length+1}}else if(W==="*"&&U?.[0]==="EXPORT")F="EXPORT_ALL";else if(p1.has(W))F="MATH";else if(i1.has(W))F="COMPARE";else if(P1.has(W))F="COMPOUND_ASSIGN";else if(n1.has(W))F="UNARY_MATH";else if(d1.has(W))F="SHIFT";else if(W==="?"&&U?.spaced)F="SPACE?";else if(W==="?"&&(this.chunk[1]==="["||this.chunk[1]==="("))F="?.";else if(U){if(W==="("&&!U.spaced&&s.has(U[0])){if(U[0]==="?.")U[0]="ES6_OPTIONAL_CALL";F="CALL_START"}if(W==="["&&!U.spaced&&I1.has(U[0])){if(F="INDEX_START",U[0]==="?.")U[0]="ES6_OPTIONAL_INDEX"}}if(W==="("||W==="{"||W==="[")this.ends.push({tag:k1[W],origin:[F,W]});else if(W===")"||W==="}"||W==="]")this.pair(W);return this.emit(F,W,{len:W.length}),W.length}tagParameters(){if(this.prevTag()!==")")return this.tagDoIife();let Y=this.tokens.length-1,W=[];this.tokens[Y][0]="PARAM_END";while(Y-- >0){let F=this.tokens[Y];if(F[0]===")")W.push(F);else if(F[0]==="("||F[0]==="CALL_START")if(W.length)W.pop();else if(F[0]==="(")return F[0]="PARAM_START",this.tagDoIife(Y-1);else{this.tokens[this.tokens.length-1][0]="CALL_END";return}}}tagDoIife(Y){let W=this.tokens[Y??this.tokens.length-1];if(W?.[0]==="DO")W[0]="DO_IIFE"}rewrite(Y){return this.tokens=Y,this.removeLeadingNewlines(),this.closeOpenCalls(),this.closeOpenIndexes(),this.normalizeLines(),this.rewriteRender(),this.rewriteTypes(),this.tagPostfixConditionals(),this.addImplicitBracesAndParens(),this.addImplicitCallCommas(),this.closeMergeAssignments(),this.tokens}removeLeadingNewlines(){let Y=0;while(this.tokens[Y]?.[0]==="TERMINATOR")Y++;if(Y>0)this.tokens.splice(0,Y)}closeOpenCalls(){this.scanTokens((Y,W)=>{if(Y[0]==="CALL_START")this.detectEnd(W+1,(F)=>F[0]===")"||F[0]==="CALL_END",(F)=>F[0]="CALL_END");return 1})}closeOpenIndexes(){this.scanTokens((Y,W)=>{if(Y[0]==="INDEX_START")this.detectEnd(W+1,(F)=>F[0]==="]"||F[0]==="INDEX_END",(F,U)=>{if(this.tokens[U+1]?.[0]===":")Y[0]="[",F[0]="]";else F[0]="INDEX_END"});return 1})}normalizeLines(){let Y=null,W=null,F=null,U=($,Q)=>{return $[1]!==";"&&l1.has($[0])&&!($[0]==="TERMINATOR"&&G1.has(this.tokens[Q+1]?.[0]))&&!($[0]==="ELSE"&&Y!=="THEN")||$[0]==="INDENT"&&!$.generated&&(Y==="->"||Y==="=>")||$[0]===","&&(Y==="->"||Y==="=>")&&!this.commaInImplicitCall(Q)&&!this.commaInImplicitObject(Q)||H1.has($[0])&&(this.tokens[Q-1]?.newLine||this.tokens[Q-1]?.[0]==="OUTDENT")},A=($,Q)=>{let J=this.tokens[Q-1]?.[0]===","?Q-1:Q;this.tokens.splice(J,0,F)};this.scanTokens(($,Q,J)=>{let[Z]=$;if(Z==="TERMINATOR"){if(this.tokens[Q+1]?.[0]==="ELSE"&&this.tokens[Q-1]?.[0]!=="OUTDENT")return J.splice(Q,1,...this.makeIndentation()),1;if(G1.has(this.tokens[Q+1]?.[0]))return J.splice(Q,1),0}if(Z==="CATCH")for(let K=1;K<=2;K++){let X=this.tokens[Q+K]?.[0];if(X==="OUTDENT"||X==="TERMINATOR"||X==="FINALLY")return J.splice(Q+K,0,...this.makeIndentation()),2+K}if((Z==="->"||Z==="=>")&&(this.tokens[Q+1]?.[0]===","||this.tokens[Q+1]?.[0]==="]"))return[W,F]=this.makeIndentation(),J.splice(Q+1,0,W,F),1;if(q1.has(Z)&&this.tokens[Q+1]?.[0]!=="INDENT"&&!(Z==="ELSE"&&this.tokens[Q+1]?.[0]==="IF")){if(Y=Z,[W,F]=this.makeIndentation(),Z==="THEN")W.fromThen=!0;if(J.splice(Q+1,0,W),this.detectEnd(Q+2,U,A),Z==="THEN")J.splice(Q,1);return 1}return 1})}rewriteRender(){let Y=!1,W=0,F=0,U=[],A=(Z)=>{let K=Z.split("#")[0];return n.has(K)},$=(Z)=>{if(!Z||typeof Z!=="string")return!1;return/^[A-Z]/.test(Z)},Q=(Z)=>{return A(Z)||$(Z)},J=(Z,K)=>{let X=K;while(X>0){let z=Z[X-1][0];if(z==="INDENT"||z==="OUTDENT"||z==="TERMINATOR"||z==="RENDER"||z==="CALL_END"||z===")")break;X--}return Z[X]&&Z[X][0]==="IDENTIFIER"&&A(Z[X][1])};this.scanTokens(function(Z,K,X){let z=Z[0],R=K<X.length-1?X[K+1]:null;if(z==="RENDER")return Y=!0,W=F+1,1;if(z==="INDENT")return F++,1;if(z==="OUTDENT"){F--;let D=0;while(U.length>0&&U[U.length-1]>F){let G=u("CALL_END",")",Z);X.splice(K+1+D,0,G),U.pop(),D++}if(Y&&F<W)Y=!1;return 1+D}if(!Y)return 1;if(z==="IDENTIFIER"&&!Z.spaced){let D=[Z[1]],G=K+1;while(G+1<X.length){let M=X[G],q=X[G+1];if(M[0]==="-"&&!M.spaced&&(q[0]==="IDENTIFIER"||q[0]==="PROPERTY")){if(D.push(q[1]),G+=2,q[0]==="PROPERTY")break}else break}if(D.length>1&&G>K+1&&X[G-1][0]==="PROPERTY")return Z[0]="STRING",Z[1]=`"${D.join("-")}"`,X.splice(K+1,G-K-1),1}if(z==="."){let D=K>0?X[K-1]:null,G=D?D[0]:null;if(G==="INDENT"||G==="TERMINATOR"){if(R&&R[0]==="PROPERTY"){let M=u("IDENTIFIER","div",Z);return X.splice(K,0,M),2}}}if(z==="IDENTIFIER"||z==="PROPERTY"){let D=X[K+1],G=X[K+2];if(D&&D[0]==="#"&&G&&G[0]==="PROPERTY"){if(Z[1]=Z[1]+"#"+G[1],G.spaced)Z.spaced=!0;return X.splice(K+1,2),1}}if(z==="BIND"){let D=K>0?X[K-1]:null,G=X[K+1];if(D&&(D[0]==="IDENTIFIER"||D[0]==="PROPERTY")&&G&&G[0]==="IDENTIFIER")return D[1]=`__bind_${D[1]}__`,Z[0]=":",Z[1]=":",1}if(z==="@"){let D=K+1;if(D<X.length&&X[D][0]==="PROPERTY"){D++;while(D+1<X.length&&X[D][0]==="."&&X[D+1][0]==="PROPERTY")D+=2;if(D>K+2&&D<X.length&&X[D][0]===":"){let G=u("[","[",Z);X.splice(K,0,G);let M=u("]","]",X[D+1]);return X.splice(D+1,0,M),2}}}if(z==="."&&R&&R[0]==="("){let D=K>0?X[K-1]:null,G=D?D[0]:null,M=G==="INDENT"||G==="TERMINATOR",q=u("PROPERTY","__clsx",Z);R[0]="CALL_START";let H=1;for(let I=K+2;I<X.length&&H>0;I++)if(X[I][0]==="("||X[I][0]==="CALL_START")H++;else if(X[I][0]===")"){if(H--,H===0)X[I][0]="CALL_END"}else if(X[I][0]==="CALL_END")H--;if(M){let I=u("IDENTIFIER","div",Z);return X.splice(K,0,I),X.splice(K+2,0,q),3}else return X.splice(K+1,0,q),2}if(R&&R[0]==="INDENT"){if(z==="->"||z==="=>"||z==="CALL_START"||z==="(")return 1;let D=!1;if(z==="IDENTIFIER"&&Q(Z[1]))D=!0;else if(z==="PROPERTY"||z==="STRING"||z==="CALL_END"||z===")")D=J(X,K);else if(z==="IDENTIFIER"&&K>1&&X[K-1][0]==="..."){if(J(X,K)){let G=u(",",",",Z),M=u("->","->",Z);return M.newLine=!0,X.splice(K+1,0,G,M),3}}if(D){let G=u("CALL_START","(",Z),M=u("->","->",Z);return M.newLine=!0,X.splice(K+1,0,G,M),U.push(F+1),3}}if(z==="IDENTIFIER"&&$(Z[1])&&R&&(R[0]==="OUTDENT"||R[0]==="TERMINATOR"))return X.splice(K+1,0,u("CALL_START","(",Z),u("CALL_END",")",Z)),3;return 1})}tagPostfixConditionals(){let Y=null,W=(U,A)=>{return U[0]==="TERMINATOR"||U[0]==="INDENT"&&!q1.has(this.tokens[A-1]?.[0])},F=(U)=>{if(U[0]!=="INDENT"||U.generated&&!U.fromThen)Y[0]="POST_"+Y[0]};this.scanTokens((U,A)=>{if(U[0]!=="IF"&&U[0]!=="UNLESS")return 1;return Y=U,this.detectEnd(A+1,W,F),1})}addImplicitBracesAndParens(){let Y=[],W=!1;this.scanTokens((F,U,A)=>{let[$]=F,Q=A[U-1]||[],J=A[U+1]||[],[Z]=Q,[K]=J,X=U,z=(O)=>U-X+O,R=()=>Y[Y.length-1],D=(O)=>O?.[2]?.ours,G=()=>D(R())&&R()?.[0]==="(",M=()=>D(R())&&R()?.[0]==="{",q=(O)=>{Y.push(["(",O,{ours:!0}]),A.splice(O,0,u("CALL_START","("))},H=()=>{Y.pop(),A.splice(U,0,u("CALL_END",")")),U+=1},I=(O,N={})=>{Y.push(["{",O,{sameLine:!0,startsLine:N.startsLine??!0,ours:!0}]);let E=u("{","{");if(!E.data)E.data={};E.data.generated=!0,A.splice(O,0,E)},B=(O)=>{O=O??U,Y.pop(),A.splice(O,0,u("}","}")),U+=1};if((G()||M())&&c1.has($))return Y.push(["CONTROL",U,{ours:!0}]),z(1);if($==="INDENT"&&D(R())){if(Z!=="=>"&&Z!=="->"&&Z!=="["&&Z!=="("&&Z!==","&&Z!=="{"&&Z!=="ELSE"&&Z!=="=")while(G()||M()&&Z!==":")if(G())H();else B();if(R()?.[2]?.ours&&R()[0]==="CONTROL")Y.pop();return Y.push([$,U]),z(1)}if(v.has($))return Y.push([$,U]),z(1);if(y.has($)){while(D(R()))if(G())H();else if(M())B();else Y.pop();Y.pop()}if(U1.has($)&&F.spaced&&(a.has(K)||K==="..."&&a.has(A[U+2]?.[0])||v1.has(K)&&!J.spaced&&!J.newLine)&&!(($==="]"||$==="}")&&(K==="->"||K==="=>")))return q(U+1),z(2);if(U1.has($)&&this.tokens[U+1]?.[0]==="INDENT"&&this.looksObjectish(U+2)&&!this.findTagsBackwards(U,["CLASS","EXTENDS","IF","CATCH","SWITCH","LEADING_WHEN","FOR","WHILE","UNTIL"]))return q(U+1),Y.push(["INDENT",U+2]),z(3);if($==="SPACE?")W=!0;if($===":"){if(W)return W=!1,z(1);let O=y.has(this.tokens[U-1]?.[0])?Y[Y.length-1]?.[1]??U-1:U-1;if(this.tokens[U-2]?.[0]==="@")O=U-2;let N=O<=0||p.has(this.tokens[O-1]?.[0])||this.tokens[O-1]?.newLine;if(R()){let[E,T]=R(),L=Y[Y.length-2];if((E==="{"||E==="INDENT"&&L?.[0]==="{"&&!D(L))&&(N||this.tokens[O-1]?.[0]===","||this.tokens[O-1]?.[0]==="{"||this.tokens[O]?.[0]==="{"))return z(1)}return I(O,{startsLine:!!N}),z(2)}if(p.has($))for(let O=Y.length-1;O>=0;O--){if(!D(Y[O]))break;if(Y[O][0]==="{")Y[O][2].sameLine=!1}let P=Z==="OUTDENT"||Q.newLine,_=$==="||"||$==="&&",w=!1;if(_){let O=U+1,N=A[O]?.[0];if(N==="("||N==="["||N==="{"){for(let E=1;++O<A.length&&E>0;)if(N=A[O][0],N==="("||N==="["||N==="{")E++;else if(N===")"||N==="]"||N==="}")E--}else if(N&&N!=="TERMINATOR"&&N!=="OUTDENT"&&N!==",")O++;w=A[O]?.[0]===","}if(g1.has($)&&!w||H1.has($)&&P)while(D(R())){let[O,,{sameLine:N,startsLine:E}]=R();if(G()&&Z!==",")H();else if(M()&&!_&&N&&$!=="TERMINATOR"&&Z!==":")B();else if(M()&&$==="TERMINATOR"&&Z!==","&&!(E&&this.looksObjectish(U+1)))B();else if(R()?.[2]?.ours&&R()[0]==="CONTROL"&&A[R()[1]]?.[0]==="CLASS"&&$==="TERMINATOR")Y.pop();else break}if($===","&&!this.looksObjectish(U+1)&&M()&&(K!=="TERMINATOR"||!this.looksObjectish(U+2))){let O=K==="OUTDENT"?1:0;while(M())B(U+O)}return z(1)})}addImplicitCallCommas(){let Y=0,W=0,F=this.tokens;while(W<F.length){let U=F[W][0],A=W>0?F[W-1][0]:null;if(U==="CALL_START"||U==="(")Y++;if(U==="CALL_END"||U===")")Y--;if(Y>0&&(U==="->"||U==="=>")&&x1.has(A))F.splice(W,0,u(",",",")),W++;W++}}scanTokens(Y){let W=0;while(W<this.tokens.length)W+=Y.call(this,this.tokens[W],W,this.tokens)}detectEnd(Y,W,F,U={}){let A=0;while(Y<this.tokens.length){let $=this.tokens[Y];if(A===0&&W.call(this,$,Y))return F.call(this,$,Y);if(v.has($[0]))A++;if(y.has($[0]))A--;if(A<0){if(U.returnOnNegativeLevel)return;return F.call(this,$,Y)}Y++}}closeMergeAssignments(){let Y=this.tokens;for(let W=0;W<Y.length;W++){if(!Y[W].mergeClose)continue;let F=0;for(let U=W+1;U<Y.length;U++){let A=Y[U][0];if(A==="("||A==="["||A==="{"||A==="CALL_START"||A==="INDEX_START"||A==="INDENT")F++;if(A===")"||A==="]"||A==="}"||A==="CALL_END"||A==="INDEX_END"||A==="OUTDENT")F--;if(F<0||F===0&&A==="TERMINATOR"){Y.splice(U,0,u("CALL_END",")",Y[U-1]));break}if(U===Y.length-1){Y.splice(U+1,0,u("CALL_END",")",Y[U]));break}}}}commaInImplicitCall(Y){let W=0;for(let F=Y-1;F>=0;F--){let U=this.tokens[F][0];if(y.has(U)){W++;continue}if(v.has(U)){if(U==="INDENT")return!1;if(W--,W<0)return!1;continue}if(W>0)continue;if(U1.has(U)&&this.tokens[F].spaced){let A=this.tokens[F+1]?.[0];return a.has(A)||A==="..."&&a.has(this.tokens[F+2]?.[0])}}return!1}commaInImplicitObject(Y){let W=0;for(let F=Y-1;F>=0;F--){let U=this.tokens[F][0];if(y.has(U)){W++;continue}if(v.has(U)){if(W--,W<0)return!1;continue}if(W>0)continue;if(U===":"&&F>0&&this.tokens[F-1][0]==="PROPERTY")return this.looksObjectish(Y+1);if(p.has(U))return!1}return!1}looksObjectish(Y){if(!this.tokens[Y])return!1;if(this.tokens[Y]?.[0]==="@"&&this.tokens[Y+2]?.[0]===":")return!0;if(this.tokens[Y+1]?.[0]===":")return!0;if(v.has(this.tokens[Y]?.[0])){let W=null;if(this.detectEnd(Y+1,(F)=>y.has(F[0]),(F,U)=>W=U),W&&this.tokens[W+1]?.[0]===":")return!0}return!1}findTagsBackwards(Y,W){let F=new Set(W),U=[];while(Y>=0){let A=this.tokens[Y]?.[0];if(!U.length&&F.has(A))return!0;if(y.has(A))U.push(A);if(v.has(A)&&U.length)U.pop();if(!U.length&&(v.has(A)&&!this.tokens[Y]?.generated||p.has(A)))break;Y--}return!1}makeIndentation(Y){let W=u("INDENT",2),F=u("OUTDENT",2);if(Y)W.generated=F.generated=!0,W.origin=F.origin=Y;else W.explicit=F.explicit=!0;return[W,F]}}K1(x);var G2={symbolIds:{$accept:0,$end:1,error:2,Root:3,Body:4,Line:5,TERMINATOR:6,Expression:7,ExpressionLine:8,Statement:9,Return:10,STATEMENT:11,Import:12,Export:13,Value:14,Code:15,Operation:16,Assign:17,ReactiveAssign:18,ComputedAssign:19,ReadonlyAssign:20,ReactAssign:21,If:22,Try:23,While:24,For:25,Switch:26,Class:27,Component:28,Render:29,Throw:30,Yield:31,Def:32,Enum:33,CodeLine:34,OperationLine:35,Assignable:36,Literal:37,Parenthetical:38,Range:39,Invocation:40,DoIife:41,This:42,Super:43,MetaProperty:44,AlphaNumeric:45,JS:46,Regex:47,UNDEFINED:48,NULL:49,BOOL:50,INFINITY:51,NAN:52,NUMBER:53,String:54,Identifier:55,IDENTIFIER:56,Property:57,PROPERTY:58,STRING:59,STRING_START:60,Interpolations:61,STRING_END:62,InterpolationChunk:63,INTERPOLATION_START:64,INTERPOLATION_END:65,INDENT:66,OUTDENT:67,REGEX:68,REGEX_START:69,REGEX_END:70,RegexWithIndex:71,",":72,"=":73,REACTIVE_ASSIGN:74,COMPUTED_ASSIGN:75,READONLY_ASSIGN:76,REACT_ASSIGN:77,SimpleAssignable:78,Array:79,Object:80,ThisProperty:81,".":82,"?.":83,INDEX_START:84,INDEX_END:85,Slice:86,ES6_OPTIONAL_INDEX:87,"{":88,ObjAssignable:89,":":90,FOR:91,ForVariables:92,FOROF:93,OptComma:94,"}":95,WHEN:96,OWN:97,AssignList:98,AssignObj:99,ObjRestValue:100,SimpleObjAssignable:101,"[":102,"]":103,"@":104,"...":105,ObjSpreadExpr:106,SUPER:107,Arguments:108,DYNAMIC_IMPORT:109,Elisions:110,ArgElisionList:111,OptElisions:112,ArgElision:113,Arg:114,Elision:115,RangeDots:116,"..":117,DEF:118,CALL_START:119,ParamList:120,CALL_END:121,Block:122,PARAM_START:123,PARAM_END:124,FuncGlyph:125,"->":126,"=>":127,Param:128,ParamVar:129,Splat:130,ES6_OPTIONAL_CALL:131,ArgList:132,SimpleArgs:133,THIS:134,NEW_TARGET:135,IMPORT_META:136,"(":137,")":138,RETURN:139,THROW:140,YIELD:141,FROM:142,IfBlock:143,IF:144,ELSE:145,UnlessBlock:146,UNLESS:147,POST_IF:148,POST_UNLESS:149,TRY:150,Catch:151,FINALLY:152,CATCH:153,SWITCH:154,Whens:155,When:156,LEADING_WHEN:157,WhileSource:158,WHILE:159,UNTIL:160,Loop:161,LOOP:162,FORIN:163,BY:164,FORAS:165,AWAIT:166,FORASAWAIT:167,ForValue:168,CLASS:169,EXTENDS:170,ENUM:171,COMPONENT:172,ComponentBody:173,ComponentLine:174,RENDER:175,IMPORT:176,ImportDefaultSpecifier:177,ImportNamespaceSpecifier:178,ImportSpecifierList:179,ImportSpecifier:180,AS:181,DEFAULT:182,IMPORT_ALL:183,EXPORT:184,ExportSpecifierList:185,EXPORT_ALL:186,ExportSpecifier:187,UNARY:188,DO:189,DO_IIFE:190,UNARY_MATH:191,"-":192,"+":193,"?":194,"--":195,"++":196,MATH:197,"**":198,SHIFT:199,COMPARE:200,"&":201,"^":202,"|":203,"||":204,"??":205,"&&":206,"!?":207,PIPE:208,RELATION:209,"SPACE?":210,COMPOUND_ASSIGN:211},tokenNames:{2:"error",6:"TERMINATOR",11:"STATEMENT",46:"JS",48:"UNDEFINED",49:"NULL",50:"BOOL",51:"INFINITY",52:"NAN",53:"NUMBER",56:"IDENTIFIER",58:"PROPERTY",59:"STRING",60:"STRING_START",62:"STRING_END",64:"INTERPOLATION_START",65:"INTERPOLATION_END",66:"INDENT",67:"OUTDENT",68:"REGEX",69:"REGEX_START",70:"REGEX_END",72:",",73:"=",74:"REACTIVE_ASSIGN",75:"COMPUTED_ASSIGN",76:"READONLY_ASSIGN",77:"REACT_ASSIGN",82:".",83:"?.",84:"INDEX_START",85:"INDEX_END",87:"ES6_OPTIONAL_INDEX",88:"{",90:":",91:"FOR",93:"FOROF",95:"}",96:"WHEN",97:"OWN",102:"[",103:"]",104:"@",105:"...",107:"SUPER",109:"DYNAMIC_IMPORT",117:"..",118:"DEF",119:"CALL_START",121:"CALL_END",123:"PARAM_START",124:"PARAM_END",126:"->",127:"=>",131:"ES6_OPTIONAL_CALL",134:"THIS",135:"NEW_TARGET",136:"IMPORT_META",137:"(",138:")",139:"RETURN",140:"THROW",141:"YIELD",142:"FROM",144:"IF",145:"ELSE",147:"UNLESS",148:"POST_IF",149:"POST_UNLESS",150:"TRY",152:"FINALLY",153:"CATCH",154:"SWITCH",157:"LEADING_WHEN",159:"WHILE",160:"UNTIL",162:"LOOP",163:"FORIN",164:"BY",165:"FORAS",166:"AWAIT",167:"FORASAWAIT",169:"CLASS",170:"EXTENDS",171:"ENUM",172:"COMPONENT",175:"RENDER",176:"IMPORT",181:"AS",182:"DEFAULT",183:"IMPORT_ALL",184:"EXPORT",186:"EXPORT_ALL",188:"UNARY",189:"DO",190:"DO_IIFE",191:"UNARY_MATH",192:"-",193:"+",194:"?",195:"--",196:"++",197:"MATH",198:"**",199:"SHIFT",200:"COMPARE",201:"&",202:"^",203:"|",204:"||",205:"??",206:"&&",207:"!?",208:"PIPE",209:"RELATION",210:"SPACE?",211:"COMPOUND_ASSIGN"},parseTable:(()=>{let Y=[107,1,2,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,-1,1,2,3,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,1,1,0,2,1,5,-2,107,5,1,5,59,2,71,-3,-3,-3,-3,-3,31,1,5,59,1,1,5,19,12,18,17,10,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-6,-6,-6,-6,-6,-6,127,-6,-6,-6,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,9,1,5,59,1,1,5,31,18,17,-7,-7,-7,-7,-7,-7,-7,-7,-7,14,1,5,59,1,1,5,31,18,17,10,1,9,1,1,-8,-8,-8,-8,-8,-8,-8,-8,-8,128,129,130,96,97,54,1,5,48,5,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,3,9,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-13,-13,132,105,106,-13,-13,-13,-13,135,136,137,-13,138,-13,-13,-13,-13,-13,-13,-13,133,-13,139,-13,-13,134,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,131,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,46,1,5,59,1,1,5,10,1,1,1,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-14,-14,-14,-14,-14,-14,140,141,142,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,-15,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,-16,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,-17,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,-18,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,-19,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,-20,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,-21,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,-22,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,-23,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,-24,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,-25,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,-26,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,-27,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,-28,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,-29,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,-30,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,-31,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,-32,9,1,5,59,1,1,5,31,18,17,-33,-33,-33,-33,-33,-33,-33,-33,-33,9,1,5,59,1,1,5,31,18,17,-34,-34,-34,-34,-34,-34,-34,-34,-34,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,57,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-35,-35,-35,-35,-35,-35,-35,-35,143,144,145,146,147,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,-36,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,-37,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,-38,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,-40,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,-41,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,-42,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,-43,18,6,49,1,10,1,5,7,1,1,7,14,2,1,15,1,3,4,1,-173,152,104,-173,-173,-173,154,155,153,99,157,156,151,148,-173,-173,149,150,106,5,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,4,1,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,159,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,160,102,103,53,52,72,73,93,99,59,83,87,84,85,66,158,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,103,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,161,162,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,103,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,164,165,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,166,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,172,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,173,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,174,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,175,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,45,14,1,21,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,7,14,2,3,2,14,2,1,1,7,1,1,1,53,177,178,179,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,176,72,73,93,99,83,87,84,85,167,168,90,91,86,88,89,82,171,45,14,1,21,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,7,14,2,3,2,14,2,1,1,7,1,1,1,53,177,178,179,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,180,72,73,93,99,83,87,84,85,167,168,90,91,86,88,89,82,171,60,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,181,182,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,183,102,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,185,184,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,186,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,187,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,2,66,56,160,188,2,66,56,160,189,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,14,39,16,1,23,1,1,7,4,5,5,2,25,37,2,193,152,104,154,155,153,99,190,191,83,156,195,192,194,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,196,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,197,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,90,1,5,8,1,21,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,5,1,1,1,1,3,6,1,1,1,4,3,2,1,2,2,1,6,1,1,1,2,2,8,4,1,1,1,1,1,1,7,1,1,1,1,7,3,1,10,1,3,1,1,2,3,20,2,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-304,-304,177,178,179,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-304,160,-304,102,103,-304,200,72,73,93,-304,99,-304,-304,-304,-304,-304,83,-304,87,-304,84,85,-304,-304,198,167,-304,168,90,91,86,88,89,82,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,199,171,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,1,66,201,2,66,56,160,202,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,203,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,204,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,139,1,5,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,5,1,1,1,1,3,5,1,1,1,1,4,3,2,1,2,2,1,6,1,1,1,2,2,8,1,3,2,1,1,1,1,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,4,4,1,1,1,1,1,1,1,1,1,2,2,1,3,1,8,4,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-224,-224,205,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-224,206,-224,102,103,-224,53,52,72,73,93,-224,99,-224,-224,-224,-224,-224,83,-224,87,-224,84,85,-224,66,-224,167,-224,168,90,91,86,88,89,82,-224,69,64,65,207,54,94,-224,55,95,-224,-224,56,60,57,-224,-224,58,98,-224,-224,-224,49,-224,61,67,62,63,70,71,169,170,171,46,47,48,50,51,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,2,55,1,208,104,2,55,1,209,104,6,15,19,89,2,1,1,211,210,42,43,90,91,138,1,5,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,5,1,1,1,1,3,5,1,1,1,1,4,3,2,1,2,2,1,6,1,1,1,2,2,8,1,3,2,1,1,1,1,7,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,4,4,1,1,1,1,1,1,1,1,1,2,2,1,3,1,8,4,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-221,-221,212,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-221,213,-221,102,103,-221,53,52,72,73,93,-221,99,-221,-221,-221,-221,-221,83,-221,87,-221,84,85,-221,66,-221,167,-221,168,90,91,86,88,89,82,-221,69,64,65,54,94,-221,55,95,-221,-221,56,60,57,-221,-221,58,98,-221,-221,-221,49,-221,61,67,62,63,70,71,169,170,171,46,47,48,50,51,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,9,54,1,1,3,1,28,89,1,5,214,218,104,105,106,217,215,216,219,60,14,1,3,1,1,1,6,1,4,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,14,2,3,2,9,5,2,1,1,7,1,1,1,32,2,1,10,4,4,177,178,226,227,228,229,221,222,223,224,232,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,225,104,105,106,102,103,53,233,72,73,93,220,83,87,84,85,66,167,168,90,91,86,88,89,82,61,67,62,230,231,171,57,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,-87,57,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,-44,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,-45,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,-47,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,-48,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,-50,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,-51,106,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,234,3,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,235,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,113,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,3,5,1,1,1,1,7,3,11,1,1,1,2,2,1,1,2,1,1,3,5,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,236,245,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,242,102,103,243,53,52,72,73,93,99,59,83,237,87,247,84,85,238,239,241,244,240,66,42,43,90,91,246,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,4,82,2,24,11,249,250,248,139,2,108,11,251,139,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,54,1,5,51,1,1,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-206,-206,252,253,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,1,82,254,1,82,255,54,11,35,2,1,1,1,1,1,3,3,1,6,2,1,8,11,3,11,2,3,2,9,5,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,-171,54,11,35,2,1,1,1,1,1,3,3,1,6,2,1,8,11,3,11,2,3,2,9,5,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,-172,61,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,61,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,256,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,257,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,258,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,259,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,4,1,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,261,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,160,102,103,53,52,72,73,93,99,59,83,87,84,85,66,260,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,23,6,39,8,1,1,1,1,1,1,1,6,1,5,9,8,6,3,1,1,1,1,2,1,-109,267,100,101,269,104,270,253,105,106,-109,-109,-109,271,262,-109,263,268,272,264,265,266,273,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,-52,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,-53,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,-64,45,14,1,21,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,9,1,1,1,7,14,2,3,2,14,2,1,1,7,1,1,1,53,177,178,179,34,35,36,274,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,233,72,73,93,99,83,87,84,85,167,168,90,91,86,88,89,82,171,63,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,4,3,3,1,10,1,3,1,1,2,3,11,11,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,-54,55,1,5,53,1,2,2,1,1,1,3,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,-56,6,54,5,1,1,2,1,278,105,106,275,276,277,109,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,5,2,1,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,1,1,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,-5,279,-5,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-5,-5,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,-5,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,280,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,281,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,282,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,283,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,284,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,285,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,286,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,287,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,288,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,291,163,289,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,290,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,294,163,292,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,293,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,297,163,295,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,296,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,298,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,299,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,300,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,301,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,302,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,303,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,14,39,16,1,23,1,1,7,4,5,5,2,25,37,2,307,152,104,154,155,153,99,304,305,83,156,195,306,194,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,308,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,309,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,-375,53,1,5,53,1,5,1,1,3,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,-187,53,1,5,53,1,5,1,1,3,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,-188,2,108,11,310,139,2,57,1,311,253,2,57,1,312,253,106,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,2,6,1,1,1,1,5,2,3,11,2,1,2,2,7,1,1,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,313,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,318,77,78,79,80,81,100,101,92,104,105,106,314,102,103,316,53,52,72,73,93,315,99,59,83,87,320,84,85,317,319,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,1,84,321,109,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,1,2,2,5,4,3,2,2,1,1,3,2,2,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,326,245,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,325,102,103,53,52,72,73,93,99,59,83,87,247,84,85,324,66,322,42,43,90,91,246,323,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,2,57,1,327,253,2,57,1,328,253,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,329,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,330,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,102,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,332,331,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,333,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,102,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,335,334,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,336,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,102,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,338,337,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,339,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,102,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,341,340,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,342,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,102,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,344,343,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,345,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,9,6,60,1,5,22,1,8,18,3,-217,-217,-217,347,348,-217,-217,-217,346,6,6,60,1,5,49,3,-174,-174,-174,-174,-174,-174,7,6,60,1,5,1,48,3,-178,-178,-178,-178,349,-178,-178,15,6,49,1,10,1,5,7,1,1,7,14,2,17,3,5,-181,152,104,-181,-181,-181,154,155,153,99,157,156,-181,-181,350,11,6,60,1,5,1,20,28,3,39,2,2,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,11,6,60,1,5,1,20,28,3,39,2,2,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,11,6,60,1,5,1,20,28,3,39,2,2,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,11,6,60,1,5,1,20,28,3,39,2,2,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,2,57,1,252,253,113,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,3,5,1,1,1,1,7,3,11,1,1,1,2,2,1,1,2,1,1,3,5,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,326,245,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,242,102,103,243,53,52,72,73,93,99,59,83,237,87,247,84,85,238,239,241,244,240,66,42,43,90,91,246,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,9,1,5,59,1,1,5,31,18,17,-170,-170,-170,-170,-170,-170,-170,-170,-170,106,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,7,1,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,352,3,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,351,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,125,126,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,118,-370,120,-370,-370,-370,9,1,5,59,1,1,5,31,18,17,-367,-367,-367,-367,-367,-367,-367,-367,-367,5,148,1,9,1,1,128,129,130,96,97,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,125,126,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,118,-371,120,-371,-371,-371,9,1,5,59,1,1,5,31,18,17,-368,-368,-368,-368,-368,-368,-368,-368,-368,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,125,126,-372,-372,-372,-372,-372,-372,-372,-372,-372,111,-372,-372,-372,-372,-372,-372,118,-372,120,-372,-372,-372,18,6,49,1,10,1,5,7,1,1,7,14,2,1,15,1,3,4,1,-173,152,104,-173,-173,-173,154,155,153,99,157,156,151,353,-173,-173,149,150,2,66,56,160,158,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,161,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,164,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,5,15,108,2,1,1,211,167,168,90,91,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,125,126,-373,-373,-373,-373,-373,-373,-373,-373,-373,111,-373,-373,-373,-373,-373,-373,118,-373,120,-373,-373,-373,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,125,126,-374,-374,-374,-374,-374,-374,-374,-374,-374,111,-374,-374,-374,-374,-374,-374,118,-374,120,-374,-374,-374,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,125,126,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,118,-376,120,-376,-376,-376,2,80,8,354,99,57,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-378,-378,-86,-86,-378,-378,-378,-378,-86,-86,-86,-86,-86,-86,-86,-86,-378,-86,-378,-378,-378,-378,-378,-378,-378,-378,-86,-378,-378,-86,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-86,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,10,54,5,1,22,1,1,3,21,11,12,132,105,106,135,136,137,138,133,139,134,3,82,1,1,140,141,142,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,57,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-379,-379,-86,-86,-379,-379,-379,-379,-86,-86,-86,-86,-86,-86,-86,-86,-379,-86,-379,-379,-379,-379,-379,-379,-379,-379,-86,-379,-379,-86,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-86,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,-380,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,102,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,357,355,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,356,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-83,-83,-83,-83,-83,-83,-83,-83,127,-83,-83,-83,-83,-83,-83,-83,-83,-83,-83,124,125,126,96,97,-83,-83,-83,-83,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,358,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,359,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,3,66,56,22,160,360,361,46,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,2,1,1,6,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,362,363,364,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,-240,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,4,93,70,2,2,366,365,367,368,11,55,1,23,1,1,7,4,10,2,25,39,152,104,154,155,153,99,369,157,156,195,194,11,55,1,23,1,1,7,4,10,2,25,39,152,104,154,155,153,99,370,157,156,195,194,3,66,56,42,160,371,372,5,72,21,70,2,2,373,-302,-302,-302,-302,6,72,1,20,70,2,2,-300,374,-300,-300,-300,-300,23,66,25,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,375,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,3,155,1,1,376,377,378,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,379,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,59,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,1,2,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-308,-308,-86,-86,-308,160,-308,-308,-86,-86,-86,-86,-86,-86,-86,-86,-308,-86,-308,-308,-308,-308,-308,-308,-308,-308,-86,-308,380,-308,-86,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,381,-308,-308,-86,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,105,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,1,1,1,1,8,4,1,1,1,1,1,2,1,384,385,386,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,382,383,63,70,71,44,45,68,46,47,48,50,51,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,-320,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,125,126,-222,-222,-222,-222,-222,-222,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,80,8,387,99,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,125,126,-225,-225,-225,-225,-225,-225,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,80,8,388,99,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,389,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,3,66,53,3,160,390,391,2,66,56,160,392,9,1,5,59,1,1,5,31,18,17,-369,-369,-369,-369,-369,-369,-369,-369,-369,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,125,126,-219,-219,-219,-219,-219,-219,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,80,8,393,99,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,2,72,70,395,394,1,142,396,7,55,1,10,29,84,1,2,401,104,400,397,398,399,402,2,72,70,-337,-337,1,181,403,26,6,39,8,1,1,1,1,1,1,1,6,1,5,9,8,6,3,1,1,1,1,2,1,77,3,2,-109,267,100,101,408,104,270,253,105,106,407,-109,-109,271,262,404,263,268,272,264,265,266,273,409,405,406,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,61,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-89,-89,-89,-89,-89,-89,-89,-89,410,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,411,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,412,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,1,142,413,56,1,5,53,1,5,1,1,5,2,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-35,-35,-35,-35,-35,-35,-35,-35,144,145,146,147,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,-35,57,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,2,6,132,107,414,105,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,415,3,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,31,6,60,1,5,19,12,2,11,1,4,27,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-199,-199,-199,-199,127,-199,320,416,319,-199,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,57,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,-142,109,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,3,5,1,1,1,1,7,3,11,1,1,1,2,2,5,1,3,5,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,326,245,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,243,53,52,72,73,93,99,59,83,417,87,247,84,85,419,418,66,42,43,90,91,246,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,9,6,60,1,5,22,1,8,9,9,-217,-217,-217,421,422,-217,-217,420,-217,59,6,5,35,2,1,1,1,1,1,3,3,1,6,1,1,1,3,5,11,3,11,1,1,1,2,2,9,5,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,423,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,-154,5,6,60,1,5,31,-145,-145,-145,-145,-145,112,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,3,5,1,1,1,1,7,3,11,2,1,2,2,1,1,2,1,1,3,5,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,326,245,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,242,102,103,243,53,52,72,73,93,99,59,83,87,247,84,85,425,424,241,244,240,66,42,43,90,91,246,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,59,6,5,35,2,1,1,1,1,1,3,3,1,6,1,1,1,3,5,11,3,11,1,1,1,2,2,9,5,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,-156,5,6,60,1,5,31,-150,-150,-150,-150,-150,6,6,60,1,5,31,18,-200,-200,-200,-200,-200,-200,6,6,60,1,5,31,18,-201,-201,-201,-201,-201,-201,106,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,1,1,1,3,5,1,1,1,1,7,3,11,1,1,3,2,9,3,2,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,-202,426,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-202,-202,102,103,-202,53,52,72,73,93,99,59,83,-202,87,84,85,66,-202,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,53,1,5,53,1,5,1,1,3,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,2,57,1,427,253,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,428,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,429,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,53,1,5,53,1,5,1,1,3,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,-191,61,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,61,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,-55,2,57,1,430,253,2,57,1,431,253,24,66,25,31,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,127,432,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,24,66,25,31,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,127,433,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-255,-255,-255,-255,-255,-255,-255,-255,127,-255,-255,434,-255,-255,-255,-255,-255,-255,-255,-255,125,126,96,97,-255,-255,-255,-255,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-257,-257,-257,-257,-257,-257,-257,-257,127,-257,-257,435,-257,-257,-257,-257,-257,-257,-257,-257,125,126,96,97,-257,-257,-257,-257,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,-263,45,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,1,2,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-264,-264,-264,160,-264,-264,-264,-264,127,-264,-264,-264,-264,-264,-264,-264,436,-264,-264,-264,-264,125,126,96,97,-264,-264,-264,-264,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,6,6,60,1,5,18,5,-114,-114,-114,-114,437,-114,8,6,60,1,5,22,1,8,18,-217,-217,-217,439,438,-217,-217,-217,7,6,60,1,5,1,17,5,-123,-123,-123,-123,440,-123,-123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,441,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,3,57,1,44,252,253,442,6,6,60,1,5,18,5,-126,-126,-126,-126,-126,-126,5,6,60,1,5,23,-110,-110,-110,-110,-110,11,6,60,1,5,1,9,1,1,6,5,24,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,11,6,60,1,5,1,9,1,1,6,5,24,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,11,6,60,1,5,1,9,1,1,6,5,24,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,5,6,60,1,5,23,-115,-115,-115,-115,-115,17,38,4,1,12,1,1,1,22,1,7,13,3,2,1,2,25,3,446,448,447,269,104,270,253,445,271,99,443,87,444,449,450,86,82,53,1,5,53,1,5,1,1,3,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-39,-39,-39,-39,-39,-39,-39,451,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,-39,6,54,5,1,2,1,1,278,105,106,452,453,277,4,59,1,2,2,-58,-58,-58,-58,107,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,5,1,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,454,3,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,456,455,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,4,59,1,2,2,-63,-63,-63,-63,5,1,5,59,2,71,-4,-4,-4,-4,-4,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,125,126,-382,-382,-382,-382,-382,-382,-382,-382,110,111,-382,-382,-382,-382,-382,-382,118,-382,120,-382,-382,-382,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,125,126,-383,-383,-383,-383,-383,-383,-383,-383,110,111,-383,-383,-383,-383,-383,-383,118,-383,120,-383,-383,-383,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,125,126,-384,-384,-384,-384,-384,-384,-384,-384,-384,111,-384,-384,-384,-384,-384,-384,118,-384,120,-384,-384,-384,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,125,126,-385,-385,-385,-385,-385,-385,-385,-385,-385,111,-385,-385,-385,-385,-385,-385,118,-385,120,-385,-385,-385,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,125,126,-386,-386,-386,-386,-386,-386,109,108,110,111,-386,-386,-386,-386,-386,-386,118,-386,120,-386,-386,-386,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,125,126,-387,-387,-387,-387,-387,-387,109,108,110,111,112,-387,-387,-387,-387,-387,118,-387,120,-387,122,-387,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,125,126,-388,-388,-388,-388,-388,-388,109,108,110,111,112,113,-388,-388,-388,-388,118,-388,120,-388,122,-388,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,125,126,-389,-389,-389,-389,-389,-389,109,108,110,111,112,113,114,-389,-389,-389,118,-389,120,-389,122,-389,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,125,126,-390,-390,-390,-390,-390,-390,109,108,110,111,112,113,114,115,-390,-390,118,-390,120,-390,122,-390,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,-391,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,-392,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,125,126,-398,-398,-398,-398,-398,-398,109,108,110,111,112,113,114,115,116,-398,118,119,120,-398,122,-398,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-399,-399,-399,-399,-399,-399,-399,-399,127,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,124,125,126,96,97,-399,-399,-399,-399,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,125,126,-397,-397,-397,-397,-397,-397,109,108,110,111,112,113,114,115,116,-397,118,-397,120,-397,122,-397,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-400,-400,-400,-400,-400,-400,-400,-400,127,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,124,125,126,96,97,-400,-400,-400,-400,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,125,126,-401,-401,-401,-401,-401,-401,109,108,110,111,112,113,114,115,116,117,118,119,120,-401,122,-401,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,125,126,-402,-402,-402,-402,-402,-402,109,108,110,111,112,-402,-402,-402,-402,-402,118,-402,120,-402,-402,-402,23,90,1,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,457,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-236,-236,-236,-236,-236,-236,-236,-236,127,-236,-236,-236,-236,-236,-236,-236,-236,-236,458,-236,125,126,96,97,-236,-236,-236,-236,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-239,-239,-239,-239,-239,-239,-239,-239,127,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,124,125,126,96,97,-239,-239,-239,-239,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,4,93,70,2,2,460,459,461,462,11,55,1,23,1,1,7,4,10,2,25,39,152,104,154,155,153,99,463,157,156,195,194,11,55,1,23,1,1,7,4,10,2,25,39,152,104,154,155,153,99,464,157,156,195,194,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,465,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-235,-235,-235,-235,-235,-235,-235,-235,127,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,-235,125,126,96,97,-235,-235,-235,-235,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-238,-238,-238,-238,-238,-238,-238,-238,127,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,124,125,126,96,97,-238,-238,-238,-238,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,53,1,5,53,1,5,1,1,3,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,-189,61,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,-91,61,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,26,85,6,14,11,1,31,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,466,127,320,467,319,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,104,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,5,2,3,11,2,1,2,2,7,1,1,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,468,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,469,99,59,83,87,320,84,85,317,319,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,1,85,470,1,85,471,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,7,1,1,8,1,1,1,1,4,3,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,472,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-164,102,103,53,52,72,73,93,-164,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-46,-46,-46,-46,-46,-46,-46,473,-46,-46,-46,-67,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,-46,55,11,35,2,1,1,1,1,1,3,3,1,7,1,1,8,8,3,3,11,2,3,2,9,5,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,-158,55,11,35,2,1,1,1,1,1,3,3,1,7,1,1,8,8,3,3,11,2,3,2,9,5,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,-159,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,474,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,475,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,53,1,5,53,1,5,1,1,3,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,-192,8,6,60,1,5,22,1,8,18,-217,-217,-217,477,476,-217,-217,-217,5,6,60,1,5,49,-194,-194,-194,-194,-194,108,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,1,2,2,5,4,5,2,1,1,3,2,2,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,326,245,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,325,102,103,53,52,72,73,93,99,59,83,87,247,84,85,324,66,42,43,90,91,246,478,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,28,6,60,1,5,19,12,18,27,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-199,-199,-199,-199,127,-199,-199,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,61,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,61,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,23,85,6,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,479,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,480,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,125,126,-68,-68,-68,-68,-68,-68,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,481,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,482,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-71,-71,-71,-71,-71,-71,-71,-71,127,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,124,125,126,96,97,-71,-71,-71,-71,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,483,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,484,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-74,-74,-74,-74,-74,-74,-74,-74,127,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,124,125,126,96,97,-74,-74,-74,-74,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,485,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,486,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-77,-77,-77,-77,-77,-77,-77,-77,127,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,124,125,126,96,97,-77,-77,-77,-77,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,487,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,488,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-80,-80,-80,-80,-80,-80,-80,-80,127,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,124,125,126,96,97,-80,-80,-80,-80,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,489,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,490,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,3,125,1,1,491,90,91,17,6,49,1,10,1,12,1,1,7,7,7,1,1,1,16,7,1,-218,152,104,-218,-218,154,155,153,99,-218,157,-218,156,151,-218,492,150,2,6,60,493,494,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,495,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,6,6,60,1,5,49,3,-180,-180,-180,-180,-180,-180,55,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,3,1,4,2,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,-213,2,6,61,107,496,9,6,60,1,5,22,1,8,18,3,-217,-217,-217,347,348,-217,-217,-217,497,1,67,498,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,-404,125,126,-404,-404,-404,-404,-404,-404,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,499,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,500,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-84,-84,-84,-84,-84,-84,-84,-84,127,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,124,125,126,96,97,-84,-84,-84,-84,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,23,67,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,501,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,502,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,3,7,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,503,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,-241,2,66,56,160,504,6,55,1,10,14,8,34,505,104,160,506,99,507,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,508,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,509,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,510,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,511,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,1,93,512,1,165,513,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,-281,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,514,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,10,55,1,23,1,1,7,14,2,25,39,152,104,154,155,153,99,157,156,195,515,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,516,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,3,155,1,1,517,377,378,4,67,78,11,1,518,519,520,378,3,67,78,12,-251,-251,-251,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,6,1,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,522,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,521,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,45,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,1,2,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-306,-306,-306,160,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,523,-306,-306,-306,-306,125,126,-306,-306,-306,-306,-306,-306,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,-309,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,524,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,2,6,61,526,525,2,6,61,-314,-314,24,6,61,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-317,-317,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,6,61,-318,-318,7,6,61,81,1,9,1,1,-319,-319,128,129,130,96,97,1,67,527,1,67,528,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,-227,125,126,-227,-227,-227,-227,-227,-227,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,18,6,49,1,10,1,5,7,1,1,7,14,2,1,15,1,3,4,1,-173,152,104,-173,-173,-173,154,155,153,99,157,156,151,529,-173,-173,149,150,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,-312,1,67,530,3,54,5,1,531,105,106,3,88,90,5,533,532,219,3,54,5,1,534,105,106,1,142,535,8,6,60,1,5,22,1,8,18,-217,-217,-217,537,536,-217,-217,-217,5,6,60,1,5,23,-328,-328,-328,-328,-328,6,55,1,10,113,1,2,401,104,400,538,399,402,6,6,60,1,5,23,86,-333,-333,-333,-333,-333,539,6,6,60,1,5,23,86,-335,-335,-335,-335,-335,540,2,55,1,541,104,14,1,5,59,1,1,5,31,18,17,4,6,1,10,1,-339,-339,-339,-339,-339,-339,-339,-339,-339,542,-339,-339,-339,-339,8,6,60,1,5,22,1,8,18,-217,-217,-217,544,543,-217,-217,-217,5,6,60,1,5,23,-357,-357,-357,-357,-357,6,55,1,10,116,3,2,546,104,407,409,545,406,12,6,60,1,5,1,9,1,1,6,5,24,62,-362,-362,-362,-362,-120,-120,-120,-120,-120,-362,-120,547,6,6,60,1,5,23,86,-365,-365,-365,-365,-365,548,102,6,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,550,549,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,551,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,31,1,5,59,1,1,5,19,12,18,17,10,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-352,-352,-352,-352,-352,-352,127,-352,-352,-352,-352,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,80,8,552,99,3,54,5,1,553,105,106,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,-215,2,6,61,107,554,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,555,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,57,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,-143,59,6,5,35,2,1,1,1,1,1,3,3,1,6,1,1,1,3,5,11,3,11,1,1,1,2,2,9,5,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,423,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,-155,5,6,60,1,5,31,-151,-151,-151,-151,-151,2,66,37,557,556,116,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,1,1,1,3,5,1,1,1,1,7,3,4,7,1,1,1,2,2,1,3,1,1,3,3,2,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,-218,326,245,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-218,-218,102,103,243,53,52,72,73,93,99,59,-218,83,-218,87,247,84,85,559,558,244,240,66,-218,42,43,90,91,246,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,4,6,60,1,36,560,-152,-152,-152,59,6,5,35,2,1,1,1,1,1,3,3,1,6,1,1,1,3,5,11,3,11,1,1,1,2,2,9,5,3,1,7,1,1,1,2,1,1,3,3,3,4,5,1,2,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,-157,9,6,60,1,5,22,1,8,9,9,-217,-217,-217,421,422,-217,-217,561,-217,108,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,3,5,1,1,1,1,7,3,11,2,1,2,2,5,1,3,5,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,326,245,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,243,53,52,72,73,93,99,59,83,87,247,84,85,419,418,66,42,43,90,91,246,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,28,6,60,1,5,19,12,18,27,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-186,-186,-186,-186,127,-186,-186,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,23,85,6,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,562,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,563,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,-228,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,564,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,-230,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,565,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,566,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,567,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,568,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,3,6,60,29,570,571,569,23,6,39,8,1,1,1,1,1,1,1,6,1,14,8,6,4,1,1,1,1,1,1,16,-218,267,100,101,269,104,270,253,105,106,-218,-218,271,573,-218,572,272,264,265,-218,266,273,-218,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,574,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,575,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,23,91,12,45,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,127,576,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,577,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,10,6,60,1,5,10,1,1,11,13,11,-127,-127,-127,-127,-129,-129,-129,-127,578,139,10,6,60,1,5,10,1,1,11,13,11,-128,-128,-128,-128,580,581,582,-128,579,139,9,6,60,1,5,10,1,1,11,24,-130,-130,-130,-130,-130,-130,-130,-130,-130,9,6,60,1,5,10,1,1,11,24,-131,-131,-131,-131,-131,-131,-131,-131,-131,9,6,60,1,5,10,1,1,11,24,-132,-132,-132,-132,-132,-132,-132,-132,-132,9,6,60,1,5,10,1,1,11,24,-133,-133,-133,-133,-133,-133,-133,-133,-133,4,82,2,24,11,249,250,583,139,2,108,11,584,139,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,55,1,5,53,1,2,2,1,1,1,3,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,-57,4,59,1,2,2,-59,-59,-59,-59,2,6,59,107,585,105,4,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,586,3,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,4,59,1,2,2,-62,-62,-62,-62,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,587,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,1,66,588,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,589,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,590,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,591,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,592,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,1,93,593,1,165,594,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,595,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,61,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,102,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,7,1,1,8,1,1,1,1,4,3,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,596,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-162,102,103,53,52,72,73,93,-162,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,26,67,24,14,11,1,31,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,597,127,320,467,319,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,1,67,598,61,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,-95,61,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,-97,24,67,18,6,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-163,-163,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,599,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,23,85,6,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,600,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,601,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,3,6,60,55,603,604,602,112,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,1,1,1,8,1,1,1,1,7,3,4,7,1,1,1,2,2,5,4,3,2,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,-218,326,245,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-218,-218,102,103,53,52,72,73,93,99,59,-218,83,-218,87,247,84,85,605,66,-218,42,43,90,91,246,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,8,6,60,1,5,22,1,8,18,-217,-217,-217,477,606,-217,-217,-217,61,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,23,67,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,607,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,125,126,-69,-69,-69,-69,-69,-69,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,23,67,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,608,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-72,-72,-72,-72,-72,-72,-72,-72,127,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,124,125,126,96,97,-72,-72,-72,-72,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,23,67,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,609,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-75,-75,-75,-75,-75,-75,-75,-75,127,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,124,125,126,96,97,-75,-75,-75,-75,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,23,67,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,610,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-78,-78,-78,-78,-78,-78,-78,-78,127,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,124,125,126,96,97,-78,-78,-78,-78,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,23,67,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,611,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-81,-81,-81,-81,-81,-81,-81,-81,127,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,124,125,126,96,97,-81,-81,-81,-81,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,23,67,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,612,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,106,5,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,4,1,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,614,4,5,6,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,160,102,103,53,52,72,73,93,99,59,83,87,84,85,66,613,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,6,6,60,1,5,49,3,-175,-175,-175,-175,-175,-175,11,55,1,23,1,1,7,14,2,1,23,1,152,104,154,155,153,99,157,156,151,615,150,18,6,49,1,10,1,5,7,1,1,7,14,2,1,15,1,3,4,1,-173,152,104,-173,-173,-173,154,155,153,99,157,156,151,616,-173,-173,149,150,28,6,60,1,5,19,30,3,24,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-179,-179,-179,-179,127,-179,-179,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,55,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,3,1,4,2,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,3,125,1,1,617,90,91,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,-377,23,67,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,618,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,125,126,-406,-406,-406,-406,-406,-406,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,24,66,25,31,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,127,619,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,66,56,160,620,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,2,66,56,160,621,2,66,56,160,622,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,3,7,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,26,66,25,5,26,26,1,9,1,1,4,28,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,127,624,623,124,125,126,96,97,625,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,25,66,25,5,26,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,127,627,626,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,25,66,25,5,26,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,127,629,628,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,25,66,25,5,26,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,127,631,630,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,632,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,633,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,24,66,25,31,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,127,634,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,4,93,70,2,2,-303,-303,-303,-303,27,72,19,2,55,1,9,1,1,3,2,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-301,127,-301,124,125,126,96,97,-301,-301,-301,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,4,67,78,11,1,635,636,520,378,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,2,66,56,160,637,3,67,78,12,-252,-252,-252,3,66,6,50,160,639,638,24,66,6,19,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-203,-203,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,-307,45,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,1,2,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-310,-310,-310,160,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,640,-310,-310,-310,-310,125,126,-310,-310,-310,-310,-310,-310,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,106,6,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,7,1,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,2,1,1,8,4,1,1,1,1,1,2,1,-316,384,385,386,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-316,102,103,53,52,72,73,93,99,59,83,87,84,85,66,42,43,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,641,63,70,71,44,45,68,46,47,48,50,51,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,8,6,60,1,5,22,1,8,18,-217,-217,-217,347,348,-217,-217,642,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,1,142,643,6,55,1,10,113,1,2,401,104,400,644,399,402,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,3,54,5,1,645,105,106,3,6,60,29,647,648,646,10,6,49,1,10,1,28,8,18,59,2,-218,401,104,-218,-218,-218,-218,-218,649,402,8,6,60,1,5,22,1,8,18,-217,-217,-217,537,650,-217,-217,-217,2,55,1,651,104,2,55,1,652,104,1,142,-338,3,54,5,1,653,105,106,3,6,60,29,655,656,654,10,6,49,1,10,1,28,8,18,61,5,-218,546,104,-218,-218,-218,-218,-218,409,657,8,6,60,1,5,22,1,8,18,-217,-217,-217,544,658,-217,-217,-217,6,6,60,1,5,23,86,-362,-362,-362,-362,-362,547,3,55,1,126,659,104,660,2,55,1,661,104,31,1,5,59,1,1,5,19,12,18,17,10,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-345,-345,-345,-345,-345,-345,127,-345,-345,-345,-345,125,126,-345,-345,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,662,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,663,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,1,67,664,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,1,138,665,23,91,12,45,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,127,666,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,57,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,-144,112,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,3,5,1,1,1,1,7,3,11,2,1,2,2,1,1,2,1,1,3,5,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,326,245,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,242,102,103,243,53,52,72,73,93,99,59,83,87,247,84,85,425,667,241,244,240,66,42,43,90,91,246,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,5,6,60,1,5,31,-146,-146,-146,-146,-146,111,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,1,1,1,3,5,1,1,1,1,7,3,11,1,1,1,2,2,5,1,3,5,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,326,245,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,-153,-153,102,103,243,53,52,72,73,93,99,59,83,-153,87,247,84,85,419,418,66,42,43,90,91,246,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,110,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,3,5,1,1,1,1,7,3,11,2,1,2,2,1,3,1,1,3,5,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,326,245,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,243,53,52,72,73,93,99,59,83,87,247,84,85,425,668,244,240,66,42,43,90,91,246,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,2,66,1,557,669,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,23,67,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,670,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,2,66,56,160,671,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,125,126,-256,-256,-256,-256,-256,-256,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,125,126,-258,-258,-258,-258,-258,-258,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,27,6,60,1,5,19,4,53,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-116,-116,-116,-116,672,-116,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,673,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,57,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,17,45,8,1,1,1,1,1,1,1,21,8,10,1,1,1,2,1,267,100,101,269,104,270,253,105,106,271,573,674,272,264,265,266,273,23,6,39,8,1,1,1,1,1,1,1,6,1,5,9,8,6,3,1,1,1,1,2,1,-109,267,100,101,269,104,270,253,105,106,-109,-109,-109,271,573,-109,675,268,272,264,265,266,273,5,6,60,1,5,23,-111,-111,-111,-111,-111,6,6,60,1,5,18,5,-114,-114,-114,-114,676,-114,27,6,60,1,5,19,4,53,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-118,-118,-118,-118,127,-118,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,677,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,6,6,60,1,5,18,5,-124,-124,-124,-124,-124,-124,23,91,12,45,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,127,678,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,9,6,60,1,5,10,1,1,11,24,-136,-136,-136,-136,-136,-136,-136,-136,-136,9,6,60,1,5,10,1,1,11,24,-137,-137,-137,-137,-137,-137,-137,-137,-137,2,57,1,679,253,2,57,1,680,253,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,681,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,682,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,9,6,60,1,5,10,1,1,11,24,-134,-134,-134,-134,-134,-134,-134,-134,-134,9,6,60,1,5,10,1,1,11,24,-135,-135,-135,-135,-135,-135,-135,-135,-135,4,59,1,2,2,-60,-60,-60,-60,2,6,61,107,683,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,125,126,-403,-403,-403,-403,-403,-403,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,684,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,-283,685,-283,-283,-283,-283,-283,-283,-283,-283,125,126,-283,-283,-283,686,-283,-283,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,687,-288,-288,-288,-288,-288,-288,-288,-288,125,126,-288,-288,-288,-288,-288,-288,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,688,-292,-292,-292,-292,-292,-292,-292,-292,125,126,-292,-292,-292,-292,-292,-292,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,689,-296,-296,-296,-296,-296,-296,-296,-296,125,126,-296,-296,-296,-296,-296,-296,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,690,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,691,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,125,126,-299,-299,-299,-299,-299,-299,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,24,67,18,6,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-161,-161,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,1,85,692,1,85,693,23,85,6,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-66,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,61,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,23,67,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,694,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,53,1,5,53,1,5,1,1,3,2,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,-193,106,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,1,2,2,5,4,5,2,1,1,3,4,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,326,245,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,247,84,85,695,66,42,43,90,91,246,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,108,7,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,1,2,2,5,4,5,2,1,1,3,2,2,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,326,245,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,325,102,103,53,52,72,73,93,99,59,83,87,247,84,85,324,66,42,43,90,91,246,696,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,44,45,68,46,47,48,50,51,5,6,60,1,5,49,-195,-195,-195,-195,-195,3,6,60,1,603,604,697,1,85,698,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,-79,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,-82,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,9,1,5,59,1,1,5,31,18,17,-169,-169,-169,-169,-169,-169,-169,-169,-169,6,6,60,1,5,49,3,-176,-176,-176,-176,-176,-176,8,6,60,1,5,22,1,8,18,-217,-217,-217,347,699,-217,-217,-217,2,66,56,160,613,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,-405,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,-243,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,3,7,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,3,7,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,700,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,701,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,702,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,703,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,-279,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,704,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,25,66,25,5,26,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,127,706,705,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,25,66,25,5,26,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,127,708,707,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,-282,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,2,66,56,160,709,1,67,710,4,6,61,78,12,711,-253,-253,-253,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,712,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,2,6,61,-315,-315,2,66,56,160,713,3,54,5,1,714,105,106,8,6,60,1,5,22,1,8,18,-217,-217,-217,537,715,-217,-217,-217,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,1,142,716,4,55,1,124,2,401,104,717,402,6,55,1,10,113,1,2,401,104,400,718,399,402,5,6,60,1,5,23,-329,-329,-329,-329,-329,3,6,60,1,647,648,719,5,6,60,1,5,23,-334,-334,-334,-334,-334,5,6,60,1,5,23,-336,-336,-336,-336,-336,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,14,1,5,59,1,1,5,31,18,17,4,6,1,10,1,-340,-340,-340,-340,-340,-340,-340,-340,-340,720,-340,-340,-340,-340,4,55,1,126,5,546,104,409,721,6,55,1,10,116,3,2,546,104,407,409,722,406,5,6,60,1,5,23,-358,-358,-358,-358,-358,3,6,60,1,655,656,723,5,6,60,1,5,23,-363,-363,-363,-363,-363,5,6,60,1,5,23,-364,-364,-364,-364,-364,5,6,60,1,5,23,-366,-366,-366,-366,-366,31,1,5,59,1,1,5,19,12,18,17,10,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-346,-346,-346,-346,-346,-346,127,-346,-346,-346,-346,125,126,-346,-346,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,23,67,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,724,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,9,6,60,1,5,22,1,8,9,9,-217,-217,-217,421,422,-217,-217,725,-217,5,6,60,1,5,31,-147,-147,-147,-147,-147,5,6,60,1,5,31,-148,-148,-148,-148,-148,1,85,726,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,14,39,16,1,23,1,1,7,4,5,5,2,25,37,2,307,152,104,154,155,153,99,727,728,83,156,195,306,194,23,67,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,729,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,5,6,60,1,5,23,-112,-112,-112,-112,-112,8,6,60,1,5,22,1,8,18,-217,-217,-217,439,730,-217,-217,-217,101,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,6,2,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,731,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,568,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,23,67,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,732,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,6,6,60,1,5,18,5,-125,-125,-125,-125,-125,-125,9,6,60,1,5,10,1,1,11,24,-138,-138,-138,-138,-138,-138,-138,-138,-138,9,6,60,1,5,10,1,1,11,24,-139,-139,-139,-139,-139,-139,-139,-139,-139,23,85,6,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,733,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,734,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,1,65,735,23,67,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,736,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,737,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,738,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,739,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,740,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,741,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,-290,742,-290,-290,-290,-290,-290,-290,-290,-290,125,126,-290,-290,-290,-290,-290,-290,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,743,-294,-294,-294,-294,-294,-294,-294,-294,125,126,-294,-294,-294,-294,-294,-294,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,61,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,-94,61,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,-96,1,85,744,5,6,60,1,5,49,-196,-196,-196,-196,-196,8,6,60,1,5,22,1,8,18,-217,-217,-217,477,745,-217,-217,-217,5,6,60,1,5,49,-197,-197,-197,-197,-197,61,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,3,6,60,1,493,494,746,25,66,25,31,26,1,9,1,1,4,28,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,127,747,124,125,126,96,97,748,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,25,66,25,5,26,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,127,750,749,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,24,66,25,31,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,127,751,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,24,66,25,31,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,127,752,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,24,66,25,31,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,127,753,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,754,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,-277,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,755,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,1,67,756,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,-250,3,67,78,12,-254,-254,-254,24,66,6,19,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-204,-204,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,3,6,60,29,647,648,757,3,54,5,1,758,105,106,5,6,60,1,5,23,-330,-330,-330,-330,-330,8,6,60,1,5,22,1,8,18,-217,-217,-217,537,759,-217,-217,-217,5,6,60,1,5,23,-331,-331,-331,-331,-331,3,54,5,1,760,105,106,5,6,60,1,5,23,-359,-359,-359,-359,-359,8,6,60,1,5,22,1,8,18,-217,-217,-217,544,761,-217,-217,-217,5,6,60,1,5,23,-360,-360,-360,-360,-360,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,2,66,1,557,762,52,1,5,53,1,5,1,1,5,10,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,4,93,70,2,2,763,459,461,462,11,55,1,23,1,1,7,4,10,2,25,39,152,104,154,155,153,99,764,157,156,195,194,5,6,60,1,5,23,-117,-117,-117,-117,-117,3,6,60,1,570,571,765,27,6,60,1,5,19,4,53,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-116,-116,-116,-116,127,-116,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,5,6,60,1,5,23,-119,-119,-119,-119,-119,9,6,60,1,5,10,1,1,11,24,-140,-140,-140,-140,-140,-140,-140,-140,-140,23,67,24,57,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,766,127,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,4,59,1,2,2,-61,-61,-61,-61,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,-237,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,-284,125,126,-284,-284,-284,767,-284,-284,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,768,-285,-285,-285,-285,-285,-285,-285,-285,125,126,-285,-285,-285,-285,-285,-285,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,125,126,-289,-289,-289,-289,-289,-289,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,125,126,-293,-293,-293,-293,-293,-293,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,125,126,-297,-297,-297,-297,-297,-297,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,769,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,770,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,61,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,3,22,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,3,6,60,1,603,604,771,6,6,60,1,5,49,3,-177,-177,-177,-177,-177,-177,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,772,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,-268,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,773,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,-276,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,-280,24,66,25,31,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,127,774,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,24,66,25,31,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,127,775,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,1,142,776,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,3,6,60,1,647,648,777,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,3,6,60,1,655,656,778,5,6,60,1,5,31,-149,-149,-149,-149,-149,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,779,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,1,93,780,5,6,60,1,5,23,-113,-113,-113,-113,-113,1,85,781,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,782,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,783,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,125,126,-291,-291,-291,-291,-291,-291,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,125,126,-295,-295,-295,-295,-295,-295,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,5,6,60,1,5,49,-198,-198,-198,-198,-198,24,66,25,31,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,127,784,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,24,66,25,31,26,1,9,1,1,32,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,160,127,785,124,125,126,96,97,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,-278,3,54,5,1,786,105,106,5,6,60,1,5,23,-332,-332,-332,-332,-332,5,6,60,1,5,23,-361,-361,-361,-361,-361,45,1,5,59,1,1,5,13,5,1,2,1,1,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-288,-288,-288,-288,-288,789,-288,-288,-288,-288,787,-288,788,-288,-288,-288,-288,-288,-288,-288,-288,125,126,-288,-288,-288,-288,-288,-288,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,790,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,9,6,60,1,5,10,1,1,11,24,-141,-141,-141,-141,-141,-141,-141,-141,-141,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,125,126,-286,-286,-286,-286,-286,-286,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,44,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,125,126,-287,-287,-287,-287,-287,-287,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,43,1,5,59,1,1,5,13,5,1,2,2,1,7,2,12,4,3,14,7,3,1,10,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,13,1,5,59,1,1,5,31,18,17,10,1,10,1,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,1,95,791,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,792,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,6,6,60,1,28,8,18,-218,-218,-218,-218,-218,-218,45,1,5,59,1,1,5,13,5,1,2,1,1,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-290,-290,-290,-290,-290,789,-290,-290,-290,-290,793,-290,794,-290,-290,-290,-290,-290,-290,-290,-290,125,126,-290,-290,-290,-290,-290,-290,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,57,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,45,1,5,59,1,1,5,13,5,1,2,1,1,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-289,-289,-289,-289,-289,789,-289,-289,-289,-289,795,-289,-289,-289,-289,-289,-289,-289,-289,-289,-289,125,126,-289,-289,-289,-289,-289,-289,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,1,95,796,100,7,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,8,1,8,1,1,1,1,7,3,11,2,3,2,9,5,2,1,1,7,1,1,1,2,1,1,2,1,2,1,3,4,4,1,1,1,1,4,3,2,1,3,1,8,4,1,1,1,1,1,2,1,797,163,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,33,34,35,36,37,38,39,40,41,74,75,76,77,78,79,80,81,100,101,92,104,105,106,102,103,53,52,72,73,93,99,59,83,87,84,85,66,167,168,90,91,86,88,89,82,69,64,65,54,94,55,95,56,60,57,96,97,58,98,49,61,67,62,63,70,71,169,170,171,46,47,48,50,51,1,95,798,57,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,45,1,5,59,1,1,5,13,5,1,2,1,1,1,7,2,12,4,3,14,7,3,1,9,1,1,3,1,1,2,25,1,4,1,1,1,1,1,1,1,1,1,1,1,1,1,-291,-291,-291,-291,-291,789,-291,-291,-291,-291,799,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,125,126,-291,-291,-291,-291,-291,-291,109,108,110,111,112,113,114,115,116,117,118,119,120,121,122,123,57,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,1,95,800,57,1,5,53,1,5,1,1,5,1,1,1,1,1,5,1,1,1,2,3,1,2,2,1,7,2,12,2,2,3,7,7,7,3,1,10,1,3,1,1,2,25,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107],W=[],F=0,U,A,$,Q;while(F<Y.length){U=Y[F++],A={},$=0,Q=[];while(U--)$+=Y[F++],Q.push($);for($ of Q)A[$]=Y[F++];W.push(A)}return W})(),ruleTable:[0,0,3,0,3,1,4,1,4,3,4,2,5,1,5,1,5,1,9,1,9,1,9,1,9,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,8,1,8,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,37,1,45,1,45,1,55,1,57,1,54,1,54,3,61,1,61,2,63,3,63,5,63,2,63,1,47,1,47,3,71,3,71,1,17,3,17,4,17,5,18,3,18,4,18,5,19,3,19,4,19,5,20,3,20,4,20,5,21,3,21,4,21,5,21,2,21,3,21,4,36,1,36,1,36,1,78,1,78,1,78,3,78,3,78,4,78,6,78,4,78,6,78,4,78,5,78,7,78,3,78,3,78,4,78,6,80,10,80,12,80,11,80,13,80,4,98,0,98,1,98,3,98,4,98,6,99,1,99,1,99,3,99,5,99,3,99,5,101,1,101,1,101,1,89,1,89,3,89,4,89,1,100,2,100,2,106,1,106,1,106,1,106,1,106,1,106,2,106,2,106,2,106,2,106,3,106,3,106,4,106,6,79,2,79,3,79,4,111,1,111,3,111,4,111,4,111,6,113,1,113,2,112,1,112,2,110,1,110,2,115,1,115,2,116,1,116,1,39,5,86,3,86,2,86,2,86,1,32,6,32,3,15,5,15,2,34,5,34,2,125,1,125,1,120,0,120,1,120,3,120,4,120,6,128,1,128,3,128,2,128,1,129,1,129,1,129,1,129,1,130,2,40,2,40,2,40,3,40,2,40,2,108,2,108,4,132,1,132,3,132,4,132,4,132,6,114,1,114,1,114,1,114,1,133,1,133,3,42,1,42,1,81,2,43,3,43,4,43,6,44,3,44,3,122,2,122,3,38,3,38,5,94,0,94,1,10,2,10,4,10,1,30,2,30,4,31,1,31,2,31,4,31,3,143,3,143,5,146,3,146,5,22,1,22,3,22,1,22,3,22,3,22,7,22,3,22,3,23,2,23,3,23,4,23,5,151,3,151,3,151,2,26,5,26,7,26,4,26,6,155,1,155,2,156,3,156,4,158,2,158,4,158,2,158,4,24,2,24,2,24,2,24,1,161,2,161,2,161,3,25,5,25,7,25,7,25,9,25,9,25,5,25,7,25,6,25,8,25,5,25,7,25,6,25,8,25,5,25,7,25,3,25,5,25,5,25,7,25,7,25,9,25,9,25,5,25,7,25,6,25,8,25,5,25,7,25,6,25,8,25,5,25,7,25,3,25,5,168,1,168,3,92,1,92,3,27,1,27,2,27,3,27,4,27,2,27,3,27,4,27,5,33,3,28,4,173,1,173,3,173,2,174,1,174,1,174,1,29,2,12,2,12,4,12,4,12,5,12,7,12,6,12,9,179,1,179,3,179,4,179,4,179,6,180,1,180,3,180,1,180,3,177,1,178,3,13,3,13,5,13,2,13,2,13,2,13,2,13,4,13,5,13,6,13,2,13,2,13,2,13,2,13,3,13,5,13,4,13,5,13,7,185,1,185,3,185,4,185,4,185,6,187,1,187,3,187,3,187,1,187,3,35,2,35,2,35,2,16,2,16,2,16,2,16,2,16,2,16,2,16,2,16,4,16,2,16,2,16,2,16,2,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,3,16,5,16,3,16,5,16,4,41,2],ruleActions:(Y,W,F,U)=>{let A=W,$=W.length-1;switch(Y){case 1:return["program"];case 2:return["program",...A[$]];case 3:case 58:case 110:case 150:case 154:case 174:case 194:case 203:case 251:case 302:case 314:case 328:case 357:return[A[$]];case 4:case 111:case 175:case 195:case 204:case 315:case 329:case 358:return[...A[$-2],A[$]];case 5:case 60:case 157:case 316:return A[$-1];case 6:case 7:case 8:case 9:case 10:case 11:case 12:case 13:case 14:case 15:case 16:case 17:case 18:case 19:case 20:case 21:case 22:case 23:case 24:case 25:case 26:case 27:case 28:case 29:case 30:case 31:case 32:case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:case 44:case 45:case 46:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 63:case 64:case 86:case 87:case 88:case 89:case 90:case 115:case 120:case 121:case 122:case 123:case 126:case 129:case 130:case 131:case 132:case 133:case 145:case 171:case 172:case 178:case 182:case 183:case 184:case 185:case 199:case 200:case 201:case 217:case 218:case 232:case 234:case 262:case 300:case 317:case 318:case 319:case 333:case 335:case 337:case 362:case 365:return A[$];case 47:return"undefined";case 48:return"null";case 57:return["str",...A[$-1]];case 59:case 151:case 155:case 252:return[...A[$-1],A[$]];case 61:case 193:case 197:case 331:case 360:return A[$-2];case 62:return"";case 65:return["regex",A[$-1]];case 66:return["regex-index",A[$-2],A[$]];case 67:return["regex-index",A[$],null];case 68:return["=",A[$-2],A[$]];case 69:return["=",A[$-3],A[$]];case 70:return["=",A[$-4],A[$-1]];case 71:return["state",A[$-2],A[$]];case 72:return["state",A[$-3],A[$]];case 73:return["state",A[$-4],A[$-1]];case 74:return["computed",A[$-2],A[$]];case 75:return["computed",A[$-3],A[$]];case 76:return["computed",A[$-4],A[$-1]];case 77:return["readonly",A[$-2],A[$]];case 78:return["readonly",A[$-3],A[$]];case 79:return["readonly",A[$-4],A[$-1]];case 80:return["effect",A[$-2],A[$]];case 81:return["effect",A[$-3],A[$]];case 82:return["effect",A[$-4],A[$-1]];case 83:case 84:return["effect",null,A[$]];case 85:return["effect",null,A[$-1]];case 91:case 100:case 138:return[".",A[$-2],A[$]];case 92:case 101:case 139:return["?.",A[$-2],A[$]];case 93:case 95:case 102:case 140:return["[]",A[$-3],A[$-1]];case 94:case 96:case 103:case 141:return["[]",A[$-5],A[$-2]];case 97:return[A[$-1][0],A[$-3],...A[$-1].slice(1)];case 98:return["optindex",A[$-4],A[$-1]];case 99:return["optindex",A[$-6],A[$-2]];case 104:return["object-comprehension",A[$-8],A[$-6],[["for-of",A[$-4],A[$-2],!1]],[]];case 105:return["object-comprehension",A[$-10],A[$-8],[["for-of",A[$-6],A[$-4],!1]],[A[$-2]]];case 106:return["object-comprehension",A[$-9],A[$-7],[["for-of",A[$-4],A[$-2],!0]],[]];case 107:return["object-comprehension",A[$-11],A[$-9],[["for-of",A[$-6],A[$-4],!0]],[A[$-2]]];case 108:return["object",...A[$-2]];case 109:case 152:case 173:case 192:return[];case 112:case 176:case 196:case 330:case 359:return[...A[$-3],A[$]];case 113:case 177:case 198:case 332:case 361:return[...A[$-5],...A[$-2]];case 114:return[A[$],A[$],null];case 116:return[A[$-2],A[$],":"];case 117:return[A[$-4],A[$-1],":"];case 118:return[A[$-2],A[$],"="];case 119:return[A[$-4],A[$-1],"="];case 124:return["dynamicKey",A[$-1]];case 125:return["[]","this",A[$-1]];case 127:case 128:case 186:return["...",A[$]];case 134:case 190:return["super",...A[$]];case 135:case 136:case 137:case 188:case 191:return[A[$-1],...A[$]];case 142:return["array"];case 143:return["array",...A[$-1]];case 144:return["array",...A[$-2],...A[$-1]];case 146:return[...A[$-2],...A[$]];case 147:return[...A[$-3],...A[$]];case 148:return[...A[$-2],...A[$-1]];case 149:return[...A[$-5],...A[$-4],...A[$-2],...A[$-1]];case 153:return[...A[$]];case 156:return null;case 158:return"..";case 159:case 202:return"...";case 160:return[A[$-2],A[$-3],A[$-1]];case 161:case 384:case 386:case 387:case 402:case 404:return[A[$-1],A[$-2],A[$]];case 162:return[A[$],A[$-1],null];case 163:return[A[$-1],null,A[$]];case 164:return[A[$],null,null];case 165:return["def",A[$-4],A[$-2],A[$]];case 166:return["def",A[$-1],[],A[$]];case 167:case 169:return[A[$-1],A[$-3],A[$]];case 168:case 170:return[A[$-1],[],A[$]];case 179:case 301:return["default",A[$-2],A[$]];case 180:return["rest",A[$]];case 181:return["expansion"];case 187:return["tagged-template",A[$-1],A[$]];case 189:return["optcall",A[$-2],...A[$]];case 205:case 206:return"this";case 207:return[".","this",A[$]];case 208:return[".","super",A[$]];case 209:return["[]","super",A[$-1]];case 210:return["[]","super",A[$-2]];case 211:return[".","new",A[$]];case 212:return[".","import",A[$]];case 213:return["block"];case 214:return["block",...A[$-1]];case 215:return A[$-1].length===1?A[$-1][0]:["block",...A[$-1]];case 216:return A[$-2].length===1?A[$-2][0]:["block",...A[$-2]];case 219:return["return",A[$]];case 220:return["return",A[$-1]];case 221:return["return"];case 222:return["throw",A[$]];case 223:return["throw",A[$-1]];case 224:return["yield"];case 225:return["yield",A[$]];case 226:return["yield",A[$-1]];case 227:return["yield-from",A[$]];case 228:return["if",A[$-1],A[$]];case 229:return A[$-4].length===3?["if",A[$-4][1],A[$-4][2],["if",A[$-1],A[$]]]:[...A[$-4],["if",A[$-1],A[$]]];case 230:return["unless",A[$-1],A[$]];case 231:return["if",["!",A[$-3]],A[$-2],A[$]];case 233:return A[$-2].length===3?["if",A[$-2][1],A[$-2][2],A[$]]:[...A[$-2],A[$]];case 235:case 236:return["if",A[$],[A[$-2]]];case 237:return["?:",A[$-4],A[$-6],A[$-1]];case 238:case 239:return["unless",A[$],[A[$-2]]];case 240:return["try",A[$]];case 241:return["try",A[$-1],A[$]];case 242:return["try",A[$-2],A[$]];case 243:return["try",A[$-3],A[$-2],A[$]];case 244:case 245:case 367:case 370:case 372:return[A[$-1],A[$]];case 246:return[null,A[$]];case 247:return["switch",A[$-3],A[$-1],null];case 248:return["switch",A[$-5],A[$-3],A[$-1]];case 249:return["switch",null,A[$-1],null];case 250:return["switch",null,A[$-3],A[$-1]];case 253:return["when",A[$-1],A[$]];case 254:return["when",A[$-2],A[$-1]];case 255:return["while",A[$]];case 256:return["while",A[$-2],A[$]];case 257:return["until",A[$]];case 258:return["until",A[$-2],A[$]];case 259:return A[$-1].length===2?[A[$-1][0],A[$-1][1],A[$]]:[A[$-1][0],A[$-1][1],A[$-1][2],A[$]];case 260:case 261:return A[$].length===2?[A[$][0],A[$][1],[A[$-1]]]:[A[$][0],A[$][1],A[$][2],[A[$-1]]];case 263:return["loop",A[$]];case 264:return["loop",[A[$]]];case 265:return["loop-n",A[$-1],A[$]];case 266:return["for-in",A[$-3],A[$-1],null,null,A[$]];case 267:return["for-in",A[$-5],A[$-3],null,A[$-1],A[$]];case 268:return["for-in",A[$-5],A[$-3],A[$-1],null,A[$]];case 269:return["for-in",A[$-7],A[$-5],A[$-1],A[$-3],A[$]];case 270:return["for-in",A[$-7],A[$-5],A[$-3],A[$-1],A[$]];case 271:return["for-of",A[$-3],A[$-1],!1,null,A[$]];case 272:return["for-of",A[$-5],A[$-3],!1,A[$-1],A[$]];case 273:return["for-of",A[$-3],A[$-1],!0,null,A[$]];case 274:return["for-of",A[$-5],A[$-3],!0,A[$-1],A[$]];case 275:return["for-as",A[$-3],A[$-1],!1,null,A[$]];case 276:return["for-as",A[$-5],A[$-3],!1,A[$-1],A[$]];case 277:case 279:return["for-as",A[$-3],A[$-1],!0,null,A[$]];case 278:case 280:return["for-as",A[$-5],A[$-3],!0,A[$-1],A[$]];case 281:return["for-in",[],A[$-1],null,null,A[$]];case 282:return["for-in",[],A[$-3],A[$-1],null,A[$]];case 283:return["comprehension",A[$-4],[["for-in",A[$-2],A[$],null]],[]];case 284:return["comprehension",A[$-6],[["for-in",A[$-4],A[$-2],null]],[A[$]]];case 285:return["comprehension",A[$-6],[["for-in",A[$-4],A[$-2],A[$]]],[]];case 286:return["comprehension",A[$-8],[["for-in",A[$-6],A[$-4],A[$]]],[A[$-2]]];case 287:return["comprehension",A[$-8],[["for-in",A[$-6],A[$-4],A[$-2]]],[A[$]]];case 288:return["comprehension",A[$-4],[["for-of",A[$-2],A[$],!1]],[]];case 289:return["comprehension",A[$-6],[["for-of",A[$-4],A[$-2],!1]],[A[$]]];case 290:return["comprehension",A[$-5],[["for-of",A[$-2],A[$],!0]],[]];case 291:return["comprehension",A[$-7],[["for-of",A[$-4],A[$-2],!0]],[A[$]]];case 292:return["comprehension",A[$-4],[["for-as",A[$-2],A[$],!1,null]],[]];case 293:return["comprehension",A[$-6],[["for-as",A[$-4],A[$-2],!1,null]],[A[$]]];case 294:return["comprehension",A[$-5],[["for-as",A[$-2],A[$],!0,null]],[]];case 295:return["comprehension",A[$-7],[["for-as",A[$-4],A[$-2],!0,null]],[A[$]]];case 296:return["comprehension",A[$-4],[["for-as",A[$-2],A[$],!0,null]],[]];case 297:return["comprehension",A[$-6],[["for-as",A[$-4],A[$-2],!0,null]],[A[$]]];case 298:return["comprehension",A[$-2],[["for-in",[],A[$],null]],[]];case 299:return["comprehension",A[$-4],[["for-in",[],A[$-2],A[$]]],[]];case 303:case 334:case 336:case 363:case 364:case 366:return[A[$-2],A[$]];case 304:return["class",null,null];case 305:return["class",null,null,A[$]];case 306:return["class",null,A[$]];case 307:return["class",null,A[$-1],A[$]];case 308:return["class",A[$],null];case 309:return["class",A[$-1],null,A[$]];case 310:return["class",A[$-2],A[$]];case 311:return["class",A[$-3],A[$-1],A[$]];case 312:return["enum",A[$-1],A[$]];case 313:return["component",null,["block",...A[$-1]]];case 320:return["render",A[$]];case 321:case 324:return["import","{}",A[$]];case 322:case 323:return["import",A[$-2],A[$]];case 325:return["import",A[$-4],A[$]];case 326:return["import",[A[$-4],A[$-2]],A[$]];case 327:return["import",[A[$-7],A[$-4]],A[$]];case 338:return["*",A[$]];case 339:return["export","{}"];case 340:return["export",A[$-2]];case 341:case 342:case 343:case 344:case 348:case 349:case 350:case 351:return["export",A[$]];case 345:return["export",["=",A[$-2],A[$]]];case 346:return["export",["=",A[$-3],A[$]]];case 347:return["export",["=",A[$-4],A[$-1]]];case 352:return["export-default",A[$]];case 353:return["export-default",A[$-1]];case 354:return["export-all",A[$]];case 355:return["export-from","{}",A[$]];case 356:return["export-from",A[$-4],A[$]];case 368:case 369:case 371:case 407:return["do-iife",A[$]];case 373:return["-",A[$]];case 374:return["+",A[$]];case 375:return["?",A[$-1]];case 376:return["await",A[$]];case 377:return["await",A[$-1]];case 378:return["--",A[$],!1];case 379:return["++",A[$],!1];case 380:return["--",A[$-1],!0];case 381:return["++",A[$-1],!0];case 382:return["+",A[$-2],A[$]];case 383:return["-",A[$-2],A[$]];case 385:return["**",A[$-2],A[$]];case 388:return["&",A[$-2],A[$]];case 389:return["^",A[$-2],A[$]];case 390:return["|",A[$-2],A[$]];case 391:case 392:case 393:case 394:case 395:case 396:return["control",A[$-1],A[$-2],A[$]];case 397:return["&&",A[$-2],A[$]];case 398:return["||",A[$-2],A[$]];case 399:return["??",A[$-2],A[$]];case 400:return["!?",A[$-2],A[$]];case 401:return["|>",A[$-2],A[$]];case 403:return["?:",A[$-4],A[$-2],A[$]];case 405:return[A[$-3],A[$-4],A[$-1]];case 406:return[A[$-2],A[$-3],A[$]]}},parseError(Y,W){let F,U,A,$,Q,J,Z;if(W.recoverable)return this.trace(Y);else throw A=(W.line||0)+1,F=W.loc?.c||0,Z=W.token?` (token: ${W.token})`:"",J=W.text?` near '${W.text}'`:"",$=`line ${A}, column ${F}`,Q=`Parse error at ${$}${Z}${J}: ${Y}`,U=Error(Q),U.hash=W,U},parse(Y){let W,F,U,A,$,Q,J,Z,K,X,z,R,D,G,M,q,H,I,B,P,_,w,O,N,E,T;[P,T,X]=[[0],[null],[]],[D,E,O,w,q]=[this.parseTable,"",0,0,0],[F,W]=[2,1],Z=Object.create(this.lexer),I={ctx:{}};for(let L in this.ctx)if(Object.hasOwn(this.ctx,L)){let f=this.ctx[L];I.ctx[L]=f}if(Z.setInput(Y,I.ctx),[I.ctx.lexer,I.ctx.parser]=[Z,this],Z.loc==null)Z.loc={};N=Z.loc,X.push(N),this.parseError=typeof I.ctx.parseError==="function"?I.ctx.parseError:Object.getPrototypeOf(this).parseError,J=()=>{let L;if(L=Z.lex()||W,typeof L!=="number")L=this.symbolIds[L]||L;return L},_=G=B=U=M=R=Q=z=$=null,H={};while(!0){if(B=P[P.length-1],_==null)_=J();if(U=D[B]?.[_],U==null){if(A="",!q)$=(()=>{let L=[];for(let f in D[B]){if(!Object.hasOwn(D[B],f))continue;if(this.tokenNames[f]&&f>F)L.push(`'${this.tokenNames[f]}'`)}return L})();throw A=(()=>{if(Z.showPosition)return`Parse error on line ${O+1}:
12
12
  ${Z.showPosition()}
13
- Expecting ${$.join(", ")}, got '${this.tokenNames[_]||_}'`;else return`Parse error on line ${O+1}: Unexpected ${_===W?"end of input":`'${this.tokenNames[_]||_}'`}`,this.parseError(A,{text:Z.match,token:this.tokenNames[_]||_,line:Z.line,loc:N,expected:$})})(),Error(A)}if(U>0)if(B.push(_,U),T.push(Z.text),X.push(Z.loc),_=null,!z){if([w,E,O,N]=[Z.len,Z.text,Z.line,Z.loc],H>0)H--}else[_,z]=[z,null];else if(U<0){if(Q=this.ruleTable[-U*2+1],G.$=T[T.length-Q],K=X[X.length-(Q||1)],G._$={r:K.r,c:K.c},q=this.ruleActions.call(G,-U,T,X,I.ctx),q!=null)G.$=q;if(Array.isArray(G.$))G.$.loc=G._$;if(Q)B.length-=Q*2,T.length-=Q,X.length-=Q;B.push(this.ruleTable[-U*2]),T.push(G.$),X.push(G._$),M=D[B[B.length-2]][B[B.length-1]],B.push(M)}else if(U===0)return T[T.length-1]}},trace(){},ctx:{}},G2=(Y={})=>{let W=Object.create(R2);return Object.defineProperty(W,"ctx",{value:{...Y},enumerable:!1,writable:!0,configurable:!0}),W},x=G2();var L2=x.parse.bind(x);var I1="__bind_",E1="__",N1=new Set(["beforeMount","mounted","updated","beforeUnmount","unmounted"]);function q2(Y){for(let W of Y){if(!Array.isArray(W))continue;let F=W[0]instanceof String?W[0].valueOf():W[0],U=W[1]instanceof String?W[1].valueOf():W[1];if(F==="type"&&typeof U==="string")return U.replace(/^["']|["']$/g,"")}return null}function o(Y){if(typeof Y==="string")return Y;if(Array.isArray(Y)&&Y[0]==="."&&Y[1]==="this"&&typeof Y[2]==="string")return Y[2];return null}function T1(Y){let W=Y.prototype;W.localizeVar=function(F){let U=F.replace(/this\.(_el\d+|_t\d+|_anchor\d+|_frag\d+|_slot\d+|_c\d+|_inst\d+|_empty\d+)/g,"$1");return U=U.replace(/\bthis\./g,"ctx."),U},W.isHtmlTag=function(F){let U=F.split("#")[0];return n.has(U.toLowerCase())},W.isComponent=function(F){if(!F||typeof F!=="string")return!1;return/^[A-Z]/.test(F)},W.collectTemplateClasses=function(F){let U=[],A=F;while(this.is(A,".")){let Q=A[2];if(typeof Q==="string"||Q instanceof String)U.unshift(Q.valueOf());A=A[1]}return{tag:typeof A==="string"?A:A instanceof String?A.valueOf():"div",classes:U}},W.transformComponentMembers=function(F){if(!Array.isArray(F)){if(typeof F==="string"&&this.reactiveMembers&&this.reactiveMembers.has(F))return[".",[".","this",F],"value"];return F}if(F[0]==="."&&F[1]==="this"&&typeof F[2]==="string"){let U=F[2];if(this.reactiveMembers&&this.reactiveMembers.has(U))return[".",F,"value"];return F}if(F[0]==="->")return["=>",...F.slice(1).map((U)=>this.transformComponentMembers(U))];return F.map((U)=>this.transformComponentMembers(U))},W.generateComponent=function(F,U,A,$){let[,Q]=U;this.usesTemplates=!0,this.usesReactivity=!0;let J=this.is(Q,"block")?Q.slice(1):[],Z=[],K=[],X=[],M=[],R=[],D=[],z=null,q=new Set,H=new Set;for(let _ of J){if(!Array.isArray(_))continue;let[w]=_;if(w==="state"){let O=o(_[1]);if(O)Z.push({name:O,value:_[2]}),q.add(O),H.add(O)}else if(w==="computed"){let O=o(_[1]);if(O)K.push({name:O,expr:_[2]}),q.add(O),H.add(O)}else if(w==="readonly"){let O=o(_[1]);if(O)X.push({name:O,value:_[2]}),q.add(O)}else if(w==="="){let O=o(_[1]);if(O)if(N1.has(O))R.push({name:O,value:_[2]});else{let N=_[2];if(Array.isArray(N)&&(N[0]==="->"||N[0]==="=>"))M.push({name:O,func:N}),q.add(O);else Z.push({name:O,value:N}),q.add(O),H.add(O)}}else if(w==="effect")D.push(_);else if(w==="render")z=_;else if(w==="object")for(let O=1;O<_.length;O++){let N=_[O];if(!Array.isArray(N))continue;let[E,T]=N;if(typeof E==="string"&&N1.has(E))R.push({name:E,value:T});else if(typeof E==="string")M.push({name:E,func:T}),q.add(E)}}let G=this.componentMembers,I=this.reactiveMembers;this.componentMembers=q,this.reactiveMembers=H;let P=[],B="";P.push("class {"),P.push(" constructor(props = {}) {"),P.push(" const __prevComponent = __pushComponent(this);"),P.push("");for(let{name:_,value:w}of X){let O=this.generateInComponent(w,"value");P.push(` this.${_} = props.${_} ?? ${O};`)}for(let{name:_,value:w}of Z){let O=this.generateInComponent(w,"value");P.push(` this.${_} = isSignal(props.${_}) ? props.${_} : __state(props.${_} ?? ${O});`)}for(let{name:_,expr:w}of K){let O=this.generateInComponent(w,"value");P.push(` this.${_} = __computed(() => ${O});`)}for(let _ of D){let w=_[1],O=this.generateInComponent(w,"value");P.push(` __effect(${O});`)}P.push(""),P.push(" __popComponent(__prevComponent);"),P.push(" }");for(let{name:_,func:w}of M)if(Array.isArray(w)&&(w[0]==="->"||w[0]==="=>")){let[,O,N]=w,E=Array.isArray(O)?O.map((L)=>this.formatParam(L)).join(", "):"",T=this.generateInComponent(N,"value");P.push(` ${_}(${E}) { return ${T}; }`)}for(let{name:_,value:w}of R)if(Array.isArray(w)&&(w[0]==="->"||w[0]==="=>")){let[,,O]=w,N=this.generateInComponent(O,"value");P.push(` ${_}() { return ${N}; }`)}if(z){let _=z[1],w=this.buildRender(_);if(w.blockFactories.length>0)B=w.blockFactories.join(`
13
+ Expecting ${$.join(", ")}, got '${this.tokenNames[_]||_}'`;else return`Parse error on line ${O+1}: Unexpected ${_===W?"end of input":`'${this.tokenNames[_]||_}'`}`,this.parseError(A,{text:Z.match,token:this.tokenNames[_]||_,line:Z.line,loc:N,expected:$})})(),Error(A)}if(U>0)if(P.push(_,U),T.push(Z.text),X.push(Z.loc),_=null,!G){if([w,E,O,N]=[Z.len,Z.text,Z.line,Z.loc],q>0)q--}else[_,G]=[G,null];else if(U<0){if(Q=this.ruleTable[-U*2+1],H.$=T[T.length-Q],K=X[X.length-(Q||1)],H._$={r:K.r,c:K.c},M=this.ruleActions.call(H,-U,T,X,I.ctx),M!=null)H.$=M;if(Array.isArray(H.$))H.$.loc=H._$;if(Q)P.length-=Q*2,T.length-=Q,X.length-=Q;P.push(this.ruleTable[-U*2]),T.push(H.$),X.push(H._$),z=D[P[P.length-2]][P[P.length-1]],P.push(z)}else if(U===0)return T[T.length-1]}},trace(){},ctx:{}},q2=(Y={})=>{let W=Object.create(G2);return Object.defineProperty(W,"ctx",{value:{...Y},enumerable:!1,writable:!0,configurable:!0}),W},k=q2();var f2=k.parse.bind(k);var E1="__bind_",N1="__",T1=new Set(["beforeMount","mounted","updated","beforeUnmount","unmounted"]);function H2(Y){for(let W of Y){if(!Array.isArray(W))continue;let F=W[0]instanceof String?W[0].valueOf():W[0],U=W[1]instanceof String?W[1].valueOf():W[1];if(F==="type"&&typeof U==="string")return U.replace(/^["']|["']$/g,"")}return null}function o(Y){if(typeof Y==="string")return Y;if(Array.isArray(Y)&&Y[0]==="."&&Y[1]==="this"&&typeof Y[2]==="string")return Y[2];return null}function S1(Y){let W=Y.prototype;W.localizeVar=function(F){let U=F.replace(/this\.(_el\d+|_t\d+|_anchor\d+|_frag\d+|_slot\d+|_c\d+|_inst\d+|_empty\d+)/g,"$1");return U=U.replace(/\bthis\./g,"ctx."),U},W.isHtmlTag=function(F){let U=F.split("#")[0];return n.has(U.toLowerCase())},W.isComponent=function(F){if(!F||typeof F!=="string")return!1;return/^[A-Z]/.test(F)},W.collectTemplateClasses=function(F){let U=[],A=F;while(this.is(A,".")){let Q=A[2];if(typeof Q==="string"||Q instanceof String)U.unshift(Q.valueOf());A=A[1]}return{tag:typeof A==="string"?A:A instanceof String?A.valueOf():"div",classes:U}},W.transformComponentMembers=function(F){if(!Array.isArray(F)){if(typeof F==="string"&&this.reactiveMembers&&this.reactiveMembers.has(F))return[".",[".","this",F],"value"];if(typeof F==="string"&&this.componentMembers&&this.componentMembers.has(F))return[".","this",F];return F}if(F[0]==="."&&F[1]==="this"&&typeof F[2]==="string"){let U=F[2];if(this.reactiveMembers&&this.reactiveMembers.has(U))return[".",F,"value"];return F}if(F[0]==="->")return["=>",...F.slice(1).map((U)=>this.transformComponentMembers(U))];return F.map((U)=>this.transformComponentMembers(U))},W.generateComponent=function(F,U,A,$){let[,Q]=U;this.usesTemplates=!0,this.usesReactivity=!0;let J=this.is(Q,"block")?Q.slice(1):[],Z=[],K=[],X=[],z=[],R=[],D=[],G=null,M=new Set,q=new Set;for(let _ of J){if(!Array.isArray(_))continue;let[w]=_;if(w==="state"){let O=o(_[1]);if(O)Z.push({name:O,value:_[2]}),M.add(O),q.add(O)}else if(w==="computed"){let O=o(_[1]);if(O)K.push({name:O,expr:_[2]}),M.add(O),q.add(O)}else if(w==="readonly"){let O=o(_[1]);if(O)X.push({name:O,value:_[2]}),M.add(O)}else if(w==="="){let O=o(_[1]);if(O)if(T1.has(O))R.push({name:O,value:_[2]});else{let N=_[2];if(Array.isArray(N)&&(N[0]==="->"||N[0]==="=>"))z.push({name:O,func:N}),M.add(O);else Z.push({name:O,value:N}),M.add(O),q.add(O)}}else if(w==="effect")D.push(_);else if(w==="render")G=_;else if(w==="object")for(let O=1;O<_.length;O++){let N=_[O];if(!Array.isArray(N))continue;let[E,T]=N;if(typeof E==="string"&&T1.has(E))R.push({name:E,value:T});else if(typeof E==="string")z.push({name:E,func:T}),M.add(E)}}let H=this.componentMembers,I=this.reactiveMembers;this.componentMembers=M,this.reactiveMembers=q;let B=[],P="";B.push("class extends __Component {"),B.push(" _init(props) {");for(let{name:_,value:w}of X){let O=this.generateInComponent(w,"value");B.push(` this.${_} = props.${_} ?? ${O};`)}for(let{name:_,value:w}of Z){let O=this.generateInComponent(w,"value");B.push(` this.${_} = __state(props.${_} ?? ${O});`)}for(let{name:_,expr:w}of K){let O=this.generateInComponent(w,"value");B.push(` this.${_} = __computed(() => ${O});`)}for(let _ of D){let w=_[1],O=this.generateInComponent(w,"value");B.push(` __effect(${O});`)}B.push(" }");for(let{name:_,func:w}of z)if(Array.isArray(w)&&(w[0]==="->"||w[0]==="=>")){let[,O,N]=w,E=Array.isArray(O)?O.map((L)=>this.formatParam(L)).join(", "):"",T=this.generateInComponent(N,"value");B.push(` ${_}(${E}) { return ${T}; }`)}for(let{name:_,value:w}of R)if(Array.isArray(w)&&(w[0]==="->"||w[0]==="=>")){let[,,O]=w,N=this.generateInComponent(O,"value");B.push(` ${_}() { return ${N}; }`)}if(G){let _=G[1],w=this.buildRender(_);if(w.blockFactories.length>0)P=w.blockFactories.join(`
14
14
 
15
15
  `)+`
16
16
 
17
- `;P.push(" _create() {");for(let O of w.createLines)P.push(` ${O}`);if(P.push(` return ${w.rootVar};`),P.push(" }"),w.setupLines.length>0){P.push(" _setup() {");for(let O of w.setupLines)P.push(` ${O}`);P.push(" }")}}if(P.push(" mount(target) {"),P.push(' if (typeof target === "string") target = document.querySelector(target);'),P.push(" this._target = target;"),P.push(" this._root = this._create();"),P.push(" target.appendChild(this._root);"),P.push(" if (this._setup) this._setup();"),P.push(" if (this.mounted) this.mounted();"),P.push(" return this;"),P.push(" }"),P.push(" unmount() {"),P.push(" if (this.unmounted) this.unmounted();"),P.push(" if (this._root && this._root.parentNode) {"),P.push(" this._root.parentNode.removeChild(this._root);"),P.push(" }"),P.push(" }"),P.push("}"),this.componentMembers=G,this.reactiveMembers=I,B)return`(() => {
18
- ${B}return ${P.join(`
17
+ `;B.push(" _create() {");for(let O of w.createLines)B.push(` ${O}`);if(B.push(` return ${w.rootVar};`),B.push(" }"),w.setupLines.length>0){B.push(" _setup() {");for(let O of w.setupLines)B.push(` ${O}`);B.push(" }")}}if(B.push("}"),this.componentMembers=H,this.reactiveMembers=I,P)return`(() => {
18
+ ${P}return ${B.join(`
19
19
  `)};
20
- })()`;return P.join(`
21
- `)},W.generateInComponent=function(F,U){if(typeof F==="string"&&this.reactiveMembers&&this.reactiveMembers.has(F))return`this.${F}.value`;if(Array.isArray(F)&&this.reactiveMembers){let A=this.transformComponentMembers(F);return this.generate(A,U)}return this.generate(F,U)},W.generateRender=function(F,U,A,$){throw Error("render blocks can only be used inside a component")},W.buildRender=function(F){this._elementCount=0,this._textCount=0,this._blockCount=0,this._createLines=[],this._setupLines=[],this._blockFactories=[];let U=this.is(F,"block")?F.slice(1):[F],A;if(U.length===0)A="null";else if(U.length===1)A=this.generateNode(U[0]);else{A=this.newElementVar("frag"),this._createLines.push(`${A} = document.createDocumentFragment();`);for(let $ of U){let Q=this.generateNode($);this._createLines.push(`${A}.appendChild(${Q});`)}}return{createLines:this._createLines,setupLines:this._setupLines,blockFactories:this._blockFactories,rootVar:A}},W.newBlockVar=function(){return`create_block_${this._blockCount++}`},W.newElementVar=function(F="el"){return`this._${F}${this._elementCount++}`},W.newTextVar=function(){return`this._t${this._textCount++}`},W.generateNode=function(F){if(typeof F==="string"||F instanceof String){let Z=F.valueOf();if(Z.startsWith('"')||Z.startsWith("'")||Z.startsWith("`")){let X=this.newTextVar();return this._createLines.push(`${X} = document.createTextNode(${Z});`),X}if(this.reactiveMembers&&this.reactiveMembers.has(Z)){let X=this.newTextVar();return this._createLines.push(`${X} = document.createTextNode('');`),this._setupLines.push(`__effect(() => { ${X}.data = this.${Z}.value; });`),X}let K=this.newElementVar();return this._createLines.push(`${K} = document.createElement('${Z}');`),K}if(!Array.isArray(F)){let Z=this.newElementVar("c");return this._createLines.push(`${Z} = document.createComment('unknown');`),Z}let[U,...A]=F,$=typeof U==="string"?U:U instanceof String?U.valueOf():null;if($&&this.isComponent($))return this.generateChildComponent($,A);if($&&this.isHtmlTag($))return this.generateTag($,[],A);if($==="."){let[,Z,K]=F;if(Z==="this"&&typeof K==="string"){if(this.reactiveMembers&&this.reactiveMembers.has(K)){let z=this.newTextVar();return this._createLines.push(`${z} = document.createTextNode('');`),this._setupLines.push(`__effect(() => { ${z}.data = this.${K}.value; });`),z}if(this.componentMembers&&this.componentMembers.has(K)){let z=this.newElementVar("slot");return this._createLines.push(`${z} = this.${K} instanceof Node ? this.${K} : (this.${K} != null ? document.createTextNode(String(this.${K})) : document.createComment(''));`),z}}let{tag:X,classes:M}=this.collectTemplateClasses(F);if(X&&this.isHtmlTag(X))return this.generateTag(X,M,[]);let R=this.newTextVar(),D=this.generateInComponent(F,"value");return this._createLines.push(`${R} = document.createTextNode(String(${D}));`),R}if(Array.isArray(U)){if(Array.isArray(U[0])&&U[0][0]==="."&&(U[0][2]==="__cx__"||U[0][2]instanceof String&&U[0][2].valueOf()==="__cx__")){let X=typeof U[0][1]==="string"?U[0][1]:U[0][1].valueOf(),M=U.slice(1);return this.generateDynamicTag(X,M,A)}let{tag:Z,classes:K}=this.collectTemplateClasses(U);if(Z&&this.isHtmlTag(Z)){if(K.length===1&&K[0]==="__cx__")return this.generateDynamicTag(Z,A,[]);return this.generateTag(Z,K,A)}}if($==="->"||$==="=>")return this.generateTemplateBlock(A[1]);if($==="if")return this.generateConditional(F);if($==="for"||$==="for-in"||$==="for-of"||$==="for-as")return this.generateTemplateLoop(F);let Q=this.newTextVar(),J=this.generateInComponent(F,"value");if(this.hasReactiveDeps(F))this._createLines.push(`${Q} = document.createTextNode('');`),this._setupLines.push(`__effect(() => { ${Q}.data = ${J}; });`);else this._createLines.push(`${Q} = document.createTextNode(String(${J}));`);return Q},W.generateTag=function(F,U,A){let $=this.newElementVar();if(this._createLines.push(`${$} = document.createElement('${F}');`),U.length>0)this._createLines.push(`${$}.className = '${U.join(" ")}';`);for(let Q of A)if(Array.isArray(Q)&&(Q[0]==="->"||Q[0]==="=>")){let J=Q[2];if(this.is(J,"block"))for(let Z of J.slice(1)){let K=this.generateNode(Z);this._createLines.push(`${$}.appendChild(${K});`)}else if(J){let Z=this.generateNode(J);this._createLines.push(`${$}.appendChild(${Z});`)}}else if(this.is(Q,"object"))this.generateAttributes($,Q);else if(typeof Q==="string"){let J=this.newTextVar();if(Q.startsWith('"')||Q.startsWith("'")||Q.startsWith("`"))this._createLines.push(`${J} = document.createTextNode(${Q});`);else if(this.reactiveMembers&&this.reactiveMembers.has(Q))this._createLines.push(`${J} = document.createTextNode('');`),this._setupLines.push(`__effect(() => { ${J}.data = this.${Q}.value; });`);else if(this.componentMembers&&this.componentMembers.has(Q))this._createLines.push(`${J} = document.createTextNode(String(this.${Q}));`);else this._createLines.push(`${J} = document.createTextNode(String(${Q}));`);this._createLines.push(`${$}.appendChild(${J});`)}else if(Q instanceof String){let J=Q.valueOf(),Z=this.newTextVar();if(J.startsWith('"')||J.startsWith("'")||J.startsWith("`"))this._createLines.push(`${Z} = document.createTextNode(${J});`);else if(this.reactiveMembers&&this.reactiveMembers.has(J))this._createLines.push(`${Z} = document.createTextNode('');`),this._setupLines.push(`__effect(() => { ${Z}.data = this.${J}.value; });`);else this._createLines.push(`${Z} = document.createTextNode(String(${J}));`);this._createLines.push(`${$}.appendChild(${Z});`)}else if(Q){let J=this.generateNode(Q);this._createLines.push(`${$}.appendChild(${J});`)}return $},W.generateDynamicTag=function(F,U,A){let $=this.newElementVar();if(this._createLines.push(`${$} = document.createElement('${F}');`),U.length>0){let Q=U.map((Z)=>this.generateInComponent(Z,"value")).join(", ");if(U.some((Z)=>this.hasReactiveDeps(Z)))this._setupLines.push(`__effect(() => { ${$}.className = __cx__(${Q}); });`);else this._createLines.push(`${$}.className = __cx__(${Q});`)}for(let Q of A){let J=Array.isArray(Q)?Q[0]instanceof String?Q[0].valueOf():Q[0]:null;if(J==="->"||J==="=>"){let Z=Q[2];if((Array.isArray(Z)?Z[0]instanceof String?Z[0].valueOf():Z[0]:null)==="block")for(let X of Z.slice(1)){let M=this.generateNode(X);this._createLines.push(`${$}.appendChild(${M});`)}else if(Z){let X=this.generateNode(Z);this._createLines.push(`${$}.appendChild(${X});`)}}else if(this.is(Q,"object"))this.generateAttributes($,Q);else if(typeof Q==="string"||Q instanceof String){let Z=this.newTextVar(),K=Q.valueOf();if(K.startsWith('"')||K.startsWith("'")||K.startsWith("`"))this._createLines.push(`${Z} = document.createTextNode(${K});`);else if(this.reactiveMembers&&this.reactiveMembers.has(K))this._createLines.push(`${Z} = document.createTextNode('');`),this._setupLines.push(`__effect(() => { ${Z}.data = this.${K}.value; });`);else this._createLines.push(`${Z} = document.createTextNode(${this.generateInComponent(Q,"value")});`);this._createLines.push(`${$}.appendChild(${Z});`)}else{let Z=this.generateNode(Q);this._createLines.push(`${$}.appendChild(${Z});`)}}return $},W.generateAttributes=function(F,U){let A=q2(U.slice(1));for(let $=1;$<U.length;$++){let[Q,J]=U[$];if(this.is(Q,".")&&Q[1]==="this"){let Z=Q[2],K=this.generateInComponent(J,"value");this._createLines.push(`${F}.addEventListener('${Z}', (e) => (${K})(e));`);continue}if(typeof Q==="string"){if(Q.startsWith('"')&&Q.endsWith('"'))Q=Q.slice(1,-1);if(Q.startsWith(I1)&&Q.endsWith(E1)){let K=Q.slice(I1.length,-E1.length),X=this.generateInComponent(J,"value"),M,R;if(K==="checked")M="change",R="e.target.checked";else M="input",R=A==="number"||A==="range"?"e.target.valueAsNumber":"e.target.value";this._setupLines.push(`__effect(() => { ${F}.${K} = ${X}; });`),this._createLines.push(`${F}.addEventListener('${M}', (e) => ${X} = ${R});`);continue}let Z=this.generateInComponent(J,"value");if((Q==="value"||Q==="checked")&&this.hasReactiveDeps(J)){this._setupLines.push(`__effect(() => { ${F}.${Q} = ${Z}; });`);let K=Q==="checked"?"change":"input",X=Q==="checked"?"e.target.checked":A==="number"||A==="range"?"e.target.valueAsNumber":"e.target.value";this._createLines.push(`${F}.addEventListener('${K}', (e) => { ${Z} = ${X}; });`);continue}if(this.hasReactiveDeps(J))this._setupLines.push(`__effect(() => { ${F}.setAttribute('${Q}', ${Z}); });`);else this._createLines.push(`${F}.setAttribute('${Q}', ${Z});`)}}},W.generateTemplateBlock=function(F){if(!Array.isArray(F)||F[0]!=="block")return this.generateNode(F);let U=F.slice(1);if(U.length===0){let $=this.newElementVar("empty");return this._createLines.push(`${$} = document.createComment('');`),$}if(U.length===1)return this.generateNode(U[0]);let A=this.newElementVar("frag");this._createLines.push(`${A} = document.createDocumentFragment();`);for(let $ of U){let Q=this.generateNode($);this._createLines.push(`${A}.appendChild(${Q});`)}return A},W.generateConditional=function(F){let[,U,A,$]=F,Q=this.newElementVar("anchor");this._createLines.push(`${Q} = document.createComment('if');`);let J=this.generateInComponent(U,"value"),Z=this.newBlockVar();this.generateConditionBranch(Z,A);let K=null;if($)K=this.newBlockVar(),this.generateConditionBranch(K,$);let X=[];if(X.push(`// Conditional: ${Z}${K?" / "+K:""}`),X.push("{"),X.push(` const anchor = ${Q};`),X.push(" let currentBlock = null;"),X.push(" let showing = null;"),X.push(" __effect(() => {"),X.push(` const show = !!(${J});`),X.push(` const want = show ? 'then' : ${$?"'else'":"null"};`),X.push(" if (want === showing) return;"),X.push(""),X.push(" if (currentBlock) {"),X.push(" currentBlock.d(true);"),X.push(" currentBlock = null;"),X.push(" }"),X.push(" showing = want;"),X.push(""),X.push(" if (want === 'then') {"),X.push(` currentBlock = ${Z}(this);`),X.push(" currentBlock.c();"),X.push(" currentBlock.m(anchor.parentNode, anchor.nextSibling);"),X.push(" currentBlock.p(this);"),X.push(" }"),$)X.push(" if (want === 'else') {"),X.push(` currentBlock = ${K}(this);`),X.push(" currentBlock.c();"),X.push(" currentBlock.m(anchor.parentNode, anchor.nextSibling);"),X.push(" currentBlock.p(this);"),X.push(" }");return X.push(" });"),X.push("}"),this._setupLines.push(X.join(`
22
- `)),Q},W.generateConditionBranch=function(F,U){let A=this._createLines,$=this._setupLines;this._createLines=[],this._setupLines=[];let Q=this.generateTemplateBlock(U),J=this._createLines,Z=this._setupLines;this._createLines=A,this._setupLines=$;let K=(D)=>this.localizeVar(D),X=[];X.push(`function ${F}(ctx) {`);let M=new Set;for(let D of J){let z=D.match(/^this\.(_(?:el|t|anchor|frag|slot|c|inst|empty)\d+)\s*=/);if(z)M.add(z[1])}if(M.size>0)X.push(` let ${[...M].join(", ")};`);let R=Z.length>0;if(R)X.push(" let disposers = [];");X.push(" return {"),X.push(" c() {");for(let D of J)X.push(` ${K(D)}`);if(X.push(" },"),X.push(" m(target, anchor) {"),X.push(` target.insertBefore(${K(Q)}, anchor);`),X.push(" },"),X.push(" p(ctx) {"),R){X.push(" disposers.forEach(d => d());"),X.push(" disposers = [];");for(let D of Z){let q=K(D).replace(/__effect\(\(\) => \{/g,"disposers.push(__effect(() => {").replace(/\}\);$/g,"}));");X.push(` ${q}`)}}if(X.push(" },"),X.push(" d(detaching) {"),R)X.push(" disposers.forEach(d => d());");X.push(` if (detaching) ${K(Q)}.remove();`),X.push(" }"),X.push(" };"),X.push("}"),this._blockFactories.push(X.join(`
23
- `))},W.generateTemplateLoop=function(F){let[U,A,$,Q,J,Z]=F,K=this.newBlockVar(),X=this.newElementVar("anchor");this._createLines.push(`${X} = document.createComment('for');`);let M=Array.isArray(A)?A:[A],R=M[0],D=M[1]||"i",z=this.generateInComponent($,"value"),q=R;if(this.is(Z,"block")&&Z.length>1){let T=Z[1];if(Array.isArray(T))for(let L of T){if(this.is(L,"object"))for(let u=1;u<L.length;u++){let[i,d]=L[u];if(i==="key"){q=this.generate(d,"value");break}}if(q!==R)break}}let H=this._createLines,G=this._setupLines;this._createLines=[],this._setupLines=[];let I=this.generateTemplateBlock(Z),P=this._createLines,B=this._setupLines;this._createLines=H,this._setupLines=G;let _=(T)=>this.localizeVar(T),w=[];w.push(`function ${K}(ctx, ${R}, ${D}) {`);let O=new Set;for(let T of P){let L=T.match(/^this\.(_(?:el|t|anchor|frag|slot|c|inst|empty)\d+)\s*=/);if(L)O.add(L[1])}if(O.size>0)w.push(` let ${[...O].join(", ")};`);let N=B.length>0;if(N)w.push(" let disposers = [];");w.push(" return {"),w.push(" c() {");for(let T of P)w.push(` ${_(T)}`);if(w.push(" },"),w.push(" m(target, anchor) {"),w.push(` target.insertBefore(${_(I)}, anchor);`),w.push(" },"),w.push(` p(ctx, ${R}, ${D}) {`),N){w.push(" disposers.forEach(d => d());"),w.push(" disposers = [];");for(let T of B){let u=_(T).replace(/__effect\(\(\) => \{/g,"disposers.push(__effect(() => {").replace(/\}\);$/g,"}));");w.push(` ${u}`)}}if(w.push(" },"),w.push(" d(detaching) {"),N)w.push(" disposers.forEach(d => d());");w.push(` if (detaching) ${_(I)}.remove();`),w.push(" }"),w.push(" };"),w.push("}"),this._blockFactories.push(w.join(`
24
- `));let E=[];return E.push(`// Loop: ${K}`),E.push("{"),E.push(` const anchor = ${X};`),E.push(" const map = new Map();"),E.push(" __effect(() => {"),E.push(` const items = ${z};`),E.push(" const parent = anchor.parentNode;"),E.push(" const newMap = new Map();"),E.push(""),E.push(` for (let ${D} = 0; ${D} < items.length; ${D}++) {`),E.push(` const ${R} = items[${D}];`),E.push(` const key = ${q};`),E.push(" let block = map.get(key);"),E.push(" if (block) {"),E.push(` block.p(this, ${R}, ${D});`),E.push(" } else {"),E.push(` block = ${K}(this, ${R}, ${D});`),E.push(" block.c();"),E.push(" block.m(parent, anchor);"),E.push(` block.p(this, ${R}, ${D});`),E.push(" }"),E.push(" newMap.set(key, block);"),E.push(" }"),E.push(""),E.push(" for (const [key, block] of map) {"),E.push(" if (!newMap.has(key)) block.d(true);"),E.push(" }"),E.push(""),E.push(" map.clear();"),E.push(" for (const [k, v] of newMap) map.set(k, v);"),E.push(" });"),E.push("}"),this._setupLines.push(E.join(`
25
- `)),X},W.generateChildComponent=function(F,U){let A=this.newElementVar("inst"),$=this.newElementVar("el"),{propsCode:Q,childrenSetupLines:J}=this.buildComponentProps(U);this._createLines.push(`${A} = new ${F}(${Q});`),this._createLines.push(`${$} = ${A}._create();`),this._setupLines.push(`if (${A}._setup) ${A}._setup();`);for(let Z of J)this._setupLines.push(Z);return $},W.buildComponentProps=function(F){let U=[],A=null,$=[];for(let J of F)if(this.is(J,"object"))for(let Z=1;Z<J.length;Z++){let[K,X]=J[Z];if(typeof K==="string"){let M=this.generateInComponent(X,"value");U.push(`${K}: ${M}`)}}else if(Array.isArray(J)&&(J[0]==="->"||J[0]==="=>")){let Z=J[2];if(Z){let K=this._createLines,X=this._setupLines;this._createLines=[],this._setupLines=[],A=this.generateTemplateBlock(Z);let M=this._createLines,R=this._setupLines;this._createLines=K,this._setupLines=X;for(let D of M)this._createLines.push(D);$.push(...R),U.push(`children: ${A}`)}}return{propsCode:U.length>0?`{ ${U.join(", ")} }`:"{}",childrenSetupLines:$}},W.hasReactiveDeps=function(F){if(!this.reactiveMembers||this.reactiveMembers.size===0)return!1;if(typeof F==="string")return this.reactiveMembers.has(F);if(!Array.isArray(F))return!1;if(F[0]==="."&&F[1]==="this"&&typeof F[2]==="string")return this.reactiveMembers.has(F[2]);for(let U of F)if(this.hasReactiveDeps(U))return!0;return!1},W.getComponentRuntime=function(){return`
20
+ })()`;return B.join(`
21
+ `)},W.generateInComponent=function(F,U){if(typeof F==="string"&&this.reactiveMembers&&this.reactiveMembers.has(F))return`this.${F}.value`;if(typeof F==="string"&&this.componentMembers&&this.componentMembers.has(F))return`this.${F}`;if(Array.isArray(F)&&this.reactiveMembers){let A=this.transformComponentMembers(F);return this.generate(A,U)}return this.generate(F,U)},W.generateRender=function(F,U,A,$){throw Error("render blocks can only be used inside a component")},W.buildRender=function(F){this._elementCount=0,this._textCount=0,this._blockCount=0,this._createLines=[],this._setupLines=[],this._blockFactories=[];let U=this.is(F,"block")?F.slice(1):[F],A;if(U.length===0)A="null";else if(U.length===1)A=this.generateNode(U[0]);else{A=this.newElementVar("frag"),this._createLines.push(`${A} = document.createDocumentFragment();`);for(let $ of U){let Q=this.generateNode($);this._createLines.push(`${A}.appendChild(${Q});`)}}return{createLines:this._createLines,setupLines:this._setupLines,blockFactories:this._blockFactories,rootVar:A}},W.newBlockVar=function(){return`create_block_${this._blockCount++}`},W.newElementVar=function(F="el"){return`this._${F}${this._elementCount++}`},W.newTextVar=function(){return`this._t${this._textCount++}`},W.generateNode=function(F){if(typeof F==="string"||F instanceof String){let Z=F.valueOf();if(Z.startsWith('"')||Z.startsWith("'")||Z.startsWith("`")){let X=this.newTextVar();return this._createLines.push(`${X} = document.createTextNode(${Z});`),X}if(this.reactiveMembers&&this.reactiveMembers.has(Z)){let X=this.newTextVar();return this._createLines.push(`${X} = document.createTextNode('');`),this._setupLines.push(`__effect(() => { ${X}.data = this.${Z}.value; });`),X}let K=this.newElementVar();return this._createLines.push(`${K} = document.createElement('${Z}');`),K}if(!Array.isArray(F)){let Z=this.newElementVar("c");return this._createLines.push(`${Z} = document.createComment('unknown');`),Z}let[U,...A]=F,$=typeof U==="string"?U:U instanceof String?U.valueOf():null;if($&&this.isComponent($))return this.generateChildComponent($,A);if($&&this.isHtmlTag($))return this.generateTag($,[],A);if($==="."){let[,Z,K]=F;if(Z==="this"&&typeof K==="string"){if(this.reactiveMembers&&this.reactiveMembers.has(K)){let M=this.newTextVar();return this._createLines.push(`${M} = document.createTextNode('');`),this._setupLines.push(`__effect(() => { ${M}.data = this.${K}.value; });`),M}let G=this.newElementVar("slot");return this._createLines.push(`${G} = this.${K} instanceof Node ? this.${K} : (this.${K} != null ? document.createTextNode(String(this.${K})) : document.createComment(''));`),G}let{tag:X,classes:z}=this.collectTemplateClasses(F);if(X&&this.isHtmlTag(X))return this.generateTag(X,z,[]);let R=this.newTextVar(),D=this.generateInComponent(F,"value");return this._createLines.push(`${R} = document.createTextNode(String(${D}));`),R}if(Array.isArray(U)){if(Array.isArray(U[0])&&U[0][0]==="."&&(U[0][2]==="__clsx"||U[0][2]instanceof String&&U[0][2].valueOf()==="__clsx")){let X=typeof U[0][1]==="string"?U[0][1]:U[0][1].valueOf(),z=U.slice(1);return this.generateDynamicTag(X,z,A)}let{tag:Z,classes:K}=this.collectTemplateClasses(U);if(Z&&this.isHtmlTag(Z)){if(K.length===1&&K[0]==="__clsx")return this.generateDynamicTag(Z,A,[]);return this.generateTag(Z,K,A)}}if($==="->"||$==="=>")return this.generateTemplateBlock(A[1]);if($==="if")return this.generateConditional(F);if($==="for"||$==="for-in"||$==="for-of"||$==="for-as")return this.generateTemplateLoop(F);let Q=this.newTextVar(),J=this.generateInComponent(F,"value");if(this.hasReactiveDeps(F))this._createLines.push(`${Q} = document.createTextNode('');`),this._setupLines.push(`__effect(() => { ${Q}.data = ${J}; });`);else this._createLines.push(`${Q} = document.createTextNode(String(${J}));`);return Q},W.generateTag=function(F,U,A){let $=this.newElementVar();if(this._createLines.push(`${$} = document.createElement('${F}');`),U.length>0)this._createLines.push(`${$}.className = '${U.join(" ")}';`);for(let Q of A)if(Array.isArray(Q)&&(Q[0]==="->"||Q[0]==="=>")){let J=Q[2];if(this.is(J,"block"))for(let Z of J.slice(1)){let K=this.generateNode(Z);this._createLines.push(`${$}.appendChild(${K});`)}else if(J){let Z=this.generateNode(J);this._createLines.push(`${$}.appendChild(${Z});`)}}else if(this.is(Q,"object"))this.generateAttributes($,Q);else if(typeof Q==="string"){let J=this.newTextVar();if(Q.startsWith('"')||Q.startsWith("'")||Q.startsWith("`"))this._createLines.push(`${J} = document.createTextNode(${Q});`);else if(this.reactiveMembers&&this.reactiveMembers.has(Q))this._createLines.push(`${J} = document.createTextNode('');`),this._setupLines.push(`__effect(() => { ${J}.data = this.${Q}.value; });`);else if(this.componentMembers&&this.componentMembers.has(Q))this._createLines.push(`${J} = document.createTextNode(String(this.${Q}));`);else this._createLines.push(`${J} = document.createTextNode(String(${Q}));`);this._createLines.push(`${$}.appendChild(${J});`)}else if(Q instanceof String){let J=Q.valueOf(),Z=this.newTextVar();if(J.startsWith('"')||J.startsWith("'")||J.startsWith("`"))this._createLines.push(`${Z} = document.createTextNode(${J});`);else if(this.reactiveMembers&&this.reactiveMembers.has(J))this._createLines.push(`${Z} = document.createTextNode('');`),this._setupLines.push(`__effect(() => { ${Z}.data = this.${J}.value; });`);else this._createLines.push(`${Z} = document.createTextNode(String(${J}));`);this._createLines.push(`${$}.appendChild(${Z});`)}else if(Q){let J=this.generateNode(Q);this._createLines.push(`${$}.appendChild(${J});`)}return $},W.generateDynamicTag=function(F,U,A){let $=this.newElementVar();if(this._createLines.push(`${$} = document.createElement('${F}');`),U.length>0){let Q=U.map((Z)=>this.generateInComponent(Z,"value")).join(", ");if(U.some((Z)=>this.hasReactiveDeps(Z)))this._setupLines.push(`__effect(() => { ${$}.className = __clsx(${Q}); });`);else this._createLines.push(`${$}.className = __clsx(${Q});`)}for(let Q of A){let J=Array.isArray(Q)?Q[0]instanceof String?Q[0].valueOf():Q[0]:null;if(J==="->"||J==="=>"){let Z=Q[2];if((Array.isArray(Z)?Z[0]instanceof String?Z[0].valueOf():Z[0]:null)==="block")for(let X of Z.slice(1)){let z=this.generateNode(X);this._createLines.push(`${$}.appendChild(${z});`)}else if(Z){let X=this.generateNode(Z);this._createLines.push(`${$}.appendChild(${X});`)}}else if(this.is(Q,"object"))this.generateAttributes($,Q);else if(typeof Q==="string"||Q instanceof String){let Z=this.newTextVar(),K=Q.valueOf();if(K.startsWith('"')||K.startsWith("'")||K.startsWith("`"))this._createLines.push(`${Z} = document.createTextNode(${K});`);else if(this.reactiveMembers&&this.reactiveMembers.has(K))this._createLines.push(`${Z} = document.createTextNode('');`),this._setupLines.push(`__effect(() => { ${Z}.data = this.${K}.value; });`);else this._createLines.push(`${Z} = document.createTextNode(${this.generateInComponent(Q,"value")});`);this._createLines.push(`${$}.appendChild(${Z});`)}else{let Z=this.generateNode(Q);this._createLines.push(`${$}.appendChild(${Z});`)}}return $},W.generateAttributes=function(F,U){let A=H2(U.slice(1));for(let $=1;$<U.length;$++){let[Q,J]=U[$];if(this.is(Q,".")&&Q[1]==="this"){let Z=Q[2];if(typeof J==="string"&&this.componentMembers?.has(J))this._createLines.push(`${F}.addEventListener('${Z}', (e) => this.${J}(e));`);else{let K=this.generateInComponent(J,"value");this._createLines.push(`${F}.addEventListener('${Z}', (e) => (${K})(e));`)}continue}if(typeof Q==="string"){if(Q.startsWith('"')&&Q.endsWith('"'))Q=Q.slice(1,-1);if(Q.startsWith(E1)&&Q.endsWith(N1)){let K=Q.slice(E1.length,-N1.length),X=this.generateInComponent(J,"value"),z,R;if(K==="checked")z="change",R="e.target.checked";else z="input",R=A==="number"||A==="range"?"e.target.valueAsNumber":"e.target.value";this._setupLines.push(`__effect(() => { ${F}.${K} = ${X}; });`),this._createLines.push(`${F}.addEventListener('${z}', (e) => ${X} = ${R});`);continue}let Z=this.generateInComponent(J,"value");if((Q==="value"||Q==="checked")&&this.hasReactiveDeps(J)){this._setupLines.push(`__effect(() => { ${F}.${Q} = ${Z}; });`);let K=Q==="checked"?"change":"input",X=Q==="checked"?"e.target.checked":A==="number"||A==="range"?"e.target.valueAsNumber":"e.target.value";this._createLines.push(`${F}.addEventListener('${K}', (e) => { ${Z} = ${X}; });`);continue}if(this.hasReactiveDeps(J))this._setupLines.push(`__effect(() => { ${F}.setAttribute('${Q}', ${Z}); });`);else this._createLines.push(`${F}.setAttribute('${Q}', ${Z});`)}}},W.generateTemplateBlock=function(F){if(!Array.isArray(F)||F[0]!=="block")return this.generateNode(F);let U=F.slice(1);if(U.length===0){let $=this.newElementVar("empty");return this._createLines.push(`${$} = document.createComment('');`),$}if(U.length===1)return this.generateNode(U[0]);let A=this.newElementVar("frag");this._createLines.push(`${A} = document.createDocumentFragment();`);for(let $ of U){let Q=this.generateNode($);this._createLines.push(`${A}.appendChild(${Q});`)}return A},W.generateConditional=function(F){let[,U,A,$]=F,Q=this.newElementVar("anchor");this._createLines.push(`${Q} = document.createComment('if');`);let J=this.generateInComponent(U,"value"),Z=this.newBlockVar();this.generateConditionBranch(Z,A);let K=null;if($)K=this.newBlockVar(),this.generateConditionBranch(K,$);let X=[];if(X.push(`// Conditional: ${Z}${K?" / "+K:""}`),X.push("{"),X.push(` const anchor = ${Q};`),X.push(" let currentBlock = null;"),X.push(" let showing = null;"),X.push(" __effect(() => {"),X.push(` const show = !!(${J});`),X.push(` const want = show ? 'then' : ${$?"'else'":"null"};`),X.push(" if (want === showing) return;"),X.push(""),X.push(" if (currentBlock) {"),X.push(" currentBlock.d(true);"),X.push(" currentBlock = null;"),X.push(" }"),X.push(" showing = want;"),X.push(""),X.push(" if (want === 'then') {"),X.push(` currentBlock = ${Z}(this);`),X.push(" currentBlock.c();"),X.push(" currentBlock.m(anchor.parentNode, anchor.nextSibling);"),X.push(" currentBlock.p(this);"),X.push(" }"),$)X.push(" if (want === 'else') {"),X.push(` currentBlock = ${K}(this);`),X.push(" currentBlock.c();"),X.push(" currentBlock.m(anchor.parentNode, anchor.nextSibling);"),X.push(" currentBlock.p(this);"),X.push(" }");return X.push(" });"),X.push("}"),this._setupLines.push(X.join(`
22
+ `)),Q},W.generateConditionBranch=function(F,U){let A=this._createLines,$=this._setupLines;this._createLines=[],this._setupLines=[];let Q=this.generateTemplateBlock(U),J=this._createLines,Z=this._setupLines;this._createLines=A,this._setupLines=$;let K=(D)=>this.localizeVar(D),X=[];X.push(`function ${F}(ctx) {`);let z=new Set;for(let D of J){let G=D.match(/^this\.(_(?:el|t|anchor|frag|slot|c|inst|empty)\d+)\s*=/);if(G)z.add(G[1])}if(z.size>0)X.push(` let ${[...z].join(", ")};`);let R=Z.length>0;if(R)X.push(" let disposers = [];");X.push(" return {"),X.push(" c() {");for(let D of J)X.push(` ${K(D)}`);if(X.push(" },"),X.push(" m(target, anchor) {"),X.push(` target.insertBefore(${K(Q)}, anchor);`),X.push(" },"),X.push(" p(ctx) {"),R){X.push(" disposers.forEach(d => d());"),X.push(" disposers = [];");for(let D of Z){let M=K(D).replace(/__effect\(\(\) => \{/g,"disposers.push(__effect(() => {").replace(/\}\);$/g,"}));");X.push(` ${M}`)}}if(X.push(" },"),X.push(" d(detaching) {"),R)X.push(" disposers.forEach(d => d());");X.push(` if (detaching) ${K(Q)}.remove();`),X.push(" }"),X.push(" };"),X.push("}"),this._blockFactories.push(X.join(`
23
+ `))},W.generateTemplateLoop=function(F){let[U,A,$,Q,J,Z]=F,K=this.newBlockVar(),X=this.newElementVar("anchor");this._createLines.push(`${X} = document.createComment('for');`);let z=Array.isArray(A)?A:[A],R=z[0],D=z[1]||"i",G=this.generateInComponent($,"value"),M=R;if(this.is(Z,"block")&&Z.length>1){let T=Z[1];if(Array.isArray(T))for(let L of T){if(this.is(L,"object"))for(let f=1;f<L.length;f++){let[b,d]=L[f];if(b==="key"){M=this.generate(d,"value");break}}if(M!==R)break}}let q=this._createLines,H=this._setupLines;this._createLines=[],this._setupLines=[];let I=this.generateTemplateBlock(Z),B=this._createLines,P=this._setupLines;this._createLines=q,this._setupLines=H;let _=(T)=>this.localizeVar(T),w=[];w.push(`function ${K}(ctx, ${R}, ${D}) {`);let O=new Set;for(let T of B){let L=T.match(/^this\.(_(?:el|t|anchor|frag|slot|c|inst|empty)\d+)\s*=/);if(L)O.add(L[1])}if(O.size>0)w.push(` let ${[...O].join(", ")};`);let N=P.length>0;if(N)w.push(" let disposers = [];");w.push(" return {"),w.push(" c() {");for(let T of B)w.push(` ${_(T)}`);if(w.push(" },"),w.push(" m(target, anchor) {"),w.push(` target.insertBefore(${_(I)}, anchor);`),w.push(" },"),w.push(` p(ctx, ${R}, ${D}) {`),N){w.push(" disposers.forEach(d => d());"),w.push(" disposers = [];");for(let T of P){let f=_(T).replace(/__effect\(\(\) => \{/g,"disposers.push(__effect(() => {").replace(/\}\);$/g,"}));");w.push(` ${f}`)}}if(w.push(" },"),w.push(" d(detaching) {"),N)w.push(" disposers.forEach(d => d());");w.push(` if (detaching) ${_(I)}.remove();`),w.push(" }"),w.push(" };"),w.push("}"),this._blockFactories.push(w.join(`
24
+ `));let E=[];return E.push(`// Loop: ${K}`),E.push("{"),E.push(` const anchor = ${X};`),E.push(" const map = new Map();"),E.push(" __effect(() => {"),E.push(` const items = ${G};`),E.push(" const parent = anchor.parentNode;"),E.push(" const newMap = new Map();"),E.push(""),E.push(` for (let ${D} = 0; ${D} < items.length; ${D}++) {`),E.push(` const ${R} = items[${D}];`),E.push(` const key = ${M};`),E.push(" let block = map.get(key);"),E.push(" if (block) {"),E.push(` block.p(this, ${R}, ${D});`),E.push(" } else {"),E.push(` block = ${K}(this, ${R}, ${D});`),E.push(" block.c();"),E.push(" block.m(parent, anchor);"),E.push(` block.p(this, ${R}, ${D});`),E.push(" }"),E.push(" newMap.set(key, block);"),E.push(" }"),E.push(""),E.push(" for (const [key, block] of map) {"),E.push(" if (!newMap.has(key)) block.d(true);"),E.push(" }"),E.push(""),E.push(" map.clear();"),E.push(" for (const [k, v] of newMap) map.set(k, v);"),E.push(" });"),E.push("}"),this._setupLines.push(E.join(`
25
+ `)),X},W.generateChildComponent=function(F,U){let A=this.newElementVar("inst"),$=this.newElementVar("el"),{propsCode:Q,childrenSetupLines:J}=this.buildComponentProps(U);this._createLines.push(`${A} = new ${F}(${Q});`),this._createLines.push(`${$} = ${A}._create();`),this._setupLines.push(`if (${A}._setup) ${A}._setup();`);for(let Z of J)this._setupLines.push(Z);return $},W.buildComponentProps=function(F){let U=[],A=null,$=[];for(let J of F)if(this.is(J,"object"))for(let Z=1;Z<J.length;Z++){let[K,X]=J[Z];if(typeof K==="string"){let z=this.generateInComponent(X,"value");U.push(`${K}: ${z}`)}}else if(Array.isArray(J)&&(J[0]==="->"||J[0]==="=>")){let Z=J[2];if(Z){let K=this._createLines,X=this._setupLines;this._createLines=[],this._setupLines=[],A=this.generateTemplateBlock(Z);let z=this._createLines,R=this._setupLines;this._createLines=K,this._setupLines=X;for(let D of z)this._createLines.push(D);$.push(...R),U.push(`children: ${A}`)}}return{propsCode:U.length>0?`{ ${U.join(", ")} }`:"{}",childrenSetupLines:$}},W.hasReactiveDeps=function(F){if(!this.reactiveMembers||this.reactiveMembers.size===0)return!1;if(typeof F==="string")return this.reactiveMembers.has(F);if(!Array.isArray(F))return!1;if(F[0]==="."&&F[1]==="this"&&typeof F[2]==="string")return this.reactiveMembers.has(F[2]);for(let U of F)if(this.hasReactiveDeps(U))return!0;return!1},W.getComponentRuntime=function(){return`
26
26
  // ============================================================================
27
27
  // Rip Component Runtime
28
28
  // ============================================================================
29
29
 
30
- function isSignal(v) {
31
- return v != null && typeof v === 'object' && typeof v.read === 'function';
32
- }
33
-
34
30
  let __currentComponent = null;
35
31
 
36
32
  function __pushComponent(component) {
@@ -68,31 +64,56 @@ function hasContext(key) {
68
64
  return false;
69
65
  }
70
66
 
71
- function __cx__(...args) {
67
+ function __clsx(...args) {
72
68
  return args.filter(Boolean).join(' ');
73
69
  }
74
70
 
71
+ class __Component {
72
+ constructor(props = {}) {
73
+ Object.assign(this, props);
74
+ const prev = __pushComponent(this);
75
+ this._init(props);
76
+ __popComponent(prev);
77
+ }
78
+ _init() {}
79
+ mount(target) {
80
+ if (typeof target === "string") target = document.querySelector(target);
81
+ this._target = target;
82
+ this._root = this._create();
83
+ target.appendChild(this._root);
84
+ if (this._setup) this._setup();
85
+ if (this.mounted) this.mounted();
86
+ return this;
87
+ }
88
+ unmount() {
89
+ if (this.unmounted) this.unmounted();
90
+ if (this._root && this._root.parentNode) {
91
+ this._root.parentNode.removeChild(this._root);
92
+ }
93
+ }
94
+ }
95
+
75
96
  // Register on globalThis for runtime deduplication
76
97
  if (typeof globalThis !== 'undefined') {
77
- globalThis.__ripComponent = { isSignal, __pushComponent, __popComponent, setContext, getContext, hasContext, __cx__ };
98
+ globalThis.__ripComponent = { __pushComponent, __popComponent, setContext, getContext, hasContext, __clsx, __Component };
78
99
  }
79
100
 
80
- `}}function k(Y){let W="",F=Y<0?-Y<<1|1:Y<<1;do{let U=F&31;if(F>>>=5,F>0)U|=32;W+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[U]}while(F>0);return W}class F1{constructor(Y,W,F=null){this.file=Y,this.source=W,this.sourceContent=F,this.names=[],this.nameIndex=new Map,this.lines=[],this.mappings=[],this.prevGenCol=0,this.prevOrigLine=0,this.prevOrigCol=0,this.prevNameIdx=0,this.currentLine=-1}ensureLine(Y){while(this.lines.length<=Y)this.lines.push([])}addName(Y){if(this.nameIndex.has(Y))return this.nameIndex.get(Y);let W=this.names.length;return this.names.push(Y),this.nameIndex.set(Y,W),W}addMapping(Y,W,F,U,A){if(this.ensureLine(Y),this.currentLine!==Y)this.prevGenCol=0,this.currentLine=Y;if(F==null){this.lines[Y].push(k(W-this.prevGenCol)),this.prevGenCol=W;return}this.mappings.push({genLine:Y,genCol:W,origLine:F,origCol:U});let $=k(W-this.prevGenCol);if(this.prevGenCol=W,$+=k(0),$+=k(F-this.prevOrigLine),this.prevOrigLine=F,$+=k(U-this.prevOrigCol),this.prevOrigCol=U,A!=null){let Q=this.addName(A);$+=k(Q-this.prevNameIdx),this.prevNameIdx=Q}this.lines[Y].push($)}toReverseMap(){let Y=new Map;for(let W of this.mappings)if(!Y.has(W.origLine))Y.set(W.origLine,{genLine:W.genLine,genCol:W.genCol});return Y}toJSON(){let Y=this.lines.map((F)=>F.join(",")).join(";"),W={version:3,file:this.file,sources:[this.source],names:this.names,mappings:Y};if(this.sourceContent!=null)W.sourcesContent=[this.sourceContent];return JSON.stringify(W)}}var f=(Y,W)=>Y instanceof String?Y[W]:void 0,S=(Y)=>Y instanceof String?Y.valueOf():Y,H2=new Set(["+","-","*","/","%","//","%%","**","==","!=","<",">","<=",">=","===","!==","&&","||","??","!?","not","&","|","^","<<",">>",">>>","=",".","?.","[]","!","typeof","void","delete","new","...","rest","expansion","optindex","optcall"]);function t(Y){if(!Array.isArray(Y)||Y.length===0)return!1;let W=Y[0]?.valueOf?.()??Y[0];if(H2.has(W))return!0;return Y.length<=4&&!Y.some(Array.isArray)}function p(Y){if(Array.isArray(Y))return"(???)";if(typeof Y==="number")return String(Y);if(Y===null)return"null";if(Y==="")return'""';let W=String(Y);if(W[0]==="/"&&W.indexOf(`
101
+ `}}function c(Y){let W="",F=Y<0?-Y<<1|1:Y<<1;do{let U=F&31;if(F>>>=5,F>0)U|=32;W+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[U]}while(F>0);return W}class F1{constructor(Y,W,F=null){this.file=Y,this.source=W,this.sourceContent=F,this.names=[],this.nameIndex=new Map,this.lines=[],this.mappings=[],this.prevGenCol=0,this.prevOrigLine=0,this.prevOrigCol=0,this.prevNameIdx=0,this.currentLine=-1}ensureLine(Y){while(this.lines.length<=Y)this.lines.push([])}addName(Y){if(this.nameIndex.has(Y))return this.nameIndex.get(Y);let W=this.names.length;return this.names.push(Y),this.nameIndex.set(Y,W),W}addMapping(Y,W,F,U,A){if(this.ensureLine(Y),this.currentLine!==Y)this.prevGenCol=0,this.currentLine=Y;if(F==null){this.lines[Y].push(c(W-this.prevGenCol)),this.prevGenCol=W;return}this.mappings.push({genLine:Y,genCol:W,origLine:F,origCol:U});let $=c(W-this.prevGenCol);if(this.prevGenCol=W,$+=c(0),$+=c(F-this.prevOrigLine),this.prevOrigLine=F,$+=c(U-this.prevOrigCol),this.prevOrigCol=U,A!=null){let Q=this.addName(A);$+=c(Q-this.prevNameIdx),this.prevNameIdx=Q}this.lines[Y].push($)}toReverseMap(){let Y=new Map;for(let W of this.mappings)if(!Y.has(W.origLine))Y.set(W.origLine,{genLine:W.genLine,genCol:W.genCol});return Y}toJSON(){let Y=this.lines.map((F)=>F.join(",")).join(";"),W={version:3,file:this.file,sources:[this.source],names:this.names,mappings:Y};if(this.sourceContent!=null)W.sourcesContent=[this.sourceContent];return JSON.stringify(W)}}var V=(Y,W)=>Y instanceof String?Y[W]:void 0,S=(Y)=>Y instanceof String?Y.valueOf():Y,O2=new Set(["+","-","*","/","%","//","%%","**","==","!=","<",">","<=",">=","===","!==","&&","||","??","!?","not","&","|","^","<<",">>",">>>","=",".","?.","[]","!","typeof","void","delete","new","...","rest","expansion","optindex","optcall"]);function t(Y){if(!Array.isArray(Y)||Y.length===0)return!1;let W=Y[0]?.valueOf?.()??Y[0];if(O2.has(W))return!0;return Y.length<=4&&!Y.some(Array.isArray)}function i(Y){if(Array.isArray(Y))return"(???)";if(typeof Y==="number")return String(Y);if(Y===null)return"null";if(Y==="")return'""';let W=String(Y);if(W[0]==="/"&&W.indexOf(`
81
102
  `)>=0){let F=W.match(/\/([gimsuvy]*)$/),U=F?F[1]:"",A=W.slice(1);return A=U?A.slice(0,-U.length-1):A.slice(0,-1),`"/${A.split(`
82
- `).map((J)=>J.replace(/#.*$/,"").trim()).join("")}/${U}"`}return W}function v(Y,W=0,F=!1){if(!Array.isArray(Y))return p(Y);if(F&&Y[0]==="program"){let K=Y[1],M=[Array.isArray(K)?"(program":"(program "+p(K)],R=Array.isArray(K)?1:2;for(let D=R;D<Y.length;D++){let z=v(Y[D],2,!1);M.push(z[0]==="("?" "+z:z)}return M.push(")"),M.join(`
83
- `)}let U=Y[0];if(t(Y)&&Y.slice(1).every((K)=>!Array.isArray(K)||t(K))){let X=`(${Y.map((M)=>Array.isArray(M)?v(M,0,!1):p(M)).join(" ")})`;if(!X.includes(`
84
- `))return" ".repeat(W)+X}let $=" ".repeat(W),Q;if(Array.isArray(U)){if(Q=v(U,0,!1),Q.includes(`
103
+ `).map((J)=>J.replace(/#.*$/,"").trim()).join("")}/${U}"`}return W}function g(Y,W=0,F=!1){if(!Array.isArray(Y))return i(Y);if(F&&Y[0]==="program"){let K=Y[1],z=[Array.isArray(K)?"(program":"(program "+i(K)],R=Array.isArray(K)?1:2;for(let D=R;D<Y.length;D++){let G=g(Y[D],2,!1);z.push(G[0]==="("?" "+G:G)}return z.push(")"),z.join(`
104
+ `)}let U=Y[0];if(t(Y)&&Y.slice(1).every((K)=>!Array.isArray(K)||t(K))){let X=`(${Y.map((z)=>Array.isArray(z)?g(z,0,!1):i(z)).join(" ")})`;if(!X.includes(`
105
+ `))return" ".repeat(W)+X}let $=" ".repeat(W),Q;if(Array.isArray(U)){if(Q=g(U,0,!1),Q.includes(`
85
106
  `))Q=Q.split(`
86
- `).map((X,M)=>M===0?X:" ".repeat(W+2)+X).join(`
87
- `)}else Q=p(U);let J=[`${$}(${Q}`],Z=U==="block";for(let K=1;K<Y.length;K++){let X=Y[K];if(!Array.isArray(X))J[J.length-1]+=" "+p(X);else{let M=t(X)&&X.every((R)=>!Array.isArray(R)||t(R));if(!Z&&M){let R=v(X,0,!1);if(!R.includes(`
88
- `)){J[J.length-1]+=" "+R;continue}}J.push(v(X,W+2,!1))}}return J[J.length-1]+=")",J.join(`
89
- `)}class j{static ASSIGNMENT_OPS=new Set(["=","+=","-=","*=","/=","?=","&=","|=","^=","%=","**=","??=","&&=","||=","<<=",">>=",">>>="]);static NUMBER_LITERAL_RE=/^-?\d+(\.\d+)?([eE][+-]?\d+)?$/;static NUMBER_START_RE=/^-?\d/;static GENERATORS={program:"generateProgram","&&":"generateLogicalAnd","||":"generateLogicalOr","+":"generateBinaryOp","-":"generateBinaryOp","*":"generateBinaryOp","/":"generateBinaryOp","%":"generateBinaryOp","**":"generateBinaryOp","==":"generateBinaryOp","===":"generateBinaryOp","!=":"generateBinaryOp","!==":"generateBinaryOp","<":"generateBinaryOp",">":"generateBinaryOp","<=":"generateBinaryOp",">=":"generateBinaryOp","??":"generateBinaryOp","!?":"generateBinaryOp","&":"generateBinaryOp","|":"generateBinaryOp","^":"generateBinaryOp","<<":"generateBinaryOp",">>":"generateBinaryOp",">>>":"generateBinaryOp","%%":"generateModulo","//":"generateFloorDiv","//=":"generateFloorDivAssign","..":"generateRange","=":"generateAssignment","+=":"generateAssignment","-=":"generateAssignment","*=":"generateAssignment","/=":"generateAssignment","%=":"generateAssignment","**=":"generateAssignment","&&=":"generateAssignment","||=":"generateAssignment","??=":"generateAssignment","?=":"generateAssignment","&=":"generateAssignment","|=":"generateAssignment","^=":"generateAssignment","<<=":"generateAssignment",">>=":"generateAssignment",">>>=":"generateAssignment","...":"generateRange","!":"generateNot","~":"generateBitwiseNot","++":"generateIncDec","--":"generateIncDec","=~":"generateRegexMatch",instanceof:"generateInstanceof",in:"generateIn",of:"generateOf",typeof:"generateTypeof",delete:"generateDelete",new:"generateNew",array:"generateArray",object:"generateObject",block:"generateBlock",".":"generatePropertyAccess","?.":"generateOptionalProperty","[]":"generateIndexAccess",optindex:"generateOptIndex",optcall:"generateOptCall","regex-index":"generateRegexIndex",def:"generateDef","->":"generateThinArrow","=>":"generateFatArrow",return:"generateReturn",state:"generateState",computed:"generateComputed",readonly:"generateReadonly",effect:"generateEffect",break:"generateBreak","break-if":"generateBreakIf",continue:"generateContinue","continue-if":"generateContinueIf","?":"generateExistential","?:":"generateTernary","|>":"generatePipe",loop:"generateLoop","loop-n":"generateLoopN",await:"generateAwait",yield:"generateYield","yield-from":"generateYieldFrom",if:"generateIf",unless:"generateIf","for-in":"generateForIn","for-of":"generateForOf","for-as":"generateForAs",while:"generateWhile",until:"generateUntil",try:"generateTry",throw:"generateThrow",control:"generateControl",switch:"generateSwitch",when:"generateWhen",comprehension:"generateComprehension","object-comprehension":"generateObjectComprehension",class:"generateClass",super:"generateSuper",component:"generateComponent",render:"generateRender",enum:"generateEnum",import:"generateImport",export:"generateExport","export-default":"generateExportDefault","export-all":"generateExportAll","export-from":"generateExportFrom","do-iife":"generateDoIIFE",regex:"generateRegex","tagged-template":"generateTaggedTemplate",str:"generateString"};constructor(Y={}){if(this.options=Y,this.indentLevel=0,this.indentString=" ",this.comprehensionDepth=0,this.dataSection=Y.dataSection,this.sourceMap=Y.sourceMap||null,Y.reactiveVars)this.reactiveVars=new Set(Y.reactiveVars)}compile(Y){this.programVars=new Set,this.functionVars=new Map,this.helpers=new Set,this.collectProgramVariables(Y);let W=this.generate(Y);if(this.sourceMap)this.buildMappings(W,Y);return W}buildMappings(Y,W){if(!W||W[0]!=="program")return;let F=[],U=(Q)=>{if(!Array.isArray(Q))return;let J=Q[0];if(J==="program"||J==="block")for(let Z=1;Z<Q.length;Z++){let K=Q[Z];if(Array.isArray(K)&&K.loc)F.push(K.loc);U(K)}else for(let Z=1;Z<Q.length;Z++)U(Q[Z])};U(W);let A=Y.split(`
90
- `),$=0;for(let Q=0;Q<A.length;Q++){let J=A[Q],Z=J.trim();if(!Z||Z==="}"||Z==="});")continue;if(Z.startsWith("let ")||Z.startsWith("var "))continue;if(Z.startsWith("const slice")||Z.startsWith("const modulo")||Z.startsWith("const toSearchable"))continue;if(Z.startsWith("const {")&&Z.includes("__"))continue;if(Z.startsWith("} else"))continue;if(Z.startsWith("//# source"))continue;if($<F.length){let K=J.length-Z.length;this.sourceMap.addMapping(Q,K,F[$].r,F[$].c),$++}}}collectProgramVariables(Y){if(!Array.isArray(Y))return;let[W,...F]=Y;if(W=S(W),Array.isArray(W)){Y.forEach((U)=>this.collectProgramVariables(U));return}if(W==="export"||W==="export-default"||W==="export-all"||W==="export-from")return;if(W==="state"||W==="computed"){let[U]=F,A=S(U)??U;if(!this.reactiveVars)this.reactiveVars=new Set;this.reactiveVars.add(A);return}if(W==="readonly")return;if(j.ASSIGNMENT_OPS.has(W)){let[U,A]=F;if(typeof U==="string"||U instanceof String){let $=S(U);if(!this.reactiveVars?.has($))this.programVars.add($)}else if(this.is(U,"array"))this.collectVarsFromArray(U,this.programVars);else if(this.is(U,"object"))this.collectVarsFromObject(U,this.programVars);this.collectProgramVariables(A);return}if(W==="def"||W==="->"||W==="=>")return;if(W==="if"){let[U,A,$]=F;if(this.collectProgramVariables(U),this.collectProgramVariables(A),$)this.collectProgramVariables($);return}if(W==="unless"){let[U,A]=F;this.collectProgramVariables(U),this.collectProgramVariables(A);return}if(W==="try"){if(this.collectProgramVariables(F[0]),F.length>=2&&Array.isArray(F[1])&&F[1].length===2&&F[1][0]!=="block"){let[U,A]=F[1];if(U&&this.is(U,"object"))U.slice(1).forEach(($)=>{if(Array.isArray($)&&$.length===2&&typeof $[1]==="string")this.programVars.add($[1])});else if(U&&this.is(U,"array"))U.slice(1).forEach(($)=>{if(typeof $==="string")this.programVars.add($)});this.collectProgramVariables(A)}if(F.length===3)this.collectProgramVariables(F[2]);else if(F.length===2&&(!Array.isArray(F[1])||F[1][0]==="block"))this.collectProgramVariables(F[1]);return}F.forEach((U)=>this.collectProgramVariables(U))}collectFunctionVariables(Y){let W=new Set,F=(U)=>{if(!Array.isArray(U))return;let[A,...$]=U;if(A=S(A),Array.isArray(A)){U.forEach((Q)=>F(Q));return}if(j.ASSIGNMENT_OPS.has(A)){let[Q,J]=$;if(typeof Q==="string")W.add(Q);else if(this.is(Q,"array"))this.collectVarsFromArray(Q,W);else if(this.is(Q,"object"))this.collectVarsFromObject(Q,W);F(J);return}if(A==="def"||A==="->"||A==="=>")return;if(A==="try"){if(F($[0]),$.length>=2&&Array.isArray($[1])&&$[1].length===2&&$[1][0]!=="block"){let[Q,J]=$[1];if(Q&&this.is(Q,"object"))Q.slice(1).forEach((Z)=>{if(Array.isArray(Z)&&Z.length===2&&typeof Z[1]==="string")W.add(Z[1])});else if(Q&&this.is(Q,"array"))Q.slice(1).forEach((Z)=>{if(typeof Z==="string")W.add(Z)});F(J)}if($.length===3)F($[2]);else if($.length===2&&(!Array.isArray($[1])||$[1][0]==="block"))F($[1]);return}$.forEach((Q)=>F(Q))};return F(Y),W}generate(Y,W="statement"){if(Y instanceof String){if(f(Y,"await")===!0)return`await ${S(Y)}()`;if(f(Y,"predicate"))return`(${S(Y)} != null)`;if(f(Y,"delimiter")==="///"&&f(Y,"heregex")){let J=S(Y),Z=J.match(/^\/(.*)\/([gimsuvy]*)$/s);if(Z){let[,K,X]=Z;return`/${this.processHeregex(K)}/${X}`}return J}let Q=f(Y,"quote");if(Q){let J=S(Y);if(Q==='"""'||Q==="'''"){let K=this.extractStringContent(Y);return K=K.replace(/`/g,"\\`").replace(/\${/g,"\\${"),`\`${K}\``}if(J[0]===Q)return J;let Z=J.slice(1,-1);return`${Q}${Z}${Q}`}Y=S(Y)}if(typeof Y==="string"){if(Y.startsWith('"')||Y.startsWith("'")||Y.startsWith("`")){if(this.options.debug)console.warn("[Rip] Unexpected quoted primitive:",Y);let Q=Y.slice(1,-1);if(Q.includes(`
91
- `))return`\`${Q.replace(/`/g,"\\`").replace(/\$\{/g,"\\${")}\``;let J=Q.includes("'")&&!Q.includes('"')?'"':"'",Z=Q.replace(new RegExp(J,"g"),`\\${J}`);return`${J}${Z}${J}`}if(this.reactiveVars?.has(Y)&&!this.suppressReactiveUnwrap)return`${Y}.value`;return Y}if(typeof Y==="number")return String(Y);if(Y===null||Y===void 0)return"null";if(!Array.isArray(Y))throw Error(`Invalid s-expression: ${JSON.stringify(Y)}`);let[F,...U]=Y,A=f(F,"await");F=S(F);let $=j.GENERATORS[F];if($)return this[$](F,U,W,Y);if(typeof F==="string"&&!F.startsWith('"')&&!F.startsWith("'")){if(j.NUMBER_START_RE.test(F))return F;if(F==="super"&&this.currentMethodName&&this.currentMethodName!=="constructor"){let X=U.map((M)=>this.unwrap(this.generate(M,"value"))).join(", ");return`super.${this.currentMethodName}(${X})`}if(W==="statement"&&U.length===1){let X=this.findPostfixConditional(U[0]);if(X){let M=this.rebuildWithoutConditional(X),R=this.generate(F,"value"),D=this.generate(X.condition,"value"),z=this.generate(M,"value"),q=`${R}(${z})`;return X.type==="unless"?`if (!${D}) ${q}`:`if (${D}) ${q}`}}let Q=A===!0,J=this.generate(F,"value"),Z=U.map((X)=>this.unwrap(this.generate(X,"value"))).join(", "),K=`${J}(${Z})`;return Q?`await ${K}`:K}if(Array.isArray(F)&&typeof F[0]==="string"){if(["=","+=","-=","*=","/=","%=","**=","&&=","||=","??=","if","unless","return","throw"].includes(F[0]))return`(${Y.map((Z)=>this.generate(Z,"value")).join(", ")})`}if(Array.isArray(F)){if(F[0]==="."&&(F[2]==="new"||S(F[2])==="new")){let X=F[1],M=this.generate(X,"value"),R=U.map((z)=>this.unwrap(this.generate(z,"value"))).join(", ");return`new ${Array.isArray(X)?`(${M})`:M}(${R})`}if(W==="statement"&&U.length===1){let X=this.findPostfixConditional(U[0]);if(X){let M=this.rebuildWithoutConditional(X),R=this.generate(F,"value"),D=this.generate(X.condition,"value"),z=this.generate(M,"value"),q=`${R}(${z})`;return X.type==="unless"?`if (!${D}) ${q}`:`if (${D}) ${q}`}}let Q=!1,J;if(F[0]==="."&&f(F[2],"await")===!0){Q=!0;let[X,M]=F.slice(1),R=this.generate(X,"value");J=`${j.NUMBER_LITERAL_RE.test(R)||(this.is(X,"object")||this.is(X,"await")||this.is(X,"yield"))?`(${R})`:R}.${S(M)}`}else J=this.generate(F,"value");let Z=U.map((X)=>this.unwrap(this.generate(X,"value"))).join(", "),K=`${J}(${Z})`;return Q?`await ${K}`:K}throw Error(`Unknown s-expression type: ${F}`)}generateProgram(Y,W,F,U){let A="",$=[],Q=[],J=[];for(let D of W){if(!Array.isArray(D)){J.push(D);continue}let z=D[0];if(z==="import")$.push(D);else if(z==="export"||z==="export-default"||z==="export-all"||z==="export-from")Q.push(D);else J.push(D)}let Z=["def","class","if","unless","for-in","for-of","for-as","while","until","loop","switch","try"],K=J.map((D,z)=>{let q=J.length===1&&$.length===0&&Q.length===0,H=this.is(D,"object"),G=H&&D.length===2&&Array.isArray(D[1])&&Array.isArray(D[1][1])&&D[1][1][0]==="comprehension",I=this.is(D,"comprehension")||this.is(D,"object-comprehension")||this.is(D,"do-iife"),P=this.programVars.size===0,B=q&&H&&P&&!I&&!G,w=z===J.length-1&&I,O;if(B)O=`(${this.generate(D,"value")})`;else if(w)O=this.generate(D,"value");else O=this.generate(D,"statement");if(O&&!O.endsWith(";")){let N=Array.isArray(D)?D[0]:null;if(!Z.includes(N)||!O.endsWith("}"))return O+";"}return O}).join(`
107
+ `).map((X,z)=>z===0?X:" ".repeat(W+2)+X).join(`
108
+ `)}else Q=i(U);let J=[`${$}(${Q}`],Z=U==="block";for(let K=1;K<Y.length;K++){let X=Y[K];if(!Array.isArray(X))J[J.length-1]+=" "+i(X);else{let z=t(X)&&X.every((R)=>!Array.isArray(R)||t(R));if(!Z&&z){let R=g(X,0,!1);if(!R.includes(`
109
+ `)){J[J.length-1]+=" "+R;continue}}J.push(g(X,W+2,!1))}}return J[J.length-1]+=")",J.join(`
110
+ `)}class j{static ASSIGNMENT_OPS=new Set(["=","+=","-=","*=","/=","?=","&=","|=","^=","%=","**=","??=","&&=","||=","<<=",">>=",">>>="]);static NUMBER_LITERAL_RE=/^-?\d+(\.\d+)?([eE][+-]?\d+)?$/;static NUMBER_START_RE=/^-?\d/;static GENERATORS={program:"generateProgram","&&":"generateLogicalAnd","||":"generateLogicalOr","+":"generateBinaryOp","-":"generateBinaryOp","*":"generateBinaryOp","/":"generateBinaryOp","%":"generateBinaryOp","**":"generateBinaryOp","==":"generateBinaryOp","===":"generateBinaryOp","!=":"generateBinaryOp","!==":"generateBinaryOp","<":"generateBinaryOp",">":"generateBinaryOp","<=":"generateBinaryOp",">=":"generateBinaryOp","??":"generateBinaryOp","!?":"generateBinaryOp","&":"generateBinaryOp","|":"generateBinaryOp","^":"generateBinaryOp","<<":"generateBinaryOp",">>":"generateBinaryOp",">>>":"generateBinaryOp","%%":"generateModulo","//":"generateFloorDiv","//=":"generateFloorDivAssign","..":"generateRange","=":"generateAssignment","+=":"generateAssignment","-=":"generateAssignment","*=":"generateAssignment","/=":"generateAssignment","%=":"generateAssignment","**=":"generateAssignment","&&=":"generateAssignment","||=":"generateAssignment","??=":"generateAssignment","?=":"generateAssignment","&=":"generateAssignment","|=":"generateAssignment","^=":"generateAssignment","<<=":"generateAssignment",">>=":"generateAssignment",">>>=":"generateAssignment","...":"generateRange","!":"generateNot","~":"generateBitwiseNot","++":"generateIncDec","--":"generateIncDec","=~":"generateRegexMatch",instanceof:"generateInstanceof",in:"generateIn",of:"generateOf",typeof:"generateTypeof",delete:"generateDelete",new:"generateNew",array:"generateArray",object:"generateObject",block:"generateBlock",".":"generatePropertyAccess","?.":"generateOptionalProperty","[]":"generateIndexAccess",optindex:"generateOptIndex",optcall:"generateOptCall","regex-index":"generateRegexIndex",def:"generateDef","->":"generateThinArrow","=>":"generateFatArrow",return:"generateReturn",state:"generateState",computed:"generateComputed",readonly:"generateReadonly",effect:"generateEffect",break:"generateBreak","break-if":"generateBreakIf",continue:"generateContinue","continue-if":"generateContinueIf","?":"generateExistential","?:":"generateTernary","|>":"generatePipe",loop:"generateLoop","loop-n":"generateLoopN",await:"generateAwait",yield:"generateYield","yield-from":"generateYieldFrom",if:"generateIf",unless:"generateIf","for-in":"generateForIn","for-of":"generateForOf","for-as":"generateForAs",while:"generateWhile",until:"generateUntil",try:"generateTry",throw:"generateThrow",control:"generateControl",switch:"generateSwitch",when:"generateWhen",comprehension:"generateComprehension","object-comprehension":"generateObjectComprehension",class:"generateClass",super:"generateSuper",component:"generateComponent",render:"generateRender",enum:"generateEnum",import:"generateImport",export:"generateExport","export-default":"generateExportDefault","export-all":"generateExportAll","export-from":"generateExportFrom","do-iife":"generateDoIIFE",regex:"generateRegex","tagged-template":"generateTaggedTemplate",str:"generateString"};constructor(Y={}){if(this.options=Y,this.indentLevel=0,this.indentString=" ",this.comprehensionDepth=0,this.dataSection=Y.dataSection,this.sourceMap=Y.sourceMap||null,Y.reactiveVars)this.reactiveVars=new Set(Y.reactiveVars)}compile(Y){this.programVars=new Set,this.functionVars=new Map,this.helpers=new Set,this.scopeStack=[],this.collectProgramVariables(Y);let W=this.generate(Y);if(this.sourceMap)this.buildMappings(W,Y);return W}buildMappings(Y,W){if(!W||W[0]!=="program")return;let F=[],U=(Q)=>{if(!Array.isArray(Q))return;let J=Q[0];if(J==="program"||J==="block")for(let Z=1;Z<Q.length;Z++){let K=Q[Z];if(Array.isArray(K)&&K.loc)F.push(K.loc);U(K)}else for(let Z=1;Z<Q.length;Z++)U(Q[Z])};U(W);let A=Y.split(`
111
+ `),$=0;for(let Q=0;Q<A.length;Q++){let J=A[Q],Z=J.trim();if(!Z||Z==="}"||Z==="});")continue;if(Z.startsWith("let ")||Z.startsWith("var "))continue;if(Z.startsWith("const slice")||Z.startsWith("const modulo")||Z.startsWith("const toSearchable"))continue;if(Z.startsWith("const {")&&Z.includes("__"))continue;if(Z.startsWith("} else"))continue;if(Z.startsWith("//# source"))continue;if($<F.length){let K=J.length-Z.length;this.sourceMap.addMapping(Q,K,F[$].r,F[$].c),$++}}}collectProgramVariables(Y){if(!Array.isArray(Y))return;let[W,...F]=Y;if(W=S(W),Array.isArray(W)){Y.forEach((U)=>this.collectProgramVariables(U));return}if(W==="export"||W==="export-default"||W==="export-all"||W==="export-from")return;if(W==="state"||W==="computed"){let[U]=F,A=S(U)??U;if(!this.reactiveVars)this.reactiveVars=new Set;this.reactiveVars.add(A);return}if(W==="readonly")return;if(j.ASSIGNMENT_OPS.has(W)){let[U,A]=F;if(typeof U==="string"||U instanceof String){let $=S(U);if(!this.reactiveVars?.has($))this.programVars.add($)}else if(this.is(U,"array"))this.collectVarsFromArray(U,this.programVars);else if(this.is(U,"object"))this.collectVarsFromObject(U,this.programVars);this.collectProgramVariables(A);return}if(W==="def"||W==="->"||W==="=>")return;if(W==="if"){let[U,A,$]=F;if(this.collectProgramVariables(U),this.collectProgramVariables(A),$)this.collectProgramVariables($);return}if(W==="unless"){let[U,A]=F;this.collectProgramVariables(U),this.collectProgramVariables(A);return}if(W==="try"){if(this.collectProgramVariables(F[0]),F.length>=2&&Array.isArray(F[1])&&F[1].length===2&&F[1][0]!=="block"){let[U,A]=F[1];if(U&&this.is(U,"object"))U.slice(1).forEach(($)=>{if(Array.isArray($)&&$.length===2&&typeof $[1]==="string")this.programVars.add($[1])});else if(U&&this.is(U,"array"))U.slice(1).forEach(($)=>{if(typeof $==="string")this.programVars.add($)});this.collectProgramVariables(A)}if(F.length===3)this.collectProgramVariables(F[2]);else if(F.length===2&&(!Array.isArray(F[1])||F[1][0]==="block"))this.collectProgramVariables(F[1]);return}F.forEach((U)=>this.collectProgramVariables(U))}collectFunctionVariables(Y){let W=new Set,F=(U)=>{if(!Array.isArray(U))return;let[A,...$]=U;if(A=S(A),Array.isArray(A)){U.forEach((Q)=>F(Q));return}if(j.ASSIGNMENT_OPS.has(A)){let[Q,J]=$;if(typeof Q==="string")W.add(Q);else if(this.is(Q,"array"))this.collectVarsFromArray(Q,W);else if(this.is(Q,"object"))this.collectVarsFromObject(Q,W);F(J);return}if(A==="def"||A==="->"||A==="=>")return;if(A==="try"){if(F($[0]),$.length>=2&&Array.isArray($[1])&&$[1].length===2&&$[1][0]!=="block"){let[Q,J]=$[1];if(Q&&this.is(Q,"object"))Q.slice(1).forEach((Z)=>{if(Array.isArray(Z)&&Z.length===2&&typeof Z[1]==="string")W.add(Z[1])});else if(Q&&this.is(Q,"array"))Q.slice(1).forEach((Z)=>{if(typeof Z==="string")W.add(Z)});F(J)}if($.length===3)F($[2]);else if($.length===2&&(!Array.isArray($[1])||$[1][0]==="block"))F($[1]);return}$.forEach((Q)=>F(Q))};return F(Y),W}generate(Y,W="statement"){if(Y instanceof String){if(V(Y,"await")===!0)return`await ${S(Y)}()`;if(V(Y,"predicate"))return`(${S(Y)} != null)`;if(V(Y,"delimiter")==="///"&&V(Y,"heregex")){let J=S(Y),Z=J.match(/^\/(.*)\/([gimsuvy]*)$/s);if(Z){let[,K,X]=Z;return`/${this.processHeregex(K)}/${X}`}return J}let Q=V(Y,"quote");if(Q){let J=S(Y);if(Q==='"""'||Q==="'''"){let K=this.extractStringContent(Y);return K=K.replace(/`/g,"\\`").replace(/\${/g,"\\${"),`\`${K}\``}if(J[0]===Q)return J;let Z=J.slice(1,-1);return`${Q}${Z}${Q}`}Y=S(Y)}if(typeof Y==="string"){if(Y.startsWith('"')||Y.startsWith("'")||Y.startsWith("`")){if(this.options.debug)console.warn("[Rip] Unexpected quoted primitive:",Y);let Q=Y.slice(1,-1);if(Q.includes(`
112
+ `))return`\`${Q.replace(/`/g,"\\`").replace(/\$\{/g,"\\${")}\``;let J=Q.includes("'")&&!Q.includes('"')?'"':"'",Z=Q.replace(new RegExp(J,"g"),`\\${J}`);return`${J}${Z}${J}`}if(this.reactiveVars?.has(Y)&&!this.suppressReactiveUnwrap)return`${Y}.value`;return Y}if(typeof Y==="number")return String(Y);if(Y===null||Y===void 0)return"null";if(!Array.isArray(Y))throw Error(`Invalid s-expression: ${JSON.stringify(Y)}`);let[F,...U]=Y,A=V(F,"await");F=S(F);let $=j.GENERATORS[F];if($)return this[$](F,U,W,Y);if(typeof F==="string"&&!F.startsWith('"')&&!F.startsWith("'")){if(j.NUMBER_START_RE.test(F))return F;if(F==="super"&&this.currentMethodName&&this.currentMethodName!=="constructor"){let X=U.map((z)=>this.unwrap(this.generate(z,"value"))).join(", ");return`super.${this.currentMethodName}(${X})`}if(W==="statement"&&U.length===1){let X=this.findPostfixConditional(U[0]);if(X){let z=this.rebuildWithoutConditional(X),R=this.generate(F,"value"),D=this.generate(X.condition,"value"),G=this.generate(z,"value"),M=`${R}(${G})`;return X.type==="unless"?`if (!${D}) ${M}`:`if (${D}) ${M}`}}let Q=A===!0,J=this.generate(F,"value"),Z=U.map((X)=>this.unwrap(this.generate(X,"value"))).join(", "),K=`${J}(${Z})`;return Q?`await ${K}`:K}if(Array.isArray(F)&&typeof F[0]==="string"){if(["=","+=","-=","*=","/=","%=","**=","&&=","||=","??=","if","unless","return","throw"].includes(F[0]))return`(${Y.map((Z)=>this.generate(Z,"value")).join(", ")})`}if(Array.isArray(F)){if(F[0]==="."&&(F[2]==="new"||S(F[2])==="new")){let X=F[1],z=this.generate(X,"value"),R=U.map((G)=>this.unwrap(this.generate(G,"value"))).join(", ");return`new ${Array.isArray(X)?`(${z})`:z}(${R})`}if(W==="statement"&&U.length===1){let X=this.findPostfixConditional(U[0]);if(X){let z=this.rebuildWithoutConditional(X),R=this.generate(F,"value"),D=this.generate(X.condition,"value"),G=this.generate(z,"value"),M=`${R}(${G})`;return X.type==="unless"?`if (!${D}) ${M}`:`if (${D}) ${M}`}}let Q=!1,J;if(F[0]==="."&&V(F[2],"await")===!0){Q=!0;let[X,z]=F.slice(1),R=this.generate(X,"value");J=`${j.NUMBER_LITERAL_RE.test(R)||(this.is(X,"object")||this.is(X,"await")||this.is(X,"yield"))?`(${R})`:R}.${S(z)}`}else J=this.generate(F,"value");let Z=U.map((X)=>this.unwrap(this.generate(X,"value"))).join(", "),K=`${J}(${Z})`;return Q?`await ${K}`:K}throw Error(`Unknown s-expression type: ${F}`)}generateProgram(Y,W,F,U){let A="",$=[],Q=[],J=[];for(let D of W){if(!Array.isArray(D)){J.push(D);continue}let G=D[0];if(G==="import")$.push(D);else if(G==="export"||G==="export-default"||G==="export-all"||G==="export-from")Q.push(D);else J.push(D)}let Z=["def","class","if","unless","for-in","for-of","for-as","while","until","loop","switch","try"],K=J.map((D,G)=>{let M=J.length===1&&$.length===0&&Q.length===0,q=this.is(D,"object"),H=q&&D.length===2&&Array.isArray(D[1])&&Array.isArray(D[1][1])&&D[1][1][0]==="comprehension",I=this.is(D,"comprehension")||this.is(D,"object-comprehension")||this.is(D,"do-iife"),B=this.programVars.size===0,P=M&&q&&B&&!I&&!H,w=G===J.length-1&&I,O;if(P)O=`(${this.generate(D,"value")})`;else if(w)O=this.generate(D,"value");else O=this.generate(D,"statement");if(O&&!O.endsWith(";")){let N=Array.isArray(D)?D[0]:null;if(!Z.includes(N)||!O.endsWith("}"))return O+";"}return O}).join(`
92
113
  `),X=!1;if($.length>0)A+=$.map((D)=>this.addSemicolon(D,this.generate(D,"statement"))).join(`
93
114
  `),X=!0;if(this.programVars.size>0){let D=Array.from(this.programVars).sort().join(", ");if(X)A+=`
94
115
  `;A+=`let ${D};
95
- `,X=!0}let M=this.options.skipPreamble;if(!M){if(this.helpers.has("slice"))A+=`const slice = [].slice;
116
+ `,X=!0}let z=this.options.skipPreamble;if(!z){if(this.helpers.has("slice"))A+=`const slice = [].slice;
96
117
  `,X=!0;if(this.helpers.has("modulo"))A+=`const modulo = (n, d) => { n = +n; d = +d; return (n % d + d) % d; };
97
118
  `,X=!0;if(this.helpers.has("toSearchable"))A+=`const toSearchable = (v, allowNewlines) => {
98
119
  `,A+=` if (typeof v === "string") return !allowNewlines && /[\\n\\r]/.test(v) ? null : v;
@@ -110,68 +131,68 @@ if (typeof globalThis !== 'undefined') {
110
131
  `,A+=`};
111
132
  `,X=!0}let R="";if(Q.length>0)R=`
112
133
  `+Q.map((D)=>this.addSemicolon(D,this.generate(D,"statement"))).join(`
113
- `);if(this.usesReactivity&&!M){if(typeof globalThis<"u"&&globalThis.__rip)A+=`const { __state, __computed, __effect, __batch, __readonly, __setErrorHandler, __handleError, __catchErrors } = globalThis.__rip;
114
- `;else A+=this.getReactiveRuntime();X=!0}if(this.usesTemplates&&!M){if(typeof globalThis<"u"&&globalThis.__ripComponent)A+=`const { isSignal, __pushComponent, __popComponent, setContext, getContext, hasContext, __cx__ } = globalThis.__ripComponent;
115
- `;else A+=this.getComponentRuntime();X=!0}if(this.dataSection!==null&&this.dataSection!==void 0&&!M)A+=`var DATA;
134
+ `);if(this.usesReactivity&&!z){if(typeof globalThis<"u"&&globalThis.__rip)A+=`const { __state, __computed, __effect, __batch, __readonly, __setErrorHandler, __handleError, __catchErrors } = globalThis.__rip;
135
+ `;else A+=this.getReactiveRuntime();X=!0}if(this.usesTemplates&&!z){if(typeof globalThis<"u"&&globalThis.__ripComponent)A+=`const { __pushComponent, __popComponent, setContext, getContext, hasContext, __clsx, __Component } = globalThis.__ripComponent;
136
+ `;else A+=this.getComponentRuntime();X=!0}if(this.dataSection!==null&&this.dataSection!==void 0&&!z)A+=`var DATA;
116
137
  _setDataSection();
117
138
  `,X=!0;if(X&&A.length>0)A+=`
118
139
  `;if(A+=K,A+=R,this.dataSection!==null&&this.dataSection!==void 0)A+=`
119
140
 
120
141
  function _setDataSection() {
121
142
  DATA = ${JSON.stringify(this.dataSection)};
122
- }`;return A}generateBinaryOp(Y,W,F,U){if((Y==="+"||Y==="-")&&W.length===1)return`(${Y}${this.generate(W[0],"value")})`;let[A,$]=W;if(Y==="*"){let J=A?.valueOf?.()??A;if(typeof J==="string"&&/^["']/.test(J))return`${this.generate(A,"value")}.repeat(${this.generate($,"value")})`}let Q=new Set(["<",">","<=",">="]);if(Q.has(Y)&&Array.isArray(A)){let J=A[0]?.valueOf?.()??A[0];if(Q.has(J)){let Z=this.generate(A[1],"value"),K=this.generate(A[2],"value"),X=this.generate($,"value");return`((${Z} ${J} ${K}) && (${K} ${Y} ${X}))`}}if(Y==="!?"){let J=this.generate(A,"value"),Z=this.generate($,"value");return`(${J} !== undefined ? ${J} : ${Z})`}if(Y==="==")Y="===";if(Y==="!=")Y="!==";return`(${this.generate(A,"value")} ${Y} ${this.generate($,"value")})`}generateModulo(Y,W){let[F,U]=W;return this.helpers.add("modulo"),`modulo(${this.generate(F,"value")}, ${this.generate(U,"value")})`}generateFloorDiv(Y,W){let[F,U]=W;return`Math.floor(${this.generate(F,"value")} / ${this.generate(U,"value")})`}generateFloorDivAssign(Y,W){let[F,U]=W,A=this.generate(F,"value"),$=this.generate(U,"value");return`${A} = Math.floor(${A} / ${$})`}generateAssignment(Y,W,F,U){let[A,$]=W,Q=Y==="?="?"??=":Y,J=this.is($,"->")||this.is($,"=>")||this.is($,"def");if(A instanceof String&&f(A,"await")!==void 0&&!J){let q=f(A,"await")===!0?"!":"&";throw Error(`Cannot use ${q} sigil in variable declaration '${S(A)}'.`)}if(A instanceof String&&f(A,"await")===!0&&J)this.nextFunctionIsVoid=!0;let Z=this.is(A,"array",0),K=this.is(A,"object",0);if(Z||K){let q=this.generate($,"value");return K&&F==="statement"?`(${q})`:q}if(Array.isArray($)&&Q==="="&&$[0]==="control"){let[,q,H,G]=$,I=S(q),P=G[0]==="return",B=this.generate(A,"value");if(typeof A==="string")this.programVars.add(A);let _=this.generate(H,"value"),w=G.length>1?G[1]:null,O=P?w?`return ${this.generate(w,"value")}`:"return":w?`throw ${this.generate(w,"value")}`:"throw new Error()";if(F==="value"){if(I==="??")return`(() => { const __v = ${_}; if (__v == null) ${O}; return (${B} = __v); })()`;if(I==="||")return`(() => { const __v = ${_}; if (!__v) ${O}; return (${B} = __v); })()`;return`(() => { const __v = ${_}; if (__v) ${O}; return (${B} = __v); })()`}if(I==="??")return`if ((${B} = ${_}) == null) ${O}`;if(I==="||")return`if (!(${B} = ${_})) ${O}`;return`if ((${B} = ${_})) ${O}`}if(this.is(A,"array")){let q=A.slice(1).findIndex((H)=>this.is(H,"...")||H==="...");if(q!==-1&&q<A.length-2){let H=A.slice(1),G=H.slice(q+1),I=G.length;if(I>0){let P=this.generate($,"value"),_=H.slice(0,q).map((T)=>T===","?"":typeof T==="string"?T:this.generate(T,"value")).join(", "),w=G.map((T)=>T===","?"":typeof T==="string"?T:this.generate(T,"value")).join(", ");this.helpers.add("slice"),H.forEach((T)=>{if(T===","||T==="...")return;if(typeof T==="string")this.programVars.add(T);else if(this.is(T,"...")&&typeof T[1]==="string")this.programVars.add(T[1])});let O=H[q],N=this.is(O,"...")?O[1]:null,E=[];if(_)E.push(`[${_}] = ${P}`);if(N)E.push(`[...${N}] = ${P}.slice(${q}, -${I})`);return E.push(`[${w}] = slice.call(${P}, -${I})`),E.join(", ")}}}if(F==="statement"&&Y==="="&&Array.isArray($)&&($[0]==="||"||$[0]==="&&")&&$.length===3){let[q,H,G]=$;if((this.is(G,"unless")||this.is(G,"if"))&&G.length===3){let[I,P,B]=G,_=Array.isArray(B)&&B.length===1?B[0]:B,w=[q,H,_],O=this.generate(A,"value"),N=this.generate(P,"value"),E=this.generate(w,"value");return I==="unless"?`if (!${N}) ${O} = ${E}`:`if (${N}) ${O} = ${E}`}}if(F==="statement"&&Y==="="&&Array.isArray($)&&$.length===3){let[q,H,G]=$,I=Array.isArray(G)&&G.length===1&&(!Array.isArray(G[0])||G[0][0]!=="block");if((q==="unless"||q==="if")&&I){let P=Array.isArray(G)&&G.length===1?G[0]:G,B=this.generate(A,"value"),_=this.unwrapLogical(this.generate(H,"value")),w=this.generate(P,"value");if(q==="unless"){if(_.includes(" ")||/[<>=&|]/.test(_))_=`(${_})`;return`if (!${_}) ${B} = ${w}`}return`if (${_}) ${B} = ${w}`}}let X;if(A instanceof String&&f(A,"await")!==void 0)X=S(A);else if(typeof A==="string"&&this.reactiveVars?.has(A))X=`${A}.value`;else this.suppressReactiveUnwrap=!0,X=this.generate(A,"value"),this.suppressReactiveUnwrap=!1;let M=this.generate($,"value");if(!this.is($,"object"))M=this.unwrap(M);let D=F==="value",z=F==="statement"&&this.is(A,"object");if(D||z)return`(${X} ${Q} ${M})`;return`${X} ${Q} ${M}`}generatePropertyAccess(Y,W,F,U){let[A,$]=W;this.suppressReactiveUnwrap=!0;let Q=this.generate(A,"value");this.suppressReactiveUnwrap=!1;let Z=j.NUMBER_LITERAL_RE.test(Q)||(this.is(A,"object")||this.is(A,"await")||this.is(A,"yield"))?`(${Q})`:Q;if(f($,"await")===!0)return`await ${Z}.${S($)}()`;if(f($,"predicate"))return`(${Z}.${S($)} != null)`;return`${Z}.${S($)}`}generateOptionalProperty(Y,W){let[F,U]=W;return`${this.generate(F,"value")}?.${U}`}generateRegexIndex(Y,W){let[F,U,A]=W;this.helpers.add("toSearchable"),this.programVars.add("_");let $=this.generate(F,"value"),Q=this.generate(U,"value"),J=A!==null?this.generate(A,"value"):"0",Z=Q.includes("/m")?", true":"";return`(_ = toSearchable(${$}${Z}).match(${Q})) && _[${J}]`}generateIndexAccess(Y,W){let[F,U]=W;if(this.is(U,"..")||this.is(U,"...")){let A=U[0]==="..",$=this.generate(F,"value"),[Q,J]=U.slice(1);if(Q===null&&J===null)return`${$}.slice()`;if(Q===null){if(A&&this.is(J,"-",1)&&(S(J[1])??J[1])==1)return`${$}.slice(0)`;let X=this.generate(J,"value");return A?`${$}.slice(0, +${X} + 1 || 9e9)`:`${$}.slice(0, ${X})`}if(J===null)return`${$}.slice(${this.generate(Q,"value")})`;let Z=this.generate(Q,"value");if(A&&this.is(J,"-",1)&&(S(J[1])??J[1])==1)return`${$}.slice(${Z})`;let K=this.generate(J,"value");return A?`${$}.slice(${Z}, +${K} + 1 || 9e9)`:`${$}.slice(${Z}, ${K})`}if(this.is(U,"-",1)){let A=S(U[1])??U[1];if(typeof A==="number"||typeof A==="string"&&/^\d+$/.test(A))return`${this.generate(F,"value")}.at(-${A})`}return`${this.generate(F,"value")}[${this.unwrap(this.generate(U,"value"))}]`}generateOptIndex(Y,W){let[F,U]=W;if(this.is(U,"-",1)){let A=S(U[1])??U[1];if(typeof A==="number"||typeof A==="string"&&/^\d+$/.test(A))return`${this.generate(F,"value")}?.at(-${A})`}return`${this.generate(F,"value")}?.[${this.generate(U,"value")}]`}generateOptCall(Y,W){let[F,...U]=W;return`${this.generate(F,"value")}?.(${U.map((A)=>this.generate(A,"value")).join(", ")})`}generateDef(Y,W,F,U){let[A,$,Q]=W,J=f(A,"await")===!0,Z=S(A),K=this.generateParamList($),X=this.generateFunctionBody(Q,$,J),M=this.containsAwait(Q),R=this.containsYield(Q);return`${M?"async ":""}function${R?"*":""} ${Z}(${K}) ${X}`}generateThinArrow(Y,W,F,U){let[A,$]=W;if((!A||Array.isArray(A)&&A.length===0)&&this.containsIt($))A=["it"];let Q=this.nextFunctionIsVoid||!1;this.nextFunctionIsVoid=!1;let J=this.generateParamList(A),Z=this.generateFunctionBody($,A,Q),K=this.containsAwait($),X=this.containsYield($),M=`${K?"async ":""}function${X?"*":""}(${J}) ${Z}`;return F==="value"?`(${M})`:M}generateFatArrow(Y,W,F,U){let[A,$]=W;if((!A||Array.isArray(A)&&A.length===0)&&this.containsIt($))A=["it"];let Q=this.nextFunctionIsVoid||!1;this.nextFunctionIsVoid=!1;let J=this.generateParamList(A),K=A.length===1&&typeof A[0]==="string"&&!J.includes("=")&&!J.includes("...")&&!J.includes("[")&&!J.includes("{")?J:`(${J})`,M=this.containsAwait($)?"async ":"";if(!Q){if(this.is($,"block")&&$.length===2){let D=$[1];if(!Array.isArray(D)||D[0]!=="return")return`${M}${K} => ${this.generate(D,"value")}`}if(!Array.isArray($)||$[0]!=="block")return`${M}${K} => ${this.generate($,"value")}`}let R=this.generateFunctionBody($,A,Q);return`${M}${K} => ${R}`}generateReturn(Y,W,F,U){if(W.length===0)return"return";let[A]=W;if(this.sideEffectOnly)return"return";if(this.is(A,"unless")){let[,$,Q]=A,J=Array.isArray(Q)&&Q.length===1?Q[0]:Q;return`if (!${this.generate($,"value")}) return ${this.generate(J,"value")}`}if(this.is(A,"if")){let[,$,Q,...J]=A;if(J.length===0){let Z=Array.isArray(Q)&&Q.length===1?Q[0]:Q;return`if (${this.generate($,"value")}) return ${this.generate(Z,"value")}`}}if(this.is(A,"new")&&Array.isArray(A[1])&&A[1][0]==="unless"){let[,$]=A,[,Q,J]=$,Z=Array.isArray(J)&&J.length===1?J[0]:J;return`if (!${this.generate(Q,"value")}) return ${this.generate(["new",Z],"value")}`}return`return ${this.generate(A,"value")}`}generateState(Y,W){let[F,U]=W;this.usesReactivity=!0;let A=S(F)??F;if(!this.reactiveVars)this.reactiveVars=new Set;return this.reactiveVars.add(A),`const ${A} = __state(${this.generate(U,"value")})`}generateComputed(Y,W){let[F,U]=W;if(this.usesReactivity=!0,!this.reactiveVars)this.reactiveVars=new Set;let A=S(F)??F;return this.reactiveVars.add(A),`const ${A} = __computed(() => ${this.generate(U,"value")})`}generateReadonly(Y,W){let[F,U]=W;return`const ${S(F)??F} = ${this.generate(U,"value")}`}generateEffect(Y,W){let[F,U]=W;this.usesReactivity=!0;let A;if(this.is(U,"block"))A=`{
143
+ }`;return A}generateBinaryOp(Y,W,F,U){if((Y==="+"||Y==="-")&&W.length===1)return`(${Y}${this.generate(W[0],"value")})`;let[A,$]=W;if(Y==="*"){let J=A?.valueOf?.()??A;if(typeof J==="string"&&/^["']/.test(J))return`${this.generate(A,"value")}.repeat(${this.generate($,"value")})`}let Q=new Set(["<",">","<=",">="]);if(Q.has(Y)&&Array.isArray(A)){let J=A[0]?.valueOf?.()??A[0];if(Q.has(J)){let Z=this.generate(A[1],"value"),K=this.generate(A[2],"value"),X=this.generate($,"value");return`((${Z} ${J} ${K}) && (${K} ${Y} ${X}))`}}if(Y==="!?"){let J=this.generate(A,"value"),Z=this.generate($,"value");return`(${J} !== undefined ? ${J} : ${Z})`}if(Y==="==")Y="===";if(Y==="!=")Y="!==";return`(${this.generate(A,"value")} ${Y} ${this.generate($,"value")})`}generateModulo(Y,W){let[F,U]=W;return this.helpers.add("modulo"),`modulo(${this.generate(F,"value")}, ${this.generate(U,"value")})`}generateFloorDiv(Y,W){let[F,U]=W;return`Math.floor(${this.generate(F,"value")} / ${this.generate(U,"value")})`}generateFloorDivAssign(Y,W){let[F,U]=W,A=this.generate(F,"value"),$=this.generate(U,"value");return`${A} = Math.floor(${A} / ${$})`}generateAssignment(Y,W,F,U){let[A,$]=W,Q=Y==="?="?"??=":Y,J=this.is($,"->")||this.is($,"=>")||this.is($,"def");if(A instanceof String&&V(A,"await")!==void 0&&!J){let M=V(A,"await")===!0?"!":"&";throw Error(`Cannot use ${M} sigil in variable declaration '${S(A)}'.`)}if(A instanceof String&&V(A,"await")===!0&&J)this.nextFunctionIsVoid=!0;let Z=this.is(A,"array",0),K=this.is(A,"object",0);if(Z||K){let M=this.generate($,"value");return K&&F==="statement"?`(${M})`:M}if(Array.isArray($)&&Q==="="&&$[0]==="control"){let[,M,q,H]=$,I=S(M),B=H[0]==="return",P=this.generate(A,"value");if(typeof A==="string")this.programVars.add(A);let _=this.generate(q,"value"),w=H.length>1?H[1]:null,O=B?w?`return ${this.generate(w,"value")}`:"return":w?`throw ${this.generate(w,"value")}`:"throw new Error()";if(F==="value"){if(I==="??")return`(() => { const __v = ${_}; if (__v == null) ${O}; return (${P} = __v); })()`;if(I==="||")return`(() => { const __v = ${_}; if (!__v) ${O}; return (${P} = __v); })()`;return`(() => { const __v = ${_}; if (__v) ${O}; return (${P} = __v); })()`}if(I==="??")return`if ((${P} = ${_}) == null) ${O}`;if(I==="||")return`if (!(${P} = ${_})) ${O}`;return`if ((${P} = ${_})) ${O}`}if(this.is(A,"array")){let M=A.slice(1).findIndex((q)=>this.is(q,"...")||q==="...");if(M!==-1&&M<A.length-2){let q=A.slice(1),H=q.slice(M+1),I=H.length;if(I>0){let B=this.generate($,"value"),_=q.slice(0,M).map((T)=>T===","?"":typeof T==="string"?T:this.generate(T,"value")).join(", "),w=H.map((T)=>T===","?"":typeof T==="string"?T:this.generate(T,"value")).join(", ");this.helpers.add("slice"),q.forEach((T)=>{if(T===","||T==="...")return;if(typeof T==="string")this.programVars.add(T);else if(this.is(T,"...")&&typeof T[1]==="string")this.programVars.add(T[1])});let O=q[M],N=this.is(O,"...")?O[1]:null,E=[];if(_)E.push(`[${_}] = ${B}`);if(N)E.push(`[...${N}] = ${B}.slice(${M}, -${I})`);return E.push(`[${w}] = slice.call(${B}, -${I})`),E.join(", ")}}}if(F==="statement"&&Y==="="&&Array.isArray($)&&($[0]==="||"||$[0]==="&&")&&$.length===3){let[M,q,H]=$;if((this.is(H,"unless")||this.is(H,"if"))&&H.length===3){let[I,B,P]=H,_=Array.isArray(P)&&P.length===1?P[0]:P,w=[M,q,_],O=this.generate(A,"value"),N=this.generate(B,"value"),E=this.generate(w,"value");return I==="unless"?`if (!${N}) ${O} = ${E}`:`if (${N}) ${O} = ${E}`}}if(F==="statement"&&Y==="="&&Array.isArray($)&&$.length===3){let[M,q,H]=$,I=Array.isArray(H)&&H.length===1&&(!Array.isArray(H[0])||H[0][0]!=="block");if((M==="unless"||M==="if")&&I){let B=Array.isArray(H)&&H.length===1?H[0]:H,P=this.generate(A,"value"),_=this.unwrapLogical(this.generate(q,"value")),w=this.generate(B,"value");if(M==="unless"){if(_.includes(" ")||/[<>=&|]/.test(_))_=`(${_})`;return`if (!${_}) ${P} = ${w}`}return`if (${_}) ${P} = ${w}`}}let X;if(A instanceof String&&V(A,"await")!==void 0)X=S(A);else if(typeof A==="string"&&this.reactiveVars?.has(A))X=`${A}.value`;else this.suppressReactiveUnwrap=!0,X=this.generate(A,"value"),this.suppressReactiveUnwrap=!1;let z=this.generate($,"value");if(!this.is($,"object"))z=this.unwrap(z);let D=F==="value",G=F==="statement"&&this.is(A,"object");if(D||G)return`(${X} ${Q} ${z})`;return`${X} ${Q} ${z}`}generatePropertyAccess(Y,W,F,U){let[A,$]=W;this.suppressReactiveUnwrap=!0;let Q=this.generate(A,"value");this.suppressReactiveUnwrap=!1;let Z=j.NUMBER_LITERAL_RE.test(Q)||(this.is(A,"object")||this.is(A,"await")||this.is(A,"yield"))?`(${Q})`:Q;if(V($,"await")===!0)return`await ${Z}.${S($)}()`;if(V($,"predicate"))return`(${Z}.${S($)} != null)`;return`${Z}.${S($)}`}generateOptionalProperty(Y,W){let[F,U]=W;return`${this.generate(F,"value")}?.${U}`}generateRegexIndex(Y,W){let[F,U,A]=W;this.helpers.add("toSearchable"),this.programVars.add("_");let $=this.generate(F,"value"),Q=this.generate(U,"value"),J=A!==null?this.generate(A,"value"):"0",Z=Q.includes("/m")?", true":"";return`(_ = toSearchable(${$}${Z}).match(${Q})) && _[${J}]`}generateIndexAccess(Y,W){let[F,U]=W;if(this.is(U,"..")||this.is(U,"...")){let A=U[0]==="..",$=this.generate(F,"value"),[Q,J]=U.slice(1);if(Q===null&&J===null)return`${$}.slice()`;if(Q===null){if(A&&this.is(J,"-",1)&&(S(J[1])??J[1])==1)return`${$}.slice(0)`;let X=this.generate(J,"value");return A?`${$}.slice(0, +${X} + 1 || 9e9)`:`${$}.slice(0, ${X})`}if(J===null)return`${$}.slice(${this.generate(Q,"value")})`;let Z=this.generate(Q,"value");if(A&&this.is(J,"-",1)&&(S(J[1])??J[1])==1)return`${$}.slice(${Z})`;let K=this.generate(J,"value");return A?`${$}.slice(${Z}, +${K} + 1 || 9e9)`:`${$}.slice(${Z}, ${K})`}if(this.is(U,"-",1)){let A=S(U[1])??U[1];if(typeof A==="number"||typeof A==="string"&&/^\d+$/.test(A))return`${this.generate(F,"value")}.at(-${A})`}return`${this.generate(F,"value")}[${this.unwrap(this.generate(U,"value"))}]`}generateOptIndex(Y,W){let[F,U]=W;if(this.is(U,"-",1)){let A=S(U[1])??U[1];if(typeof A==="number"||typeof A==="string"&&/^\d+$/.test(A))return`${this.generate(F,"value")}?.at(-${A})`}return`${this.generate(F,"value")}?.[${this.generate(U,"value")}]`}generateOptCall(Y,W){let[F,...U]=W;return`${this.generate(F,"value")}?.(${U.map((A)=>this.generate(A,"value")).join(", ")})`}generateDef(Y,W,F,U){let[A,$,Q]=W,J=V(A,"await")===!0,Z=S(A),K=this.generateParamList($),X=this.generateFunctionBody(Q,$,J),z=this.containsAwait(Q),R=this.containsYield(Q);return`${z?"async ":""}function${R?"*":""} ${Z}(${K}) ${X}`}generateThinArrow(Y,W,F,U){let[A,$]=W;if((!A||Array.isArray(A)&&A.length===0)&&this.containsIt($))A=["it"];let Q=this.nextFunctionIsVoid||!1;this.nextFunctionIsVoid=!1;let J=this.generateParamList(A),Z=this.generateFunctionBody($,A,Q),K=this.containsAwait($),X=this.containsYield($),z=`${K?"async ":""}function${X?"*":""}(${J}) ${Z}`;return F==="value"?`(${z})`:z}generateFatArrow(Y,W,F,U){let[A,$]=W;if((!A||Array.isArray(A)&&A.length===0)&&this.containsIt($))A=["it"];let Q=this.nextFunctionIsVoid||!1;this.nextFunctionIsVoid=!1;let J=this.generateParamList(A),K=A.length===1&&typeof A[0]==="string"&&!J.includes("=")&&!J.includes("...")&&!J.includes("[")&&!J.includes("{")?J:`(${J})`,z=this.containsAwait($)?"async ":"";if(!Q){if(this.is($,"block")&&$.length===2){let D=$[1];if(!Array.isArray(D)||D[0]!=="return")return`${z}${K} => ${this.generate(D,"value")}`}if(!Array.isArray($)||$[0]!=="block")return`${z}${K} => ${this.generate($,"value")}`}let R=this.generateFunctionBody($,A,Q);return`${z}${K} => ${R}`}generateReturn(Y,W,F,U){if(W.length===0)return"return";let[A]=W;if(this.sideEffectOnly)return"return";if(this.is(A,"unless")){let[,$,Q]=A,J=Array.isArray(Q)&&Q.length===1?Q[0]:Q;return`if (!${this.generate($,"value")}) return ${this.generate(J,"value")}`}if(this.is(A,"if")){let[,$,Q,...J]=A;if(J.length===0){let Z=Array.isArray(Q)&&Q.length===1?Q[0]:Q;return`if (${this.generate($,"value")}) return ${this.generate(Z,"value")}`}}if(this.is(A,"new")&&Array.isArray(A[1])&&A[1][0]==="unless"){let[,$]=A,[,Q,J]=$,Z=Array.isArray(J)&&J.length===1?J[0]:J;return`if (!${this.generate(Q,"value")}) return ${this.generate(["new",Z],"value")}`}return`return ${this.generate(A,"value")}`}generateState(Y,W){let[F,U]=W;this.usesReactivity=!0;let A=S(F)??F;if(!this.reactiveVars)this.reactiveVars=new Set;return this.reactiveVars.add(A),`const ${A} = __state(${this.generate(U,"value")})`}generateComputed(Y,W){let[F,U]=W;if(this.usesReactivity=!0,!this.reactiveVars)this.reactiveVars=new Set;let A=S(F)??F;return this.reactiveVars.add(A),`const ${A} = __computed(() => ${this.generate(U,"value")})`}generateReadonly(Y,W){let[F,U]=W;return`const ${S(F)??F} = ${this.generate(U,"value")}`}generateEffect(Y,W){let[F,U]=W;this.usesReactivity=!0;let A;if(this.is(U,"block"))A=`{
123
144
  ${this.withIndent(()=>this.formatStatements(U.slice(1))).join(`
124
145
  `)}
125
- ${this.indent()}}`;else if(this.is(U,"->")||this.is(U,"=>")){let Q=this.generate(U,"value");if(F)return`const ${S(F)??this.generate(F,"value")} = __effect(${Q})`;return`__effect(${Q})`}else A=`{ ${this.generate(U,"value")}; }`;let $=`__effect(() => ${A})`;if(F)return`const ${S(F)??this.generate(F,"value")} = ${$}`;return $}generateBreak(){return"break"}generateBreakIf(Y,W){return`if (${this.generate(W[0],"value")}) break`}generateContinue(){return"continue"}generateContinueIf(Y,W){return`if (${this.generate(W[0],"value")}) continue`}generateExistential(Y,W){return`(${this.generate(W[0],"value")} != null)`}generateTernary(Y,W,F){let[U,A,$]=W;if((A?.[0]?.valueOf?.()??A?.[0])==="="&&Array.isArray(A)){let J=this.generate(A[1],"value"),Z=this.generate(A[2],"value"),K=this.generate($,"value");return`${J} = (${this.unwrap(this.generate(U,"value"))} ? ${Z} : ${K})`}return`(${this.unwrap(this.generate(U,"value"))} ? ${this.generate(A,"value")} : ${this.generate($,"value")})`}generatePipe(Y,W){let[F,U]=W,A=this.generate(F,"value");if(Array.isArray(U)&&U.length>1){let $=U[0];if(Array.isArray($)||typeof $==="string"&&/^[a-zA-Z_$]/.test($)){let J=this.generate($,"value"),Z=U.slice(1).map((K)=>this.generate(K,"value"));return`${J}(${A}, ${Z.join(", ")})`}}return`${this.generate(U,"value")}(${A})`}generateLoop(Y,W){return`while (true) ${this.generateLoopBody(W[0])}`}generateLoopN(Y,W){let[F,U]=W;return`for (let it = 0; it < ${this.generate(F,"value")}; it++) ${this.generateLoopBody(U)}`}generateAwait(Y,W){return`await ${this.generate(W[0],"value")}`}generateYield(Y,W){return W.length===0?"yield":`yield ${this.generate(W[0],"value")}`}generateYieldFrom(Y,W){return`yield* ${this.generate(W[0],"value")}`}generateIf(Y,W,F,U){if(Y==="unless"){let[J,Z]=W;if(Array.isArray(Z)&&Z.length===1&&(!Array.isArray(Z[0])||Z[0][0]!=="block"))Z=Z[0];if(F==="value")return`(!${this.generate(J,"value")} ? ${this.extractExpression(Z)} : undefined)`;let K=this.unwrap(this.generate(J,"value"));if(/[ <>=&|]/.test(K))K=`(${K})`;return`if (!${K}) `+this.generate(Z,"statement")}let[A,$,...Q]=W;return F==="value"?this.generateIfAsExpression(A,$,Q):this.generateIfAsStatement(A,$,Q)}generateForIn(Y,W,F,U){let[A,$,Q,J,Z]=W;if(F==="value"&&this.comprehensionDepth===0){let H=["for-in",A,$,Q];return this.generate(["comprehension",Z,[H],J?[J]:[]],F)}let K=Array.isArray(A)?A:[A],X=K.length===0,[M,R]=X?["_i",null]:K,D=this.is(M,"array")||this.is(M,"object")?this.generateDestructuringPattern(M):M;if(Q&&Q!==null){let H=this.generate($,"value"),G=R||"_i",I=this.generate(Q,"value"),P=this.is(Q,"-",1),B=P&&(Q[1]==="1"||Q[1]===1||S(Q[1])==="1"),_=!P&&(Q==="1"||Q===1||S(Q)==="1"),w;if(B)w=`for (let ${G} = ${H}.length - 1; ${G} >= 0; ${G}--) `;else if(_)w=`for (let ${G} = 0; ${G} < ${H}.length; ${G}++) `;else if(P)w=`for (let ${G} = ${H}.length - 1; ${G} >= 0; ${G} += ${I}) `;else w=`for (let ${G} = 0; ${G} < ${H}.length; ${G} += ${I}) `;if(this.is(Z,"block")){let O=Z.slice(1);this.indentLevel++;let N=[];if(!X)N.push(`const ${D} = ${H}[${G}];`);if(J)N.push(`if (${this.generate(J,"value")}) {`),this.indentLevel++,N.push(...this.formatStatements(O)),this.indentLevel--,N.push(this.indent()+"}");else N.push(...O.map((E)=>this.addSemicolon(E,this.generate(E,"statement"))));return this.indentLevel--,w+`{
146
+ ${this.indent()}}`;else if(this.is(U,"->")||this.is(U,"=>")){let Q=this.generate(U,"value");if(F)return`const ${S(F)??this.generate(F,"value")} = __effect(${Q})`;return`__effect(${Q})`}else A=`{ ${this.generate(U,"value")}; }`;let $=`__effect(() => ${A})`;if(F)return`const ${S(F)??this.generate(F,"value")} = ${$}`;return $}generateBreak(){return"break"}generateBreakIf(Y,W){return`if (${this.generate(W[0],"value")}) break`}generateContinue(){return"continue"}generateContinueIf(Y,W){return`if (${this.generate(W[0],"value")}) continue`}generateExistential(Y,W){return`(${this.generate(W[0],"value")} != null)`}generateTernary(Y,W,F){let[U,A,$]=W;if((A?.[0]?.valueOf?.()??A?.[0])==="="&&Array.isArray(A)){let J=this.generate(A[1],"value"),Z=this.generate(A[2],"value"),K=this.generate($,"value");return`${J} = (${this.unwrap(this.generate(U,"value"))} ? ${Z} : ${K})`}return`(${this.unwrap(this.generate(U,"value"))} ? ${this.generate(A,"value")} : ${this.generate($,"value")})`}generatePipe(Y,W){let[F,U]=W,A=this.generate(F,"value");if(Array.isArray(U)&&U.length>1){let $=U[0];if(Array.isArray($)||typeof $==="string"&&/^[a-zA-Z_$]/.test($)){let J=this.generate($,"value"),Z=U.slice(1).map((K)=>this.generate(K,"value"));return`${J}(${A}, ${Z.join(", ")})`}}return`${this.generate(U,"value")}(${A})`}generateLoop(Y,W){return`while (true) ${this.generateLoopBody(W[0])}`}generateLoopN(Y,W){let[F,U]=W;return`for (let it = 0; it < ${this.generate(F,"value")}; it++) ${this.generateLoopBody(U)}`}generateAwait(Y,W){return`await ${this.generate(W[0],"value")}`}generateYield(Y,W){return W.length===0?"yield":`yield ${this.generate(W[0],"value")}`}generateYieldFrom(Y,W){return`yield* ${this.generate(W[0],"value")}`}generateIf(Y,W,F,U){if(Y==="unless"){let[J,Z]=W;if(Array.isArray(Z)&&Z.length===1&&(!Array.isArray(Z[0])||Z[0][0]!=="block"))Z=Z[0];if(F==="value")return`(!${this.generate(J,"value")} ? ${this.extractExpression(Z)} : undefined)`;let K=this.unwrap(this.generate(J,"value"));if(/[ <>=&|]/.test(K))K=`(${K})`;return`if (!${K}) `+this.generate(Z,"statement")}let[A,$,...Q]=W;return F==="value"?this.generateIfAsExpression(A,$,Q):this.generateIfAsStatement(A,$,Q)}generateForIn(Y,W,F,U){let[A,$,Q,J,Z]=W;if(F==="value"&&this.comprehensionDepth===0){let q=["for-in",A,$,Q];return this.generate(["comprehension",Z,[q],J?[J]:[]],F)}let K=Array.isArray(A)?A:[A],X=K.length===0,[z,R]=X?["_i",null]:K,D=this.is(z,"array")||this.is(z,"object")?this.generateDestructuringPattern(z):z;if(Q&&Q!==null){let q=this.generate($,"value"),H=R||"_i",I=this.generate(Q,"value"),B=this.is(Q,"-",1),P=B&&(Q[1]==="1"||Q[1]===1||S(Q[1])==="1"),_=!B&&(Q==="1"||Q===1||S(Q)==="1"),w;if(P)w=`for (let ${H} = ${q}.length - 1; ${H} >= 0; ${H}--) `;else if(_)w=`for (let ${H} = 0; ${H} < ${q}.length; ${H}++) `;else if(B)w=`for (let ${H} = ${q}.length - 1; ${H} >= 0; ${H} += ${I}) `;else w=`for (let ${H} = 0; ${H} < ${q}.length; ${H} += ${I}) `;if(this.is(Z,"block")){let O=Z.slice(1);this.indentLevel++;let N=[];if(!X)N.push(`const ${D} = ${q}[${H}];`);if(J)N.push(`if (${this.generate(J,"value")}) {`),this.indentLevel++,N.push(...this.formatStatements(O)),this.indentLevel--,N.push(this.indent()+"}");else N.push(...O.map((E)=>this.addSemicolon(E,this.generate(E,"statement"))));return this.indentLevel--,w+`{
126
147
  ${N.map((E)=>this.indent()+E).join(`
127
148
  `)}
128
- ${this.indent()}}`}if(X)return J?w+`{ if (${this.generate(J,"value")}) ${this.generate(Z,"statement")}; }`:w+`{ ${this.generate(Z,"statement")}; }`;return J?w+`{ const ${D} = ${H}[${G}]; if (${this.generate(J,"value")}) ${this.generate(Z,"statement")}; }`:w+`{ const ${D} = ${H}[${G}]; ${this.generate(Z,"statement")}; }`}if(R){let H=this.generate($,"value"),G=`for (let ${R} = 0; ${R} < ${H}.length; ${R}++) `;if(this.is(Z,"block")){if(G+=`{
129
- `,this.indentLevel++,G+=this.indent()+`const ${D} = ${H}[${R}];
130
- `,J)G+=this.indent()+`if (${this.unwrap(this.generate(J,"value"))}) {
131
- `,this.indentLevel++,G+=this.formatStatements(Z.slice(1)).join(`
149
+ ${this.indent()}}`}if(X)return J?w+`{ if (${this.generate(J,"value")}) ${this.generate(Z,"statement")}; }`:w+`{ ${this.generate(Z,"statement")}; }`;return J?w+`{ const ${D} = ${q}[${H}]; if (${this.generate(J,"value")}) ${this.generate(Z,"statement")}; }`:w+`{ const ${D} = ${q}[${H}]; ${this.generate(Z,"statement")}; }`}if(R){let q=this.generate($,"value"),H=`for (let ${R} = 0; ${R} < ${q}.length; ${R}++) `;if(this.is(Z,"block")){if(H+=`{
150
+ `,this.indentLevel++,H+=this.indent()+`const ${D} = ${q}[${R}];
151
+ `,J)H+=this.indent()+`if (${this.unwrap(this.generate(J,"value"))}) {
152
+ `,this.indentLevel++,H+=this.formatStatements(Z.slice(1)).join(`
132
153
  `)+`
133
- `,this.indentLevel--,G+=this.indent()+`}
134
- `;else G+=this.formatStatements(Z.slice(1)).join(`
154
+ `,this.indentLevel--,H+=this.indent()+`}
155
+ `;else H+=this.formatStatements(Z.slice(1)).join(`
135
156
  `)+`
136
- `;this.indentLevel--,G+=this.indent()+"}"}else G+=J?`{ const ${D} = ${H}[${R}]; if (${this.unwrap(this.generate(J,"value"))}) ${this.generate(Z,"statement")}; }`:`{ const ${D} = ${H}[${R}]; ${this.generate(Z,"statement")}; }`;return G}let z=Array.isArray($)&&$[0];if(z instanceof String)z=S(z);if(z===".."||z==="..."){let H=z==="...",[G,I]=$.slice(1),P=(B)=>typeof B==="number"||typeof B==="string"&&!B.includes("(")||B instanceof String&&!S(B).includes("(")||this.is(B,".");if(P(G)&&P(I)){let B=this.generate(G,"value"),_=this.generate(I,"value"),w=H?"<":"<=",O=Q?`${D} += ${this.generate(Q,"value")}`:`${D}++`,N=`for (let ${D} = ${B}; ${D} ${w} ${_}; ${O}) `;return N+=J?this.generateLoopBodyWithGuard(Z,J):this.generateLoopBody(Z),N}}let q=`for (const ${D} of ${this.generate($,"value")}) `;return q+=J?this.generateLoopBodyWithGuard(Z,J):this.generateLoopBody(Z),q}generateForOf(Y,W,F,U){let[A,$,Q,J,Z]=W,[K,X]=Array.isArray(A)?A:[A],M=this.generate($,"value"),R=`for (const ${K} in ${M}) `;if(Q&&!X&&!J){if(this.is(Z,"block")){this.indentLevel++;let D=[`if (!Object.hasOwn(${M}, ${K})) continue;`,...Z.slice(1).map((z)=>this.addSemicolon(z,this.generate(z,"statement")))];return this.indentLevel--,R+`{
137
- ${D.map((z)=>this.indent()+z).join(`
157
+ `;this.indentLevel--,H+=this.indent()+"}"}else H+=J?`{ const ${D} = ${q}[${R}]; if (${this.unwrap(this.generate(J,"value"))}) ${this.generate(Z,"statement")}; }`:`{ const ${D} = ${q}[${R}]; ${this.generate(Z,"statement")}; }`;return H}let G=Array.isArray($)&&$[0];if(G instanceof String)G=S(G);if(G===".."||G==="..."){let q=G==="...",[H,I]=$.slice(1),B=(P)=>typeof P==="number"||typeof P==="string"&&!P.includes("(")||P instanceof String&&!S(P).includes("(")||this.is(P,".");if(B(H)&&B(I)){let P=this.generate(H,"value"),_=this.generate(I,"value"),w=q?"<":"<=",O=Q?`${D} += ${this.generate(Q,"value")}`:`${D}++`,N=`for (let ${D} = ${P}; ${D} ${w} ${_}; ${O}) `;return N+=J?this.generateLoopBodyWithGuard(Z,J):this.generateLoopBody(Z),N}}let M=`for (const ${D} of ${this.generate($,"value")}) `;return M+=J?this.generateLoopBodyWithGuard(Z,J):this.generateLoopBody(Z),M}generateForOf(Y,W,F,U){let[A,$,Q,J,Z]=W,[K,X]=Array.isArray(A)?A:[A],z=this.generate($,"value"),R=`for (const ${K} in ${z}) `;if(Q&&!X&&!J){if(this.is(Z,"block")){this.indentLevel++;let D=[`if (!Object.hasOwn(${z}, ${K})) continue;`,...Z.slice(1).map((G)=>this.addSemicolon(G,this.generate(G,"statement")))];return this.indentLevel--,R+`{
158
+ ${D.map((G)=>this.indent()+G).join(`
138
159
  `)}
139
- ${this.indent()}}`}return R+`{ if (!Object.hasOwn(${M}, ${K})) continue; ${this.generate(Z,"statement")}; }`}if(X){if(this.is(Z,"block")){let z=Z.slice(1);this.indentLevel++;let q=[];if(Q)q.push(`if (!Object.hasOwn(${M}, ${K})) continue;`);if(q.push(`const ${X} = ${M}[${K}];`),J)q.push(`if (${this.generate(J,"value")}) {`),this.indentLevel++,q.push(...z.map((H)=>this.addSemicolon(H,this.generate(H,"statement")))),this.indentLevel--,q.push(this.indent()+"}");else q.push(...z.map((H)=>this.addSemicolon(H,this.generate(H,"statement"))));return this.indentLevel--,R+`{
140
- ${q.map((H)=>this.indent()+H).join(`
160
+ ${this.indent()}}`}return R+`{ if (!Object.hasOwn(${z}, ${K})) continue; ${this.generate(Z,"statement")}; }`}if(X){if(this.is(Z,"block")){let G=Z.slice(1);this.indentLevel++;let M=[];if(Q)M.push(`if (!Object.hasOwn(${z}, ${K})) continue;`);if(M.push(`const ${X} = ${z}[${K}];`),J)M.push(`if (${this.generate(J,"value")}) {`),this.indentLevel++,M.push(...G.map((q)=>this.addSemicolon(q,this.generate(q,"statement")))),this.indentLevel--,M.push(this.indent()+"}");else M.push(...G.map((q)=>this.addSemicolon(q,this.generate(q,"statement"))));return this.indentLevel--,R+`{
161
+ ${M.map((q)=>this.indent()+q).join(`
141
162
  `)}
142
- ${this.indent()}}`}let D="";if(Q)D+=`if (!Object.hasOwn(${M}, ${K})) continue; `;if(D+=`const ${X} = ${M}[${K}]; `,J)D+=`if (${this.generate(J,"value")}) `;return D+=`${this.generate(Z,"statement")};`,R+`{ ${D} }`}return R+=J?this.generateLoopBodyWithGuard(Z,J):this.generateLoopBody(Z),R}generateForAs(Y,W,F,U){let A=Array.isArray(W[0])?W[0]:[W[0]],[$]=A,Q=W[1],J=W[2],Z=W[3],K=W[4],X=!1,M=[];if(this.is($,"array")){let H=$.slice(1),G=H.findIndex((I)=>this.is(I,"...")||I==="...");if(G!==-1&&G<H.length-1){X=!0;let I=H.slice(G+1),P=I.length,B=H.slice(0,G),_=H[G],w=this.is(_,"...")?_[1]:"_rest",O=B.map((T)=>T===","?"":typeof T==="string"?T:this.generate(T,"value")).join(", "),N=O?`${O}, ...${w}`:`...${w}`,E=I.map((T)=>T===","?"":typeof T==="string"?T:this.generate(T,"value")).join(", ");M.push(`[${N}] = _item`),M.push(`[${E}] = ${w}.splice(-${P})`),this.helpers.add("slice"),H.forEach((T)=>{if(T===","||T==="...")return;if(typeof T==="string")this.programVars.add(T);else if(this.is(T,"...")&&typeof T[1]==="string")this.programVars.add(T[1])})}}let R=this.generate(Q,"value"),D=J?"await ":"",z;if(X)z="_item";else if(this.is($,"array")||this.is($,"object"))z=this.generateDestructuringPattern($);else z=$;let q=`for ${D}(const ${z} of ${R}) `;if(X&&M.length>0){let H=this.unwrapBlock(K),G=this.withIndent(()=>[...M.map((I)=>this.indent()+I+";"),...this.formatStatements(H)]);q+=`{
143
- ${G.join(`
163
+ ${this.indent()}}`}let D="";if(Q)D+=`if (!Object.hasOwn(${z}, ${K})) continue; `;if(D+=`const ${X} = ${z}[${K}]; `,J)D+=`if (${this.generate(J,"value")}) `;return D+=`${this.generate(Z,"statement")};`,R+`{ ${D} }`}return R+=J?this.generateLoopBodyWithGuard(Z,J):this.generateLoopBody(Z),R}generateForAs(Y,W,F,U){let A=Array.isArray(W[0])?W[0]:[W[0]],[$]=A,Q=W[1],J=W[2],Z=W[3],K=W[4],X=!1,z=[];if(this.is($,"array")){let q=$.slice(1),H=q.findIndex((I)=>this.is(I,"...")||I==="...");if(H!==-1&&H<q.length-1){X=!0;let I=q.slice(H+1),B=I.length,P=q.slice(0,H),_=q[H],w=this.is(_,"...")?_[1]:"_rest",O=P.map((T)=>T===","?"":typeof T==="string"?T:this.generate(T,"value")).join(", "),N=O?`${O}, ...${w}`:`...${w}`,E=I.map((T)=>T===","?"":typeof T==="string"?T:this.generate(T,"value")).join(", ");z.push(`[${N}] = _item`),z.push(`[${E}] = ${w}.splice(-${B})`),this.helpers.add("slice"),q.forEach((T)=>{if(T===","||T==="...")return;if(typeof T==="string")this.programVars.add(T);else if(this.is(T,"...")&&typeof T[1]==="string")this.programVars.add(T[1])})}}let R=this.generate(Q,"value"),D=J?"await ":"",G;if(X)G="_item";else if(this.is($,"array")||this.is($,"object"))G=this.generateDestructuringPattern($);else G=$;let M=`for ${D}(const ${G} of ${R}) `;if(X&&z.length>0){let q=this.unwrapBlock(K),H=this.withIndent(()=>[...z.map((I)=>this.indent()+I+";"),...this.formatStatements(q)]);M+=`{
164
+ ${H.join(`
144
165
  `)}
145
- ${this.indent()}}`}else q+=Z?this.generateLoopBodyWithGuard(K,Z):this.generateLoopBody(K);return q}generateWhile(Y,W){let F=W[0],U=W.length===3?W[1]:null,A=W[W.length-1];return`while (${this.unwrap(this.generate(F,"value"))}) `+(U?this.generateLoopBodyWithGuard(A,U):this.generateLoopBody(A))}generateUntil(Y,W){let[F,U]=W;return`while (!(${this.unwrap(this.generate(F,"value"))})) `+this.generateLoopBody(U)}generateRange(Y,W){if(Y==="..."){if(W.length===1)return`...${this.generate(W[0],"value")}`;let[Q,J]=W,Z=this.generate(Q,"value"),K=this.generate(J,"value");return`((s, e) => Array.from({length: Math.max(0, Math.abs(e - s))}, (_, i) => s + (i * (s <= e ? 1 : -1))))(${Z}, ${K})`}let[F,U]=W,A=this.generate(F,"value"),$=this.generate(U,"value");return`((s, e) => Array.from({length: Math.abs(e - s) + 1}, (_, i) => s + (i * (s <= e ? 1 : -1))))(${A}, ${$})`}generateNot(Y,W){let[F]=W;if(typeof F==="string"||F instanceof String)return`!${this.generate(F,"value")}`;if(Array.isArray(F)){if([".","?.","[]","optindex","optcall"].includes(F[0]))return`!${this.generate(F,"value")}`}let U=this.generate(F,"value");return U.startsWith("(")?`!${U}`:`(!${U})`}generateBitwiseNot(Y,W){return`(~${this.generate(W[0],"value")})`}generateIncDec(Y,W){let[F,U]=W,A=this.generate(F,"value");return U?`(${A}${Y})`:`(${Y}${A})`}generateTypeof(Y,W){return`typeof ${this.generate(W[0],"value")}`}generateDelete(Y,W){return`(delete ${this.generate(W[0],"value")})`}generateInstanceof(Y,W,F,U){let[A,$]=W,Q=f(U[0],"invert"),J=`(${this.generate(A,"value")} instanceof ${this.generate($,"value")})`;return Q?`(!${J})`:J}generateIn(Y,W,F,U){let[A,$]=W,Q=this.generate(A,"value"),J=f(U[0],"invert");if(this.is($,"object")){let X=`(${Q} in ${this.generate($,"value")})`;return J?`(!${X})`:X}let Z=this.generate($,"value"),K=`(Array.isArray(${Z}) || typeof ${Z} === 'string' ? ${Z}.includes(${Q}) : (${Q} in ${Z}))`;return J?`(!${K})`:K}generateOf(Y,W,F,U){let[A,$]=W,Q=this.generate(A,"value"),J=this.generate($,"value"),Z=f(U[0],"invert"),K=`(${Q} in ${J})`;return Z?`(!${K})`:K}generateRegexMatch(Y,W){let[F,U]=W;this.helpers.add("toSearchable"),this.programVars.add("_");let A=this.generate(U,"value"),$=A.includes("/m")?", true":"";return`(_ = toSearchable(${this.generate(F,"value")}${$}).match(${A}))`}generateNew(Y,W){let[F]=W;if(this.is(F,".")||this.is(F,"?.")){let[U,A,$]=F;if(Array.isArray(A)&&!A[0].startsWith)return`(${this.generate(["new",A],"value")}).${$}`;return`new ${this.generate(A,"value")}.${$}`}if(Array.isArray(F)){let[U,...A]=F;return`new ${this.generate(U,"value")}(${A.map(($)=>this.unwrap(this.generate($,"value"))).join(", ")})`}return`new ${this.generate(F,"value")}()`}generateLogicalAnd(Y,W,F,U){let A=this.flattenBinaryChain(U).slice(1);if(A.length===0)return"true";if(A.length===1)return this.generate(A[0],"value");return`(${A.map(($)=>this.generate($,"value")).join(" && ")})`}generateLogicalOr(Y,W,F,U){let A=this.flattenBinaryChain(U).slice(1);if(A.length===0)return"true";if(A.length===1)return this.generate(A[0],"value");return`(${A.map(($)=>this.generate($,"value")).join(" || ")})`}generateArray(Y,W){let F=W.length>0&&W[W.length-1]===",",U=W.map((A)=>{if(A===",")return"";if(A==="...")return"";if(this.is(A,"..."))return`...${this.generate(A[1],"value")}`;return this.generate(A,"value")}).join(", ");return F?`[${U},]`:`[${U}]`}generateObject(Y,W,F){if(W.length===1&&Array.isArray(W[0])&&Array.isArray(W[0][1])&&W[0][1][0]==="comprehension"){let[A,$]=W[0],[,Q,J,Z]=$;return this.generate(["object-comprehension",A,Q,J,Z],F)}return`{${W.map((A)=>{if(this.is(A,"..."))return`...${this.generate(A[1],"value")}`;let[$,Q,J]=A,Z;if(this.is($,"dynamicKey"))Z=`[${this.generate($[1],"value")}]`;else if(this.is($,"str"))Z=`[${this.generate($,"value")}]`;else Z=this.generate($,"value");let K=this.generate(Q,"value");if(J==="=")return`${Z} = ${K}`;if(J===":")return`${Z}: ${K}`;if(Z===K&&!Array.isArray($))return Z;return`${Z}: ${K}`}).join(", ")}}`}generateBlock(Y,W,F){if(F==="statement")return`{
166
+ ${this.indent()}}`}else M+=Z?this.generateLoopBodyWithGuard(K,Z):this.generateLoopBody(K);return M}generateWhile(Y,W){let F=W[0],U=W.length===3?W[1]:null,A=W[W.length-1];return`while (${this.unwrap(this.generate(F,"value"))}) `+(U?this.generateLoopBodyWithGuard(A,U):this.generateLoopBody(A))}generateUntil(Y,W){let[F,U]=W;return`while (!(${this.unwrap(this.generate(F,"value"))})) `+this.generateLoopBody(U)}generateRange(Y,W){if(Y==="..."){if(W.length===1)return`...${this.generate(W[0],"value")}`;let[Q,J]=W,Z=this.generate(Q,"value"),K=this.generate(J,"value");return`((s, e) => Array.from({length: Math.max(0, Math.abs(e - s))}, (_, i) => s + (i * (s <= e ? 1 : -1))))(${Z}, ${K})`}let[F,U]=W,A=this.generate(F,"value"),$=this.generate(U,"value");return`((s, e) => Array.from({length: Math.abs(e - s) + 1}, (_, i) => s + (i * (s <= e ? 1 : -1))))(${A}, ${$})`}generateNot(Y,W){let[F]=W;if(typeof F==="string"||F instanceof String)return`!${this.generate(F,"value")}`;if(Array.isArray(F)){if([".","?.","[]","optindex","optcall"].includes(F[0]))return`!${this.generate(F,"value")}`}let U=this.generate(F,"value");return U.startsWith("(")?`!${U}`:`(!${U})`}generateBitwiseNot(Y,W){return`(~${this.generate(W[0],"value")})`}generateIncDec(Y,W){let[F,U]=W,A=this.generate(F,"value");return U?`(${A}${Y})`:`(${Y}${A})`}generateTypeof(Y,W){return`typeof ${this.generate(W[0],"value")}`}generateDelete(Y,W){return`(delete ${this.generate(W[0],"value")})`}generateInstanceof(Y,W,F,U){let[A,$]=W,Q=V(U[0],"invert"),J=`(${this.generate(A,"value")} instanceof ${this.generate($,"value")})`;return Q?`(!${J})`:J}generateIn(Y,W,F,U){let[A,$]=W,Q=this.generate(A,"value"),J=V(U[0],"invert");if(this.is($,"object")){let X=`(${Q} in ${this.generate($,"value")})`;return J?`(!${X})`:X}let Z=this.generate($,"value"),K=`(Array.isArray(${Z}) || typeof ${Z} === 'string' ? ${Z}.includes(${Q}) : (${Q} in ${Z}))`;return J?`(!${K})`:K}generateOf(Y,W,F,U){let[A,$]=W,Q=this.generate(A,"value"),J=this.generate($,"value"),Z=V(U[0],"invert"),K=`(${Q} in ${J})`;return Z?`(!${K})`:K}generateRegexMatch(Y,W){let[F,U]=W;this.helpers.add("toSearchable"),this.programVars.add("_");let A=this.generate(U,"value"),$=A.includes("/m")?", true":"";return`(_ = toSearchable(${this.generate(F,"value")}${$}).match(${A}))`}generateNew(Y,W){let[F]=W;if(this.is(F,".")||this.is(F,"?.")){let[U,A,$]=F;if(Array.isArray(A)&&!A[0].startsWith)return`(${this.generate(["new",A],"value")}).${$}`;return`new ${this.generate(A,"value")}.${$}`}if(Array.isArray(F)){let[U,...A]=F;return`new ${this.generate(U,"value")}(${A.map(($)=>this.unwrap(this.generate($,"value"))).join(", ")})`}return`new ${this.generate(F,"value")}()`}generateLogicalAnd(Y,W,F,U){let A=this.flattenBinaryChain(U).slice(1);if(A.length===0)return"true";if(A.length===1)return this.generate(A[0],"value");return`(${A.map(($)=>this.generate($,"value")).join(" && ")})`}generateLogicalOr(Y,W,F,U){let A=this.flattenBinaryChain(U).slice(1);if(A.length===0)return"true";if(A.length===1)return this.generate(A[0],"value");return`(${A.map(($)=>this.generate($,"value")).join(" || ")})`}generateArray(Y,W){let F=W.length>0&&W[W.length-1]===",",U=W.map((A)=>{if(A===",")return"";if(A==="...")return"";if(this.is(A,"..."))return`...${this.generate(A[1],"value")}`;return this.generate(A,"value")}).join(", ");return F?`[${U},]`:`[${U}]`}generateObject(Y,W,F){if(W.length===1&&Array.isArray(W[0])&&Array.isArray(W[0][1])&&W[0][1][0]==="comprehension"){let[A,$]=W[0],[,Q,J,Z]=$;return this.generate(["object-comprehension",A,Q,J,Z],F)}return`{${W.map((A)=>{if(this.is(A,"..."))return`...${this.generate(A[1],"value")}`;let[$,Q,J]=A,Z;if(this.is($,"dynamicKey"))Z=`[${this.generate($[1],"value")}]`;else if(this.is($,"str"))Z=`[${this.generate($,"value")}]`;else Z=this.generate($,"value");let K=this.generate(Q,"value");if(J==="=")return`${Z} = ${K}`;if(J===":")return`${Z}: ${K}`;if(Z===K&&!Array.isArray($))return Z;return`${Z}: ${K}`}).join(", ")}}`}generateBlock(Y,W,F){if(F==="statement")return`{
146
167
  ${this.withIndent(()=>this.formatStatements(W)).join(`
147
168
  `)}
148
169
  ${this.indent()}}`;if(W.length===0)return"undefined";if(W.length===1)return this.generate(W[0],F);let U=W[W.length-1];if(Array.isArray(U)&&["break","continue","return","throw"].includes(U[0])){let $=W.map((Q)=>this.addSemicolon(Q,this.generate(Q,"statement")));return`{
149
170
  ${this.withIndent(()=>$.map((Q)=>this.indent()+Q).join(`
150
171
  `))}
151
- ${this.indent()}}`}return`(${W.map(($)=>this.generate($,"value")).join(", ")})`}generateTry(Y,W,F){let U=F==="value",A="try ",$=W[0];if(A+=U&&this.is($,"block")?this.generateBlockWithReturns($):this.generate($,"statement"),W.length>=2&&Array.isArray(W[1])&&W[1].length===2&&W[1][0]!=="block"){let[Q,J]=W[1];if(A+=" catch",Q&&(this.is(Q,"object")||this.is(Q,"array"))){A+=" (error)";let Z=`(${this.generate(Q,"value")} = error)`;J=this.is(J,"block")?["block",Z,...J.slice(1)]:["block",Z,J]}else if(Q)A+=` (${Q})`;A+=" "+(U&&this.is(J,"block")?this.generateBlockWithReturns(J):this.generate(J,"statement"))}else if(W.length===2)A+=" finally "+this.generate(W[1],"statement");if(W.length===3)A+=" finally "+this.generate(W[2],"statement");if(U)return`(${this.containsAwait(W[0])||W[1]&&this.containsAwait(W[1])?"async ":""}() => { ${A} })()`;return A}generateThrow(Y,W,F){let[U]=W;if(Array.isArray(U)){let $=U,Q=null;if(U[0]==="new"&&Array.isArray(U[1])&&(U[1][0]==="if"||U[1][0]==="unless"))Q="new",$=U[1];else if(U[0]==="if"||U[0]==="unless")$=U;if($[0]==="if"||$[0]==="unless"){let[J,Z,K]=$,X=Array.isArray(K)&&K.length===1?K[0]:K;U=Q==="new"?["new",X]:X;let M=this.generate(Z,"value"),R=`throw ${this.generate(U,"value")}`;return J==="unless"?`if (!(${M})) {
172
+ ${this.indent()}}`}return`(${W.map(($)=>this.generate($,"value")).join(", ")})`}generateTry(Y,W,F){let U=F==="value",A="try ",$=W[0];if(A+=U&&this.is($,"block")?this.generateBlockWithReturns($):this.generate($,"statement"),W.length>=2&&Array.isArray(W[1])&&W[1].length===2&&W[1][0]!=="block"){let[Q,J]=W[1];if(A+=" catch",Q&&(this.is(Q,"object")||this.is(Q,"array"))){A+=" (error)";let Z=`(${this.generate(Q,"value")} = error)`;J=this.is(J,"block")?["block",Z,...J.slice(1)]:["block",Z,J]}else if(Q)A+=` (${Q})`;A+=" "+(U&&this.is(J,"block")?this.generateBlockWithReturns(J):this.generate(J,"statement"))}else if(W.length===2)A+=" finally "+this.generate(W[1],"statement");if(W.length===3)A+=" finally "+this.generate(W[2],"statement");if(U)return`(${this.containsAwait(W[0])||W[1]&&this.containsAwait(W[1])?"async ":""}() => { ${A} })()`;return A}generateThrow(Y,W,F){let[U]=W;if(Array.isArray(U)){let $=U,Q=null;if(U[0]==="new"&&Array.isArray(U[1])&&(U[1][0]==="if"||U[1][0]==="unless"))Q="new",$=U[1];else if(U[0]==="if"||U[0]==="unless")$=U;if($[0]==="if"||$[0]==="unless"){let[J,Z,K]=$,X=Array.isArray(K)&&K.length===1?K[0]:K;U=Q==="new"?["new",X]:X;let z=this.generate(Z,"value"),R=`throw ${this.generate(U,"value")}`;return J==="unless"?`if (!(${z})) {
152
173
  ${this.indent()} ${R};
153
- ${this.indent()}}`:`if (${M}) {
174
+ ${this.indent()}}`:`if (${z}) {
154
175
  ${this.indent()} ${R};
155
- ${this.indent()}}`}}let A=`throw ${this.generate(U,"value")}`;return F==="value"?`(() => { ${A}; })()`:A}generateControl(Y,W,F){let[U,A,$]=W,Q=S(U),J=$[0]==="return",Z=this.generate(A,"value"),K=$.length>1?$[1]:null,X=J?K?`return ${this.generate(K,"value")}`:"return":K?`throw ${this.generate(K,"value")}`:"throw new Error()",M=this.wrapForCondition(Z);if(F==="value"){if(Q==="??")return`(() => { const __v = ${Z}; if (__v == null) ${X}; return __v; })()`;if(Q==="||")return`(() => { const __v = ${Z}; if (!__v) ${X}; return __v; })()`;return`(() => { const __v = ${Z}; if (__v) ${X}; return __v; })()`}if(Q==="??")return`if (${M} == null) ${X}`;if(Q==="||")return`if (!${M}) ${X}`;return`if (${M}) ${X}`}generateSwitch(Y,W,F){let[U,A,$]=W;if(U===null)return this.generateSwitchAsIfChain(A,$,F);let Q=`switch (${this.generate(U,"value")}) {
156
- `;this.indentLevel++;for(let J of A){let[,Z,K]=J;for(let X of Z){let M=S(X)??X,R;if(Array.isArray(M))R=this.generate(M,"value");else if(typeof M==="string"&&(M.startsWith('"')||M.startsWith("'")))R=`'${M.slice(1,-1)}'`;else R=this.generate(M,"value");Q+=this.indent()+`case ${R}:
176
+ ${this.indent()}}`}}let A=`throw ${this.generate(U,"value")}`;return F==="value"?`(() => { ${A}; })()`:A}generateControl(Y,W,F){let[U,A,$]=W,Q=S(U),J=$[0]==="return",Z=this.generate(A,"value"),K=$.length>1?$[1]:null,X=J?K?`return ${this.generate(K,"value")}`:"return":K?`throw ${this.generate(K,"value")}`:"throw new Error()",z=this.wrapForCondition(Z);if(F==="value"){if(Q==="??")return`(() => { const __v = ${Z}; if (__v == null) ${X}; return __v; })()`;if(Q==="||")return`(() => { const __v = ${Z}; if (!__v) ${X}; return __v; })()`;return`(() => { const __v = ${Z}; if (__v) ${X}; return __v; })()`}if(Q==="??")return`if (${z} == null) ${X}`;if(Q==="||")return`if (!${z}) ${X}`;return`if (${z}) ${X}`}generateSwitch(Y,W,F){let[U,A,$]=W;if(U===null)return this.generateSwitchAsIfChain(A,$,F);let Q=`switch (${this.generate(U,"value")}) {
177
+ `;this.indentLevel++;for(let J of A){let[,Z,K]=J;for(let X of Z){let z=S(X)??X,R;if(Array.isArray(z))R=this.generate(z,"value");else if(typeof z==="string"&&(z.startsWith('"')||z.startsWith("'")))R=`'${z.slice(1,-1)}'`;else R=this.generate(z,"value");Q+=this.indent()+`case ${R}:
157
178
  `}this.indentLevel++,Q+=this.generateSwitchCaseBody(K,F),this.indentLevel--}if($)Q+=this.indent()+`default:
158
179
  `,this.indentLevel++,Q+=this.generateSwitchCaseBody($,F),this.indentLevel--;if(this.indentLevel--,Q+=this.indent()+"}",F==="value")return`(${A.some((Z)=>this.containsAwait(Z[2]))||$&&this.containsAwait($)?"async ":""}() => { ${Q} })()`;return Q}generateWhen(){throw Error("when clause should be handled by switch")}generateComprehension(Y,W,F){let[U,A,$]=W;if(F==="statement")return this.generateComprehensionAsLoop(U,A,$);if(this.comprehensionTarget)return this.generateComprehensionWithTarget(U,A,$,this.comprehensionTarget);let J=`(${this.containsAwait(U)?"async ":""}() => {
159
180
  `;this.indentLevel++,this.comprehensionDepth++,J+=this.indent()+`const result = [];
160
- `;for(let X of A){let[M,R,D,z]=X;if(M==="for-in"){let q=z,H=Array.isArray(R)?R:[R],G=H.length===0,[I,P]=G?["_i",null]:H,B=this.is(I,"array")||this.is(I,"object")?this.generateDestructuringPattern(I):I;if(q&&q!==null){let _=Array.isArray(D)&&D[0];if(_ instanceof String)_=S(_);if(_===".."||_==="..."){let O=_==="...",[N,E]=D.slice(1),T=this.generate(N,"value"),L=this.generate(E,"value"),u=this.generate(q,"value");J+=this.indent()+`for (let ${B} = ${T}; ${B} ${O?"<":"<="} ${L}; ${B} += ${u}) {
161
- `,this.indentLevel++}else{let O=this.generate(D,"value"),N=P||"_i",E=this.generate(q,"value"),T=this.is(q,"-",1);if(J+=T?this.indent()+`for (let ${N} = ${O}.length - 1; ${N} >= 0; ${N} += ${E}) {
181
+ `;for(let X of A){let[z,R,D,G]=X;if(z==="for-in"){let M=G,q=Array.isArray(R)?R:[R],H=q.length===0,[I,B]=H?["_i",null]:q,P=this.is(I,"array")||this.is(I,"object")?this.generateDestructuringPattern(I):I;if(M&&M!==null){let _=Array.isArray(D)&&D[0];if(_ instanceof String)_=S(_);if(_===".."||_==="..."){let O=_==="...",[N,E]=D.slice(1),T=this.generate(N,"value"),L=this.generate(E,"value"),f=this.generate(M,"value");J+=this.indent()+`for (let ${P} = ${T}; ${P} ${O?"<":"<="} ${L}; ${P} += ${f}) {
182
+ `,this.indentLevel++}else{let O=this.generate(D,"value"),N=B||"_i",E=this.generate(M,"value"),T=this.is(M,"-",1);if(J+=T?this.indent()+`for (let ${N} = ${O}.length - 1; ${N} >= 0; ${N} += ${E}) {
162
183
  `:this.indent()+`for (let ${N} = 0; ${N} < ${O}.length; ${N} += ${E}) {
163
- `,this.indentLevel++,!G)J+=this.indent()+`const ${B} = ${O}[${N}];
164
- `}}else if(P){let _=this.generate(D,"value");J+=this.indent()+`for (let ${P} = 0; ${P} < ${_}.length; ${P}++) {
165
- `,this.indentLevel++,J+=this.indent()+`const ${B} = ${_}[${P}];
166
- `}else J+=this.indent()+`for (const ${B} of ${this.generate(D,"value")}) {
167
- `,this.indentLevel++}else if(M==="for-of"){let q=z,H=Array.isArray(R)?R:[R],[G,I]=H,P=this.is(G,"array")||this.is(G,"object")?this.generateDestructuringPattern(G):G,B=this.generate(D,"value");if(J+=this.indent()+`for (const ${P} in ${B}) {
168
- `,this.indentLevel++,q)J+=this.indent()+`if (!Object.hasOwn(${B}, ${P})) continue;
169
- `;if(I)J+=this.indent()+`const ${I} = ${B}[${P}];
170
- `}else if(M==="for-as"){let q=X[3],H=Array.isArray(R)?R:[R],[G]=H,I=this.is(G,"array")||this.is(G,"object")?this.generateDestructuringPattern(G):G;J+=this.indent()+`for ${q?"await ":""}(const ${I} of ${this.generate(D,"value")}) {
184
+ `,this.indentLevel++,!H)J+=this.indent()+`const ${P} = ${O}[${N}];
185
+ `}}else if(B){let _=this.generate(D,"value");J+=this.indent()+`for (let ${B} = 0; ${B} < ${_}.length; ${B}++) {
186
+ `,this.indentLevel++,J+=this.indent()+`const ${P} = ${_}[${B}];
187
+ `}else J+=this.indent()+`for (const ${P} of ${this.generate(D,"value")}) {
188
+ `,this.indentLevel++}else if(z==="for-of"){let M=G,q=Array.isArray(R)?R:[R],[H,I]=q,B=this.is(H,"array")||this.is(H,"object")?this.generateDestructuringPattern(H):H,P=this.generate(D,"value");if(J+=this.indent()+`for (const ${B} in ${P}) {
189
+ `,this.indentLevel++,M)J+=this.indent()+`if (!Object.hasOwn(${P}, ${B})) continue;
190
+ `;if(I)J+=this.indent()+`const ${I} = ${P}[${B}];
191
+ `}else if(z==="for-as"){let M=X[3],q=Array.isArray(R)?R:[R],[H]=q,I=this.is(H,"array")||this.is(H,"object")?this.generateDestructuringPattern(H):H;J+=this.indent()+`for ${M?"await ":""}(const ${I} of ${this.generate(D,"value")}) {
171
192
  `,this.indentLevel++}}for(let X of $)J+=this.indent()+`if (${this.generate(X,"value")}) {
172
- `,this.indentLevel++;let Z=(X)=>{if(typeof X==="string"&&(X==="break"||X==="continue"))return!0;if(!Array.isArray(X))return!1;if(["break","continue","break-if","continue-if","return","throw"].includes(X[0]))return!0;if(X[0]==="if"||X[0]==="unless")return X.slice(1).some(Z);return X.some(Z)},K=["for-in","for-of","for-as","while","until","loop"];if(this.is(U,"block"))for(let X=0;X<U.length-1;X++){let M=U[X+1];if(X!==U.length-2||Z(M))J+=this.indent()+this.generate(M,"statement")+`;
173
- `;else if(Array.isArray(M)&&K.includes(M[0]))J+=this.indent()+this.generate(M,"statement")+`;
174
- `;else J+=this.indent()+`result.push(${this.generate(M,"value")});
193
+ `,this.indentLevel++;let Z=(X)=>{if(typeof X==="string"&&(X==="break"||X==="continue"))return!0;if(!Array.isArray(X))return!1;if(["break","continue","break-if","continue-if","return","throw"].includes(X[0]))return!0;if(X[0]==="if"||X[0]==="unless")return X.slice(1).some(Z);return X.some(Z)},K=["for-in","for-of","for-as","while","until","loop"];if(this.is(U,"block"))for(let X=0;X<U.length-1;X++){let z=U[X+1];if(X!==U.length-2||Z(z))J+=this.indent()+this.generate(z,"statement")+`;
194
+ `;else if(Array.isArray(z)&&K.includes(z[0]))J+=this.indent()+this.generate(z,"statement")+`;
195
+ `;else J+=this.indent()+`result.push(${this.generate(z,"value")});
175
196
  `}else if(Z(U))J+=this.indent()+this.generate(U,"statement")+`;
176
197
  `;else if(Array.isArray(U)&&K.includes(U[0]))J+=this.indent()+this.generate(U,"statement")+`;
177
198
  `;else J+=this.indent()+`result.push(${this.generate(U,"value")});
@@ -180,38 +201,38 @@ ${this.indent()}}`}}let A=`throw ${this.generate(U,"value")}`;return F==="value"
180
201
  `;return J+=this.indent()+`return result;
181
202
  `,this.indentLevel--,this.comprehensionDepth--,J+=this.indent()+"})()",J}generateObjectComprehension(Y,W,F){let[U,A,$,Q]=W,J=`(() => {
182
203
  `;this.indentLevel++,J+=this.indent()+`const result = {};
183
- `;for(let Z of $){let[K,X,M,R]=Z;if(K==="for-of"){let[D,z]=X,q=this.generate(M,"value");if(J+=this.indent()+`for (const ${D} in ${q}) {
184
- `,this.indentLevel++,R)J+=this.indent()+`if (!Object.hasOwn(${q}, ${D})) continue;
185
- `;if(z)J+=this.indent()+`const ${z} = ${q}[${D}];
204
+ `;for(let Z of $){let[K,X,z,R]=Z;if(K==="for-of"){let[D,G]=X,M=this.generate(z,"value");if(J+=this.indent()+`for (const ${D} in ${M}) {
205
+ `,this.indentLevel++,R)J+=this.indent()+`if (!Object.hasOwn(${M}, ${D})) continue;
206
+ `;if(G)J+=this.indent()+`const ${G} = ${M}[${D}];
186
207
  `}}for(let Z of Q)J+=this.indent()+`if (${this.generate(Z,"value")}) {
187
208
  `,this.indentLevel++;J+=this.indent()+`result[${this.generate(U,"value")}] = ${this.generate(A,"value")};
188
209
  `;for(let Z=0;Z<Q.length;Z++)this.indentLevel--,J+=this.indent()+`}
189
210
  `;for(let Z=0;Z<$.length;Z++)this.indentLevel--,J+=this.indent()+`}
190
211
  `;return J+=this.indent()+`return result;
191
212
  `,this.indentLevel--,J+=this.indent()+"})()",J}generateClass(Y,W,F){let[U,A,...$]=W,Q=U?`class ${U}`:"class";if(A)Q+=` extends ${this.generate(A,"value")}`;if(Q+=` {
192
- `,$.length>0&&Array.isArray($[0])){let J=$[0];if(J[0]==="block"){let Z=J.slice(1),K=Z.length>0&&Array.isArray(Z[0])&&Z[0][0]==="object";if(K&&Z.length===1){let X=Z[0].slice(1);this.indentLevel++;let M=[];for(let[R,D]of X){let z=this.is(R,".")&&R[1]==="this",q=this.is(R,"computed"),H=this.extractMemberName(R);if(this.is(D,"=>")&&!z&&!q&&H!=="constructor")M.push(H)}for(let[R,D]of X){let z=this.is(R,".")&&R[1]==="this",q=this.is(R,"computed"),H=this.extractMemberName(R);if(this.is(D,"->")||this.is(D,"=>")){let[,G,I]=D,P=this.containsAwait(I),B=this.containsYield(I),_=G,w=[];if(H==="constructor"){_=G.map((E)=>{if(this.is(E,".")&&E[1]==="this")return w.push(`this.${E[2]} = ${E[2]}`),E[2];return E});for(let E of M)w.unshift(`this.${E} = this.${E}.bind(this)`)}let O=this.generateParamList(_),N=(z?"static ":"")+(P?"async ":"")+(B?"*":"");if(Q+=this.indent()+`${N}${H}(${O}) `,!q)this.currentMethodName=H;Q+=this.generateMethodBody(I,w,H==="constructor",_),this.currentMethodName=null,Q+=`
193
- `}else if(z)Q+=this.indent()+`static ${H} = ${this.generate(D,"value")};
194
- `;else Q+=this.indent()+`${H} = ${this.generate(D,"value")};
195
- `}this.indentLevel--}else if(K){let X=Z[0].slice(1),M=Z.slice(1);this.indentLevel++;for(let[R,D]of X){let z=this.is(R,".")&&R[1]==="this",q=this.extractMemberName(R);if(this.is(D,"->")||this.is(D,"=>")){let[,H,G]=D,I=this.generateParamList(H),P=(z?"static ":"")+(this.containsAwait(G)?"async ":"")+(this.containsYield(G)?"*":"");Q+=this.indent()+`${P}${q}(${I}) `,this.currentMethodName=q,Q+=this.generateMethodBody(G,[],q==="constructor",H),this.currentMethodName=null,Q+=`
196
- `}else if(z)Q+=this.indent()+`static ${q} = ${this.generate(D,"value")};
213
+ `,$.length>0&&Array.isArray($[0])){let J=$[0];if(J[0]==="block"){let Z=J.slice(1),K=Z.length>0&&Array.isArray(Z[0])&&Z[0][0]==="object";if(K&&Z.length===1){let X=Z[0].slice(1);this.indentLevel++;let z=[];for(let[R,D]of X){let G=this.is(R,".")&&R[1]==="this",M=this.is(R,"computed"),q=this.extractMemberName(R);if(this.is(D,"=>")&&!G&&!M&&q!=="constructor")z.push(q)}for(let[R,D]of X){let G=this.is(R,".")&&R[1]==="this",M=this.is(R,"computed"),q=this.extractMemberName(R);if(this.is(D,"->")||this.is(D,"=>")){let[,H,I]=D,B=this.containsAwait(I),P=this.containsYield(I),_=H,w=[];if(q==="constructor"){_=H.map((E)=>{if(this.is(E,".")&&E[1]==="this")return w.push(`this.${E[2]} = ${E[2]}`),E[2];return E});for(let E of z)w.unshift(`this.${E} = this.${E}.bind(this)`)}let O=this.generateParamList(_),N=(G?"static ":"")+(B?"async ":"")+(P?"*":"");if(Q+=this.indent()+`${N}${q}(${O}) `,!M)this.currentMethodName=q;Q+=this.generateMethodBody(I,w,q==="constructor",_),this.currentMethodName=null,Q+=`
214
+ `}else if(G)Q+=this.indent()+`static ${q} = ${this.generate(D,"value")};
197
215
  `;else Q+=this.indent()+`${q} = ${this.generate(D,"value")};
198
- `}for(let R of M)if(this.is(R,"class")){let[,D,z,...q]=R;if(this.is(D,".")&&D[1]==="this")Q+=this.indent()+`static ${D[2]} = ${this.generate(["class",null,z,...q],"value")};
216
+ `}this.indentLevel--}else if(K){let X=Z[0].slice(1),z=Z.slice(1);this.indentLevel++;for(let[R,D]of X){let G=this.is(R,".")&&R[1]==="this",M=this.extractMemberName(R);if(this.is(D,"->")||this.is(D,"=>")){let[,q,H]=D,I=this.generateParamList(q),B=(G?"static ":"")+(this.containsAwait(H)?"async ":"")+(this.containsYield(H)?"*":"");Q+=this.indent()+`${B}${M}(${I}) `,this.currentMethodName=M,Q+=this.generateMethodBody(H,[],M==="constructor",q),this.currentMethodName=null,Q+=`
217
+ `}else if(G)Q+=this.indent()+`static ${M} = ${this.generate(D,"value")};
218
+ `;else Q+=this.indent()+`${M} = ${this.generate(D,"value")};
219
+ `}for(let R of z)if(this.is(R,"class")){let[,D,G,...M]=R;if(this.is(D,".")&&D[1]==="this")Q+=this.indent()+`static ${D[2]} = ${this.generate(["class",null,G,...M],"value")};
199
220
  `}else Q+=this.indent()+this.generate(R,"statement")+`;
200
221
  `;this.indentLevel--}else{this.indentLevel++;for(let X of Z)if(this.is(X,"=")&&Array.isArray(X[1])&&X[1][0]==="."&&X[1][1]==="this")Q+=this.indent()+`static ${X[1][2]} = ${this.generate(X[2],"value")};
201
222
  `;else Q+=this.indent()+this.generate(X,"statement")+`;
202
- `;this.indentLevel--}}}return Q+=this.indent()+"}",Q}generateSuper(Y,W){if(W.length===0){if(this.currentMethodName&&this.currentMethodName!=="constructor")return`super.${this.currentMethodName}()`;return"super"}let F=W.map((U)=>this.unwrap(this.generate(U,"value"))).join(", ");if(this.currentMethodName&&this.currentMethodName!=="constructor")return`super.${this.currentMethodName}(${F})`;return`super(${F})`}generateImport(Y,W,F,U){if(W.length===1){let J=`import(${this.generate(W[0],"value")})`;if(f(U[0],"await")===!0)return`(await ${J})`;return J}let[A,$]=W,Q=this.addJsExtensionAndAssertions($);if(typeof A==="string")return`import ${A} from ${Q}`;if(Array.isArray(A)){if(A[0]==="*"&&A.length===2)return`import * as ${A[1]} from ${Q}`;if(typeof A[0]==="string"&&Array.isArray(A[1])){let Z=A[0],K=A[1];if(K[0]==="*"&&K.length===2)return`import ${Z}, * as ${K[1]} from ${Q}`;let X=(Array.isArray(K)?K:[K]).map((M)=>Array.isArray(M)&&M.length===2?`${M[0]} as ${M[1]}`:M).join(", ");return`import ${Z}, { ${X} } from ${Q}`}return`import { ${A.map((Z)=>Array.isArray(Z)&&Z.length===2?`${Z[0]} as ${Z[1]}`:Z).join(", ")} } from ${Q}`}return`import ${this.generate(A,"value")} from ${Q}`}generateExport(Y,W){let[F]=W;if(Array.isArray(F)&&F.every((U)=>typeof U==="string"))return`export { ${F.join(", ")} }`;if(this.is(F,"="))return`export const ${F[1]} = ${this.generate(F[2],"value")}`;return`export ${this.generate(F,"statement")}`}generateExportDefault(Y,W){let[F]=W;if(this.is(F,"="))return`const ${F[1]} = ${this.generate(F[2],"value")};
203
- export default ${F[1]}`;return`export default ${this.generate(F,"statement")}`}generateExportAll(Y,W){return`export * from ${this.addJsExtensionAndAssertions(W[0])}`}generateExportFrom(Y,W){let[F,U]=W,A=this.addJsExtensionAndAssertions(U);if(Array.isArray(F))return`export { ${F.map((Q)=>Array.isArray(Q)&&Q.length===2?`${Q[0]} as ${Q[1]}`:Q).join(", ")} } from ${A}`;return`export ${F} from ${A}`}generateDoIIFE(Y,W){return`(${this.generate(W[0],"statement")})()`}generateRegex(Y,W){return W.length===0?Y:this.generate(W[0],"value")}generateTaggedTemplate(Y,W){let[F,U]=W,A=this.generate(F,"value"),$=this.generate(U,"value");if($.startsWith("`"))return`${A}${$}`;if($.startsWith('"')||$.startsWith("'"))return`${A}\`${$.slice(1,-1)}\``;return`${A}\`${$}\``}generateString(Y,W){let F="`";for(let U of W)if(U instanceof String)F+=this.extractStringContent(U);else if(typeof U==="string")if(U.startsWith('"')||U.startsWith("'")){if(this.options.debug)console.warn("[Rip] Unexpected quoted primitive in str:",U);F+=U.slice(1,-1)}else F+=U;else if(Array.isArray(U))if(U.length===1&&typeof U[0]==="string"&&!Array.isArray(U[0])){let A=U[0];F+=/^[\d"']/.test(A)?"${"+this.generate(A,"value")+"}":"${"+A+"}"}else{let A=U.length===1&&Array.isArray(U[0])?U[0]:U;F+="${"+this.generate(A,"value")+"}"}return F+"`"}findPostfixConditional(Y){if(!Array.isArray(Y))return null;let W=Y[0];if((W==="unless"||W==="if")&&Y.length===3)return{type:W,condition:Y[1],value:Y[2]};if(W==="+"||W==="-"||W==="*"||W==="/")for(let F=1;F<Y.length;F++){let U=this.findPostfixConditional(Y[F]);if(U)return U.parentOp=W,U.operandIndex=F,U.otherOperands=Y.slice(1).filter((A,$)=>$!==F-1),U}return null}rebuildWithoutConditional(Y){let W=Array.isArray(Y.value)&&Y.value.length===1?Y.value[0]:Y.value;if(Y.parentOp)return[Y.parentOp,...Y.otherOperands,W];return W}generateDestructuringPattern(Y){return this.formatParam(Y)}generateParamList(Y){let W=Y.findIndex((U)=>this.is(U,"expansion"));if(W!==-1){let U=Y.slice(0,W),A=Y.slice(W+1),$=U.map((Q)=>this.formatParam(Q)).join(", ");return this.expansionAfterParams=A,$?`${$}, ..._rest`:"..._rest"}let F=Y.findIndex((U)=>this.is(U,"rest"));if(F!==-1&&F<Y.length-1){let U=Y.slice(0,F),A=Y[F],$=Y.slice(F+1),Q=U.map((J)=>this.formatParam(J));return this.restMiddleParam={restName:A[1],afterParams:$,beforeCount:U.length},Q.length>0?`${Q.join(", ")}, ...${A[1]}`:`...${A[1]}`}return this.expansionAfterParams=null,this.restMiddleParam=null,Y.map((U)=>this.formatParam(U)).join(", ")}formatParam(Y){if(typeof Y==="string")return Y;if(Y instanceof String)return Y.valueOf();if(this.is(Y,"rest"))return`...${Y[1]}`;if(this.is(Y,"default"))return`${Y[1]} = ${this.generate(Y[2],"value")}`;if(this.is(Y,".")&&Y[1]==="this")return Y[2];if(this.is(Y,"array"))return`[${Y.slice(1).map((F)=>{if(F===",")return"";if(F==="...")return"";if(this.is(F,"..."))return`...${F[1]}`;if(this.is(F,"=")&&typeof F[1]==="string")return`${F[1]} = ${this.generate(F[2],"value")}`;if(typeof F==="string")return F;return this.formatParam(F)}).join(", ")}]`;if(this.is(Y,"object"))return`{${Y.slice(1).map((F)=>{if(this.is(F,"..."))return`...${F[1]}`;if(this.is(F,"default"))return`${F[1]} = ${this.generate(F[2],"value")}`;let[U,A]=F;if(U===A)return U;return`${U}: ${A}`}).join(", ")}}`;return JSON.stringify(Y)}generateBodyWithReturns(Y,W=[],F={}){let{sideEffectOnly:U=!1,autoAssignments:A=[],isConstructor:$=!1,hasExpansionParams:Q=!1}=F,J=this.sideEffectOnly;this.sideEffectOnly=U;let Z=new Set,K=(z)=>{if(typeof z==="string")Z.add(z);else if(Array.isArray(z)){if(z[0]==="rest"||z[0]==="..."){if(typeof z[1]==="string")Z.add(z[1])}else if(z[0]==="default"){if(typeof z[1]==="string")Z.add(z[1])}else if(z[0]==="array"||z[0]==="object")this.collectVarsFromArray(z,Z)}};if(Array.isArray(W))W.forEach(K);let X=this.collectFunctionVariables(Y),M=new Set([...X].filter((z)=>!this.programVars.has(z)&&!this.reactiveVars?.has(z)&&!Z.has(z))),R=["return","throw","break","continue"],D=["for-in","for-of","for-as","while","until","loop"];if(this.is(Y,"block")){let z=this.unwrapBlock(Y);if(Q&&this.expansionAfterParams?.length>0)z=[...this.expansionAfterParams.map((P,B)=>{return`const ${typeof P==="string"?P:JSON.stringify(P)} = _rest[_rest.length - ${this.expansionAfterParams.length-B}]`}),...z],this.expansionAfterParams=null;if(this.restMiddleParam){let{restName:I,afterParams:P}=this.restMiddleParam,B=P.length,_=[];if(P.forEach((w,O)=>{let N=typeof w==="string"?w:this.is(w,"default")?w[1]:JSON.stringify(w);_.push(`const ${N} = ${I}[${I}.length - ${B-O}]`)}),B>0)_.push(`${I} = ${I}.slice(0, -${B})`);z=[..._,...z],this.restMiddleParam=null}this.indentLevel++;let q=`{
204
- `;if(M.size>0)q+=this.indent()+`let ${Array.from(M).sort().join(", ")};
205
- `;let H=A.length>0&&z.length>0&&Array.isArray(z[0])&&z[0][0]==="super",G=(I)=>{I.forEach((P,B)=>{let _=B===I.length-1,w=Array.isArray(P)?P[0]:null;if(!_&&w==="comprehension"){let[,T,L,u]=P;q+=this.indent()+this.generateComprehensionAsLoop(T,L,u)+`
206
- `;return}if(!$&&!U&&_&&(w==="if"||w==="unless")){let[T,L,...u]=P.slice(1),i=(d)=>this.is(d,"block")&&d.length>2;if(i(L)||u.some(i)){q+=this.generateIfElseWithEarlyReturns(P);return}}if(!$&&!U&&_&&w==="="){let[T,L]=P.slice(1);if(typeof T==="string"&&Array.isArray(L)){let u=L[0];if(u==="comprehension"||u==="for-in"){this.comprehensionTarget=T,q+=this.generate(L,"value"),this.comprehensionTarget=null,q+=this.indent()+`return ${T};
207
- `;return}}}let O=!$&&!U&&_&&!R.includes(w)&&!D.includes(w)&&!this.hasExplicitControlFlow(P),N=O?"value":"statement",E=this.generate(P,N);if(O)q+=this.indent()+"return "+E+`;
208
- `;else q+=this.indent()+this.addSemicolon(P,E)+`
209
- `})};if(H){if(z.length===1&&!$)q+=this.indent()+"return "+this.generate(z[0],"value")+`;
210
- `;else q+=this.indent()+this.generate(z[0],"statement")+`;
223
+ `;this.indentLevel--}}}return Q+=this.indent()+"}",Q}generateSuper(Y,W){if(W.length===0){if(this.currentMethodName&&this.currentMethodName!=="constructor")return`super.${this.currentMethodName}()`;return"super"}let F=W.map((U)=>this.unwrap(this.generate(U,"value"))).join(", ");if(this.currentMethodName&&this.currentMethodName!=="constructor")return`super.${this.currentMethodName}(${F})`;return`super(${F})`}generateImport(Y,W,F,U){if(W.length===1){let J=`import(${this.generate(W[0],"value")})`;if(V(U[0],"await")===!0)return`(await ${J})`;return J}let[A,$]=W,Q=this.addJsExtensionAndAssertions($);if(typeof A==="string")return`import ${A} from ${Q}`;if(Array.isArray(A)){if(A[0]==="*"&&A.length===2)return`import * as ${A[1]} from ${Q}`;if(typeof A[0]==="string"&&Array.isArray(A[1])){let Z=A[0],K=A[1];if(K[0]==="*"&&K.length===2)return`import ${Z}, * as ${K[1]} from ${Q}`;let X=(Array.isArray(K)?K:[K]).map((z)=>Array.isArray(z)&&z.length===2?`${z[0]} as ${z[1]}`:z).join(", ");return`import ${Z}, { ${X} } from ${Q}`}return`import { ${A.map((Z)=>Array.isArray(Z)&&Z.length===2?`${Z[0]} as ${Z[1]}`:Z).join(", ")} } from ${Q}`}return`import ${this.generate(A,"value")} from ${Q}`}generateExport(Y,W){let[F]=W;if(Array.isArray(F)&&F.every((U)=>typeof U==="string"))return`export { ${F.join(", ")} }`;if(this.is(F,"="))return`export const ${F[1]} = ${this.generate(F[2],"value")}`;return`export ${this.generate(F,"statement")}`}generateExportDefault(Y,W){let[F]=W;if(this.is(F,"="))return`const ${F[1]} = ${this.generate(F[2],"value")};
224
+ export default ${F[1]}`;return`export default ${this.generate(F,"statement")}`}generateExportAll(Y,W){return`export * from ${this.addJsExtensionAndAssertions(W[0])}`}generateExportFrom(Y,W){let[F,U]=W,A=this.addJsExtensionAndAssertions(U);if(Array.isArray(F))return`export { ${F.map((Q)=>Array.isArray(Q)&&Q.length===2?`${Q[0]} as ${Q[1]}`:Q).join(", ")} } from ${A}`;return`export ${F} from ${A}`}generateDoIIFE(Y,W){return`(${this.generate(W[0],"statement")})()`}generateRegex(Y,W){return W.length===0?Y:this.generate(W[0],"value")}generateTaggedTemplate(Y,W){let[F,U]=W,A=this.generate(F,"value"),$=this.generate(U,"value");if($.startsWith("`"))return`${A}${$}`;if($.startsWith('"')||$.startsWith("'"))return`${A}\`${$.slice(1,-1)}\``;return`${A}\`${$}\``}generateString(Y,W){let F="`";for(let U of W)if(U instanceof String)F+=this.extractStringContent(U);else if(typeof U==="string")if(U.startsWith('"')||U.startsWith("'")){if(this.options.debug)console.warn("[Rip] Unexpected quoted primitive in str:",U);F+=U.slice(1,-1)}else F+=U;else if(Array.isArray(U))if(U.length===1&&typeof U[0]==="string"&&!Array.isArray(U[0])){let A=U[0];F+=/^[\d"']/.test(A)?"${"+this.generate(A,"value")+"}":"${"+A+"}"}else{let A=U.length===1&&Array.isArray(U[0])?U[0]:U;F+="${"+this.generate(A,"value")+"}"}return F+"`"}findPostfixConditional(Y){if(!Array.isArray(Y))return null;let W=Y[0];if((W==="unless"||W==="if")&&Y.length===3)return{type:W,condition:Y[1],value:Y[2]};if(W==="+"||W==="-"||W==="*"||W==="/")for(let F=1;F<Y.length;F++){let U=this.findPostfixConditional(Y[F]);if(U)return U.parentOp=W,U.operandIndex=F,U.otherOperands=Y.slice(1).filter((A,$)=>$!==F-1),U}return null}rebuildWithoutConditional(Y){let W=Array.isArray(Y.value)&&Y.value.length===1?Y.value[0]:Y.value;if(Y.parentOp)return[Y.parentOp,...Y.otherOperands,W];return W}generateDestructuringPattern(Y){return this.formatParam(Y)}generateParamList(Y){let W=Y.findIndex((U)=>this.is(U,"expansion"));if(W!==-1){let U=Y.slice(0,W),A=Y.slice(W+1),$=U.map((Q)=>this.formatParam(Q)).join(", ");return this.expansionAfterParams=A,$?`${$}, ..._rest`:"..._rest"}let F=Y.findIndex((U)=>this.is(U,"rest"));if(F!==-1&&F<Y.length-1){let U=Y.slice(0,F),A=Y[F],$=Y.slice(F+1),Q=U.map((J)=>this.formatParam(J));return this.restMiddleParam={restName:A[1],afterParams:$,beforeCount:U.length},Q.length>0?`${Q.join(", ")}, ...${A[1]}`:`...${A[1]}`}return this.expansionAfterParams=null,this.restMiddleParam=null,Y.map((U)=>this.formatParam(U)).join(", ")}formatParam(Y){if(typeof Y==="string")return Y;if(Y instanceof String)return Y.valueOf();if(this.is(Y,"rest"))return`...${Y[1]}`;if(this.is(Y,"default"))return`${Y[1]} = ${this.generate(Y[2],"value")}`;if(this.is(Y,".")&&Y[1]==="this")return Y[2];if(this.is(Y,"array"))return`[${Y.slice(1).map((F)=>{if(F===",")return"";if(F==="...")return"";if(this.is(F,"..."))return`...${F[1]}`;if(this.is(F,"=")&&typeof F[1]==="string")return`${F[1]} = ${this.generate(F[2],"value")}`;if(typeof F==="string")return F;return this.formatParam(F)}).join(", ")}]`;if(this.is(Y,"object"))return`{${Y.slice(1).map((F)=>{if(this.is(F,"..."))return`...${F[1]}`;if(this.is(F,"default"))return`${F[1]} = ${this.generate(F[2],"value")}`;let[U,A]=F;if(U===A)return U;return`${U}: ${A}`}).join(", ")}}`;return JSON.stringify(Y)}generateBodyWithReturns(Y,W=[],F={}){let{sideEffectOnly:U=!1,autoAssignments:A=[],isConstructor:$=!1,hasExpansionParams:Q=!1}=F,J=this.sideEffectOnly;this.sideEffectOnly=U;let Z=new Set,K=(M)=>{if(typeof M==="string")Z.add(M);else if(Array.isArray(M)){if(M[0]==="rest"||M[0]==="..."){if(typeof M[1]==="string")Z.add(M[1])}else if(M[0]==="default"){if(typeof M[1]==="string")Z.add(M[1])}else if(M[0]==="array"||M[0]==="object")this.collectVarsFromArray(M,Z)}};if(Array.isArray(W))W.forEach(K);let X=this.collectFunctionVariables(Y),z=new Set([...X].filter((M)=>!this.programVars.has(M)&&!this.reactiveVars?.has(M)&&!Z.has(M)&&!this.scopeStack.some((q)=>q.has(M)))),R=["return","throw","break","continue"],D=["for-in","for-of","for-as","while","until","loop"];if(this.scopeStack.push(new Set([...z,...Z])),this.is(Y,"block")){let M=this.unwrapBlock(Y);if(Q&&this.expansionAfterParams?.length>0)M=[...this.expansionAfterParams.map((P,_)=>{return`const ${typeof P==="string"?P:JSON.stringify(P)} = _rest[_rest.length - ${this.expansionAfterParams.length-_}]`}),...M],this.expansionAfterParams=null;if(this.restMiddleParam){let{restName:B,afterParams:P}=this.restMiddleParam,_=P.length,w=[];if(P.forEach((O,N)=>{let E=typeof O==="string"?O:this.is(O,"default")?O[1]:JSON.stringify(O);w.push(`const ${E} = ${B}[${B}.length - ${_-N}]`)}),_>0)w.push(`${B} = ${B}.slice(0, -${_})`);M=[...w,...M],this.restMiddleParam=null}this.indentLevel++;let q=`{
225
+ `;if(z.size>0)q+=this.indent()+`let ${Array.from(z).sort().join(", ")};
226
+ `;let H=A.length>0&&M.length>0&&Array.isArray(M[0])&&M[0][0]==="super",I=(B)=>{B.forEach((P,_)=>{let w=_===B.length-1,O=Array.isArray(P)?P[0]:null;if(!w&&O==="comprehension"){let[,L,f,b]=P;q+=this.indent()+this.generateComprehensionAsLoop(L,f,b)+`
227
+ `;return}if(!$&&!U&&w&&(O==="if"||O==="unless")){let[L,f,...b]=P.slice(1),d=(Z1)=>this.is(Z1,"block")&&Z1.length>2;if(d(f)||b.some(d)){q+=this.generateIfElseWithEarlyReturns(P);return}}if(!$&&!U&&w&&O==="="){let[L,f]=P.slice(1);if(typeof L==="string"&&Array.isArray(f)){let b=f[0];if(b==="comprehension"||b==="for-in"){this.comprehensionTarget=L,q+=this.generate(f,"value"),this.comprehensionTarget=null,q+=this.indent()+`return ${L};
228
+ `;return}}}let N=!$&&!U&&w&&!R.includes(O)&&!D.includes(O)&&!this.hasExplicitControlFlow(P),E=N?"value":"statement",T=this.generate(P,E);if(N)q+=this.indent()+"return "+T+`;
229
+ `;else q+=this.indent()+this.addSemicolon(P,T)+`
230
+ `})};if(H){if(M.length===1&&!$)q+=this.indent()+"return "+this.generate(M[0],"value")+`;
231
+ `;else q+=this.indent()+this.generate(M[0],"statement")+`;
211
232
  `;for(let P of A)q+=this.indent()+P+`;
212
- `;G(z.slice(1))}else{for(let I of A)q+=this.indent()+I+`;
213
- `;G(z)}if(U&&z.length>0){let I=Array.isArray(z[z.length-1])?z[z.length-1][0]:null;if(!R.includes(I))q+=this.indent()+`return;
214
- `}return this.indentLevel--,q+=this.indent()+"}",this.sideEffectOnly=J,q}if(this.sideEffectOnly=J,$||this.hasExplicitControlFlow(Y))return`{ ${this.generate(Y,"statement")}; }`;if(Array.isArray(Y)&&(R.includes(Y[0])||D.includes(Y[0])))return`{ ${this.generate(Y,"statement")}; }`;if(U)return`{ ${this.generate(Y,"statement")}; return; }`;return`{ return ${this.generate(Y,"value")}; }`}generateFunctionBody(Y,W=[],F=!1){return this.generateBodyWithReturns(Y,W,{sideEffectOnly:F,hasExpansionParams:this.expansionAfterParams?.length>0})}generateMethodBody(Y,W=[],F=!1,U=[]){return this.generateBodyWithReturns(Y,U,{autoAssignments:W,isConstructor:F})}generateBlockWithReturns(Y){if(!Array.isArray(Y)||Y[0]!=="block")return this.generate(Y,"statement");let W=this.unwrapBlock(Y);return`{
233
+ `;I(M.slice(1))}else{for(let B of A)q+=this.indent()+B+`;
234
+ `;I(M)}if(U&&M.length>0){let B=Array.isArray(M[M.length-1])?M[M.length-1][0]:null;if(!R.includes(B))q+=this.indent()+`return;
235
+ `}return this.indentLevel--,q+=this.indent()+"}",this.scopeStack.pop(),this.sideEffectOnly=J,q}this.sideEffectOnly=J;let G;if($||this.hasExplicitControlFlow(Y))G=`{ ${this.generate(Y,"statement")}; }`;else if(Array.isArray(Y)&&(R.includes(Y[0])||D.includes(Y[0])))G=`{ ${this.generate(Y,"statement")}; }`;else if(U)G=`{ ${this.generate(Y,"statement")}; return; }`;else G=`{ return ${this.generate(Y,"value")}; }`;return this.scopeStack.pop(),G}generateFunctionBody(Y,W=[],F=!1){return this.generateBodyWithReturns(Y,W,{sideEffectOnly:F,hasExpansionParams:this.expansionAfterParams?.length>0})}generateMethodBody(Y,W=[],F=!1,U=[]){return this.generateBodyWithReturns(Y,U,{autoAssignments:W,isConstructor:F})}generateBlockWithReturns(Y){if(!Array.isArray(Y)||Y[0]!=="block")return this.generate(Y,"statement");let W=this.unwrapBlock(Y);return`{
215
236
  ${this.withIndent(()=>W.map((U,A)=>{let $=A===W.length-1,Q=Array.isArray(U)?U[0]:null,J=$&&!["return","throw","break","continue"].includes(Q),Z=this.generate(U,J?"value":"statement");return J?this.indent()+"return "+Z+";":this.indent()+Z+";"})).join(`
216
237
  `)}
217
238
  ${this.indent()}}`}generateLoopBody(Y){if(!Array.isArray(Y))return`{ ${this.generate(Y,"statement")}; }`;if(Y[0]==="block"||Array.isArray(Y[0])){let W=Y[0]==="block"?Y.slice(1):Y;return`{
@@ -223,53 +244,53 @@ ${A}${$}${Q.join(`
223
244
  `)}
224
245
  ${J}
225
246
  ${this.indent()}}`}return`{ if (${this.generate(W,"value")}) ${this.generate(Y,"statement")}; }`}generateComprehensionWithTarget(Y,W,F,U){let A="";A+=this.indent()+`${U} = [];
226
- `;let $=this.is(Y,"block")&&Y.length===2?Y[1]:Y;if(W.length===1){let[Q,J,Z,K]=W[0];if(Q==="for-in"){let X=K,M=Array.isArray(J)?J:[J],R=M.length===0,[D,z]=R?["_i",null]:M,q=this.is(D,"array")||this.is(D,"object")?this.generateDestructuringPattern(D):D;if(X&&X!==null){let H=Array.isArray(Z)&&Z[0];if(H instanceof String)H=S(H);if(H===".."||H==="..."){let I=H==="...",[P,B]=Z.slice(1);A+=this.indent()+`for (let ${q} = ${this.generate(P,"value")}; ${q} ${I?"<":"<="} ${this.generate(B,"value")}; ${q} += ${this.generate(X,"value")}) {
227
- `}else{let I=this.generate(Z,"value"),P=z||"_i",B=this.generate(X,"value"),_=this.is(X,"-",1);if(A+=_?this.indent()+`for (let ${P} = ${I}.length - 1; ${P} >= 0; ${P} += ${B}) {
228
- `:this.indent()+`for (let ${P} = 0; ${P} < ${I}.length; ${P} += ${B}) {
229
- `,this.indentLevel++,!R)A+=this.indent()+`const ${q} = ${I}[${P}];
230
- `}}else A+=this.indent()+`for (const ${q} of ${this.generate(Z,"value")}) {
231
- `;if(this.indentLevel++,F&&F.length>0)A+=this.indent()+`if (${F.map((H)=>this.generate(H,"value")).join(" && ")}) {
247
+ `;let $=this.is(Y,"block")&&Y.length===2?Y[1]:Y;if(W.length===1){let[Q,J,Z,K]=W[0];if(Q==="for-in"){let X=K,z=Array.isArray(J)?J:[J],R=z.length===0,[D,G]=R?["_i",null]:z,M=this.is(D,"array")||this.is(D,"object")?this.generateDestructuringPattern(D):D;if(X&&X!==null){let q=Array.isArray(Z)&&Z[0];if(q instanceof String)q=S(q);if(q===".."||q==="..."){let I=q==="...",[B,P]=Z.slice(1);A+=this.indent()+`for (let ${M} = ${this.generate(B,"value")}; ${M} ${I?"<":"<="} ${this.generate(P,"value")}; ${M} += ${this.generate(X,"value")}) {
248
+ `}else{let I=this.generate(Z,"value"),B=G||"_i",P=this.generate(X,"value"),_=this.is(X,"-",1);if(A+=_?this.indent()+`for (let ${B} = ${I}.length - 1; ${B} >= 0; ${B} += ${P}) {
249
+ `:this.indent()+`for (let ${B} = 0; ${B} < ${I}.length; ${B} += ${P}) {
250
+ `,this.indentLevel++,!R)A+=this.indent()+`const ${M} = ${I}[${B}];
251
+ `}}else A+=this.indent()+`for (const ${M} of ${this.generate(Z,"value")}) {
252
+ `;if(this.indentLevel++,F&&F.length>0)A+=this.indent()+`if (${F.map((q)=>this.generate(q,"value")).join(" && ")}) {
232
253
  `,this.indentLevel++;if(A+=this.indent()+`${U}.push(${this.unwrap(this.generate($,"value"))});
233
254
  `,F&&F.length>0)this.indentLevel--,A+=this.indent()+`}
234
255
  `;return this.indentLevel--,A+=this.indent()+`}
235
256
  `,A}}return this.indent()+`${U} = (() => { /* complex comprehension */ })();
236
- `}generateComprehensionAsLoop(Y,W,F){let U="";if(W.length===1){let[A,$,Q,J]=W[0];if(A==="for-in"){let Z=J,K=Array.isArray($)?$:[$],X=K.length===0,[M,R]=X?["_i",null]:K,D=this.is(M,"array")||this.is(M,"object")?this.generateDestructuringPattern(M):M;if(Z&&Z!==null){let z=Array.isArray(Q)&&Q[0];if(z instanceof String)z=S(z);let q=z===".."||z==="...";if(q){let H=z==="...",[G,I]=Q.slice(1);U+=`for (let ${D} = ${this.generate(G,"value")}; ${D} ${H?"<":"<="} ${this.generate(I,"value")}; ${D} += ${this.generate(Z,"value")}) `}else{let H=this.generate(Q,"value"),G=R||"_i",I=this.generate(Z,"value"),P=this.is(Z,"-",1),B=P&&(Z[1]==="1"||Z[1]===1||S(Z[1])==="1"),_=!P&&(Z==="1"||Z===1||S(Z)==="1");if(B)U+=`for (let ${G} = ${H}.length - 1; ${G} >= 0; ${G}--) `;else if(_)U+=`for (let ${G} = 0; ${G} < ${H}.length; ${G}++) `;else if(P)U+=`for (let ${G} = ${H}.length - 1; ${G} >= 0; ${G} += ${I}) `;else U+=`for (let ${G} = 0; ${G} < ${H}.length; ${G} += ${I}) `;if(U+=`{
237
- `,this.indentLevel++,!X)U+=this.indent()+`const ${D} = ${H}[${G}];
238
- `}if(F?.length){if(!q)U+=this.indent();U+=`{
239
- `,this.indentLevel++,U+=this.indent()+`if (${F.map((H)=>this.generate(H,"value")).join(" && ")}) {
257
+ `}generateComprehensionAsLoop(Y,W,F){let U="";if(W.length===1){let[A,$,Q,J]=W[0];if(A==="for-in"){let Z=J,K=Array.isArray($)?$:[$],X=K.length===0,[z,R]=X?["_i",null]:K,D=this.is(z,"array")||this.is(z,"object")?this.generateDestructuringPattern(z):z;if(Z&&Z!==null){let G=Array.isArray(Q)&&Q[0];if(G instanceof String)G=S(G);let M=G===".."||G==="...";if(M){let q=G==="...",[H,I]=Q.slice(1);U+=`for (let ${D} = ${this.generate(H,"value")}; ${D} ${q?"<":"<="} ${this.generate(I,"value")}; ${D} += ${this.generate(Z,"value")}) `}else{let q=this.generate(Q,"value"),H=R||"_i",I=this.generate(Z,"value"),B=this.is(Z,"-",1),P=B&&(Z[1]==="1"||Z[1]===1||S(Z[1])==="1"),_=!B&&(Z==="1"||Z===1||S(Z)==="1");if(P)U+=`for (let ${H} = ${q}.length - 1; ${H} >= 0; ${H}--) `;else if(_)U+=`for (let ${H} = 0; ${H} < ${q}.length; ${H}++) `;else if(B)U+=`for (let ${H} = ${q}.length - 1; ${H} >= 0; ${H} += ${I}) `;else U+=`for (let ${H} = 0; ${H} < ${q}.length; ${H} += ${I}) `;if(U+=`{
258
+ `,this.indentLevel++,!X)U+=this.indent()+`const ${D} = ${q}[${H}];
259
+ `}if(F?.length){if(!M)U+=this.indent();U+=`{
260
+ `,this.indentLevel++,U+=this.indent()+`if (${F.map((q)=>this.generate(q,"value")).join(" && ")}) {
240
261
  `,this.indentLevel++,U+=this.indent()+this.generate(Y,"statement")+`;
241
262
  `,this.indentLevel--,U+=this.indent()+`}
242
- `,this.indentLevel--,U+=this.indent()+"}"}else{if(!q)U+=this.indent();U+=`{
263
+ `,this.indentLevel--,U+=this.indent()+"}"}else{if(!M)U+=this.indent();U+=`{
243
264
  `,this.indentLevel++,U+=this.indent()+this.generate(Y,"statement")+`;
244
- `,this.indentLevel--,U+=this.indent()+"}"}if(!q)this.indentLevel--,U+=`
245
- `+this.indent()+"}";return U}if(R){let z=this.generate(Q,"value");U+=`for (let ${R} = 0; ${R} < ${z}.length; ${R}++) `,U+=`{
246
- `,this.indentLevel++,U+=this.indent()+`const ${D} = ${z}[${R}];
265
+ `,this.indentLevel--,U+=this.indent()+"}"}if(!M)this.indentLevel--,U+=`
266
+ `+this.indent()+"}";return U}if(R){let G=this.generate(Q,"value");U+=`for (let ${R} = 0; ${R} < ${G}.length; ${R}++) `,U+=`{
267
+ `,this.indentLevel++,U+=this.indent()+`const ${D} = ${G}[${R}];
247
268
  `}else{if(U+=`for (const ${D} of ${this.generate(Q,"value")}) `,F?.length)U+=`{
248
- `,this.indentLevel++,U+=this.indent()+`if (${F.map((z)=>this.generate(z,"value")).join(" && ")}) {
269
+ `,this.indentLevel++,U+=this.indent()+`if (${F.map((G)=>this.generate(G,"value")).join(" && ")}) {
249
270
  `,this.indentLevel++,U+=this.indent()+this.generate(Y,"statement")+`;
250
271
  `,this.indentLevel--,U+=this.indent()+`}
251
272
  `,this.indentLevel--,U+=this.indent()+"}";else U+=`{
252
273
  `,this.indentLevel++,U+=this.indent()+this.generate(Y,"statement")+`;
253
- `,this.indentLevel--,U+=this.indent()+"}";return U}if(F?.length)U+=this.indent()+`if (${F.map((z)=>this.generate(z,"value")).join(" && ")}) {
274
+ `,this.indentLevel--,U+=this.indent()+"}";return U}if(F?.length)U+=this.indent()+`if (${F.map((G)=>this.generate(G,"value")).join(" && ")}) {
254
275
  `,this.indentLevel++,U+=this.indent()+this.generate(Y,"statement")+`;
255
276
  `,this.indentLevel--,U+=this.indent()+`}
256
277
  `;else U+=this.indent()+this.generate(Y,"statement")+`;
257
278
  `;return this.indentLevel--,U+=this.indent()+"}",U}if(A==="for-as"){let Z=Array.isArray($)?$:[$],[K]=Z,X=this.is(K,"array")||this.is(K,"object")?this.generateDestructuringPattern(K):K;if(U+=`for (const ${X} of ${this.generate(Q,"value")}) `,F?.length)U+=`{
258
- `,this.indentLevel++,U+=this.indent()+`if (${F.map((M)=>this.generate(M,"value")).join(" && ")}) {
279
+ `,this.indentLevel++,U+=this.indent()+`if (${F.map((z)=>this.generate(z,"value")).join(" && ")}) {
259
280
  `,this.indentLevel++,U+=this.indent()+this.generate(Y,"statement")+`;
260
281
  `,this.indentLevel--,U+=this.indent()+`}
261
282
  `,this.indentLevel--,U+=this.indent()+"}";else U+=`{
262
283
  `,this.indentLevel++,U+=this.indent()+this.generate(Y,"statement")+`;
263
- `,this.indentLevel--,U+=this.indent()+"}";return U}if(A==="for-of"){let Z=Array.isArray($)?$:[$],[K,X]=Z,M=J,R=this.generate(Q,"value");if(U+=`for (const ${K} in ${R}) {
264
- `,this.indentLevel++,M&&!X&&!F?.length)U+=this.indent()+`if (!Object.hasOwn(${R}, ${K})) continue;
284
+ `,this.indentLevel--,U+=this.indent()+"}";return U}if(A==="for-of"){let Z=Array.isArray($)?$:[$],[K,X]=Z,z=J,R=this.generate(Q,"value");if(U+=`for (const ${K} in ${R}) {
285
+ `,this.indentLevel++,z&&!X&&!F?.length)U+=this.indent()+`if (!Object.hasOwn(${R}, ${K})) continue;
265
286
  `,U+=this.indent()+this.generate(Y,"statement")+`;
266
- `;else if(M&&X&&F?.length)U+=this.indent()+`if (Object.hasOwn(${R}, ${K})) {
287
+ `;else if(z&&X&&F?.length)U+=this.indent()+`if (Object.hasOwn(${R}, ${K})) {
267
288
  `,this.indentLevel++,U+=this.indent()+`const ${X} = ${R}[${K}];
268
289
  `,U+=this.indent()+`if (${F.map((D)=>this.generate(D,"value")).join(" && ")}) {
269
290
  `,this.indentLevel++,U+=this.indent()+this.generate(Y,"statement")+`;
270
291
  `,this.indentLevel--,U+=this.indent()+`}
271
292
  `,this.indentLevel--,U+=this.indent()+`}
272
- `;else if(M&&X)U+=this.indent()+`if (Object.hasOwn(${R}, ${K})) {
293
+ `;else if(z&&X)U+=this.indent()+`if (Object.hasOwn(${R}, ${K})) {
273
294
  `,this.indentLevel++,U+=this.indent()+`const ${X} = ${R}[${K}];
274
295
  `,U+=this.indent()+this.generate(Y,"statement")+`;
275
296
  `,this.indentLevel--,U+=this.indent()+`}
@@ -285,11 +306,11 @@ ${this.indent()}}`}return`{ if (${this.generate(W,"value")}) ${this.generate(Y,"
285
306
  `;else U+=this.indent()+this.generate(Y,"statement")+`;
286
307
  `;return this.indentLevel--,U+=this.indent()+"}",U}}return this.generate(["comprehension",Y,W,F],"value")}generateIfElseWithEarlyReturns(Y){let[W,F,U,...A]=Y,$="",Q=W==="unless"?`!${this.generate(F,"value")}`:this.generate(F,"value");$+=this.indent()+`if (${Q}) {
287
308
  `,$+=this.withIndent(()=>this.generateBranchWithReturn(U)),$+=this.indent()+"}";for(let J of A)if($+=" else ",this.is(J,"if")){let[,Z,K,...X]=J;$+=`if (${this.generate(Z,"value")}) {
288
- `,$+=this.withIndent(()=>this.generateBranchWithReturn(K)),$+=this.indent()+"}";for(let M of X)$+=` else {
289
- `,$+=this.withIndent(()=>this.generateBranchWithReturn(M)),$+=this.indent()+"}"}else $+=`{
309
+ `,$+=this.withIndent(()=>this.generateBranchWithReturn(K)),$+=this.indent()+"}";for(let z of X)$+=` else {
310
+ `,$+=this.withIndent(()=>this.generateBranchWithReturn(z)),$+=this.indent()+"}"}else $+=`{
290
311
  `,$+=this.withIndent(()=>this.generateBranchWithReturn(J)),$+=this.indent()+"}";return $}generateBranchWithReturn(Y){let W=this.unwrapBlock(Y),F="";for(let U=0;U<W.length;U++){let A=U===W.length-1,$=W[U],Q=Array.isArray($)?$[0]:null;if(A&&!(Q==="return"||Q==="throw"||Q==="break"||Q==="continue"))F+=this.indent()+`return ${this.generate($,"value")};
291
312
  `;else F+=this.indent()+this.generate($,"statement")+`;
292
- `}return F}generateIfAsExpression(Y,W,F){if(this.is(W,"block")&&W.length>2||this.hasStatementInBranch(W)||F.some((J)=>this.is(J,"block")&&J.length>2||this.hasStatementInBranch(J)||this.hasNestedMultiStatement(J))){let J=this.containsAwait(Y)||this.containsAwait(W)||F.some((K)=>this.containsAwait(K)),Z=`${J?"await ":""}(${J?"async ":""}() => { `;Z+=`if (${this.generate(Y,"value")}) `,Z+=this.generateBlockWithReturns(W);for(let K of F)if(Z+=" else ",this.is(K,"if")){let[X,M,R,...D]=K;Z+=`if (${this.generate(M,"value")}) `,Z+=this.generateBlockWithReturns(R);for(let z of D)if(Z+=" else ",this.is(z,"if")){let[q,H,G,...I]=z;Z+=`if (${this.generate(H,"value")}) `,Z+=this.generateBlockWithReturns(G),F.push(...I)}else Z+=this.generateBlockWithReturns(z)}else Z+=this.generateBlockWithReturns(K);return Z+" })()"}let A=this.extractExpression(this.unwrapIfBranch(W)),$=this.buildTernaryChain(F),Q=this.generate(Y,"value");if(this.is(Y,"yield")||this.is(Y,"await"))Q=`(${Q})`;return`(${Q} ? ${A} : ${$})`}generateIfAsStatement(Y,W,F){let U=`if (${this.unwrap(this.generate(Y,"value"))}) `;U+=this.generate(this.unwrapIfBranch(W),"statement");for(let A of F)U+=" else "+this.generate(this.unwrapIfBranch(A),"statement");return U}generateSwitchCaseBody(Y,W){let F="";if(this.hasExplicitControlFlow(Y))for(let A of this.unwrapBlock(Y))F+=this.indent()+this.generate(A,"statement")+`;
313
+ `}return F}generateIfAsExpression(Y,W,F){if(this.is(W,"block")&&W.length>2||this.hasStatementInBranch(W)||F.some((J)=>this.is(J,"block")&&J.length>2||this.hasStatementInBranch(J)||this.hasNestedMultiStatement(J))){let J=this.containsAwait(Y)||this.containsAwait(W)||F.some((K)=>this.containsAwait(K)),Z=`${J?"await ":""}(${J?"async ":""}() => { `;Z+=`if (${this.generate(Y,"value")}) `,Z+=this.generateBlockWithReturns(W);for(let K of F)if(Z+=" else ",this.is(K,"if")){let[X,z,R,...D]=K;Z+=`if (${this.generate(z,"value")}) `,Z+=this.generateBlockWithReturns(R);for(let G of D)if(Z+=" else ",this.is(G,"if")){let[M,q,H,...I]=G;Z+=`if (${this.generate(q,"value")}) `,Z+=this.generateBlockWithReturns(H),F.push(...I)}else Z+=this.generateBlockWithReturns(G)}else Z+=this.generateBlockWithReturns(K);return Z+" })()"}let A=this.extractExpression(this.unwrapIfBranch(W)),$=this.buildTernaryChain(F),Q=this.generate(Y,"value");if(this.is(Y,"yield")||this.is(Y,"await"))Q=`(${Q})`;return`(${Q} ? ${A} : ${$})`}generateIfAsStatement(Y,W,F){let U=`if (${this.unwrap(this.generate(Y,"value"))}) `;U+=this.generate(this.unwrapIfBranch(W),"statement");for(let A of F)U+=" else "+this.generate(this.unwrapIfBranch(A),"statement");return U}generateSwitchCaseBody(Y,W){let F="";if(this.hasExplicitControlFlow(Y))for(let A of this.unwrapBlock(Y))F+=this.indent()+this.generate(A,"statement")+`;
293
314
  `;else if(W==="value")if(this.is(Y,"block")&&Y.length>2){let A=Y.slice(1);for(let $=0;$<A.length;$++)if($===A.length-1)F+=this.indent()+`return ${this.generate(A[$],"value")};
294
315
  `;else F+=this.indent()+this.generate(A[$],"statement")+`;
295
316
  `}else F+=this.indent()+`return ${this.extractExpression(Y)};
@@ -302,11 +323,11 @@ ${this.indent()}}`}return`{ if (${this.generate(W,"value")}) ${this.generate(Y,"
302
323
  `;this.indentLevel--,U+=this.indent()+"}"}if(W){if(U+=` else {
303
324
  `,this.indentLevel++,F==="value")U+=this.indent()+`return ${this.extractExpression(W)};
304
325
  `;else for(let A of this.unwrapBlock(W))U+=this.indent()+this.generate(A,"statement")+`;
305
- `;this.indentLevel--,U+=this.indent()+"}"}return F==="value"?`(() => { ${U} })()`:U}extractExpression(Y){let W=this.unwrapBlock(Y);return W.length>0?this.generate(W[W.length-1],"value"):"undefined"}unwrapBlock(Y){if(!Array.isArray(Y))return[Y];if(Y[0]==="block")return Y.slice(1);if(Array.isArray(Y[0]))return Y;return[Y]}indent(){return this.indentString.repeat(this.indentLevel)}needsSemicolon(Y,W){if(!W||W.endsWith(";"))return!1;if(!W.endsWith("}"))return!0;let F=Array.isArray(Y)?Y[0]:null;return!["def","class","if","unless","for-in","for-of","for-as","while","until","loop","switch","try"].includes(F)}addSemicolon(Y,W){return W+(this.needsSemicolon(Y,W)?";":"")}formatStatements(Y,W="statement"){return Y.map((F)=>this.indent()+this.addSemicolon(F,this.generate(F,W)))}wrapForCondition(Y){if(/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(Y))return Y;if(Y.startsWith("(")&&Y.endsWith(")"))return Y;return`(${Y})`}hasExplicitControlFlow(Y){if(!Array.isArray(Y))return!1;let W=Y[0];if(W==="return"||W==="throw"||W==="break"||W==="continue")return!0;if(W==="block")return Y.slice(1).some((F)=>Array.isArray(F)&&["return","throw","break","continue"].includes(F[0]));if(W==="switch"){let[,,F]=Y;return F?.some((U)=>{return this.unwrapBlock(U[2]).some(($)=>Array.isArray($)&&["return","throw","break","continue"].includes($[0]))})}if(W==="if"||W==="unless"){let[,,F,U]=Y;return this.branchHasControlFlow(F)&&U&&this.branchHasControlFlow(U)}return!1}branchHasControlFlow(Y){if(!Array.isArray(Y))return!1;let W=this.unwrapBlock(Y);if(W.length===0)return!1;let F=W[W.length-1];return Array.isArray(F)&&["return","throw","break","continue"].includes(F[0])}withIndent(Y){this.indentLevel++;let W=Y();return this.indentLevel--,W}is(Y,W,F){if(!Array.isArray(Y))return null;if((S(Y[0])??Y[0])!==W)return null;let U=Y.slice(1);if(F!=null&&U.length!==F)return null;return U}unwrap(Y){if(typeof Y!=="string")return Y;while(Y.startsWith("(")&&Y.endsWith(")")){let W=0,F=0,U=!0,A=!1;for(let $=0;$<Y.length;$++){if(Y[$]==="(")W++;if(Y[$]===")")W--;if(Y[$]==="["||Y[$]==="{")F++;if(Y[$]==="]"||Y[$]==="}")F--;if(Y[$]===","&&W===1&&F===0)A=!0;if(W===0&&$<Y.length-1){U=!1;break}}if(A)U=!1;if(U)Y=Y.slice(1,-1);else break}return Y}unwrapLogical(Y){if(typeof Y!=="string")return Y;while(Y.startsWith("(")&&Y.endsWith(")")){let W=0,F=1/0;for(let U=1;U<Y.length-1;U++){if(Y[U]==="(")W++;if(Y[U]===")")W--;F=Math.min(F,W)}if(F>=0)Y=Y.slice(1,-1);else break}return Y}unwrapIfBranch(Y){if(Array.isArray(Y)&&Y.length===1&&(!Array.isArray(Y[0])||Y[0][0]!=="block"))return Y[0];return Y}flattenBinaryChain(Y){if(!Array.isArray(Y)||Y.length<3)return Y;let[W,...F]=Y;if(W!=="&&"&&W!=="||")return Y;let U=[],A=($)=>{if(Array.isArray($)&&$[0]===W)for(let Q=1;Q<$.length;Q++)A($[Q]);else U.push($)};for(let $ of F)A($);return[W,...U]}hasStatementInBranch(Y){if(!Array.isArray(Y))return!1;let W=Y[0];if(W==="return"||W==="throw"||W==="break"||W==="continue")return!0;if(W==="block")return Y.slice(1).some((F)=>this.hasStatementInBranch(F));return!1}hasNestedMultiStatement(Y){if(!Array.isArray(Y))return!1;if(Y[0]==="if"){let[W,F,U,...A]=Y;return this.is(U,"block")&&U.length>2||A.some(($)=>this.hasNestedMultiStatement($))}return!1}buildTernaryChain(Y){if(Y.length===0)return"undefined";if(Y.length===1)return this.extractExpression(this.unwrapIfBranch(Y[0]));let W=Y[0];if(this.is(W,"if")){let[F,U,A,...$]=W,Q=this.extractExpression(this.unwrapIfBranch(A)),J=this.buildTernaryChain([...$,...Y.slice(1)]);return`(${this.generate(U,"value")} ? ${Q} : ${J})`}return this.extractExpression(this.unwrapIfBranch(W))}collectVarsFromArray(Y,W){Y.slice(1).forEach((F)=>{if(F===","||F==="...")return;if(typeof F==="string"){W.add(F);return}if(Array.isArray(F)){if(F[0]==="..."&&typeof F[1]==="string")W.add(F[1]);else if(F[0]==="array")this.collectVarsFromArray(F,W);else if(F[0]==="object")this.collectVarsFromObject(F,W)}})}collectVarsFromObject(Y,W){Y.slice(1).forEach((F)=>{if(!Array.isArray(F))return;if(F[0]==="..."&&typeof F[1]==="string"){W.add(F[1]);return}if(F.length>=2){let[U,A,$]=F;if($==="="){if(typeof U==="string")W.add(U)}else if(typeof A==="string")W.add(A);else if(Array.isArray(A)){if(A[0]==="array")this.collectVarsFromArray(A,W);else if(A[0]==="object")this.collectVarsFromObject(A,W)}}})}extractStringContent(Y){let W=S(Y).slice(1,-1),F=f(Y,"indent");if(F)W=W.replace(new RegExp(`\\n${F}`,"g"),`
306
- `);if(f(Y,"initialChunk")&&W.startsWith(`
307
- `))W=W.slice(1);if(f(Y,"finalChunk")&&W.endsWith(`
326
+ `;this.indentLevel--,U+=this.indent()+"}"}return F==="value"?`(() => { ${U} })()`:U}extractExpression(Y){let W=this.unwrapBlock(Y);return W.length>0?this.generate(W[W.length-1],"value"):"undefined"}unwrapBlock(Y){if(!Array.isArray(Y))return[Y];if(Y[0]==="block")return Y.slice(1);if(Array.isArray(Y[0]))return Y;return[Y]}indent(){return this.indentString.repeat(this.indentLevel)}needsSemicolon(Y,W){if(!W||W.endsWith(";"))return!1;if(!W.endsWith("}"))return!0;let F=Array.isArray(Y)?Y[0]:null;return!["def","class","if","unless","for-in","for-of","for-as","while","until","loop","switch","try"].includes(F)}addSemicolon(Y,W){return W+(this.needsSemicolon(Y,W)?";":"")}formatStatements(Y,W="statement"){return Y.map((F)=>this.indent()+this.addSemicolon(F,this.generate(F,W)))}wrapForCondition(Y){if(/^[a-zA-Z_$][a-zA-Z0-9_$]*$/.test(Y))return Y;if(Y.startsWith("(")&&Y.endsWith(")"))return Y;return`(${Y})`}hasExplicitControlFlow(Y){if(!Array.isArray(Y))return!1;let W=Y[0];if(W==="return"||W==="throw"||W==="break"||W==="continue")return!0;if(W==="block")return Y.slice(1).some((F)=>Array.isArray(F)&&["return","throw","break","continue"].includes(F[0]));if(W==="switch"){let[,,F]=Y;return F?.some((U)=>{return this.unwrapBlock(U[2]).some(($)=>Array.isArray($)&&["return","throw","break","continue"].includes($[0]))})}if(W==="if"||W==="unless"){let[,,F,U]=Y;return this.branchHasControlFlow(F)&&U&&this.branchHasControlFlow(U)}return!1}branchHasControlFlow(Y){if(!Array.isArray(Y))return!1;let W=this.unwrapBlock(Y);if(W.length===0)return!1;let F=W[W.length-1];return Array.isArray(F)&&["return","throw","break","continue"].includes(F[0])}withIndent(Y){this.indentLevel++;let W=Y();return this.indentLevel--,W}is(Y,W,F){if(!Array.isArray(Y))return null;if((S(Y[0])??Y[0])!==W)return null;let U=Y.slice(1);if(F!=null&&U.length!==F)return null;return U}unwrap(Y){if(typeof Y!=="string")return Y;while(Y.startsWith("(")&&Y.endsWith(")")){let W=0,F=0,U=!0,A=!1;for(let $=0;$<Y.length;$++){if(Y[$]==="(")W++;if(Y[$]===")")W--;if(Y[$]==="["||Y[$]==="{")F++;if(Y[$]==="]"||Y[$]==="}")F--;if(Y[$]===","&&W===1&&F===0)A=!0;if(W===0&&$<Y.length-1){U=!1;break}}if(A)U=!1;if(U)Y=Y.slice(1,-1);else break}return Y}unwrapLogical(Y){if(typeof Y!=="string")return Y;while(Y.startsWith("(")&&Y.endsWith(")")){let W=0,F=1/0;for(let U=1;U<Y.length-1;U++){if(Y[U]==="(")W++;if(Y[U]===")")W--;F=Math.min(F,W)}if(F>=0)Y=Y.slice(1,-1);else break}return Y}unwrapIfBranch(Y){if(Array.isArray(Y)&&Y.length===1&&(!Array.isArray(Y[0])||Y[0][0]!=="block"))return Y[0];return Y}flattenBinaryChain(Y){if(!Array.isArray(Y)||Y.length<3)return Y;let[W,...F]=Y;if(W!=="&&"&&W!=="||")return Y;let U=[],A=($)=>{if(Array.isArray($)&&$[0]===W)for(let Q=1;Q<$.length;Q++)A($[Q]);else U.push($)};for(let $ of F)A($);return[W,...U]}hasStatementInBranch(Y){if(!Array.isArray(Y))return!1;let W=Y[0];if(W==="return"||W==="throw"||W==="break"||W==="continue")return!0;if(W==="block")return Y.slice(1).some((F)=>this.hasStatementInBranch(F));return!1}hasNestedMultiStatement(Y){if(!Array.isArray(Y))return!1;if(Y[0]==="if"){let[W,F,U,...A]=Y;return this.is(U,"block")&&U.length>2||A.some(($)=>this.hasNestedMultiStatement($))}return!1}buildTernaryChain(Y){if(Y.length===0)return"undefined";if(Y.length===1)return this.extractExpression(this.unwrapIfBranch(Y[0]));let W=Y[0];if(this.is(W,"if")){let[F,U,A,...$]=W,Q=this.extractExpression(this.unwrapIfBranch(A)),J=this.buildTernaryChain([...$,...Y.slice(1)]);return`(${this.generate(U,"value")} ? ${Q} : ${J})`}return this.extractExpression(this.unwrapIfBranch(W))}collectVarsFromArray(Y,W){Y.slice(1).forEach((F)=>{if(F===","||F==="...")return;if(typeof F==="string"){W.add(F);return}if(Array.isArray(F)){if(F[0]==="..."&&typeof F[1]==="string")W.add(F[1]);else if(F[0]==="array")this.collectVarsFromArray(F,W);else if(F[0]==="object")this.collectVarsFromObject(F,W)}})}collectVarsFromObject(Y,W){Y.slice(1).forEach((F)=>{if(!Array.isArray(F))return;if(F[0]==="..."&&typeof F[1]==="string"){W.add(F[1]);return}if(F.length>=2){let[U,A,$]=F;if($==="="){if(typeof U==="string")W.add(U)}else if(typeof A==="string")W.add(A);else if(Array.isArray(A)){if(A[0]==="array")this.collectVarsFromArray(A,W);else if(A[0]==="object")this.collectVarsFromObject(A,W)}}})}extractStringContent(Y){let W=S(Y).slice(1,-1),F=V(Y,"indent");if(F)W=W.replace(new RegExp(`\\n${F}`,"g"),`
327
+ `);if(V(Y,"initialChunk")&&W.startsWith(`
328
+ `))W=W.slice(1);if(V(Y,"finalChunk")&&W.endsWith(`
308
329
  `))W=W.slice(0,-1);return W}processHeregex(Y){let W="",F=!1,U=0,A=()=>{let $=0,Q=U-1;while(Q>=0&&Y[Q]==="\\")$++,Q--;return $%2===1};while(U<Y.length){let $=Y[U];if($==="["&&!A()){F=!0,W+=$,U++;continue}if($==="]"&&F&&!A()){F=!1,W+=$,U++;continue}if(F){W+=$,U++;continue}if(/\s/.test($)){U++;continue}if($==="#"){if(A()){W+=$,U++;continue}let Q=U-1;while(Q>=0&&Y[Q]==="\\")Q--;if(Q<U-1){W+=$,U++;continue}while(U<Y.length&&Y[U]!==`
309
- `)U++;continue}W+=$,U++}return W}addJsExtensionAndAssertions(Y){if(Y instanceof String)Y=S(Y);if(typeof Y!=="string")return Y;let F=Y.startsWith('"')||Y.startsWith("'")?Y.slice(1,-1):Y,U=F.startsWith("./")||F.startsWith("../"),A=F,$="";if(U){let Q=F.lastIndexOf("/"),J=Q>=0?F.substring(Q+1):F;if(J.includes(".")){if(J.endsWith(".json"))$=" with { type: 'json' }"}else A=F+".js"}return`'${A}'`+$}containsIt(Y){if(!Y)return!1;if(Y==="it"||Y instanceof String&&S(Y)==="it")return!0;if(typeof Y!=="object")return!1;if(this.is(Y,"def")||this.is(Y,"->")||this.is(Y,"=>"))return!1;if(Array.isArray(Y))return Y.some((W)=>this.containsIt(W));return!1}containsAwait(Y){if(!Y)return!1;if(Y instanceof String&&f(Y,"await")===!0)return!0;if(typeof Y!=="object")return!1;if(this.is(Y,"await"))return!0;if(this.is(Y,"for-as")&&Y[3]===!0)return!0;if(this.is(Y,"def")||this.is(Y,"->")||this.is(Y,"=>")||this.is(Y,"class"))return!1;if(Array.isArray(Y))return Y.some((W)=>this.containsAwait(W));return!1}containsYield(Y){if(!Y)return!1;if(typeof Y!=="object")return!1;if(this.is(Y,"yield")||this.is(Y,"yield-from"))return!0;if(this.is(Y,"def")||this.is(Y,"->")||this.is(Y,"=>")||this.is(Y,"class"))return!1;if(Array.isArray(Y))return Y.some((W)=>this.containsYield(W));return!1}extractMemberName(Y){if(this.is(Y,".")&&Y[1]==="this")return Y[2];if(this.is(Y,"computed"))return`[${this.generate(Y[1],"value")}]`;return Y}getReactiveRuntime(){return`// ============================================================================
330
+ `)U++;continue}W+=$,U++}return W}addJsExtensionAndAssertions(Y){if(Y instanceof String)Y=S(Y);if(typeof Y!=="string")return Y;let F=Y.startsWith('"')||Y.startsWith("'")?Y.slice(1,-1):Y,U=F.startsWith("./")||F.startsWith("../"),A=F,$="";if(U){let Q=F.lastIndexOf("/"),J=Q>=0?F.substring(Q+1):F;if(J.includes(".")){if(J.endsWith(".json"))$=" with { type: 'json' }"}else A=F+".js"}return`'${A}'`+$}containsIt(Y){if(!Y)return!1;if(Y==="it"||Y instanceof String&&S(Y)==="it")return!0;if(typeof Y!=="object")return!1;if(this.is(Y,"def")||this.is(Y,"->")||this.is(Y,"=>"))return!1;if(Array.isArray(Y))return Y.some((W)=>this.containsIt(W));return!1}containsAwait(Y){if(!Y)return!1;if(Y instanceof String&&V(Y,"await")===!0)return!0;if(typeof Y!=="object")return!1;if(this.is(Y,"await"))return!0;if(this.is(Y,"for-as")&&Y[3]===!0)return!0;if(this.is(Y,"def")||this.is(Y,"->")||this.is(Y,"=>")||this.is(Y,"class"))return!1;if(Array.isArray(Y))return Y.some((W)=>this.containsAwait(W));return!1}containsYield(Y){if(!Y)return!1;if(typeof Y!=="object")return!1;if(this.is(Y,"yield")||this.is(Y,"yield-from"))return!0;if(this.is(Y,"def")||this.is(Y,"->")||this.is(Y,"=>")||this.is(Y,"class"))return!1;if(Array.isArray(Y))return Y.some((W)=>this.containsYield(W));return!1}extractMemberName(Y){if(this.is(Y,".")&&Y[1]==="this")return Y[2];if(this.is(Y,"computed"))return`[${this.generate(Y[1],"value")}]`;return Y}getReactiveRuntime(){return`// ============================================================================
310
331
  // Rip Reactive Runtime
311
332
  // A minimal, fine-grained reactivity system
312
333
  //
@@ -347,6 +368,7 @@ const __primitiveCoercion = {
347
368
  };
348
369
 
349
370
  function __state(initialValue) {
371
+ if (initialValue != null && typeof initialValue === 'object' && typeof initialValue.read === 'function') return initialValue;
350
372
  let value = initialValue;
351
373
  const subscribers = new Set();
352
374
  let notifying = false;
@@ -520,12 +542,12 @@ if (typeof globalThis !== 'undefined') {
520
542
 
521
543
  // === End Reactive Runtime ===
522
544
  `}}class e{constructor(Y={}){this.options={showTokens:!1,showSExpr:!1,...Y}}compile(Y){let W=null,F=Y.split(`
523
- `),U=F.findIndex((z)=>z==="__DATA__");if(U!==-1){let z=F.slice(U+1);W=z.length>0?z.join(`
545
+ `),U=F.findIndex((G)=>G==="__DATA__");if(U!==-1){let G=F.slice(U+1);W=G.length>0?G.join(`
524
546
  `)+`
525
547
  `:"",Y=F.slice(0,U).join(`
526
- `)}let $=new g().tokenize(Y);if(this.options.showTokens)$.forEach((z)=>console.log(`${z[0].padEnd(12)} ${JSON.stringify(z[1])}`)),console.log();let Q=null,J=null;if(this.options.types==="emit"||this.options.types==="check"||this.options.types===!0)J=[...$];$=$.filter((z)=>z[0]!=="TYPE_DECL");while($.length>0&&$[0][0]==="TERMINATOR")$.shift();if($.every((z)=>z[0]==="TERMINATOR")){if(J)Q=Y1(J,["program"]);return{tokens:$,sexpr:["program"],code:"",dts:Q,data:W,reactiveVars:{}}}x.lexer={tokens:$,pos:0,setInput:function(){},lex:function(){if(this.pos>=this.tokens.length)return 1;let z=this.tokens[this.pos++],q=z[1];if(z.data)q=new String(q),Object.assign(q,z.data);return this.text=q,this.loc=z.loc,z[0]}};let Z;try{Z=x.parse(Y)}catch(z){if(/\?\s*\([^)]*\?[^)]*:[^)]*\)\s*:/.test(Y)||/\?\s+\w+\s+\?\s+/.test(Y))throw Error("Nested ternary operators are not supported. Use if/else statements instead.");throw z}if(this.options.showSExpr)console.log(v(Z,0,!0)),console.log();let K=null;if(this.options.sourceMap){let z=(this.options.filename||"output")+".js",q=this.options.filename||"input.rip";K=new F1(z,q,Y)}let X=new j({dataSection:W,skipPreamble:this.options.skipPreamble,reactiveVars:this.options.reactiveVars,sourceMap:K}),M=X.compile(Z),R=K?K.toJSON():null,D=K?K.toReverseMap():null;if(R&&this.options.sourceMap==="inline"){let z=typeof Buffer<"u"?Buffer.from(R).toString("base64"):btoa(R);M+=`
527
- //# sourceMappingURL=data:application/json;base64,${z}`}else if(R&&this.options.filename)M+=`
528
- //# sourceMappingURL=${this.options.filename}.js.map`;if(J)Q=Y1(J,Z);return{tokens:$,sexpr:Z,code:M,dts:Q,map:R,reverseMap:D,data:W,reactiveVars:X.reactiveVars}}compileToJS(Y){return this.compile(Y).code}compileToSExpr(Y){return this.compile(Y).sexpr}}T1(j);j.prototype.generateEnum=K1;function O2(Y,W={}){return new e(W).compile(Y)}function c(Y,W={}){return new e(W).compileToJS(Y)}function Q1(){return new j({}).getReactiveRuntime()}function P2(){return new j({}).getComponentRuntime()}var x2="3.7.3",k2="2026-02-11@10:29:15GMT";if(typeof globalThis<"u"&&!globalThis.__rip)Function(Q1())();var _2=(Y)=>{let W=Y.match(/^[ \t]*(?=\S)/gm),F=Math.min(...(W||[]).map((U)=>U.length));return Y.replace(RegExp(`^[ ]{${F}}`,"gm"),"").trim()};async function S1(){let Y=document.querySelectorAll('script[type="text/rip"]');for(let W of Y){if(W.hasAttribute("data-rip-processed"))continue;try{let F=_2(W.textContent),U=c(F);await(0,eval)(`(async()=>{
548
+ `)}let $=new x().tokenize(Y);if(this.options.showTokens)$.forEach((G)=>console.log(`${G[0].padEnd(12)} ${JSON.stringify(G[1])}`)),console.log();let Q=null,J=null;if(this.options.types==="emit"||this.options.types==="check"||this.options.types===!0)J=[...$];$=$.filter((G)=>G[0]!=="TYPE_DECL");while($.length>0&&$[0][0]==="TERMINATOR")$.shift();if($.every((G)=>G[0]==="TERMINATOR")){if(J)Q=Y1(J,["program"]);return{tokens:$,sexpr:["program"],code:"",dts:Q,data:W,reactiveVars:{}}}k.lexer={tokens:$,pos:0,setInput:function(){},lex:function(){if(this.pos>=this.tokens.length)return 1;let G=this.tokens[this.pos++],M=G[1];if(G.data)M=new String(M),Object.assign(M,G.data);return this.text=M,this.loc=G.loc,G[0]}};let Z;try{Z=k.parse(Y)}catch(G){if(/\?\s*\([^)]*\?[^)]*:[^)]*\)\s*:/.test(Y)||/\?\s+\w+\s+\?\s+/.test(Y))throw Error("Nested ternary operators are not supported. Use if/else statements instead.");throw G}if(this.options.showSExpr)console.log(g(Z,0,!0)),console.log();let K=null;if(this.options.sourceMap){let G=(this.options.filename||"output")+".js",M=this.options.filename||"input.rip";K=new F1(G,M,Y)}let X=new j({dataSection:W,skipPreamble:this.options.skipPreamble,reactiveVars:this.options.reactiveVars,sourceMap:K}),z=X.compile(Z),R=K?K.toJSON():null,D=K?K.toReverseMap():null;if(R&&this.options.sourceMap==="inline"){let G=typeof Buffer<"u"?Buffer.from(R).toString("base64"):btoa(R);z+=`
549
+ //# sourceMappingURL=data:application/json;base64,${G}`}else if(R&&this.options.filename)z+=`
550
+ //# sourceMappingURL=${this.options.filename}.js.map`;if(J)Q=Y1(J,Z);return{tokens:$,sexpr:Z,code:z,dts:Q,map:R,reverseMap:D,data:W,reactiveVars:X.reactiveVars}}compileToJS(Y){return this.compile(Y).code}compileToSExpr(Y){return this.compile(Y).sexpr}}S1(j);j.prototype.generateEnum=D1;function P2(Y,W={}){return new e(W).compile(Y)}function l(Y,W={}){return new e(W).compileToJS(Y)}function Q1(){return new j({}).getReactiveRuntime()}function _2(){return new j({}).getComponentRuntime()}var k2="3.7.4",c2="2026-02-11@13:07:41GMT";if(typeof globalThis<"u"&&!globalThis.__rip)Function(Q1())();var w2=(Y)=>{let W=Y.match(/^[ \t]*(?=\S)/gm),F=Math.min(...(W||[]).map((U)=>U.length));return Y.replace(RegExp(`^[ ]{${F}}`,"gm"),"").trim()};async function L1(){let Y=document.querySelectorAll('script[type="text/rip"]');for(let W of Y){if(W.hasAttribute("data-rip-processed"))continue;try{let F=w2(W.textContent),U;try{U=l(F)}catch(A){console.error("Rip compile error:",A.message),console.error("Source:",F);continue}await(0,eval)(`(async()=>{
529
551
  ${U}
530
- })()`),W.setAttribute("data-rip-processed","true")}catch(F){console.error("Error compiling Rip script:",F),console.error("Script content:",W.textContent)}}}if(typeof document<"u")if(document.readyState==="loading")document.addEventListener("DOMContentLoaded",S1);else S1();async function w2(Y){let W=await fetch(Y).then(($)=>{if(!$.ok)throw Error(`importRip: ${Y} (${$.status})`);return $.text()}),F=c(W),U=new Blob([F],{type:"application/javascript"}),A=URL.createObjectURL(U);try{return await import(A)}finally{URL.revokeObjectURL(A)}}function B2(Y){try{let W=Y.replace(/^/gm," "),U=c(`do ->
531
- ${W}`).replace(/^let\s+[^;]+;\s*\n\s*/m,"");U=U.replace(/^const\s+(\w+)\s*=/gm,"globalThis.$1 =");let A=(0,eval)(U);if(A&&typeof A.then==="function")return A.then(($)=>{if($!==void 0)globalThis._=$;return $});if(A!==void 0)globalThis._=A;return A}catch(W){console.error("Rip compilation error:",W.message);return}}if(typeof globalThis<"u")globalThis.rip=B2,globalThis.importRip=w2,globalThis.compileToJS=c;export{B2 as rip,S1 as processRipScripts,x as parser,w2 as importRip,Q1 as getReactiveRuntime,P2 as getComponentRuntime,v as formatSExpr,c as compileToJS,O2 as compile,x2 as VERSION,g as Lexer,e as Compiler,j as CodeGenerator,k2 as BUILD_DATE};
552
+ })()`),W.setAttribute("data-rip-processed","true")}catch(F){console.error("Rip runtime error:",F)}}}async function B2(Y){let W=await fetch(Y).then(($)=>{if(!$.ok)throw Error(`importRip: ${Y} (${$.status})`);return $.text()}),F=l(W),U=new Blob([F],{type:"application/javascript"}),A=URL.createObjectURL(U);try{return await import(A)}finally{URL.revokeObjectURL(A)}}function I2(Y){try{let W=Y.replace(/^/gm," "),U=l(`do ->
553
+ ${W}`).replace(/^let\s+[^;]+;\s*\n\s*/m,"");U=U.replace(/^const\s+(\w+)\s*=/gm,"globalThis.$1 =");let A=(0,eval)(U);if(A&&typeof A.then==="function")return A.then(($)=>{if($!==void 0)globalThis._=$;return $});if(A!==void 0)globalThis._=A;return A}catch(W){console.error("Rip compilation error:",W.message);return}}if(typeof globalThis<"u")globalThis.rip=I2,globalThis.importRip=B2,globalThis.compileToJS=l;if(typeof document<"u")if(document.readyState==="loading")document.addEventListener("DOMContentLoaded",L1);else L1();export{I2 as rip,L1 as processRipScripts,k as parser,B2 as importRip,Q1 as getReactiveRuntime,_2 as getComponentRuntime,g as formatSExpr,l as compileToJS,P2 as compile,k2 as VERSION,x as Lexer,e as Compiler,j as CodeGenerator,c2 as BUILD_DATE};