rip-lang 2.5.1 → 2.7.2

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,294 +1,280 @@
1
- var N1=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"]),b3=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"]),i1=new Set([...N1,...b3]);var w1,r1,h3,E1,Q1,a1,t1,g3,e1,T1,v1,n,I1,c,p,R3,_3,A3,U3,$3,E3,X3,Y3,L1,u1,j1,f1,F3,b1,G1,D3,W1,$1,M3,Z3,J3,Q3,G3,W3,O3,K3,q3,H3,z3,P3,N3,O1,h1,g1,d,B3,S3,w3,V1,x1,T3,I3,L3,j3,V3,C1,C3,X1,y3,y1,o,m,v3,J1,R1,B1,s1,_1,S1,j=[].indexOf,s=[].slice,x3={}.hasOwnProperty,u3=function(U,A){var $="";while(A>0){if(A&1)$+=U;A>>>=1,U+=U}return $},k3=function(U,A){var $=0,E=0;if(!A.length)return 1/0;while(E=1+U.indexOf(A,E))$++;return $},n1=function(U,A){for(var $ in A)U[$]=A[$];return U},c3=function(U,A){return n1(n1({},U),A)},l3=function(U){return U.flat(1/0)},m3=function(U){var A={},$,E=[];for(var R=0;R<U.length;R++){var _=U[R];if(_.comments)for(var X=0;X<_.comments.length;X++){var Y=_.comments[X],F=Y.locationData.range[0];A[F]=Y}}$=Object.keys(A).sort((Z,M)=>Z-M);for(var D=0;D<$.length;D++)E.push(A[$[D]]);return E},o1=function(U,A){if(!U||U.length===0)return;if(!A.comments)A.comments=[];A.comments.push(...U)},p3=function(U){if(U==null)return NaN;var A=null;switch(U.charAt(1)){case"b":A=2;break;case"o":A=8;break;case"x":A=16;break}if(A!=null)return parseInt(U.slice(2).replace(/_/g,""),A);else return parseFloat(U.replace(/_/g,""))},d3=function(){if(!(this.code&&this.location))return Error.prototype.toString.call(this);var{first_line:U,first_column:A,last_line:$,last_column:E}=this.location;if($==null)$=U;if(E==null)E=A;var R=this.filename||"[stdin]";if(R.startsWith("<anonymous"))R="[stdin]";var _=this.code.split(`
2
- `)[U],X=A,Y=U===$?E+1:_.length,F=_.slice(0,X).replace(/[^\s]/g," ")+u3("^",Y-X),D=typeof process<"u"&&process!==null&&process.stdout?.isTTY&&!process.env?.NODE_DISABLE_COLORS;if(this.colorful!=null?this.colorful:D){var Z=(M)=>`\x1B[1;31m${M}\x1B[0m`;_=_.slice(0,X)+Z(_.slice(X,Y))+_.slice(Y),F=Z(F)}return`${R}:${U+1}:${A+1}: error: ${this.message}
3
- ${_}
4
- ${F}`},i3=function(U,A){var $=SyntaxError(U);throw $.location=A,$.toString=d3,$.stack=$.toString(),$},s3=/(\\\\)|\\u\{([\da-fA-F]+)\}/g,n3=function(U){var A=function(R){var _=R.toString(16);return`\\u${u3("0",4-_.length)}${_}`};if(U<65536)return A(U);var $=Math.floor((U-65536)/1024)+55296,E=(U-65536)%1024+56320;return`${A($)}${A(E)}`},o3=function(U,{flags:A,error:$,delimiter:E=""}={}){var R=A!=null&&j.call(A,"u")<0;return U.replace(s3,function(_,X,Y,F){if(X)return X;var D=parseInt(Y,16);if(D>1114111)$("unicode code point escapes greater than \\u{10ffff} are not allowed",{offset:F+E.length,length:Y.length+4});if(!R)return _;return n3(D)})},k1=class U{constructor(){this.error=this.error.bind(this)}tokenize(A,$={}){var E,R,_,X;this.indent=0,this.baseIndent=0,this.overIndent=0,this.outdebt=0,this.indents=[],this.indentLiteral="",this.ends=[],this.tokens=[],this.seenFor=!1,this.seenImport=!1,this.seenExport=!1,this.importSpecifierList=!1,this.exportSpecifierList=!1,this.inRender=!1,this.renderIndent=0,this.chunkLine=$.line||0,this.chunkColumn=$.column||0,this.chunkOffset=$.offset||0,this.locTweaks=$.locTweaks||{},A=this.clean(A),_=0;while(this.chunk=A.slice(_))if(E=this.identifierToken()||this.commentToken()||this.whitespaceToken()||this.lineToken()||this.stringToken()||this.numberToken()||this.regexToken()||this.jsToken()||this.literalToken(),[this.chunkLine,this.chunkColumn,this.chunkOffset]=this.getLineAndColumnFromChunk(E),_+=E,$.untilBalanced&&this.ends.length===0)return{tokens:this.tokens,index:_};if(this.closeIndentation(),R=this.ends.pop())this.error(`missing ${R.tag}`,((X=R.origin)!=null?X:R)[2]);if($.rewrite===!1)return this.tokens;return new B3().rewrite(this.tokens)}clean(A){var $,E;if(E=0,A.charCodeAt(0)===r1)A=A.slice(1),this.locTweaks[0]=1,E+=1;if(y1.test(A)){if(A=`
5
- ${A}`,this.chunkLine--,($=this.locTweaks)[0]==null)$[0]=0;this.locTweaks[0]-=1}return A.replace(/\r/g,(R,_)=>{return this.locTweaks[E+_]=1,""}).replace(V3,"")}identifierToken(){var A,$,E,R,_,X,Y,F,D,Z,M,Q,G,J,W,H,q,O,N,P,K,w,B,z,S,I,L,T,V,y;if(/^~[=>]/.test(this.chunk)||/^=!/.test(this.chunk))return 0;if(!(D=Y3.exec(this.chunk)))return 0;if([F,X,E]=D,Y=X.length,Z=void 0,X==="own"&&this.tag()==="FOR")return this.token("OWN",X),X.length;if(X==="from"&&this.tag()==="YIELD")return this.token("FROM",X),X.length;if(X==="as"&&this.seenImport){if(this.value()==="*")this.tokens[this.tokens.length-1][0]="IMPORT_ALL";else if(G=this.value(!0),j.call(d,G)>=0)M=this.prev(),[M[0],M[1]]=["IDENTIFIER",this.value(!0)];if((J=this.tag())==="DEFAULT"||J==="IMPORT_ALL"||J==="IDENTIFIER")return this.token("AS",X),X.length}if(X==="as"&&this.seenExport){if((O=this.tag())==="IDENTIFIER"||O==="DEFAULT")return this.token("AS",X),X.length;if(N=this.value(!0),j.call(d,N)>=0)return M=this.prev(),[M[0],M[1]]=["IDENTIFIER",this.value(!0)],this.token("AS",X),X.length}if(X==="default"&&this.seenExport&&((P=this.tag())==="EXPORT"||P==="AS"))return this.token("DEFAULT",X),X.length;if(X==="do"&&(I=/^(\s*super)(?!\(\))/.exec(this.chunk.slice(3))))return this.token("SUPER","super"),this.token("CALL_START","("),this.token("CALL_END",")"),[F,L]=I,L.length+3;M=this.prev();let u=this.inRender&&M!=null&&M[0]==="#"&&!M.spaced;if(T=E||M!=null&&((K=M[0])==="."||K==="?."||K==="::"||K==="?::"||!M.spaced&&M[0]==="@")||u?"PROPERTY":"IDENTIFIER",y={},T==="IDENTIFIER"&&(j.call(W1,X)>=0||j.call(d,X)>=0)&&!(this.exportSpecifierList&&j.call(d,X)>=0)){if(T=X.toUpperCase(),T==="WHEN"&&(w=this.tag(),j.call(M3,w)>=0))T="LEADING_WHEN";else if(T==="FOR")this.seenFor={endsLength:this.ends.length};else if(T==="UNLESS");else if(T==="IMPORT")this.seenImport=!0;else if(T==="EXPORT")this.seenExport=!0;else if(T==="RENDER")this.inRender=!0,this.renderIndent=this.indent;else if(j.call(C1,T)>=0)T="UNARY";else if(j.call(N3,T)>=0){if(T!=="INSTANCEOF"&&this.seenFor)T="FOR"+T,this.seenFor=!1;else if(T="RELATION",this.value()==="!")Z=this.tokens.pop(),y.invert=(B=(z=Z.data)!=null?z.original:void 0)!=null?B:Z[1]}}else if(T==="IDENTIFIER"&&this.seenFor&&X==="from"&&v3(M))T="FORFROM",this.seenFor=!1;else if(T==="PROPERTY"&&M){if(M.spaced&&(S=M[0],j.call(E1,S)>=0)&&/^[gs]et$/.test(M[1])&&this.tokens.length>1&&((W=this.tokens[this.tokens.length-2][0])!=="."&&W!=="?."&&W!=="@"))this.error(`'${M[1]}' cannot be used as a keyword, or as a function call without parentheses`,M[2]);else if(M[0]==="."&&this.tokens.length>1&&(Q=this.tokens[this.tokens.length-2])[0]==="UNARY"&&Q[1]==="new")Q[0]="NEW_TARGET";else if(M[0]==="."&&this.tokens.length>1&&(Q=this.tokens[this.tokens.length-2])[0]==="IMPORT"&&Q[1]==="import")this.seenImport=!1,Q[0]="IMPORT_META";else if(this.tokens.length>2){if(Q=this.tokens[this.tokens.length-2],((H=M[0])==="@"||H==="THIS")&&Q&&Q.spaced&&/^[gs]et$/.test(Q[1])&&((q=this.tokens[this.tokens.length-3][0])!=="."&&q!=="?."&&q!=="@"))this.error(`'${Q[1]}' cannot be used as a keyword, or as a function call without parentheses`,Q[2])}}if(T==="IDENTIFIER"&&j.call(O1,X)>=0)this.error(`reserved word '${X}'`,{length:X.length});if(!(T==="PROPERTY"||this.exportSpecifierList||this.importSpecifierList)){if(X==="is"&&this.chunk.slice(Y,Y+4)===" not"){if(A=this.chunk.slice(Y+4).trim(),!A.match(/^(false|true)\s+(is|isnt|==|!=)/))X="isnt",Y+=4}if(j.call(h1,X)>=0)$=X,X=g1[X],y.original=$;T=function(){switch(X){case"!":return"UNARY";case"==":case"!=":return"COMPARE";case"true":case"false":return"BOOL";case"break":case"continue":case"debugger":return"STATEMENT";case"&&":case"||":return X;default:return T}}()}let h=Y;if(X.length>1&&X.endsWith("!"))y.await=!0,X=X.slice(0,-1);if(V=this.token(T,X,{length:h,data:y}),$)V.origin=[T,$,V[2]];if(Z)[V[2].first_line,V[2].first_column,V[2].range[0]]=[Z[2].first_line,Z[2].first_column,Z[2].range[0]];if(E)R=F.lastIndexOf(":"),_=this.token(":",":",{offset:R});if(E)return h+E.length;else return h}commentToken(A=this.chunk,{heregex:$,returnCommentTokens:E=!1,offsetInChunk:R=0}={}){var _,X,Y,F,D,Z,M,Q,G,J,W,H,q,O,N,P,K,w,B,z,S,I,L,T,V,y;if(this.inRender&&A[0]==="#"&&/^#[a-zA-Z_$]/.test(A))return 0;if(!(B=A.match(t1)))return 0;if([Y,G,Q,J,w]=B,D=null,q=/^\s*\n+\s*#/.test(Y),Q){if(z=R3.exec(Q),z)this.error(`block comments cannot contain ${z[0]}`,{offset:3+z.index,length:z[0].length});A=A.replace(`###${Q}###`,""),A=A.replace(/^\n+/,""),this.lineToken({chunk:A}),F=Q,D=[{content:F,length:Y.length-G.length-J.length,leadingWhitespace:G}]}else N="",F=w.replace(/^(\n*)/,function(u){return N=u,""}),V="",M=!1,D=F.split(`
6
- `).map(function(u,h){var b,a;if(!(u.indexOf("#")>-1)){V+=`
7
- ${u}`;return}return a="",F=u.replace(/^([ |\t]*)#/,function(k,F1){return a=F1,""}),b={content:F,length:1+F.length,leadingWhitespace:`${!M?N:""}${V}${a}`,precededByBlankLine:!!V},M=!0,V="",b}).filter(function(u){return u});if(Z=function({leadingWhitespace:u,nonInitial:h}){var b=u.lastIndexOf(`
8
- `);if(Q!=null||!h){if(!(b>-1))return null}else if(b==null)b=-1;return u.length-1-b},X=function(){var u,h,b;b=[];for(W=u=0,h=D.length;u<h;W=++u){if({content:F,length:K,leadingWhitespace:P,precededByBlankLine:T}=D[W],I=W!==0,O=I?1:0,R+=O+P.length,H=Z({leadingWhitespace:P,nonInitial:I}),S=H==null||H===-1,_={content:F,here:Q!=null,newLine:q||I,locationData:this.makeLocationData({offsetInChunk:R,length:K}),precededByBlankLine:T,indentSize:H,indented:!S&&H>this.indent,outdented:!S&&H<this.indent},$)_.heregex=!0;R+=K,b.push(_)}return b}.call(this),y=this.prev(),!y)X[0].newLine=!0,this.lineToken({chunk:this.chunk.slice(Y.length),offset:Y.length}),L=this.makeToken("JS","",{offset:Y.length,generated:!0}),L.comments=X,this.tokens.push(L),this.newlineToken(Y.length);else o1(X,y);if(E)return X;return Y.length}whitespaceToken(){var A,$,E;if(!((A=y1.exec(this.chunk))||($=this.chunk.charAt(0)===`
9
- `)))return 0;if(E=this.prev(),E)E[A?"spaced":"newLine"]=!0;if(A)return A[0].length;else return 0}lineToken({chunk:A=this.chunk,offset:$=0}={}){var E,R,_,X,Y,F,D,Z,M,Q,G;if(!(Y=Q3.exec(A)))return 0;if(X=Y[0],M=this.prev(),E=(M!=null?M[0]:void 0)==="\\",!((E||((Q=this.seenFor)!=null?Q.endsLength:void 0)<this.ends.length)&&this.seenFor))this.seenFor=!1;if(!(E&&this.seenImport||this.importSpecifierList))this.seenImport=!1;if(!(E&&this.seenExport||this.exportSpecifierList))this.seenExport=!1;if(G=X.length-1-X.lastIndexOf(`
10
- `),Z=this.unfinished(),D=G>0?X.slice(-G):"",!/^(.?)\1*$/.exec(D))return this.error("mixed indentation",{offset:X.length}),X.length;if(F=Math.min(D.length,this.indentLiteral.length),D.slice(0,F)!==this.indentLiteral.slice(0,F))return this.error("indentation mismatch",{offset:X.length}),X.length;if(G-this.overIndent===this.indent){if(Z)this.suppressNewlines();else this.newlineToken($);return X.length}if(G>this.indent){if(Z){if(!E)this.overIndent=G-this.indent;if(this.overIndent)M.continuationLineIndent=this.indent+this.overIndent;return this.suppressNewlines(),X.length}if(!this.tokens.length)return this.baseIndent=this.indent=G,this.indentLiteral=D,X.length;R=G-this.indent+this.outdebt,this.token("INDENT",R,{offset:$+X.length-G,length:G}),this.indents.push(R),this.ends.push({tag:"OUTDENT"}),this.outdebt=this.overIndent=0,this.indent=G,this.indentLiteral=D}else if(G<this.baseIndent)this.error("missing indentation",{offset:$+X.length});else _=this.overIndent>0,this.overIndent=0,this.outdentToken({moveOut:this.indent-G,noNewlines:Z,outdentLength:X.length,offset:$,indentSize:G,endsContinuationLineIndentation:_});return X.length}getHeredocClosingColumn(A,$){let E=A-$,R=E-1;while(R>=0&&this.chunk[R]!==`
11
- `)R--;R++;let _=this.chunk.slice(R,E);return/^\s*$/.test(_)?_.length:null}extractHeredocContent(A){let $=[];for(let E=0;E<A.length;E++)if(A[E][0]==="NEOSTRING")$.push(A[E][1]);return $.join("#{}")}findMinimumIndent(A){let $=null,E;while(E=A3.exec(A)){let R=E[1];if($===null||0<R.length&&R.length<$.length)$=R}return $}selectHeredocIndent(A,$){if(A===null)return $;if($===null)return" ".repeat(A);if(A<=$.length)return" ".repeat(A);return $}removeTrailingWhitespaceLine(A){if(A.length===0)return;let $=A[A.length-1];if($[0]!=="NEOSTRING")return;let E=$[1].split(`
12
- `),R=E[E.length-1];if(/^\s*$/.test(R))E.pop(),$[1]=E.join(`
13
- `)}stringToken(){var A,$,E,R,_,X,Y,F,D,Z,M,Q,G,J;if([Z]=j3.exec(this.chunk)||[],!Z)return 0;if(D=this.prev(),D&&this.value()==="from"&&(this.seenImport||this.seenExport))D[0]="FROM";if(Q=function(){switch(Z){case"'":return L3;case'"':return T3;case"'''":return U3;case'"""':return _3}}(),{tokens:J,index:R}=this.matchWithInterpolations(Q,Z),_=Z.length===3,_){let W=this.getHeredocClosingColumn(R,Z.length);if(E=this.extractHeredocContent(J),Y=this.findMinimumIndent(E),Y=this.selectHeredocIndent(W,Y),W!==null&&Y!==null&&W>Y.length)this.removeTrailingWhitespaceLine(J)}return $=Z.charAt(0),this.mergeInterpolationTokens(J,{quote:Z,indent:Y,endOffset:R},(W)=>{return this.validateUnicodeCodePointEscapes(W,{delimiter:Z})}),R}numberToken(){var A,$,E,R,_,X;if(!($=W3.exec(this.chunk)))return 0;switch(E=$[0],A=E.length,!1){case!/^0[BOX]/.test(E):this.error(`radix prefix in '${E}' must be lowercase`,{offset:1});break;case!/^0\d*[89]/.test(E):this.error(`decimal literal '${E}' must not be prefixed with '0'`,{length:A});break;case!/^0\d+/.test(E):this.error(`octal literal '${E}' must be prefixed with '0o'`,{length:A})}if(R=p3(E),X={parsedValue:R},_=R===1/0?"INFINITY":"NUMBER",_==="INFINITY")X.original=E;return this.token(_,E,{length:A,data:X}),A}regexToken(){var A,$,E,R,_,X,Y,F,D,Z,M,Q,G,J,W,H,q,O,N,P,K;switch(!1){case!(J=z3.exec(this.chunk)):this.error(`regular expressions cannot begin with ${J[2]}`,{offset:J.index+J[1].length});break;case!(J=this.matchWithInterpolations($3,"///")):({tokens:K,index:Q}=J),Y=[];while(W=E3.exec(this.chunk.slice(0,Q)))({index:R}=W),[M,G,E]=W,Y.push({comment:E,offsetInChunk:R+G.length});X=l3(function(){var w,B,z;z=[];for(w=0,B=Y.length;w<B;w++)_=Y[w],z.push(this.commentToken(_.comment,Object.assign(_,{heregex:!0,returnCommentTokens:!0})));return z}.call(this));break;case!(J=q3.exec(this.chunk)):if([P,A,$]=J,this.validateEscapes(A,{isRegex:!0,offsetInChunk:1}),Q=P.length,q=this.prev(),q){if(q.spaced&&(O=q[0],j.call(E1,O)>=0)){if(!$||K3.test(P))return 0}else if(N=q[0],j.call(G3,N)>=0)return 0}if(!$)this.error("missing / (unclosed regex)");break;default:return 0}switch([Z]=H3.exec(this.chunk.slice(Q)),D=Q+Z.length,H=this.makeToken("REGEX",null,{length:D}),!1){case!!y3.test(Z):this.error(`invalid regular expression flags ${Z}`,{offset:Q,length:Z.length});break;case!(P||K.length===1):if(F=A?"/":"///",A==null)A=K[0][1];this.validateUnicodeCodePointEscapes(A,{delimiter:F});let w={delimiter:F};if(F==="///")w.heregex={flags:Z};this.token("REGEX",`/${A}/${Z}`,{length:D,origin:H,data:w});break;default:if(this.token("REGEX_START","(",{length:0,origin:H,generated:!0}),this.token("IDENTIFIER","RegExp",{length:0,generated:!0}),this.token("CALL_START","(",{length:0,generated:!0}),this.mergeInterpolationTokens(K,{double:!0,heregex:{flags:Z},endOffset:D-Z.length,quote:"///"},(B)=>{return this.validateUnicodeCodePointEscapes(B,{delimiter:F})}),Z)this.token(",",",",{offset:Q-1,length:0,generated:!0}),this.token("STRING",'"'+Z+'"',{offset:Q,length:Z.length});this.token(")",")",{offset:D,length:0,generated:!0}),this.token("REGEX_END",")",{offset:D,length:0,generated:!0})}if(X!=null?X.length:void 0)o(this.tokens[this.tokens.length-1],{heregexCommentTokens:X});return D}jsToken(){var A,$,E,R;if(!(this.chunk.charAt(0)==="`"&&($=(E=X3.exec(this.chunk))||D3.exec(this.chunk))))return 0;return R=$[1],{length:A}=$[0],this.token("JS",R,{length:A,data:{here:!!E}}),A}literalToken(){var A,$,E,R,_,X,Y,F,D,Z,M,Q,G,J;if(A=O3.exec(this.chunk)){if([J]=A,a1.test(J))this.tagParameters()}else J=this.chunk.charAt(0);if(Q=J,R=this.prev(),R&&j.call(["=",...T1],J)>=0){if(M=!1,J==="="&&((_=R[1])==="||"||_==="&&"||_==="??")&&!R.spaced){if(R[0]="COMPOUND_ASSIGN",R[1]+="=",(X=R.data)!=null?X.original:void 0)R.data.original+="=";R[2].range=[R[2].range[0],R[2].range[1]+1],R[2].last_column+=1,R[2].last_column_exclusive+=1,R=this.tokens[this.tokens.length-2],M=!0}if(R&&R[0]!=="PROPERTY"){if(E=(Y=R.origin)!=null?Y:R,$=r3(R[1],E[1]),$)this.error($,E[2])}if(M)return J.length}if(J==="("&&(R!=null?R[0]:void 0)==="IMPORT")R[0]="DYNAMIC_IMPORT";if(J==="{"&&this.seenImport)this.importSpecifierList=!0;else if(this.importSpecifierList&&J==="}")this.importSpecifierList=!1;else if(J==="{"&&(R!=null?R[0]:void 0)==="EXPORT")this.exportSpecifierList=!0;else if(this.exportSpecifierList&&J==="}")this.exportSpecifierList=!1;if(J===";"){if(F=R!=null?R[0]:void 0,j.call(["=",...X1],F)>=0)this.error("unexpected ;");this.seenFor=this.seenImport=this.seenExport=!1,Q="TERMINATOR"}else if(J==="*"&&(R!=null?R[0]:void 0)==="EXPORT")Q="EXPORT_ALL";else if(J==="<=>")Q="BIND";else if(J==="~=")Q="DERIVED_ASSIGN";else if(J===":=")Q="REACTIVE_ASSIGN";else if(J==="=!")Q="READONLY_ASSIGN";else if(j.call(J3,J)>=0)Q="MATH";else if(j.call(e1,J)>=0)Q="COMPARE";else if(j.call(T1,J)>=0)Q="COMPOUND_ASSIGN";else if(j.call(C1,J)>=0)Q="UNARY";else if(j.call(C3,J)>=0)Q="UNARY_MATH";else if(j.call(S3,J)>=0)Q="SHIFT";else if(J==="?"&&(R!=null?R.spaced:void 0))Q="SPACE?";else if(R){if(J==="("&&!R.spaced&&(D=R[0],j.call(E1,D)>=0)){if(R[0]==="?")R[0]="FUNC_EXIST";else if(R[0]==="?.")R[0]="ES6_OPTIONAL_CALL";Q="CALL_START"}else if(J==="["&&((Z=R[0],j.call(b1,Z)>=0)&&!R.spaced||R[0]==="::"))switch(Q="INDEX_START",R[0]){case"?":R[0]="INDEX_SOAK";break;case"?.":R[0]="ES6_OPTIONAL_INDEX";break}}switch(G=this.makeToken(Q,J),J){case"(":case"{":case"[":this.ends.push({tag:G1[J],origin:G});break;case")":case"}":case"]":this.pair(J)}return this.tokens.push(this.makeToken(Q,J)),J.length}outdentToken({moveOut:A,noNewlines:$,outdentLength:E=0,offset:R=0,indentSize:_,endsContinuationLineIndentation:X}){var Y,F,D,Z,M;Y=this.indent-A;while(A>0)if(D=this.indents[this.indents.length-1],!D)this.outdebt=A=0;else if(this.outdebt&&A<=this.outdebt)this.outdebt-=A,A=0;else{if(F=this.indents.pop()+this.outdebt,E&&(Z=this.chunk[E],j.call(F3,Z)>=0))Y-=F-A,A=F;this.outdebt=0,this.pair("OUTDENT"),this.token("OUTDENT",A,{length:E,indentSize:_+A-F}),A-=F}if(F)this.outdebt-=A;if(this.suppressSemicolons(),!(this.tag()==="TERMINATOR"||$)){if(M=this.token("TERMINATOR",`
14
- `,{offset:R+E,length:0}),X)M.endsContinuationLineIndentation={preContinuationLineIndent:this.indent}}return this.indent=Y,this.indentLiteral=this.indentLiteral.slice(0,Y),this}newlineToken(A){if(this.suppressSemicolons(),this.tag()!=="TERMINATOR")this.token("TERMINATOR",`
15
- `,{offset:A,length:0});return this}suppressNewlines(){var A=this.prev();if(A[1]==="\\"){if(A.comments&&this.tokens.length>1)o1(A.comments,this.tokens[this.tokens.length-2]);this.tokens.pop()}return this}tagParameters(){var A,$,E,R,_;if(this.tag()!==")")return this.tagDoIife();E=[],{tokens:_}=this,A=_.length,$=_[--A],$[0]="PARAM_END";while(R=_[--A])switch(R[0]){case")":E.push(R);break;case"(":case"CALL_START":if(E.length)E.pop();else if(R[0]==="(")return R[0]="PARAM_START",this.tagDoIife(A-1);else return $[0]="CALL_END",this}return this}tagDoIife(A){var $=this.tokens[A!=null?A:this.tokens.length-1];if(($!=null?$[0]:void 0)!=="DO")return this;return $[0]="DO_IIFE",this}closeIndentation(){return this.outdentToken({moveOut:this.indent,indentSize:0})}matchWithInterpolations(A,$,E=$,R=/^[#$]\{/){var _,X,Y,F,D,Z,M,Q,G,J,W,H,q,O,N,P,K,w;if(w=[],W=$.length,this.chunk.slice(0,W)!==$)return null;P=this.chunk.slice(W);while(!0){if([K]=A.exec(P),this.validateEscapes(K,{isRegex:$.charAt(0)==="/",offsetInChunk:W}),w.push(this.makeToken("NEOSTRING",K,{offset:W})),P=P.slice(K.length),W+=K.length,!(Q=R.exec(P)))break;if([Z]=Q,D=Z.length-1,[M,Y,J]=this.getLineAndColumnFromChunk(W+D),N=P.slice(D),{tokens:G,index:F}=new U().tokenize(N,{line:M,column:Y,offset:J,untilBalanced:!0,locTweaks:this.locTweaks}),F+=D,_=P[F-1]==="}",_)[H]=G,[X]=s.call(G,-1),H[0]="INTERPOLATION_START",H[1]="(",H[2].first_column-=D,H[2].range=[H[2].range[0]-D,H[2].range[1]],X[0]="INTERPOLATION_END",X[1]=")",X.origin=["","end of interpolation",X[2]];if(((q=G[1])!=null?q[0]:void 0)==="TERMINATOR")G.splice(1,1);if(((O=G[G.length-3])!=null?O[0]:void 0)==="INDENT"&&G[G.length-2][0]==="OUTDENT")G.splice(-3,2);if(!_)H=this.makeToken("INTERPOLATION_START","(",{offset:W,length:0,generated:!0}),X=this.makeToken("INTERPOLATION_END",")",{offset:W+F,length:0,generated:!0}),G=[H,...G,X];w.push(["TOKENS",G]),P=P.slice(F),W+=F}if(P.slice(0,E.length)!==E)this.error(`missing ${E}`,{length:$.length});return{tokens:w,index:W+E.length}}mergeInterpolationTokens(A,$,E){var R,_,X,Y,F,D,Z,M,Q,G,J,W,H,q,O,N,P,K,w,B,z,S,I,L,T;if({quote:P,indent:M,double:X,heregex:D,endOffset:Y}=$,A.length>1)O=this.token("STRING_START","(",{length:(K=P!=null?P.length:void 0)!=null?K:0,data:{quote:P},generated:!(P!=null?P.length:void 0)});F=this.tokens.length,R=A.length-1;for(Z=Q=0,W=A.length;Q<W;Z=++Q){switch(S=A[Z],[z,T]=S,z){case"TOKENS":if(T.length===2&&(T[0].comments||T[1].comments)){N=this.makeToken("JS","",{generated:!0}),N[2]=T[0][2];for(G=0,H=T.length;G<H;G++){if(L=T[G],!L.comments)continue;if(N.comments==null)N.comments=[];N.comments.push(...L.comments)}T.splice(1,0,N)}q=T[0],I=T;break;case"NEOSTRING":if(_=E.call(this,S[1],Z),Z===0)o(S,{initialChunk:!0});if(Z===R)o(S,{finalChunk:!0});if(o(S,{indent:M,quote:P,double:X}),D)o(S,{heregex:D});if(S[0]="STRING",S[1]='"'+_+'"',A.length===1&&P!=null){if(S[2].first_column-=P.length,S[1].substr(-2,1)===`
16
- `)S[2].last_line+=1,S[2].last_column=P.length-1;else if(S[2].last_column+=P.length,S[1].length===2)S[2].last_column-=1;S[2].last_column_exclusive+=P.length,S[2].range=[S[2].range[0]-P.length,S[2].range[1]+P.length]}q=S,I=[S]}this.tokens.push(...I)}if(O){if([J]=s.call(A,-1),O.origin=["STRING",null,{first_line:O[2].first_line,first_column:O[2].first_column,last_line:J[2].last_line,last_column:J[2].last_column,last_line_exclusive:J[2].last_line_exclusive,last_column_exclusive:J[2].last_column_exclusive,range:[O[2].range[0],J[2].range[1]]}],!(P!=null?P.length:void 0))O[2]=O.origin[2];return B=this.token("STRING_END",")",{offset:Y-(P!=null?P:"").length,length:(w=P!=null?P.length:void 0)!=null?w:0,generated:!(P!=null?P.length:void 0)})}}pair(A){var $,E,R,_,X;if(R=this.ends,[E]=s.call(R,-1),A!==(X=E!=null?E.tag:void 0)){if(X!=="OUTDENT")this.error(`unmatched ${A}`);return _=this.indents,[$]=s.call(_,-1),this.outdentToken({moveOut:$,noNewlines:!0}),this.pair(A)}return this.ends.pop()}getLocationDataCompensation(A,$){var E,R,_,X;X=0,_=$,R=A;while(R<=$){if(R===$&&A!==_)break;if(E=this.locTweaks[R],E!=null)X+=E,$+=E;R++}return X}getLineAndColumnFromChunk(A){var $,E,R,_,X,Y,F,D;if(R=this.getLocationDataCompensation(this.chunkOffset,this.chunkOffset+A),A===0)return[this.chunkLine,this.chunkColumn+R,this.chunkOffset+R];if(A>=this.chunk.length)D=this.chunk;else D=this.chunk.slice(0,+(A-1)+1||9000000000);if(X=k3(D,`
17
- `),$=this.chunkColumn,X>0){if(F=D.split(`
18
- `),[_]=s.call(F,-1),$=_.length,Y=this.getLocationDataCompensation(this.chunkOffset,this.chunkOffset+A-$),Y<0)Y=0;E=this.getLocationDataCompensation(this.chunkOffset+A+Y-$,this.chunkOffset+A+Y)}else $+=D.length,E=R;return[this.chunkLine+X,$+E,this.chunkOffset+A+R]}makeLocationData({offsetInChunk:A,length:$}){var E,R,_;return _={range:[]},[_.first_line,_.first_column,_.range[0]]=this.getLineAndColumnFromChunk(A),R=$>0?$-1:0,[_.last_line,_.last_column,E]=this.getLineAndColumnFromChunk(A+R),[_.last_line_exclusive,_.last_column_exclusive]=this.getLineAndColumnFromChunk(A+R+($>0?1:0)),_.range[1]=$>0?E+1:E,_}makeToken(A,$,{offset:E=0,length:R=$.length,origin:_,generated:X,indentSize:Y}={}){var F=[A,$,this.makeLocationData({offsetInChunk:E,length:R})];if(_)F.origin=_;if(X)F.generated=!0;if(Y!=null)F.indentSize=Y;return F}token(A,$,{offset:E,length:R,origin:_,data:X,generated:Y,indentSize:F}={}){var D=this.makeToken(A,$,{offset:E,length:R,origin:_,generated:Y,indentSize:F});if(X)o(D,X);return this.tokens.push(D),D}tag(){var A,$;return A=this.tokens,[$]=s.call(A,-1),$!=null?$[0]:void 0}value(A=!1){var $,E;if($=this.tokens,[E]=s.call($,-1),A&&(E!=null?E.origin:void 0)!=null)return E.origin[1];else return E!=null?E[1]:void 0}prev(){return this.tokens[this.tokens.length-1]}unfinished(){var A;if(this.tag()==="RENDER")return!1;if(this.inRender&&/^\s*\./.test(this.chunk))return!1;return Z3.test(this.chunk)||(A=this.tag(),j.call(X1,A)>=0)}validateUnicodeCodePointEscapes(A,$){return o3(A,c3($,{error:this.error}))}validateEscapes(A,$={}){var E,R,_,X,Y,F,D,Z,M,Q;if(X=$.isRegex?P3:I3,Y=X.exec(A),!Y)return;return Y[0],E=Y[1],D=Y[2],R=Y[3],Q=Y[4],M=Y[5],F=D?"octal escape sequences are not allowed":"invalid escape sequence",_=`\\${D||R||Q||M}`,this.error(`${F} ${_}`,{offset:((Z=$.offsetInChunk)!=null?Z:0)+Y.index+E.length,length:_.length})}suppressSemicolons(){var A,$,E;E=[];while(this.value()===";")if(this.tokens.pop(),A=($=this.prev())!=null?$[0]:void 0,j.call(["=",...X1],A)>=0)E.push(this.error("unexpected ;"));else E.push(void 0);return E}error(A,$={}){var E,R,_,X,Y;return _="first_line"in $?$:([R,E]=this.getLineAndColumnFromChunk((X=$.offset)!=null?X:0),{first_line:R,first_column:E,last_column:E+((Y=$.length)!=null?Y:1)-1}),i3(A,_)}},r3=function(U,A=U){switch(!1){case j.call([...W1,...d],U)<0:return`keyword '${A}' can't be assigned`;case j.call(x1,U)<0:return`'${A}' can't be assigned`;case j.call(O1,U)<0:return`reserved word '${A}' can't be assigned`;default:return!1}};v3=function(U){var A;if(U[0]==="IDENTIFIER")return!0;else if(U[0]==="FOR")return!1;else if((A=U[1])==="{"||A==="["||A===","||A===":")return!1;else return!0};o=function(U,A){return Object.assign(U.data!=null?U.data:U.data={},A)};W1=["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"];d=["undefined","Infinity","NaN","then","unless","until","loop","of","by","when","def","effect","component","render","style","mounted","unmounted","updated"];g1={and:"&&",or:"||",is:"==",isnt:"!=",not:"!",yes:"true",no:"false",on:"true",off:"false"};h1=function(){var U=[];for(R1 in g1)U.push(R1);return U}();d=d.concat(h1);O1=["case","function","var","void","with","const","let","enum","native","implements","interface","package","private","protected","public","static"];x1=["arguments","eval"];var E2=W1.concat(O1).concat(x1);r1=65279;Y3=/^(?!\d)((?:(?!\s)[$\w\x7f-\uffff])+!?)([^\n\S]*:(?![=:]))?/;W3=/^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;O3=/^(?:<=>|[-=]>|~=|:=|=!|===|!==|!\?|\?\?|=~|[-+*\/%<>&|^!?=]=|>>>=?|([-+:])\1|([&|<>*\/%])\2=?|\?(\.|::)|\.{2,3})/;y1=/^[^\n\S]+/;t1=/^(\s*)###([^#][\s\S]*?)(?:###([^\n\S]*)|###$)|^((?:\s*#(?!##[^#]).*)+)/;a1=/^[-=]>/;Q3=/^(?:\n[^\n\S]*)+/;D3=/^`(?!``)((?:[^`\\]|\\[\s\S])*)`/;X3=/^```((?:[^`\\]|\\[\s\S]|`(?!``))*)```/;j3=/^(?:'''|"""|'|")/;L3=/^(?:[^\\']|\\[\s\S])*/;T3=/^(?:[^\\"#$]|\\[\s\S]|\#(?!\{)|\$(?!\{))*/;U3=/^(?:[^\\']|\\[\s\S]|'(?!''))*/;_3=/^(?:[^\\"#$]|\\[\s\S]|"(?!"")|\#(?!\{)|\$(?!\{))*/;A3=/\n+([^\n\S]*)(?=\S)/g;q3=/^\/(?!\/)((?:[^[\/\n\\]|\\[^\n]|\[(?:\\[^\n]|[^\]\n\\])*\])*)(\/)?/;H3=/^\w*/;y3=/^(?!.*(.).*\1)[gimsuy]*$/;$3=/^(?:[^\\\/#\s]|\\[\s\S]|\/(?!\/\/)|\#(?!\{)|\s+(?:#(?!\{).*)?)*/;E3=/(\s+)(#(?!{).*)/gm;z3=/^(\/|\/{3}\s*)(\*)/;K3=/^\/=?\s/;R3=/\*\//;Z3=/^\s*(?:,|\??\.(?![.\d])|\??::)/;I3=/((?:^|[^\\])(?:\\\\)*)\\(?:(0\d|[1-7])|(x(?![\da-fA-F]{2}).{0,2})|(u\{(?![\da-fA-F]{1,}\})[^}]*\}?)|(u(?!\{|[\da-fA-F]{4}).{0,4}))/;P3=/((?:^|[^\\])(?:\\\\)*)\\(?:(0\d)|(x(?![\da-fA-F]{2}).{0,2})|(u\{(?![\da-fA-F]{1,}\})[^}]*\}?)|(u(?!\{|[\da-fA-F]{4}).{0,4}))/;V3=/\s+$/;T1=["-=","+=","/=","*=","%=","||=","&&=","?=","??=","<<=",">>=",">>>=","&=","^=","|=","**=","//=","%%="];C1=["NEW","TYPEOF","DELETE"];C3=["!","~"];S3=["<<",">>",">>>"];e1=["==","!=","===","!==","<",">","<=",">=","=~"];J3=["*","/","%","//","%%"];N3=["IN","OF","INSTANCEOF"];h3=["TRUE","FALSE"];E1=["IDENTIFIER","PROPERTY",")","]","?","@","THIS","SUPER","DYNAMIC_IMPORT","?."];b1=E1.concat(["NUMBER","INFINITY","NAN","STRING","STRING_END","REGEX","REGEX_END","BOOL","NULL","UNDEFINED","}","::","?."]);g3=["IDENTIFIER",")","]","NUMBER"];G3=b1.concat(["++","--"]);M3=["INDENT","OUTDENT","TERMINATOR"];F3=[")","}","]"];_1=function(U,A){var $,E,R,_,X;if(!U.comments)return;if(A.comments&&A.comments.length!==0){X=[],_=U.comments;for(E=0,R=_.length;E<R;E++)if($=_[E],$.unshift)X.push($);else A.comments.push($);A.comments=X.concat(A.comments)}else A.comments=U.comments;return delete U.comments};m=function(U,A,$,E){var R=[U,A];if(R.generated=!0,$)R.origin=$;if(E)_1(E,R);return R};B3=function(){class U{rewrite(A){var $,E,R;if(this.tokens=A,typeof process<"u"&&process!==null?($=process.env)!=null?$.DEBUG_TOKEN_STREAM:void 0:void 0){if(process.env.DEBUG_REWRITTEN_TOKEN_STREAM)console.log("Initial token stream:");console.log(function(){var _,X,Y,F;Y=this.tokens,F=[];for(_=0,X=Y.length;_<X;_++)R=Y[_],F.push(R[0]+"/"+R[1]+(R.comments?"*":""));return F}.call(this).join(" "))}if(this.removeLeadingNewlines(),this.closeOpenCalls(),this.closeOpenIndexes(),this.normalizeLines(),this.processTemplateTokens(),this.convertLegacyExistential(),this.convertPostfixSpreadRest(),this.tagPostfixConditionals(),this.addImplicitBracesAndParens(),this.rescueStowawayComments(),this.addLocationDataToGeneratedTokens(),this.fixIndentationLocationData(),this.exposeTokenDataToGrammar(),typeof process<"u"&&process!==null?(E=process.env)!=null?E.DEBUG_REWRITTEN_TOKEN_STREAM:void 0:void 0){if(process.env.DEBUG_TOKEN_STREAM)console.log("Rewritten token stream:");console.log(function(){var _,X,Y,F;Y=this.tokens,F=[];for(_=0,X=Y.length;_<X;_++)R=Y[_],F.push(R[0]+"/"+R[1]+(R.comments?"*":""));return F}.call(this).join(" "))}return this.tokens}scanTokens(A){var $,E,R;({tokens:R}=this),$=0;while(E=R[$])$+=A.call(this,E,$,R);return!0}detectEnd(A,$,E,R={}){var _,X,Y,F,D;({tokens:D}=this),_=0;while(F=D[A]){if(_===0&&$.call(this,F,A))return E.call(this,F,A);if(X=F[0],j.call(p,X)>=0)_+=1;else if(Y=F[0],j.call(c,Y)>=0)_-=1;if(_<0){if(R.returnOnNegativeLevel)return;return E.call(this,F,A)}A+=1}return A-1}removeLeadingNewlines(){var A,$,E,R,_,X,Y,F,D;Y=this.tokens;for(A=$=0,_=Y.length;$<_;A=++$)if([D]=Y[A],D!=="TERMINATOR")break;if(A===0)return;F=this.tokens.slice(0,A);for(E=0,X=F.length;E<X;E++)R=F[E],_1(R,this.tokens[A]);return this.tokens.splice(0,A)}closeOpenCalls(){var A,$;return $=function(E,R){var _;return(_=E[0])===")"||_==="CALL_END"},A=function(E,R){return E[0]="CALL_END"},this.scanTokens(function(E,R){if(E[0]==="CALL_START")this.detectEnd(R+1,$,A);return 1})}closeOpenIndexes(){var A,$,E;return E=null,$=function(R,_){var X;return(X=R[0])==="]"||X==="INDEX_END"},A=function(R,_){if(this.tokens.length>=_&&this.tokens[_+1][0]===":")return E[0]="[",R[0]="]";else return R[0]="INDEX_END"},this.scanTokens(function(R,_){if(R[0]==="INDEX_START")E=R,this.detectEnd(_+1,$,A);return 1})}indexOfTag(A,...$){var E,R,_,X,Y;E=0;for(R=_=0,X=$.length;0<=X?_<X:_>X;R=0<=X?++_:--_){if($[R]==null)continue;if(typeof $[R]==="string")$[R]=[$[R]];if(Y=this.tag(A+R+E),j.call($[R],Y)<0)return-1}return A+R+E-1}looksObjectish(A){var $,E;if(this.indexOfTag(A,"@",null,":")!==-1||this.indexOfTag(A,null,":")!==-1)return!0;if(E=this.indexOfTag(A,p),E!==-1){if($=null,this.detectEnd(E+1,function(R){var _;return _=R[0],j.call(c,_)>=0},function(R,_){return $=_}),this.tag($+1)===":")return!0}return!1}findTagsBackwards(A,$){var E,R,_,X,Y,F,D;E=[];while(A>=0&&(E.length||(X=this.tag(A),j.call($,X)<0)&&((Y=this.tag(A),j.call(p,Y)<0)||this.tokens[A].generated)&&(F=this.tag(A),j.call($1,F)<0))){if(R=this.tag(A),j.call(c,R)>=0)E.push(this.tag(A));if((_=this.tag(A),j.call(p,_)>=0)&&E.length)E.pop();A-=1}return D=this.tag(A),j.call($,D)>=0}addImplicitBracesAndParens(){var A,$,E;return A=[],$=null,E=!1,this.scanTokens(function(R,_,X){var Y,F,D,Z,M,Q,G,J,W,H,q,O,N,P,K,w,B,z,S,I,L,T,V,y,u,h,b,a,k,F1,z1,D1,M1,Z1,g,c1,P1,l1,t,m1,e,v;if([v]=R,[L]=T=_>0?X[_-1]:[],[w]=B=_<X.length-1?X[_+1]:[],g=function(){return A[A.length-1]},c1=_,D=function(C){return _-c1+C},q=function(C){var x;return C!=null?(x=C[2])!=null?x.ours:void 0:void 0},N=function(C){return q(C)&&(C!=null?C[0]:void 0)==="{"},O=function(C){return q(C)&&(C!=null?C[0]:void 0)==="("},G=function(){return q(g())},J=function(){return O(g())},H=function(){return N(g())},W=function(){var C;return G()&&((C=g())!=null?C[0]:void 0)==="CONTROL"},P1=function(C){return A.push(["(",C,{ours:!0}]),X.splice(C,0,m("CALL_START","(",["","implicit function call",R[2]],T))},Y=function(){return A.pop(),X.splice(_,0,m("CALL_END",")",["","end of input",R[2]],T)),_+=1},l1=function(C,{startsLine:x=!0,continuationLineIndent:i}={}){var l;return A.push(["{",C,{sameLine:!0,startsLine:x,ours:!0,continuationLineIndent:i}]),l=new String("{"),l.generated=!0,X.splice(C,0,m("{",l,R,T))},F=function(C){return C=C!=null?C:_,A.pop(),X.splice(C,0,m("}","}",R,T)),_+=1},Z=(C)=>{var x=null;if(this.detectEnd(C,function(i){return i[0]==="TERMINATOR"},function(i,l){return x=l},{returnOnNegativeLevel:!0}),x==null)return!1;return this.looksObjectish(x+1)},(J()||H())&&j.call(v1,v)>=0||H()&&L===":"&&v==="FOR")return A.push(["CONTROL",_,{ours:!0}]),D(1);if(v==="INDENT"&&G()){if(L!=="=>"&&L!=="->"&&L!=="["&&L!=="("&&L!==","&&L!=="{"&&L!=="ELSE"&&L!=="=")while(J()||H()&&L!==":")if(J())Y();else F();if(W())A.pop();return A.push([v,_]),D(1)}if(j.call(p,v)>=0)return A.push([v,_]),D(1);if(j.call(c,v)>=0){while(G())if(J())Y();else if(H())F();else A.pop();$=A.pop()}if(Q=()=>{var C,x,i,l;if(i=this.findTagsBackwards(_,["FOR"])&&this.findTagsBackwards(_,["FORIN","FOROF","FORFROM"]),C=i||this.findTagsBackwards(_,["WHILE","UNTIL","LOOP","LEADING_WHEN"]),!C)return!1;return x=!1,l=R[2].first_line,this.detectEnd(_,function(p1,d1){var U1;return U1=p1[0],j.call($1,U1)>=0},function(p1,d1){var U1;return[L,,{first_line:U1}]=X[d1-1]||[],x=l===U1&&(L==="->"||L==="=>")},{returnOnNegativeLevel:!0}),x},(j.call(j1,v)>=0&&R.spaced||v==="?"&&_>0&&!X[_-1].spaced)&&(j.call(L1,w)>=0||w==="..."&&(V=this.tag(_+2),j.call(L1,V)>=0)&&!this.findTagsBackwards(_,["INDEX_START","["])||j.call(f1,w)>=0&&!B.spaced&&!B.newLine)&&!Q()){if(v==="?")v=R[0]="FUNC_EXIST";return P1(_+1),D(2)}if(j.call(j1,v)>=0&&this.indexOfTag(_+1,"INDENT")>-1&&this.looksObjectish(_+2)&&!this.findTagsBackwards(_,["CLASS","COMPONENT","EXTENDS","IF","CATCH","SWITCH","LEADING_WHEN","FOR","WHILE","UNTIL"])&&!(((y=k=(u=g())!=null?u[0]:void 0)==="{"||y==="[")&&!q(g())&&this.findTagsBackwards(_,k)))return P1(_+1),A.push(["INDENT",_+2]),D(3);if(v==="SPACE?")E=!0;if(v===":"){if(E)return E=!1,D(1);if(k=function(){var C;switch(!1){case(C=this.tag(_-1),j.call(c,C)<0):if([m1,t]=$,m1==="["&&t>0&&this.tag(t-1)==="@"&&!X[t-1].spaced)return t-1;else return t;break;case this.tag(_-2)!=="@":return _-2;default:return _-1}}.call(this),e=k<=0||(h=this.tag(k-1),j.call($1,h)>=0)||X[k-1].newLine,g()){if([Z1,z1]=g(),M1=A[A.length-2],(Z1==="{"||Z1==="INDENT"&&(M1!=null?M1[0]:void 0)==="{"&&!q(M1)&&this.findTagsBackwards(z1-1,["{"]))&&(e||this.tag(k-1)===","||this.tag(k-1)==="{")&&(b=this.tag(k-1),j.call(X1,b)<0))return D(1)}return I=_>1?X[_-2]:[],l1(k,{startsLine:!!e,continuationLineIndent:I.continuationLineIndent}),D(2)}if(j.call($1,v)>=0)for(P=A.length-1;P>=0;P+=-1){if(D1=A[P],!q(D1))break;if(N(D1))D1[2].sameLine=!1}if(v==="TERMINATOR"&&R.endsContinuationLineIndentation){({preContinuationLineIndent:S}=R.endsContinuationLineIndentation);while(H()&&(M=g()[2].continuationLineIndent)!=null&&M>S)F()}if(K=L==="OUTDENT"||T.newLine,j.call(u1,v)>=0||j.call(Q1,v)>=0&&K||(v===".."||v==="...")&&this.findTagsBackwards(_,["INDEX_START"]))while(G())if([Z1,z1,{sameLine:F1,startsLine:e}]=g(),J()&&L!==","||L===","&&v==="TERMINATOR"&&w==null)Y();else if(H()&&F1&&v!=="TERMINATOR"&&L!==":"&&!((v==="POST_IF"||v==="FOR"||v==="WHILE"||v==="UNTIL")&&e&&Z(_+1)))F();else if(H()&&v==="TERMINATOR"&&L!==","&&!(e&&this.looksObjectish(_+1)))F();else if(W()&&X[g()[1]][0]==="CLASS"&&v==="TERMINATOR")A.pop();else break;if(v===","&&!this.looksObjectish(_+1)&&H()&&!((a=this.tag(_+2))==="FOROF"||a==="FORIN")&&(w!=="TERMINATOR"||!this.looksObjectish(_+2))){z=w==="OUTDENT"?1:0;while(H())F(_+z)}return D(1)})}rescueStowawayComments(){var A,$,E,R;return $=function(_,X,Y,F){if(Y[X][0]!=="TERMINATOR")Y[F](m("TERMINATOR",`
19
- `,Y[X]));return Y[F](m("JS","",Y[X],_))},A=function(_,X){var Y,F;Y=_+1;while(Y!==X.length&&(F=X[Y][0],j.call(n,F)>=0)){if(X[Y][0]==="INTERPOLATION_END")return!0;Y++}return!1},R=function(_,X,Y){var F,D,Z,M,Q,G,J;D=X;while(D!==Y.length&&(Q=Y[D][0],j.call(n,Q)>=0))D++;if(!(D===Y.length||(G=Y[D][0],j.call(n,G)>=0))){J=_.comments;for(Z=0,M=J.length;Z<M;Z++)F=J[Z],F.unshift=!0;return _1(_,Y[D]),1}else return D=Y.length-1,$(_,D,Y,"push"),1},E=function(_,X,Y){var F,D,Z;F=X;while(F!==-1&&(D=Y[F][0],j.call(n,D)>=0))F--;if(!(F===-1||(Z=Y[F][0],j.call(n,Z)>=0)))return _1(_,Y[F]),1;else return $(_,0,Y,"unshift"),3},this.scanTokens(function(_,X,Y){var F,D,Z,M,Q;if(!_.comments)return 1;if(Q=1,Z=_[0],j.call(n,Z)>=0){F={comments:[]},D=_.comments.length-1;while(D!==-1){if(_.comments[D].newLine===!1&&_.comments[D].here===!1)F.comments.unshift(_.comments[D]),_.comments.splice(D,1);D--}if(F.comments.length!==0)Q=E(F,X-1,Y);if(_.comments.length!==0)R(_,X,Y)}else if(!A(X,Y)){F={comments:[]},D=_.comments.length-1;while(D!==-1){if(_.comments[D].newLine&&!_.comments[D].unshift&&!(_[0]==="JS"&&_.generated))F.comments.unshift(_.comments[D]),_.comments.splice(D,1);D--}if(F.comments.length!==0)Q=R(F,X+1,Y)}if(((M=_.comments)!=null?M.length:void 0)===0)delete _.comments;return Q})}addLocationDataToGeneratedTokens(){return this.scanTokens(function(A,$,E){var R,_,X,Y,F,D,Z;if(A[2])return 1;if(!(A.generated||A.explicit))return 1;if(A.fromThen&&A[0]==="INDENT")return A[2]=A.origin[2],1;if(A[0]==="{"&&(X=(D=E[$+1])!=null?D[2]:void 0))({first_line:_,first_column:R,range:[F]}=X);else if(Y=(Z=E[$-1])!=null?Z[2]:void 0)({last_line:_,last_column:R,range:[,F]}=Y),R+=1;else _=R=0,F=0;return A[2]={first_line:_,first_column:R,last_line:_,last_column:R,last_line_exclusive:_,last_column_exclusive:R,range:[F,F]},1})}fixIndentationLocationData(){var A;if(this.allComments==null)this.allComments=m3(this.tokens);return A=($,{afterPosition:E,indentSize:R,first:_,indented:X})=>{var Y,F,D,Z,M,Q,G,J;if(J=$[2].range[0],M=function(W){if(W.outdented){if(!(R!=null&&W.indentSize>R))return!1}if(X&&!W.indented)return!1;if(!(W.locationData.range[0]<J))return!1;if(!(W.locationData.range[0]>E))return!1;return!0},_){Z=null,Q=this.allComments;for(F=Q.length-1;F>=0;F+=-1)if(Y=Q[F],M(Y))Z=Y;else if(Z)return Z;return Z}G=this.allComments;for(D=G.length-1;D>=0;D+=-1)if(Y=G[D],M(Y))return Y;return null},this.scanTokens(function($,E,R){var _,X,Y,F,D,Z,M,Q,G,J;if(!((M=$[0])==="INDENT"||M==="OUTDENT"||$.generated&&$[0]==="CALL_END"&&!((Q=$.data)!=null?Q.closingTagNameToken:void 0)||$.generated&&$[0]==="}"))return 1;if(_=$[0]==="INDENT",Z=(G=$.prevToken)!=null?G:R[E-1],D=Z[2],J=$.explicit||$.generated,J){X=$,Y=E;while((X.explicit||X.generated)&&Y!==R.length-1)X=R[Y++]}if(F=A(J?X:$,{afterPosition:D.range[0],indentSize:$.indentSize,first:_,indented:J}),_){if(!(F!=null?F.newLine:void 0))return 1}if($.generated&&$[0]==="CALL_END"&&(F!=null?F.indented:void 0))return 1;if(F!=null)D=F.locationData;return $[2]={first_line:F!=null?D.first_line:D.last_line,first_column:F!=null?_?0:D.first_column:D.last_column,last_line:D.last_line,last_column:D.last_column,last_line_exclusive:D.last_line_exclusive,last_column_exclusive:D.last_column_exclusive,range:_&&F!=null?[D.range[0]-F.indentSize,D.range[1]]:D.range},1})}normalizeLines(){var A,$,E,R,_,X,Y,F,D;return D=_=F=null,Y=null,X=null,R=[],E=function(Z,M){var Q,G,J,W;return Z[1]!==";"&&(Q=Z[0],j.call(w3,Q)>=0)&&!(Z[0]==="TERMINATOR"&&(G=this.tag(M+1),j.call(I1,G)>=0))&&!(Z[0]==="ELSE"&&(D!=="THEN"||(X||Y)))&&!(((J=Z[0])==="CATCH"||J==="FINALLY")&&(D==="->"||D==="=>"))||(W=Z[0],j.call(Q1,W)>=0)&&(this.tokens[M-1].newLine||this.tokens[M-1][0]==="OUTDENT")},A=function(Z,M){if(Z[0]==="ELSE"&&D==="THEN")R.pop();return this.tokens.splice(this.tag(M-1)===","?M-1:M,0,F)},$=(Z,M)=>{var Q,G,J;if(J=R.length,!(J>0))return M;return Q=R.pop(),[,G]=this.indentation(Z[Q]),G[1]=J*2,Z.splice(M,0,G),G[1]=2,Z.splice(M+1,0,G),this.detectEnd(M+2,function(W,H){var q;return(q=W[0])==="OUTDENT"||q==="TERMINATOR"},function(W,H){if(this.tag(H)==="OUTDENT"&&this.tag(H+1)==="OUTDENT")return Z.splice(H,2)}),M+2},this.scanTokens(function(Z,M,Q){var G,J,W,H,q,O,N;if([N]=Z,G=(N==="->"||N==="=>")&&this.findTagsBackwards(M,["IF","WHILE","FOR","UNTIL","SWITCH","WHEN","LEADING_WHEN","[","INDEX_START"])&&!this.findTagsBackwards(M,["THEN","..","..."]),N==="TERMINATOR"){if(this.tag(M+1)==="ELSE"&&this.tag(M-1)!=="OUTDENT")return Q.splice(M,1,...this.indentation()),1;if(H=this.tag(M+1),j.call(I1,H)>=0){if(Z[1]===";"&&this.tag(M+1)==="OUTDENT")Q[M+1].prevToken=Z,_1(Z,Q[M+1]);return Q.splice(M,1),0}}if(N==="CATCH")for(J=W=1;W<=2;J=++W){if(!((q=this.tag(M+J))==="OUTDENT"||q==="TERMINATOR"||q==="FINALLY"))continue;return Q.splice(M+J,0,...this.indentation()),2+J}if((N==="->"||N==="=>")&&((O=this.tag(M+1))===","||O==="]"||this.tag(M+1)==="."&&Z.newLine))return[_,F]=this.indentation(Q[M]),Q.splice(M+1,0,_,F),1;if(j.call(V1,N)>=0&&this.tag(M+1)!=="INDENT"&&!(N==="ELSE"&&this.tag(M+1)==="IF")&&!G){if(D=N,[_,F]=this.indentation(Q[M]),D==="THEN")_.fromThen=!0;if(N==="THEN")Y=this.findTagsBackwards(M,["LEADING_WHEN"])&&this.tag(M+1)==="IF",X=this.findTagsBackwards(M,["IF"])&&this.tag(M+1)==="IF";if(N==="THEN"&&this.findTagsBackwards(M,["IF"]))R.push(M);if(N==="ELSE"&&this.tag(M-1)!=="OUTDENT")M=$(Q,M);if(Q.splice(M+1,0,_),this.detectEnd(M+2,E,A),N==="THEN")Q.splice(M,1);return 1}return 1})}processTemplateTokens(){let A=!1,$=0,E=0,R=[],_=(D)=>{let Z=D.split("#")[0];return i1.has(Z)},X=(D)=>{if(!D||typeof D!=="string")return!1;return/^[A-Z]/.test(D)},Y=(D)=>{return _(D)||X(D)},F=(D,Z)=>{let M=Z;while(M>0){let Q=D[M-1][0];if(Q==="INDENT"||Q==="OUTDENT"||Q==="TERMINATOR"||Q==="RENDER"||Q==="CALL_END"||Q===")")break;M--}return D[M]&&D[M][0]==="IDENTIFIER"&&_(D[M][1])};return this.scanTokens(function(D,Z,M){let Q=D[0],G=Z<M.length-1?M[Z+1]:null;if(Q==="RENDER")return A=!0,$=E+1,1;if(Q==="INDENT")return E++,1;if(Q==="OUTDENT"){E--;let J=0;while(R.length>0&&R[R.length-1]>E){let W=["CALL_END",")",D[2]];W.generated=!0,M.splice(Z+1+J,0,W),R.pop(),J++}if(A&&E<$)A=!1;return 1+J}if(!A)return 1;if(Q==="IDENTIFIER"&&!D.spaced){let J=[D[1]],W=Z+1;while(W+1<M.length){let H=M[W],q=M[W+1];if(H[0]==="-"&&!H.spaced&&(q[0]==="IDENTIFIER"||q[0]==="PROPERTY")){if(J.push(q[1]),W+=2,q[0]==="PROPERTY")break}else break}if(J.length>1&&W>Z+1&&M[W-1][0]==="PROPERTY")return D[0]="STRING",D[1]=`"${J.join("-")}"`,M.splice(Z+1,W-Z-1),1}if(Q==="."){let J=Z>0?M[Z-1]:null,W=J?J[0]:null;if(W==="INDENT"||W==="TERMINATOR"){if(G&&G[0]==="PROPERTY"){let H=["IDENTIFIER","div",D[2]];return H.generated=!0,M.splice(Z,0,H),2}}}if(Q==="IDENTIFIER"||Q==="PROPERTY"){let J=M[Z+1],W=M[Z+2];if(J&&J[0]==="#"&&W&&W[0]==="PROPERTY"){if(D[1]=D[1]+"#"+W[1],W.spaced)D.spaced=!0;return M.splice(Z+1,2),1}}if(Q==="BIND"){let J=Z>0?M[Z-1]:null,W=M[Z+1];if(J&&(J[0]==="IDENTIFIER"||J[0]==="PROPERTY")&&W&&W[0]==="IDENTIFIER")return J[1]=`__bind_${J[1]}__`,D[0]=":",D[1]=":",1}if(Q==="@"){let J=Z+1;if(J<M.length&&M[J][0]==="PROPERTY"){J++;while(J+1<M.length&&M[J][0]==="."&&M[J+1][0]==="PROPERTY")J+=2;if(J>Z+2&&J<M.length&&M[J][0]===":"){let W=["[","[",D[2]];W.generated=!0,M.splice(Z,0,W);let H=["]","]",M[J+1][2]];return H.generated=!0,M.splice(J+1,0,H),2}}}if(Q==="."&&G&&G[0]==="("){let J=Z>0?M[Z-1]:null,W=J?J[0]:null,H=W==="INDENT"||W==="TERMINATOR",q=["PROPERTY","__cx__",D[2]];q.generated=!0,G[0]="CALL_START";let O=1;for(let N=Z+2;N<M.length&&O>0;N++)if(M[N][0]==="("||M[N][0]==="CALL_START")O++;else if(M[N][0]===")"){if(O--,O===0)M[N][0]="CALL_END"}else if(M[N][0]==="CALL_END")O--;if(H){let N=["IDENTIFIER","div",D[2]];return N.generated=!0,M.splice(Z,0,N),M.splice(Z+2,0,q),3}else return M.splice(Z+1,0,q),2}if(G&&G[0]==="INDENT"){if(Q==="->"||Q==="=>"||Q==="CALL_START"||Q==="(")return 1;let J=!1;if(Q==="IDENTIFIER"&&Y(D[1]))J=!0;else if(Q==="PROPERTY"||Q==="STRING"||Q==="CALL_END"||Q===")")J=F(M,Z);else if(Q==="IDENTIFIER"&&Z>1&&M[Z-1][0]==="..."){if(F(M,Z)){let W=[",",",",D[2]];W.generated=!0;let H=["->","->",D[2]];return H.newLine=!0,M.splice(Z+1,0,W,H),3}}if(J){let W=["CALL_START","(",D[2]];W.generated=!0;let H=["->","->",D[2]];return H.newLine=!0,M.splice(Z+1,0,W,H),R.push(E+1),3}}return 1})}convertLegacyExistential(){return this.scanTokens(function(A,$,E){var R,_,X,Y,F;if(A[0]!=="SPACE?")return 1;R=!1,X=0;for(_=$+1;_<E.length;_++){if(F=E[_][0],Y=F,j.call(p,Y)>=0)X++;else if(Y=F,j.call(c,Y)>=0)X--;if(F===":"&&X===0){R=!0;break}if(X===0&&(F==="TERMINATOR"||F==="INDENT"||F==="OUTDENT"))break}if(!R)A[0]="??",A[1]="??";return 1})}convertPostfixSpreadRest(){return this.scanTokens(function(A,$,E){var R,_,X,Y,F,D,Z,M,Q,G;if(A[0]!=="..."&&A[0]!=="..")return 1;let J=0;for(let W=$-1;W>=0;W--){if(E[W][0]==="INDEX_END")J++;if(E[W][0]==="INDEX_START")J--}if(_=J<0,_)return 1;if(Z=E[$-1],F=E[$+1],!Z||!F)return 1;if(M=Z[0],D=F[0],M===","&&D===",")return 1;if(M==="NUMBER")return 1;if(G=["IDENTIFIER","PROPERTY",")","]","THIS","@"],Q=M,j.call(G,Q)>=0){if(R=[",","]",")","}","CALL_END","INDEX_END","PARAM_END","TERMINATOR","OUTDENT"],Q=D,j.call(R,Q)>=0)return E[$-1]=A,E[$]=Z,1}return 1})}tagPostfixConditionals(){var A,$,E;return E=null,$=function(R,_){var X,Y;return[Y]=R,[X]=this.tokens[_-1],Y==="TERMINATOR"||Y==="INDENT"&&j.call(V1,X)<0},A=function(R,_){if(R[0]!=="INDENT"||R.generated&&!R.fromThen)return E[0]="POST_"+E[0]},this.scanTokens(function(R,_){if(R[0]!=="IF"&&R[0]!=="UNLESS")return 1;return E=R,this.detectEnd(_+1,$,A),1})}exposeTokenDataToGrammar(){return this.scanTokens(function(A,$){var E,R,_;if(A.generated||A.data&&Object.keys(A.data).length!==0){A[1]=new String(A[1]),R=(E=A.data)!=null?E:{};for(R1 in R){if(!x3.call(R,R1))continue;_=R[R1],A[1][R1]=_}if(A.generated)A[1].generated=!0}return 1})}indentation(A){var $,E;if($=["INDENT",2],E=["OUTDENT",2],A)$.generated=E.generated=!0,$.origin=E.origin=A;else $.explicit=E.explicit=!0;return[$,E]}tag(A){var $;return($=this.tokens[A])!=null?$[0]:void 0}}return U.prototype.generate=m,U}.call(null);w1=[["(",")"],["[","]"],["{","}"],["INDENT","OUTDENT"],["CALL_START","CALL_END"],["PARAM_START","PARAM_END"],["INDEX_START","INDEX_END"],["STRING_START","STRING_END"],["INTERPOLATION_START","INTERPOLATION_END"],["REGEX_START","REGEX_END"]];G1={};p=[];c=[];for(J1=0,s1=w1.length;J1<s1;J1++)[B1,S1]=w1[J1],p.push(G1[S1]=B1),c.push(G1[B1]=S1);I1=["CATCH","THEN","ELSE","FINALLY"].concat(c);j1=["IDENTIFIER","PROPERTY","SUPER",")","CALL_END","]","INDEX_END","@","THIS"];L1=["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","@","->","=>","[","(","{","--","++"];f1=["+","-"];u1=["POST_IF","FOR","WHILE","UNTIL","WHEN","BY","LOOP","TERMINATOR"];V1=["ELSE","->","=>","TRY","FINALLY","THEN"];w3=["TERMINATOR","CATCH","FINALLY","ELSE","OUTDENT","LEADING_WHEN"];$1=["TERMINATOR","INDENT","OUTDENT"];Q1=[".","?.","::","?::"];v1=["IF","TRY","FINALLY","CATCH","CLASS","COMPONENT","SWITCH"];n=["(",")","[","]","{","}",":",".","..","...",",","=","++","--","?","AS","AWAIT","CALL_START","CALL_END","DEFAULT","DO","DO_IIFE","ELSE","EXTENDS","EXPORT","FORIN","FOROF","FORFROM","IMPORT","INDENT","INDEX_SOAK","INTERPOLATION_START","INTERPOLATION_END","LEADING_WHEN","OUTDENT","PARAM_END","REGEX_START","REGEX_END","RETURN","STRING_END","THROW","UNARY","YIELD"].concat(f1.concat(u1.concat(Q1.concat(v1))));X1=["\\",".","?.","?::","UNARY","DO","DO_IIFE","MATH","UNARY_MATH","+","-","**","SHIFT","RELATION","COMPARE","&","^","|","&&","||","SPACE?","EXTENDS"];var a3={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,DerivedAssign:19,ReadonlyAssign:20,EffectBlock:21,RenderBlock:22,StyleBlock:23,Component:24,If:25,Try:26,While:27,For:28,Switch:29,Class:30,Throw:31,Yield:32,Def:33,DEF:34,Identifier:35,CALL_START:36,ParamList:37,CALL_END:38,Block:39,Assignable:40,REACTIVE_ASSIGN:41,INDENT:42,OUTDENT:43,DERIVED_ASSIGN:44,READONLY_ASSIGN:45,EFFECT:46,FuncGlyph:47,RENDER:48,STYLE:49,COMPONENT:50,ComponentBody:51,ComponentLine:52,PropDecl:53,"@":54,PROPERTY:55,"?":56,"=":57,"...":58,IDENTIFIER:59,CodeLine:60,OperationLine:61,YIELD:62,Object:63,FROM:64,Property:65,AlphaNumeric:66,NUMBER:67,String:68,STRING:69,STRING_START:70,Interpolations:71,STRING_END:72,InterpolationChunk:73,INTERPOLATION_START:74,INTERPOLATION_END:75,Regex:76,REGEX:77,REGEX_START:78,Invocation:79,REGEX_END:80,RegexWithIndex:81,",":82,Literal:83,JS:84,UNDEFINED:85,NULL:86,BOOL:87,INFINITY:88,NAN:89,AssignObj:90,ObjAssignable:91,ObjRestValue:92,":":93,SimpleObjAssignable:94,ThisProperty:95,"[":96,"]":97,ObjSpreadExpr:98,Parenthetical:99,Super:100,This:101,SUPER:102,OptFuncExist:103,Arguments:104,DYNAMIC_IMPORT:105,".":106,"?.":107,"::":108,"?::":109,INDEX_START:110,INDEX_END:111,INDEX_SOAK:112,RETURN:113,PARAM_START:114,PARAM_END:115,"->":116,"=>":117,OptComma:118,Param:119,ParamVar:120,Array:121,Splat:122,SimpleAssignable:123,Slice:124,ES6_OPTIONAL_INDEX:125,Range:126,DoIife:127,MetaProperty:128,NEW_TARGET:129,IMPORT_META:130,"{":131,FOR:132,ForVariables:133,FOROF:134,"}":135,WHEN:136,OWN:137,AssignList:138,CLASS:139,EXTENDS:140,IMPORT:141,ImportDefaultSpecifier:142,ImportNamespaceSpecifier:143,ImportSpecifierList:144,ImportSpecifier:145,AS:146,DEFAULT:147,IMPORT_ALL:148,EXPORT:149,ExportSpecifierList:150,EXPORT_ALL:151,ExportSpecifier:152,ES6_OPTIONAL_CALL:153,FUNC_EXIST:154,ArgList:155,THIS:156,Elisions:157,ArgElisionList:158,OptElisions:159,RangeDots:160,"..":161,Arg:162,ArgElision:163,Elision:164,SimpleArgs:165,TRY:166,Catch:167,FINALLY:168,CATCH:169,THROW:170,"(":171,")":172,WhileSource:173,WHILE:174,UNTIL:175,Loop:176,LOOP:177,FORIN:178,BY:179,FORFROM:180,AWAIT:181,ForValue:182,SWITCH:183,Whens:184,ELSE:185,When:186,LEADING_WHEN:187,IfBlock:188,IF:189,UnlessBlock:190,UNLESS:191,POST_IF:192,POST_UNLESS:193,UNARY:194,DO:195,DO_IIFE:196,UNARY_MATH:197,"-":198,"+":199,"--":200,"++":201,MATH:202,"**":203,SHIFT:204,COMPARE:205,"&":206,"^":207,"|":208,"&&":209,"||":210,"??":211,"!?":212,RELATION:213,"SPACE?":214,COMPOUND_ASSIGN:215},tokenNames:{2:"error",6:"TERMINATOR",11:"STATEMENT",34:"DEF",36:"CALL_START",38:"CALL_END",41:"REACTIVE_ASSIGN",42:"INDENT",43:"OUTDENT",44:"DERIVED_ASSIGN",45:"READONLY_ASSIGN",46:"EFFECT",48:"RENDER",49:"STYLE",50:"COMPONENT",54:"@",55:"PROPERTY",56:"?",57:"=",58:"...",59:"IDENTIFIER",62:"YIELD",64:"FROM",67:"NUMBER",69:"STRING",70:"STRING_START",72:"STRING_END",74:"INTERPOLATION_START",75:"INTERPOLATION_END",77:"REGEX",78:"REGEX_START",80:"REGEX_END",82:",",84:"JS",85:"UNDEFINED",86:"NULL",87:"BOOL",88:"INFINITY",89:"NAN",93:":",96:"[",97:"]",102:"SUPER",105:"DYNAMIC_IMPORT",106:".",107:"?.",108:"::",109:"?::",110:"INDEX_START",111:"INDEX_END",112:"INDEX_SOAK",113:"RETURN",114:"PARAM_START",115:"PARAM_END",116:"->",117:"=>",125:"ES6_OPTIONAL_INDEX",129:"NEW_TARGET",130:"IMPORT_META",131:"{",132:"FOR",134:"FOROF",135:"}",136:"WHEN",137:"OWN",139:"CLASS",140:"EXTENDS",141:"IMPORT",146:"AS",147:"DEFAULT",148:"IMPORT_ALL",149:"EXPORT",151:"EXPORT_ALL",153:"ES6_OPTIONAL_CALL",154:"FUNC_EXIST",156:"THIS",161:"..",166:"TRY",168:"FINALLY",169:"CATCH",170:"THROW",171:"(",172:")",174:"WHILE",175:"UNTIL",177:"LOOP",178:"FORIN",179:"BY",180:"FORFROM",181:"AWAIT",183:"SWITCH",185:"ELSE",187:"LEADING_WHEN",189:"IF",191:"UNLESS",192:"POST_IF",193:"POST_UNLESS",194:"UNARY",195:"DO",196:"DO_IIFE",197:"UNARY_MATH",198:"-",199:"+",200:"--",201:"++",202:"MATH",203:"**",204:"SHIFT",205:"COMPARE",206:"&",207:"^",208:"|",209:"&&",210:"||",211:"??",212:"!?",213:"RELATION",214:"SPACE?",215:"COMPOUND_ASSIGN"},parseTable:(()=>{let U=[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,5,6,1,1,1,1,4,5,1,1,1,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,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,67,92,33,53,43,54,55,56,87,104,27,28,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,42,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,1,1,0,2,1,5,-2,107,5,1,5,37,32,97,-3,-3,-3,-3,-3,31,1,5,32,4,1,13,19,7,15,35,40,1,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-6,-6,-6,-6,-6,108,-6,-6,-6,127,-6,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,9,1,5,32,4,1,32,7,15,75,-7,-7,-7,-7,-7,-7,-7,-7,-7,14,1,5,32,4,1,32,7,15,75,1,1,1,17,1,-8,-8,-8,-8,-8,-8,-8,-8,-8,130,96,97,128,129,54,1,5,30,2,4,1,13,2,11,1,5,7,11,4,6,3,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-13,-13,-263,-13,-13,-13,-13,-13,-263,-263,-13,-13,-13,-13,131,133,134,135,136,137,-13,138,-13,139,-13,-13,-13,-13,132,140,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,47,1,5,32,4,1,13,2,17,7,11,4,9,1,1,1,1,1,1,3,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,141,142,143,144,145,-14,146,-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,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,9,1,5,32,4,1,32,7,15,75,-60,-60,-60,-60,-60,-60,-60,-60,-60,9,1,5,32,4,1,32,7,15,75,-61,-61,-61,-61,-61,-61,-61,-61,-61,13,1,5,32,4,1,32,7,15,75,2,1,17,1,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,13,1,5,32,4,1,32,7,15,75,2,1,17,1,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,13,1,5,32,4,1,32,7,15,75,2,1,17,1,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,13,1,5,32,4,1,32,7,15,75,2,1,17,1,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,57,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-186,-186,-186,-186,148,-186,-186,149,150,-186,147,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,-194,18,6,29,2,1,4,1,11,4,1,4,19,13,1,19,4,1,1,10,-140,155,151,-140,-140,-140,159,154,104,158,-140,156,160,-140,152,153,157,99,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,4,1,2,4,1,1,1,1,4,5,1,1,1,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,162,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,67,92,161,33,163,53,43,54,55,56,87,104,27,28,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,42,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,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,5,6,1,1,1,1,4,5,1,1,1,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,164,165,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,43,54,55,56,87,104,27,28,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,42,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,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,5,6,1,1,1,1,4,5,1,1,1,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,167,168,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,43,54,55,56,87,104,27,28,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,42,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,169,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,175,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,176,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,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,1,1,5,2,4,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,177,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,178,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,45,14,1,20,5,7,7,5,4,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,9,2,1,4,2,3,1,1,1,1,1,25,15,25,180,181,92,182,171,87,104,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,170,90,91,72,179,36,38,41,88,89,99,86,82,174,45,14,1,20,5,7,7,5,4,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,9,2,1,4,2,3,1,1,1,1,1,25,15,25,180,181,92,182,171,87,104,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,170,90,91,72,183,36,38,41,88,89,99,86,82,174,60,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,184,185,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,186,5,39,3,5,69,1,188,163,187,90,91,2,39,3,189,163,2,39,3,190,163,2,35,24,191,104,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,5,7,1,5,1,3,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,-371,-371,-371,-371,192,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,-371,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,-373,2,39,3,193,163,2,39,3,194,163,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,14,35,19,5,4,32,1,24,1,5,5,2,4,44,1,155,159,104,158,156,83,200,157,198,99,195,196,197,199,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,1,1,5,2,4,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,201,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,202,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,88,1,5,8,1,20,3,1,1,2,1,4,7,2,2,1,4,3,1,1,1,1,5,1,1,1,1,3,1,1,1,1,1,1,1,4,2,1,1,2,1,1,1,3,6,3,1,1,1,4,2,3,1,1,1,1,1,1,2,1,1,4,16,5,10,1,2,1,3,1,1,12,1,3,2,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-210,-210,180,181,92,-210,203,182,163,-210,171,87,-210,-210,104,73,74,100,101,105,106,-210,76,102,103,37,-210,34,75,77,78,79,80,81,-210,93,83,-210,35,40,39,84,85,-210,170,-210,90,91,72,205,36,38,41,88,89,99,-210,-210,-210,-210,204,86,-210,82,-210,-210,-210,-210,-210,-210,-210,-210,174,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,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,1,1,5,2,4,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,206,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,207,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,137,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,1,1,3,2,2,1,3,1,1,1,1,4,2,2,1,3,1,1,2,1,1,1,1,5,1,1,1,1,3,1,1,1,1,1,1,1,4,2,1,1,2,1,1,1,3,6,2,1,1,1,1,4,2,3,1,1,1,1,1,1,2,1,1,3,2,8,7,5,5,4,1,1,1,1,1,1,1,1,1,1,1,2,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-62,-62,208,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,-62,33,209,-62,53,171,54,55,56,87,-62,-62,104,66,73,210,74,100,101,105,106,-62,76,102,103,37,-62,34,75,77,78,79,80,81,-62,93,83,-62,35,40,39,84,85,-62,69,170,-62,90,91,72,52,36,38,41,88,89,99,-62,-62,-62,-62,64,70,71,86,-62,59,65,82,-62,60,-62,-62,61,98,-62,-62,-62,49,63,57,94,58,95,-62,-62,172,173,174,46,47,48,50,51,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,-62,2,35,24,211,104,6,15,32,13,54,2,1,213,43,212,42,90,91,111,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,1,1,3,2,2,1,3,1,1,1,1,4,5,3,1,3,1,1,1,1,5,1,1,1,1,3,1,1,1,1,1,1,1,6,1,1,2,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,1,1,1,1,1,1,4,2,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-131,-131,214,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,-131,33,215,-131,53,171,54,55,56,87,104,66,73,74,100,101,105,106,-131,76,102,103,37,-131,34,75,77,78,79,80,81,93,83,-131,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,-131,60,-131,-131,61,98,49,63,57,94,58,95,-131,-131,172,173,174,46,47,48,50,51,9,35,24,9,1,1,61,11,1,5,220,104,216,105,106,219,217,218,221,9,30,3,1,1,24,72,8,8,4,223,224,67,225,104,222,64,226,227,57,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,57,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,-84,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,-85,-85,-85,-85,-85,-85,-85,-85,-85,-85,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,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,5,2,4,1,1,1,1,4,5,1,1,1,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,228,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,67,92,33,229,53,43,54,55,56,87,104,27,28,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,42,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,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,5,2,4,1,1,1,1,4,4,1,1,1,1,1,3,1,1,1,1,6,1,1,1,3,1,1,1,1,1,1,1,6,1,1,2,1,1,1,3,8,1,2,1,4,1,1,3,1,1,1,1,1,1,7,2,8,7,1,1,4,1,1,2,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,230,239,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,236,53,43,54,55,56,87,241,104,27,28,66,73,74,100,101,105,106,76,102,103,37,237,34,75,77,78,79,80,81,93,83,231,35,40,39,84,85,69,42,90,91,72,240,52,36,38,41,88,89,99,62,64,70,71,86,232,233,238,235,234,59,65,82,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,4,36,68,2,4,245,242,243,244,2,36,68,245,246,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,-267,-267,-267,-267,-267,-267,-267,-267,-267,-267,55,1,5,30,2,4,1,12,1,2,7,4,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-268,-268,-268,-268,-268,-268,248,-268,-268,247,-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,-268,-268,1,106,249,1,106,250,54,11,23,8,4,2,1,1,4,5,3,5,2,1,7,1,6,1,1,1,1,1,7,6,3,8,1,2,1,12,1,1,1,7,2,8,7,10,4,1,3,1,2,4,2,6,2,3,1,1,1,1,1,1,1,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,54,11,23,8,4,2,1,1,4,5,3,5,2,1,7,1,6,1,1,1,1,1,7,6,3,8,1,2,1,12,1,1,1,7,2,8,7,10,4,1,3,1,2,4,2,6,2,3,1,1,1,1,1,1,1,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-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,-154,-154,-154,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-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,-155,-155,-155,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,251,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,252,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,253,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,254,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,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,1,1,4,1,2,4,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,256,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,255,33,163,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,23,6,29,7,1,11,1,3,1,6,1,1,1,1,1,12,8,1,1,2,1,1,39,3,-205,264,-205,-205,261,248,268,104,265,262,100,101,105,106,-205,263,257,267,259,266,260,-205,258,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,-70,-70,-70,-70,-70,-70,-70,-70,-70,-70,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,45,14,1,20,5,7,7,5,4,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,9,2,1,4,2,3,1,1,1,1,1,25,15,25,180,181,92,182,171,87,104,73,74,100,101,105,106,76,102,103,269,34,75,77,78,79,80,81,93,83,35,40,39,84,85,170,90,91,72,270,36,38,41,88,89,99,86,82,174,63,1,5,30,2,3,1,1,1,1,11,1,1,6,5,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,6,7,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,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,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,56,1,5,30,2,4,1,13,2,11,1,2,2,1,5,2,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,6,68,1,1,1,2,1,274,105,106,271,272,273,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,5,3,3,1,1,1,1,4,5,1,1,1,1,3,1,1,1,1,5,1,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,1,1,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,-5,275,-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,67,92,33,-5,53,43,54,55,56,87,104,27,28,66,73,74,100,101,105,106,-5,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,42,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,-5,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,276,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,277,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,278,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,279,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,280,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,281,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,282,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,283,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,284,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,285,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,286,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,287,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,288,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,289,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,290,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,291,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,292,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,14,35,19,5,4,32,1,24,1,5,5,2,4,44,1,155,159,104,158,156,83,200,157,296,99,293,294,295,199,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,297,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,298,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,5,36,32,1,1,34,245,299,105,106,300,2,36,68,245,301,2,55,10,248,302,2,55,10,248,303,63,1,5,30,2,3,1,1,1,1,10,1,1,1,7,4,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-160,-160,-160,-160,-160,-160,-160,-160,-160,248,-160,-160,-160,304,-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,63,1,5,30,2,3,1,1,1,1,10,1,1,1,7,4,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-161,-161,-161,-161,-161,-161,-161,-161,-161,248,-161,-161,-161,305,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,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,1,1,5,2,4,1,1,1,1,4,4,1,3,1,3,1,1,1,1,6,1,1,1,2,2,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,1,2,1,1,1,1,1,1,7,2,8,7,4,1,5,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,306,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,307,53,171,54,55,56,87,313,104,66,73,74,100,101,105,106,311,102,103,37,309,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,308,36,38,41,88,89,99,62,64,70,71,86,310,312,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,1,110,314,1,110,315,3,36,33,1,-264,-264,-264,2,55,10,248,316,2,55,10,248,317,63,1,5,30,2,3,1,1,1,1,10,1,1,1,7,4,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-177,-177,-177,-177,-177,-177,-177,-177,-177,248,-177,-177,-177,318,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,63,1,5,30,2,3,1,1,1,1,10,1,1,1,7,4,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-178,-178,-178,-178,-178,-178,-178,-178,-178,248,-178,-178,-178,319,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,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,1,1,5,2,4,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,320,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,321,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,1,110,322,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,1,1,5,2,4,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,324,323,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,325,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,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,1,1,5,2,4,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,327,326,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,328,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,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,1,1,5,2,4,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,330,329,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,331,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,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,1,1,5,2,4,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,333,332,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,334,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,9,6,32,4,1,39,15,18,3,17,-138,-138,-138,-138,336,-138,335,337,-138,6,6,32,4,1,39,33,-141,-141,-141,-141,-141,-141,7,6,32,4,1,14,25,33,-145,-145,-145,-145,338,-145,-145,15,6,29,3,4,1,11,5,4,19,13,1,19,5,1,10,-148,155,-148,-148,-148,159,104,158,-148,156,160,-148,339,157,99,10,6,32,4,1,14,25,33,19,44,2,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,10,6,32,4,1,14,25,33,19,44,2,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,10,6,32,4,1,14,25,33,19,44,2,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,10,6,32,4,1,14,25,33,19,44,2,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,2,55,10,248,247,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,5,2,4,1,1,1,1,4,4,1,1,1,1,1,3,1,1,1,1,6,1,1,1,3,1,1,1,1,1,1,1,6,1,1,2,1,1,1,3,8,1,2,1,4,1,1,3,1,1,1,1,1,1,7,2,8,7,1,1,4,1,1,2,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,340,239,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,236,53,43,54,55,56,87,241,104,27,28,66,73,74,100,101,105,106,76,102,103,37,237,34,75,77,78,79,80,81,93,83,231,35,40,39,84,85,69,42,90,91,72,240,52,36,38,41,88,89,99,62,64,70,71,86,232,233,238,235,234,59,65,82,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,-133,9,1,5,32,4,1,32,7,15,75,-135,-135,-135,-135,-135,-135,-135,-135,-135,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,5,3,3,1,1,1,1,4,5,1,1,1,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,342,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,67,92,33,341,53,43,54,55,56,87,104,27,28,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,42,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-381,-381,-381,-381,-381,108,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,126,-381,-381,-381,-381,-381,-381,125,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,-381,120,121,-381,-381,9,1,5,32,4,1,32,7,15,75,-378,-378,-378,-378,-378,-378,-378,-378,-378,5,173,1,1,17,1,130,96,97,128,129,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-382,-382,-382,-382,-382,108,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,126,-382,-382,-382,-382,-382,-382,125,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,-382,120,121,-382,-382,9,1,5,32,4,1,32,7,15,75,-379,-379,-379,-379,-379,-379,-379,-379,-379,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-383,-383,-383,-383,-383,108,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,-383,126,-383,-383,-383,-383,-383,-383,125,-383,-383,-383,112,-383,-383,-383,-383,-383,-383,-383,120,121,-383,-383,18,6,29,2,1,4,1,11,4,1,4,19,13,1,19,4,1,1,10,-140,155,343,-140,-140,-140,159,154,104,158,-140,156,160,-140,152,153,157,99,2,39,3,161,163,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,164,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,167,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,5,15,32,67,2,1,213,171,170,90,91,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-384,-384,-384,-384,-384,108,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,-384,126,-384,-384,-384,-384,-384,-384,125,-384,-384,-384,112,-384,-384,-384,-384,-384,-384,-384,120,121,-384,-384,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-385,-385,-385,-385,-385,108,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,-385,126,-385,-385,-385,-385,-385,-385,125,-385,-385,-385,112,-385,-385,-385,-385,-385,-385,-385,120,121,-385,-385,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-386,-386,-386,-386,-386,108,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,126,-386,-386,-386,-386,-386,-386,125,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,-386,120,121,-386,-386,2,63,68,344,99,57,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-388,-388,-183,-388,-183,-388,-388,-183,-183,-388,-183,-388,-183,-183,-388,-388,-388,-388,-183,-183,-183,-183,-183,-388,-183,-388,-183,-388,-388,-388,-388,-183,-183,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,-388,13,36,33,1,33,3,1,1,1,1,2,13,28,1,-263,-263,-263,131,133,134,135,136,137,138,139,132,140,6,106,1,1,1,1,2,141,142,143,144,145,146,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,57,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-389,-389,-183,-389,-183,-389,-389,-183,-183,-389,-183,-389,-183,-183,-389,-389,-389,-389,-183,-183,-183,-183,-183,-389,-183,-389,-183,-389,-389,-389,-389,-183,-183,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,-389,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,-390,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,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,1,1,5,2,4,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,347,345,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,346,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,2,39,3,348,163,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,1,42,349,3,39,3,147,350,163,351,44,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,6,1,1,3,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,352,353,354,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,3,134,44,2,356,355,357,11,35,19,5,4,32,1,24,1,10,2,49,155,159,104,158,156,160,200,157,99,358,199,11,35,19,5,4,32,1,24,1,10,2,49,155,159,104,158,156,160,200,157,99,359,199,3,39,3,137,360,163,361,4,82,52,44,2,362,-357,-357,-357,5,57,25,52,44,2,363,-355,-355,-355,-355,23,42,14,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,364,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,3,184,2,1,365,366,367,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,368,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,59,1,5,30,2,1,2,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-214,-214,-183,-214,369,-183,163,-214,-183,-183,-214,-183,-214,-183,-183,-214,-214,-214,-214,-183,-183,-183,-183,-183,-214,-183,-214,-183,-214,-214,-214,-214,370,-183,-183,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,-214,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-311,-311,-311,-311,-311,108,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,-311,126,-311,-311,-311,-311,-311,-311,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,2,63,68,371,99,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-63,-63,-63,-63,-63,108,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,-63,126,-63,-63,-63,-63,-63,-63,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,2,63,68,372,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,373,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,3,36,3,3,374,375,163,9,1,5,32,4,1,32,7,15,75,-380,-380,-380,-380,-380,-380,-380,-380,-380,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,-411,31,1,5,32,4,1,13,19,7,15,35,40,1,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-129,-129,-129,-129,-129,108,-129,-129,-129,127,-129,126,-129,-129,-129,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,2,63,68,376,99,13,1,5,32,4,1,32,7,15,75,2,1,17,1,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,-218,2,64,18,377,378,1,64,379,7,35,7,17,76,9,1,2,384,383,104,380,381,382,385,2,64,18,-234,-234,1,146,386,7,35,7,17,76,12,3,2,391,390,104,387,392,388,389,13,1,5,32,4,1,32,7,15,75,2,1,17,1,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,-238,13,1,5,32,4,1,32,7,15,75,2,1,17,1,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,-239,1,57,393,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,1,1,5,2,4,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,394,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,395,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,1,64,396,2,6,166,107,397,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,5,6,1,1,1,1,4,5,1,1,1,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,398,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,67,92,33,53,43,54,55,56,87,104,27,28,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,42,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,31,6,32,4,1,13,2,24,15,35,28,1,12,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-285,-285,-285,-285,108,313,-285,-285,127,399,312,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,57,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,-270,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,5,6,1,1,1,1,4,4,1,1,1,1,1,3,1,1,1,1,6,1,1,1,3,1,1,1,1,1,1,1,6,1,1,2,1,1,1,3,8,1,2,1,4,1,1,3,1,1,1,1,1,1,7,2,8,7,6,2,2,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,340,239,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,43,54,55,56,87,241,104,27,28,66,73,74,100,101,105,106,76,102,103,37,237,34,75,77,78,79,80,81,93,83,400,35,40,39,84,85,69,42,90,91,72,240,52,36,38,41,88,89,99,62,64,70,71,86,402,401,59,65,82,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,9,6,32,4,1,39,15,21,17,24,-138,-138,-138,-138,404,-138,405,-138,403,59,6,5,23,8,1,3,2,1,1,4,4,1,3,5,2,1,7,1,4,2,1,1,1,1,1,7,1,5,3,8,1,2,1,12,1,1,1,7,2,8,7,10,4,1,3,1,2,4,2,6,2,3,1,1,1,1,1,1,1,406,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,-298,5,6,36,1,39,15,-289,-289,-289,-289,-289,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,5,2,4,1,1,1,1,4,4,1,1,1,1,1,3,1,1,1,1,6,1,1,1,3,1,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,1,1,3,1,1,1,1,1,1,7,2,8,7,1,1,4,1,1,2,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,340,239,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,236,53,43,54,55,56,87,241,104,27,28,66,73,74,100,101,105,106,76,102,103,37,237,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,42,90,91,72,240,52,36,38,41,88,89,99,62,64,70,71,86,408,407,238,235,234,59,65,82,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,59,6,5,23,8,1,3,2,1,1,4,4,1,3,5,2,1,7,1,4,2,1,1,1,1,1,7,1,5,3,8,1,2,1,12,1,1,1,7,2,8,7,10,4,1,3,1,2,4,2,6,2,3,1,1,1,1,1,1,1,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,5,6,36,1,39,15,-294,-294,-294,-294,-294,6,6,32,4,1,39,15,-286,-286,-286,-286,-286,-286,6,6,32,4,1,39,15,-287,-287,-287,-287,-287,-287,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,1,1,3,2,2,1,3,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,3,1,1,1,1,1,1,1,6,1,1,2,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,-288,409,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,-288,33,-288,-288,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,-288,34,75,77,78,79,80,81,93,83,-288,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,54,1,5,30,2,4,1,13,2,11,1,5,5,2,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,-261,2,55,10,248,410,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,1,1,5,2,4,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,411,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,412,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,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,3,2,2,4,1,1,1,1,4,4,1,1,1,1,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,1,1,3,1,1,1,1,1,1,7,2,8,6,1,6,4,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,340,239,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,413,33,416,53,43,54,55,56,87,241,104,27,28,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,42,90,91,72,240,52,36,38,41,88,89,99,62,64,70,71,414,86,415,59,65,82,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,54,1,5,30,2,4,1,13,2,11,1,5,5,2,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,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,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,-269,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,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,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,2,55,10,248,417,2,55,10,248,418,24,39,3,14,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,419,163,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,24,39,3,14,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,420,163,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-315,-315,-315,-315,-315,108,-315,-315,-315,-315,-315,-315,-315,127,-315,-315,421,-315,-315,126,96,97,-315,-315,-315,-315,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-317,-317,-317,-317,-317,108,-317,-317,-317,-317,-317,-317,-317,127,-317,-317,422,-317,-317,126,96,97,-317,-317,-317,-317,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-324,-324,-324,-324,-324,108,-324,-324,-324,-324,-324,-324,-324,127,-324,-324,-324,-324,-324,126,96,97,-324,-324,-324,-324,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,6,6,36,1,39,11,42,-95,-95,-95,-95,423,-95,8,6,32,4,1,39,15,21,17,-138,-138,-138,-138,425,-138,424,-138,7,6,36,1,14,25,11,42,-104,-104,-104,426,-104,-104,-104,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,427,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,3,55,10,31,248,247,428,6,6,36,1,39,11,42,-107,-107,-107,-107,-107,-107,5,6,36,1,39,53,-206,-206,-206,-206,-206,15,6,30,6,1,14,25,11,13,1,1,1,1,2,23,19,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,15,6,30,6,1,14,25,11,13,1,1,1,1,2,23,19,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,15,6,30,6,1,14,25,11,13,1,1,1,1,2,23,19,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,5,6,36,1,39,53,-96,-96,-96,-96,-96,17,35,19,1,4,4,2,29,1,3,1,1,1,1,3,26,25,15,264,87,248,104,431,265,429,266,430,432,433,434,435,436,99,86,82,54,1,5,30,2,4,1,13,2,11,1,5,5,2,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,-190,437,-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,57,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,6,68,1,1,2,1,1,274,105,106,438,439,273,4,69,1,2,2,-74,-74,-74,-74,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,5,2,4,1,1,1,1,4,5,1,1,1,1,3,1,1,1,1,5,1,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,440,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,67,92,33,441,53,43,54,55,56,87,104,27,28,66,73,74,100,101,105,106,442,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,42,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,4,69,1,2,2,-79,-79,-79,-79,5,1,5,37,32,97,-4,-4,-4,-4,-4,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-393,-393,-393,-393,-393,108,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,-393,126,-393,-393,-393,-393,-393,-393,125,-393,-393,111,112,-393,-393,-393,-393,-393,-393,-393,120,121,-393,-393,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-394,-394,-394,-394,-394,108,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,-394,126,-394,-394,-394,-394,-394,-394,125,-394,-394,111,112,-394,-394,-394,-394,-394,-394,-394,120,121,-394,-394,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-395,-395,-395,-395,-395,108,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,-395,126,-395,-395,-395,-395,-395,-395,125,-395,-395,-395,112,-395,-395,-395,-395,-395,-395,-395,120,121,-395,-395,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-396,-396,-396,-396,-396,108,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,-396,126,-396,-396,-396,-396,-396,-396,125,-396,-396,-396,112,-396,-396,-396,-396,-396,-396,-396,120,121,-396,-396,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-397,-397,-397,-397,-397,108,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,-397,126,-397,-397,-397,-397,-397,-397,125,110,109,111,112,-397,-397,-397,-397,-397,-397,-397,120,121,-397,-397,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-398,-398,-398,-398,-398,108,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,126,-398,-398,-398,-398,-398,-398,125,110,109,111,112,113,-398,-398,-398,-398,-398,-398,120,121,122,-398,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-399,-399,-399,-399,-399,108,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,-399,126,-399,-399,-399,-399,-399,-399,125,110,109,111,112,113,114,-399,-399,-399,-399,-399,120,121,122,-399,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-400,-400,-400,-400,-400,108,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,-400,126,-400,-400,-400,-400,-400,-400,125,110,109,111,112,113,114,115,-400,-400,-400,-400,120,121,122,-400,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-401,-401,-401,-401,-401,108,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,-401,126,-401,-401,-401,-401,-401,-401,125,110,109,111,112,113,114,115,116,-401,-401,-401,120,121,122,-401,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-402,-402,-402,-402,-402,108,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,-402,126,-402,-402,-402,-402,-402,-402,125,110,109,111,112,113,114,115,116,117,-402,-402,120,121,122,-402,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-403,-403,-403,-403,-403,108,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,-403,126,-403,-403,-403,-403,-403,-403,125,110,109,111,112,113,114,115,116,117,118,-403,120,121,122,-403,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-404,-404,-404,-404,-404,108,-404,-404,-404,-404,-404,-404,-404,127,-404,-404,-404,-404,-404,126,96,97,-404,-404,-404,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-405,-405,-405,-405,-405,108,-405,-405,-405,-405,-405,-405,-405,127,-405,-405,-405,-405,-405,126,96,97,-405,-405,-405,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-406,-406,-406,-406,-406,108,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,-406,126,-406,-406,-406,-406,-406,-406,125,110,109,111,112,113,-406,-406,-406,-406,-406,-406,120,121,-406,-406,23,56,37,39,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,108,443,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-375,-375,-375,-375,-375,108,-375,-375,-375,-375,-375,-375,-375,127,-375,-375,-375,-375,-375,126,96,97,-375,-375,-375,-375,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-377,-377,-377,-377,-377,108,-377,-377,-377,-377,-377,-377,-377,127,-377,-377,-377,-377,-377,126,96,97,-377,-377,-377,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,3,134,44,2,445,444,446,11,35,19,5,4,32,1,24,1,10,2,49,155,159,104,158,156,160,200,157,99,447,199,11,35,19,5,4,32,1,24,1,10,2,49,155,159,104,158,156,160,200,157,99,448,199,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,449,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,-353,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-374,-374,-374,-374,-374,108,-374,-374,-374,-374,-374,-374,-374,127,-374,-374,-374,-374,-374,126,96,97,-374,-374,-374,-374,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-376,-376,-376,-376,-376,108,-376,-376,-376,-376,-376,-376,-376,127,-376,-376,-376,-376,-376,126,96,97,-376,-376,-376,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,54,1,5,30,2,4,1,13,2,11,1,5,5,2,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,54,1,5,30,2,4,1,13,2,11,1,5,5,2,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,54,1,5,30,2,4,1,13,2,11,1,5,5,2,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,-260,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,-156,-156,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,-157,-157,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,-158,-158,-158,-158,-158,-158,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,-159,-159,-159,-159,-159,-159,26,56,2,53,21,28,1,12,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,108,313,450,127,451,312,126,96,97,124,125,110,109,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,1,1,5,6,1,1,1,1,4,4,1,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,1,2,1,1,1,1,1,1,7,2,8,7,4,1,5,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,452,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,313,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,453,36,38,41,88,89,99,62,64,70,71,86,310,312,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,1,111,454,1,111,455,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,1,1,5,3,3,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,6,2,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,456,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,-279,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,-279,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,-86,457,-86,-86,-86,-86,-86,-86,-86,-83,-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,55,11,23,9,3,2,1,1,4,5,3,5,2,1,7,1,6,1,1,1,1,1,7,6,3,6,2,1,2,1,12,1,1,1,7,2,8,7,10,4,1,3,1,2,4,2,6,2,3,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,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,-273,55,11,23,9,3,2,1,1,4,5,3,5,2,1,7,1,6,1,1,1,1,1,7,6,3,6,2,1,2,1,12,1,1,1,7,2,8,7,10,4,1,3,1,2,4,2,6,2,3,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,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,-274,105,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,1,1,5,2,4,1,1,1,1,4,4,1,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,1,2,1,1,1,1,1,1,7,2,8,7,4,1,5,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,458,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,459,53,171,54,55,56,87,313,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,460,36,38,41,88,89,99,62,64,70,71,86,310,312,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,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,1,1,5,2,4,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,461,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,462,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,23,56,55,21,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,108,463,127,126,96,97,124,125,110,109,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,464,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,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,1,1,5,2,4,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,465,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,466,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-92,-92,-92,-92,-92,108,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,-92,126,-92,-92,-92,-92,-92,-92,125,110,109,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,467,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,468,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-35,-35,-35,-35,-35,108,-35,-35,-35,-35,-35,-35,-35,127,-35,-35,-35,-35,-35,126,96,97,-35,-35,-35,124,125,110,109,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,469,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,470,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-38,-38,-38,-38,-38,108,-38,-38,-38,-38,-38,-38,-38,127,-38,-38,-38,-38,-38,126,96,97,-38,-38,-38,124,125,110,109,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,471,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,472,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-41,-41,-41,-41,-41,108,-41,-41,-41,-41,-41,-41,-41,127,-41,-41,-41,-41,-41,126,96,97,-41,-41,-41,124,125,110,109,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,473,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,474,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,3,47,69,1,475,90,91,17,6,29,3,4,1,11,4,1,4,32,1,1,22,1,1,10,4,-139,155,-139,-139,-139,159,154,104,158,156,160,-139,476,153,157,99,-139,2,6,36,477,478,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,479,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,6,6,32,4,1,39,33,-147,-147,-147,-147,-147,-147,28,6,32,4,1,13,26,15,35,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-285,-285,-285,-285,108,-285,-285,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,57,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,7,1,3,2,1,3,1,1,5,2,5,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,-66,2,6,37,107,480,9,6,32,4,1,39,15,18,3,17,-138,-138,-138,-138,336,-138,481,337,-138,1,43,482,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-408,-408,-408,-408,-408,108,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,-408,126,-408,-408,-408,-408,-408,-408,125,110,109,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,483,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,484,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,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,5,6,1,1,1,1,1,1,1,1,5,1,1,1,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,487,488,489,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,43,54,55,56,485,486,490,491,104,27,28,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,42,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,-372,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,492,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,7,4,2,1,3,1,1,12,1,5,1,3,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,493,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,-305,2,39,3,494,163,6,35,4,3,17,4,68,495,497,163,104,496,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,498,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,499,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,500,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,1,134,501,1,180,502,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,503,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,10,35,19,5,4,32,1,24,1,10,51,155,159,104,158,156,160,200,157,99,504,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,505,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,3,184,2,1,506,366,367,4,43,142,1,1,507,508,509,367,3,43,142,2,-363,-363,-363,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,9,1,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,511,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,510,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,43,1,5,32,1,3,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-212,-212,-212,512,163,-212,108,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,-212,126,-212,-212,-212,-212,-212,-212,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,513,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,1,43,514,1,43,515,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-65,-65,-65,-65,-65,108,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,-65,126,-65,-65,-65,-65,-65,-65,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,18,6,29,2,1,4,1,11,4,1,4,19,13,1,19,4,1,1,10,-140,155,516,-140,-140,-140,159,154,104,158,-140,156,160,-140,152,153,157,99,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,1,43,517,3,68,1,1,518,105,106,3,131,12,5,520,519,221,3,68,1,1,521,105,106,1,64,522,8,6,32,4,1,39,15,21,17,-138,-138,-138,-138,524,-138,523,-138,5,6,36,1,39,53,-225,-225,-225,-225,-225,6,35,7,17,85,1,2,384,383,104,525,382,385,6,6,36,1,39,53,11,-230,-230,-230,-230,-230,526,6,6,36,1,39,53,11,-232,-232,-232,-232,-232,527,2,35,24,528,104,14,1,5,32,4,1,21,11,7,15,75,2,1,17,1,-236,-236,-236,-236,-236,529,-236,-236,-236,-236,-236,-236,-236,-236,8,6,32,4,1,39,15,21,17,-138,-138,-138,-138,531,-138,530,-138,5,6,36,1,39,53,-248,-248,-248,-248,-248,6,35,7,17,88,3,2,391,390,104,392,532,389,6,6,36,1,39,53,11,-253,-253,-253,-253,-253,533,6,6,36,1,39,53,11,-256,-256,-256,-256,-256,534,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,1,1,5,2,4,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,536,535,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,537,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,31,1,5,32,4,1,13,19,7,15,35,40,1,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-243,-243,-243,-243,-243,108,-243,-243,-243,127,-243,126,96,97,-243,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,2,63,68,538,99,3,68,1,1,539,105,106,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,-313,-313,-313,-313,-313,-313,-313,-313,-313,-313,2,6,37,107,540,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,541,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,57,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,-271,59,6,5,23,8,1,3,2,1,1,4,4,1,3,5,2,1,7,1,4,2,1,1,1,1,1,7,1,5,3,8,1,2,1,12,1,1,1,7,2,8,7,10,4,1,3,1,2,4,2,6,2,3,1,1,1,1,1,1,1,406,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,5,6,36,1,39,15,-295,-295,-295,-295,-295,2,42,55,543,542,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,3,2,2,1,3,1,1,1,1,4,4,1,1,1,1,1,3,1,1,1,1,6,1,1,1,3,1,1,1,1,1,1,1,6,1,1,2,1,1,1,3,8,1,2,1,4,1,1,3,1,1,1,1,1,1,3,4,2,8,7,1,5,1,1,2,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,-139,340,239,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,-139,33,-139,-139,53,43,54,55,56,87,241,104,27,28,66,73,74,100,101,105,106,76,102,103,37,237,34,75,77,78,79,80,81,93,83,-139,35,40,39,84,85,69,42,90,91,72,240,52,36,38,41,88,89,99,62,-139,64,70,71,86,545,238,544,234,59,65,82,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,4,6,36,1,54,546,-296,-296,-296,59,6,5,23,8,1,3,2,1,1,4,4,1,3,5,2,1,7,1,4,2,1,1,1,1,1,7,1,5,3,8,1,2,1,12,1,1,1,7,2,8,7,10,4,1,3,1,2,4,2,6,2,3,1,1,1,1,1,1,1,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,9,6,32,4,1,39,15,21,17,24,-138,-138,-138,-138,404,-138,405,-138,547,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,5,6,1,1,1,1,4,4,1,1,1,1,1,3,1,1,1,1,6,1,1,1,3,1,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,1,1,3,1,1,1,1,1,1,7,2,8,7,6,2,2,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,340,239,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,43,54,55,56,87,241,104,27,28,66,73,74,100,101,105,106,76,102,103,37,237,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,42,90,91,72,240,52,36,38,41,88,89,99,62,64,70,71,86,402,401,59,65,82,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,28,6,32,4,1,13,26,15,35,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-153,-153,-153,-153,108,-153,-153,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,-195,23,56,55,21,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,108,548,127,126,96,97,124,125,110,109,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,549,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,54,1,5,30,2,4,1,13,2,11,1,5,5,2,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,-265,8,6,32,4,1,39,15,21,17,-138,-138,-138,-138,551,-138,550,-138,5,6,32,4,1,39,-280,-280,-280,-280,-280,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,5,2,4,1,1,1,1,4,4,1,1,1,1,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,1,1,3,1,1,1,1,1,1,7,2,8,6,1,6,4,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,340,239,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,416,53,43,54,55,56,87,241,104,27,28,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,42,90,91,72,240,52,36,38,41,88,89,99,62,64,70,71,552,86,415,59,65,82,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,5,7,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,-367,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,5,7,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,553,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,554,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,555,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,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,1,1,5,2,4,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,556,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,557,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,3,6,36,93,559,560,558,23,6,29,3,4,1,11,1,3,1,6,1,1,1,1,1,20,1,1,2,1,1,1,38,-139,264,-139,-139,-139,261,248,268,104,265,262,100,101,105,106,561,562,267,259,266,260,-139,-139,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,1,1,5,2,4,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,563,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,564,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,23,56,41,35,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,108,565,127,126,96,97,124,125,110,109,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,566,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,16,6,30,6,1,26,1,12,21,3,1,1,1,1,2,23,19,-108,-110,-108,-108,-263,-263,-108,567,-110,-110,-110,-110,-110,-110,-108,140,16,6,30,6,1,26,1,12,21,3,1,1,1,1,2,23,19,-109,-263,-109,-109,-263,-263,-109,568,569,570,571,572,573,574,-109,140,13,6,30,6,1,39,24,1,1,1,1,2,23,19,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,-111,13,6,30,6,1,39,24,1,1,1,1,2,23,19,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,13,6,30,6,1,39,24,1,1,1,1,2,23,19,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,13,6,30,6,1,39,24,1,1,1,1,2,23,19,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,7,36,33,1,33,3,4,44,-263,-263,-263,575,243,244,140,2,36,68,245,576,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,56,1,5,30,2,4,1,13,2,11,1,2,2,1,5,2,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,4,69,1,2,2,-75,-75,-75,-75,2,6,69,107,577,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,5,6,1,1,1,1,4,5,1,1,1,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,578,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,67,92,33,53,43,54,55,56,87,104,27,28,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,42,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,4,69,1,2,2,-78,-78,-78,-78,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,579,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,580,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,581,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,582,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,1,134,583,1,180,584,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,585,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,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,1,1,5,3,3,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,6,2,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,586,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,-277,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,-277,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,26,43,13,2,74,28,1,12,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,587,108,313,127,451,312,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,1,43,588,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,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,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,24,43,13,55,21,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-278,108,-278,127,126,96,97,124,125,110,109,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,589,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,26,56,2,53,21,28,1,12,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,108,313,590,127,451,312,126,96,97,124,125,110,109,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,1,1,5,6,1,1,1,1,4,4,1,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,1,2,1,1,1,1,1,1,7,2,8,7,4,1,5,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,591,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,313,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,592,36,38,41,88,89,99,62,64,70,71,86,310,312,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,1,111,593,23,56,55,21,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,108,594,127,126,96,97,124,125,110,109,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,595,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,23,43,13,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,596,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,23,56,55,21,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,108,597,127,126,96,97,124,125,110,109,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,598,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-93,-93,-93,-93,-93,108,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,-93,126,-93,-93,-93,-93,-93,-93,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,23,43,13,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,599,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-36,-36,-36,-36,-36,108,-36,-36,-36,-36,-36,-36,-36,127,-36,-36,-36,-36,-36,126,96,97,-36,-36,-36,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,23,43,13,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,600,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-39,-39,-39,-39,-39,108,-39,-39,-39,-39,-39,-39,-39,127,-39,-39,-39,-39,-39,126,96,97,-39,-39,-39,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,23,43,13,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,601,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-42,-42,-42,-42,-42,108,-42,-42,-42,-42,-42,-42,-42,127,-42,-42,-42,-42,-42,126,96,97,-42,-42,-42,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,23,43,13,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,602,108,127,126,96,97,124,125,110,109,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,4,1,2,4,1,1,1,1,4,5,1,1,1,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,604,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,67,92,603,33,163,53,43,54,55,56,87,104,27,28,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,42,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,6,6,32,4,1,39,33,-142,-142,-142,-142,-142,-142,11,35,19,4,1,4,32,1,23,1,1,10,155,159,154,104,158,156,160,605,153,157,99,18,6,29,2,1,4,1,11,4,1,4,19,13,1,19,4,1,1,10,-140,155,606,-140,-140,-140,159,154,104,158,-140,156,160,-140,152,153,157,99,28,6,32,4,1,13,26,33,17,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-146,-146,-146,-146,108,-146,-146,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,57,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,7,1,3,2,1,3,1,1,5,2,5,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,3,47,69,1,607,90,91,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,-387,23,43,13,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,608,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-410,-410,-410,-410,-410,108,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,-410,126,-410,-410,-410,-410,-410,-410,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,2,6,37,610,609,2,6,37,-49,-49,24,6,37,13,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-52,-52,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,2,6,37,-53,-53,7,6,37,130,1,1,17,1,-54,-54,130,96,97,128,129,2,6,37,-55,-55,55,1,5,30,2,4,1,12,1,2,7,4,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-268,-268,-268,-268,-268,-268,611,-268,612,247,-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,-268,-268,24,39,3,14,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,613,163,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,2,39,3,614,163,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,2,39,3,615,163,2,39,3,616,163,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,7,4,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,26,39,3,14,76,4,37,1,1,4,13,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,617,163,108,127,618,126,96,97,619,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,25,39,3,14,76,4,37,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,620,163,108,127,621,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,25,39,3,14,76,4,37,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,622,163,108,127,623,126,96,97,124,125,110,109,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,624,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,625,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,24,39,3,14,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,626,163,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,3,134,44,2,-358,-358,-358,26,56,26,50,2,39,1,1,3,2,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,108,-356,127,-356,126,96,97,-356,-356,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,4,43,142,1,1,627,628,509,367,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,2,39,3,629,163,3,43,142,2,-364,-364,-364,3,39,3,40,630,163,631,24,42,14,26,50,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-302,108,-302,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,43,1,5,32,1,3,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-216,-216,-216,632,163,-216,108,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,-216,126,-216,-216,-216,-216,-216,-216,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,8,6,32,4,1,39,15,21,17,-138,633,-138,-138,336,-138,337,-138,13,1,5,32,4,1,32,7,15,75,2,1,17,1,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,-130,13,1,5,32,4,1,32,7,15,75,2,1,17,1,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,-219,1,64,634,6,35,7,17,85,1,2,384,383,104,635,382,385,13,1,5,32,4,1,32,7,15,75,2,1,17,1,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,-220,3,68,1,1,636,105,106,3,6,36,93,638,639,637,10,6,29,3,4,1,16,38,38,10,2,-139,384,-139,-139,-139,104,-139,-139,640,385,8,6,32,4,1,39,15,21,17,-138,-138,-138,-138,524,-138,641,-138,2,35,24,642,104,2,35,24,643,104,1,64,-235,3,68,1,1,644,105,106,3,6,36,93,646,647,645,10,6,29,3,4,1,16,38,38,12,5,-139,391,-139,-139,-139,104,-139,-139,392,648,8,6,32,4,1,39,15,21,17,-138,-138,-138,-138,531,-138,649,-138,3,35,24,88,650,104,651,2,35,24,652,104,31,1,5,32,4,1,13,19,7,15,35,40,1,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-240,-240,-240,-240,-240,108,-240,-240,-240,127,-240,126,-240,-240,-240,125,110,109,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,653,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,654,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,1,43,655,13,1,5,32,4,1,32,7,15,75,2,1,17,1,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,1,172,656,23,56,41,35,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,108,657,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,57,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,-272,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,5,2,4,1,1,1,1,4,4,1,1,1,1,1,3,1,1,1,1,6,1,1,1,3,1,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,1,1,3,1,1,1,1,1,1,7,2,8,7,1,1,4,1,1,2,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,340,239,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,236,53,43,54,55,56,87,241,104,27,28,66,73,74,100,101,105,106,76,102,103,37,237,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,42,90,91,72,240,52,36,38,41,88,89,99,62,64,70,71,86,408,658,238,235,234,59,65,82,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,5,6,36,1,39,15,-290,-290,-290,-290,-290,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,5,2,1,3,1,1,1,1,4,4,1,1,1,1,1,3,1,1,1,1,6,1,1,1,3,1,1,1,1,1,1,1,6,1,1,2,1,1,1,3,8,1,2,1,4,1,1,3,1,1,1,1,1,1,7,2,8,7,6,2,2,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,340,239,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,-297,-297,53,43,54,55,56,87,241,104,27,28,66,73,74,100,101,105,106,76,102,103,37,237,34,75,77,78,79,80,81,93,83,-297,35,40,39,84,85,69,42,90,91,72,240,52,36,38,41,88,89,99,62,64,70,71,86,402,401,59,65,82,60,96,97,61,98,49,63,57,94,58,95,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,5,6,1,1,1,1,4,4,1,1,1,1,1,3,1,1,1,1,6,1,1,1,3,1,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,1,1,3,1,1,1,1,1,1,7,2,8,7,1,5,1,1,2,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,340,239,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,43,54,55,56,87,241,104,27,28,66,73,74,100,101,105,106,76,102,103,37,237,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,42,90,91,72,240,52,36,38,41,88,89,99,62,64,70,71,86,408,238,659,234,59,65,82,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,2,42,1,543,660,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,-196,23,43,13,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,661,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,3,6,32,4,663,662,664,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,3,2,2,1,3,1,1,1,1,4,4,1,1,1,1,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,1,2,1,1,1,3,8,1,2,1,4,1,1,3,1,1,1,1,1,1,3,4,2,8,7,6,4,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,-139,340,239,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,-139,33,-139,-139,53,43,54,55,56,87,241,104,27,28,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,-139,35,40,39,84,85,69,42,90,91,72,240,52,36,38,41,88,89,99,62,-139,64,70,71,86,665,59,65,82,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,8,6,32,4,1,39,15,21,17,-138,-138,-138,-138,551,-138,666,-138,2,39,3,667,163,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-316,-316,-316,-316,-316,108,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,126,-316,-316,-316,-316,-316,-316,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-318,-318,-318,-318,-318,108,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,126,-318,-318,-318,-318,-318,-318,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,27,6,36,1,13,26,50,3,38,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-97,-97,-97,108,-97,668,-97,126,96,97,124,125,110,109,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,669,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,57,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,17,35,19,1,3,1,6,1,1,1,1,1,20,1,1,2,1,1,264,261,248,268,104,265,262,100,101,105,106,670,562,267,259,266,260,23,6,29,7,1,11,1,3,1,6,1,1,1,1,1,12,8,1,1,2,1,1,39,3,-205,264,-205,-205,261,248,268,104,265,262,100,101,105,106,-205,263,562,267,259,266,260,-205,671,5,6,36,1,39,53,-207,-207,-207,-207,-207,6,6,36,1,39,11,42,-95,-95,-95,-95,672,-95,27,6,36,1,13,26,50,3,38,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-99,-99,-99,108,-99,127,-99,126,96,97,124,125,110,109,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,673,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,6,6,36,1,39,11,42,-105,-105,-105,-105,-105,-105,23,56,41,35,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,108,674,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,2,36,68,245,675,2,36,68,245,676,2,55,10,248,677,2,55,10,248,678,15,6,30,6,1,12,10,17,24,1,1,1,1,2,23,19,-123,-123,-123,-123,248,679,-123,-123,-123,-123,-123,-123,-123,-123,-123,15,6,30,6,1,12,10,17,24,1,1,1,1,2,23,19,-124,-124,-124,-124,248,680,-124,-124,-124,-124,-124,-124,-124,-124,-124,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,1,1,5,2,4,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,681,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,682,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,1,110,683,2,36,68,245,684,13,6,30,6,1,39,24,1,1,1,1,2,23,19,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,-116,4,69,1,2,2,-76,-76,-76,-76,2,6,37,107,685,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-407,-407,-407,-407,-407,108,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,-407,126,-407,-407,-407,-407,-407,-407,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-340,-340,-340,-340,-340,108,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,686,-340,-340,126,-340,-340,-340,687,-340,-340,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-345,-345,-345,-345,-345,108,-345,-345,-345,-345,-345,-345,-345,-345,-345,-345,688,-345,-345,126,-345,-345,-345,-345,-345,-345,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-349,-349,-349,-349,-349,108,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,689,-349,-349,126,-349,-349,-349,-349,-349,-349,125,110,109,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,690,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,691,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-354,-354,-354,-354,-354,108,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,126,-354,-354,-354,-354,-354,-354,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,24,43,13,55,21,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-276,108,-276,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,1,111,692,1,111,693,23,56,55,21,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,108,-82,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,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,-167,-167,-167,-167,-167,-167,-167,-167,-167,26,43,13,2,74,28,1,12,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,694,108,313,127,451,312,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,1,43,695,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,-171,-171,-171,-171,-171,-171,-171,23,43,13,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,696,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,1,111,697,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,23,43,13,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,698,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,-132,9,1,5,32,4,1,32,7,15,75,-134,-134,-134,-134,-134,-134,-134,-134,-134,6,6,32,4,1,39,33,-143,-143,-143,-143,-143,-143,8,6,32,4,1,39,15,21,17,-138,-138,-138,-138,336,-138,699,-138,2,39,3,603,163,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,-409,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,107,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,5,3,3,1,1,1,1,2,1,1,5,1,1,1,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,-51,487,488,489,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,-51,53,43,54,55,56,700,490,491,104,27,28,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,42,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-69,-56,-69,-69,-69,-69,-56,-69,-69,701,702,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,-69,1,59,703,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,5,7,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,7,4,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,7,4,2,1,3,1,1,12,1,5,1,3,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,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,704,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,705,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,706,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,707,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,25,39,3,14,76,4,37,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,708,163,108,127,709,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,25,39,3,14,76,4,37,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,710,163,108,127,711,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,2,39,3,712,163,1,43,713,4,6,37,142,2,714,-365,-365,-365,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,715,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,-217,2,39,3,716,163,3,68,1,1,717,105,106,8,6,32,4,1,39,15,21,17,-138,-138,-138,-138,524,-138,718,-138,13,1,5,32,4,1,32,7,15,75,2,1,17,1,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,-221,1,64,719,4,35,24,86,2,384,104,720,385,6,35,7,17,85,1,2,384,383,104,721,382,385,5,6,36,1,39,53,-226,-226,-226,-226,-226,3,6,36,1,638,639,722,5,6,36,1,39,53,-231,-231,-231,-231,-231,5,6,36,1,39,53,-233,-233,-233,-233,-233,13,1,5,32,4,1,32,7,15,75,2,1,17,1,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,14,1,5,32,4,1,21,11,7,15,75,2,1,17,1,-237,-237,-237,-237,-237,723,-237,-237,-237,-237,-237,-237,-237,-237,4,35,24,88,5,391,104,392,724,6,35,7,17,88,3,2,391,390,104,392,725,389,5,6,36,1,39,53,-249,-249,-249,-249,-249,3,6,36,1,646,647,726,5,6,36,1,39,53,-254,-254,-254,-254,-254,5,6,36,1,39,53,-255,-255,-255,-255,-255,5,6,36,1,39,53,-257,-257,-257,-257,-257,31,1,5,32,4,1,13,19,7,15,35,40,1,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-241,-241,-241,-241,-241,108,-241,-241,-241,127,-241,126,-241,-241,-241,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,23,43,13,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,727,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,13,1,5,32,4,1,32,7,15,75,2,1,17,1,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,-244,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,-275,-275,-275,-275,-275,-275,-275,-275,-275,-275,9,6,32,4,1,39,15,21,17,24,-138,-138,-138,-138,404,-138,405,-138,728,5,6,36,1,39,15,-291,-291,-291,-291,-291,5,6,36,1,39,15,-292,-292,-292,-292,-292,1,111,729,54,1,5,30,2,4,1,13,2,11,1,5,5,2,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,-266,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,5,6,1,1,1,1,4,4,1,1,1,1,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,1,1,3,1,1,1,1,1,1,7,2,8,7,6,4,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,340,239,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,43,54,55,56,87,241,104,27,28,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,42,90,91,72,240,52,36,38,41,88,89,99,62,64,70,71,86,730,59,65,82,60,96,97,61,98,49,63,57,94,58,95,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,5,2,4,1,1,1,1,4,4,1,1,1,1,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,1,1,3,1,1,1,1,1,1,7,2,8,6,1,6,4,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,340,239,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,416,53,43,54,55,56,87,241,104,27,28,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,42,90,91,72,240,52,36,38,41,88,89,99,62,64,70,71,731,86,415,59,65,82,60,96,97,61,98,49,63,57,94,58,95,44,45,68,46,47,48,50,51,5,6,32,4,1,39,-281,-281,-281,-281,-281,3,6,36,1,663,664,732,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,-370,14,35,19,5,4,32,1,24,1,5,5,2,4,44,1,155,159,104,158,156,83,200,157,296,99,733,734,295,199,23,43,13,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,735,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,5,6,36,1,39,53,-208,-208,-208,-208,-208,8,6,32,4,1,39,15,21,17,-138,-138,-138,-138,425,-138,736,-138,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,1,1,5,2,4,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,737,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,557,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,23,43,13,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,738,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,6,6,36,1,39,11,42,-106,-106,-106,-106,-106,-106,13,6,30,6,1,39,24,1,1,1,1,2,23,19,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,13,6,30,6,1,39,24,1,1,1,1,2,23,19,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,-118,13,6,30,6,1,39,24,1,1,1,1,2,23,19,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,13,6,30,6,1,39,24,1,1,1,1,2,23,19,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,13,6,30,6,1,39,24,1,1,1,1,2,23,19,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,-121,13,6,30,6,1,39,24,1,1,1,1,2,23,19,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,-122,23,56,55,21,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,108,739,127,126,96,97,124,125,110,109,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,740,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,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,1,1,5,2,4,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,741,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,742,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,13,6,30,6,1,39,24,1,1,1,1,2,23,19,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,1,75,743,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,744,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,745,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,746,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,747,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-347,-347,-347,-347,-347,108,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,748,-347,-347,126,-347,-347,-347,-347,-347,-347,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-351,-351,-351,-351,-351,108,-351,-351,-351,-351,-351,-351,-351,-351,-351,-351,749,-351,-351,126,-351,-351,-351,-351,-351,-351,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,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,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,1,111,750,1,111,751,1,111,752,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,1,111,753,3,6,36,1,477,478,754,2,6,37,-50,-50,2,6,37,-57,-57,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,755,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,2,6,37,-59,-59,25,39,3,14,76,41,1,1,4,13,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,756,163,108,127,126,96,97,757,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,25,39,3,14,76,4,37,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,758,163,108,127,759,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,24,39,3,14,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,760,163,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,24,39,3,14,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,761,163,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,762,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,763,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,1,43,764,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,3,43,142,2,-366,-366,-366,24,42,14,26,50,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-303,108,-303,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,13,1,5,32,4,1,32,7,15,75,2,1,17,1,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,-223,3,6,36,93,638,639,765,3,68,1,1,766,105,106,5,6,36,1,39,53,-227,-227,-227,-227,-227,8,6,32,4,1,39,15,21,17,-138,-138,-138,-138,524,-138,767,-138,5,6,36,1,39,53,-228,-228,-228,-228,-228,3,68,1,1,768,105,106,5,6,36,1,39,53,-250,-250,-250,-250,-250,8,6,32,4,1,39,15,21,17,-138,-138,-138,-138,531,-138,769,-138,5,6,36,1,39,53,-251,-251,-251,-251,-251,13,1,5,32,4,1,32,7,15,75,2,1,17,1,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,-242,2,42,1,543,770,53,1,5,30,2,4,1,13,2,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,5,6,32,4,1,39,-282,-282,-282,-282,-282,8,6,32,4,1,39,15,21,17,-138,-138,-138,-138,551,-138,771,-138,5,6,32,4,1,39,-283,-283,-283,-283,-283,3,134,44,2,772,444,446,11,35,19,5,4,32,1,24,1,10,2,49,155,159,104,158,156,160,200,157,99,773,199,5,6,36,1,39,53,-98,-98,-98,-98,-98,3,6,36,1,559,560,774,27,6,36,1,13,26,50,3,38,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-97,-97,-97,108,-97,127,-97,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,5,6,36,1,39,53,-100,-100,-100,-100,-100,13,6,30,6,1,39,24,1,1,1,1,2,23,19,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,-125,23,43,13,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,775,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,23,56,55,21,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,108,776,127,126,96,97,124,125,110,109,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,777,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,4,69,1,2,2,-77,-77,-77,-77,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-341,-341,-341,-341,-341,108,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,126,-341,-341,-341,778,-341,-341,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-342,-342,-342,-342,-342,108,-342,-342,-342,-342,-342,-342,-342,-342,-342,-342,779,-342,-342,126,-342,-342,-342,-342,-342,-342,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-346,-346,-346,-346,-346,108,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,126,-346,-346,-346,-346,-346,-346,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-350,-350,-350,-350,-350,108,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,-350,126,-350,-350,-350,-350,-350,-350,125,110,109,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,780,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,781,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,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,-168,-168,-168,-168,-168,-168,-168,-168,-168,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,-172,-172,-172,-172,-172,-172,-172,61,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,6,6,32,4,1,39,33,-144,-144,-144,-144,-144,-144,24,6,37,13,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-58,-58,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,782,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,783,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,24,39,3,14,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,784,163,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,24,39,3,14,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,785,163,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,1,64,786,13,1,5,32,4,1,32,7,15,75,2,1,17,1,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,-222,3,6,36,1,638,639,787,13,1,5,32,4,1,32,7,15,75,2,1,17,1,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,3,6,36,1,646,647,788,5,6,36,1,39,15,-293,-293,-293,-293,-293,3,6,36,1,663,664,789,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,790,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,1,134,791,5,6,36,1,39,53,-209,-209,-209,-209,-209,1,111,792,13,6,30,6,1,39,24,1,1,1,1,2,23,19,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,-127,23,43,13,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,793,108,127,126,96,97,124,125,110,109,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,794,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,795,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-348,-348,-348,-348,-348,108,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,126,-348,-348,-348,-348,-348,-348,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-352,-352,-352,-352,-352,108,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,-352,126,-352,-352,-352,-352,-352,-352,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,24,39,3,14,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,796,163,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,24,39,3,14,76,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,797,163,108,127,126,96,97,124,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,3,68,1,1,798,105,106,5,6,36,1,39,53,-229,-229,-229,-229,-229,5,6,36,1,39,53,-252,-252,-252,-252,-252,5,6,32,4,1,39,-284,-284,-284,-284,-284,43,1,5,32,4,1,13,2,17,7,11,4,14,4,3,14,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-345,-345,-345,-345,-345,108,-345,-345,801,-345,-345,-345,-345,799,-345,-345,-345,800,-345,-345,126,-345,-345,-345,-345,-345,-345,125,110,109,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,802,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,13,6,30,6,1,39,24,1,1,1,1,2,23,19,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,-126,1,111,803,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-343,-343,-343,-343,-343,108,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,-343,126,-343,-343,-343,-343,-343,-343,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,42,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-344,-344,-344,-344,-344,108,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,-344,126,-344,-344,-344,-344,-344,-344,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,41,1,5,32,4,1,13,2,17,7,11,4,14,4,17,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,13,1,5,32,4,1,32,7,15,75,2,1,17,1,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,-224,1,135,804,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,805,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,6,6,32,4,1,54,38,-139,-139,-139,-139,-139,-139,43,1,5,32,4,1,13,2,17,7,11,4,14,4,3,14,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-347,-347,-347,-347,-347,108,-347,-347,801,-347,-347,-347,-347,806,-347,-347,-347,807,-347,-347,126,-347,-347,-347,-347,-347,-347,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,13,6,30,6,1,39,24,1,1,1,1,2,23,19,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,-128,57,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,43,1,5,32,4,1,13,2,17,7,11,4,14,4,3,14,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-346,-346,-346,-346,-346,108,-346,-346,801,-346,-346,-346,-346,808,-346,-346,-346,-346,-346,-346,126,-346,-346,-346,-346,-346,-346,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,1,135,809,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,1,1,5,6,1,1,1,1,4,5,3,1,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,6,1,3,1,1,1,3,8,1,2,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,810,166,29,30,31,32,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,67,92,33,53,171,54,55,56,87,104,66,73,74,100,101,105,106,76,102,103,37,34,75,77,78,79,80,81,93,83,35,40,39,84,85,69,170,90,91,72,52,36,38,41,88,89,99,62,64,70,71,86,59,65,82,60,96,97,61,98,49,63,57,94,58,95,172,173,174,46,47,48,50,51,1,135,811,57,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,43,1,5,32,4,1,13,2,17,7,11,4,14,4,3,14,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-348,-348,-348,-348,-348,108,-348,-348,801,-348,-348,-348,-348,812,-348,-348,-348,-348,-348,-348,126,-348,-348,-348,-348,-348,-348,125,110,109,111,112,113,114,115,116,117,118,119,120,121,122,123,57,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,1,135,813,57,1,5,30,2,3,1,1,1,1,11,1,1,11,1,5,7,11,4,9,1,1,1,1,1,1,3,10,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203],A=[],$=0,E,R,_,X;while($<U.length){E=U[$++],R={},_=0,X=[];while(E--)_+=U[$++],X.push(_);for(_ of X)R[_]=U[$++];A.push(R)}return A})(),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,33,6,33,3,18,3,18,4,18,5,19,3,19,4,19,5,20,3,20,4,20,5,21,3,21,2,22,2,23,2,24,5,51,1,51,3,51,2,52,1,52,1,52,1,52,1,53,2,53,3,53,4,53,3,8,1,8,1,32,1,32,2,32,4,32,3,39,2,39,3,35,1,65,1,66,1,66,1,68,1,68,3,71,1,71,2,73,3,73,5,73,2,73,1,76,1,76,3,81,3,81,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,17,3,17,4,17,5,90,1,90,1,90,3,90,5,90,3,90,5,94,1,94,1,94,1,91,1,91,3,91,4,91,1,92,2,92,2,98,1,98,1,98,1,98,1,98,1,98,3,98,2,98,3,98,3,98,3,98,3,98,3,98,3,98,2,98,2,98,4,98,6,98,5,98,7,10,2,10,4,10,1,15,5,15,2,60,5,60,2,47,1,47,1,118,0,118,1,37,0,37,1,37,3,37,4,37,6,119,1,119,3,119,2,119,1,120,1,120,1,120,1,120,1,122,2,123,1,123,1,123,3,123,3,123,3,123,3,123,2,123,2,123,4,123,6,123,4,123,6,123,4,123,5,123,7,123,5,123,7,123,5,123,7,123,3,123,3,123,3,123,3,123,2,123,2,123,4,123,6,123,5,123,7,40,1,40,1,40,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,100,3,100,4,100,6,128,3,128,3,63,10,63,12,63,11,63,13,63,4,138,0,138,1,138,3,138,4,138,6,30,1,30,2,30,3,30,4,30,2,30,3,30,4,30,5,12,2,12,4,12,4,12,5,12,7,12,6,12,9,144,1,144,3,144,4,144,4,144,6,145,1,145,3,145,1,145,3,142,1,143,3,13,3,13,5,13,2,13,2,13,4,13,5,13,6,13,3,13,5,13,4,13,5,13,7,150,1,150,3,150,4,150,4,150,6,152,1,152,3,152,3,152,1,152,3,79,3,79,3,79,3,79,2,79,2,103,0,103,1,104,2,104,4,101,1,101,1,95,2,121,2,121,3,121,4,160,1,160,1,126,5,124,3,124,2,124,2,124,1,155,1,155,3,155,4,155,4,155,6,162,1,162,1,162,1,162,1,158,1,158,3,158,4,158,4,158,6,163,1,163,2,159,1,159,2,157,1,157,2,164,1,164,2,165,1,165,3,26,2,26,3,26,4,26,5,167,3,167,3,167,2,31,2,31,4,99,3,99,5,173,2,173,4,173,2,173,4,27,2,27,2,27,2,27,1,176,2,176,2,28,5,28,7,28,7,28,9,28,9,28,5,28,7,28,6,28,8,28,5,28,7,28,6,28,8,28,3,28,5,28,5,28,7,28,7,28,9,28,9,28,5,28,7,28,6,28,8,28,5,28,7,28,6,28,8,28,3,28,5,182,1,182,3,133,1,133,3,29,5,29,7,29,4,29,6,184,1,184,2,186,3,186,4,188,3,188,5,190,3,190,5,25,1,25,3,25,1,25,3,25,3,25,3,25,3,61,2,61,2,61,2,16,2,16,2,16,2,16,2,16,2,16,2,16,4,16,2,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,5,16,3,16,5,16,4,127,2],ruleActions:(U,A,$,E)=>{let R=A,_=A.length-1;switch(U){case 1:return["program"];case 2:return["program",...R[_]];case 3:case 49:case 74:case 141:case 206:case 225:case 248:case 280:case 294:case 298:case 357:case 363:return[R[_]];case 4:case 50:case 142:case 207:case 226:case 249:case 281:return[...R[_-2],R[_]];case 5:case 51:case 76:case 301:return R[_-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 52:case 53:case 54:case 55:case 60:case 61:case 68:case 69:case 70:case 71:case 72:case 79:case 80:case 84:case 85:case 86:case 89:case 90:case 91:case 96:case 101:case 102:case 103:case 104:case 107:case 110:case 111:case 112:case 113:case 114:case 136:case 137:case 138:case 139:case 145:case 149:case 150:case 151:case 152:case 154:case 155:case 183:case 184:case 185:case 186:case 187:case 188:case 189:case 190:case 191:case 192:case 193:case 194:case 230:case 232:case 234:case 253:case 256:case 285:case 286:case 287:case 289:case 302:case 322:case 355:case 371:case 373:return R[_];case 33:return["def",R[_-4],R[_-2],R[_]];case 34:return["def",R[_-1],[],R[_]];case 35:return["signal",R[_-2],R[_]];case 36:return["signal",R[_-3],R[_]];case 37:return["signal",R[_-4],R[_-1]];case 38:return["derived",R[_-2],R[_]];case 39:return["derived",R[_-3],R[_]];case 40:return["derived",R[_-4],R[_-1]];case 41:return["readonly",R[_-2],R[_]];case 42:return["readonly",R[_-3],R[_]];case 43:return["readonly",R[_-4],R[_-1]];case 44:case 45:return["effect",R[_]];case 46:return["render",R[_]];case 47:return["style",R[_]];case 48:return["component",R[_-3],["block",...R[_-1]]];case 56:return["prop",R[_]];case 57:return["prop",R[_-1],"optional"];case 58:return["prop",R[_-2],R[_]];case 59:return["prop-rest",R[_]];case 62:return["yield"];case 63:return["yield",R[_]];case 64:return["yield",R[_-1]];case 65:return["yield-from",R[_]];case 66:return["block"];case 67:return["block",...R[_-1]];case 73:return["str",...R[_-1]];case 75:case 295:case 299:case 364:return[...R[_-1],R[_]];case 77:case 228:case 251:case 266:case 283:return R[_-2];case 78:return"";case 81:return["regex",R[_-1]];case 82:return["regex-index",R[_-2],R[_]];case 83:return["regex-index",R[_],null];case 87:return"undefined";case 88:return"null";case 92:return["=",R[_-2],R[_]];case 93:return["=",R[_-3],R[_]];case 94:return["=",R[_-4],R[_-1]];case 95:return[R[_],R[_],null];case 97:return[R[_-2],R[_],":"];case 98:return[R[_-4],R[_-1],":"];case 99:return[R[_-2],R[_],"="];case 100:return[R[_-4],R[_-1],"="];case 105:return["computed",R[_-1]];case 106:return["[]","this",R[_-1]];case 108:case 109:case 153:return["...",R[_]];case 115:case 261:return["super",...R[_]];case 116:case 262:return["import",...R[_]];case 117:case 118:return[R[_-2],...R[_]];case 119:case 156:case 173:return[".",R[_-2],R[_]];case 120:case 157:case 174:return["?.",R[_-2],R[_]];case 121:case 158:case 175:return["::",R[_-2],R[_]];case 122:case 159:case 176:return["?::",R[_-2],R[_]];case 123:case 160:case 177:return["::",R[_-1],"prototype"];case 124:case 161:case 178:return["?::",R[_-1],"prototype"];case 125:case 162:case 164:case 179:return["[]",R[_-3],R[_-1]];case 126:case 163:case 165:case 180:return["[]",R[_-5],R[_-2]];case 127:case 167:case 169:case 181:return["?[]",R[_-4],R[_-1]];case 128:case 168:case 170:case 182:return["?[]",R[_-6],R[_-2]];case 129:return["return",R[_]];case 130:return["return",R[_-1]];case 131:return["return"];case 132:case 134:return[R[_-1],R[_-3],R[_]];case 133:case 135:return[R[_-1],[],R[_]];case 140:case 205:case 265:case 296:return[];case 143:case 208:case 227:case 250:case 282:return[...R[_-3],R[_]];case 144:case 209:case 229:case 252:case 284:return[...R[_-5],...R[_-2]];case 146:case 356:return["default",R[_-2],R[_]];case 147:return["rest",R[_]];case 148:return["expansion"];case 166:return[R[_-1][0],R[_-3],...R[_-1].slice(1)];case 171:return["optindex",R[_-4],R[_-1]];case 172:return["optindex",R[_-6],R[_-2]];case 195:return[".","super",R[_]];case 196:return["[]","super",R[_-1]];case 197:return["[]","super",R[_-2]];case 198:return[".","new",R[_]];case 199:return[".","import",R[_]];case 200:return["object-comprehension",R[_-8],R[_-6],[["for-of",R[_-4],R[_-2],!1]],[]];case 201:return["object-comprehension",R[_-10],R[_-8],[["for-of",R[_-6],R[_-4],!1]],[R[_-2]]];case 202:return["object-comprehension",R[_-9],R[_-7],[["for-of",R[_-4],R[_-2],!0]],[]];case 203:return["object-comprehension",R[_-11],R[_-9],[["for-of",R[_-6],R[_-4],!0]],[R[_-2]]];case 204:return["object",...R[_-2]];case 210:return["class",null,null];case 211:return["class",null,null,R[_]];case 212:return["class",null,R[_]];case 213:return["class",null,R[_-1],R[_]];case 214:return["class",R[_],null];case 215:return["class",R[_-1],null,R[_]];case 216:return["class",R[_-2],R[_]];case 217:return["class",R[_-3],R[_-1],R[_]];case 218:case 221:return["import","{}",R[_]];case 219:case 220:return["import",R[_-2],R[_]];case 222:return["import",R[_-4],R[_]];case 223:return["import",[R[_-4],R[_-2]],R[_]];case 224:return["import",[R[_-7],R[_-4]],R[_]];case 231:case 233:case 254:case 255:case 257:case 358:return[R[_-2],R[_]];case 235:return["*",R[_]];case 236:return["export","{}"];case 237:return["export",R[_-2]];case 238:case 239:return["export",R[_]];case 240:return["export",["=",R[_-2],R[_]]];case 241:return["export",["=",R[_-3],R[_]]];case 242:return["export",["=",R[_-4],R[_-1]]];case 243:return["export-default",R[_]];case 244:return["export-default",R[_-1]];case 245:return["export-all",R[_]];case 246:return["export-from","{}",R[_]];case 247:return["export-from",R[_-4],R[_]];case 258:return["tagged-template",R[_-2],R[_]];case 259:return R[_-1]?["?call",R[_-2],...R[_]]:[R[_-2],...R[_]];case 260:return["optcall",R[_-2],...R[_]];case 263:case 300:return null;case 264:return!0;case 267:case 268:return"this";case 269:return[".","this",R[_]];case 270:return["array"];case 271:return["array",...R[_-1]];case 272:return["array",...R[_-2],...R[_-1]];case 273:return"..";case 274:case 288:return"...";case 275:return[R[_-2],R[_-3],R[_-1]];case 276:case 395:case 397:case 398:case 406:case 408:return[R[_-1],R[_-2],R[_]];case 277:return[R[_],R[_-1],null];case 278:return[R[_-1],null,R[_]];case 279:return[R[_],null,null];case 290:return[...R[_-2],...R[_]];case 291:return[...R[_-3],...R[_]];case 292:return[...R[_-2],...R[_-1]];case 293:return[...R[_-5],...R[_-4],...R[_-2],...R[_-1]];case 297:return[...R[_]];case 303:return Array.isArray(R[_-2])?[...R[_-2],R[_]]:[R[_-2],R[_]];case 304:return["try",R[_]];case 305:return["try",R[_-1],R[_]];case 306:return["try",R[_-2],R[_]];case 307:return["try",R[_-3],R[_-2],R[_]];case 308:case 309:case 378:case 381:case 383:return[R[_-1],R[_]];case 310:return[null,R[_]];case 311:return["throw",R[_]];case 312:return["throw",R[_-1]];case 313:return R[_-1].length===1?R[_-1][0]:R[_-1];case 314:return R[_-2].length===1?R[_-2][0]:R[_-2];case 315:return["while",R[_]];case 316:return["while",R[_-2],R[_]];case 317:return["until",R[_]];case 318:return["until",R[_-2],R[_]];case 319:return R[_-1].length===2?[R[_-1][0],R[_-1][1],R[_]]:[R[_-1][0],R[_-1][1],R[_-1][2],R[_]];case 320:case 321:return R[_].length===2?[R[_][0],R[_][1],[R[_-1]]]:[R[_][0],R[_][1],R[_][2],[R[_-1]]];case 323:return["loop",R[_]];case 324:return["loop",[R[_]]];case 325:return["for-in",R[_-3],R[_-1],null,null,R[_]];case 326:return["for-in",R[_-5],R[_-3],null,R[_-1],R[_]];case 327:return["for-in",R[_-5],R[_-3],R[_-1],null,R[_]];case 328:return["for-in",R[_-7],R[_-5],R[_-1],R[_-3],R[_]];case 329:return["for-in",R[_-7],R[_-5],R[_-3],R[_-1],R[_]];case 330:return["for-of",R[_-3],R[_-1],!1,null,R[_]];case 331:return["for-of",R[_-5],R[_-3],!1,R[_-1],R[_]];case 332:return["for-of",R[_-3],R[_-1],!0,null,R[_]];case 333:return["for-of",R[_-5],R[_-3],!0,R[_-1],R[_]];case 334:return["for-from",R[_-3],R[_-1],!1,null,R[_]];case 335:return["for-from",R[_-5],R[_-3],!1,R[_-1],R[_]];case 336:return["for-from",R[_-3],R[_-1],!0,null,R[_]];case 337:return["for-from",R[_-5],R[_-3],!0,R[_-1],R[_]];case 338:return["for-in",[],R[_-1],null,null,R[_]];case 339:return["for-in",[],R[_-3],R[_-1],null,R[_]];case 340:return["comprehension",R[_-4],[["for-in",R[_-2],R[_],null]],[]];case 341:return["comprehension",R[_-6],[["for-in",R[_-4],R[_-2],null]],[R[_]]];case 342:return["comprehension",R[_-6],[["for-in",R[_-4],R[_-2],R[_]]],[]];case 343:return["comprehension",R[_-8],[["for-in",R[_-6],R[_-4],R[_]]],[R[_-2]]];case 344:return["comprehension",R[_-8],[["for-in",R[_-6],R[_-4],R[_-2]]],[R[_]]];case 345:return["comprehension",R[_-4],[["for-of",R[_-2],R[_],!1]],[]];case 346:return["comprehension",R[_-6],[["for-of",R[_-4],R[_-2],!1]],[R[_]]];case 347:return["comprehension",R[_-5],[["for-of",R[_-2],R[_],!0]],[]];case 348:return["comprehension",R[_-7],[["for-of",R[_-4],R[_-2],!0]],[R[_]]];case 349:return["comprehension",R[_-4],[["for-from",R[_-2],R[_],!1,null]],[]];case 350:return["comprehension",R[_-6],[["for-from",R[_-4],R[_-2],!1,null]],[R[_]]];case 351:return["comprehension",R[_-5],[["for-from",R[_-2],R[_],!0,null]],[]];case 352:return["comprehension",R[_-7],[["for-from",R[_-4],R[_-2],!0,null]],[R[_]]];case 353:return["comprehension",R[_-2],[["for-in",[],R[_],null]],[]];case 354:return["comprehension",R[_-4],[["for-in",[],R[_-2],R[_]]],[]];case 359:return["switch",R[_-3],R[_-1],null];case 360:return["switch",R[_-5],R[_-3],R[_-1]];case 361:return["switch",null,R[_-1],null];case 362:return["switch",null,R[_-3],R[_-1]];case 365:return["when",R[_-1],R[_]];case 366:return["when",R[_-2],R[_-1]];case 367:return["if",R[_-1],R[_]];case 368:return R[_-4].length===3?["if",R[_-4][1],R[_-4][2],["if",R[_-1],R[_]]]:[...R[_-4],["if",R[_-1],R[_]]];case 369:return["unless",R[_-1],R[_]];case 370:return["if",["!",R[_-3]],R[_-2],R[_]];case 372:return R[_-2].length===3?["if",R[_-2][1],R[_-2][2],R[_]]:[...R[_-2],R[_]];case 374:case 375:return["if",R[_],[R[_-2]]];case 376:case 377:return["unless",R[_],[R[_-2]]];case 379:case 380:case 382:case 411:return["do-iife",R[_]];case 384:return["-",R[_]];case 385:return["+",R[_]];case 386:return["await",R[_]];case 387:return["await",R[_-1]];case 388:return["--",R[_],!1];case 389:return["++",R[_],!1];case 390:return["--",R[_-1],!0];case 391:return["++",R[_-1],!0];case 392:return["?",R[_-1]];case 393:return["+",R[_-2],R[_]];case 394:return["-",R[_-2],R[_]];case 396:return["**",R[_-2],R[_]];case 399:return["&",R[_-2],R[_]];case 400:return["^",R[_-2],R[_]];case 401:return["|",R[_-2],R[_]];case 402:return["&&",R[_-2],R[_]];case 403:return["||",R[_-2],R[_]];case 404:return["??",R[_-2],R[_]];case 405:return["!?",R[_-2],R[_]];case 407:return["?:",R[_-4],R[_-2],R[_]];case 409:return[R[_-3],R[_-4],R[_-1]];case 410:return[R[_-2],R[_-3],R[_]]}},parseError(U,A){let $,E,R,_,X,Y,F;if(A.recoverable)return this.trace(U);else throw R=(A.line||0)+1,$=A.loc?.first_column||0,F=A.token?` (token: ${A.token})`:"",Y=A.text?` near '${A.text}'`:"",_=`line ${R}, column ${$}`,X=`Parse error at ${_}${F}${Y}: ${U}`,E=Error(X),E.hash=A,E},parse(U){let A,$,E,R,_,X,Y,F,D,Z,M,Q,G,J,W,H,q,O,N,P,K,w,B,z,S,I,L,T;[K,B,D]=[[0],[null],[]],[J,L,S,z,O]=[this.parseTable,"",0,0,0],[$,A]=[2,1],F=Object.create(this.lexer),N={yy:{}};for(let V in this.yy)if(Object.hasOwn(this.yy,V)){let y=this.yy[V];N.yy[V]=y}if(F.setInput(U,N.yy),[N.yy.lexer,N.yy.parser]=[F,this],F.yylloc==null)F.yylloc={};I=F.yylloc,D.push(I),q=F.options?.ranges,this.parseError=typeof N.yy.parseError==="function"?N.yy.parseError:Object.getPrototypeOf(this).parseError,Y=()=>{let V;if(V=F.lex()||A,typeof V!=="number")V=this.symbolIds[V]||V;return V},[w,W,P,E,H,T,G,X,Q,_]=[null,null,null,null,null,{},null,null,null,null];while(!0){if(P=K[K.length-1],w==null)w=Y();if(E=J[P]!=null?J[P][w]:void 0,E==null){if(R="",!O)_=(()=>{let V=[];for(let y in J[P]){if(!Object.hasOwn(J[P],y))continue;if(this.tokenNames[y]&&y>$)V.push(`'${this.tokenNames[y]}'`)}return V})();throw R=(()=>{if(F.showPosition)return`Parse error on line ${S+1}:
20
- ${F.showPosition()}
21
- Expecting ${_.join(", ")}, got '${this.tokenNames[w]||w}'`;else return`Parse error on line ${S+1}: Unexpected ${w===A?"end of input":`'${this.tokenNames[w]||w}'`}`,this.parseError(R,{text:F.match,token:this.tokenNames[w]||w,line:F.yylineno,loc:I,expected:_})})(),Error(R)}if(E>0)if(K.push(w,E),B.push(F.yytext),D.push(F.yylloc),w=null,!W){if([z,L,S,I]=[F.yyleng,F.yytext,F.yylineno,F.yylloc],O>0)O--}else[w,W]=[W,null];else if(E<0){if(X=this.ruleTable[-E*2+1],T.$=B[B.length-X],[Z,M]=[D[D.length-(X||1)],D[D.length-1]],T._$={first_line:Z.first_line,last_line:M.last_line,first_column:Z.first_column,last_column:M.last_column},q)T._$.range=[Z.range[0],M.range[1]];if(H=this.ruleActions.apply(T,[-E,B,D,N.yy]),H!=null)T.$=H;if(X)K.length-=X*2,B.length-=X,D.length-=X;K.push(this.ruleTable[-E*2]),B.push(T.$),D.push(T._$),Q=J[K[K.length-2]][K[K.length-1]],K.push(Q)}else if(E===0)return B[B.length-1]}},trace(){},yy:{}},t3=(U={})=>{let A=Object.create(a3);return Object.defineProperty(A,"yy",{value:{...U},enumerable:!1,writable:!0,configurable:!0}),A},A1=t3();var Y2=A1.parse.bind(A1);var e3=new Set(["+","-","*","/","%","//","%%","**","==","!=","<",">","<=",">=","===","!==","&&","||","??","!?","not","&","|","^","<<",">>",">>>","=",".","?.","[]","?[]","::","?::","!","typeof","void","delete","new","...","rest","expansion","optindex","optcall"]);function K1(U){if(!Array.isArray(U)||U.length===0)return!1;let A=U[0]?.valueOf?.()??U[0];if(e3.has(A))return!0;return U.length<=4&&!U.some(Array.isArray)}function Y1(U){if(Array.isArray(U))return"(???)";if(typeof U==="number")return String(U);if(U===null)return"null";if(U==="")return'""';let A=String(U);if(A[0]==="/"&&A.indexOf(`
22
- `)>=0){let $=A.match(/\/([gimsuvy]*)$/),E=$?$[1]:"",R=A.slice(1);if(E)R=R.slice(0,-E.length-1);else R=R.slice(0,-1);return`"/${R.split(`
23
- `).map((Y)=>Y.replace(/#.*$/,"").trim()).join("")}/${E}"`}return A}function r(U,A=0,$=!1){if(!Array.isArray(U))return Y1(U);if($&&U[0]==="program"){let D=U[1],M=[Array.isArray(D)?"(program":"(program "+Y1(D)],Q=Array.isArray(D)?1:2;for(let G=Q;G<U.length;G++){let J=r(U[G],2,!1);M.push(J[0]==="("?" "+J:J)}return M.push(")"),M.join(`
24
- `)}let E=U[0];if(K1(U)&&U.slice(1).every((D)=>!Array.isArray(D)||K1(D))){let Z=`(${U.map((M)=>Array.isArray(M)?r(M,0,!1):Y1(M)).join(" ")})`;if(!Z.includes(`
25
- `))return" ".repeat(A)+Z}let _=" ".repeat(A),X;if(Array.isArray(E)){if(X=r(E,0,!1),X.includes(`
1
+ var T1,r1,C2,$1,J1,n1,a1,f2,o1,L1,u1,r,B1,x,m,t1,e1,A2,R2,_2,E2,U2,$2,I1,v1,w1,C1,X2,f1,Q1,Y2,W1,U1,M2,F2,D2,G2,Z2,J2,Q2,W2,O2,K2,H2,N2,q2,O1,h1,b1,s,z2,S2,P2,j1,g1,T2,L2,B2,I2,w2,V1,j2,X1,V2,y1,n,p,y2,Z1,A1,S1,s1,R1,P1,B=[].indexOf,d=[].slice,h2={}.hasOwnProperty,u2=function(U,_){var E="";while(_>0){if(_&1)E+=U;_>>>=1,U+=U}return E},b2=function(U,_){var E=0,$=0;if(!_.length)return 1/0;while($=1+U.indexOf(_,$))E++;return E},i1=function(U,_){for(var E in _)U[E]=_[E];return U},g2=function(U,_){return i1(i1({},U),_)},x2=function(U){return U.flat(1/0)},k2=function(U){var _={},E,$=[];for(var A=0;A<U.length;A++){var R=U[A];if(R.comments)for(var X=0;X<R.comments.length;X++){var Y=R.comments[X],M=Y.locationData.range[0];_[M]=Y}}E=Object.keys(_).sort((D,G)=>D-G);for(var F=0;F<E.length;F++)$.push(_[E[F]]);return $},d1=function(U,_){if(!U||U.length===0)return;if(!_.comments)_.comments=[];_.comments.push(...U)},c2=function(U){if(U==null)return NaN;var _=null;switch(U.charAt(1)){case"b":_=2;break;case"o":_=8;break;case"x":_=16;break}if(_!=null)return parseInt(U.slice(2).replace(/_/g,""),_);else return parseFloat(U.replace(/_/g,""))},l2=function(){if(!(this.code&&this.location))return Error.prototype.toString.call(this);var{first_line:U,first_column:_,last_line:E,last_column:$}=this.location;if(E==null)E=U;if($==null)$=_;var A=this.filename||"[stdin]";if(A.startsWith("<anonymous"))A="[stdin]";var R=this.code.split(`
2
+ `)[U],X=_,Y=U===E?$+1:R.length,M=R.slice(0,X).replace(/[^\s]/g," ")+u2("^",Y-X),F=typeof process<"u"&&process!==null&&process.stdout?.isTTY&&!process.env?.NODE_DISABLE_COLORS;if(this.colorful!=null?this.colorful:F){var D=(G)=>`\x1B[1;31m${G}\x1B[0m`;R=R.slice(0,X)+D(R.slice(X,Y))+R.slice(Y),M=D(M)}return`${A}:${U+1}:${_+1}: error: ${this.message}
3
+ ${R}
4
+ ${M}`},p2=function(U,_){var E=SyntaxError(U);throw E.location=_,E.toString=l2,E.stack=E.toString(),E},m2=/(\\\\)|\\u\{([\da-fA-F]+)\}/g,s2=function(U){var _=function(A){var R=A.toString(16);return`\\u${u2("0",4-R.length)}${R}`};if(U<65536)return _(U);var E=Math.floor((U-65536)/1024)+55296,$=(U-65536)%1024+56320;return`${_(E)}${_($)}`},i2=function(U,{flags:_,error:E,delimiter:$=""}={}){var A=_!=null&&B.call(_,"u")<0;return U.replace(m2,function(R,X,Y,M){if(X)return X;var F=parseInt(Y,16);if(F>1114111)E("unicode code point escapes greater than \\u{10ffff} are not allowed",{offset:M+$.length,length:Y.length+4});if(!A)return R;return s2(F)})},x1=class U{constructor(){this.error=this.error.bind(this)}tokenize(_,E={}){var $,A,R,X;this.indent=0,this.baseIndent=0,this.overIndent=0,this.outdebt=0,this.indents=[],this.indentLiteral="",this.ends=[],this.tokens=[],this.seenFor=!1,this.seenImport=!1,this.seenExport=!1,this.importSpecifierList=!1,this.exportSpecifierList=!1,this.chunkLine=E.line||0,this.chunkColumn=E.column||0,this.chunkOffset=E.offset||0,this.locTweaks=E.locTweaks||{},_=this.clean(_),R=0;while(this.chunk=_.slice(R))if($=this.identifierToken()||this.commentToken()||this.whitespaceToken()||this.lineToken()||this.stringToken()||this.numberToken()||this.regexToken()||this.jsToken()||this.literalToken(),[this.chunkLine,this.chunkColumn,this.chunkOffset]=this.getLineAndColumnFromChunk($),R+=$,E.untilBalanced&&this.ends.length===0)return{tokens:this.tokens,index:R};if(this.closeIndentation(),A=this.ends.pop())this.error(`missing ${A.tag}`,((X=A.origin)!=null?X:A)[2]);if(E.rewrite===!1)return this.tokens;return new z2().rewrite(this.tokens)}clean(_){var E,$;if($=0,_.charCodeAt(0)===r1)_=_.slice(1),this.locTweaks[0]=1,$+=1;if(y1.test(_)){if(_=`
5
+ ${_}`,this.chunkLine--,(E=this.locTweaks)[0]==null)E[0]=0;this.locTweaks[0]-=1}return _.replace(/\r/g,(A,R)=>{return this.locTweaks[$+R]=1,""}).replace(w2,"")}identifierToken(){var _,E,$,A,R,X,Y,M,F,D,G,J,Q,Z,O,K,H,W,q,N,z,S,L,I,T,j,w,P,V,u;if(/^~[=>]/.test(this.chunk)||/^=!/.test(this.chunk))return 0;if(!(F=$2.exec(this.chunk)))return 0;if([M,X,$]=F,Y=X.length,D=void 0,X==="own"&&this.tag()==="FOR")return this.token("OWN",X),X.length;if(X==="from"&&this.tag()==="YIELD")return this.token("FROM",X),X.length;if(X==="as"&&this.seenImport){if(this.value()==="*")this.tokens[this.tokens.length-1][0]="IMPORT_ALL";else if(Q=this.value(!0),B.call(s,Q)>=0)G=this.prev(),[G[0],G[1]]=["IDENTIFIER",this.value(!0)];if((Z=this.tag())==="DEFAULT"||Z==="IMPORT_ALL"||Z==="IDENTIFIER")return this.token("AS",X),X.length}if(X==="as"&&this.seenExport){if((W=this.tag())==="IDENTIFIER"||W==="DEFAULT")return this.token("AS",X),X.length;if(q=this.value(!0),B.call(s,q)>=0)return G=this.prev(),[G[0],G[1]]=["IDENTIFIER",this.value(!0)],this.token("AS",X),X.length}if(X==="default"&&this.seenExport&&((N=this.tag())==="EXPORT"||N==="AS"))return this.token("DEFAULT",X),X.length;if(X==="do"&&(j=/^(\s*super)(?!\(\))/.exec(this.chunk.slice(3))))return this.token("SUPER","super"),this.token("CALL_START","("),this.token("CALL_END",")"),[M,w]=j,w.length+3;if(G=this.prev(),P=$||G!=null&&((z=G[0])==="."||z==="?."||z==="::"||z==="?::"||!G.spaced&&G[0]==="@")?"PROPERTY":"IDENTIFIER",u={},P==="IDENTIFIER"&&(B.call(W1,X)>=0||B.call(s,X)>=0)&&!(this.exportSpecifierList&&B.call(s,X)>=0)){if(P=X.toUpperCase(),P==="WHEN"&&(S=this.tag(),B.call(M2,S)>=0))P="LEADING_WHEN";else if(P==="FOR")this.seenFor={endsLength:this.ends.length};else if(P==="UNLESS");else if(P==="IMPORT")this.seenImport=!0;else if(P==="EXPORT")this.seenExport=!0;else if(B.call(V1,P)>=0)P="UNARY";else if(B.call(q2,P)>=0){if(P!=="INSTANCEOF"&&this.seenFor)P="FOR"+P,this.seenFor=!1;else if(P="RELATION",this.value()==="!")D=this.tokens.pop(),u.invert=(L=(I=D.data)!=null?I.original:void 0)!=null?L:D[1]}}else if(P==="IDENTIFIER"&&this.seenFor&&X==="from"&&y2(G))P="FORFROM",this.seenFor=!1;else if(P==="PROPERTY"&&G){if(G.spaced&&(T=G[0],B.call($1,T)>=0)&&/^[gs]et$/.test(G[1])&&this.tokens.length>1&&((O=this.tokens[this.tokens.length-2][0])!=="."&&O!=="?."&&O!=="@"))this.error(`'${G[1]}' cannot be used as a keyword, or as a function call without parentheses`,G[2]);else if(G[0]==="."&&this.tokens.length>1&&(J=this.tokens[this.tokens.length-2])[0]==="UNARY"&&J[1]==="new")J[0]="NEW_TARGET";else if(G[0]==="."&&this.tokens.length>1&&(J=this.tokens[this.tokens.length-2])[0]==="IMPORT"&&J[1]==="import")this.seenImport=!1,J[0]="IMPORT_META";else if(this.tokens.length>2){if(J=this.tokens[this.tokens.length-2],((K=G[0])==="@"||K==="THIS")&&J&&J.spaced&&/^[gs]et$/.test(J[1])&&((H=this.tokens[this.tokens.length-3][0])!=="."&&H!=="?."&&H!=="@"))this.error(`'${J[1]}' cannot be used as a keyword, or as a function call without parentheses`,J[2])}}if(P==="IDENTIFIER"&&B.call(O1,X)>=0)this.error(`reserved word '${X}'`,{length:X.length});if(!(P==="PROPERTY"||this.exportSpecifierList||this.importSpecifierList)){if(X==="is"&&this.chunk.slice(Y,Y+4)===" not"){if(_=this.chunk.slice(Y+4).trim(),!_.match(/^(false|true)\s+(is|isnt|==|!=)/))X="isnt",Y+=4}if(B.call(h1,X)>=0)E=X,X=b1[X],u.original=E;P=function(){switch(X){case"!":return"UNARY";case"==":case"!=":return"COMPARE";case"true":case"false":return"BOOL";case"break":case"continue":case"debugger":return"STATEMENT";case"&&":case"||":return X;default:return P}}()}let C=Y;if(X.length>1&&X.endsWith("!"))u.await=!0,X=X.slice(0,-1);if(V=this.token(P,X,{length:C,data:u}),E)V.origin=[P,E,V[2]];if(D)[V[2].first_line,V[2].first_column,V[2].range[0]]=[D[2].first_line,D[2].first_column,D[2].range[0]];if($)A=M.lastIndexOf(":"),R=this.token(":",":",{offset:A});if($)return C+$.length;else return C}commentToken(_=this.chunk,{heregex:E,returnCommentTokens:$=!1,offsetInChunk:A=0}={}){var R,X,Y,M,F,D,G,J,Q,Z,O,K,H,W,q,N,z,S,L,I,T,j,w,P,V,u;if(!(L=_.match(a1)))return 0;if([Y,Q,J,Z,S]=L,F=null,H=/^\s*\n+\s*#/.test(Y),J){if(I=t1.exec(J),I)this.error(`block comments cannot contain ${I[0]}`,{offset:3+I.index,length:I[0].length});_=_.replace(`###${J}###`,""),_=_.replace(/^\n+/,""),this.lineToken({chunk:_}),M=J,F=[{content:M,length:Y.length-Q.length-Z.length,leadingWhitespace:Q}]}else q="",M=S.replace(/^(\n*)/,function(C){return q=C,""}),V="",G=!1,F=M.split(`
6
+ `).map(function(C,c){var f,o;if(!(C.indexOf("#")>-1)){V+=`
7
+ ${C}`;return}return o="",M=C.replace(/^([ |\t]*)#/,function(g,M1){return o=M1,""}),f={content:M,length:1+M.length,leadingWhitespace:`${!G?q:""}${V}${o}`,precededByBlankLine:!!V},G=!0,V="",f}).filter(function(C){return C});if(D=function({leadingWhitespace:C,nonInitial:c}){var f=C.lastIndexOf(`
8
+ `);if(J!=null||!c){if(!(f>-1))return null}else if(f==null)f=-1;return C.length-1-f},X=function(){var C,c,f;f=[];for(O=C=0,c=F.length;C<c;O=++C){if({content:M,length:z,leadingWhitespace:N,precededByBlankLine:P}=F[O],j=O!==0,W=j?1:0,A+=W+N.length,K=D({leadingWhitespace:N,nonInitial:j}),T=K==null||K===-1,R={content:M,here:J!=null,newLine:H||j,locationData:this.makeLocationData({offsetInChunk:A,length:z}),precededByBlankLine:P,indentSize:K,indented:!T&&K>this.indent,outdented:!T&&K<this.indent},E)R.heregex=!0;A+=z,f.push(R)}return f}.call(this),u=this.prev(),!u)X[0].newLine=!0,this.lineToken({chunk:this.chunk.slice(Y.length),offset:Y.length}),w=this.makeToken("JS","",{offset:Y.length,generated:!0}),w.comments=X,this.tokens.push(w),this.newlineToken(Y.length);else d1(X,u);if($)return X;return Y.length}whitespaceToken(){var _,E,$;if(!((_=y1.exec(this.chunk))||(E=this.chunk.charAt(0)===`
9
+ `)))return 0;if($=this.prev(),$)$[_?"spaced":"newLine"]=!0;if(_)return _[0].length;else return 0}lineToken({chunk:_=this.chunk,offset:E=0}={}){var $,A,R,X,Y,M,F,D,G,J,Q;if(!(Y=G2.exec(_)))return 0;if(X=Y[0],G=this.prev(),$=(G!=null?G[0]:void 0)==="\\",!(($||((J=this.seenFor)!=null?J.endsLength:void 0)<this.ends.length)&&this.seenFor))this.seenFor=!1;if(!($&&this.seenImport||this.importSpecifierList))this.seenImport=!1;if(!($&&this.seenExport||this.exportSpecifierList))this.seenExport=!1;if(Q=X.length-1-X.lastIndexOf(`
10
+ `),D=this.unfinished(),F=Q>0?X.slice(-Q):"",!/^(.?)\1*$/.exec(F))return this.error("mixed indentation",{offset:X.length}),X.length;if(M=Math.min(F.length,this.indentLiteral.length),F.slice(0,M)!==this.indentLiteral.slice(0,M))return this.error("indentation mismatch",{offset:X.length}),X.length;if(Q-this.overIndent===this.indent){if(D)this.suppressNewlines();else this.newlineToken(E);return X.length}if(Q>this.indent){if(D){if(!$)this.overIndent=Q-this.indent;if(this.overIndent)G.continuationLineIndent=this.indent+this.overIndent;return this.suppressNewlines(),X.length}if(!this.tokens.length)return this.baseIndent=this.indent=Q,this.indentLiteral=F,X.length;A=Q-this.indent+this.outdebt,this.token("INDENT",A,{offset:E+X.length-Q,length:Q}),this.indents.push(A),this.ends.push({tag:"OUTDENT"}),this.outdebt=this.overIndent=0,this.indent=Q,this.indentLiteral=F}else if(Q<this.baseIndent)this.error("missing indentation",{offset:E+X.length});else R=this.overIndent>0,this.overIndent=0,this.outdentToken({moveOut:this.indent-Q,noNewlines:D,outdentLength:X.length,offset:E,indentSize:Q,endsContinuationLineIndentation:R});return X.length}getHeredocClosingColumn(_,E){let $=_-E,A=$-1;while(A>=0&&this.chunk[A]!==`
11
+ `)A--;A++;let R=this.chunk.slice(A,$);return/^\s*$/.test(R)?R.length:null}extractHeredocContent(_){let E=[];for(let $=0;$<_.length;$++)if(_[$][0]==="NEOSTRING")E.push(_[$][1]);return E.join("#{}")}findMinimumIndent(_){let E=null,$;while($=A2.exec(_)){let A=$[1];if(E===null||0<A.length&&A.length<E.length)E=A}return E}selectHeredocIndent(_,E){if(_===null)return E;if(E===null)return" ".repeat(_);if(_<=E.length)return" ".repeat(_);return E}removeTrailingWhitespaceLine(_){if(_.length===0)return;let E=_[_.length-1];if(E[0]!=="NEOSTRING")return;let $=E[1].split(`
12
+ `),A=$[$.length-1];if(/^\s*$/.test(A))$.pop(),E[1]=$.join(`
13
+ `)}stringToken(){var _,E,$,A,R,X,Y,M,F,D,G,J,Q,Z;if([D]=I2.exec(this.chunk)||[],!D)return 0;if(F=this.prev(),F&&this.value()==="from"&&(this.seenImport||this.seenExport))F[0]="FROM";if(J=function(){switch(D){case"'":return B2;case'"':return T2;case"'''":return R2;case'"""':return e1}}(),{tokens:Z,index:A}=this.matchWithInterpolations(J,D),R=D.length===3,R){let O=this.getHeredocClosingColumn(A,D.length);if($=this.extractHeredocContent(Z),Y=this.findMinimumIndent($),Y=this.selectHeredocIndent(O,Y),O!==null&&Y!==null&&O>Y.length)this.removeTrailingWhitespaceLine(Z)}return E=D.charAt(0),this.mergeInterpolationTokens(Z,{quote:D,indent:Y,endOffset:A},(O)=>{return this.validateUnicodeCodePointEscapes(O,{delimiter:D})}),A}numberToken(){var _,E,$,A,R,X;if(!(E=J2.exec(this.chunk)))return 0;switch($=E[0],_=$.length,!1){case!/^0[BOX]/.test($):this.error(`radix prefix in '${$}' must be lowercase`,{offset:1});break;case!/^0\d*[89]/.test($):this.error(`decimal literal '${$}' must not be prefixed with '0'`,{length:_});break;case!/^0\d+/.test($):this.error(`octal literal '${$}' must be prefixed with '0o'`,{length:_})}if(A=c2($),X={parsedValue:A},R=A===1/0?"INFINITY":"NUMBER",R==="INFINITY")X.original=$;return this.token(R,$,{length:_,data:X}),_}regexToken(){var _,E,$,A,R,X,Y,M,F,D,G,J,Q,Z,O,K,H,W,q,N,z;switch(!1){case!(Z=H2.exec(this.chunk)):this.error(`regular expressions cannot begin with ${Z[2]}`,{offset:Z.index+Z[1].length});break;case!(Z=this.matchWithInterpolations(_2,"///")):({tokens:z,index:J}=Z),Y=[];while(O=E2.exec(this.chunk.slice(0,J)))({index:A}=O),[G,Q,$]=O,Y.push({comment:$,offsetInChunk:A+Q.length});X=x2(function(){var S,L,I;I=[];for(S=0,L=Y.length;S<L;S++)R=Y[S],I.push(this.commentToken(R.comment,Object.assign(R,{heregex:!0,returnCommentTokens:!0})));return I}.call(this));break;case!(Z=O2.exec(this.chunk)):if([N,_,E]=Z,this.validateEscapes(_,{isRegex:!0,offsetInChunk:1}),J=N.length,H=this.prev(),H){if(H.spaced&&(W=H[0],B.call($1,W)>=0)){if(!E||W2.test(N))return 0}else if(q=H[0],B.call(Z2,q)>=0)return 0}if(!E)this.error("missing / (unclosed regex)");break;default:return 0}switch([D]=K2.exec(this.chunk.slice(J)),F=J+D.length,K=this.makeToken("REGEX",null,{length:F}),!1){case!!V2.test(D):this.error(`invalid regular expression flags ${D}`,{offset:J,length:D.length});break;case!(N||z.length===1):if(M=_?"/":"///",_==null)_=z[0][1];this.validateUnicodeCodePointEscapes(_,{delimiter:M});let S={delimiter:M};if(M==="///")S.heregex={flags:D};this.token("REGEX",`/${_}/${D}`,{length:F,origin:K,data:S});break;default:if(this.token("REGEX_START","(",{length:0,origin:K,generated:!0}),this.token("IDENTIFIER","RegExp",{length:0,generated:!0}),this.token("CALL_START","(",{length:0,generated:!0}),this.mergeInterpolationTokens(z,{double:!0,heregex:{flags:D},endOffset:F-D.length,quote:"///"},(L)=>{return this.validateUnicodeCodePointEscapes(L,{delimiter:M})}),D)this.token(",",",",{offset:J-1,length:0,generated:!0}),this.token("STRING",'"'+D+'"',{offset:J,length:D.length});this.token(")",")",{offset:F,length:0,generated:!0}),this.token("REGEX_END",")",{offset:F,length:0,generated:!0})}if(X!=null?X.length:void 0)n(this.tokens[this.tokens.length-1],{heregexCommentTokens:X});return F}jsToken(){var _,E,$,A;if(!(this.chunk.charAt(0)==="`"&&(E=($=U2.exec(this.chunk))||Y2.exec(this.chunk))))return 0;return A=E[1],{length:_}=E[0],this.token("JS",A,{length:_,data:{here:!!$}}),_}literalToken(){var _,E,$,A,R,X,Y,M,F,D,G,J,Q,Z;if(_=Q2.exec(this.chunk)){if([Z]=_,n1.test(Z))this.tagParameters()}else Z=this.chunk.charAt(0);if(J=Z,A=this.prev(),A&&B.call(["=",...L1],Z)>=0){if(G=!1,Z==="="&&((R=A[1])==="||"||R==="&&"||R==="??")&&!A.spaced){if(A[0]="COMPOUND_ASSIGN",A[1]+="=",(X=A.data)!=null?X.original:void 0)A.data.original+="=";A[2].range=[A[2].range[0],A[2].range[1]+1],A[2].last_column+=1,A[2].last_column_exclusive+=1,A=this.tokens[this.tokens.length-2],G=!0}if(A&&A[0]!=="PROPERTY"){if($=(Y=A.origin)!=null?Y:A,E=d2(A[1],$[1]),E)this.error(E,$[2])}if(G)return Z.length}if(Z==="("&&(A!=null?A[0]:void 0)==="IMPORT")A[0]="DYNAMIC_IMPORT";if(Z==="{"&&this.seenImport)this.importSpecifierList=!0;else if(this.importSpecifierList&&Z==="}")this.importSpecifierList=!1;else if(Z==="{"&&(A!=null?A[0]:void 0)==="EXPORT")this.exportSpecifierList=!0;else if(this.exportSpecifierList&&Z==="}")this.exportSpecifierList=!1;if(Z===";"){if(M=A!=null?A[0]:void 0,B.call(["=",...X1],M)>=0)this.error("unexpected ;");this.seenFor=this.seenImport=this.seenExport=!1,J="TERMINATOR"}else if(Z==="*"&&(A!=null?A[0]:void 0)==="EXPORT")J="EXPORT_ALL";else if(Z==="<=>")J="BIND";else if(Z==="~=")J="COMPUTED_ASSIGN";else if(Z===":=")J="REACTIVE_ASSIGN";else if(Z==="~>")J="REACT_ASSIGN";else if(Z==="=!")J="READONLY_ASSIGN";else if(B.call(D2,Z)>=0)J="MATH";else if(B.call(o1,Z)>=0)J="COMPARE";else if(B.call(L1,Z)>=0)J="COMPOUND_ASSIGN";else if(B.call(V1,Z)>=0)J="UNARY";else if(B.call(j2,Z)>=0)J="UNARY_MATH";else if(B.call(S2,Z)>=0)J="SHIFT";else if(Z==="?"&&(A!=null?A.spaced:void 0))J="SPACE?";else if(A){if(Z==="("&&!A.spaced&&(F=A[0],B.call($1,F)>=0)){if(A[0]==="?")A[0]="FUNC_EXIST";else if(A[0]==="?.")A[0]="ES6_OPTIONAL_CALL";J="CALL_START"}else if(Z==="["&&((D=A[0],B.call(f1,D)>=0)&&!A.spaced||A[0]==="::"))switch(J="INDEX_START",A[0]){case"?":A[0]="INDEX_SOAK";break;case"?.":A[0]="ES6_OPTIONAL_INDEX";break}}switch(Q=this.makeToken(J,Z),Z){case"(":case"{":case"[":this.ends.push({tag:Q1[Z],origin:Q});break;case")":case"}":case"]":this.pair(Z)}return this.tokens.push(this.makeToken(J,Z)),Z.length}outdentToken({moveOut:_,noNewlines:E,outdentLength:$=0,offset:A=0,indentSize:R,endsContinuationLineIndentation:X}){var Y,M,F,D,G;Y=this.indent-_;while(_>0)if(F=this.indents[this.indents.length-1],!F)this.outdebt=_=0;else if(this.outdebt&&_<=this.outdebt)this.outdebt-=_,_=0;else{if(M=this.indents.pop()+this.outdebt,$&&(D=this.chunk[$],B.call(X2,D)>=0))Y-=M-_,_=M;this.outdebt=0,this.pair("OUTDENT"),this.token("OUTDENT",_,{length:$,indentSize:R+_-M}),_-=M}if(M)this.outdebt-=_;if(this.suppressSemicolons(),!(this.tag()==="TERMINATOR"||E)){if(G=this.token("TERMINATOR",`
14
+ `,{offset:A+$,length:0}),X)G.endsContinuationLineIndentation={preContinuationLineIndent:this.indent}}return this.indent=Y,this.indentLiteral=this.indentLiteral.slice(0,Y),this}newlineToken(_){if(this.suppressSemicolons(),this.tag()!=="TERMINATOR")this.token("TERMINATOR",`
15
+ `,{offset:_,length:0});return this}suppressNewlines(){var _=this.prev();if(_[1]==="\\"){if(_.comments&&this.tokens.length>1)d1(_.comments,this.tokens[this.tokens.length-2]);this.tokens.pop()}return this}tagParameters(){var _,E,$,A,R;if(this.tag()!==")")return this.tagDoIife();$=[],{tokens:R}=this,_=R.length,E=R[--_],E[0]="PARAM_END";while(A=R[--_])switch(A[0]){case")":$.push(A);break;case"(":case"CALL_START":if($.length)$.pop();else if(A[0]==="(")return A[0]="PARAM_START",this.tagDoIife(_-1);else return E[0]="CALL_END",this}return this}tagDoIife(_){var E=this.tokens[_!=null?_:this.tokens.length-1];if((E!=null?E[0]:void 0)!=="DO")return this;return E[0]="DO_IIFE",this}closeIndentation(){return this.outdentToken({moveOut:this.indent,indentSize:0})}matchWithInterpolations(_,E,$=E,A=/^[#$]\{/){var R,X,Y,M,F,D,G,J,Q,Z,O,K,H,W,q,N,z,S;if(S=[],O=E.length,this.chunk.slice(0,O)!==E)return null;N=this.chunk.slice(O);while(!0){if([z]=_.exec(N),this.validateEscapes(z,{isRegex:E.charAt(0)==="/",offsetInChunk:O}),S.push(this.makeToken("NEOSTRING",z,{offset:O})),N=N.slice(z.length),O+=z.length,!(J=A.exec(N)))break;if([D]=J,F=D.length-1,[G,Y,Z]=this.getLineAndColumnFromChunk(O+F),q=N.slice(F),{tokens:Q,index:M}=new U().tokenize(q,{line:G,column:Y,offset:Z,untilBalanced:!0,locTweaks:this.locTweaks}),M+=F,R=N[M-1]==="}",R)[K]=Q,[X]=d.call(Q,-1),K[0]="INTERPOLATION_START",K[1]="(",K[2].first_column-=F,K[2].range=[K[2].range[0]-F,K[2].range[1]],X[0]="INTERPOLATION_END",X[1]=")",X.origin=["","end of interpolation",X[2]];if(((H=Q[1])!=null?H[0]:void 0)==="TERMINATOR")Q.splice(1,1);if(((W=Q[Q.length-3])!=null?W[0]:void 0)==="INDENT"&&Q[Q.length-2][0]==="OUTDENT")Q.splice(-3,2);if(!R)K=this.makeToken("INTERPOLATION_START","(",{offset:O,length:0,generated:!0}),X=this.makeToken("INTERPOLATION_END",")",{offset:O+M,length:0,generated:!0}),Q=[K,...Q,X];S.push(["TOKENS",Q]),N=N.slice(M),O+=M}if(N.slice(0,$.length)!==$)this.error(`missing ${$}`,{length:E.length});return{tokens:S,index:O+$.length}}mergeInterpolationTokens(_,E,$){var A,R,X,Y,M,F,D,G,J,Q,Z,O,K,H,W,q,N,z,S,L,I,T,j,w,P;if({quote:N,indent:G,double:X,heregex:F,endOffset:Y}=E,_.length>1)W=this.token("STRING_START","(",{length:(z=N!=null?N.length:void 0)!=null?z:0,data:{quote:N},generated:!(N!=null?N.length:void 0)});M=this.tokens.length,A=_.length-1;for(D=J=0,O=_.length;J<O;D=++J){switch(T=_[D],[I,P]=T,I){case"TOKENS":if(P.length===2&&(P[0].comments||P[1].comments)){q=this.makeToken("JS","",{generated:!0}),q[2]=P[0][2];for(Q=0,K=P.length;Q<K;Q++){if(w=P[Q],!w.comments)continue;if(q.comments==null)q.comments=[];q.comments.push(...w.comments)}P.splice(1,0,q)}H=P[0],j=P;break;case"NEOSTRING":if(R=$.call(this,T[1],D),D===0)n(T,{initialChunk:!0});if(D===A)n(T,{finalChunk:!0});if(n(T,{indent:G,quote:N,double:X}),F)n(T,{heregex:F});if(T[0]="STRING",T[1]='"'+R+'"',_.length===1&&N!=null){if(T[2].first_column-=N.length,T[1].substr(-2,1)===`
16
+ `)T[2].last_line+=1,T[2].last_column=N.length-1;else if(T[2].last_column+=N.length,T[1].length===2)T[2].last_column-=1;T[2].last_column_exclusive+=N.length,T[2].range=[T[2].range[0]-N.length,T[2].range[1]+N.length]}H=T,j=[T]}this.tokens.push(...j)}if(W){if([Z]=d.call(_,-1),W.origin=["STRING",null,{first_line:W[2].first_line,first_column:W[2].first_column,last_line:Z[2].last_line,last_column:Z[2].last_column,last_line_exclusive:Z[2].last_line_exclusive,last_column_exclusive:Z[2].last_column_exclusive,range:[W[2].range[0],Z[2].range[1]]}],!(N!=null?N.length:void 0))W[2]=W.origin[2];return L=this.token("STRING_END",")",{offset:Y-(N!=null?N:"").length,length:(S=N!=null?N.length:void 0)!=null?S:0,generated:!(N!=null?N.length:void 0)})}}pair(_){var E,$,A,R,X;if(A=this.ends,[$]=d.call(A,-1),_!==(X=$!=null?$.tag:void 0)){if(X!=="OUTDENT")this.error(`unmatched ${_}`);return R=this.indents,[E]=d.call(R,-1),this.outdentToken({moveOut:E,noNewlines:!0}),this.pair(_)}return this.ends.pop()}getLocationDataCompensation(_,E){var $,A,R,X;X=0,R=E,A=_;while(A<=E){if(A===E&&_!==R)break;if($=this.locTweaks[A],$!=null)X+=$,E+=$;A++}return X}getLineAndColumnFromChunk(_){var E,$,A,R,X,Y,M,F;if(A=this.getLocationDataCompensation(this.chunkOffset,this.chunkOffset+_),_===0)return[this.chunkLine,this.chunkColumn+A,this.chunkOffset+A];if(_>=this.chunk.length)F=this.chunk;else F=this.chunk.slice(0,+(_-1)+1||9000000000);if(X=b2(F,`
17
+ `),E=this.chunkColumn,X>0){if(M=F.split(`
18
+ `),[R]=d.call(M,-1),E=R.length,Y=this.getLocationDataCompensation(this.chunkOffset,this.chunkOffset+_-E),Y<0)Y=0;$=this.getLocationDataCompensation(this.chunkOffset+_+Y-E,this.chunkOffset+_+Y)}else E+=F.length,$=A;return[this.chunkLine+X,E+$,this.chunkOffset+_+A]}makeLocationData({offsetInChunk:_,length:E}){var $,A,R;return R={range:[]},[R.first_line,R.first_column,R.range[0]]=this.getLineAndColumnFromChunk(_),A=E>0?E-1:0,[R.last_line,R.last_column,$]=this.getLineAndColumnFromChunk(_+A),[R.last_line_exclusive,R.last_column_exclusive]=this.getLineAndColumnFromChunk(_+A+(E>0?1:0)),R.range[1]=E>0?$+1:$,R}makeToken(_,E,{offset:$=0,length:A=E.length,origin:R,generated:X,indentSize:Y}={}){var M=[_,E,this.makeLocationData({offsetInChunk:$,length:A})];if(R)M.origin=R;if(X)M.generated=!0;if(Y!=null)M.indentSize=Y;return M}token(_,E,{offset:$,length:A,origin:R,data:X,generated:Y,indentSize:M}={}){var F=this.makeToken(_,E,{offset:$,length:A,origin:R,generated:Y,indentSize:M});if(X)n(F,X);return this.tokens.push(F),F}tag(){var _,E;return _=this.tokens,[E]=d.call(_,-1),E!=null?E[0]:void 0}value(_=!1){var E,$;if(E=this.tokens,[$]=d.call(E,-1),_&&($!=null?$.origin:void 0)!=null)return $.origin[1];else return $!=null?$[1]:void 0}prev(){return this.tokens[this.tokens.length-1]}unfinished(){var _;return F2.test(this.chunk)||(_=this.tag(),B.call(X1,_)>=0)}validateUnicodeCodePointEscapes(_,E){return i2(_,g2(E,{error:this.error}))}validateEscapes(_,E={}){var $,A,R,X,Y,M,F,D,G,J;if(X=E.isRegex?N2:L2,Y=X.exec(_),!Y)return;return Y[0],$=Y[1],F=Y[2],A=Y[3],J=Y[4],G=Y[5],M=F?"octal escape sequences are not allowed":"invalid escape sequence",R=`\\${F||A||J||G}`,this.error(`${M} ${R}`,{offset:((D=E.offsetInChunk)!=null?D:0)+Y.index+$.length,length:R.length})}suppressSemicolons(){var _,E,$;$=[];while(this.value()===";")if(this.tokens.pop(),_=(E=this.prev())!=null?E[0]:void 0,B.call(["=",...X1],_)>=0)$.push(this.error("unexpected ;"));else $.push(void 0);return $}error(_,E={}){var $,A,R,X,Y;return R="first_line"in E?E:([A,$]=this.getLineAndColumnFromChunk((X=E.offset)!=null?X:0),{first_line:A,first_column:$,last_column:$+((Y=E.length)!=null?Y:1)-1}),p2(_,R)}},d2=function(U,_=U){switch(!1){case B.call([...W1,...s],U)<0:return`keyword '${_}' can't be assigned`;case B.call(g1,U)<0:return`'${_}' can't be assigned`;case B.call(O1,U)<0:return`reserved word '${_}' can't be assigned`;default:return!1}};y2=function(U){var _;if(U[0]==="IDENTIFIER")return!0;else if(U[0]==="FOR")return!1;else if((_=U[1])==="{"||_==="["||_===","||_===":")return!1;else return!0};n=function(U,_){return Object.assign(U.data!=null?U.data:U.data={},_)};W1=["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"];s=["undefined","Infinity","NaN","then","unless","until","loop","of","by","when","def"];b1={and:"&&",or:"||",is:"==",isnt:"!=",not:"!",yes:"true",no:"false",on:"true",off:"false"};h1=function(){var U=[];for(A1 in b1)U.push(A1);return U}();s=s.concat(h1);O1=["case","function","var","void","with","const","let","enum","native","implements","interface","package","private","protected","public","static"];g1=["arguments","eval"];var A3=W1.concat(O1).concat(g1);r1=65279;$2=/^(?!\d)((?:(?!\s)[$\w\x7f-\uffff])+!?)([^\n\S]*:(?![=:]))?/;J2=/^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;Q2=/^(?:<=>|[-=]>|~>|~=|:=|=!|===|!==|!\?|\?\?|=~|[-+*\/%<>&|^!?=]=|>>>=?|([-+:])\1|([&|<>*\/%])\2=?|\?(\.|::)|\.{2,3})/;y1=/^[^\n\S]+/;a1=/^(\s*)###([^#][\s\S]*?)(?:###([^\n\S]*)|###$)|^((?:\s*#(?!##[^#]).*)+)/;n1=/^[-=]>/;G2=/^(?:\n[^\n\S]*)+/;Y2=/^`(?!``)((?:[^`\\]|\\[\s\S])*)`/;U2=/^```((?:[^`\\]|\\[\s\S]|`(?!``))*)```/;I2=/^(?:'''|"""|'|")/;B2=/^(?:[^\\']|\\[\s\S])*/;T2=/^(?:[^\\"#$]|\\[\s\S]|\#(?!\{)|\$(?!\{))*/;R2=/^(?:[^\\']|\\[\s\S]|'(?!''))*/;e1=/^(?:[^\\"#$]|\\[\s\S]|"(?!"")|\#(?!\{)|\$(?!\{))*/;A2=/\n+([^\n\S]*)(?=\S)/g;O2=/^\/(?!\/)((?:[^[\/\n\\]|\\[^\n]|\[(?:\\[^\n]|[^\]\n\\])*\])*)(\/)?/;K2=/^\w*/;V2=/^(?!.*(.).*\1)[gimsuy]*$/;_2=/^(?:[^\\\/#\s]|\\[\s\S]|\/(?!\/\/)|\#(?!\{)|\s+(?:#(?!\{).*)?)*/;E2=/(\s+)(#(?!{).*)/gm;H2=/^(\/|\/{3}\s*)(\*)/;W2=/^\/=?\s/;t1=/\*\//;F2=/^\s*(?:,|\??\.(?![.\d])|\??::)/;L2=/((?:^|[^\\])(?:\\\\)*)\\(?:(0\d|[1-7])|(x(?![\da-fA-F]{2}).{0,2})|(u\{(?![\da-fA-F]{1,}\})[^}]*\}?)|(u(?!\{|[\da-fA-F]{4}).{0,4}))/;N2=/((?:^|[^\\])(?:\\\\)*)\\(?:(0\d)|(x(?![\da-fA-F]{2}).{0,2})|(u\{(?![\da-fA-F]{1,}\})[^}]*\}?)|(u(?!\{|[\da-fA-F]{4}).{0,4}))/;w2=/\s+$/;L1=["-=","+=","/=","*=","%=","||=","&&=","?=","??=","<<=",">>=",">>>=","&=","^=","|=","**=","//=","%%="];V1=["NEW","TYPEOF","DELETE"];j2=["!","~"];S2=["<<",">>",">>>"];o1=["==","!=","===","!==","<",">","<=",">=","=~"];D2=["*","/","%","//","%%"];q2=["IN","OF","INSTANCEOF"];C2=["TRUE","FALSE"];$1=["IDENTIFIER","PROPERTY",")","]","?","@","THIS","SUPER","DYNAMIC_IMPORT","?."];f1=$1.concat(["NUMBER","INFINITY","NAN","STRING","STRING_END","REGEX","REGEX_END","BOOL","NULL","UNDEFINED","}","::","?."]);f2=["IDENTIFIER",")","]","NUMBER"];Z2=f1.concat(["++","--"]);M2=["INDENT","OUTDENT","TERMINATOR"];X2=[")","}","]"];R1=function(U,_){var E,$,A,R,X;if(!U.comments)return;if(_.comments&&_.comments.length!==0){X=[],R=U.comments;for($=0,A=R.length;$<A;$++)if(E=R[$],E.unshift)X.push(E);else _.comments.push(E);_.comments=X.concat(_.comments)}else _.comments=U.comments;return delete U.comments};p=function(U,_,E,$){var A=[U,_];if(A.generated=!0,E)A.origin=E;if($)R1($,A);return A};z2=function(){class U{rewrite(_){var E,$,A;if(this.tokens=_,typeof process<"u"&&process!==null?(E=process.env)!=null?E.DEBUG_TOKEN_STREAM:void 0:void 0){if(process.env.DEBUG_REWRITTEN_TOKEN_STREAM)console.log("Initial token stream:");console.log(function(){var R,X,Y,M;Y=this.tokens,M=[];for(R=0,X=Y.length;R<X;R++)A=Y[R],M.push(A[0]+"/"+A[1]+(A.comments?"*":""));return M}.call(this).join(" "))}if(this.removeLeadingNewlines(),this.closeOpenCalls(),this.closeOpenIndexes(),this.normalizeLines(),this.convertLegacyExistential(),this.convertPostfixSpreadRest(),this.tagPostfixConditionals(),this.addImplicitBracesAndParens(),this.rescueStowawayComments(),this.addLocationDataToGeneratedTokens(),this.fixIndentationLocationData(),this.exposeTokenDataToGrammar(),typeof process<"u"&&process!==null?($=process.env)!=null?$.DEBUG_REWRITTEN_TOKEN_STREAM:void 0:void 0){if(process.env.DEBUG_TOKEN_STREAM)console.log("Rewritten token stream:");console.log(function(){var R,X,Y,M;Y=this.tokens,M=[];for(R=0,X=Y.length;R<X;R++)A=Y[R],M.push(A[0]+"/"+A[1]+(A.comments?"*":""));return M}.call(this).join(" "))}return this.tokens}scanTokens(_){var E,$,A;({tokens:A}=this),E=0;while($=A[E])E+=_.call(this,$,E,A);return!0}detectEnd(_,E,$,A={}){var R,X,Y,M,F;({tokens:F}=this),R=0;while(M=F[_]){if(R===0&&E.call(this,M,_))return $.call(this,M,_);if(X=M[0],B.call(m,X)>=0)R+=1;else if(Y=M[0],B.call(x,Y)>=0)R-=1;if(R<0){if(A.returnOnNegativeLevel)return;return $.call(this,M,_)}_+=1}return _-1}removeLeadingNewlines(){var _,E,$,A,R,X,Y,M,F;Y=this.tokens;for(_=E=0,R=Y.length;E<R;_=++E)if([F]=Y[_],F!=="TERMINATOR")break;if(_===0)return;M=this.tokens.slice(0,_);for($=0,X=M.length;$<X;$++)A=M[$],R1(A,this.tokens[_]);return this.tokens.splice(0,_)}closeOpenCalls(){var _,E;return E=function($,A){var R;return(R=$[0])===")"||R==="CALL_END"},_=function($,A){return $[0]="CALL_END"},this.scanTokens(function($,A){if($[0]==="CALL_START")this.detectEnd(A+1,E,_);return 1})}closeOpenIndexes(){var _,E,$;return $=null,E=function(A,R){var X;return(X=A[0])==="]"||X==="INDEX_END"},_=function(A,R){if(this.tokens.length>=R&&this.tokens[R+1][0]===":")return $[0]="[",A[0]="]";else return A[0]="INDEX_END"},this.scanTokens(function(A,R){if(A[0]==="INDEX_START")$=A,this.detectEnd(R+1,E,_);return 1})}indexOfTag(_,...E){var $,A,R,X,Y;$=0;for(A=R=0,X=E.length;0<=X?R<X:R>X;A=0<=X?++R:--R){if(E[A]==null)continue;if(typeof E[A]==="string")E[A]=[E[A]];if(Y=this.tag(_+A+$),B.call(E[A],Y)<0)return-1}return _+A+$-1}looksObjectish(_){var E,$;if(this.indexOfTag(_,"@",null,":")!==-1||this.indexOfTag(_,null,":")!==-1)return!0;if($=this.indexOfTag(_,m),$!==-1){if(E=null,this.detectEnd($+1,function(A){var R;return R=A[0],B.call(x,R)>=0},function(A,R){return E=R}),this.tag(E+1)===":")return!0}return!1}findTagsBackwards(_,E){var $,A,R,X,Y,M,F;$=[];while(_>=0&&($.length||(X=this.tag(_),B.call(E,X)<0)&&((Y=this.tag(_),B.call(m,Y)<0)||this.tokens[_].generated)&&(M=this.tag(_),B.call(U1,M)<0))){if(A=this.tag(_),B.call(x,A)>=0)$.push(this.tag(_));if((R=this.tag(_),B.call(m,R)>=0)&&$.length)$.pop();_-=1}return F=this.tag(_),B.call(E,F)>=0}addImplicitBracesAndParens(){var _,E,$;return _=[],E=null,$=!1,this.scanTokens(function(A,R,X){var Y,M,F,D,G,J,Q,Z,O,K,H,W,q,N,z,S,L,I,T,j,w,P,V,u,C,c,f,o,g,M1,q1,F1,D1,G1,h,k1,z1,c1,t,l1,e,v;if([v]=A,[w]=P=R>0?X[R-1]:[],[S]=L=R<X.length-1?X[R+1]:[],h=function(){return _[_.length-1]},k1=R,F=function(y){return R-k1+y},H=function(y){var b;return y!=null?(b=y[2])!=null?b.ours:void 0:void 0},q=function(y){return H(y)&&(y!=null?y[0]:void 0)==="{"},W=function(y){return H(y)&&(y!=null?y[0]:void 0)==="("},Q=function(){return H(h())},Z=function(){return W(h())},K=function(){return q(h())},O=function(){var y;return Q()&&((y=h())!=null?y[0]:void 0)==="CONTROL"},z1=function(y){return _.push(["(",y,{ours:!0}]),X.splice(y,0,p("CALL_START","(",["","implicit function call",A[2]],P))},Y=function(){return _.pop(),X.splice(R,0,p("CALL_END",")",["","end of input",A[2]],P)),R+=1},c1=function(y,{startsLine:b=!0,continuationLineIndent:i}={}){var l;return _.push(["{",y,{sameLine:!0,startsLine:b,ours:!0,continuationLineIndent:i}]),l=new String("{"),l.generated=!0,X.splice(y,0,p("{",l,A,P))},M=function(y){return y=y!=null?y:R,_.pop(),X.splice(y,0,p("}","}",A,P)),R+=1},D=(y)=>{var b=null;if(this.detectEnd(y,function(i){return i[0]==="TERMINATOR"},function(i,l){return b=l},{returnOnNegativeLevel:!0}),b==null)return!1;return this.looksObjectish(b+1)},(Z()||K())&&B.call(u1,v)>=0||K()&&w===":"&&v==="FOR")return _.push(["CONTROL",R,{ours:!0}]),F(1);if(v==="INDENT"&&Q()){if(w!=="=>"&&w!=="->"&&w!=="["&&w!=="("&&w!==","&&w!=="{"&&w!=="ELSE"&&w!=="=")while(Z()||K()&&w!==":")if(Z())Y();else M();if(O())_.pop();return _.push([v,R]),F(1)}if(B.call(m,v)>=0)return _.push([v,R]),F(1);if(B.call(x,v)>=0){while(Q())if(Z())Y();else if(K())M();else _.pop();E=_.pop()}if(J=()=>{var y,b,i,l;if(i=this.findTagsBackwards(R,["FOR"])&&this.findTagsBackwards(R,["FORIN","FOROF","FORFROM"]),y=i||this.findTagsBackwards(R,["WHILE","UNTIL","LOOP","LEADING_WHEN"]),!y)return!1;return b=!1,l=A[2].first_line,this.detectEnd(R,function(p1,m1){var E1;return E1=p1[0],B.call(U1,E1)>=0},function(p1,m1){var E1;return[w,,{first_line:E1}]=X[m1-1]||[],b=l===E1&&(w==="->"||w==="=>")},{returnOnNegativeLevel:!0}),b},(B.call(w1,v)>=0&&A.spaced||v==="?"&&R>0&&!X[R-1].spaced)&&(B.call(I1,S)>=0||S==="..."&&(V=this.tag(R+2),B.call(I1,V)>=0)&&!this.findTagsBackwards(R,["INDEX_START","["])||B.call(C1,S)>=0&&!L.spaced&&!L.newLine)&&!J()){if(v==="?")v=A[0]="FUNC_EXIST";return z1(R+1),F(2)}if(B.call(w1,v)>=0&&this.indexOfTag(R+1,"INDENT")>-1&&this.looksObjectish(R+2)&&!this.findTagsBackwards(R,["CLASS","EXTENDS","IF","CATCH","SWITCH","LEADING_WHEN","FOR","WHILE","UNTIL"])&&!(((u=g=(C=h())!=null?C[0]:void 0)==="{"||u==="[")&&!H(h())&&this.findTagsBackwards(R,g)))return z1(R+1),_.push(["INDENT",R+2]),F(3);if(v==="SPACE?")$=!0;if(v===":"){if($)return $=!1,F(1);if(g=function(){var y;switch(!1){case(y=this.tag(R-1),B.call(x,y)<0):if([l1,t]=E,l1==="["&&t>0&&this.tag(t-1)==="@"&&!X[t-1].spaced)return t-1;else return t;break;case this.tag(R-2)!=="@":return R-2;default:return R-1}}.call(this),e=g<=0||(c=this.tag(g-1),B.call(U1,c)>=0)||X[g-1].newLine,h()){if([G1,q1]=h(),D1=_[_.length-2],(G1==="{"||G1==="INDENT"&&(D1!=null?D1[0]:void 0)==="{"&&!H(D1)&&this.findTagsBackwards(q1-1,["{"]))&&(e||this.tag(g-1)===","||this.tag(g-1)==="{")&&(f=this.tag(g-1),B.call(X1,f)<0))return F(1)}return j=R>1?X[R-2]:[],c1(g,{startsLine:!!e,continuationLineIndent:j.continuationLineIndent}),F(2)}if(B.call(U1,v)>=0)for(N=_.length-1;N>=0;N+=-1){if(F1=_[N],!H(F1))break;if(q(F1))F1[2].sameLine=!1}if(v==="TERMINATOR"&&A.endsContinuationLineIndentation){({preContinuationLineIndent:T}=A.endsContinuationLineIndentation);while(K()&&(G=h()[2].continuationLineIndent)!=null&&G>T)M()}if(z=w==="OUTDENT"||P.newLine,B.call(v1,v)>=0||B.call(J1,v)>=0&&z||(v===".."||v==="...")&&this.findTagsBackwards(R,["INDEX_START"]))while(Q())if([G1,q1,{sameLine:M1,startsLine:e}]=h(),Z()&&w!==","||w===","&&v==="TERMINATOR"&&S==null)Y();else if(K()&&M1&&v!=="TERMINATOR"&&w!==":"&&!((v==="POST_IF"||v==="FOR"||v==="WHILE"||v==="UNTIL")&&e&&D(R+1)))M();else if(K()&&v==="TERMINATOR"&&w!==","&&!(e&&this.looksObjectish(R+1)))M();else if(O()&&X[h()[1]][0]==="CLASS"&&v==="TERMINATOR")_.pop();else break;if(v===","&&!this.looksObjectish(R+1)&&K()&&!((o=this.tag(R+2))==="FOROF"||o==="FORIN")&&(S!=="TERMINATOR"||!this.looksObjectish(R+2))){I=S==="OUTDENT"?1:0;while(K())M(R+I)}return F(1)})}rescueStowawayComments(){var _,E,$,A;return E=function(R,X,Y,M){if(Y[X][0]!=="TERMINATOR")Y[M](p("TERMINATOR",`
19
+ `,Y[X]));return Y[M](p("JS","",Y[X],R))},_=function(R,X){var Y,M;Y=R+1;while(Y!==X.length&&(M=X[Y][0],B.call(r,M)>=0)){if(X[Y][0]==="INTERPOLATION_END")return!0;Y++}return!1},A=function(R,X,Y){var M,F,D,G,J,Q,Z;F=X;while(F!==Y.length&&(J=Y[F][0],B.call(r,J)>=0))F++;if(!(F===Y.length||(Q=Y[F][0],B.call(r,Q)>=0))){Z=R.comments;for(D=0,G=Z.length;D<G;D++)M=Z[D],M.unshift=!0;return R1(R,Y[F]),1}else return F=Y.length-1,E(R,F,Y,"push"),1},$=function(R,X,Y){var M,F,D;M=X;while(M!==-1&&(F=Y[M][0],B.call(r,F)>=0))M--;if(!(M===-1||(D=Y[M][0],B.call(r,D)>=0)))return R1(R,Y[M]),1;else return E(R,0,Y,"unshift"),3},this.scanTokens(function(R,X,Y){var M,F,D,G,J;if(!R.comments)return 1;if(J=1,D=R[0],B.call(r,D)>=0){M={comments:[]},F=R.comments.length-1;while(F!==-1){if(R.comments[F].newLine===!1&&R.comments[F].here===!1)M.comments.unshift(R.comments[F]),R.comments.splice(F,1);F--}if(M.comments.length!==0)J=$(M,X-1,Y);if(R.comments.length!==0)A(R,X,Y)}else if(!_(X,Y)){M={comments:[]},F=R.comments.length-1;while(F!==-1){if(R.comments[F].newLine&&!R.comments[F].unshift&&!(R[0]==="JS"&&R.generated))M.comments.unshift(R.comments[F]),R.comments.splice(F,1);F--}if(M.comments.length!==0)J=A(M,X+1,Y)}if(((G=R.comments)!=null?G.length:void 0)===0)delete R.comments;return J})}addLocationDataToGeneratedTokens(){return this.scanTokens(function(_,E,$){var A,R,X,Y,M,F,D;if(_[2])return 1;if(!(_.generated||_.explicit))return 1;if(_.fromThen&&_[0]==="INDENT")return _[2]=_.origin[2],1;if(_[0]==="{"&&(X=(F=$[E+1])!=null?F[2]:void 0))({first_line:R,first_column:A,range:[M]}=X);else if(Y=(D=$[E-1])!=null?D[2]:void 0)({last_line:R,last_column:A,range:[,M]}=Y),A+=1;else R=A=0,M=0;return _[2]={first_line:R,first_column:A,last_line:R,last_column:A,last_line_exclusive:R,last_column_exclusive:A,range:[M,M]},1})}fixIndentationLocationData(){var _;if(this.allComments==null)this.allComments=k2(this.tokens);return _=(E,{afterPosition:$,indentSize:A,first:R,indented:X})=>{var Y,M,F,D,G,J,Q,Z;if(Z=E[2].range[0],G=function(O){if(O.outdented){if(!(A!=null&&O.indentSize>A))return!1}if(X&&!O.indented)return!1;if(!(O.locationData.range[0]<Z))return!1;if(!(O.locationData.range[0]>$))return!1;return!0},R){D=null,J=this.allComments;for(M=J.length-1;M>=0;M+=-1)if(Y=J[M],G(Y))D=Y;else if(D)return D;return D}Q=this.allComments;for(F=Q.length-1;F>=0;F+=-1)if(Y=Q[F],G(Y))return Y;return null},this.scanTokens(function(E,$,A){var R,X,Y,M,F,D,G,J,Q,Z;if(!((G=E[0])==="INDENT"||G==="OUTDENT"||E.generated&&E[0]==="CALL_END"&&!((J=E.data)!=null?J.closingTagNameToken:void 0)||E.generated&&E[0]==="}"))return 1;if(R=E[0]==="INDENT",D=(Q=E.prevToken)!=null?Q:A[$-1],F=D[2],Z=E.explicit||E.generated,Z){X=E,Y=$;while((X.explicit||X.generated)&&Y!==A.length-1)X=A[Y++]}if(M=_(Z?X:E,{afterPosition:F.range[0],indentSize:E.indentSize,first:R,indented:Z}),R){if(!(M!=null?M.newLine:void 0))return 1}if(E.generated&&E[0]==="CALL_END"&&(M!=null?M.indented:void 0))return 1;if(M!=null)F=M.locationData;return E[2]={first_line:M!=null?F.first_line:F.last_line,first_column:M!=null?R?0:F.first_column:F.last_column,last_line:F.last_line,last_column:F.last_column,last_line_exclusive:F.last_line_exclusive,last_column_exclusive:F.last_column_exclusive,range:R&&M!=null?[F.range[0]-M.indentSize,F.range[1]]:F.range},1})}normalizeLines(){var _,E,$,A,R,X,Y,M,F;return F=R=M=null,Y=null,X=null,A=[],$=function(D,G){var J,Q,Z,O;return D[1]!==";"&&(J=D[0],B.call(P2,J)>=0)&&!(D[0]==="TERMINATOR"&&(Q=this.tag(G+1),B.call(B1,Q)>=0))&&!(D[0]==="ELSE"&&(F!=="THEN"||(X||Y)))&&!(((Z=D[0])==="CATCH"||Z==="FINALLY")&&(F==="->"||F==="=>"))||(O=D[0],B.call(J1,O)>=0)&&(this.tokens[G-1].newLine||this.tokens[G-1][0]==="OUTDENT")},_=function(D,G){if(D[0]==="ELSE"&&F==="THEN")A.pop();return this.tokens.splice(this.tag(G-1)===","?G-1:G,0,M)},E=(D,G)=>{var J,Q,Z;if(Z=A.length,!(Z>0))return G;return J=A.pop(),[,Q]=this.indentation(D[J]),Q[1]=Z*2,D.splice(G,0,Q),Q[1]=2,D.splice(G+1,0,Q),this.detectEnd(G+2,function(O,K){var H;return(H=O[0])==="OUTDENT"||H==="TERMINATOR"},function(O,K){if(this.tag(K)==="OUTDENT"&&this.tag(K+1)==="OUTDENT")return D.splice(K,2)}),G+2},this.scanTokens(function(D,G,J){var Q,Z,O,K,H,W,q;if([q]=D,Q=(q==="->"||q==="=>")&&this.findTagsBackwards(G,["IF","WHILE","FOR","UNTIL","SWITCH","WHEN","LEADING_WHEN","[","INDEX_START"])&&!this.findTagsBackwards(G,["THEN","..","..."]),q==="TERMINATOR"){if(this.tag(G+1)==="ELSE"&&this.tag(G-1)!=="OUTDENT")return J.splice(G,1,...this.indentation()),1;if(K=this.tag(G+1),B.call(B1,K)>=0){if(D[1]===";"&&this.tag(G+1)==="OUTDENT")J[G+1].prevToken=D,R1(D,J[G+1]);return J.splice(G,1),0}}if(q==="CATCH")for(Z=O=1;O<=2;Z=++O){if(!((H=this.tag(G+Z))==="OUTDENT"||H==="TERMINATOR"||H==="FINALLY"))continue;return J.splice(G+Z,0,...this.indentation()),2+Z}if((q==="->"||q==="=>")&&((W=this.tag(G+1))===","||W==="]"||this.tag(G+1)==="."&&D.newLine))return[R,M]=this.indentation(J[G]),J.splice(G+1,0,R,M),1;if(B.call(j1,q)>=0&&this.tag(G+1)!=="INDENT"&&!(q==="ELSE"&&this.tag(G+1)==="IF")&&!Q){if(F=q,[R,M]=this.indentation(J[G]),F==="THEN")R.fromThen=!0;if(q==="THEN")Y=this.findTagsBackwards(G,["LEADING_WHEN"])&&this.tag(G+1)==="IF",X=this.findTagsBackwards(G,["IF"])&&this.tag(G+1)==="IF";if(q==="THEN"&&this.findTagsBackwards(G,["IF"]))A.push(G);if(q==="ELSE"&&this.tag(G-1)!=="OUTDENT")G=E(J,G);if(J.splice(G+1,0,R),this.detectEnd(G+2,$,_),q==="THEN")J.splice(G,1);return 1}return 1})}convertLegacyExistential(){return this.scanTokens(function(_,E,$){var A,R,X,Y,M;if(_[0]!=="SPACE?")return 1;A=!1,X=0;for(R=E+1;R<$.length;R++){if(M=$[R][0],Y=M,B.call(m,Y)>=0)X++;else if(Y=M,B.call(x,Y)>=0)X--;if(M===":"&&X===0){A=!0;break}if(X===0&&(M==="TERMINATOR"||M==="INDENT"||M==="OUTDENT"))break}if(!A)_[0]="??",_[1]="??";return 1})}convertPostfixSpreadRest(){return this.scanTokens(function(_,E,$){var A,R,X,Y,M,F,D,G,J,Q;if(_[0]!=="..."&&_[0]!=="..")return 1;let Z=0;for(let O=E-1;O>=0;O--){if($[O][0]==="INDEX_END")Z++;if($[O][0]==="INDEX_START")Z--}if(R=Z<0,R)return 1;if(D=$[E-1],M=$[E+1],!D||!M)return 1;if(G=D[0],F=M[0],G===","&&F===",")return 1;if(G==="NUMBER")return 1;if(Q=["IDENTIFIER","PROPERTY",")","]","THIS","@"],J=G,B.call(Q,J)>=0){if(A=[",","]",")","}","CALL_END","INDEX_END","PARAM_END","TERMINATOR","OUTDENT"],J=F,B.call(A,J)>=0)return $[E-1]=_,$[E]=D,1}return 1})}tagPostfixConditionals(){var _,E,$;return $=null,E=function(A,R){var X,Y;return[Y]=A,[X]=this.tokens[R-1],Y==="TERMINATOR"||Y==="INDENT"&&B.call(j1,X)<0},_=function(A,R){if(A[0]!=="INDENT"||A.generated&&!A.fromThen)return $[0]="POST_"+$[0]},this.scanTokens(function(A,R){if(A[0]!=="IF"&&A[0]!=="UNLESS")return 1;return $=A,this.detectEnd(R+1,E,_),1})}exposeTokenDataToGrammar(){return this.scanTokens(function(_,E){var $,A,R;if(_.generated||_.data&&Object.keys(_.data).length!==0){_[1]=new String(_[1]),A=($=_.data)!=null?$:{};for(A1 in A){if(!h2.call(A,A1))continue;R=A[A1],_[1][A1]=R}if(_.generated)_[1].generated=!0}return 1})}indentation(_){var E,$;if(E=["INDENT",2],$=["OUTDENT",2],_)E.generated=$.generated=!0,E.origin=$.origin=_;else E.explicit=$.explicit=!0;return[E,$]}tag(_){var E;return(E=this.tokens[_])!=null?E[0]:void 0}}return U.prototype.generate=p,U}.call(null);T1=[["(",")"],["[","]"],["{","}"],["INDENT","OUTDENT"],["CALL_START","CALL_END"],["PARAM_START","PARAM_END"],["INDEX_START","INDEX_END"],["STRING_START","STRING_END"],["INTERPOLATION_START","INTERPOLATION_END"],["REGEX_START","REGEX_END"]];Q1={};m=[];x=[];for(Z1=0,s1=T1.length;Z1<s1;Z1++)[S1,P1]=T1[Z1],m.push(Q1[P1]=S1),x.push(Q1[S1]=P1);B1=["CATCH","THEN","ELSE","FINALLY"].concat(x);w1=["IDENTIFIER","PROPERTY","SUPER",")","CALL_END","]","INDEX_END","@","THIS"];I1=["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","@","->","=>","[","(","{","--","++"];C1=["+","-"];v1=["POST_IF","FOR","WHILE","UNTIL","WHEN","BY","LOOP","TERMINATOR"];j1=["ELSE","->","=>","TRY","FINALLY","THEN"];P2=["TERMINATOR","CATCH","FINALLY","ELSE","OUTDENT","LEADING_WHEN"];U1=["TERMINATOR","INDENT","OUTDENT"];J1=[".","?.","::","?::"];u1=["IF","TRY","FINALLY","CATCH","CLASS","SWITCH"];r=["(",")","[","]","{","}",":",".","..","...",",","=","++","--","?","AS","AWAIT","CALL_START","CALL_END","DEFAULT","DO","DO_IIFE","ELSE","EXTENDS","EXPORT","FORIN","FOROF","FORFROM","IMPORT","INDENT","INDEX_SOAK","INTERPOLATION_START","INTERPOLATION_END","LEADING_WHEN","OUTDENT","PARAM_END","REGEX_START","REGEX_END","RETURN","STRING_END","THROW","UNARY","YIELD"].concat(C1.concat(v1.concat(J1.concat(u1))));X1=["\\",".","?.","?::","UNARY","DO","DO_IIFE","MATH","UNARY_MATH","+","-","**","SHIFT","RELATION","COMPARE","&","^","|","&&","||","SPACE?","EXTENDS"];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,Throw:28,Yield:29,Def:30,DEF:31,Identifier:32,CALL_START:33,ParamList:34,CALL_END:35,Block:36,Assignable:37,REACTIVE_ASSIGN:38,INDENT:39,OUTDENT:40,COMPUTED_ASSIGN:41,READONLY_ASSIGN:42,REACT_ASSIGN:43,CodeLine:44,OperationLine:45,YIELD:46,Object:47,FROM:48,IDENTIFIER:49,Property:50,PROPERTY:51,AlphaNumeric:52,NUMBER:53,String:54,STRING:55,STRING_START:56,Interpolations:57,STRING_END:58,InterpolationChunk:59,INTERPOLATION_START:60,INTERPOLATION_END:61,Regex:62,REGEX:63,REGEX_START:64,Invocation:65,REGEX_END:66,RegexWithIndex:67,",":68,Literal:69,JS:70,UNDEFINED:71,NULL:72,BOOL:73,INFINITY:74,NAN:75,"=":76,AssignObj:77,ObjAssignable:78,ObjRestValue:79,":":80,SimpleObjAssignable:81,ThisProperty:82,"[":83,"]":84,"@":85,"...":86,ObjSpreadExpr:87,Parenthetical:88,Super:89,This:90,SUPER:91,OptFuncExist:92,Arguments:93,DYNAMIC_IMPORT:94,".":95,"?.":96,"::":97,"?::":98,INDEX_START:99,INDEX_END:100,INDEX_SOAK:101,RETURN:102,PARAM_START:103,PARAM_END:104,FuncGlyph:105,"->":106,"=>":107,OptComma:108,Param:109,ParamVar:110,Array:111,Splat:112,SimpleAssignable:113,Slice:114,ES6_OPTIONAL_INDEX:115,Range:116,DoIife:117,MetaProperty:118,NEW_TARGET:119,IMPORT_META:120,"{":121,FOR:122,ForVariables:123,FOROF:124,"}":125,WHEN:126,OWN:127,AssignList:128,CLASS:129,EXTENDS:130,IMPORT:131,ImportDefaultSpecifier:132,ImportNamespaceSpecifier:133,ImportSpecifierList:134,ImportSpecifier:135,AS:136,DEFAULT:137,IMPORT_ALL:138,EXPORT:139,ExportSpecifierList:140,EXPORT_ALL:141,ExportSpecifier:142,ES6_OPTIONAL_CALL:143,FUNC_EXIST:144,ArgList:145,THIS:146,Elisions:147,ArgElisionList:148,OptElisions:149,RangeDots:150,"..":151,Arg:152,ArgElision:153,Elision:154,SimpleArgs:155,TRY:156,Catch:157,FINALLY:158,CATCH:159,THROW:160,"(":161,")":162,WhileSource:163,WHILE:164,UNTIL:165,Loop:166,LOOP:167,FORIN:168,BY:169,FORFROM:170,AWAIT:171,ForValue:172,SWITCH:173,Whens:174,ELSE:175,When:176,LEADING_WHEN:177,IfBlock:178,IF:179,UnlessBlock:180,UNLESS:181,POST_IF:182,POST_UNLESS:183,UNARY:184,DO:185,DO_IIFE:186,UNARY_MATH:187,"-":188,"+":189,"--":190,"++":191,"?":192,MATH:193,"**":194,SHIFT:195,COMPARE:196,"&":197,"^":198,"|":199,"&&":200,"||":201,"??":202,"!?":203,RELATION:204,"SPACE?":205,COMPOUND_ASSIGN:206},tokenNames:{2:"error",6:"TERMINATOR",11:"STATEMENT",31:"DEF",33:"CALL_START",35:"CALL_END",38:"REACTIVE_ASSIGN",39:"INDENT",40:"OUTDENT",41:"COMPUTED_ASSIGN",42:"READONLY_ASSIGN",43:"REACT_ASSIGN",46:"YIELD",48:"FROM",49:"IDENTIFIER",51:"PROPERTY",53:"NUMBER",55:"STRING",56:"STRING_START",58:"STRING_END",60:"INTERPOLATION_START",61:"INTERPOLATION_END",63:"REGEX",64:"REGEX_START",66:"REGEX_END",68:",",70:"JS",71:"UNDEFINED",72:"NULL",73:"BOOL",74:"INFINITY",75:"NAN",76:"=",80:":",83:"[",84:"]",85:"@",86:"...",91:"SUPER",94:"DYNAMIC_IMPORT",95:".",96:"?.",97:"::",98:"?::",99:"INDEX_START",100:"INDEX_END",101:"INDEX_SOAK",102:"RETURN",103:"PARAM_START",104:"PARAM_END",106:"->",107:"=>",115:"ES6_OPTIONAL_INDEX",119:"NEW_TARGET",120:"IMPORT_META",121:"{",122:"FOR",124:"FOROF",125:"}",126:"WHEN",127:"OWN",129:"CLASS",130:"EXTENDS",131:"IMPORT",136:"AS",137:"DEFAULT",138:"IMPORT_ALL",139:"EXPORT",141:"EXPORT_ALL",143:"ES6_OPTIONAL_CALL",144:"FUNC_EXIST",146:"THIS",151:"..",156:"TRY",158:"FINALLY",159:"CATCH",160:"THROW",161:"(",162:")",164:"WHILE",165:"UNTIL",167:"LOOP",168:"FORIN",169:"BY",170:"FORFROM",171:"AWAIT",173:"SWITCH",175:"ELSE",177:"LEADING_WHEN",179:"IF",181:"UNLESS",182:"POST_IF",183:"POST_UNLESS",184:"UNARY",185:"DO",186:"DO_IIFE",187:"UNARY_MATH",188:"-",189:"+",190:"--",191:"++",192:"?",193:"MATH",194:"**",195:"SHIFT",196:"COMPARE",197:"&",198:"^",199:"|",200:"&&",201:"||",202:"??",203:"!?",204:"RELATION",205:"SPACE?",206:"COMPOUND_ASSIGN"},parseTable:(()=>{let U=[101,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,5,6,1,1,1,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,-1,1,2,3,4,5,6,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,24,25,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,39,40,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,41,42,62,43,44,45,47,48,1,1,0,2,1,5,-2,101,5,1,5,34,21,101,-3,-3,-3,-3,-3,31,1,5,29,4,1,21,7,16,38,40,1,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-6,-6,-6,-6,-6,-6,-6,-6,121,-6,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,9,1,5,29,4,1,21,7,16,78,-7,-7,-7,-7,-7,-7,-7,-7,-7,14,1,5,29,4,1,21,7,16,78,1,1,1,17,1,-8,-8,-8,-8,-8,-8,-8,-8,-8,124,90,91,122,123,54,1,5,27,2,4,1,15,1,5,7,12,4,2,6,3,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-13,-13,-250,-13,-13,-13,-250,-250,-13,-13,-13,-13,-13,125,127,128,129,130,131,-13,132,-13,133,-13,-13,-13,-13,126,134,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,-13,47,1,5,29,4,1,21,7,12,4,2,9,1,1,1,1,1,1,3,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-14,-14,-14,-14,-14,-14,-14,-14,-14,-14,135,136,137,138,139,-14,140,-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,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,9,1,5,29,4,1,21,7,16,78,-47,-47,-47,-47,-47,-47,-47,-47,-47,9,1,5,29,4,1,21,7,16,78,-48,-48,-48,-48,-48,-48,-48,-48,-48,13,1,5,29,4,1,21,7,16,78,2,1,17,1,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,-9,13,1,5,29,4,1,21,7,16,78,2,1,17,1,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,-10,13,1,5,29,4,1,21,7,16,78,2,1,17,1,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,-11,13,1,5,29,4,1,21,7,16,78,2,1,17,1,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,-12,58,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-173,-173,-173,-173,142,-173,-173,143,144,145,-173,-173,-173,-173,141,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,-174,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,-175,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,-176,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,-178,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,-179,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,-180,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,-181,18,6,26,2,1,4,1,7,2,19,14,1,2,1,18,5,1,1,10,-127,150,146,-127,-127,-127,153,98,-127,151,155,154,149,-127,147,148,152,93,100,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,4,1,2,4,1,1,1,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,157,4,5,6,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,156,30,158,50,24,25,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,39,40,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,41,42,62,43,44,45,47,48,97,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,5,6,1,1,1,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,159,160,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,24,25,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,39,40,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,41,42,62,43,44,45,47,48,97,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,5,6,1,1,1,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,162,163,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,24,25,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,39,40,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,41,42,62,43,44,45,47,48,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,164,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,170,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,171,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,95,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,5,2,4,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,172,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,173,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,45,14,1,17,5,10,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,9,2,1,1,4,2,3,1,1,1,1,1,25,15,25,175,176,86,177,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,165,166,84,85,66,174,33,35,38,82,83,93,80,76,169,45,14,1,17,5,10,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,9,2,1,1,4,2,3,1,1,1,1,1,25,15,25,175,176,86,177,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,165,166,84,85,66,178,33,35,38,82,83,93,80,76,169,61,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,179,180,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,181,96,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,5,2,4,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,183,182,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,184,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,5,7,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,185,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,-358,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,-360,2,36,3,186,158,2,36,3,187,158,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,14,32,15,2,33,1,2,25,1,5,5,2,4,44,1,150,153,98,151,77,154,193,152,191,93,188,189,190,192,95,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,5,2,4,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,194,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,195,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,88,1,5,8,1,17,3,1,1,2,1,7,2,3,1,1,1,1,5,1,1,1,1,3,1,1,1,1,1,1,1,5,2,1,1,1,1,2,1,1,1,3,6,3,1,1,1,1,4,2,3,1,1,1,1,1,1,2,1,1,4,16,5,10,1,2,1,3,1,1,12,1,3,2,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-197,-197,175,176,86,-197,196,177,158,-197,67,98,68,94,95,99,100,-197,70,96,97,34,-197,31,69,71,72,73,74,75,-197,87,77,-197,81,-197,32,37,36,78,79,-197,165,-197,166,84,85,66,198,33,35,38,82,83,93,-197,-197,-197,-197,197,80,-197,76,-197,-197,-197,-197,-197,-197,-197,-197,169,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,-197,95,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,5,2,4,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,199,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,200,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,131,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,3,2,2,1,3,3,1,1,1,3,1,1,1,1,5,1,1,1,1,3,1,1,1,1,1,1,1,5,2,1,1,1,1,2,1,1,1,3,6,2,1,1,1,1,1,4,2,3,1,1,1,1,1,1,2,1,1,3,2,8,7,5,5,4,1,1,1,1,1,1,1,1,1,1,1,2,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-49,-49,201,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,-49,30,202,-49,50,60,67,203,98,68,94,95,99,100,-49,70,96,97,34,-49,31,69,71,72,73,74,75,-49,87,77,-49,81,-49,32,37,36,78,79,-49,63,165,-49,166,84,85,66,49,33,35,38,82,83,93,-49,-49,-49,-49,58,64,65,80,-49,53,59,76,-49,54,-49,-49,55,92,-49,-49,-49,46,57,51,88,52,89,-49,-49,167,168,169,43,44,45,47,48,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,-49,2,32,17,204,98,6,15,29,59,2,1,1,206,205,39,40,84,85,105,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,3,2,2,1,3,3,1,2,3,1,1,1,1,5,1,1,1,1,3,1,1,1,1,1,1,1,7,1,1,1,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,1,1,1,1,1,1,4,2,5,1,1,1,1,1,1,1,1,1,1,1,1,1,-118,-118,207,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,-118,30,208,-118,50,60,67,98,68,94,95,99,100,-118,70,96,97,34,-118,31,69,71,72,73,74,75,87,77,-118,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,-118,54,-118,-118,55,92,46,57,51,88,52,89,-118,-118,167,168,169,43,44,45,47,48,9,32,17,5,1,1,65,11,1,5,213,98,209,99,100,212,210,211,214,9,27,3,1,1,17,72,8,8,4,216,217,61,218,98,215,58,219,220,58,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,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,-171,-171,-171,-171,58,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,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,-172,-172,-172,-172,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,-71,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,-72,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,-73,-73,-73,-73,-73,-73,-73,-73,-73,-73,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,-74,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,-75,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,-76,-76,-76,-76,-76,-76,-76,-76,-76,-76,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,-77,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,-78,100,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,5,2,4,1,1,1,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,221,3,4,5,6,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,222,50,24,25,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,39,40,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,41,42,62,43,44,45,47,48,107,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,5,2,4,1,1,1,1,2,3,1,1,1,1,6,1,1,1,3,1,1,1,1,1,1,1,7,1,1,1,1,2,1,1,1,3,8,1,2,1,1,4,1,1,3,1,1,1,1,1,1,7,2,8,7,1,1,4,1,1,2,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,223,232,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,229,50,24,25,60,67,98,68,94,95,99,100,70,96,97,34,230,31,69,71,72,73,74,75,87,77,224,81,234,32,37,36,78,79,63,39,40,84,85,66,233,49,33,35,38,82,83,93,56,58,64,65,80,225,226,231,228,227,53,59,76,54,90,91,55,92,46,57,51,88,52,89,41,42,62,43,44,45,47,48,4,33,60,2,4,238,235,236,237,2,33,60,238,239,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,-254,55,1,5,27,2,4,1,10,1,4,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-255,-255,-255,-255,-255,-255,240,241,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,-255,1,95,242,1,95,243,51,11,20,8,4,3,3,4,2,1,7,1,6,1,1,1,1,1,8,2,6,3,8,1,3,1,12,1,1,1,7,2,8,7,10,4,1,3,1,2,4,2,6,2,3,1,1,1,1,1,1,1,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,-123,51,11,20,8,4,3,3,4,2,1,7,1,6,1,1,1,1,1,8,2,6,3,8,1,3,1,12,1,1,1,7,2,8,7,10,4,1,3,1,2,4,2,6,2,3,1,1,1,1,1,1,1,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,-124,62,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,-141,62,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,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,-142,-142,-142,-142,-142,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,244,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,245,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,246,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,247,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,96,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,4,1,2,4,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,249,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,248,30,158,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,23,6,26,7,1,9,1,1,1,1,1,1,1,12,9,1,1,2,1,1,2,1,39,3,-192,257,-192,-192,98,258,241,255,94,95,99,100,-192,256,250,260,252,259,253,254,261,-192,251,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,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,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,-58,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,-67,45,14,1,17,5,10,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,9,2,1,1,4,2,3,1,1,1,1,1,25,15,25,175,176,86,177,67,98,68,94,95,99,100,70,96,97,262,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,165,166,84,85,66,263,33,35,38,82,83,93,80,76,169,64,1,5,27,2,3,1,1,1,1,1,5,7,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,4,6,7,1,7,11,2,1,3,1,1,12,1,5,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,-55,-55,-55,56,1,5,27,2,4,1,15,1,2,2,1,5,2,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,-59,6,54,1,1,1,2,1,267,99,100,264,265,266,103,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,5,3,3,1,1,1,1,2,3,1,1,1,1,5,1,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,1,1,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,-5,268,-5,4,5,6,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,-5,50,24,25,60,67,98,68,94,95,99,100,-5,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,39,40,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,-5,54,90,91,55,92,46,57,51,88,52,89,41,42,62,43,44,45,47,48,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,-379,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,269,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,270,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,271,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,272,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,273,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,274,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,275,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,276,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,277,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,278,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,279,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,280,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,281,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,282,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,283,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,284,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,285,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,-308,14,32,15,2,33,1,2,25,1,5,5,2,4,44,1,150,153,98,151,77,154,193,152,289,93,286,287,288,192,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,290,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,291,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,5,33,21,1,1,37,238,292,99,100,293,2,33,60,238,294,2,50,1,295,241,2,50,1,296,241,64,1,5,27,2,3,1,1,1,1,1,7,1,4,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,297,241,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,-147,64,1,5,27,2,3,1,1,1,1,1,7,1,4,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,298,241,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,-148,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,5,2,4,3,1,2,3,1,1,1,1,6,1,1,1,2,2,1,1,1,1,1,1,7,1,2,1,2,1,1,1,3,8,1,2,1,1,4,2,1,2,1,1,1,1,1,1,7,2,8,7,4,1,5,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,299,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,300,50,60,67,98,68,94,95,99,100,304,96,97,34,302,31,69,71,72,73,74,75,87,77,81,306,32,37,36,78,79,63,165,166,84,85,66,49,301,33,35,38,82,83,93,56,58,64,65,80,303,305,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,1,99,307,1,99,308,3,33,22,1,-251,-251,-251,2,50,1,309,241,2,50,1,310,241,64,1,5,27,2,3,1,1,1,1,1,7,1,4,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,311,241,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,-164,64,1,5,27,2,3,1,1,1,1,1,7,1,4,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-165,-165,-165,-165,-165,-165,-165,-165,-165,-165,312,241,-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,-165,-165,-165,-165,-165,-165,-165,-165,-165,95,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,5,2,4,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,313,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,314,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,1,99,315,96,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,5,2,4,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,317,316,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,318,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,96,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,5,2,4,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,320,319,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,321,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,96,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,5,2,4,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,323,322,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,324,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,96,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,5,2,4,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,326,325,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,327,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,96,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,5,2,4,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,329,328,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,330,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,9,6,29,4,1,28,16,20,4,17,-125,-125,-125,-125,332,-125,331,333,-125,6,6,29,4,1,28,36,-128,-128,-128,-128,-128,-128,7,6,29,4,1,28,8,28,-132,-132,-132,-132,-132,334,-132,15,6,26,3,4,1,7,2,19,14,1,2,19,6,1,10,-135,150,-135,-135,-135,153,98,-135,151,155,154,-135,335,152,93,10,6,29,4,1,28,8,28,20,44,2,-136,-136,-136,-136,-136,-136,-136,-136,-136,-136,10,6,29,4,1,28,8,28,20,44,2,-137,-137,-137,-137,-137,-137,-137,-137,-137,-137,10,6,29,4,1,28,8,28,20,44,2,-138,-138,-138,-138,-138,-138,-138,-138,-138,-138,10,6,29,4,1,28,8,28,20,44,2,-139,-139,-139,-139,-139,-139,-139,-139,-139,-139,2,50,1,240,241,107,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,5,2,4,1,1,1,1,2,3,1,1,1,1,6,1,1,1,3,1,1,1,1,1,1,1,7,1,1,1,1,2,1,1,1,3,8,1,2,1,1,4,1,1,3,1,1,1,1,1,1,7,2,8,7,1,1,4,1,1,2,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,336,232,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,229,50,24,25,60,67,98,68,94,95,99,100,70,96,97,34,230,31,69,71,72,73,74,75,87,77,224,81,234,32,37,36,78,79,63,39,40,84,85,66,233,49,33,35,38,82,83,93,56,58,64,65,80,225,226,231,228,227,53,59,76,54,90,91,55,92,46,57,51,88,52,89,41,42,62,43,44,45,47,48,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,-120,9,1,5,29,4,1,21,7,16,78,-122,-122,-122,-122,-122,-122,-122,-122,-122,100,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,5,3,3,1,1,1,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,338,3,4,5,6,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,337,50,24,25,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,39,40,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,41,42,62,43,44,45,47,48,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,-368,120,-368,-368,-368,-368,-368,-368,119,-368,-368,102,-368,-368,-368,-368,-368,-368,-368,-368,-368,114,115,-368,-368,9,1,5,29,4,1,21,7,16,78,-365,-365,-365,-365,-365,-365,-365,-365,-365,5,163,1,1,17,1,124,90,91,122,123,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,-369,120,-369,-369,-369,-369,-369,-369,119,-369,-369,102,-369,-369,-369,-369,-369,-369,-369,-369,-369,114,115,-369,-369,9,1,5,29,4,1,21,7,16,78,-366,-366,-366,-366,-366,-366,-366,-366,-366,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,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,120,-370,-370,-370,-370,-370,-370,119,-370,-370,102,-370,106,-370,-370,-370,-370,-370,-370,-370,114,115,-370,-370,18,6,26,2,1,4,1,7,2,19,14,1,2,1,18,5,1,1,10,-127,150,339,-127,-127,-127,153,98,-127,151,155,154,149,-127,147,148,152,93,2,36,3,156,158,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,159,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,162,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,5,15,88,2,1,1,206,165,166,84,85,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,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,120,-371,-371,-371,-371,-371,-371,119,-371,-371,102,-371,106,-371,-371,-371,-371,-371,-371,-371,114,115,-371,-371,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,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,120,-372,-372,-372,-372,-372,-372,119,-372,-372,102,-372,106,-372,-372,-372,-372,-372,-372,-372,114,115,-372,-372,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,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,120,-373,-373,-373,-373,-373,-373,119,-373,-373,102,-373,-373,-373,-373,-373,-373,-373,-373,-373,114,115,-373,-373,2,47,74,340,93,58,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-375,-375,-170,-375,-170,-375,-375,-170,-170,-170,-170,-170,-375,-375,-170,-375,-375,-375,-170,-170,-170,-170,-170,-375,-170,-375,-170,-375,-375,-375,-375,-170,-170,-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,13,33,22,1,36,3,1,1,1,1,2,14,28,1,-250,-250,-250,125,127,128,129,130,131,132,133,126,134,6,95,1,1,1,1,2,135,136,137,138,139,140,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,-173,58,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-376,-376,-170,-376,-170,-376,-376,-170,-170,-170,-170,-170,-376,-376,-170,-376,-376,-376,-170,-170,-170,-170,-170,-376,-170,-376,-170,-376,-376,-376,-376,-170,-170,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,-376,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,-378,96,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,5,2,4,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,343,341,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,342,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,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,121,-44,-44,-44,-44,-44,120,90,91,-44,-44,-44,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,344,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,345,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,3,36,3,140,346,158,347,44,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,6,1,1,3,2,1,3,1,1,12,1,5,1,3,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,348,349,350,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,-291,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,-306,3,124,44,2,352,351,353,11,32,15,2,33,1,2,25,1,10,2,49,150,153,98,151,155,154,193,152,93,354,192,11,32,15,2,33,1,2,25,1,10,2,49,150,153,98,151,155,154,193,152,93,355,192,3,36,3,130,356,158,357,4,68,56,44,2,358,-344,-344,-344,5,68,8,48,44,2,-342,359,-342,-342,-342,23,39,83,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,360,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,3,174,2,1,361,362,363,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,-198,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,364,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,60,1,5,27,2,1,2,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-201,-201,-170,-201,365,-170,158,-201,-170,-170,-170,-170,-170,-201,-201,-170,-201,-201,-201,-170,-170,-170,-170,-170,-201,-170,-201,-170,-201,-201,-201,-201,366,-170,-170,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,-201,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,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,120,-298,-298,-298,-298,-298,-298,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,2,47,74,367,93,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,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,120,-50,-50,-50,-50,-50,-50,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,2,47,74,368,93,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,369,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,3,33,3,3,370,371,158,9,1,5,29,4,1,21,7,16,78,-367,-367,-367,-367,-367,-367,-367,-367,-367,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,-398,31,1,5,29,4,1,21,7,16,38,40,1,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-116,-116,-116,-116,-116,-116,-116,-116,121,-116,120,-116,-116,-116,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,2,47,74,372,93,13,1,5,29,4,1,21,7,16,78,2,1,17,1,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,-205,2,48,20,373,374,1,48,375,7,32,7,10,76,9,1,2,380,379,98,376,377,378,381,2,48,20,-221,-221,1,136,382,7,32,7,10,76,12,3,2,387,386,98,383,388,384,385,13,1,5,29,4,1,21,7,16,78,2,1,17,1,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,-225,13,1,5,29,4,1,21,7,16,78,2,1,17,1,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,-226,1,76,389,95,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,5,2,4,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,390,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,391,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,1,48,392,2,6,156,101,393,99,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,5,6,1,1,1,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,394,3,4,5,6,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,24,25,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,39,40,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,41,42,62,43,44,45,47,48,31,6,29,4,1,28,16,2,36,28,1,12,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-272,-272,-272,-272,-272,-272,306,121,395,305,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,58,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,-257,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,5,6,1,1,1,1,2,3,1,1,1,1,6,1,1,1,3,1,1,1,1,1,1,1,7,1,1,1,1,2,1,1,1,3,8,1,2,1,1,4,1,1,3,1,1,1,1,1,1,7,2,8,7,6,2,2,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,336,232,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,24,25,60,67,98,68,94,95,99,100,70,96,97,34,230,31,69,71,72,73,74,75,87,77,396,81,234,32,37,36,78,79,63,39,40,84,85,66,233,49,33,35,38,82,83,93,56,58,64,65,80,398,397,53,59,76,54,90,91,55,92,46,57,51,88,52,89,41,42,62,43,44,45,47,48,9,6,29,4,1,28,16,24,17,24,-125,-125,-125,-125,400,-125,401,-125,399,56,6,5,20,8,1,3,3,3,4,2,1,7,1,4,2,1,1,1,1,1,8,1,1,1,5,3,8,1,3,1,12,1,1,1,7,2,8,7,10,4,1,3,1,2,4,2,6,2,3,1,1,1,1,1,1,1,402,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,-285,5,6,33,1,28,16,-276,-276,-276,-276,-276,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,5,2,4,1,1,1,1,2,3,1,1,1,1,6,1,1,1,3,1,1,1,1,1,1,1,7,1,2,1,2,1,1,1,3,8,1,2,1,1,4,1,1,3,1,1,1,1,1,1,7,2,8,7,1,1,4,1,1,2,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,336,232,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,229,50,24,25,60,67,98,68,94,95,99,100,70,96,97,34,230,31,69,71,72,73,74,75,87,77,81,234,32,37,36,78,79,63,39,40,84,85,66,233,49,33,35,38,82,83,93,56,58,64,65,80,404,403,231,228,227,53,59,76,54,90,91,55,92,46,57,51,88,52,89,41,42,62,43,44,45,47,48,56,6,5,20,8,1,3,3,3,4,2,1,7,1,4,2,1,1,1,1,1,8,1,1,1,5,3,8,1,3,1,12,1,1,1,7,2,8,7,10,4,1,3,1,2,4,2,6,2,3,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,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,-287,5,6,33,1,28,16,-281,-281,-281,-281,-281,6,6,29,4,1,28,16,-273,-273,-273,-273,-273,-273,6,6,29,4,1,28,16,-274,-274,-274,-274,-274,-274,100,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,3,2,2,1,3,3,1,2,3,1,1,1,1,6,1,1,1,3,1,1,1,1,1,1,1,7,1,1,1,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,-275,405,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,-275,30,-275,-275,50,60,67,98,68,94,95,99,100,70,96,97,34,-275,31,69,71,72,73,74,75,87,77,-275,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,54,1,5,27,2,4,1,15,1,5,5,2,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,-248,2,50,1,406,241,95,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,5,2,4,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,407,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,408,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,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,3,2,2,4,1,1,1,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,1,2,1,1,1,3,8,1,2,1,1,4,1,1,3,1,1,1,1,1,1,7,2,8,6,1,6,4,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,336,232,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,409,30,412,50,24,25,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,234,32,37,36,78,79,63,39,40,84,85,66,233,49,33,35,38,82,83,93,56,58,64,65,410,80,411,53,59,76,54,90,91,55,92,46,57,51,88,52,89,41,42,62,43,44,45,47,48,54,1,5,27,2,4,1,15,1,5,5,2,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,-249,62,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,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,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,-256,62,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,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,-56,-56,-56,-56,-56,-56,-56,2,50,1,413,241,2,50,1,414,241,24,36,3,83,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,415,158,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,24,36,3,83,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,416,158,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,-302,121,-302,-302,417,-302,-302,120,90,91,-302,-302,-302,-302,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,-304,121,-304,-304,418,-304,-304,120,90,91,-304,-304,-304,-304,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,-310,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,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,121,-311,-311,-311,-311,-311,120,90,91,-311,-311,-311,-311,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,6,6,33,1,28,12,45,-82,-82,-82,-82,419,-82,8,6,29,4,1,28,16,24,17,-125,-125,-125,-125,421,-125,420,-125,7,6,33,1,28,8,4,45,-91,-91,-91,-91,422,-91,-91,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,423,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,3,50,1,32,240,241,424,6,6,33,1,28,12,45,-94,-94,-94,-94,-94,-94,5,6,33,1,28,57,-193,-193,-193,-193,-193,15,6,27,6,1,28,8,4,15,1,1,1,1,2,24,19,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,-88,15,6,27,6,1,28,8,4,15,1,1,1,1,2,24,19,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,-89,15,6,27,6,1,28,8,4,15,1,1,1,1,2,24,19,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,-90,5,6,33,1,28,57,-83,-83,-83,-83,-83,17,32,15,2,1,1,30,1,3,2,1,1,1,1,3,27,25,15,257,427,98,258,241,425,259,81,426,428,429,430,431,432,93,80,76,54,1,5,27,2,4,1,15,1,5,5,2,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-177,-177,-177,-177,-177,-177,-177,-177,-177,433,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,-177,58,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,-170,6,54,1,1,2,1,1,267,99,100,434,435,266,4,55,1,2,2,-61,-61,-61,-61,101,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,5,2,4,1,1,1,1,2,3,1,1,1,1,5,1,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,436,3,4,5,6,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,437,50,24,25,60,67,98,68,94,95,99,100,438,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,39,40,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,41,42,62,43,44,45,47,48,4,55,1,2,2,-66,-66,-66,-66,5,1,5,34,21,101,-4,-4,-4,-4,-4,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,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,120,-380,-380,-380,-380,-380,-380,119,-380,-380,102,105,106,-380,-380,-380,-380,-380,-380,-380,114,115,-380,-380,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,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,120,-381,-381,-381,-381,-381,-381,119,-381,-381,102,105,106,-381,-381,-381,-381,-381,-381,-381,114,115,-381,-381,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,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,120,-382,-382,-382,-382,-382,-382,119,-382,-382,102,-382,106,-382,-382,-382,-382,-382,-382,-382,114,115,-382,-382,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,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,120,-383,-383,-383,-383,-383,-383,119,-383,-383,102,-383,106,-383,-383,-383,-383,-383,-383,-383,114,115,-383,-383,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,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,120,-384,-384,-384,-384,-384,-384,119,104,103,102,105,106,-384,-384,-384,-384,-384,-384,-384,114,115,-384,-384,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,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,120,-385,-385,-385,-385,-385,-385,119,104,103,102,105,106,107,-385,-385,-385,-385,-385,-385,114,115,116,-385,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,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,120,-386,-386,-386,-386,-386,-386,119,104,103,102,105,106,107,108,-386,-386,-386,-386,-386,114,115,116,-386,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,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,120,-387,-387,-387,-387,-387,-387,119,104,103,102,105,106,107,108,109,-387,-387,-387,-387,114,115,116,-387,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,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,120,-388,-388,-388,-388,-388,-388,119,104,103,102,105,106,107,108,109,110,-388,-388,-388,114,115,116,-388,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,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,120,-389,-389,-389,-389,-389,-389,119,104,103,102,105,106,107,108,109,110,111,-389,-389,114,115,116,-389,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,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,120,-390,-390,-390,-390,-390,-390,119,104,103,102,105,106,107,108,109,110,111,112,-390,114,115,116,-390,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,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,121,-391,-391,-391,-391,-391,120,90,91,-391,-391,-391,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,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,121,-392,-392,-392,-392,-392,120,90,91,-392,-392,-392,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,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,120,-393,-393,-393,-393,-393,-393,119,104,103,102,105,106,107,-393,-393,-393,-393,-393,-393,114,115,-393,-393,23,80,42,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,439,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,-362,121,-362,-362,-362,-362,-362,120,90,91,-362,-362,-362,-362,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,-364,121,-364,-364,-364,-364,-364,120,90,91,-364,-364,-364,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,3,124,44,2,441,440,442,11,32,15,2,33,1,2,25,1,10,2,49,150,153,98,151,155,154,193,152,93,443,192,11,32,15,2,33,1,2,25,1,10,2,49,150,153,98,151,155,154,193,152,93,444,192,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,445,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,-340,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,-361,121,-361,-361,-361,-361,-361,120,90,91,-361,-361,-361,-361,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,-363,121,-363,-363,-363,-363,-363,120,90,91,-363,-363,-363,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,54,1,5,27,2,4,1,15,1,5,5,2,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,-245,-245,-245,-245,-245,-245,-245,-245,-245,-245,54,1,5,27,2,4,1,15,1,5,5,2,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,-246,-246,-246,-246,-246,-246,-246,-246,-246,-246,54,1,5,27,2,4,1,15,1,5,5,2,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,-247,62,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,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,-143,-143,-143,-143,-143,62,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,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,-144,-144,-144,-144,-144,62,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,-145,62,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,-146,26,86,14,22,28,1,12,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,306,446,121,447,305,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,98,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,1,2,1,1,1,3,8,1,2,1,1,4,2,1,2,1,1,1,1,1,1,7,2,8,7,4,1,5,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,448,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,306,32,37,36,78,79,63,165,166,84,85,66,49,449,33,35,38,82,83,93,56,58,64,65,80,303,305,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,1,100,450,1,100,451,96,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,5,3,3,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,6,2,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,452,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,-266,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,-266,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-73,-73,-73,-73,-73,-73,-73,-73,-73,453,-73,-73,-73,-73,-73,-73,-73,-73,-70,-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,52,11,20,9,3,3,3,4,2,1,7,1,6,1,1,1,1,1,8,2,6,3,6,2,1,3,1,12,1,1,1,7,2,8,7,10,4,1,3,1,2,4,2,6,2,3,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,-260,-260,-260,-260,-260,-260,-260,-260,-260,52,11,20,9,3,3,3,4,2,1,7,1,6,1,1,1,1,1,8,2,6,3,6,2,1,3,1,12,1,1,1,7,2,8,7,10,4,1,3,1,2,4,2,6,2,3,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,-261,-261,-261,-261,-261,-261,-261,-261,-261,99,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,5,2,4,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,1,2,1,1,1,3,8,1,2,1,1,4,2,1,2,1,1,1,1,1,1,7,2,8,7,4,1,5,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,454,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,455,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,306,32,37,36,78,79,63,165,166,84,85,66,49,456,33,35,38,82,83,93,56,58,64,65,80,303,305,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,95,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,5,2,4,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,457,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,458,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,62,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,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,-160,-160,-160,-160,-160,-160,-160,-160,-160,-160,62,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,-161,62,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,-162,62,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,-163,23,100,22,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,459,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,460,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,95,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,5,2,4,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,461,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,462,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,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,120,-79,-79,-79,-79,-79,-79,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,463,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,464,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,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,121,-32,-32,-32,-32,-32,120,90,91,-32,-32,-32,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,465,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,466,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,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,121,-35,-35,-35,-35,-35,120,90,91,-35,-35,-35,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,467,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,468,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,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,121,-38,-38,-38,-38,-38,120,90,91,-38,-38,-38,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,469,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,470,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,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,121,-41,-41,-41,-41,-41,120,90,91,-41,-41,-41,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,471,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,472,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,3,105,1,1,473,84,85,17,6,26,3,4,1,7,2,33,1,1,1,1,23,1,1,10,4,-126,150,-126,-126,-126,153,98,151,155,-126,154,149,474,148,152,93,-126,2,6,33,475,476,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,477,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,6,6,29,4,1,28,36,-134,-134,-134,-134,-134,-134,28,6,29,4,1,28,16,38,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-272,-272,-272,-272,-272,-272,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,57,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,7,1,3,2,1,3,1,1,5,2,5,1,5,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,-53,-53,-53,-53,-53,2,6,34,101,478,9,6,29,4,1,28,16,20,4,17,-125,-125,-125,-125,332,-125,479,333,-125,1,40,480,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,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,120,-395,-395,-395,-395,-395,-395,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,481,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,482,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,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,121,-45,-45,-45,-45,-45,120,90,91,-45,-45,-45,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,23,40,82,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,483,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,-359,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,484,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,7,4,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,485,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,-292,2,36,3,486,158,6,32,4,3,8,2,72,487,489,158,488,98,93,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,490,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,491,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,492,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,1,124,493,1,170,494,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,-325,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,495,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,10,32,15,2,33,1,2,25,1,10,51,150,153,98,151,155,154,193,152,93,496,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,497,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,3,174,2,1,498,362,363,4,40,135,1,1,499,500,501,363,3,40,135,2,-350,-350,-350,95,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,9,1,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,503,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,502,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,43,1,5,29,1,3,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-199,-199,-199,504,158,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,-199,120,-199,-199,-199,-199,-199,-199,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,-202,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,505,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,1,40,506,1,40,507,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,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,120,-52,-52,-52,-52,-52,-52,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,18,6,26,2,1,4,1,7,2,19,14,1,2,1,18,5,1,1,10,-127,150,508,-127,-127,-127,153,98,-127,151,155,154,149,-127,147,148,152,93,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,1,40,509,3,54,1,1,510,99,100,3,121,12,5,512,511,214,3,54,1,1,513,99,100,1,48,514,8,6,29,4,1,28,16,24,17,-125,-125,-125,-125,516,-125,515,-125,5,6,33,1,28,57,-212,-212,-212,-212,-212,6,32,7,10,85,1,2,380,379,98,517,378,381,6,6,33,1,28,57,11,-217,-217,-217,-217,-217,518,6,6,33,1,28,57,11,-219,-219,-219,-219,-219,519,2,32,17,520,98,14,1,5,29,4,1,8,13,7,16,78,2,1,17,1,-223,-223,-223,-223,-223,521,-223,-223,-223,-223,-223,-223,-223,-223,8,6,29,4,1,28,16,24,17,-125,-125,-125,-125,523,-125,522,-125,5,6,33,1,28,57,-235,-235,-235,-235,-235,6,32,7,10,88,3,2,387,386,98,388,524,385,6,6,33,1,28,57,11,-240,-240,-240,-240,-240,525,6,6,33,1,28,57,11,-243,-243,-243,-243,-243,526,96,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,5,2,4,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,528,527,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,529,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,31,1,5,29,4,1,21,7,16,38,40,1,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-230,-230,-230,-230,-230,-230,-230,-230,121,-230,120,90,91,-230,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,2,47,74,530,93,3,54,1,1,531,99,100,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,-300,2,6,34,101,532,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,533,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,58,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,-258,56,6,5,20,8,1,3,3,3,4,2,1,7,1,4,2,1,1,1,1,1,8,1,1,1,5,3,8,1,3,1,12,1,1,1,7,2,8,7,10,4,1,3,1,2,4,2,6,2,3,1,1,1,1,1,1,1,402,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,-286,5,6,33,1,28,16,-282,-282,-282,-282,-282,2,39,45,535,534,110,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,3,2,2,1,3,1,1,1,1,2,3,1,1,1,1,6,1,1,1,3,1,1,1,1,1,1,1,7,1,1,1,1,2,1,1,1,3,8,1,2,1,1,4,1,1,3,1,1,1,1,1,1,3,4,2,8,7,1,5,1,1,2,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,-126,336,232,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,-126,30,-126,-126,50,24,25,60,67,98,68,94,95,99,100,70,96,97,34,230,31,69,71,72,73,74,75,87,77,-126,81,234,32,37,36,78,79,63,39,40,84,85,66,233,49,33,35,38,82,83,93,56,-126,58,64,65,80,537,231,536,227,53,59,76,54,90,91,55,92,46,57,51,88,52,89,41,42,62,43,44,45,47,48,4,6,33,1,44,538,-283,-283,-283,56,6,5,20,8,1,3,3,3,4,2,1,7,1,4,2,1,1,1,1,1,8,1,1,1,5,3,8,1,3,1,12,1,1,1,7,2,8,7,10,4,1,3,1,2,4,2,6,2,3,1,1,1,1,1,1,1,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,-288,9,6,29,4,1,28,16,24,17,24,-125,-125,-125,-125,400,-125,401,-125,539,102,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,5,6,1,1,1,1,2,3,1,1,1,1,6,1,1,1,3,1,1,1,1,1,1,1,7,1,2,1,2,1,1,1,3,8,1,2,1,1,4,1,1,3,1,1,1,1,1,1,7,2,8,7,6,2,2,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,336,232,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,24,25,60,67,98,68,94,95,99,100,70,96,97,34,230,31,69,71,72,73,74,75,87,77,81,234,32,37,36,78,79,63,39,40,84,85,66,233,49,33,35,38,82,83,93,56,58,64,65,80,398,397,53,59,76,54,90,91,55,92,46,57,51,88,52,89,41,42,62,43,44,45,47,48,28,6,29,4,1,28,16,38,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-140,-140,-140,-140,-140,-140,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,-182,23,100,22,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,540,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,541,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,54,1,5,27,2,4,1,15,1,5,5,2,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,-252,8,6,29,4,1,28,16,24,17,-125,-125,-125,-125,543,-125,542,-125,5,6,29,4,1,28,-267,-267,-267,-267,-267,102,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,5,2,4,1,1,1,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,1,2,1,1,1,3,8,1,2,1,1,4,1,1,3,1,1,1,1,1,1,7,2,8,6,1,6,4,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,336,232,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,412,50,24,25,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,234,32,37,36,78,79,63,39,40,84,85,66,233,49,33,35,38,82,83,93,56,58,64,65,544,80,411,53,59,76,54,90,91,55,92,46,57,51,88,52,89,41,42,62,43,44,45,47,48,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,-185,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,-186,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,5,7,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,-354,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,5,7,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,545,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,-356,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,546,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,547,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,95,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,5,2,4,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,548,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,549,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,3,6,33,86,551,552,550,23,6,26,3,4,1,9,1,1,1,1,1,1,1,21,1,1,2,1,1,1,1,1,39,-126,257,-126,-126,-126,98,258,241,255,94,95,99,100,553,554,260,252,259,253,-126,254,261,-126,95,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,5,2,4,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,555,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,556,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,23,84,38,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,557,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,558,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,16,6,27,6,1,15,1,12,24,3,1,1,1,1,2,24,19,-95,-97,-95,-95,-250,-250,-95,559,-97,-97,-97,-97,-97,-97,-95,134,16,6,27,6,1,15,1,12,24,3,1,1,1,1,2,24,19,-96,-250,-96,-96,-250,-250,-96,560,561,562,563,564,565,566,-96,134,13,6,27,6,1,28,27,1,1,1,1,2,24,19,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,-98,13,6,27,6,1,28,27,1,1,1,1,2,24,19,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,-99,13,6,27,6,1,28,27,1,1,1,1,2,24,19,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,-100,13,6,27,6,1,28,27,1,1,1,1,2,24,19,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,-101,7,33,22,1,36,3,4,45,-250,-250,-250,567,236,237,134,2,33,60,238,568,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,-68,56,1,5,27,2,4,1,15,1,2,2,1,5,2,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,-60,4,55,1,2,2,-62,-62,-62,-62,2,6,55,101,569,99,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,5,6,1,1,1,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,570,3,4,5,6,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,24,25,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,39,40,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,41,42,62,43,44,45,47,48,4,55,1,2,2,-65,-65,-65,-65,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,571,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,572,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,573,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,574,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,1,124,575,1,170,576,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,577,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,62,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,-149,96,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,5,3,3,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,6,2,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,578,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,-264,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,-264,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,26,40,46,36,28,1,12,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,579,306,121,447,305,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,1,40,580,62,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,-151,62,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,-153,24,40,60,22,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-265,-265,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,581,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,26,86,14,22,28,1,12,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,306,582,121,447,305,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,98,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,1,2,1,1,1,3,8,1,2,1,1,4,2,1,2,1,1,1,1,1,1,7,2,8,7,4,1,5,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,583,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,306,32,37,36,78,79,63,165,166,84,85,66,49,584,33,35,38,82,83,93,56,58,64,65,80,303,305,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,1,100,585,23,100,22,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,586,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,587,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,62,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,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,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,-166,23,40,82,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,588,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,23,100,22,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,589,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,590,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,-80,120,-80,-80,-80,-80,-80,-80,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,23,40,82,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,591,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,-33,121,-33,-33,-33,-33,-33,120,90,91,-33,-33,-33,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,23,40,82,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,592,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,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,121,-36,-36,-36,-36,-36,120,90,91,-36,-36,-36,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,23,40,82,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,593,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,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,121,-39,-39,-39,-39,-39,120,90,91,-39,-39,-39,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,23,40,82,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,594,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,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,121,-42,-42,-42,-42,-42,120,90,91,-42,-42,-42,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,23,40,82,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,595,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,100,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,4,1,2,4,1,1,1,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,597,4,5,6,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,596,30,158,50,24,25,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,39,40,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,41,42,62,43,44,45,47,48,6,6,29,4,1,28,36,-129,-129,-129,-129,-129,-129,11,32,15,2,33,1,2,1,23,1,1,10,150,153,98,151,155,154,149,598,148,152,93,18,6,26,2,1,4,1,7,2,19,14,1,2,1,18,5,1,1,10,-127,150,599,-127,-127,-127,153,98,-127,151,155,154,149,-127,147,148,152,93,28,6,29,4,1,28,36,18,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-133,-133,-133,-133,-133,-133,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,57,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,7,1,3,2,1,3,1,1,5,2,5,1,5,1,3,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,3,105,1,1,600,84,85,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,-374,23,40,82,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,601,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,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,120,-397,-397,-397,-397,-397,-397,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,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,24,36,3,83,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,602,158,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,2,36,3,603,158,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,-293,2,36,3,604,158,2,36,3,605,158,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,7,4,2,1,3,1,1,12,1,5,1,3,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,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,-297,26,36,3,83,4,37,1,1,4,13,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,606,158,121,607,120,90,91,608,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,25,36,3,83,4,37,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,609,158,121,610,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,25,36,3,83,4,37,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,611,158,121,612,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,613,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,614,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,24,36,3,83,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,615,158,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,3,124,44,2,-345,-345,-345,26,68,54,2,39,1,1,3,2,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-343,121,-343,120,90,91,-343,-343,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,4,40,135,1,1,616,617,501,363,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,-348,2,36,3,618,158,3,40,135,2,-351,-351,-351,3,36,3,29,619,158,620,24,39,29,54,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-289,-289,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,-200,43,1,5,29,1,3,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-203,-203,-203,621,158,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,-203,120,-203,-203,-203,-203,-203,-203,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,-299,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,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,8,6,29,4,1,28,16,24,17,-125,622,-125,-125,332,-125,333,-125,13,1,5,29,4,1,21,7,16,78,2,1,17,1,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,-117,13,1,5,29,4,1,21,7,16,78,2,1,17,1,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,-206,1,48,623,6,32,7,10,85,1,2,380,379,98,624,378,381,13,1,5,29,4,1,21,7,16,78,2,1,17,1,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,-207,3,54,1,1,625,99,100,3,6,33,86,627,628,626,10,6,26,3,4,1,9,35,41,10,2,-126,380,-126,-126,-126,98,-126,-126,629,381,8,6,29,4,1,28,16,24,17,-125,-125,-125,-125,516,-125,630,-125,2,32,17,631,98,2,32,17,632,98,1,48,-222,3,54,1,1,633,99,100,3,6,33,86,635,636,634,10,6,26,3,4,1,9,35,41,12,5,-126,387,-126,-126,-126,98,-126,-126,388,637,8,6,29,4,1,28,16,24,17,-125,-125,-125,-125,523,-125,638,-125,3,32,17,88,639,98,640,2,32,17,641,98,31,1,5,29,4,1,21,7,16,38,40,1,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-227,-227,-227,-227,-227,-227,-227,-227,121,-227,120,-227,-227,-227,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,642,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,643,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,1,40,644,13,1,5,29,4,1,21,7,16,78,2,1,17,1,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,-232,1,162,645,23,84,38,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,646,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,58,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,-259,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,5,2,4,1,1,1,1,2,3,1,1,1,1,6,1,1,1,3,1,1,1,1,1,1,1,7,1,2,1,2,1,1,1,3,8,1,2,1,1,4,1,1,3,1,1,1,1,1,1,7,2,8,7,1,1,4,1,1,2,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,336,232,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,229,50,24,25,60,67,98,68,94,95,99,100,70,96,97,34,230,31,69,71,72,73,74,75,87,77,81,234,32,37,36,78,79,63,39,40,84,85,66,233,49,33,35,38,82,83,93,56,58,64,65,80,404,647,231,228,227,53,59,76,54,90,91,55,92,46,57,51,88,52,89,41,42,62,43,44,45,47,48,5,6,33,1,28,16,-277,-277,-277,-277,-277,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,5,2,1,3,1,1,1,1,2,3,1,1,1,1,6,1,1,1,3,1,1,1,1,1,1,1,7,1,1,1,1,2,1,1,1,3,8,1,2,1,1,4,1,1,3,1,1,1,1,1,1,7,2,8,7,6,2,2,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,336,232,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,-284,-284,50,24,25,60,67,98,68,94,95,99,100,70,96,97,34,230,31,69,71,72,73,74,75,87,77,-284,81,234,32,37,36,78,79,63,39,40,84,85,66,233,49,33,35,38,82,83,93,56,58,64,65,80,398,397,53,59,76,54,90,91,55,92,46,57,51,88,52,89,41,42,62,43,44,45,47,48,104,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,5,6,1,1,1,1,2,3,1,1,1,1,6,1,1,1,3,1,1,1,1,1,1,1,7,1,2,1,2,1,1,1,3,8,1,2,1,1,4,1,1,3,1,1,1,1,1,1,7,2,8,7,1,5,1,1,2,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,336,232,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,24,25,60,67,98,68,94,95,99,100,70,96,97,34,230,31,69,71,72,73,74,75,87,77,81,234,32,37,36,78,79,63,39,40,84,85,66,233,49,33,35,38,82,83,93,56,58,64,65,80,404,231,648,227,53,59,76,54,90,91,55,92,46,57,51,88,52,89,41,42,62,43,44,45,47,48,2,39,1,535,649,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,-183,23,40,82,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,650,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,3,6,29,4,652,651,653,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,3,2,2,1,3,1,1,1,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,1,1,1,2,1,1,1,3,8,1,2,1,1,4,1,1,3,1,1,1,1,1,1,3,4,2,8,7,6,4,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,-126,336,232,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,-126,30,-126,-126,50,24,25,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,-126,81,234,32,37,36,78,79,63,39,40,84,85,66,233,49,33,35,38,82,83,93,56,-126,58,64,65,80,654,53,59,76,54,90,91,55,92,46,57,51,88,52,89,41,42,62,43,44,45,47,48,8,6,29,4,1,28,16,24,17,-125,-125,-125,-125,543,-125,655,-125,2,36,3,656,158,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,-303,120,-303,-303,-303,-303,-303,-303,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,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,120,-305,-305,-305,-305,-305,-305,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,27,6,33,1,28,54,3,38,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-84,-84,-84,-84,657,-84,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,658,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,58,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,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,-191,-191,-191,-191,-191,17,32,17,1,1,1,1,1,1,1,21,1,1,2,1,1,2,1,257,98,258,241,255,94,95,99,100,659,554,260,252,259,253,254,261,23,6,26,7,1,9,1,1,1,1,1,1,1,12,9,1,1,2,1,1,2,1,39,3,-192,257,-192,-192,98,258,241,255,94,95,99,100,-192,256,554,260,252,259,253,254,261,-192,660,5,6,33,1,28,57,-194,-194,-194,-194,-194,6,6,33,1,28,12,45,-82,-82,-82,-82,661,-82,27,6,33,1,28,54,3,38,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-86,-86,-86,-86,121,-86,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,662,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,6,6,33,1,28,12,45,-92,-92,-92,-92,-92,-92,23,84,38,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,663,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,2,33,60,238,664,2,33,60,238,665,2,50,1,666,241,2,50,1,667,241,15,6,27,6,1,10,1,17,27,1,1,1,1,2,24,19,-110,-110,-110,-110,668,241,-110,-110,-110,-110,-110,-110,-110,-110,-110,15,6,27,6,1,10,1,17,27,1,1,1,1,2,24,19,-111,-111,-111,-111,669,241,-111,-111,-111,-111,-111,-111,-111,-111,-111,95,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,5,2,4,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,670,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,671,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,1,99,672,2,33,60,238,673,13,6,27,6,1,28,27,1,1,1,1,2,24,19,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,-103,4,55,1,2,2,-63,-63,-63,-63,2,6,34,101,674,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,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,120,-394,-394,-394,-394,-394,-394,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,-327,675,-327,-327,120,-327,-327,-327,676,-327,-327,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,-332,677,-332,-332,120,-332,-332,-332,-332,-332,-332,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,-336,678,-336,-336,120,-336,-336,-336,-336,-336,-336,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,679,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,680,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,-341,120,-341,-341,-341,-341,-341,-341,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,24,40,60,22,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-263,-263,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,1,100,681,1,100,682,23,100,22,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-69,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,62,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-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,-154,-154,-154,-154,26,40,46,36,28,1,12,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,683,306,121,447,305,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,1,40,684,62,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,-156,-156,-156,62,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,-158,-158,-158,-158,-158,-158,-158,23,40,82,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,685,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,1,100,686,62,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,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,-168,-168,-168,-168,-168,-168,-168,-168,-168,-168,23,40,82,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,687,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,-81,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,-34,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,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,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,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,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,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,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,-119,9,1,5,29,4,1,21,7,16,78,-121,-121,-121,-121,-121,-121,-121,-121,-121,6,6,29,4,1,28,36,-130,-130,-130,-130,-130,-130,8,6,29,4,1,28,16,24,17,-125,-125,-125,-125,332,-125,688,-125,2,36,3,596,158,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,5,7,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,-355,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,-294,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,7,4,2,1,3,1,1,12,1,5,1,3,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,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,-295,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,7,4,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,-296,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,689,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,690,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,-317,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,691,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,-321,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,692,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,25,36,3,83,4,37,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,693,158,121,694,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,25,36,3,83,4,37,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,695,158,121,696,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,-326,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,-346,2,36,3,697,158,1,40,698,4,6,34,135,2,699,-352,-352,-352,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,700,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,-204,2,36,3,701,158,3,54,1,1,702,99,100,8,6,29,4,1,28,16,24,17,-125,-125,-125,-125,516,-125,703,-125,13,1,5,29,4,1,21,7,16,78,2,1,17,1,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,-208,1,48,704,4,32,17,86,2,380,98,705,381,6,32,7,10,85,1,2,380,379,98,706,378,381,5,6,33,1,28,57,-213,-213,-213,-213,-213,3,6,33,1,627,628,707,5,6,33,1,28,57,-218,-218,-218,-218,-218,5,6,33,1,28,57,-220,-220,-220,-220,-220,13,1,5,29,4,1,21,7,16,78,2,1,17,1,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,-233,14,1,5,29,4,1,8,13,7,16,78,2,1,17,1,-224,-224,-224,-224,-224,708,-224,-224,-224,-224,-224,-224,-224,-224,4,32,17,88,5,387,98,388,709,6,32,7,10,88,3,2,387,386,98,388,710,385,5,6,33,1,28,57,-236,-236,-236,-236,-236,3,6,33,1,635,636,711,5,6,33,1,28,57,-241,-241,-241,-241,-241,5,6,33,1,28,57,-242,-242,-242,-242,-242,5,6,33,1,28,57,-244,-244,-244,-244,-244,31,1,5,29,4,1,21,7,16,38,40,1,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-228,-228,-228,-228,-228,-228,-228,-228,121,-228,120,-228,-228,-228,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,23,40,82,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,712,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,13,1,5,29,4,1,21,7,16,78,2,1,17,1,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,-231,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,-301,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,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,-262,-262,-262,-262,-262,-262,-262,-262,-262,-262,9,6,29,4,1,28,16,24,17,24,-125,-125,-125,-125,400,-125,401,-125,713,5,6,33,1,28,16,-278,-278,-278,-278,-278,5,6,33,1,28,16,-279,-279,-279,-279,-279,1,100,714,54,1,5,27,2,4,1,15,1,5,5,2,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,-253,100,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,5,6,1,1,1,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,1,2,1,1,1,3,8,1,2,1,1,4,1,1,3,1,1,1,1,1,1,7,2,8,7,6,4,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,336,232,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,24,25,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,234,32,37,36,78,79,63,39,40,84,85,66,233,49,33,35,38,82,83,93,56,58,64,65,80,715,53,59,76,54,90,91,55,92,46,57,51,88,52,89,41,42,62,43,44,45,47,48,102,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,5,2,4,1,1,1,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,1,2,1,1,1,3,8,1,2,1,1,4,1,1,3,1,1,1,1,1,1,7,2,8,6,1,6,4,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,336,232,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,412,50,24,25,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,234,32,37,36,78,79,63,39,40,84,85,66,233,49,33,35,38,82,83,93,56,58,64,65,716,80,411,53,59,76,54,90,91,55,92,46,57,51,88,52,89,41,42,62,43,44,45,47,48,5,6,29,4,1,28,-268,-268,-268,-268,-268,3,6,33,1,652,653,717,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,-357,14,32,15,2,33,1,2,25,1,5,5,2,4,44,1,150,153,98,151,77,154,193,152,289,93,718,719,288,192,23,40,82,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,720,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,5,6,33,1,28,57,-195,-195,-195,-195,-195,8,6,29,4,1,28,16,24,17,-125,-125,-125,-125,421,-125,721,-125,95,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,5,2,4,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,722,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,549,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,23,40,82,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,723,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,6,6,33,1,28,12,45,-93,-93,-93,-93,-93,-93,13,6,27,6,1,28,27,1,1,1,1,2,24,19,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,-104,13,6,27,6,1,28,27,1,1,1,1,2,24,19,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,-105,13,6,27,6,1,28,27,1,1,1,1,2,24,19,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,-106,13,6,27,6,1,28,27,1,1,1,1,2,24,19,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,-107,13,6,27,6,1,28,27,1,1,1,1,2,24,19,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,-108,13,6,27,6,1,28,27,1,1,1,1,2,24,19,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,-109,23,100,22,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,724,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,725,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,95,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,5,2,4,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,726,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,727,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,13,6,27,6,1,28,27,1,1,1,1,2,24,19,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,-102,1,61,728,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,729,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,730,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,731,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,732,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,-334,733,-334,-334,120,-334,-334,-334,-334,-334,-334,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,-338,734,-338,-338,120,-338,-338,-338,-338,-338,-338,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,62,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,-150,62,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,-152,1,100,735,1,100,736,1,100,737,62,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,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,-167,-167,-167,-167,-167,-167,-167,-167,-167,-167,1,100,738,3,6,33,1,475,476,739,25,36,3,83,41,1,1,4,13,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,740,158,121,120,90,91,741,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,25,36,3,83,4,37,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,742,158,121,743,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,24,36,3,83,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,744,158,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,24,36,3,83,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,745,158,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,-319,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,746,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,-323,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,747,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,1,40,748,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,-349,3,40,135,2,-353,-353,-353,24,39,29,54,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-290,-290,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,13,1,5,29,4,1,21,7,16,78,2,1,17,1,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,-210,3,6,33,86,627,628,749,3,54,1,1,750,99,100,5,6,33,1,28,57,-214,-214,-214,-214,-214,8,6,29,4,1,28,16,24,17,-125,-125,-125,-125,516,-125,751,-125,5,6,33,1,28,57,-215,-215,-215,-215,-215,3,54,1,1,752,99,100,5,6,33,1,28,57,-237,-237,-237,-237,-237,8,6,29,4,1,28,16,24,17,-125,-125,-125,-125,523,-125,753,-125,5,6,33,1,28,57,-238,-238,-238,-238,-238,13,1,5,29,4,1,21,7,16,78,2,1,17,1,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,-229,2,39,1,535,754,53,1,5,27,2,4,1,15,1,5,7,12,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,-184,5,6,29,4,1,28,-269,-269,-269,-269,-269,8,6,29,4,1,28,16,24,17,-125,-125,-125,-125,543,-125,755,-125,5,6,29,4,1,28,-270,-270,-270,-270,-270,3,124,44,2,756,440,442,11,32,15,2,33,1,2,25,1,10,2,49,150,153,98,151,155,154,193,152,93,757,192,5,6,33,1,28,57,-85,-85,-85,-85,-85,3,6,33,1,551,552,758,27,6,33,1,28,54,3,38,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-84,-84,-84,-84,121,-84,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,5,6,33,1,28,57,-87,-87,-87,-87,-87,13,6,27,6,1,28,27,1,1,1,1,2,24,19,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,-112,23,40,82,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,759,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,23,100,22,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,760,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,761,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,4,55,1,2,2,-64,-64,-64,-64,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,-328,120,-328,-328,-328,762,-328,-328,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,-329,763,-329,-329,120,-329,-329,-329,-329,-329,-329,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,-333,120,-333,-333,-333,-333,-333,-333,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,-337,120,-337,-337,-337,-337,-337,-337,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,764,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,765,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,62,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-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,-155,-155,-155,-155,62,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,-157,-157,-157,62,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,-159,-159,-159,-159,-159,-159,-159,62,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,4,13,1,7,11,2,1,3,1,1,12,1,5,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,-169,6,6,29,4,1,28,36,-131,-131,-131,-131,-131,-131,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,766,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,-314,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,767,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,-318,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,-322,24,36,3,83,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,768,158,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,24,36,3,83,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,769,158,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,-347,1,48,770,13,1,5,29,4,1,21,7,16,78,2,1,17,1,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,-209,3,6,33,1,627,628,771,13,1,5,29,4,1,21,7,16,78,2,1,17,1,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,-234,3,6,33,1,635,636,772,5,6,33,1,28,16,-280,-280,-280,-280,-280,3,6,33,1,652,653,773,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,774,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,1,124,775,5,6,33,1,28,57,-196,-196,-196,-196,-196,1,100,776,13,6,27,6,1,28,27,1,1,1,1,2,24,19,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,-114,23,40,82,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,777,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,778,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,779,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,-335,120,-335,-335,-335,-335,-335,-335,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,-339,120,-339,-339,-339,-339,-339,-339,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,24,36,3,83,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,780,158,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,24,36,3,83,41,1,1,17,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,781,158,121,120,90,91,118,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,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,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,-324,3,54,1,1,782,99,100,5,6,33,1,28,57,-216,-216,-216,-216,-216,5,6,33,1,28,57,-239,-239,-239,-239,-239,5,6,29,4,1,28,-271,-271,-271,-271,-271,43,1,5,29,4,1,21,7,12,4,2,14,4,4,14,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-332,-332,-332,-332,-332,-332,785,-332,-332,-332,-332,-332,783,-332,-332,-332,784,-332,-332,120,-332,-332,-332,-332,-332,-332,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,786,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,13,6,27,6,1,28,27,1,1,1,1,2,24,19,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,-113,1,100,787,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,-330,120,-330,-330,-330,-330,-330,-330,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,42,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,-331,120,-331,-331,-331,-331,-331,-331,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,-315,41,1,5,29,4,1,21,7,12,4,2,14,4,18,2,1,1,25,11,2,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,-316,13,1,5,29,4,1,21,7,16,78,2,1,17,1,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,-211,1,125,788,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,789,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,6,6,29,4,1,44,41,-126,-126,-126,-126,-126,-126,43,1,5,29,4,1,21,7,12,4,2,14,4,4,14,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-334,-334,-334,-334,-334,-334,785,-334,-334,-334,-334,-334,790,-334,-334,-334,791,-334,-334,120,-334,-334,-334,-334,-334,-334,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,13,6,27,6,1,28,27,1,1,1,1,2,24,19,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,-115,58,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,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,-187,-187,-187,-187,-187,43,1,5,29,4,1,21,7,12,4,2,14,4,4,14,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-333,-333,-333,-333,-333,-333,785,-333,-333,-333,-333,-333,792,-333,-333,-333,-333,-333,-333,120,-333,-333,-333,-333,-333,-333,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,1,125,793,94,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,5,6,3,1,2,3,1,1,1,1,6,1,1,1,4,1,1,1,1,1,1,7,1,2,3,1,1,1,3,8,1,2,1,1,4,2,3,1,1,1,1,1,1,7,2,8,7,10,4,1,2,1,1,1,1,4,2,5,1,1,1,3,1,1,1,1,1,1,1,794,161,26,27,28,29,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,61,86,30,50,60,67,98,68,94,95,99,100,70,96,97,34,31,69,71,72,73,74,75,87,77,81,32,37,36,78,79,63,165,166,84,85,66,49,33,35,38,82,83,93,56,58,64,65,80,53,59,76,54,90,91,55,92,46,57,51,88,52,89,167,168,169,43,44,45,47,48,1,125,795,58,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,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,-189,-189,-189,-189,-189,43,1,5,29,4,1,21,7,12,4,2,14,4,4,14,2,1,1,25,11,1,1,1,3,1,1,12,1,5,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,-335,-335,-335,-335,-335,-335,785,-335,-335,-335,-335,-335,796,-335,-335,-335,-335,-335,-335,120,-335,-335,-335,-335,-335,-335,119,104,103,102,105,106,107,108,109,110,111,112,113,114,115,116,117,58,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,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,-188,-188,-188,-188,-188,1,125,797,58,1,5,27,2,3,1,1,1,1,1,12,1,5,7,8,4,4,2,9,1,1,1,1,1,1,3,11,7,2,1,1,17,1,7,11,2,1,3,1,1,12,1,5,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,-190,-190,-190,-190,-190],_=[],E=0,$,A,R,X;while(E<U.length){$=U[E++],A={},R=0,X=[];while($--)R+=U[E++],X.push(R);for(R of X)A[R]=U[E++];_.push(A)}return _})(),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,30,6,30,3,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,8,1,8,1,29,1,29,2,29,4,29,3,36,2,36,3,32,1,50,1,52,1,52,1,54,1,54,3,57,1,57,2,59,3,59,5,59,2,59,1,62,1,62,3,67,3,67,1,69,1,69,1,69,1,69,1,69,1,69,1,69,1,69,1,17,3,17,4,17,5,77,1,77,1,77,3,77,5,77,3,77,5,81,1,81,1,81,1,78,1,78,3,78,4,78,1,79,2,79,2,87,1,87,1,87,1,87,1,87,1,87,3,87,2,87,3,87,3,87,3,87,3,87,3,87,3,87,2,87,2,87,4,87,6,87,5,87,7,10,2,10,4,10,1,15,5,15,2,44,5,44,2,105,1,105,1,108,0,108,1,34,0,34,1,34,3,34,4,34,6,109,1,109,3,109,2,109,1,110,1,110,1,110,1,110,1,112,2,113,1,113,1,113,3,113,3,113,3,113,3,113,2,113,2,113,4,113,6,113,4,113,6,113,4,113,5,113,7,113,5,113,7,113,5,113,7,113,3,113,3,113,3,113,3,113,2,113,2,113,4,113,6,113,5,113,7,37,1,37,1,37,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,14,1,89,3,89,4,89,6,118,3,118,3,47,10,47,12,47,11,47,13,47,4,128,0,128,1,128,3,128,4,128,6,27,1,27,2,27,3,27,4,27,2,27,3,27,4,27,5,12,2,12,4,12,4,12,5,12,7,12,6,12,9,134,1,134,3,134,4,134,4,134,6,135,1,135,3,135,1,135,3,132,1,133,3,13,3,13,5,13,2,13,2,13,4,13,5,13,6,13,3,13,5,13,4,13,5,13,7,140,1,140,3,140,4,140,4,140,6,142,1,142,3,142,3,142,1,142,3,65,3,65,3,65,3,65,2,65,2,92,0,92,1,93,2,93,4,90,1,90,1,82,2,111,2,111,3,111,4,150,1,150,1,116,5,114,3,114,2,114,2,114,1,145,1,145,3,145,4,145,4,145,6,152,1,152,1,152,1,152,1,148,1,148,3,148,4,148,4,148,6,153,1,153,2,149,1,149,2,147,1,147,2,154,1,154,2,155,1,155,3,23,2,23,3,23,4,23,5,157,3,157,3,157,2,28,2,28,4,88,3,88,5,163,2,163,4,163,2,163,4,24,2,24,2,24,2,24,1,166,2,166,2,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,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,3,25,5,172,1,172,3,123,1,123,3,26,5,26,7,26,4,26,6,174,1,174,2,176,3,176,4,178,3,178,5,180,3,180,5,22,1,22,3,22,1,22,3,22,3,22,3,22,3,45,2,45,2,45,2,16,2,16,2,16,2,16,2,16,2,16,2,16,4,16,2,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,5,16,3,16,5,16,4,117,2],ruleActions:(U,_,E,$)=>{let A=_,R=_.length-1;switch(U){case 1:return["program"];case 2:return["program",...A[R]];case 3:case 61:case 128:case 193:case 212:case 235:case 267:case 281:case 285:case 344:case 350:return[A[R]];case 4:case 129:case 194:case 213:case 236:case 268:return[...A[R-2],A[R]];case 5:case 63:case 288:return A[R-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 47:case 48:case 55:case 56:case 57:case 58:case 59:case 66:case 67:case 71:case 72:case 73:case 76:case 77:case 78:case 83:case 88:case 89:case 90:case 91:case 94:case 97:case 98:case 99:case 100:case 101:case 123:case 124:case 125:case 126:case 132:case 136:case 137:case 138:case 139:case 141:case 142:case 170:case 171:case 172:case 173:case 174:case 175:case 176:case 177:case 178:case 179:case 180:case 181:case 217:case 219:case 221:case 240:case 243:case 272:case 273:case 274:case 276:case 289:case 309:case 342:case 358:case 360:return A[R];case 30:return["def",A[R-4],A[R-2],A[R]];case 31:return["def",A[R-1],[],A[R]];case 32:return["state",A[R-2],A[R]];case 33:return["state",A[R-3],A[R]];case 34:return["state",A[R-4],A[R-1]];case 35:return["computed",A[R-2],A[R]];case 36:return["computed",A[R-3],A[R]];case 37:return["computed",A[R-4],A[R-1]];case 38:return["readonly",A[R-2],A[R]];case 39:return["readonly",A[R-3],A[R]];case 40:return["readonly",A[R-4],A[R-1]];case 41:return["effect",A[R-2],A[R]];case 42:return["effect",A[R-3],A[R]];case 43:return["effect",A[R-4],A[R-1]];case 44:case 45:return["effect",null,A[R]];case 46:return["effect",null,A[R-1]];case 49:return["yield"];case 50:return["yield",A[R]];case 51:return["yield",A[R-1]];case 52:return["yield-from",A[R]];case 53:return["block"];case 54:return["block",...A[R-1]];case 60:return["str",...A[R-1]];case 62:case 282:case 286:case 351:return[...A[R-1],A[R]];case 64:case 215:case 238:case 253:case 270:return A[R-2];case 65:return"";case 68:return["regex",A[R-1]];case 69:return["regex-index",A[R-2],A[R]];case 70:return["regex-index",A[R],null];case 74:return"undefined";case 75:return"null";case 79:return["=",A[R-2],A[R]];case 80:return["=",A[R-3],A[R]];case 81:return["=",A[R-4],A[R-1]];case 82:return[A[R],A[R],null];case 84:return[A[R-2],A[R],":"];case 85:return[A[R-4],A[R-1],":"];case 86:return[A[R-2],A[R],"="];case 87:return[A[R-4],A[R-1],"="];case 92:return["dynamicKey",A[R-1]];case 93:return["[]","this",A[R-1]];case 95:case 96:case 140:return["...",A[R]];case 102:case 248:return["super",...A[R]];case 103:case 249:return["import",...A[R]];case 104:case 105:return[A[R-2],...A[R]];case 106:case 143:case 160:return[".",A[R-2],A[R]];case 107:case 144:case 161:return["?.",A[R-2],A[R]];case 108:case 145:case 162:return["::",A[R-2],A[R]];case 109:case 146:case 163:return["?::",A[R-2],A[R]];case 110:case 147:case 164:return["::",A[R-1],"prototype"];case 111:case 148:case 165:return["?::",A[R-1],"prototype"];case 112:case 149:case 151:case 166:return["[]",A[R-3],A[R-1]];case 113:case 150:case 152:case 167:return["[]",A[R-5],A[R-2]];case 114:case 154:case 156:case 168:return["?[]",A[R-4],A[R-1]];case 115:case 155:case 157:case 169:return["?[]",A[R-6],A[R-2]];case 116:return["return",A[R]];case 117:return["return",A[R-1]];case 118:return["return"];case 119:case 121:return[A[R-1],A[R-3],A[R]];case 120:case 122:return[A[R-1],[],A[R]];case 127:case 192:case 252:case 283:return[];case 130:case 195:case 214:case 237:case 269:return[...A[R-3],A[R]];case 131:case 196:case 216:case 239:case 271:return[...A[R-5],...A[R-2]];case 133:case 343:return["default",A[R-2],A[R]];case 134:return["rest",A[R]];case 135:return["expansion"];case 153:return[A[R-1][0],A[R-3],...A[R-1].slice(1)];case 158:return["optindex",A[R-4],A[R-1]];case 159:return["optindex",A[R-6],A[R-2]];case 182:return[".","super",A[R]];case 183:return["[]","super",A[R-1]];case 184:return["[]","super",A[R-2]];case 185:return[".","new",A[R]];case 186:return[".","import",A[R]];case 187:return["object-comprehension",A[R-8],A[R-6],[["for-of",A[R-4],A[R-2],!1]],[]];case 188:return["object-comprehension",A[R-10],A[R-8],[["for-of",A[R-6],A[R-4],!1]],[A[R-2]]];case 189:return["object-comprehension",A[R-9],A[R-7],[["for-of",A[R-4],A[R-2],!0]],[]];case 190:return["object-comprehension",A[R-11],A[R-9],[["for-of",A[R-6],A[R-4],!0]],[A[R-2]]];case 191:return["object",...A[R-2]];case 197:return["class",null,null];case 198:return["class",null,null,A[R]];case 199:return["class",null,A[R]];case 200:return["class",null,A[R-1],A[R]];case 201:return["class",A[R],null];case 202:return["class",A[R-1],null,A[R]];case 203:return["class",A[R-2],A[R]];case 204:return["class",A[R-3],A[R-1],A[R]];case 205:case 208:return["import","{}",A[R]];case 206:case 207:return["import",A[R-2],A[R]];case 209:return["import",A[R-4],A[R]];case 210:return["import",[A[R-4],A[R-2]],A[R]];case 211:return["import",[A[R-7],A[R-4]],A[R]];case 218:case 220:case 241:case 242:case 244:case 345:return[A[R-2],A[R]];case 222:return["*",A[R]];case 223:return["export","{}"];case 224:return["export",A[R-2]];case 225:case 226:return["export",A[R]];case 227:return["export",["=",A[R-2],A[R]]];case 228:return["export",["=",A[R-3],A[R]]];case 229:return["export",["=",A[R-4],A[R-1]]];case 230:return["export-default",A[R]];case 231:return["export-default",A[R-1]];case 232:return["export-all",A[R]];case 233:return["export-from","{}",A[R]];case 234:return["export-from",A[R-4],A[R]];case 245:return["tagged-template",A[R-2],A[R]];case 246:return A[R-1]?["?call",A[R-2],...A[R]]:[A[R-2],...A[R]];case 247:return["optcall",A[R-2],...A[R]];case 250:case 287:return null;case 251:return!0;case 254:case 255:return"this";case 256:return[".","this",A[R]];case 257:return["array"];case 258:return["array",...A[R-1]];case 259:return["array",...A[R-2],...A[R-1]];case 260:return"..";case 261:case 275:return"...";case 262:return[A[R-2],A[R-3],A[R-1]];case 263:case 382:case 384:case 385:case 393:case 395:return[A[R-1],A[R-2],A[R]];case 264:return[A[R],A[R-1],null];case 265:return[A[R-1],null,A[R]];case 266:return[A[R],null,null];case 277:return[...A[R-2],...A[R]];case 278:return[...A[R-3],...A[R]];case 279:return[...A[R-2],...A[R-1]];case 280:return[...A[R-5],...A[R-4],...A[R-2],...A[R-1]];case 284:return[...A[R]];case 290:return Array.isArray(A[R-2])?[...A[R-2],A[R]]:[A[R-2],A[R]];case 291:return["try",A[R]];case 292:return["try",A[R-1],A[R]];case 293:return["try",A[R-2],A[R]];case 294:return["try",A[R-3],A[R-2],A[R]];case 295:case 296:case 365:case 368:case 370:return[A[R-1],A[R]];case 297:return[null,A[R]];case 298:return["throw",A[R]];case 299:return["throw",A[R-1]];case 300:return A[R-1].length===1?A[R-1][0]:A[R-1];case 301:return A[R-2].length===1?A[R-2][0]:A[R-2];case 302:return["while",A[R]];case 303:return["while",A[R-2],A[R]];case 304:return["until",A[R]];case 305:return["until",A[R-2],A[R]];case 306:return A[R-1].length===2?[A[R-1][0],A[R-1][1],A[R]]:[A[R-1][0],A[R-1][1],A[R-1][2],A[R]];case 307:case 308:return A[R].length===2?[A[R][0],A[R][1],[A[R-1]]]:[A[R][0],A[R][1],A[R][2],[A[R-1]]];case 310:return["loop",A[R]];case 311:return["loop",[A[R]]];case 312:return["for-in",A[R-3],A[R-1],null,null,A[R]];case 313:return["for-in",A[R-5],A[R-3],null,A[R-1],A[R]];case 314:return["for-in",A[R-5],A[R-3],A[R-1],null,A[R]];case 315:return["for-in",A[R-7],A[R-5],A[R-1],A[R-3],A[R]];case 316:return["for-in",A[R-7],A[R-5],A[R-3],A[R-1],A[R]];case 317:return["for-of",A[R-3],A[R-1],!1,null,A[R]];case 318:return["for-of",A[R-5],A[R-3],!1,A[R-1],A[R]];case 319:return["for-of",A[R-3],A[R-1],!0,null,A[R]];case 320:return["for-of",A[R-5],A[R-3],!0,A[R-1],A[R]];case 321:return["for-from",A[R-3],A[R-1],!1,null,A[R]];case 322:return["for-from",A[R-5],A[R-3],!1,A[R-1],A[R]];case 323:return["for-from",A[R-3],A[R-1],!0,null,A[R]];case 324:return["for-from",A[R-5],A[R-3],!0,A[R-1],A[R]];case 325:return["for-in",[],A[R-1],null,null,A[R]];case 326:return["for-in",[],A[R-3],A[R-1],null,A[R]];case 327:return["comprehension",A[R-4],[["for-in",A[R-2],A[R],null]],[]];case 328:return["comprehension",A[R-6],[["for-in",A[R-4],A[R-2],null]],[A[R]]];case 329:return["comprehension",A[R-6],[["for-in",A[R-4],A[R-2],A[R]]],[]];case 330:return["comprehension",A[R-8],[["for-in",A[R-6],A[R-4],A[R]]],[A[R-2]]];case 331:return["comprehension",A[R-8],[["for-in",A[R-6],A[R-4],A[R-2]]],[A[R]]];case 332:return["comprehension",A[R-4],[["for-of",A[R-2],A[R],!1]],[]];case 333:return["comprehension",A[R-6],[["for-of",A[R-4],A[R-2],!1]],[A[R]]];case 334:return["comprehension",A[R-5],[["for-of",A[R-2],A[R],!0]],[]];case 335:return["comprehension",A[R-7],[["for-of",A[R-4],A[R-2],!0]],[A[R]]];case 336:return["comprehension",A[R-4],[["for-from",A[R-2],A[R],!1,null]],[]];case 337:return["comprehension",A[R-6],[["for-from",A[R-4],A[R-2],!1,null]],[A[R]]];case 338:return["comprehension",A[R-5],[["for-from",A[R-2],A[R],!0,null]],[]];case 339:return["comprehension",A[R-7],[["for-from",A[R-4],A[R-2],!0,null]],[A[R]]];case 340:return["comprehension",A[R-2],[["for-in",[],A[R],null]],[]];case 341:return["comprehension",A[R-4],[["for-in",[],A[R-2],A[R]]],[]];case 346:return["switch",A[R-3],A[R-1],null];case 347:return["switch",A[R-5],A[R-3],A[R-1]];case 348:return["switch",null,A[R-1],null];case 349:return["switch",null,A[R-3],A[R-1]];case 352:return["when",A[R-1],A[R]];case 353:return["when",A[R-2],A[R-1]];case 354:return["if",A[R-1],A[R]];case 355:return A[R-4].length===3?["if",A[R-4][1],A[R-4][2],["if",A[R-1],A[R]]]:[...A[R-4],["if",A[R-1],A[R]]];case 356:return["unless",A[R-1],A[R]];case 357:return["if",["!",A[R-3]],A[R-2],A[R]];case 359:return A[R-2].length===3?["if",A[R-2][1],A[R-2][2],A[R]]:[...A[R-2],A[R]];case 361:case 362:return["if",A[R],[A[R-2]]];case 363:case 364:return["unless",A[R],[A[R-2]]];case 366:case 367:case 369:case 398:return["do-iife",A[R]];case 371:return["-",A[R]];case 372:return["+",A[R]];case 373:return["await",A[R]];case 374:return["await",A[R-1]];case 375:return["--",A[R],!1];case 376:return["++",A[R],!1];case 377:return["--",A[R-1],!0];case 378:return["++",A[R-1],!0];case 379:return["?",A[R-1]];case 380:return["+",A[R-2],A[R]];case 381:return["-",A[R-2],A[R]];case 383:return["**",A[R-2],A[R]];case 386:return["&",A[R-2],A[R]];case 387:return["^",A[R-2],A[R]];case 388:return["|",A[R-2],A[R]];case 389:return["&&",A[R-2],A[R]];case 390:return["||",A[R-2],A[R]];case 391:return["??",A[R-2],A[R]];case 392:return["!?",A[R-2],A[R]];case 394:return["?:",A[R-4],A[R-2],A[R]];case 396:return[A[R-3],A[R-4],A[R-1]];case 397:return[A[R-2],A[R-3],A[R]]}},parseError(U,_){let E,$,A,R,X,Y,M;if(_.recoverable)return this.trace(U);else throw A=(_.line||0)+1,E=_.loc?.first_column||0,M=_.token?` (token: ${_.token})`:"",Y=_.text?` near '${_.text}'`:"",R=`line ${A}, column ${E}`,X=`Parse error at ${R}${M}${Y}: ${U}`,$=Error(X),$.hash=_,$},parse(U){let _,E,$,A,R,X,Y,M,F,D,G,J,Q,Z,O,K,H,W,q,N,z,S,L,I,T,j,w,P;[z,L,F]=[[0],[null],[]],[Z,w,T,I,W]=[this.parseTable,"",0,0,0],[E,_]=[2,1],M=Object.create(this.lexer),q={yy:{}};for(let V in this.yy)if(Object.hasOwn(this.yy,V)){let u=this.yy[V];q.yy[V]=u}if(M.setInput(U,q.yy),[q.yy.lexer,q.yy.parser]=[M,this],M.yylloc==null)M.yylloc={};j=M.yylloc,F.push(j),H=M.options?.ranges,this.parseError=typeof q.yy.parseError==="function"?q.yy.parseError:Object.getPrototypeOf(this).parseError,Y=()=>{let V;if(V=M.lex()||_,typeof V!=="number")V=this.symbolIds[V]||V;return V},[S,O,N,$,K,P,Q,X,J,R]=[null,null,null,null,null,{},null,null,null,null];while(!0){if(N=z[z.length-1],S==null)S=Y();if($=Z[N]!=null?Z[N][S]:void 0,$==null){if(A="",!W)R=(()=>{let V=[];for(let u in Z[N]){if(!Object.hasOwn(Z[N],u))continue;if(this.tokenNames[u]&&u>E)V.push(`'${this.tokenNames[u]}'`)}return V})();throw A=(()=>{if(M.showPosition)return`Parse error on line ${T+1}:
20
+ ${M.showPosition()}
21
+ Expecting ${R.join(", ")}, got '${this.tokenNames[S]||S}'`;else return`Parse error on line ${T+1}: Unexpected ${S===_?"end of input":`'${this.tokenNames[S]||S}'`}`,this.parseError(A,{text:M.match,token:this.tokenNames[S]||S,line:M.yylineno,loc:j,expected:R})})(),Error(A)}if($>0)if(z.push(S,$),L.push(M.yytext),F.push(M.yylloc),S=null,!O){if([I,w,T,j]=[M.yyleng,M.yytext,M.yylineno,M.yylloc],W>0)W--}else[S,O]=[O,null];else if($<0){if(X=this.ruleTable[-$*2+1],P.$=L[L.length-X],[D,G]=[F[F.length-(X||1)],F[F.length-1]],P._$={first_line:D.first_line,last_line:G.last_line,first_column:D.first_column,last_column:G.last_column},H)P._$.range=[D.range[0],G.range[1]];if(K=this.ruleActions.apply(P,[-$,L,F,q.yy]),K!=null)P.$=K;if(X)z.length-=X*2,L.length-=X,F.length-=X;z.push(this.ruleTable[-$*2]),L.push(P.$),F.push(P._$),J=Z[z[z.length-2]][z[z.length-1]],z.push(J)}else if($===0)return L[L.length-1]}},trace(){},yy:{}},n2=(U={})=>{let _=Object.create(r2);return Object.defineProperty(_,"yy",{value:{...U},enumerable:!1,writable:!0,configurable:!0}),_},_1=n2();var _3=_1.parse.bind(_1);var a2=new Set(["+","-","*","/","%","//","%%","**","==","!=","<",">","<=",">=","===","!==","&&","||","??","!?","not","&","|","^","<<",">>",">>>","=",".","?.","[]","?[]","::","?::","!","typeof","void","delete","new","...","rest","expansion","optindex","optcall"]);function K1(U){if(!Array.isArray(U)||U.length===0)return!1;let _=U[0]?.valueOf?.()??U[0];if(a2.has(_))return!0;return U.length<=4&&!U.some(Array.isArray)}function Y1(U){if(Array.isArray(U))return"(???)";if(typeof U==="number")return String(U);if(U===null)return"null";if(U==="")return'""';let _=String(U);if(_[0]==="/"&&_.indexOf(`
22
+ `)>=0){let E=_.match(/\/([gimsuvy]*)$/),$=E?E[1]:"",A=_.slice(1);if($)A=A.slice(0,-$.length-1);else A=A.slice(0,-1);return`"/${A.split(`
23
+ `).map((Y)=>Y.replace(/#.*$/,"").trim()).join("")}/${$}"`}return _}function a(U,_=0,E=!1){if(!Array.isArray(U))return Y1(U);if(E&&U[0]==="program"){let F=U[1],G=[Array.isArray(F)?"(program":"(program "+Y1(F)],J=Array.isArray(F)?1:2;for(let Q=J;Q<U.length;Q++){let Z=a(U[Q],2,!1);G.push(Z[0]==="("?" "+Z:Z)}return G.push(")"),G.join(`
24
+ `)}let $=U[0];if(K1(U)&&U.slice(1).every((F)=>!Array.isArray(F)||K1(F))){let D=`(${U.map((G)=>Array.isArray(G)?a(G,0,!1):Y1(G)).join(" ")})`;if(!D.includes(`
25
+ `))return" ".repeat(_)+D}let R=" ".repeat(_),X;if(Array.isArray($)){if(X=a($,0,!1),X.includes(`
26
26
  `))X=X.split(`
27
- `).map((Z,M)=>M===0?Z:" ".repeat(A+2)+Z).join(`
28
- `)}else X=Y1(E);let Y=[`${_}(${X}`],F=E==="block";for(let D=1;D<U.length;D++){let Z=U[D];if(!Array.isArray(Z))Y[Y.length-1]+=" "+Y1(Z);else{let M=K1(Z)&&Z.every((Q)=>!Array.isArray(Q)||K1(Q));if(!F&&M){let Q=r(Z,0,!1);if(!Q.includes(`
29
- `)){Y[Y.length-1]+=" "+Q;continue}}Y.push(r(Z,A+2,!1))}}return Y[Y.length-1]+=")",Y.join(`
30
- `)}class f{static ASSIGNMENT_OPS=new Set(["=","+=","-=","*=","/=","?=","&=","|=","^=","%=","**=","??=","&&=","||=","<<=",">>=",">>>="]);static NUMBER_LITERAL_REGEX=/^-?\d+(\.\d+)?([eE][+-]?\d+)?$/;static NUMBER_START_REGEX=/^-?\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","::":"generatePrototype","?::":"generateOptionalPrototype","[]":"generateIndexAccess","?[]":"generateSoakIndex",optindex:"generateOptIndex",optcall:"generateOptCall","regex-index":"generateRegexIndex",def:"generateDef","->":"generateThinArrow","=>":"generateFatArrow",return:"generateReturn",signal:"generateSignal",derived:"generateDerived",readonly:"generateReadonly",effect:"generateEffect",render:"generateRender",style:"generateStyle",component:"generateComponent",break:"generateBreak","break-if":"generateBreakIf",continue:"generateContinue","continue-if":"generateContinueIf","?":"generateExistential","?:":"generateTernary",loop:"generateLoop",await:"generateAwait",yield:"generateYield","yield-from":"generateYieldFrom",if:"generateIf",unless:"generateIf","for-in":"generateForIn","for-of":"generateForOf","for-from":"generateForFrom",while:"generateWhile",until:"generateUntil",try:"generateTry",throw:"generateThrow",switch:"generateSwitch",when:"generateWhen",comprehension:"generateComprehension","object-comprehension":"generateObjectComprehension",class:"generateClass",super:"generateSuper","?call":"generateSoakCall",import:"generateImport",export:"generateExport","export-default":"generateExportDefault","export-all":"generateExportAll","export-from":"generateExportFrom","do-iife":"generateDoIIFE",regex:"generateRegex","tagged-template":"generateTaggedTemplate",str:"generateString"};constructor(U={}){if(this.options=U,this.indentLevel=0,this.indentString=" ",this.comprehensionDepth=0,this.dataSection=U.dataSection,U.reactiveVars)this.reactiveVars=new Set(U.reactiveVars)}compile(U){return this.programVars=new Set,this.functionVars=new Map,this.helpers=new Set,this.collectProgramVariables(U),this.generate(U)}collectProgramVariables(U){if(!Array.isArray(U))return;let[A,...$]=U,E=A instanceof String?A.await:void 0,R=A instanceof String?A.invert:void 0;if(A instanceof String)A=A.valueOf();if(E!==void 0)U[0].await=E;if(R!==void 0)U[0].invert=R;if(Array.isArray(A)){U.forEach((_)=>this.collectProgramVariables(_));return}if(A==="export"||A==="export-default"||A==="export-all"||A==="export-from")return;if(A==="signal"||A==="derived"||A==="readonly"){let[_]=$,X=typeof _==="string"?_:_.valueOf();if(!this.reactiveVars)this.reactiveVars=new Set;this.reactiveVars.add(X);return}if(f.ASSIGNMENT_OPS.has(A)){let[_,X]=$;if(typeof _==="string"||_ instanceof String){let Y=_ instanceof String?_.valueOf():_;if(!this.reactiveVars?.has(Y))this.programVars.add(Y)}else if(Array.isArray(_)&&_[0]==="array")this.collectVarsFromArray(_,this.programVars);else if(Array.isArray(_)&&_[0]==="object")this.collectVarsFromObject(_,this.programVars);this.collectProgramVariables(X);return}if(A==="def"||A==="->"||A==="=>")return;if(A==="component")return;if(A==="if"){let[_,X,Y]=$;if(this.collectProgramVariables(_),this.collectProgramVariables(X),Y)this.collectProgramVariables(Y);return}if(A==="unless"){let[_,X]=$;this.collectProgramVariables(_),this.collectProgramVariables(X);return}if(A==="try"){if(this.collectProgramVariables($[0]),$.length>=2&&Array.isArray($[1])&&$[1].length===2&&$[1][0]!=="block"){let[_,X]=$[1];if(_&&Array.isArray(_)&&_[0]==="object")_.slice(1).forEach((Y)=>{if(Array.isArray(Y)&&Y.length===2){let F=Y[1];if(typeof F==="string")this.programVars.add(F)}});else if(_&&Array.isArray(_)&&_[0]==="array")_.slice(1).forEach((Y)=>{if(typeof Y==="string")this.programVars.add(Y)});this.collectProgramVariables(X)}if($.length===3)this.collectProgramVariables($[2]);else if($.length===2&&(!Array.isArray($[1])||$[1][0]==="block"))this.collectProgramVariables($[1]);return}$.forEach((_)=>this.collectProgramVariables(_))}collectFunctionVariables(U){let A=new Set,$=(E)=>{if(!Array.isArray(E))return;let[R,..._]=E;if(R instanceof String)R=R.valueOf();if(Array.isArray(R)){E.forEach((X)=>$(X));return}if(f.ASSIGNMENT_OPS.has(R)){let[X,Y]=_;if(typeof X==="string")A.add(X);else if(Array.isArray(X)&&X[0]==="array")this.collectVarsFromArray(X,A);else if(Array.isArray(X)&&X[0]==="object")this.collectVarsFromObject(X,A);$(Y);return}if(R==="def"||R==="->"||R==="=>")return;if(R==="try"){if($(_[0]),_.length>=2&&Array.isArray(_[1])&&_[1].length===2&&_[1][0]!=="block"){let[X,Y]=_[1];if(X&&Array.isArray(X)&&X[0]==="object")X.slice(1).forEach((F)=>{if(Array.isArray(F)&&F.length===2&&typeof F[1]==="string")A.add(F[1])});else if(X&&Array.isArray(X)&&X[0]==="array")X.slice(1).forEach((F)=>{if(typeof F==="string")A.add(F)});$(Y)}if(_.length===3)$(_[2]);else if(_.length===2&&(!Array.isArray(_[1])||_[1][0]==="block"))$(_[1]);return}_.forEach((X)=>$(X))};return $(U),A}generate(U,A="statement"){if(U instanceof String){if(U.await===!0)return`await ${U.valueOf()}()`;if(U.delimiter==="///"&&U.heregex){let X=U.valueOf(),Y=X.match(/^\/(.*)\/([gimsuvy]*)$/s);if(Y){let[,F,D]=Y;return`/${this.processHeregex(F)}/${D}`}return X}if(U.quote){let X=U.valueOf(),Y=U.quote;if(Y==='"""'||Y==="'''"){let D=this.extractStringContent(U);return D=D.replace(/`/g,"\\`").replace(/\${/g,"\\${"),`\`${D}\``}if(X[0]===Y)return X;let F=X.slice(1,-1);return`${Y}${F}${Y}`}U=U.valueOf()}if(typeof U==="string"){if(U.startsWith('"')||U.startsWith("'")||U.startsWith("`")){if(this.options.debug)console.warn("[Rip] Unexpected quoted primitive string (should be String object):",U);let X=U.slice(1,-1);if(X.includes(`
31
- `))return`\`${X.replace(/`/g,"\\`").replace(/\$\{/g,"\\${")}\``;let Y=X.includes("'")&&!X.includes('"')?'"':"'",F=X.replace(new RegExp(Y,"g"),`\\${Y}`);return`${Y}${F}${Y}`}if(this.reactiveVars?.has(U)&&!this.suppressReactiveUnwrap)return`${U}.value`;return U}if(typeof U==="number")return String(U);if(U===null||U===void 0)return"null";if(!Array.isArray(U))throw Error(`Invalid s-expression: ${JSON.stringify(U)}`);let[$,...E]=U,R=$ instanceof String?$.await:void 0;if($ instanceof String)$=$.valueOf();let _=f.GENERATORS[$];if(_)return this[_]($,E,A,U);if(typeof $==="string"&&!$.startsWith('"')&&!$.startsWith("'")){if(f.NUMBER_START_REGEX.test($))return $;if($==="super"&&this.currentMethodName&&this.currentMethodName!=="constructor"){let Z=E.map((M)=>this.unwrap(this.generate(M,"value"))).join(", ");return`super.${this.currentMethodName}(${Z})`}if(A==="statement"&&E.length===1){let Z=this.findPostfixConditional(E[0]);if(Z){let M;if(Z.parentOp){let H=Array.isArray(Z.value)&&Z.value.length===1?Z.value[0]:Z.value;M=[Z.parentOp,...Z.otherOperands,H]}else M=Array.isArray(Z.value)&&Z.value.length===1?Z.value[0]:Z.value;let Q=this.generate($,"value"),G=this.generate(Z.condition,"value"),J=this.generate(M,"value"),W=`${Q}(${J})`;if(Z.type==="unless")return`if (!${G}) ${W}`;else return`if (${G}) ${W}`}}let X=R===!0,Y=this.generate($,"value"),F=E.map((Z)=>this.unwrap(this.generate(Z,"value"))).join(", "),D=`${Y}(${F})`;return X?`await ${D}`:D}if(Array.isArray($)&&typeof $[0]==="string"){if(["=","+=","-=","*=","/=","%=","**=","&&=","||=","??=","if","unless","return","throw"].includes($[0]))return`(${U.map((F)=>this.generate(F,"value")).join(", ")})`}if(Array.isArray($)){if($[0]==="."&&($[2]==="new"||$[2]instanceof String&&$[2].valueOf()==="new")){let Z=$[1],M=this.generate(Z,"value"),Q=E.map((W)=>this.unwrap(this.generate(W,"value"))).join(", ");return`new ${Array.isArray(Z)?`(${M})`:M}(${Q})`}if(A==="statement"&&E.length===1){let Z=this.findPostfixConditional(E[0]);if(Z){let M;if(Z.parentOp){let H=Array.isArray(Z.value)&&Z.value.length===1?Z.value[0]:Z.value;M=[Z.parentOp,...Z.otherOperands,H]}else M=Array.isArray(Z.value)&&Z.value.length===1?Z.value[0]:Z.value;let Q=this.generate($,"value"),G=this.generate(Z.condition,"value"),J=this.generate(M,"value"),W=`${Q}(${J})`;if(Z.type==="unless")return`if (!${G}) ${W}`;else return`if (${G}) ${W}`}}let X=!1,Y;if(Array.isArray($)&&($[0]==="."||$[0]==="::")&&$[2]instanceof String&&$[2].await===!0){X=!0;let[Z,M]=$.slice(1),Q=this.generate(Z,"value"),G=f.NUMBER_LITERAL_REGEX.test(Q),J=Array.isArray(Z)&&Z[0]==="object",W=Array.isArray(Z)&&(Z[0]==="await"||Z[0]==="yield"),q=G||J||W?`(${Q})`:Q,O=M.valueOf();if($[0]==="::")Y=`${q}.prototype.${O}`;else Y=`${q}.${O}`}else Y=this.generate($,"value");let F=E.map((Z)=>this.unwrap(this.generate(Z,"value"))).join(", "),D=`${Y}(${F})`;return X?`await ${D}`:D}throw Error(`Unknown s-expression type: ${$}`)}generateProgram(U,A,$,E){let R="",_=[],X=[],Y=[];A.forEach((Z)=>{if(Array.isArray(Z)){let M=Z[0];if(M==="import")_.push(Z);else if(M==="export"||M==="export-default"||M==="export-all"||M==="export-from")X.push(Z);else Y.push(Z)}else Y.push(Z)});let F=Y.map((Z,M)=>{let Q=Y.length===1&&_.length===0&&X.length===0,G=Array.isArray(Z)&&Z[0]==="object",J=G&&Z.length===2&&Array.isArray(Z[1])&&Array.isArray(Z[1][1])&&Z[1][1][0]==="comprehension",W=Array.isArray(Z)&&(Z[0]==="comprehension"||Z[0]==="object-comprehension"||Z[0]==="do-iife"),H=this.programVars.size===0,q=Q&&G&&H&&!W&&!J,N=M===Y.length-1&&W,P;if(q)P=`(${this.generate(Z,"value")})`;else if(N)P=this.generate(Z,"value");else P=this.generate(Z,"statement");if(P&&!P.endsWith(";")){let K=Array.isArray(Z)?Z[0]:null;if(!["def","class","if","unless","for-in","for-of","for-from","while","until","loop","switch","try"].includes(K)||!P.endsWith("}"))return P+";"}return P}).join(`
32
- `),D=!1;if(_.length>0)R+=_.map((Z)=>this.addSemicolon(Z,this.generate(Z,"statement"))).join(`
33
- `),D=!0;if(this.programVars.size>0){let Z=Array.from(this.programVars).sort().join(", ");if(D)R+=`
34
- `;R+=`let ${Z};
35
- `,D=!0}if(this.helpers.has("slice"))R+=`const slice = [].slice;
36
- `,D=!0;if(this.helpers.has("modulo"))R+=`const modulo = (n, d) => { n = +n; d = +d; return (n % d + d) % d; };
37
- `,D=!0;if(this.helpers.has("toSearchable"))R+=`const toSearchable = (v, allowNewlines) => {
38
- `,R+=` if (typeof v === "string") return !allowNewlines && /[\\n\\r]/.test(v) ? null : v;
39
- `,R+=` if (v == null) return "";
40
- `,R+=` if (typeof v === "number" || typeof v === "bigint" || typeof v === "boolean") return String(v);
41
- `,R+=` if (typeof v === "symbol") return v.description || "";
42
- `,R+=` if (v instanceof Uint8Array || v instanceof ArrayBuffer) {
43
- `,R+=` return new TextDecoder().decode(v instanceof Uint8Array ? v : new Uint8Array(v));
44
- `,R+=` }
45
- `,R+=` if (Array.isArray(v)) return v.join(",");
46
- `,R+=` if (typeof v.toString === "function" && v.toString !== Object.prototype.toString) {
47
- `,R+=` try { return v.toString(); } catch { return ""; }
48
- `,R+=` }
49
- `,R+=` return "";
50
- `,R+=`};
51
- `,D=!0;if(this.usesReactivity&&!this.options.skipReactiveRuntime)R+=this.getReactiveRuntime(),D=!0;if(this.dataSection!==null&&this.dataSection!==void 0)R+=`var DATA;
52
- `,R+=`_setDataSection();
53
- `,D=!0;if(D&&R.length>0)R+=`
54
- `;if(R+=F,X.length>0)R+=`
55
- `+X.map((Z)=>this.addSemicolon(Z,this.generate(Z,"statement"))).join(`
56
- `);if(this.dataSection!==null&&this.dataSection!==void 0)R+=`
27
+ `).map((D,G)=>G===0?D:" ".repeat(_+2)+D).join(`
28
+ `)}else X=Y1($);let Y=[`${R}(${X}`],M=$==="block";for(let F=1;F<U.length;F++){let D=U[F];if(!Array.isArray(D))Y[Y.length-1]+=" "+Y1(D);else{let G=K1(D)&&D.every((J)=>!Array.isArray(J)||K1(J));if(!M&&G){let J=a(D,0,!1);if(!J.includes(`
29
+ `)){Y[Y.length-1]+=" "+J;continue}}Y.push(a(D,_+2,!1))}}return Y[Y.length-1]+=")",Y.join(`
30
+ `)}class k{static ASSIGNMENT_OPS=new Set(["=","+=","-=","*=","/=","?=","&=","|=","^=","%=","**=","??=","&&=","||=","<<=",">>=",">>>="]);static NUMBER_LITERAL_REGEX=/^-?\d+(\.\d+)?([eE][+-]?\d+)?$/;static NUMBER_START_REGEX=/^-?\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","::":"generatePrototype","?::":"generateOptionalPrototype","[]":"generateIndexAccess","?[]":"generateSoakIndex",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",loop:"generateLoop",await:"generateAwait",yield:"generateYield","yield-from":"generateYieldFrom",if:"generateIf",unless:"generateIf","for-in":"generateForIn","for-of":"generateForOf","for-from":"generateForFrom",while:"generateWhile",until:"generateUntil",try:"generateTry",throw:"generateThrow",switch:"generateSwitch",when:"generateWhen",comprehension:"generateComprehension","object-comprehension":"generateObjectComprehension",class:"generateClass",super:"generateSuper","?call":"generateSoakCall",import:"generateImport",export:"generateExport","export-default":"generateExportDefault","export-all":"generateExportAll","export-from":"generateExportFrom","do-iife":"generateDoIIFE",regex:"generateRegex","tagged-template":"generateTaggedTemplate",str:"generateString"};constructor(U={}){if(this.options=U,this.indentLevel=0,this.indentString=" ",this.comprehensionDepth=0,this.dataSection=U.dataSection,U.reactiveVars)this.reactiveVars=new Set(U.reactiveVars)}compile(U){return this.programVars=new Set,this.functionVars=new Map,this.helpers=new Set,this.collectProgramVariables(U),this.generate(U)}collectProgramVariables(U){if(!Array.isArray(U))return;let[_,...E]=U,$=_ instanceof String?_.await:void 0,A=_ instanceof String?_.invert:void 0;if(_ instanceof String)_=_.valueOf();if($!==void 0)U[0].await=$;if(A!==void 0)U[0].invert=A;if(Array.isArray(_)){U.forEach((R)=>this.collectProgramVariables(R));return}if(_==="export"||_==="export-default"||_==="export-all"||_==="export-from")return;if(_==="state"||_==="computed"||_==="readonly"){let[R]=E,X=typeof R==="string"?R:R.valueOf();if(!this.reactiveVars)this.reactiveVars=new Set;this.reactiveVars.add(X);return}if(k.ASSIGNMENT_OPS.has(_)){let[R,X]=E;if(typeof R==="string"||R instanceof String){let Y=R instanceof String?R.valueOf():R;if(!this.reactiveVars?.has(Y))this.programVars.add(Y)}else if(Array.isArray(R)&&R[0]==="array")this.collectVarsFromArray(R,this.programVars);else if(Array.isArray(R)&&R[0]==="object")this.collectVarsFromObject(R,this.programVars);this.collectProgramVariables(X);return}if(_==="def"||_==="->"||_==="=>")return;if(_==="if"){let[R,X,Y]=E;if(this.collectProgramVariables(R),this.collectProgramVariables(X),Y)this.collectProgramVariables(Y);return}if(_==="unless"){let[R,X]=E;this.collectProgramVariables(R),this.collectProgramVariables(X);return}if(_==="try"){if(this.collectProgramVariables(E[0]),E.length>=2&&Array.isArray(E[1])&&E[1].length===2&&E[1][0]!=="block"){let[R,X]=E[1];if(R&&Array.isArray(R)&&R[0]==="object")R.slice(1).forEach((Y)=>{if(Array.isArray(Y)&&Y.length===2){let M=Y[1];if(typeof M==="string")this.programVars.add(M)}});else if(R&&Array.isArray(R)&&R[0]==="array")R.slice(1).forEach((Y)=>{if(typeof Y==="string")this.programVars.add(Y)});this.collectProgramVariables(X)}if(E.length===3)this.collectProgramVariables(E[2]);else if(E.length===2&&(!Array.isArray(E[1])||E[1][0]==="block"))this.collectProgramVariables(E[1]);return}E.forEach((R)=>this.collectProgramVariables(R))}collectFunctionVariables(U){let _=new Set,E=($)=>{if(!Array.isArray($))return;let[A,...R]=$;if(A instanceof String)A=A.valueOf();if(Array.isArray(A)){$.forEach((X)=>E(X));return}if(k.ASSIGNMENT_OPS.has(A)){let[X,Y]=R;if(typeof X==="string")_.add(X);else if(Array.isArray(X)&&X[0]==="array")this.collectVarsFromArray(X,_);else if(Array.isArray(X)&&X[0]==="object")this.collectVarsFromObject(X,_);E(Y);return}if(A==="def"||A==="->"||A==="=>")return;if(A==="try"){if(E(R[0]),R.length>=2&&Array.isArray(R[1])&&R[1].length===2&&R[1][0]!=="block"){let[X,Y]=R[1];if(X&&Array.isArray(X)&&X[0]==="object")X.slice(1).forEach((M)=>{if(Array.isArray(M)&&M.length===2&&typeof M[1]==="string")_.add(M[1])});else if(X&&Array.isArray(X)&&X[0]==="array")X.slice(1).forEach((M)=>{if(typeof M==="string")_.add(M)});E(Y)}if(R.length===3)E(R[2]);else if(R.length===2&&(!Array.isArray(R[1])||R[1][0]==="block"))E(R[1]);return}R.forEach((X)=>E(X))};return E(U),_}generate(U,_="statement"){if(U instanceof String){if(U.await===!0)return`await ${U.valueOf()}()`;if(U.delimiter==="///"&&U.heregex){let X=U.valueOf(),Y=X.match(/^\/(.*)\/([gimsuvy]*)$/s);if(Y){let[,M,F]=Y;return`/${this.processHeregex(M)}/${F}`}return X}if(U.quote){let X=U.valueOf(),Y=U.quote;if(Y==='"""'||Y==="'''"){let F=this.extractStringContent(U);return F=F.replace(/`/g,"\\`").replace(/\${/g,"\\${"),`\`${F}\``}if(X[0]===Y)return X;let M=X.slice(1,-1);return`${Y}${M}${Y}`}U=U.valueOf()}if(typeof U==="string"){if(U.startsWith('"')||U.startsWith("'")||U.startsWith("`")){if(this.options.debug)console.warn("[Rip] Unexpected quoted primitive string (should be String object):",U);let X=U.slice(1,-1);if(X.includes(`
31
+ `))return`\`${X.replace(/`/g,"\\`").replace(/\$\{/g,"\\${")}\``;let Y=X.includes("'")&&!X.includes('"')?'"':"'",M=X.replace(new RegExp(Y,"g"),`\\${Y}`);return`${Y}${M}${Y}`}if(this.reactiveVars?.has(U)&&!this.suppressReactiveUnwrap)return`${U}.value`;return U}if(typeof U==="number")return String(U);if(U===null||U===void 0)return"null";if(!Array.isArray(U))throw Error(`Invalid s-expression: ${JSON.stringify(U)}`);let[E,...$]=U,A=E instanceof String?E.await:void 0;if(E instanceof String)E=E.valueOf();let R=k.GENERATORS[E];if(R)return this[R](E,$,_,U);if(typeof E==="string"&&!E.startsWith('"')&&!E.startsWith("'")){if(k.NUMBER_START_REGEX.test(E))return E;if(E==="super"&&this.currentMethodName&&this.currentMethodName!=="constructor"){let D=$.map((G)=>this.unwrap(this.generate(G,"value"))).join(", ");return`super.${this.currentMethodName}(${D})`}if(_==="statement"&&$.length===1){let D=this.findPostfixConditional($[0]);if(D){let G;if(D.parentOp){let K=Array.isArray(D.value)&&D.value.length===1?D.value[0]:D.value;G=[D.parentOp,...D.otherOperands,K]}else G=Array.isArray(D.value)&&D.value.length===1?D.value[0]:D.value;let J=this.generate(E,"value"),Q=this.generate(D.condition,"value"),Z=this.generate(G,"value"),O=`${J}(${Z})`;if(D.type==="unless")return`if (!${Q}) ${O}`;else return`if (${Q}) ${O}`}}let X=A===!0,Y=this.generate(E,"value"),M=$.map((D)=>this.unwrap(this.generate(D,"value"))).join(", "),F=`${Y}(${M})`;return X?`await ${F}`:F}if(Array.isArray(E)&&typeof E[0]==="string"){if(["=","+=","-=","*=","/=","%=","**=","&&=","||=","??=","if","unless","return","throw"].includes(E[0]))return`(${U.map((M)=>this.generate(M,"value")).join(", ")})`}if(Array.isArray(E)){if(E[0]==="."&&(E[2]==="new"||E[2]instanceof String&&E[2].valueOf()==="new")){let D=E[1],G=this.generate(D,"value"),J=$.map((O)=>this.unwrap(this.generate(O,"value"))).join(", ");return`new ${Array.isArray(D)?`(${G})`:G}(${J})`}if(_==="statement"&&$.length===1){let D=this.findPostfixConditional($[0]);if(D){let G;if(D.parentOp){let K=Array.isArray(D.value)&&D.value.length===1?D.value[0]:D.value;G=[D.parentOp,...D.otherOperands,K]}else G=Array.isArray(D.value)&&D.value.length===1?D.value[0]:D.value;let J=this.generate(E,"value"),Q=this.generate(D.condition,"value"),Z=this.generate(G,"value"),O=`${J}(${Z})`;if(D.type==="unless")return`if (!${Q}) ${O}`;else return`if (${Q}) ${O}`}}let X=!1,Y;if(Array.isArray(E)&&(E[0]==="."||E[0]==="::")&&E[2]instanceof String&&E[2].await===!0){X=!0;let[D,G]=E.slice(1),J=this.generate(D,"value"),Q=k.NUMBER_LITERAL_REGEX.test(J),Z=Array.isArray(D)&&D[0]==="object",O=Array.isArray(D)&&(D[0]==="await"||D[0]==="yield"),H=Q||Z||O?`(${J})`:J,W=G.valueOf();if(E[0]==="::")Y=`${H}.prototype.${W}`;else Y=`${H}.${W}`}else Y=this.generate(E,"value");let M=$.map((D)=>this.unwrap(this.generate(D,"value"))).join(", "),F=`${Y}(${M})`;return X?`await ${F}`:F}throw Error(`Unknown s-expression type: ${E}`)}generateProgram(U,_,E,$){let A="",R=[],X=[],Y=[];_.forEach((D)=>{if(Array.isArray(D)){let G=D[0];if(G==="import")R.push(D);else if(G==="export"||G==="export-default"||G==="export-all"||G==="export-from")X.push(D);else Y.push(D)}else Y.push(D)});let M=Y.map((D,G)=>{let J=Y.length===1&&R.length===0&&X.length===0,Q=Array.isArray(D)&&D[0]==="object",Z=Q&&D.length===2&&Array.isArray(D[1])&&Array.isArray(D[1][1])&&D[1][1][0]==="comprehension",O=Array.isArray(D)&&(D[0]==="comprehension"||D[0]==="object-comprehension"||D[0]==="do-iife"),K=this.programVars.size===0,H=J&&Q&&K&&!O&&!Z,q=G===Y.length-1&&O,N;if(H)N=`(${this.generate(D,"value")})`;else if(q)N=this.generate(D,"value");else N=this.generate(D,"statement");if(N&&!N.endsWith(";")){let z=Array.isArray(D)?D[0]:null;if(!["def","class","if","unless","for-in","for-of","for-from","while","until","loop","switch","try"].includes(z)||!N.endsWith("}"))return N+";"}return N}).join(`
32
+ `),F=!1;if(R.length>0)A+=R.map((D)=>this.addSemicolon(D,this.generate(D,"statement"))).join(`
33
+ `),F=!0;if(this.programVars.size>0){let D=Array.from(this.programVars).sort().join(", ");if(F)A+=`
34
+ `;A+=`let ${D};
35
+ `,F=!0}if(this.helpers.has("slice"))A+=`const slice = [].slice;
36
+ `,F=!0;if(this.helpers.has("modulo"))A+=`const modulo = (n, d) => { n = +n; d = +d; return (n % d + d) % d; };
37
+ `,F=!0;if(this.helpers.has("toSearchable"))A+=`const toSearchable = (v, allowNewlines) => {
38
+ `,A+=` if (typeof v === "string") return !allowNewlines && /[\\n\\r]/.test(v) ? null : v;
39
+ `,A+=` if (v == null) return "";
40
+ `,A+=` if (typeof v === "number" || typeof v === "bigint" || typeof v === "boolean") return String(v);
41
+ `,A+=` if (typeof v === "symbol") return v.description || "";
42
+ `,A+=` if (v instanceof Uint8Array || v instanceof ArrayBuffer) {
43
+ `,A+=` return new TextDecoder().decode(v instanceof Uint8Array ? v : new Uint8Array(v));
44
+ `,A+=` }
45
+ `,A+=` if (Array.isArray(v)) return v.join(",");
46
+ `,A+=` if (typeof v.toString === "function" && v.toString !== Object.prototype.toString) {
47
+ `,A+=` try { return v.toString(); } catch { return ""; }
48
+ `,A+=` }
49
+ `,A+=` return "";
50
+ `,A+=`};
51
+ `,F=!0;if(this.usesReactivity&&!this.options.skipReactiveRuntime)A+=this.getReactiveRuntime(),F=!0;if(this.dataSection!==null&&this.dataSection!==void 0)A+=`var DATA;
52
+ `,A+=`_setDataSection();
53
+ `,F=!0;if(F&&A.length>0)A+=`
54
+ `;if(A+=M,X.length>0)A+=`
55
+ `+X.map((D)=>this.addSemicolon(D,this.generate(D,"statement"))).join(`
56
+ `);if(this.dataSection!==null&&this.dataSection!==void 0)A+=`
57
57
 
58
58
  function _setDataSection() {
59
59
  DATA = ${JSON.stringify(this.dataSection)};
60
- }`;return R}generateBinaryOp(U,A,$,E){if((U==="+"||U==="-")&&A.length===1){let[X]=A;return`(${U}${this.generate(X,"value")})`}let[R,_]=A;if(U==="!?"){let X=this.generate(R,"value"),Y=this.generate(_,"value");return`(${X} !== undefined ? ${X} : ${Y})`}if(U==="==")U="===";if(U==="!=")U="!==";return`(${this.generate(R,"value")} ${U} ${this.generate(_,"value")})`}generateModulo(U,A,$,E){let[R,_]=A;return this.helpers.add("modulo"),`modulo(${this.generate(R,"value")}, ${this.generate(_,"value")})`}generateFloorDiv(U,A,$,E){let[R,_]=A;return`Math.floor(${this.generate(R,"value")} / ${this.generate(_,"value")})`}generateFloorDivAssign(U,A,$,E){let[R,_]=A,X=this.generate(R,"value"),Y=this.generate(_,"value");return`${X} = Math.floor(${X} / ${Y})`}generateAssignment(U,A,$,E){let[R,_]=A,X=U==="?="?"??=":U,Y=Array.isArray(_)&&(_[0]==="->"||_[0]==="=>"||_[0]==="def");if(R instanceof String&&R.await!==void 0&&!Y){let H=R.await===!0?"!":"&";throw Error(`Cannot use ${H} sigil in variable declaration '${R.valueOf()}'. Sigils are only for call-sites.`)}if(R instanceof String&&R.await===!0&&Y)this.nextFunctionIsVoid=!0;let D=Array.isArray(R)&&R[0]==="array"&&R.length===1,Z=Array.isArray(R)&&R[0]==="object"&&R.length===1;if(D||Z){let H=this.generate(_,"value");if(Z&&$==="statement")return`(${H})`;return H}if(Array.isArray(R)&&R[0]==="array"){let H=R.slice(1).findIndex((q)=>Array.isArray(q)&&q[0]==="..."||q==="...");if(H!==-1&&H<R.length-2){let q=R.slice(1),O=q.slice(H+1),N=O.length;if(N>0){let P=this.generate(_,"value"),w=q.slice(0,H).map((T)=>{if(T===",")return"";if(typeof T==="string")return T;return this.generate(T,"value")}).join(", "),B=O.map((T)=>{if(T===",")return"";if(typeof T==="string")return T;return this.generate(T,"value")}).join(", ");this.helpers.add("slice"),((T)=>{T.forEach((V)=>{if(V===","||V==="...")return;if(typeof V==="string")this.programVars.add(V);else if(Array.isArray(V)&&V[0]==="..."){if(typeof V[1]==="string")this.programVars.add(V[1])}})})(q);let S=q[H],I=Array.isArray(S)&&S[0]==="..."?S[1]:null,L=[];if(w)L.push(`[${w}] = ${P}`);if(I)L.push(`[...${I}] = ${P}.slice(${H}, -${N})`);return L.push(`[${B}] = slice.call(${P}, -${N})`),L.join(", ")}}}if($==="statement"&&U==="="&&Array.isArray(_)&&(_[0]==="||"||_[0]==="&&")&&_.length===3){let[H,q,O]=_;if(Array.isArray(O)&&(O[0]==="unless"||O[0]==="if")&&O.length===3){let[N,P,K]=O,w=Array.isArray(K)&&K.length===1?K[0]:K,B=[H,q,w],z=this.generate(R,"value"),S=this.generate(P,"value"),I=this.generate(B,"value");if(N==="unless")return`if (!${S}) ${z} = ${I}`;else return`if (${S}) ${z} = ${I}`}}if($==="statement"&&U==="="&&Array.isArray(_)&&_.length===3){let H=_[0],[q,O,N]=_,P=Array.isArray(N)&&N.length===1&&(!Array.isArray(N[0])||N[0][0]!=="block");if((H==="unless"||H==="if")&&P){let K=N;if(Array.isArray(N)&&N.length===1)K=N[0];let w=this.generate(R,"value"),B=this.unwrapLogical(this.generate(O,"value")),z=this.generate(K,"value");if(H==="unless"){if(B.includes(" ")||B.includes("===")||B.includes("!==")||B.includes(">")||B.includes("<")||B.includes("&&")||B.includes("||"))B=`(${B})`;return`if (!${B}) ${w} = ${z}`}else return`if (${B}) ${w} = ${z}`}}let M;if(R instanceof String&&R.await!==void 0)M=R.valueOf();else if(typeof R==="string"&&this.reactiveVars?.has(R))M=`${R}.value`;else this.suppressReactiveUnwrap=!0,M=this.generate(R,"value"),this.suppressReactiveUnwrap=!1;let Q=this.generate(_,"value");if(!(Array.isArray(_)&&_[0]==="object"))Q=this.unwrap(Q);let J=$==="value",W=$==="statement"&&Array.isArray(R)&&R[0]==="object";if(J||W)return`(${M} ${X} ${Q})`;return`${M} ${X} ${Q}`}generatePropertyAccess(U,A,$,E){let[R,_]=A;this.suppressReactiveUnwrap=!0;let X=this.generate(R,"value");this.suppressReactiveUnwrap=!1;let Y=f.NUMBER_LITERAL_REGEX.test(X),F=Array.isArray(R)&&R[0]==="object",D=Array.isArray(R)&&(R[0]==="await"||R[0]==="yield"),M=Y||F||D?`(${X})`:X;if(_ instanceof String&&_.await===!0){let G=_.valueOf();return`await ${M}.${G}()`}let Q=_ instanceof String?_.valueOf():_;return`${M}.${Q}`}generateOptionalProperty(U,A,$,E){let[R,_]=A;return`${this.generate(R,"value")}?.${_}`}generatePrototype(U,A,$,E){let[R,_]=A,X=this.generate(R,"value");if(_==="prototype")return`${X}.prototype`;let Y=_ instanceof String?_.valueOf():_;return`${X}.prototype.${Y}`}generateOptionalPrototype(U,A,$,E){let[R,_]=A,X=this.generate(R,"value");if(_==="prototype")return`(${X} != null ? ${X}.prototype : undefined)`;return`(${X} != null ? ${X}.prototype.${_} : undefined)`}generateRegexIndex(U,A,$,E){let[R,_,X]=A;this.helpers.add("toSearchable"),this.programVars.add("_");let Y=this.generate(R,"value"),F=this.generate(_,"value"),D=X!==null?this.generate(X,"value"):"0",M=F.includes("/m")?", true":"";return`(_ = toSearchable(${Y}${M}).match(${F})) && _[${D}]`}generateIndexAccess(U,A,$,E){let[R,_]=A;if(Array.isArray(_)&&(_[0]===".."||_[0]==="...")){let Y=_[0]==="..",F=this.generate(R,"value"),[D,Z]=_.slice(1);if(D===null&&Z===null)return`${F}.slice()`;else if(D===null){if(Y&&this.isNegativeOneLiteral(Z))return`${F}.slice(0)`;let M=this.generate(Z,"value");if(Y)return`${F}.slice(0, +${M} + 1 || 9e9)`;else return`${F}.slice(0, ${M})`}else if(Z===null){let M=this.generate(D,"value");return`${F}.slice(${M})`}else{let M=this.generate(D,"value");if(Y&&this.isNegativeOneLiteral(Z))return`${F}.slice(${M})`;let Q=this.generate(Z,"value");if(Y)return`${F}.slice(${M}, +${Q} + 1 || 9e9)`;else return`${F}.slice(${M}, ${Q})`}}let X=this.unwrap(this.generate(_,"value"));return`${this.generate(R,"value")}[${X}]`}generateSoakIndex(U,A,$,E){let[R,_]=A,X=this.generate(R,"value"),Y=this.generate(_,"value");return`(${X} != null ? ${X}[${Y}] : undefined)`}generateOptIndex(U,A,$,E){let[R,_]=A,X=this.generate(R,"value"),Y=this.generate(_,"value");return`${X}?.[${Y}]`}generateOptCall(U,A,$,E){let[R,..._]=A,X=this.generate(R,"value"),Y=_.map((F)=>this.generate(F,"value")).join(", ");return`${X}?.(${Y})`}generateDef(U,A,$,E){let[R,_,X]=A,Y=R instanceof String&&R.await===!0,F=R instanceof String?R.valueOf():R,D=this.generateParamList(_),Z=this.generateFunctionBody(X,_,Y),M=this.containsAwait(X),Q=this.containsYield(X);return`${M?"async ":""}function${Q?"*":""} ${F}(${D}) ${Z}`}generateThinArrow(U,A,$,E){let[R,_]=A,X=this.nextFunctionIsVoid||!1;this.nextFunctionIsVoid=!1;let Y=this.generateParamList(R),F=this.generateFunctionBody(_,R,X),D=this.containsAwait(_),Z=this.containsYield(_),G=`${D?"async ":""}function${Z?"*":""}(${Y}) ${F}`;return $==="value"?`(${G})`:G}generateFatArrow(U,A,$,E){let[R,_]=A,X=this.nextFunctionIsVoid||!1;this.nextFunctionIsVoid=!1;let Y=this.generateParamList(R),D=R.length===1&&typeof R[0]==="string"&&!Y.includes("=")&&!Y.includes("...")&&!Y.includes("[")&&!Y.includes("{")?Y:`(${Y})`,M=this.containsAwait(_)?"async ":"";if(!X){if(Array.isArray(_)&&_[0]==="block"&&_.length===2){let G=_[1];if(!Array.isArray(G)||G[0]!=="return")return`${M}${D} => ${this.generate(G,"value")}`}if(!Array.isArray(_)||_[0]!=="block")return`${M}${D} => ${this.generate(_,"value")}`}let Q=this.generateFunctionBody(_,R,X);return`${M}${D} => ${Q}`}generateReturn(U,A,$,E){if(A.length===0)return"return";let[R]=A;if(this.sideEffectOnly)return"return";if(Array.isArray(R)&&R[0]==="unless"){let[,_,X]=R,Y=Array.isArray(X)&&X.length===1?X[0]:X;return`if (!${this.generate(_,"value")}) return ${this.generate(Y,"value")}`}if(Array.isArray(R)&&R[0]==="if"){let[,_,X,...Y]=R;if(Y.length===0){let F=Array.isArray(X)&&X.length===1?X[0]:X;return`if (${this.generate(_,"value")}) return ${this.generate(F,"value")}`}}if(Array.isArray(R)&&R[0]==="new"&&Array.isArray(R[1])&&R[1][0]==="unless"){let[,_]=R,[,X,Y]=_,F=Array.isArray(Y)&&Y.length===1?Y[0]:Y;return`if (!${this.generate(X,"value")}) return ${this.generate(["new",F],"value")}`}return`return ${this.generate(R,"value")}`}generateSignal(U,A,$,E){let[R,_]=A;this.usesReactivity=!0;let X=typeof R==="string"?R:R.valueOf(),Y=this.generate(_,"value");if(!this.reactiveVars)this.reactiveVars=new Set;return this.reactiveVars.add(X),`const ${X} = __signal(${Y})`}generateDerived(U,A,$,E){let[R,_]=A;if(this.usesReactivity=!0,!this.reactiveVars)this.reactiveVars=new Set;let X=typeof R==="string"?R:R.valueOf();this.reactiveVars.add(X);let Y=this.generate(_,"value");return`const ${X} = __computed(() => ${Y})`}generateReadonly(U,A,$,E){let[R,_]=A,X=typeof R==="string"?R:R.valueOf(),Y=this.generate(_,"value");return`const ${X} = ${Y}`}generateEffect(U,A,$,E){let[R]=A;this.usesReactivity=!0;let _;if(Array.isArray(R)&&R[0]==="block"){let X=R.slice(1);_=`{
61
- ${this.withIndent(()=>this.formatStatements(X)).join(`
60
+ }`;return A}generateBinaryOp(U,_,E,$){if((U==="+"||U==="-")&&_.length===1){let[X]=_;return`(${U}${this.generate(X,"value")})`}let[A,R]=_;if(U==="!?"){let X=this.generate(A,"value"),Y=this.generate(R,"value");return`(${X} !== undefined ? ${X} : ${Y})`}if(U==="==")U="===";if(U==="!=")U="!==";return`(${this.generate(A,"value")} ${U} ${this.generate(R,"value")})`}generateModulo(U,_,E,$){let[A,R]=_;return this.helpers.add("modulo"),`modulo(${this.generate(A,"value")}, ${this.generate(R,"value")})`}generateFloorDiv(U,_,E,$){let[A,R]=_;return`Math.floor(${this.generate(A,"value")} / ${this.generate(R,"value")})`}generateFloorDivAssign(U,_,E,$){let[A,R]=_,X=this.generate(A,"value"),Y=this.generate(R,"value");return`${X} = Math.floor(${X} / ${Y})`}generateAssignment(U,_,E,$){let[A,R]=_,X=U==="?="?"??=":U,Y=Array.isArray(R)&&(R[0]==="->"||R[0]==="=>"||R[0]==="def");if(A instanceof String&&A.await!==void 0&&!Y){let K=A.await===!0?"!":"&";throw Error(`Cannot use ${K} sigil in variable declaration '${A.valueOf()}'. Sigils are only for call-sites.`)}if(A instanceof String&&A.await===!0&&Y)this.nextFunctionIsVoid=!0;let F=Array.isArray(A)&&A[0]==="array"&&A.length===1,D=Array.isArray(A)&&A[0]==="object"&&A.length===1;if(F||D){let K=this.generate(R,"value");if(D&&E==="statement")return`(${K})`;return K}if(Array.isArray(A)&&A[0]==="array"){let K=A.slice(1).findIndex((H)=>Array.isArray(H)&&H[0]==="..."||H==="...");if(K!==-1&&K<A.length-2){let H=A.slice(1),W=H.slice(K+1),q=W.length;if(q>0){let N=this.generate(R,"value"),S=H.slice(0,K).map((P)=>{if(P===",")return"";if(typeof P==="string")return P;return this.generate(P,"value")}).join(", "),L=W.map((P)=>{if(P===",")return"";if(typeof P==="string")return P;return this.generate(P,"value")}).join(", ");this.helpers.add("slice"),((P)=>{P.forEach((V)=>{if(V===","||V==="...")return;if(typeof V==="string")this.programVars.add(V);else if(Array.isArray(V)&&V[0]==="..."){if(typeof V[1]==="string")this.programVars.add(V[1])}})})(H);let T=H[K],j=Array.isArray(T)&&T[0]==="..."?T[1]:null,w=[];if(S)w.push(`[${S}] = ${N}`);if(j)w.push(`[...${j}] = ${N}.slice(${K}, -${q})`);return w.push(`[${L}] = slice.call(${N}, -${q})`),w.join(", ")}}}if(E==="statement"&&U==="="&&Array.isArray(R)&&(R[0]==="||"||R[0]==="&&")&&R.length===3){let[K,H,W]=R;if(Array.isArray(W)&&(W[0]==="unless"||W[0]==="if")&&W.length===3){let[q,N,z]=W,S=Array.isArray(z)&&z.length===1?z[0]:z,L=[K,H,S],I=this.generate(A,"value"),T=this.generate(N,"value"),j=this.generate(L,"value");if(q==="unless")return`if (!${T}) ${I} = ${j}`;else return`if (${T}) ${I} = ${j}`}}if(E==="statement"&&U==="="&&Array.isArray(R)&&R.length===3){let K=R[0],[H,W,q]=R,N=Array.isArray(q)&&q.length===1&&(!Array.isArray(q[0])||q[0][0]!=="block");if((K==="unless"||K==="if")&&N){let z=q;if(Array.isArray(q)&&q.length===1)z=q[0];let S=this.generate(A,"value"),L=this.unwrapLogical(this.generate(W,"value")),I=this.generate(z,"value");if(K==="unless"){if(L.includes(" ")||L.includes("===")||L.includes("!==")||L.includes(">")||L.includes("<")||L.includes("&&")||L.includes("||"))L=`(${L})`;return`if (!${L}) ${S} = ${I}`}else return`if (${L}) ${S} = ${I}`}}let G;if(A instanceof String&&A.await!==void 0)G=A.valueOf();else if(typeof A==="string"&&this.reactiveVars?.has(A))G=`${A}.value`;else this.suppressReactiveUnwrap=!0,G=this.generate(A,"value"),this.suppressReactiveUnwrap=!1;let J=this.generate(R,"value");if(!(Array.isArray(R)&&R[0]==="object"))J=this.unwrap(J);let Z=E==="value",O=E==="statement"&&Array.isArray(A)&&A[0]==="object";if(Z||O)return`(${G} ${X} ${J})`;return`${G} ${X} ${J}`}generatePropertyAccess(U,_,E,$){let[A,R]=_;this.suppressReactiveUnwrap=!0;let X=this.generate(A,"value");this.suppressReactiveUnwrap=!1;let Y=k.NUMBER_LITERAL_REGEX.test(X),M=Array.isArray(A)&&A[0]==="object",F=Array.isArray(A)&&(A[0]==="await"||A[0]==="yield"),G=Y||M||F?`(${X})`:X;if(R instanceof String&&R.await===!0){let Q=R.valueOf();return`await ${G}.${Q}()`}let J=R instanceof String?R.valueOf():R;return`${G}.${J}`}generateOptionalProperty(U,_,E,$){let[A,R]=_;return`${this.generate(A,"value")}?.${R}`}generatePrototype(U,_,E,$){let[A,R]=_,X=this.generate(A,"value");if(R==="prototype")return`${X}.prototype`;let Y=R instanceof String?R.valueOf():R;return`${X}.prototype.${Y}`}generateOptionalPrototype(U,_,E,$){let[A,R]=_,X=this.generate(A,"value");if(R==="prototype")return`(${X} != null ? ${X}.prototype : undefined)`;return`(${X} != null ? ${X}.prototype.${R} : undefined)`}generateRegexIndex(U,_,E,$){let[A,R,X]=_;this.helpers.add("toSearchable"),this.programVars.add("_");let Y=this.generate(A,"value"),M=this.generate(R,"value"),F=X!==null?this.generate(X,"value"):"0",G=M.includes("/m")?", true":"";return`(_ = toSearchable(${Y}${G}).match(${M})) && _[${F}]`}generateIndexAccess(U,_,E,$){let[A,R]=_;if(Array.isArray(R)&&(R[0]===".."||R[0]==="...")){let Y=R[0]==="..",M=this.generate(A,"value"),[F,D]=R.slice(1);if(F===null&&D===null)return`${M}.slice()`;else if(F===null){if(Y&&this.isNegativeOneLiteral(D))return`${M}.slice(0)`;let G=this.generate(D,"value");if(Y)return`${M}.slice(0, +${G} + 1 || 9e9)`;else return`${M}.slice(0, ${G})`}else if(D===null){let G=this.generate(F,"value");return`${M}.slice(${G})`}else{let G=this.generate(F,"value");if(Y&&this.isNegativeOneLiteral(D))return`${M}.slice(${G})`;let J=this.generate(D,"value");if(Y)return`${M}.slice(${G}, +${J} + 1 || 9e9)`;else return`${M}.slice(${G}, ${J})`}}let X=this.unwrap(this.generate(R,"value"));return`${this.generate(A,"value")}[${X}]`}generateSoakIndex(U,_,E,$){let[A,R]=_,X=this.generate(A,"value"),Y=this.generate(R,"value");return`(${X} != null ? ${X}[${Y}] : undefined)`}generateOptIndex(U,_,E,$){let[A,R]=_,X=this.generate(A,"value"),Y=this.generate(R,"value");return`${X}?.[${Y}]`}generateOptCall(U,_,E,$){let[A,...R]=_,X=this.generate(A,"value"),Y=R.map((M)=>this.generate(M,"value")).join(", ");return`${X}?.(${Y})`}generateDef(U,_,E,$){let[A,R,X]=_,Y=A instanceof String&&A.await===!0,M=A instanceof String?A.valueOf():A,F=this.generateParamList(R),D=this.generateFunctionBody(X,R,Y),G=this.containsAwait(X),J=this.containsYield(X);return`${G?"async ":""}function${J?"*":""} ${M}(${F}) ${D}`}generateThinArrow(U,_,E,$){let[A,R]=_,X=this.nextFunctionIsVoid||!1;this.nextFunctionIsVoid=!1;let Y=this.generateParamList(A),M=this.generateFunctionBody(R,A,X),F=this.containsAwait(R),D=this.containsYield(R),Q=`${F?"async ":""}function${D?"*":""}(${Y}) ${M}`;return E==="value"?`(${Q})`:Q}generateFatArrow(U,_,E,$){let[A,R]=_,X=this.nextFunctionIsVoid||!1;this.nextFunctionIsVoid=!1;let Y=this.generateParamList(A),F=A.length===1&&typeof A[0]==="string"&&!Y.includes("=")&&!Y.includes("...")&&!Y.includes("[")&&!Y.includes("{")?Y:`(${Y})`,G=this.containsAwait(R)?"async ":"";if(!X){if(Array.isArray(R)&&R[0]==="block"&&R.length===2){let Q=R[1];if(!Array.isArray(Q)||Q[0]!=="return")return`${G}${F} => ${this.generate(Q,"value")}`}if(!Array.isArray(R)||R[0]!=="block")return`${G}${F} => ${this.generate(R,"value")}`}let J=this.generateFunctionBody(R,A,X);return`${G}${F} => ${J}`}generateReturn(U,_,E,$){if(_.length===0)return"return";let[A]=_;if(this.sideEffectOnly)return"return";if(Array.isArray(A)&&A[0]==="unless"){let[,R,X]=A,Y=Array.isArray(X)&&X.length===1?X[0]:X;return`if (!${this.generate(R,"value")}) return ${this.generate(Y,"value")}`}if(Array.isArray(A)&&A[0]==="if"){let[,R,X,...Y]=A;if(Y.length===0){let M=Array.isArray(X)&&X.length===1?X[0]:X;return`if (${this.generate(R,"value")}) return ${this.generate(M,"value")}`}}if(Array.isArray(A)&&A[0]==="new"&&Array.isArray(A[1])&&A[1][0]==="unless"){let[,R]=A,[,X,Y]=R,M=Array.isArray(Y)&&Y.length===1?Y[0]:Y;return`if (!${this.generate(X,"value")}) return ${this.generate(["new",M],"value")}`}return`return ${this.generate(A,"value")}`}generateState(U,_,E,$){let[A,R]=_;this.usesReactivity=!0;let X=typeof A==="string"?A:A.valueOf(),Y=this.generate(R,"value");if(!this.reactiveVars)this.reactiveVars=new Set;return this.reactiveVars.add(X),`const ${X} = __state(${Y})`}generateComputed(U,_,E,$){let[A,R]=_;if(this.usesReactivity=!0,!this.reactiveVars)this.reactiveVars=new Set;let X=typeof A==="string"?A:A.valueOf();this.reactiveVars.add(X);let Y=this.generate(R,"value");return`const ${X} = __computed(() => ${Y})`}generateReadonly(U,_,E,$){let[A,R]=_,X=typeof A==="string"?A:A.valueOf(),Y=this.generate(R,"value");return`const ${X} = ${Y}`}generateEffect(U,_,E,$){let[A,R]=_;this.usesReactivity=!0;let X;if(Array.isArray(R)&&R[0]==="block"){let M=R.slice(1);X=`{
61
+ ${this.withIndent(()=>this.formatStatements(M)).join(`
62
62
  `)}
63
- ${this.indent()}}`}else if(Array.isArray(R)&&(R[0]==="->"||R[0]==="=>"))return`__effect(${this.generate(R,"value")})`;else _=`{ ${this.generate(R,"value")}; }`;return`__effect(() => ${_})`}isHtmlTag(U){let A=U.split("#")[0];return N1.has(A.toLowerCase())}isComponent(U){if(!U||typeof U!=="string")return!1;return/^[A-Z]/.test(U)}parseEventHandler(U,A){if(Array.isArray(U)&&U[0]==="."&&U[1]==="this"&&typeof U[2]==="string")return{eventName:U[2],modifiers:[],handler:this.generate(A,"value")};if(Array.isArray(U)&&U[0]==="computed"){let{eventName:$,modifiers:E}=this.extractEventChain(U[1]);if($)return{eventName:$,modifiers:E,handler:this.generate(A,"value")}}return null}extractEventChain(U){let A=[],$=U;while(Array.isArray($)&&$[0]==="."){let[,E,R]=$;if(Array.isArray(E)&&E[0]==="."&&E[1]==="this")return A.unshift(R),{eventName:E[2],modifiers:A};if(typeof R==="string")A.unshift(R);$=E}if(Array.isArray($)&&$[0]==="."&&$[1]==="this")return{eventName:$[2],modifiers:A};return{eventName:null,modifiers:[]}}wrapEventHandler(U,A){if(A.length===0)return U;let $=[],E=[];for(let _ of A)switch(_){case"prevent":E.push("e.preventDefault()");break;case"stop":E.push("e.stopPropagation()");break;case"self":$.push("if (e.target !== e.currentTarget) return");break;case"enter":$.push("if (e.key !== 'Enter') return");break;case"escape":case"esc":$.push("if (e.key !== 'Escape') return");break;case"tab":$.push("if (e.key !== 'Tab') return");break;case"space":$.push("if (e.key !== ' ') return");break;case"up":$.push("if (e.key !== 'ArrowUp') return");break;case"down":$.push("if (e.key !== 'ArrowDown') return");break;case"left":$.push("if (e.key !== 'ArrowLeft') return");break;case"right":$.push("if (e.key !== 'ArrowRight') return");break;case"ctrl":$.push("if (!e.ctrlKey) return");break;case"alt":$.push("if (!e.altKey) return");break;case"shift":$.push("if (!e.shiftKey) return");break;case"meta":$.push("if (!e.metaKey) return");break}return`(e) => { ${[...$,...E,`(${U})(e)`].join("; ")}; }`}static BIND_PREFIX="__bind_";static BIND_SUFFIX="__";static extractInputType(U){for(let A of U){if(!Array.isArray(A))continue;let $=A[0]instanceof String?A[0].valueOf():A[0],E=A[1]instanceof String?A[1].valueOf():A[1];if($==="type"&&typeof E==="string")return E.replace(/^["']|["']$/g,"")}return null}parseBindingDirective(U,A,$,E){let R;if(typeof U==="string"&&U.startsWith(f.BIND_PREFIX)&&U.endsWith(f.BIND_SUFFIX))R=U.slice(f.BIND_PREFIX.length,-f.BIND_SUFFIX.length);else if(Array.isArray(U)&&U[0]==="computed"){let F=U[1];if(!Array.isArray(F)||F[0]!==".")return null;let[,D,Z]=F;if(!Array.isArray(D)||D[0]!=="."||D[1]!=="this"||D[2]!=="bind")return null;R=typeof Z==="string"?Z:String(Z)}else return null;let _=this.generate(A,"value"),X,Y;if(R==="checked")X="onchange",Y="e.target.checked";else if(R==="value"){if($==="select")X="onchange";else X="oninput";if(E==="number"||E==="range")Y="e.target.valueAsNumber";else Y="e.target.value"}else X="oninput",Y=`e.target.${R}`;return{prop:R,event:X,valueExpr:_,handler:`(e) => ${_} = ${Y}`}}generateRender(U,A,$,E){let[R]=A;if(this.usesTemplates=!0,!Array.isArray(R)||R[0]!=="block")return this.generateTemplateElement(R);let _=R.slice(1);if(_.length===0)return"null";if(_.length===1)return this.generateTemplateElement(_[0]);return`frag(${_.map((Y)=>this.generateTemplateElement(Y)).join(", ")})`}generateStyle(U,A,$,E){return"/* style block placeholder */"}generateComponent(U,A,$,E){let[R,_]=A,X=typeof R==="string"?R:this.generate(R,"value");this.usesTemplates=!0;let Y=Array.isArray(_)&&_[0]==="block"?_.slice(1):[],F=[],D=[],Z=[],M=[],Q=[],G=[],J=[],W=null,H=null,q=new Set,O=new Set;for(let B of Y){if(!Array.isArray(B))continue;let[z]=B;if(z==="prop")F.push(B),q.add(B[1]);else if(z==="prop-rest")F.push(B),q.add(B[1]);else if(z==="="&&typeof B[1]==="string"){let S=B[1];if(["mounted","unmounted","updated"].includes(S))G.push(B);else D.push(B),q.add(S),O.add(S)}else if(z==="signal")D.push(B),q.add(B[1]),O.add(B[1]);else if(z==="derived")Z.push(B),q.add(B[1]),O.add(B[1]);else if(z==="readonly")M.push(B),q.add(B[1]);else if(z==="effect")J.push(B);else if(z==="render")W=B;else if(z==="style")H=B;else if(z==="object"&&B.length>=2){Q.push(B);for(let S=1;S<B.length;S++)if(Array.isArray(B[S]))q.add(B[S][0])}}let N=this.componentMembers,P=this.reactiveMembers;this.componentMembers=q,this.reactiveMembers=O;let K=[],w="";if(K.push(`class ${X} {`),K.push(" constructor(props = {}) {"),K.push(" // Context API: track parent component"),K.push(" this._parent = __currentComponent;"),K.push(" const __prevComponent = __currentComponent;"),K.push(" __currentComponent = this;"),K.push(""),F.length>0){for(let B of F)if(B[0]==="prop"){let z=B[1];if(B.length===2)K.push(` if (props.${z} === undefined) throw new Error('Required prop: ${z}');`),K.push(` this.${z} = props.${z};`);else if(B[2]==="optional")K.push(` this.${z} = props.${z};`);else{let S=this.generateInComponent(B[2],"value");K.push(` this.${z} = props.${z} ?? ${S};`)}}else if(B[0]==="prop-rest"){let z=B[1],S=F.filter((I)=>I[0]==="prop").map((I)=>I[1]);K.push(` const { ${S.join(", ")}, ...${z} } = props;`),K.push(` this.${z} = ${z};`)}}for(let[,B,z]of M){let S=this.generateInComponent(z,"value");K.push(` this.${B} = ${S};`)}this.usesReactivity=!0;for(let B of D)if(B[0]==="signal"){let[,z,S]=B,I=this.generateInComponent(S,"value");K.push(` this.${z} = __signal(${I});`)}else{let[,z,S]=B,I=this.generateInComponent(S,"value");K.push(` this.${z} = __signal(${I});`)}for(let[,B,z]of Z){let S=this.generateInComponent(z,"value");K.push(` this.${B} = __computed(() => ${S});`)}for(let B of J){let z=B[1],S=this.generateInComponent(z,"value");K.push(` __effect(${S});`)}K.push(""),K.push(" __currentComponent = __prevComponent;"),K.push(" }");for(let B of Q)for(let z=1;z<B.length;z++){let[S,I]=B[z];if(Array.isArray(I)&&(I[0]==="->"||I[0]==="=>")){let[,L,T]=I,V=Array.isArray(L)?L.map((u)=>this.formatParam(u)).join(", "):"",y=this.generateInComponent(T,"value");K.push(` ${S}(${V}) { return ${y}; }`)}}for(let[,B,z]of G)if(Array.isArray(z)&&(z[0]==="->"||z[0]==="=>")){let[,S,I]=z,L=this.generateInComponent(I,"value");K.push(` ${B}() { return ${L}; }`)}if(W){let B=W[1],z=this.generateFineGrainedRender(B);if(z.blockFactories.length>0)w=z.blockFactories.join(`
64
-
65
- `)+`
66
-
67
- `;K.push(" _create() {");for(let S of z.createLines)K.push(` ${S}`);if(K.push(` return ${z.rootVar};`),K.push(" }"),z.setupLines.length>0){K.push(" _setup() {");for(let S of z.setupLines)K.push(` ${S}`);K.push(" }")}}return K.push(" mount(target) {"),K.push(' if (typeof target === "string") target = document.querySelector(target);'),K.push(" this._target = target;"),K.push(" this._root = this._create();"),K.push(" target.appendChild(this._root);"),K.push(" if (this._setup) this._setup();"),K.push(" if (this.mounted) this.mounted();"),K.push(" return this;"),K.push(" }"),K.push(" unmount() {"),K.push(" if (this.unmounted) this.unmounted();"),K.push(" if (this._root && this._root.parentNode) {"),K.push(" this._root.parentNode.removeChild(this._root);"),K.push(" }"),K.push(" }"),K.push("}"),this.componentMembers=N,this.reactiveMembers=P,w+K.join(`
68
- `)}generateInComponent(U,A){if(typeof U==="string"&&this.reactiveMembers&&this.reactiveMembers.has(U))return`this.${U}.value`;if(Array.isArray(U)&&this.reactiveMembers){let $=this.transformComponentMembers(U);return this.generate($,A)}return this.generate(U,A)}transformComponentMembers(U){if(!Array.isArray(U)){if(typeof U==="string"&&this.reactiveMembers&&this.reactiveMembers.has(U))return[".",[".","this",U],"value"];return U}if(U[0]==="."&&U[1]==="this"&&typeof U[2]==="string"){let A=U[2];if(this.reactiveMembers&&this.reactiveMembers.has(A))return[".",U,"value"];return U}return U.map((A)=>this.transformComponentMembers(A))}generateComponentRender(U){if(!Array.isArray(U)||U[0]!=="block")return this.generateComponentTemplateElement(U);let A=U.slice(1);if(A.length===0)return"null";if(A.length===1)return this.generateComponentTemplateElement(A[0]);return`frag(${A.map((E)=>this.generateComponentTemplateElement(E)).join(", ")})`}generateFineGrainedRender(U){this._fgElementCount=0,this._fgTextCount=0,this._fgBlockCount=0,this._fgCreateLines=[],this._fgSetupLines=[],this._fgBlockFactories=[];let A=Array.isArray(U)&&U[0]==="block"?U.slice(1):[U],$;if(A.length===0)$="null";else if(A.length===1)$=this.fgProcessElement(A[0]);else{$=this.fgNewElement("frag"),this._fgCreateLines.push(`${$} = document.createDocumentFragment();`);for(let E of A){let R=this.fgProcessElement(E);this._fgCreateLines.push(`${$}.appendChild(${R});`)}}return{createLines:this._fgCreateLines,setupLines:this._fgSetupLines,blockFactories:this._fgBlockFactories,rootVar:$}}fgNewBlock(){return`create_block_${this._fgBlockCount++}`}fgNewElement(U="el"){return`this._${U}${this._fgElementCount++}`}fgNewText(){return`this._t${this._fgTextCount++}`}fgProcessElement(U){if(typeof U==="string"||U instanceof String){let $=U.valueOf();if($.startsWith('"')||$.startsWith("'")||$.startsWith("`")){let R=this.fgNewText();return this._fgCreateLines.push(`${R} = document.createTextNode(${$});`),R}if(this.reactiveMembers&&this.reactiveMembers.has($)){let R=this.fgNewText();return this._fgCreateLines.push(`${R} = document.createTextNode('');`),this._fgSetupLines.push(`__effect(() => { ${R}.data = this.${$}.value; });`),R}let E=this.fgNewElement();return this._fgCreateLines.push(`${E} = document.createElement('${$}');`),E}if(Array.isArray(U)){let[$,...E]=U,R=typeof $==="string"?$:$ instanceof String?$.valueOf():null;if(R&&this.isComponent(R))return this.fgProcessComponent(R,E);if(R&&this.isHtmlTag(R))return this.fgProcessTag(R,[],E);if(R==="."){let[,Y,F]=U;if(Y==="this"&&typeof F==="string"){if(this.reactiveMembers&&this.reactiveMembers.has(F)){let G=this.fgNewText();return this._fgCreateLines.push(`${G} = document.createTextNode('');`),this._fgSetupLines.push(`__effect(() => { ${G}.data = this.${F}.value; });`),G}if(this.componentMembers&&this.componentMembers.has(F)){let G=this.fgNewElement("slot");return this._fgCreateLines.push(`${G} = this.${F} instanceof Node ? this.${F} : (this.${F} != null ? document.createTextNode(String(this.${F})) : document.createComment(''));`),G}}let{tag:D,classes:Z}=this.collectTemplateClasses(U);if(D&&this.isHtmlTag(D))return this.fgProcessTag(D,Z,[]);let M=this.fgNewText(),Q=this.generateInComponent(U,"value");return this._fgCreateLines.push(`${M} = document.createTextNode(String(${Q}));`),M}if(Array.isArray($)){if(Array.isArray($[0])&&$[0][0]==="."&&($[0][2]==="__cx__"||$[0][2]instanceof String&&$[0][2].valueOf()==="__cx__")){let D=typeof $[0][1]==="string"?$[0][1]:$[0][1].valueOf(),Z=$.slice(1);return this.fgProcessTagWithDynamicClass(D,Z,E)}let{tag:Y,classes:F}=this.collectTemplateClasses($);if(Y&&this.isHtmlTag(Y)){if(F.length===1&&F[0]==="__cx__")return this.fgProcessTagWithDynamicClass(Y,E,[]);return this.fgProcessTag(Y,F,E)}}if(R==="->"||R==="=>"){let[Y,F]=E;return this.fgProcessBlock(F)}if(R==="if")return this.fgProcessConditional(U);if(R==="for"||R==="for-in"||R==="for-of")return this.fgProcessLoop(U);let _=this.fgNewText(),X=this.generateInComponent(U,"value");if(this.fgHasReactiveDeps(U))this._fgCreateLines.push(`${_} = document.createTextNode('');`),this._fgSetupLines.push(`__effect(() => { ${_}.data = ${X}; });`);else this._fgCreateLines.push(`${_} = document.createTextNode(String(${X}));`);return _}let A=this.fgNewElement("c");return this._fgCreateLines.push(`${A} = document.createComment('unknown');`),A}fgProcessTagWithDynamicClass(U,A,$){let E=this.fgNewElement();if(this._fgCreateLines.push(`${E} = document.createElement('${U}');`),A.length>0){let R=A.map((X)=>this.generateInComponent(X,"value")).join(' + " " + ');if(A.some((X)=>this.fgHasReactiveDeps(X)))this._fgSetupLines.push(`__effect(() => { ${E}.className = ${R}; });`);else this._fgCreateLines.push(`${E}.className = ${R};`)}for(let R of $){let _=Array.isArray(R)?R[0]instanceof String?R[0].valueOf():R[0]:null;if(_==="->"||_==="=>"){let X=R[2];if((Array.isArray(X)?X[0]instanceof String?X[0].valueOf():X[0]:null)==="block")for(let F of X.slice(1)){let D=this.fgProcessElement(F);this._fgCreateLines.push(`${E}.appendChild(${D});`)}else if(X){let F=this.fgProcessElement(X);this._fgCreateLines.push(`${E}.appendChild(${F});`)}}else if(Array.isArray(R)&&R[0]==="object")this.fgProcessAttributes(E,R);else if(typeof R==="string"||R instanceof String){let X=this.fgNewText(),Y=R.valueOf();if(Y.startsWith('"')||Y.startsWith("'")||Y.startsWith("`"))this._fgCreateLines.push(`${X} = document.createTextNode(${Y});`);else if(this.reactiveMembers&&this.reactiveMembers.has(Y))this._fgCreateLines.push(`${X} = document.createTextNode('');`),this._fgSetupLines.push(`__effect(() => { ${X}.data = this.${Y}.value; });`);else this._fgCreateLines.push(`${X} = document.createTextNode(${this.generateInComponent(R,"value")});`);this._fgCreateLines.push(`${E}.appendChild(${X});`)}else{let X=this.fgProcessElement(R);this._fgCreateLines.push(`${E}.appendChild(${X});`)}}return E}fgProcessTag(U,A,$){let E=this.fgNewElement();if(this._fgCreateLines.push(`${E} = document.createElement('${U}');`),A.length>0)this._fgCreateLines.push(`${E}.className = '${A.join(" ")}';`);for(let R of $)if(Array.isArray(R)&&(R[0]==="->"||R[0]==="=>")){let _=R[2];if(Array.isArray(_)&&_[0]==="block")for(let X of _.slice(1)){let Y=this.fgProcessElement(X);this._fgCreateLines.push(`${E}.appendChild(${Y});`)}else if(_){let X=this.fgProcessElement(_);this._fgCreateLines.push(`${E}.appendChild(${X});`)}}else if(Array.isArray(R)&&R[0]==="object")this.fgProcessAttributes(E,R);else if(typeof R==="string"){let _=this.fgNewText();if(R.startsWith('"')||R.startsWith("'")||R.startsWith("`"))this._fgCreateLines.push(`${_} = document.createTextNode(${R});`);else if(this.reactiveMembers&&this.reactiveMembers.has(R))this._fgCreateLines.push(`${_} = document.createTextNode('');`),this._fgSetupLines.push(`__effect(() => { ${_}.data = this.${R}.value; });`);else if(this.componentMembers&&this.componentMembers.has(R))this._fgCreateLines.push(`${_} = document.createTextNode(String(this.${R}));`);else this._fgCreateLines.push(`${_} = document.createTextNode(String(${R}));`);this._fgCreateLines.push(`${E}.appendChild(${_});`)}else if(R instanceof String){let _=R.valueOf(),X=this.fgNewText();if(_.startsWith('"')||_.startsWith("'")||_.startsWith("`"))this._fgCreateLines.push(`${X} = document.createTextNode(${_});`);else if(this.reactiveMembers&&this.reactiveMembers.has(_))this._fgCreateLines.push(`${X} = document.createTextNode('');`),this._fgSetupLines.push(`__effect(() => { ${X}.data = this.${_}.value; });`);else this._fgCreateLines.push(`${X} = document.createTextNode(String(${_}));`);this._fgCreateLines.push(`${E}.appendChild(${X});`)}else if(R){let _=this.fgProcessElement(R);this._fgCreateLines.push(`${E}.appendChild(${_});`)}return E}fgHasReactiveDeps(U){if(!this.reactiveMembers||this.reactiveMembers.size===0)return!1;if(typeof U==="string")return this.reactiveMembers.has(U);if(!Array.isArray(U))return!1;if(U[0]==="."&&U[1]==="this"&&typeof U[2]==="string")return this.reactiveMembers.has(U[2]);for(let A of U)if(this.fgHasReactiveDeps(A))return!0;return!1}fgProcessAttributes(U,A){let $=f.extractInputType(A.slice(1));for(let E=1;E<A.length;E++){let[R,_]=A[E];if(Array.isArray(R)&&R[0]==="."&&R[1]==="this"){let X=R[2],Y=this.generateInComponent(_,"value");this._fgCreateLines.push(`${U}.addEventListener('${X}', (e) => (${Y})(e));`);continue}if(typeof R==="string"){if(R.startsWith("__bind_")&&R.endsWith("__")){let Y=R.slice(7,-2),F=this.generateInComponent(_,"value"),D,Z;if(Y==="checked")D="change",Z="e.target.checked";else if(D="input",$==="number"||$==="range")Z="e.target.valueAsNumber";else Z="e.target.value";this._fgSetupLines.push(`__effect(() => { ${U}.${Y} = ${F}; });`),this._fgCreateLines.push(`${U}.addEventListener('${D}', (e) => ${F} = ${Z});`);continue}if(this.fgHasReactiveDeps(_)){let Y=this.generateInComponent(_,"value");this._fgSetupLines.push(`__effect(() => { ${U}.setAttribute('${R}', ${Y}); });`)}else{let Y=this.generateInComponent(_,"value");this._fgCreateLines.push(`${U}.setAttribute('${R}', ${Y});`)}}}}fgProcessBlock(U){if(!Array.isArray(U)||U[0]!=="block")return this.fgProcessElement(U);let A=U.slice(1);if(A.length===0){let E=this.fgNewElement("empty");return this._fgCreateLines.push(`${E} = document.createComment('');`),E}if(A.length===1)return this.fgProcessElement(A[0]);let $=this.fgNewElement("frag");this._fgCreateLines.push(`${$} = document.createDocumentFragment();`);for(let E of A){let R=this.fgProcessElement(E);this._fgCreateLines.push(`${$}.appendChild(${R});`)}return $}fgProcessConditional(U){let[,A,$,E]=U,R=this.fgNewElement("anchor");this._fgCreateLines.push(`${R} = document.createComment('if');`);let _=this.generateInComponent(A,"value"),X=this.fgNewBlock();this.fgGenerateConditionBlock(X,$);let Y=null;if(E)Y=this.fgNewBlock(),this.fgGenerateConditionBlock(Y,E);let F=[];if(F.push(`// Conditional: ${X}${Y?" / "+Y:""}`),F.push("{"),F.push(` const anchor = ${R};`),F.push(" let currentBlock = null;"),F.push(" let showing = null; // 'then', 'else', or null"),F.push(" __effect(() => {"),F.push(` const show = !!(${_});`),F.push(` const want = show ? 'then' : ${E?"'else'":"null"};`),F.push(" if (want === showing) return;"),F.push(""),F.push(" // Destroy old block"),F.push(" if (currentBlock) {"),F.push(" currentBlock.d(true);"),F.push(" currentBlock = null;"),F.push(" }"),F.push(" showing = want;"),F.push(""),F.push(" // Create new block"),F.push(" if (want === 'then') {"),F.push(` currentBlock = ${X}(this);`),F.push(" currentBlock.c();"),F.push(" currentBlock.m(anchor.parentNode, anchor.nextSibling);"),F.push(" currentBlock.p(this);"),F.push(" }"),E)F.push(" if (want === 'else') {"),F.push(` currentBlock = ${Y}(this);`),F.push(" currentBlock.c();"),F.push(" currentBlock.m(anchor.parentNode, anchor.nextSibling);"),F.push(" currentBlock.p(this);"),F.push(" }");return F.push(" });"),F.push("}"),this._fgSetupLines.push(F.join(`
69
- `)),R}fgGenerateConditionBlock(U,A){let $=this._fgCreateLines,E=this._fgSetupLines;this._fgCreateLines=[],this._fgSetupLines=[];let R=this.fgProcessBlock(A),_=this._fgCreateLines,X=this._fgSetupLines;this._fgCreateLines=$,this._fgSetupLines=E;let Y=(M)=>{return M.replace(/this\.(_el\d+|_t\d+|_anchor\d+|_frag\d+|_slot\d+|_c\d+|_inst\d+)/g,"$1")},F=[];F.push(`function ${U}(ctx) {`),F.push(" // Local DOM references");let D=new Set;for(let M of _){let Q=M.match(/^this\.(_(?:el|t|anchor|frag|slot|c|inst)\d+)\s*=/);if(Q)D.add(Q[1])}if(D.size>0)F.push(` let ${[...D].join(", ")};`);let Z=X.length>0;if(Z)F.push(" let disposers = [];");F.push(" return {"),F.push(" c() {");for(let M of _)F.push(` ${Y(M)}`);if(F.push(" },"),F.push(" m(target, anchor) {"),F.push(` target.insertBefore(${Y(R)}, anchor);`),F.push(" },"),F.push(" p(ctx) {"),Z){F.push(" disposers.forEach(d => d());"),F.push(" disposers = [];");for(let M of X){let G=Y(M).replace(/__effect\(\(\) => \{/g,"disposers.push(__effect(() => {").replace(/\}\);$/g,"}));");F.push(` ${G}`)}}if(F.push(" },"),F.push(" d(detaching) {"),Z)F.push(" disposers.forEach(d => d());");F.push(` if (detaching) ${Y(R)}.remove();`),F.push(" }"),F.push(" };"),F.push("}"),this._fgBlockFactories.push(F.join(`
70
- `))}fgProcessLoop(U){let[A,$,E,R,_,X]=U,Y=this.fgNewBlock(),F=this.fgNewElement("anchor");this._fgCreateLines.push(`${F} = document.createComment('for');`);let D=Array.isArray($)?$:[$],Z=D[0],M=D[1]||"i",Q=this.generateInComponent(E,"value"),G=Z;if(Array.isArray(X)&&X[0]==="block"&&X.length>1){let S=X[1];if(Array.isArray(S))for(let I of S){if(Array.isArray(I)&&I[0]==="object")for(let L=1;L<I.length;L++){let[T,V]=I[L];if(T==="key"){G=this.generate(V,"value");break}}if(G!==Z)break}}let J=this._fgCreateLines,W=this._fgSetupLines,H=this._fgBlockFactories;this._fgCreateLines=[],this._fgSetupLines=[];let q=this.fgProcessBlock(X),O=this._fgCreateLines,N=this._fgSetupLines;this._fgCreateLines=J,this._fgSetupLines=W;let P=(S)=>{return S.replace(/this\.(_el\d+|_t\d+|_anchor\d+|_frag\d+|_slot\d+|_c\d+|_inst\d+)/g,"$1")},K=[];K.push(`function ${Y}(ctx, ${Z}, ${M}) {`),K.push(" // Local DOM references (not on this)");let w=new Set;for(let S of O){let I=S.match(/^this\.(_(?:el|t|anchor|frag|slot|c|inst)\d+)\s*=/);if(I)w.add(I[1])}if(w.size>0)K.push(` let ${[...w].join(", ")};`);let B=N.length>0;if(B)K.push(" let disposers = [];");K.push(" return {"),K.push(" c() {");for(let S of O)K.push(` ${P(S)}`);if(K.push(" },"),K.push(" m(target, anchor) {"),K.push(` target.insertBefore(${P(q)}, anchor);`),K.push(" },"),K.push(` p(ctx, ${Z}, ${M}) {`),B){K.push(" // Dispose old effects and create new ones with updated values"),K.push(" disposers.forEach(d => d());"),K.push(" disposers = [];");for(let S of N){let L=P(S).replace(/__effect\(\(\) => \{/g,"disposers.push(__effect(() => {").replace(/\}\);$/g,"}));");K.push(` ${L}`)}}if(K.push(" },"),K.push(" d(detaching) {"),B)K.push(" disposers.forEach(d => d());");K.push(` if (detaching) ${P(q)}.remove();`),K.push(" }"),K.push(" };"),K.push("}"),this._fgBlockFactories.push(K.join(`
71
- `));let z=[];return z.push(`// Loop: ${Y}`),z.push("{"),z.push(` const anchor = ${F};`),z.push(" const map = new Map(); // key -> block"),z.push(" let keys = [];"),z.push(" __effect(() => {"),z.push(` const items = ${Q};`),z.push(" const parent = anchor.parentNode;"),z.push(" const newKeys = [];"),z.push(" const newMap = new Map();"),z.push(""),z.push(" // Create/update blocks"),z.push(` for (let ${M} = 0; ${M} < items.length; ${M}++) {`),z.push(` const ${Z} = items[${M}];`),z.push(` const key = ${G};`),z.push(" newKeys.push(key);"),z.push(" let block = map.get(key);"),z.push(" if (block) {"),z.push(" // Update existing block"),z.push(` block.p(this, ${Z}, ${M});`),z.push(" } else {"),z.push(" // Create new block"),z.push(` block = ${Y}(this, ${Z}, ${M});`),z.push(" block.c();"),z.push(" block.m(parent, anchor);"),z.push(` block.p(this, ${Z}, ${M}); // Wire up effects`),z.push(" }"),z.push(" newMap.set(key, block);"),z.push(" }"),z.push(""),z.push(" // Remove deleted blocks"),z.push(" for (const [key, block] of map) {"),z.push(" if (!newMap.has(key)) block.d(true);"),z.push(" }"),z.push(""),z.push(" // Update tracking (simple swap)"),z.push(" map.clear();"),z.push(" for (const [k, v] of newMap) map.set(k, v);"),z.push(" keys = newKeys;"),z.push(" });"),z.push("}"),this._fgSetupLines.push(z.join(`
72
- `)),F}fgProcessComponent(U,A){let $=this.fgNewElement("inst"),E=this.fgNewElement("el"),{propsCode:R,childrenVar:_,childrenSetupLines:X}=this.fgBuildComponentProps(A);this._fgCreateLines.push(`${$} = new ${U}(${R});`),this._fgCreateLines.push(`${E} = ${$}._create();`),this._fgSetupLines.push(`if (${$}._setup) ${$}._setup();`);for(let Y of X)this._fgSetupLines.push(Y);return E}fgBuildComponentProps(U){let A=[],$=null,E=[];for(let _ of U)if(Array.isArray(_)&&_[0]==="object")for(let X=1;X<_.length;X++){let[Y,F]=_[X];if(typeof Y==="string"){let D=this.generateInComponent(F,"value");A.push(`${Y}: ${D}`)}}else if(Array.isArray(_)&&(_[0]==="->"||_[0]==="=>")){let X=_[2];if(X){let Y=this._fgCreateLines,F=this._fgSetupLines;this._fgCreateLines=[],this._fgSetupLines=[],$=this.fgProcessBlock(X);let D=this._fgCreateLines,Z=this._fgSetupLines;this._fgCreateLines=Y,this._fgSetupLines=F;for(let M of D)this._fgCreateLines.push(M);E.push(...Z),A.push(`children: ${$}`)}}return{propsCode:A.length>0?`{ ${A.join(", ")} }`:"{}",childrenVar:$,childrenSetupLines:E}}generateComponentTemplateElement(U){if(typeof U==="string"){if(this.componentMembers&&this.componentMembers.has(U))return`this.${U}.value`;if(U.startsWith('"')||U.startsWith("'")||U.startsWith("`"))return U;return`h('${U}', 0)`}if(U instanceof String){let A=U.valueOf();if(this.componentMembers&&this.componentMembers.has(A))return`this.${A}.value`}if(Array.isArray(U)){let[A,...$]=U,E=typeof A==="string"?A:A instanceof String?A.valueOf():null;if(E&&this.isComponent(E))return this.generateComponentInstance(E,$);if(E&&this.isHtmlTag&&this.isHtmlTag(E))return this.generateComponentH(E,[],$);if(E==="."){let[,R,_]=U;if(R==="this"&&_==="children")return"this.children";let{tag:X,classes:Y}=this.collectTemplateClasses(U);if(X&&this.isHtmlTag&&this.isHtmlTag(X))return this.generateComponentH(X,Y,[])}if(Array.isArray(A)){let{tag:R,classes:_}=this.collectTemplateClasses(A);if(R&&this.isHtmlTag&&this.isHtmlTag(R))return this.generateComponentH(R,_,$)}if(E==="->"||E==="=>"){let[R,_]=$;return this.generateComponentRender(_)}return this.generateTemplateElement(U)}return this.generateTemplateElement(U)}generateComponentH(U,A,$){this.usesTemplates=!0;let E={},R=[],_=[],X=null;for(let M of $)if(Array.isArray(M)&&(M[0]==="->"||M[0]==="=>")){let Q=M[2];if(Array.isArray(Q)&&Q[0]==="block")_.push(...Q.slice(1).map((G)=>this.generateComponentTemplateElement(G)));else _.push(this.generateComponentTemplateElement(Q))}else if(Array.isArray(M)&&M[0]==="...")R.push(this.generateInComponent(M[1],"value"));else if(Array.isArray(M)&&M[0]==="object"){let Q=f.extractInputType(M.slice(1));for(let G of M.slice(1))if(Array.isArray(G)&&G.length>=2){let[J,W]=G,H=this.parseBindingDirective(J,W,U,Q);if(H){E[H.prop]=H.valueExpr,E[H.event]=H.handler;continue}let q=this.parseEventHandler(J,W);if(q){let O=q.modifiers.length>0?this.wrapEventHandler(q.handler,q.modifiers):q.handler;E[`on${q.eventName}`]=O}else{let O=typeof J==="string"?J:this.generate(J,"value");if(O==="ref")X=typeof W==="string"?W:this.generate(W,"value");else if(O==="key")E.key=this.generateInComponent(W,"value");else E[O]=this.generateInComponent(W,"value")}}}else if(typeof M==="string")if(this.componentMembers&&this.componentMembers.has(M))_.push(`this.${M}.value`);else if(M.startsWith('"')||M.startsWith("'")||M.startsWith("`"))_.push(M);else _.push(`String(${M})`);else _.push(this.generateComponentTemplateElement(M));let Y=A.length>0?`${U}.${A.join(".")}`:U,F=this.buildPropsString(E,R),D=this.buildChildrenString(_),Z=`h('${Y}', ${F}${D})`;if(X)Z=`(${X} = ${Z})`;return Z}generateComponentInstance(U,A){let $={},E=[];for(let X of A)if(Array.isArray(X)&&X[0]==="object")for(let Y=1;Y<X.length;Y++){let[F,D]=X[Y];if(typeof F==="string")$[F]=this.generateInComponent(D,"value")}else if(Array.isArray(X)&&(X[0]==="->"||X[0]==="=>")){let Y=X[2];if(Array.isArray(Y)&&Y[0]==="block")E.push(...Y.slice(1).map((F)=>this.generateComponentTemplateElement(F)));else E.push(this.generateComponentTemplateElement(Y))}else if(typeof X==="string")if(X.startsWith('"')||X.startsWith("'")||X.startsWith("`"))E.push(X);else if(this.reactiveMembers&&this.reactiveMembers.has(X))E.push(`this.${X}.value`);else E.push(`String(${X})`);else E.push(this.generateComponentTemplateElement(X));let R=Object.entries($),_="{}";if(R.length>0||E.length>0){let X=R.map(([Y,F])=>`${Y}: ${F}`);if(E.length>0){let Y=E.length===1?E[0]:`[${E.join(", ")}]`;X.push(`children: ${Y}`)}_=X.length>0?`{ ${X.join(", ")} }`:"{}"}return`new ${U}(${_}).render()`}generateTemplateElement(U){if(typeof U==="string"){if(U.startsWith('"')||U.startsWith("'")||U.startsWith("`"))return U;return`h('${U}', 0)`}if(U instanceof String)return this.generate(U,"value");if(!Array.isArray(U))return`txt(${this.generate(U,"value")})`;let[A,...$]=U;if(A==="str")return this.generate(U,"value");if(A==="block"){if($.length===0)return"null";if($.length===1)return this.generateTemplateElement($[0]);return`frag(${$.map((R)=>this.generateTemplateElement(R)).join(", ")})`}if(A==="if"||A==="unless")return this.generateTemplateConditional(U);if(A==="for-in"||A==="for-of")return this.generateTemplateLoop(U);if(A==="."){let[E,R]=$;if(typeof E==="string"&&typeof R==="string"){if(this.isHtmlTag(E))return`h('${E}.${R}', 0)`;return`txt(${this.generate(U,"value")})`}if(Array.isArray(E)&&E[0]==="."){let{tag:_,classes:X}=this.collectTemplateClasses(U);if(this.isHtmlTag(_))return`h('${_}.${X.join(".")}', 0)`;return`txt(${this.generate(U,"value")})`}}if(typeof A==="string"&&!f.GENERATORS[A])return this.generateH(A,[],$);if(Array.isArray(A)&&A[0]==="."){if(A.length===3&&A[2]=="__cx__"){let _=A[1],X,Y;if(Array.isArray(_)&&_[0]===".")({tag:X,classes:Y}=this.collectTemplateClasses(_));else X=_,Y=[];let F=$.map((D)=>this.generate(D,"value")).join(", ");return this.generateH(X,Y,[],F)}let{tag:E,classes:R}=this.collectTemplateClasses(A);return this.generateH(E,R,$)}if(Array.isArray(A)&&Array.isArray(A[0])&&A[0][0]==="."&&A[0][2]=="__cx__"){let E=A[0],R=A.slice(1),_=E[1],X,Y;if(Array.isArray(_)&&_[0]===".")({tag:X,classes:Y}=this.collectTemplateClasses(_));else X=_,Y=[];let F=R.map((D)=>this.generate(D,"value")).join(", ");return this.generateH(X,Y,$,F)}return`txt(${this.generate(U,"value")})`}parseTemplateArgs(U,A){let $={},E=[],R=[],_=null;for(let X of U)if(Array.isArray(X)&&(X[0]==="->"||X[0]==="=>")){let Y=X[2];if(Array.isArray(Y)&&Y[0]==="block")R.push(...Y.slice(1).map((F)=>this.generateTemplateElement(F)));else R.push(this.generateTemplateElement(Y))}else if(Array.isArray(X)&&X[0]==="...")E.push(this.generate(X[1],"value"));else if(Array.isArray(X)&&X[0]==="object"){let Y=f.extractInputType(X.slice(1));for(let F of X.slice(1))if(Array.isArray(F)&&F.length>=2){let[D,Z]=F,M=this.parseBindingDirective(D,Z,A,Y);if(M){$[M.prop]=M.valueExpr,$[M.event]=M.handler;continue}let Q=this.parseEventHandler(D,Z);if(Q){let G=Q.modifiers.length>0?this.wrapEventHandler(Q.handler,Q.modifiers):Q.handler;$[`on${Q.eventName}`]=G}else{let G=typeof D==="string"?D:this.generate(D,"value");if(G==="ref")_=typeof Z==="string"?Z:this.generate(Z,"value");else if(G==="key")$.key=this.generate(Z,"value");else if(G==="class")$.class=this.generate(Z,"value");else $[G]=this.generate(Z,"value")}}}else if(typeof X==="string")if(X.startsWith('"')||X.startsWith("'")||X.startsWith("`"))R.push(X);else R.push(`String(${X})`);else R.push(this.generateTemplateElement(X));return{props:$,spreads:E,children:R,refVar:_}}buildPropsString(U,A,$=null){let E=Object.keys(U).length>0,R=A.length>0,_=$!==null;if(!E&&!R&&!_)return"0";let X=[];if(_)X.push(`class: ${$}`);for(let Y of A)X.push(`...${Y}`);for(let[Y,F]of Object.entries(U))X.push(`${Y}: ${F}`);return`{ ${X.join(", ")} }`}buildChildrenString(U){if(U.length===0)return"";if(U.length===1)return`, ${U[0]}`;return`, [${U.join(", ")}]`}generateH(U,A,$,E=null){this.usesTemplates=!0;let{props:R,spreads:_,children:X,refVar:Y}=this.parseTemplateArgs($,U),F=A.length>0?`${U}.${A.join(".")}`:U,D=E?`cx(${E})`:null,Z=this.buildPropsString(R,_,D),M=this.buildChildrenString(X),Q=`h('${F}', ${Z}${M})`;if(Y)Q=`(${Y} = ${Q})`;return Q}collectTemplateClasses(U){let A=[],$=U;while(Array.isArray($)&&$[0]==="."){let R=$[2];if(typeof R==="string"||R instanceof String)A.unshift(R.valueOf());$=$[1]}return{tag:typeof $==="string"?$:$ instanceof String?$.valueOf():"div",classes:A}}generateTemplateConditional(U){let[A,$,E,R]=U,_=this.generate($,"value"),X=A==="unless"?`!(${_})`:_,Y=E;if(Array.isArray(E)&&E.length===1&&Array.isArray(E[0])&&E[0][0]!=="block")Y=E[0];let F=this.generateTemplateElement(Y);if(R){let D=R;if(Array.isArray(R)&&R.length===1&&Array.isArray(R[0])&&R[0][0]!=="block")D=R[0];return`(${X} ? ${F} : ${this.generateTemplateElement(D)})`}return`(${X} ? ${F} : null)`}generateTemplateLoop(U){let[A]=U;if(A==="for-in")return this.generateTemplateForIn(U);if(A==="for-of")return this.generateTemplateForOf(U);return"null"}generateTemplateForIn(U){let[,A,$,,E,R]=U,_=Array.isArray(A)&&A[0]?typeof A[0]==="string"?A[0]:this.generate(A[0],"value"):"__item",X=Array.isArray(A)&&A[1]?typeof A[1]==="string"?A[1]:"__i":"__i",Y=this.generate($,"value"),F=this.generateTemplateElement(R),D=E?`if (!(${this.generate(E,"value")})) continue; `:"";return`frag(...${Y}.map((${_}, ${X}) => ${D?`{ ${D}return ${F}; }`:F}))`}generateTemplateForOf(U){let[,A,$,E,R,_]=U,X=Array.isArray(A)&&A[0]?typeof A[0]==="string"?A[0]:"__k":"__k",Y=Array.isArray(A)&&A[1]?typeof A[1]==="string"?A[1]:null:null,F=this.generate($,"value"),D=this.generateTemplateElement(_),Z=E?`Object.entries(${F})`:`Object.entries(${F})`,M=Y?`[${X}, ${Y}]`:`[${X}]`,Q=R?`if (!(${this.generate(R,"value")})) continue; `:"";return`frag(...${Z}.map((${M}) => ${Q?`{ ${Q}return ${D}; }`:D}))`}generateBreak(U,A,$,E){return"break"}generateBreakIf(U,A,$,E){let[R]=A;return`if (${this.generate(R,"value")}) break`}generateContinue(U,A,$,E){return"continue"}generateContinueIf(U,A,$,E){let[R]=A;return`if (${this.generate(R,"value")}) continue`}generateExistential(U,A,$,E){let[R]=A;return`(${this.generate(R,"value")} != null)`}generateTernary(U,A,$,E){let[R,_,X]=A;return`(${this.unwrap(this.generate(R,"value"))} ? ${this.generate(_,"value")} : ${this.generate(X,"value")})`}generateLoop(U,A,$,E){let[R]=A;return`while (true) ${this.generateLoopBody(R)}`}generateAwait(U,A,$,E){let[R]=A;return`await ${this.generate(R,"value")}`}generateYield(U,A,$,E){if(A.length===0)return"yield";let[R]=A;return`yield ${this.generate(R,"value")}`}generateYieldFrom(U,A,$,E){let[R]=A;return`yield* ${this.generate(R,"value")}`}generateIf(U,A,$,E){if(U==="unless"){let[Y,F]=A;if(Array.isArray(F)&&F.length===1){let Z=F[0];if(!Array.isArray(Z)||Z[0]!=="block")F=Z}if($==="value"){let Z=this.extractExpression(F);return`(!${this.generate(Y,"value")} ? ${Z} : undefined)`}let D=this.unwrap(this.generate(Y,"value"));if(D.includes(" ")||D.includes("===")||D.includes("!==")||D.includes(">")||D.includes("<")||D.includes("&&")||D.includes("||"))D=`(${D})`;return`if (!${D}) `+this.generate(F,"statement")}let[R,_,...X]=A;if($==="value")return this.generateIfAsExpression(R,_,X);else return this.generateIfAsStatement(R,_,X)}generateForIn(U,A,$,E){let[R,_,X,Y,F]=A;if($==="value"&&this.comprehensionDepth===0){let q=["for-in",R,_,X],O=Y?[Y]:[];return this.generate(["comprehension",F,[q],O],$)}let D=Array.isArray(R)?R:[R],Z=D.length===0,[M,Q]=Z?["_i",null]:D,G=M;if(Array.isArray(M)&&(M[0]==="array"||M[0]==="object"))G=this.generateDestructuringPattern(M);if(X&&X!==null){let q=this.generate(_,"value"),O=Q||"_i",N=this.generate(X,"value"),P=this.isNegativeStep(X),K=P&&(X[1]==="1"||X[1]===1||X[1]instanceof String&&X[1].valueOf()==="1"),w=!P&&(X==="1"||X===1||X instanceof String&&X.valueOf()==="1"),B;if(K)B=`for (let ${O} = ${q}.length - 1; ${O} >= 0; ${O}--) `;else if(w)B=`for (let ${O} = 0; ${O} < ${q}.length; ${O}++) `;else if(P)B=`for (let ${O} = ${q}.length - 1; ${O} >= 0; ${O} += ${N}) `;else B=`for (let ${O} = 0; ${O} < ${q}.length; ${O} += ${N}) `;if(Array.isArray(F)&&F[0]==="block"){let z=F.slice(1);this.indentLevel++;let S=[];if(!Z)S.push(`const ${G} = ${q}[${O}];`);if(Y){let I=this.generate(Y,"value");S.push(`if (${I}) {`),this.indentLevel++,S.push(...this.formatStatements(z)),this.indentLevel--,S.push(this.indent()+"}")}else S.push(...z.map((I)=>this.addSemicolon(I,this.generate(I,"statement"))));return this.indentLevel--,B+`{
73
- ${S.map((I)=>this.indent()+I).join(`
63
+ ${this.indent()}}`}else if(Array.isArray(R)&&(R[0]==="->"||R[0]==="=>")){let M=this.generate(R,"value");if(A)return`const ${typeof A==="string"?A:this.generate(A,"value")} = __effect(${M})`;return`__effect(${M})`}else X=`{ ${this.generate(R,"value")}; }`;let Y=`__effect(() => ${X})`;if(A)return`const ${typeof A==="string"?A:this.generate(A,"value")} = ${Y}`;return Y}generateBreak(U,_,E,$){return"break"}generateBreakIf(U,_,E,$){let[A]=_;return`if (${this.generate(A,"value")}) break`}generateContinue(U,_,E,$){return"continue"}generateContinueIf(U,_,E,$){let[A]=_;return`if (${this.generate(A,"value")}) continue`}generateExistential(U,_,E,$){let[A]=_;return`(${this.generate(A,"value")} != null)`}generateTernary(U,_,E,$){let[A,R,X]=_;return`(${this.unwrap(this.generate(A,"value"))} ? ${this.generate(R,"value")} : ${this.generate(X,"value")})`}generateLoop(U,_,E,$){let[A]=_;return`while (true) ${this.generateLoopBody(A)}`}generateAwait(U,_,E,$){let[A]=_;return`await ${this.generate(A,"value")}`}generateYield(U,_,E,$){if(_.length===0)return"yield";let[A]=_;return`yield ${this.generate(A,"value")}`}generateYieldFrom(U,_,E,$){let[A]=_;return`yield* ${this.generate(A,"value")}`}generateIf(U,_,E,$){if(U==="unless"){let[Y,M]=_;if(Array.isArray(M)&&M.length===1){let D=M[0];if(!Array.isArray(D)||D[0]!=="block")M=D}if(E==="value"){let D=this.extractExpression(M);return`(!${this.generate(Y,"value")} ? ${D} : undefined)`}let F=this.unwrap(this.generate(Y,"value"));if(F.includes(" ")||F.includes("===")||F.includes("!==")||F.includes(">")||F.includes("<")||F.includes("&&")||F.includes("||"))F=`(${F})`;return`if (!${F}) `+this.generate(M,"statement")}let[A,R,...X]=_;if(E==="value")return this.generateIfAsExpression(A,R,X);else return this.generateIfAsStatement(A,R,X)}generateForIn(U,_,E,$){let[A,R,X,Y,M]=_;if(E==="value"&&this.comprehensionDepth===0){let H=["for-in",A,R,X],W=Y?[Y]:[];return this.generate(["comprehension",M,[H],W],E)}let F=Array.isArray(A)?A:[A],D=F.length===0,[G,J]=D?["_i",null]:F,Q=G;if(Array.isArray(G)&&(G[0]==="array"||G[0]==="object"))Q=this.generateDestructuringPattern(G);if(X&&X!==null){let H=this.generate(R,"value"),W=J||"_i",q=this.generate(X,"value"),N=this.isNegativeStep(X),z=N&&(X[1]==="1"||X[1]===1||X[1]instanceof String&&X[1].valueOf()==="1"),S=!N&&(X==="1"||X===1||X instanceof String&&X.valueOf()==="1"),L;if(z)L=`for (let ${W} = ${H}.length - 1; ${W} >= 0; ${W}--) `;else if(S)L=`for (let ${W} = 0; ${W} < ${H}.length; ${W}++) `;else if(N)L=`for (let ${W} = ${H}.length - 1; ${W} >= 0; ${W} += ${q}) `;else L=`for (let ${W} = 0; ${W} < ${H}.length; ${W} += ${q}) `;if(Array.isArray(M)&&M[0]==="block"){let I=M.slice(1);this.indentLevel++;let T=[];if(!D)T.push(`const ${Q} = ${H}[${W}];`);if(Y){let j=this.generate(Y,"value");T.push(`if (${j}) {`),this.indentLevel++,T.push(...this.formatStatements(I)),this.indentLevel--,T.push(this.indent()+"}")}else T.push(...I.map((j)=>this.addSemicolon(j,this.generate(j,"statement"))));return this.indentLevel--,L+`{
64
+ ${T.map((j)=>this.indent()+j).join(`
74
65
  `)}
75
- ${this.indent()}}`}else if(Z)if(Y){let z=this.generate(Y,"value");return B+`{ if (${z}) ${this.generate(F,"statement")}; }`}else return B+`{ ${this.generate(F,"statement")}; }`;else if(Y){let z=this.generate(Y,"value");return B+`{ const ${G} = ${q}[${O}]; if (${z}) ${this.generate(F,"statement")}; }`}else return B+`{ const ${G} = ${q}[${O}]; ${this.generate(F,"statement")}; }`}if(Q){let q=this.generate(_,"value"),O=`for (let ${Q} = 0; ${Q} < ${q}.length; ${Q}++) `;if(Array.isArray(F)&&F[0]==="block"){let N=F.slice(1);if(O+=`{
76
- `,this.indentLevel++,O+=this.indent()+`const ${G} = ${q}[${Q}];
77
- `,Y){let P=this.unwrap(this.generate(Y,"value"));O+=this.indent()+`if (${P}) {
78
- `,this.indentLevel++,O+=this.formatStatements(N).join(`
66
+ ${this.indent()}}`}else if(D)if(Y){let I=this.generate(Y,"value");return L+`{ if (${I}) ${this.generate(M,"statement")}; }`}else return L+`{ ${this.generate(M,"statement")}; }`;else if(Y){let I=this.generate(Y,"value");return L+`{ const ${Q} = ${H}[${W}]; if (${I}) ${this.generate(M,"statement")}; }`}else return L+`{ const ${Q} = ${H}[${W}]; ${this.generate(M,"statement")}; }`}if(J){let H=this.generate(R,"value"),W=`for (let ${J} = 0; ${J} < ${H}.length; ${J}++) `;if(Array.isArray(M)&&M[0]==="block"){let q=M.slice(1);if(W+=`{
67
+ `,this.indentLevel++,W+=this.indent()+`const ${Q} = ${H}[${J}];
68
+ `,Y){let N=this.unwrap(this.generate(Y,"value"));W+=this.indent()+`if (${N}) {
69
+ `,this.indentLevel++,W+=this.formatStatements(q).join(`
79
70
  `)+`
80
- `,this.indentLevel--,O+=this.indent()+`}
81
- `}else O+=this.formatStatements(N).join(`
71
+ `,this.indentLevel--,W+=this.indent()+`}
72
+ `}else W+=this.formatStatements(q).join(`
82
73
  `)+`
83
- `;this.indentLevel--,O+=this.indent()+"}"}else if(Y){let N=this.unwrap(this.generate(Y,"value"));O+=`{ const ${G} = ${q}[${Q}]; if (${N}) ${this.generate(F,"statement")}; }`}else O+=`{ const ${G} = ${q}[${Q}]; ${this.generate(F,"statement")}; }`;return O}let J=Array.isArray(_)&&_[0];if(J instanceof String)J=J.valueOf();if(J===".."||J==="..."){let q=J==="...",[O,N]=_.slice(1),P=(K)=>{if(typeof K==="number")return!0;if(K instanceof String)return!K.valueOf().includes("(");if(typeof K==="string"&&!K.includes("("))return!0;if(Array.isArray(K)&&K[0]===".")return!0;return!1};if(P(O)&&P(N)){let K=this.generate(O,"value"),w=this.generate(N,"value"),B=q?"<":"<=",z=`${G}++`;if(X&&X!==null){let I=this.generate(X,"value");z=`${G} += ${I}`}let S=`for (let ${G} = ${K}; ${G} ${B} ${w}; ${z}) `;if(Y)S+=this.generateLoopBodyWithGuard(F,Y);else S+=this.generateLoopBody(F);return S}}let H=`for (const ${G} of ${this.generate(_,"value")}) `;if(Y)H+=this.generateLoopBodyWithGuard(F,Y);else H+=this.generateLoopBody(F);return H}generateForOf(U,A,$,E){let[R,_,X,Y,F]=A,[D,Z]=Array.isArray(R)?R:[R],M=this.generate(_,"value"),Q=`for (const ${D} in ${M}) `;if(X&&!Z&&!Y){if(Array.isArray(F)&&F[0]==="block"){let G=F.slice(1);this.indentLevel++;let J=[`if (!Object.hasOwn(${M}, ${D})) continue;`,...G.map((W)=>this.addSemicolon(W,this.generate(W,"statement")))];this.indentLevel--,Q+=`{
84
- ${J.map((W)=>this.indent()+W).join(`
74
+ `;this.indentLevel--,W+=this.indent()+"}"}else if(Y){let q=this.unwrap(this.generate(Y,"value"));W+=`{ const ${Q} = ${H}[${J}]; if (${q}) ${this.generate(M,"statement")}; }`}else W+=`{ const ${Q} = ${H}[${J}]; ${this.generate(M,"statement")}; }`;return W}let Z=Array.isArray(R)&&R[0];if(Z instanceof String)Z=Z.valueOf();if(Z===".."||Z==="..."){let H=Z==="...",[W,q]=R.slice(1),N=(z)=>{if(typeof z==="number")return!0;if(z instanceof String)return!z.valueOf().includes("(");if(typeof z==="string"&&!z.includes("("))return!0;if(Array.isArray(z)&&z[0]===".")return!0;return!1};if(N(W)&&N(q)){let z=this.generate(W,"value"),S=this.generate(q,"value"),L=H?"<":"<=",I=`${Q}++`;if(X&&X!==null){let j=this.generate(X,"value");I=`${Q} += ${j}`}let T=`for (let ${Q} = ${z}; ${Q} ${L} ${S}; ${I}) `;if(Y)T+=this.generateLoopBodyWithGuard(M,Y);else T+=this.generateLoopBody(M);return T}}let K=`for (const ${Q} of ${this.generate(R,"value")}) `;if(Y)K+=this.generateLoopBodyWithGuard(M,Y);else K+=this.generateLoopBody(M);return K}generateForOf(U,_,E,$){let[A,R,X,Y,M]=_,[F,D]=Array.isArray(A)?A:[A],G=this.generate(R,"value"),J=`for (const ${F} in ${G}) `;if(X&&!D&&!Y){if(Array.isArray(M)&&M[0]==="block"){let Q=M.slice(1);this.indentLevel++;let Z=[`if (!Object.hasOwn(${G}, ${F})) continue;`,...Q.map((O)=>this.addSemicolon(O,this.generate(O,"statement")))];this.indentLevel--,J+=`{
75
+ ${Z.map((O)=>this.indent()+O).join(`
85
76
  `)}
86
- ${this.indent()}}`}else Q+=`{ if (!Object.hasOwn(${M}, ${D})) continue; ${this.generate(F,"statement")}; }`;return Q}if(Z)if(X&&Y)if(Array.isArray(F)&&F[0]==="block"){let G=F.slice(1);this.indentLevel++;let J=this.indent(),W=this.generate(Y,"value");this.indentLevel++;let H=this.indent(),q=G.map((O)=>H+this.addSemicolon(O,this.generate(O,"statement")));this.indentLevel-=2,Q+=`{
87
- ${J}if (!Object.hasOwn(${M}, ${D})) continue;
88
- ${J}const ${Z} = ${M}[${D}];
89
- ${J}if (${W}) {
90
- ${q.join(`
77
+ ${this.indent()}}`}else J+=`{ if (!Object.hasOwn(${G}, ${F})) continue; ${this.generate(M,"statement")}; }`;return J}if(D)if(X&&Y)if(Array.isArray(M)&&M[0]==="block"){let Q=M.slice(1);this.indentLevel++;let Z=this.indent(),O=this.generate(Y,"value");this.indentLevel++;let K=this.indent(),H=Q.map((W)=>K+this.addSemicolon(W,this.generate(W,"statement")));this.indentLevel-=2,J+=`{
78
+ ${Z}if (!Object.hasOwn(${G}, ${F})) continue;
79
+ ${Z}const ${D} = ${G}[${F}];
80
+ ${Z}if (${O}) {
81
+ ${H.join(`
91
82
  `)}
92
- ${J}}
93
- ${this.indent()}}`}else{let G=this.generate(Y,"value");Q+=`{ if (!Object.hasOwn(${M}, ${D})) continue; const ${Z} = ${M}[${D}]; if (${G}) ${this.generate(F,"statement")}; }`}else if(X)if(Array.isArray(F)&&F[0]==="block"){let G=F.slice(1);this.indentLevel++;let J=[`if (!Object.hasOwn(${M}, ${D})) continue;`,`const ${Z} = ${M}[${D}];`,...G.map((W)=>this.addSemicolon(W,this.generate(W,"statement")))];this.indentLevel--,Q+=`{
94
- ${J.map((W)=>this.indent()+W).join(`
83
+ ${Z}}
84
+ ${this.indent()}}`}else{let Q=this.generate(Y,"value");J+=`{ if (!Object.hasOwn(${G}, ${F})) continue; const ${D} = ${G}[${F}]; if (${Q}) ${this.generate(M,"statement")}; }`}else if(X)if(Array.isArray(M)&&M[0]==="block"){let Q=M.slice(1);this.indentLevel++;let Z=[`if (!Object.hasOwn(${G}, ${F})) continue;`,`const ${D} = ${G}[${F}];`,...Q.map((O)=>this.addSemicolon(O,this.generate(O,"statement")))];this.indentLevel--,J+=`{
85
+ ${Z.map((O)=>this.indent()+O).join(`
95
86
  `)}
96
- ${this.indent()}}`}else Q+=`{ if (!Object.hasOwn(${M}, ${D})) continue; const ${Z} = ${M}[${D}]; ${this.generate(F,"statement")}; }`;else if(Y)if(Array.isArray(F)&&F[0]==="block"){let G=F.slice(1);this.indentLevel++;let J=this.indent(),W=this.generate(Y,"value");this.indentLevel++;let H=this.indent(),q=G.map((O)=>H+this.addSemicolon(O,this.generate(O,"statement")));this.indentLevel-=2,Q+=`{
97
- ${J}const ${Z} = ${M}[${D}];
98
- ${J}if (${W}) {
99
- ${q.join(`
87
+ ${this.indent()}}`}else J+=`{ if (!Object.hasOwn(${G}, ${F})) continue; const ${D} = ${G}[${F}]; ${this.generate(M,"statement")}; }`;else if(Y)if(Array.isArray(M)&&M[0]==="block"){let Q=M.slice(1);this.indentLevel++;let Z=this.indent(),O=this.generate(Y,"value");this.indentLevel++;let K=this.indent(),H=Q.map((W)=>K+this.addSemicolon(W,this.generate(W,"statement")));this.indentLevel-=2,J+=`{
88
+ ${Z}const ${D} = ${G}[${F}];
89
+ ${Z}if (${O}) {
90
+ ${H.join(`
100
91
  `)}
101
- ${J}}
102
- ${this.indent()}}`}else Q+=`{ const ${Z} = ${M}[${D}]; if (${this.generate(Y,"value")}) ${this.generate(F,"statement")}; }`;else if(Array.isArray(F)&&F[0]==="block"){let G=F.slice(1);this.indentLevel++;let J=[`const ${Z} = ${M}[${D}];`,...G.map((W)=>this.addSemicolon(W,this.generate(W,"statement")))];this.indentLevel--,Q+=`{
103
- ${J.map((W)=>this.indent()+W).join(`
92
+ ${Z}}
93
+ ${this.indent()}}`}else J+=`{ const ${D} = ${G}[${F}]; if (${this.generate(Y,"value")}) ${this.generate(M,"statement")}; }`;else if(Array.isArray(M)&&M[0]==="block"){let Q=M.slice(1);this.indentLevel++;let Z=[`const ${D} = ${G}[${F}];`,...Q.map((O)=>this.addSemicolon(O,this.generate(O,"statement")))];this.indentLevel--,J+=`{
94
+ ${Z.map((O)=>this.indent()+O).join(`
104
95
  `)}
105
- ${this.indent()}}`}else Q+=`{ const ${Z} = ${M}[${D}]; ${this.generate(F,"statement")}; }`;else if(Y)Q+=this.generateLoopBodyWithGuard(F,Y);else Q+=this.generateLoopBody(F);return Q}generateForFrom(U,A,$,E){let R=Array.isArray(A[0])?A[0]:[A[0]],[_]=R,X=A[1],Y=A[2],F=A[3],D=A[4],Z=!1,M=[];if(Array.isArray(_)&&_[0]==="array"){let H=_.slice(1),q=H.findIndex((O)=>Array.isArray(O)&&O[0]==="..."||O==="...");if(q!==-1&&q<H.length-1){Z=!0;let O=H.slice(q+1),N=O.length,P=H.slice(0,q),K=H[q],w=Array.isArray(K)&&K[0]==="..."?K[1]:"_rest",B=P.map((L)=>{if(L===",")return"";if(typeof L==="string")return L;return this.generate(L,"value")}).join(", "),z=B?`${B}, ...${w}`:`...${w}`,S=O.map((L)=>{if(L===",")return"";if(typeof L==="string")return L;return this.generate(L,"value")}).join(", ");M.push(`[${z}] = _item`),M.push(`[${S}] = ${w}.splice(-${N})`),this.helpers.add("slice"),((L)=>{L.slice(1).forEach((T)=>{if(T===","||T==="...")return;if(typeof T==="string")this.programVars.add(T);else if(Array.isArray(T)&&T[0]==="..."){if(typeof T[1]==="string")this.programVars.add(T[1])}})})(_)}}let Q=this.generate(X,"value"),G=Y?"await ":"",J;if(Z)J="_item";else if(Array.isArray(_)&&(_[0]==="array"||_[0]==="object"))J=this.generateDestructuringPattern(_);else J=_;let W=`for ${G}(const ${J} of ${Q}) `;if(Z&&M.length>0){let H=this.unwrapBlock(D),q=this.withIndent(()=>[...M.map((O)=>this.indent()+O+";"),...this.formatStatements(H)]);W+=`{
106
- ${q.join(`
96
+ ${this.indent()}}`}else J+=`{ const ${D} = ${G}[${F}]; ${this.generate(M,"statement")}; }`;else if(Y)J+=this.generateLoopBodyWithGuard(M,Y);else J+=this.generateLoopBody(M);return J}generateForFrom(U,_,E,$){let A=Array.isArray(_[0])?_[0]:[_[0]],[R]=A,X=_[1],Y=_[2],M=_[3],F=_[4],D=!1,G=[];if(Array.isArray(R)&&R[0]==="array"){let K=R.slice(1),H=K.findIndex((W)=>Array.isArray(W)&&W[0]==="..."||W==="...");if(H!==-1&&H<K.length-1){D=!0;let W=K.slice(H+1),q=W.length,N=K.slice(0,H),z=K[H],S=Array.isArray(z)&&z[0]==="..."?z[1]:"_rest",L=N.map((w)=>{if(w===",")return"";if(typeof w==="string")return w;return this.generate(w,"value")}).join(", "),I=L?`${L}, ...${S}`:`...${S}`,T=W.map((w)=>{if(w===",")return"";if(typeof w==="string")return w;return this.generate(w,"value")}).join(", ");G.push(`[${I}] = _item`),G.push(`[${T}] = ${S}.splice(-${q})`),this.helpers.add("slice"),((w)=>{w.slice(1).forEach((P)=>{if(P===","||P==="...")return;if(typeof P==="string")this.programVars.add(P);else if(Array.isArray(P)&&P[0]==="..."){if(typeof P[1]==="string")this.programVars.add(P[1])}})})(R)}}let J=this.generate(X,"value"),Q=Y?"await ":"",Z;if(D)Z="_item";else if(Array.isArray(R)&&(R[0]==="array"||R[0]==="object"))Z=this.generateDestructuringPattern(R);else Z=R;let O=`for ${Q}(const ${Z} of ${J}) `;if(D&&G.length>0){let K=this.unwrapBlock(F),H=this.withIndent(()=>[...G.map((W)=>this.indent()+W+";"),...this.formatStatements(K)]);O+=`{
97
+ ${H.join(`
107
98
  `)}
108
- ${this.indent()}}`}else if(F)W+=this.generateLoopBodyWithGuard(D,F);else W+=this.generateLoopBody(D);return W}generateWhile(U,A,$,E){let R=A[0],_=A.length===3?A[1]:null,X=A[A.length-1],F=`while (${this.unwrap(this.generate(R,"value"))}) `;if(_)F+=this.generateLoopBodyWithGuard(X,_);else F+=this.generateLoopBody(X);return F}generateUntil(U,A,$,E){let[R,_]=A,Y=`while (!(${this.unwrap(this.generate(R,"value"))})) `;return Y+=this.generateLoopBody(_),Y}generateRange(U,A,$,E){if(U==="..."){if(A.length===1){let[Q]=A;return`...${this.generate(Q,"value")}`}let[F,D]=A,Z=this.generate(F,"value"),M=this.generate(D,"value");return`((s, e) => Array.from({length: Math.max(0, Math.abs(e - s))}, (_, i) => s + (i * (s <= e ? 1 : -1))))(${Z}, ${M})`}let[R,_]=A,X=this.generate(R,"value"),Y=this.generate(_,"value");return`((s, e) => Array.from({length: Math.abs(e - s) + 1}, (_, i) => s + (i * (s <= e ? 1 : -1))))(${X}, ${Y})`}generateNot(U,A,$,E){let[R]=A;if(typeof R==="string"||R instanceof String)return`!${this.generate(R,"value")}`;if(Array.isArray(R)){let X=R[0];if([".","?.","::","?::","[]","?[]","optindex","optcall"].includes(X))return`!${this.generate(R,"value")}`}let _=this.generate(R,"value");if(_.startsWith("("))return`!${_}`;return`(!${_})`}generateBitwiseNot(U,A,$,E){let[R]=A;return`(~${this.generate(R,"value")})`}generateIncDec(U,A,$,E){let[R,_]=A,X=this.generate(R,"value");if(_)return`(${X}${U})`;else return`(${U}${X})`}generateTypeof(U,A,$,E){let[R]=A;return`typeof ${this.generate(R,"value")}`}generateDelete(U,A,$,E){let[R]=A;return`(delete ${this.generate(R,"value")})`}generateInstanceof(U,A,$,E){let[R,_]=A,X=E[0]?.invert,Y=`(${this.generate(R,"value")} instanceof ${this.generate(_,"value")})`;return X?`(!${Y})`:Y}generateIn(U,A,$,E){let[R,_]=A,X=this.generate(R,"value"),Y=E[0]?.invert;if(Array.isArray(_)&&_[0]==="object"){let Z=this.generate(_,"value"),M=`(${X} in ${Z})`;return Y?`(!${M})`:M}let F=this.generate(_,"value"),D=`(Array.isArray(${F}) || typeof ${F} === 'string' ? ${F}.includes(${X}) : (${X} in ${F}))`;return Y?`(!${D})`:D}generateOf(U,A,$,E){let[R,_]=A,X=this.generate(R,"value"),Y=this.generate(_,"value"),F=E[0]?.invert,D=`(${X} in ${Y})`;return F?`(!${D})`:D}generateRegexMatch(U,A,$,E){let[R,_]=A;this.helpers.add("toSearchable"),this.programVars.add("_");let X=this.generate(_,"value"),F=X.includes("/m")?", true":"";return`(_ = toSearchable(${this.generate(R,"value")}${F}).match(${X}))`}generateNew(U,A,$,E){let[R]=A;if(Array.isArray(R)&&(R[0]==="."||R[0]==="?.")){let[_,X,Y]=R;if(Array.isArray(X)&&!X[0].startsWith)return`(${this.generate(["new",X],"value")}).${Y}`;return`new ${this.generate(X,"value")}.${Y}`}if(Array.isArray(R)){let[_,...X]=R,Y=this.generate(_,"value"),F=X.map((D)=>this.unwrap(this.generate(D,"value"))).join(", ");return`new ${Y}(${F})`}return`new ${this.generate(R,"value")}()`}generateLogicalAnd(U,A,$,E){let _=this.flattenBinaryChain(E).slice(1);if(_.length===0)return"true";if(_.length===1)return this.generate(_[0],"value");return`(${_.map((Y)=>this.generate(Y,"value")).join(" && ")})`}generateLogicalOr(U,A,$,E){let _=this.flattenBinaryChain(E).slice(1);if(_.length===0)return"true";if(_.length===1)return this.generate(_[0],"value");return`(${_.map((Y)=>this.generate(Y,"value")).join(" || ")})`}generateArray(U,A,$,E){let R=A.length>0&&A[A.length-1]===",",_=A.map((X)=>{if(X===",")return"";if(X==="...")return"";if(Array.isArray(X)&&X[0]==="...")return`...${this.generate(X[1],"value")}`;return this.generate(X,"value")}).join(", ");return R?`[${_},]`:`[${_}]`}generateObject(U,A,$,E){if(A.length===1&&Array.isArray(A[0])&&Array.isArray(A[0][1])&&A[0][1][0]==="comprehension"){let[_,X]=A[0],[,Y,F,D]=X;return this.generate(["object-comprehension",_,Y,F,D],$)}return`{${A.map((_)=>{if(Array.isArray(_)&&_[0]==="...")return`...${this.generate(_[1],"value")}`;let[X,Y,F]=_,D;if(Array.isArray(X)&&X[0]==="computed"){let M=X[1];D=`[${this.generate(M,"value")}]`}else D=this.generate(X,"value");let Z=this.generate(Y,"value");if(F==="=")return`${D} = ${Z}`;else if(F===":")return`${D}: ${Z}`;else{if(D===Z&&!Array.isArray(X))return D;return`${D}: ${Z}`}}).join(", ")}}`}generateBlock(U,A,$,E){if($==="statement")return`{
109
- ${this.withIndent(()=>this.formatStatements(A)).join(`
99
+ ${this.indent()}}`}else if(M)O+=this.generateLoopBodyWithGuard(F,M);else O+=this.generateLoopBody(F);return O}generateWhile(U,_,E,$){let A=_[0],R=_.length===3?_[1]:null,X=_[_.length-1],M=`while (${this.unwrap(this.generate(A,"value"))}) `;if(R)M+=this.generateLoopBodyWithGuard(X,R);else M+=this.generateLoopBody(X);return M}generateUntil(U,_,E,$){let[A,R]=_,Y=`while (!(${this.unwrap(this.generate(A,"value"))})) `;return Y+=this.generateLoopBody(R),Y}generateRange(U,_,E,$){if(U==="..."){if(_.length===1){let[J]=_;return`...${this.generate(J,"value")}`}let[M,F]=_,D=this.generate(M,"value"),G=this.generate(F,"value");return`((s, e) => Array.from({length: Math.max(0, Math.abs(e - s))}, (_, i) => s + (i * (s <= e ? 1 : -1))))(${D}, ${G})`}let[A,R]=_,X=this.generate(A,"value"),Y=this.generate(R,"value");return`((s, e) => Array.from({length: Math.abs(e - s) + 1}, (_, i) => s + (i * (s <= e ? 1 : -1))))(${X}, ${Y})`}generateNot(U,_,E,$){let[A]=_;if(typeof A==="string"||A instanceof String)return`!${this.generate(A,"value")}`;if(Array.isArray(A)){let X=A[0];if([".","?.","::","?::","[]","?[]","optindex","optcall"].includes(X))return`!${this.generate(A,"value")}`}let R=this.generate(A,"value");if(R.startsWith("("))return`!${R}`;return`(!${R})`}generateBitwiseNot(U,_,E,$){let[A]=_;return`(~${this.generate(A,"value")})`}generateIncDec(U,_,E,$){let[A,R]=_,X=this.generate(A,"value");if(R)return`(${X}${U})`;else return`(${U}${X})`}generateTypeof(U,_,E,$){let[A]=_;return`typeof ${this.generate(A,"value")}`}generateDelete(U,_,E,$){let[A]=_;return`(delete ${this.generate(A,"value")})`}generateInstanceof(U,_,E,$){let[A,R]=_,X=$[0]?.invert,Y=`(${this.generate(A,"value")} instanceof ${this.generate(R,"value")})`;return X?`(!${Y})`:Y}generateIn(U,_,E,$){let[A,R]=_,X=this.generate(A,"value"),Y=$[0]?.invert;if(Array.isArray(R)&&R[0]==="object"){let D=this.generate(R,"value"),G=`(${X} in ${D})`;return Y?`(!${G})`:G}let M=this.generate(R,"value"),F=`(Array.isArray(${M}) || typeof ${M} === 'string' ? ${M}.includes(${X}) : (${X} in ${M}))`;return Y?`(!${F})`:F}generateOf(U,_,E,$){let[A,R]=_,X=this.generate(A,"value"),Y=this.generate(R,"value"),M=$[0]?.invert,F=`(${X} in ${Y})`;return M?`(!${F})`:F}generateRegexMatch(U,_,E,$){let[A,R]=_;this.helpers.add("toSearchable"),this.programVars.add("_");let X=this.generate(R,"value"),M=X.includes("/m")?", true":"";return`(_ = toSearchable(${this.generate(A,"value")}${M}).match(${X}))`}generateNew(U,_,E,$){let[A]=_;if(Array.isArray(A)&&(A[0]==="."||A[0]==="?.")){let[R,X,Y]=A;if(Array.isArray(X)&&!X[0].startsWith)return`(${this.generate(["new",X],"value")}).${Y}`;return`new ${this.generate(X,"value")}.${Y}`}if(Array.isArray(A)){let[R,...X]=A,Y=this.generate(R,"value"),M=X.map((F)=>this.unwrap(this.generate(F,"value"))).join(", ");return`new ${Y}(${M})`}return`new ${this.generate(A,"value")}()`}generateLogicalAnd(U,_,E,$){let R=this.flattenBinaryChain($).slice(1);if(R.length===0)return"true";if(R.length===1)return this.generate(R[0],"value");return`(${R.map((Y)=>this.generate(Y,"value")).join(" && ")})`}generateLogicalOr(U,_,E,$){let R=this.flattenBinaryChain($).slice(1);if(R.length===0)return"true";if(R.length===1)return this.generate(R[0],"value");return`(${R.map((Y)=>this.generate(Y,"value")).join(" || ")})`}generateArray(U,_,E,$){let A=_.length>0&&_[_.length-1]===",",R=_.map((X)=>{if(X===",")return"";if(X==="...")return"";if(Array.isArray(X)&&X[0]==="...")return`...${this.generate(X[1],"value")}`;return this.generate(X,"value")}).join(", ");return A?`[${R},]`:`[${R}]`}generateObject(U,_,E,$){if(_.length===1&&Array.isArray(_[0])&&Array.isArray(_[0][1])&&_[0][1][0]==="comprehension"){let[R,X]=_[0],[,Y,M,F]=X;return this.generate(["object-comprehension",R,Y,M,F],E)}return`{${_.map((R)=>{if(Array.isArray(R)&&R[0]==="...")return`...${this.generate(R[1],"value")}`;let[X,Y,M]=R,F;if(Array.isArray(X)&&X[0]==="dynamicKey"){let G=X[1];F=`[${this.generate(G,"value")}]`}else F=this.generate(X,"value");let D=this.generate(Y,"value");if(M==="=")return`${F} = ${D}`;else if(M===":")return`${F}: ${D}`;else{if(F===D&&!Array.isArray(X))return F;return`${F}: ${D}`}}).join(", ")}}`}generateBlock(U,_,E,$){if(E==="statement")return`{
100
+ ${this.withIndent(()=>this.formatStatements(_)).join(`
110
101
  `)}
111
- ${this.indent()}}`;return this.formatStatements(A,$)}generateTry(U,A,$,E){let R=$==="value",_="try ",X=A[0];if(R&&Array.isArray(X)&&X[0]==="block")_+=this.generateBlockWithReturns(X);else _+=this.generate(X,"statement");if(A.length>=2&&Array.isArray(A[1])&&A[1].length===2&&A[1][0]!=="block"){let[Y,F]=A[1];if(_+=" catch",Y&&Array.isArray(Y)&&(Y[0]==="object"||Y[0]==="array")){_+=" (error)";let M=`(${this.generate(Y,"value")} = error)`;if(Array.isArray(F)&&F[0]==="block")F=["block",M,...F.slice(1)];else F=["block",M,F]}else if(Y)_+=` (${Y})`;if(R&&Array.isArray(F)&&F[0]==="block")_+=" "+this.generateBlockWithReturns(F);else _+=" "+this.generate(F,"statement")}else if(A.length===2)_+=" finally "+this.generate(A[1],"statement");if(A.length===3)_+=" finally "+this.generate(A[2],"statement");if(R)return`(${this.containsAwait(A[0])||A[1]&&this.containsAwait(A[1])?"async ":""}() => { ${_} })()`;return _}generateThrow(U,A,$,E){let[R]=A,_=null;if(Array.isArray(R)){let Y=R,F=null;if(R[0]==="new"&&Array.isArray(R[1])&&(R[1][0]==="if"||R[1][0]==="unless"))F="new",Y=R[1];else if(R[0]==="if"||R[0]==="unless")Y=R;if(Y[0]==="if"||Y[0]==="unless"){let[D,Z,M]=Y,Q=D==="unless",G=M;if(Array.isArray(M)&&M.length===1)G=M[0];if(F==="new")R=["new",G];else R=G;let J=this.generate(Z,"value"),W=`throw ${this.generate(R,"value")}`;if(Q)return`if (!(${J})) {
112
- ${this.indent()} ${W};
113
- ${this.indent()}}`;else return`if (${J}) {
114
- ${this.indent()} ${W};
115
- ${this.indent()}}`}}let X=`throw ${this.generate(R,"value")}`;if($==="value")return`(() => { ${X}; })()`;return X}generateSwitch(U,A,$,E){let[R,_,X]=A;if(R===null)return this.generateSwitchAsIfChain(_,X,$);let Y=`switch (${this.generate(R,"value")}) {
116
- `;this.indentLevel++;let F=(D)=>D instanceof String?D.valueOf():D;for(let D of _){let[,Z,M]=D,Q=F(Array.isArray(Z)&&Z.length>0?Z[0]:null),J=Array.isArray(Z)&&Z.length>0&&typeof Q==="string"&&!Q.match(/^[-+*\/%<>=!&|^~]$|^(typeof|delete|new|not|await|yield)$/)?Z:[Z];for(let W of J){let H=F(W),q;if(Array.isArray(H))q=this.generate(H,"value");else if(typeof H==="string"&&(H.startsWith('"')||H.startsWith("'")))q=`'${H.slice(1,-1)}'`;else q=this.generate(H,"value");Y+=this.indent()+`case ${q}:
117
- `}this.indentLevel++,Y+=this.generateSwitchCaseBody(M,$),this.indentLevel--}if(X)Y+=this.indent()+`default:
118
- `,this.indentLevel++,Y+=this.generateSwitchCaseBody(X,$),this.indentLevel--;if(this.indentLevel--,Y+=this.indent()+"}",$==="value")return`(${_.some((M)=>this.containsAwait(M[2]))||X&&this.containsAwait(X)?"async ":""}() => { ${Y} })()`;return Y}generateWhen(U,A,$,E){throw Error("when clause should be handled by switch")}generateComprehension(U,A,$,E){let[R,_,X]=A;if($==="statement")return this.generateComprehensionAsLoop(R,_,X);if(this.comprehensionTarget)return this.generateComprehensionWithTarget(R,_,X,this.comprehensionTarget);let D=`(${this.containsAwait(R)?"async ":""}() => {
119
- `;this.indentLevel++,this.comprehensionDepth++,D+=this.indent()+`const result = [];
120
- `;for(let M of _){let[Q,G,J,W]=M;if(Q==="for-in"){let H=W,q=Array.isArray(G)?G:[G],O=q.length===0,[N,P]=O?["_i",null]:q,K=N;if(Array.isArray(N)&&(N[0]==="array"||N[0]==="object"))K=this.generateDestructuringPattern(N);if(H&&H!==null){let w=Array.isArray(J)&&J[0];if(w instanceof String)w=w.valueOf();if(w===".."||w==="..."){let z=w==="...",[S,I]=J.slice(1),L=this.generate(S,"value"),T=this.generate(I,"value"),V=this.generate(H,"value"),y=z?"<":"<=";D+=this.indent()+`for (let ${K} = ${L}; ${K} ${y} ${T}; ${K} += ${V}) {
121
- `,this.indentLevel++}else{let z=this.generate(J,"value"),S=P||"_i",I=this.generate(H,"value");if(this.isNegativeStep(H))D+=this.indent()+`for (let ${S} = ${z}.length - 1; ${S} >= 0; ${S} += ${I}) {
122
- `;else D+=this.indent()+`for (let ${S} = 0; ${S} < ${z}.length; ${S} += ${I}) {
123
- `;if(this.indentLevel++,!O)D+=this.indent()+`const ${K} = ${z}[${S}];
124
- `}}else if(P){let w=this.generate(J,"value");D+=this.indent()+`for (let ${P} = 0; ${P} < ${w}.length; ${P}++) {
125
- `,this.indentLevel++,D+=this.indent()+`const ${K} = ${w}[${P}];
126
- `}else D+=this.indent()+`for (const ${K} of ${this.generate(J,"value")}) {
127
- `,this.indentLevel++}else if(Q==="for-of"){let H=W,q=Array.isArray(G)?G:[G],[O,N]=q,P=O;if(Array.isArray(O)&&(O[0]==="array"||O[0]==="object"))P=this.generateDestructuringPattern(O);let K=this.generate(J,"value");if(D+=this.indent()+`for (const ${P} in ${K}) {
128
- `,this.indentLevel++,H)D+=this.indent()+`if (!Object.hasOwn(${K}, ${P})) continue;
129
- `;if(N)D+=this.indent()+`const ${N} = ${K}[${P}];
130
- `}else if(Q==="for-from"){let H=M[3],q=Array.isArray(G)?G:[G],[O]=q,N=O;if(Array.isArray(O)&&(O[0]==="array"||O[0]==="object"))N=this.generateDestructuringPattern(O);let P=H?"await ":"";D+=this.indent()+`for ${P}(const ${N} of ${this.generate(J,"value")}) {
131
- `,this.indentLevel++}}for(let M of X)D+=this.indent()+`if (${this.generate(M,"value")}) {
132
- `,this.indentLevel++;let Z=(M)=>{if(typeof M==="string"&&(M==="break"||M==="continue"))return!0;if(!Array.isArray(M))return!1;if(M[0]==="break"||M[0]==="continue"||M[0]==="break-if"||M[0]==="continue-if"||M[0]==="return"||M[0]==="throw")return!0;if(M[0]==="if"||M[0]==="unless")return M.slice(1).some((Q)=>Z(Q));return M.some((Q)=>Z(Q))};if(Array.isArray(R)&&R[0]==="block"){let M=R.slice(1);for(let Q=0;Q<M.length;Q++){let G=M[Q],J=Q===M.length-1,W=Z(G);if(!J||W)D+=this.indent()+this.generate(G,"statement")+`;
133
- `;else if(Array.isArray(G)&&["for-in","for-of","for-from","while","until","loop"].includes(G[0]))D+=this.indent()+this.generate(G,"statement")+`;
134
- `;else D+=this.indent()+`result.push(${this.generate(G,"value")});
135
- `}}else if(Z(R))D+=this.indent()+this.generate(R,"statement")+`;
136
- `;else if(Array.isArray(R)&&["for-in","for-of","for-from","while","until","loop"].includes(R[0]))D+=this.indent()+this.generate(R,"statement")+`;
137
- `;else D+=this.indent()+`result.push(${this.generate(R,"value")});
138
- `;for(let M=0;M<X.length;M++)this.indentLevel--,D+=this.indent()+`}
139
- `;for(let M=0;M<_.length;M++)this.indentLevel--,D+=this.indent()+`}
140
- `;return D+=this.indent()+`return result;
141
- `,this.indentLevel--,this.comprehensionDepth--,D+=this.indent()+"})()",D}generateObjectComprehension(U,A,$,E){let[R,_,X,Y]=A,F=`(() => {
142
- `;this.indentLevel++,F+=this.indent()+`const result = {};
143
- `;for(let M of X){let[Q,G,J,W]=M;if(Q==="for-of"){let[H,q]=G,O=this.generate(J,"value");if(F+=this.indent()+`for (const ${H} in ${O}) {
144
- `,this.indentLevel++,W)F+=this.indent()+`if (!Object.hasOwn(${O}, ${H})) continue;
145
- `;if(q)F+=this.indent()+`const ${q} = ${O}[${H}];
146
- `}}for(let M of Y)F+=this.indent()+`if (${this.generate(M,"value")}) {
147
- `,this.indentLevel++;let D=this.generate(R,"value"),Z=this.generate(_,"value");F+=this.indent()+`result[${D}] = ${Z};
148
- `;for(let M=0;M<Y.length;M++)this.indentLevel--,F+=this.indent()+`}
149
- `;for(let M=0;M<X.length;M++)this.indentLevel--,F+=this.indent()+`}
102
+ ${this.indent()}}`;return this.formatStatements(_,E)}generateTry(U,_,E,$){let A=E==="value",R="try ",X=_[0];if(A&&Array.isArray(X)&&X[0]==="block")R+=this.generateBlockWithReturns(X);else R+=this.generate(X,"statement");if(_.length>=2&&Array.isArray(_[1])&&_[1].length===2&&_[1][0]!=="block"){let[Y,M]=_[1];if(R+=" catch",Y&&Array.isArray(Y)&&(Y[0]==="object"||Y[0]==="array")){R+=" (error)";let G=`(${this.generate(Y,"value")} = error)`;if(Array.isArray(M)&&M[0]==="block")M=["block",G,...M.slice(1)];else M=["block",G,M]}else if(Y)R+=` (${Y})`;if(A&&Array.isArray(M)&&M[0]==="block")R+=" "+this.generateBlockWithReturns(M);else R+=" "+this.generate(M,"statement")}else if(_.length===2)R+=" finally "+this.generate(_[1],"statement");if(_.length===3)R+=" finally "+this.generate(_[2],"statement");if(A)return`(${this.containsAwait(_[0])||_[1]&&this.containsAwait(_[1])?"async ":""}() => { ${R} })()`;return R}generateThrow(U,_,E,$){let[A]=_,R=null;if(Array.isArray(A)){let Y=A,M=null;if(A[0]==="new"&&Array.isArray(A[1])&&(A[1][0]==="if"||A[1][0]==="unless"))M="new",Y=A[1];else if(A[0]==="if"||A[0]==="unless")Y=A;if(Y[0]==="if"||Y[0]==="unless"){let[F,D,G]=Y,J=F==="unless",Q=G;if(Array.isArray(G)&&G.length===1)Q=G[0];if(M==="new")A=["new",Q];else A=Q;let Z=this.generate(D,"value"),O=`throw ${this.generate(A,"value")}`;if(J)return`if (!(${Z})) {
103
+ ${this.indent()} ${O};
104
+ ${this.indent()}}`;else return`if (${Z}) {
105
+ ${this.indent()} ${O};
106
+ ${this.indent()}}`}}let X=`throw ${this.generate(A,"value")}`;if(E==="value")return`(() => { ${X}; })()`;return X}generateSwitch(U,_,E,$){let[A,R,X]=_;if(A===null)return this.generateSwitchAsIfChain(R,X,E);let Y=`switch (${this.generate(A,"value")}) {
107
+ `;this.indentLevel++;let M=(F)=>F instanceof String?F.valueOf():F;for(let F of R){let[,D,G]=F,J=M(Array.isArray(D)&&D.length>0?D[0]:null),Z=Array.isArray(D)&&D.length>0&&typeof J==="string"&&!J.match(/^[-+*\/%<>=!&|^~]$|^(typeof|delete|new|not|await|yield)$/)?D:[D];for(let O of Z){let K=M(O),H;if(Array.isArray(K))H=this.generate(K,"value");else if(typeof K==="string"&&(K.startsWith('"')||K.startsWith("'")))H=`'${K.slice(1,-1)}'`;else H=this.generate(K,"value");Y+=this.indent()+`case ${H}:
108
+ `}this.indentLevel++,Y+=this.generateSwitchCaseBody(G,E),this.indentLevel--}if(X)Y+=this.indent()+`default:
109
+ `,this.indentLevel++,Y+=this.generateSwitchCaseBody(X,E),this.indentLevel--;if(this.indentLevel--,Y+=this.indent()+"}",E==="value")return`(${R.some((G)=>this.containsAwait(G[2]))||X&&this.containsAwait(X)?"async ":""}() => { ${Y} })()`;return Y}generateWhen(U,_,E,$){throw Error("when clause should be handled by switch")}generateComprehension(U,_,E,$){let[A,R,X]=_;if(E==="statement")return this.generateComprehensionAsLoop(A,R,X);if(this.comprehensionTarget)return this.generateComprehensionWithTarget(A,R,X,this.comprehensionTarget);let F=`(${this.containsAwait(A)?"async ":""}() => {
110
+ `;this.indentLevel++,this.comprehensionDepth++,F+=this.indent()+`const result = [];
111
+ `;for(let G of R){let[J,Q,Z,O]=G;if(J==="for-in"){let K=O,H=Array.isArray(Q)?Q:[Q],W=H.length===0,[q,N]=W?["_i",null]:H,z=q;if(Array.isArray(q)&&(q[0]==="array"||q[0]==="object"))z=this.generateDestructuringPattern(q);if(K&&K!==null){let S=Array.isArray(Z)&&Z[0];if(S instanceof String)S=S.valueOf();if(S===".."||S==="..."){let I=S==="...",[T,j]=Z.slice(1),w=this.generate(T,"value"),P=this.generate(j,"value"),V=this.generate(K,"value"),u=I?"<":"<=";F+=this.indent()+`for (let ${z} = ${w}; ${z} ${u} ${P}; ${z} += ${V}) {
112
+ `,this.indentLevel++}else{let I=this.generate(Z,"value"),T=N||"_i",j=this.generate(K,"value");if(this.isNegativeStep(K))F+=this.indent()+`for (let ${T} = ${I}.length - 1; ${T} >= 0; ${T} += ${j}) {
113
+ `;else F+=this.indent()+`for (let ${T} = 0; ${T} < ${I}.length; ${T} += ${j}) {
114
+ `;if(this.indentLevel++,!W)F+=this.indent()+`const ${z} = ${I}[${T}];
115
+ `}}else if(N){let S=this.generate(Z,"value");F+=this.indent()+`for (let ${N} = 0; ${N} < ${S}.length; ${N}++) {
116
+ `,this.indentLevel++,F+=this.indent()+`const ${z} = ${S}[${N}];
117
+ `}else F+=this.indent()+`for (const ${z} of ${this.generate(Z,"value")}) {
118
+ `,this.indentLevel++}else if(J==="for-of"){let K=O,H=Array.isArray(Q)?Q:[Q],[W,q]=H,N=W;if(Array.isArray(W)&&(W[0]==="array"||W[0]==="object"))N=this.generateDestructuringPattern(W);let z=this.generate(Z,"value");if(F+=this.indent()+`for (const ${N} in ${z}) {
119
+ `,this.indentLevel++,K)F+=this.indent()+`if (!Object.hasOwn(${z}, ${N})) continue;
120
+ `;if(q)F+=this.indent()+`const ${q} = ${z}[${N}];
121
+ `}else if(J==="for-from"){let K=G[3],H=Array.isArray(Q)?Q:[Q],[W]=H,q=W;if(Array.isArray(W)&&(W[0]==="array"||W[0]==="object"))q=this.generateDestructuringPattern(W);let N=K?"await ":"";F+=this.indent()+`for ${N}(const ${q} of ${this.generate(Z,"value")}) {
122
+ `,this.indentLevel++}}for(let G of X)F+=this.indent()+`if (${this.generate(G,"value")}) {
123
+ `,this.indentLevel++;let D=(G)=>{if(typeof G==="string"&&(G==="break"||G==="continue"))return!0;if(!Array.isArray(G))return!1;if(G[0]==="break"||G[0]==="continue"||G[0]==="break-if"||G[0]==="continue-if"||G[0]==="return"||G[0]==="throw")return!0;if(G[0]==="if"||G[0]==="unless")return G.slice(1).some((J)=>D(J));return G.some((J)=>D(J))};if(Array.isArray(A)&&A[0]==="block"){let G=A.slice(1);for(let J=0;J<G.length;J++){let Q=G[J],Z=J===G.length-1,O=D(Q);if(!Z||O)F+=this.indent()+this.generate(Q,"statement")+`;
124
+ `;else if(Array.isArray(Q)&&["for-in","for-of","for-from","while","until","loop"].includes(Q[0]))F+=this.indent()+this.generate(Q,"statement")+`;
125
+ `;else F+=this.indent()+`result.push(${this.generate(Q,"value")});
126
+ `}}else if(D(A))F+=this.indent()+this.generate(A,"statement")+`;
127
+ `;else if(Array.isArray(A)&&["for-in","for-of","for-from","while","until","loop"].includes(A[0]))F+=this.indent()+this.generate(A,"statement")+`;
128
+ `;else F+=this.indent()+`result.push(${this.generate(A,"value")});
129
+ `;for(let G=0;G<X.length;G++)this.indentLevel--,F+=this.indent()+`}
130
+ `;for(let G=0;G<R.length;G++)this.indentLevel--,F+=this.indent()+`}
150
131
  `;return F+=this.indent()+`return result;
151
- `,this.indentLevel--,F+=this.indent()+"})()",F}generateClass(U,A,$,E){let[R,_,...X]=A,Y=R?`class ${R}`:"class";if(_)Y+=` extends ${this.generate(_,"value")}`;if(Y+=` {
152
- `,X.length>0&&Array.isArray(X[0])){let F=X[0];if(F[0]==="block"){let D=F.slice(1),Z=D.length>0&&Array.isArray(D[0])&&D[0][0]==="object";if(Z&&D.length===1){let Q=D[0].slice(1);this.indentLevel++;let G=[];for(let[J,W]of Q){let H=this.isStaticMember(J),q=this.isComputedMember(J),O=this.extractMemberName(J);if(this.isBoundMethod(W)&&!H&&!q&&O!=="constructor")G.push(O)}for(let[J,W]of Q){let H=this.isStaticMember(J),q=this.isComputedMember(J),O=this.extractMemberName(J);if(Array.isArray(W)&&(W[0]==="->"||W[0]==="=>")){let[N,P,K]=W,w=this.containsAwait(K),B=this.containsYield(K),z=P,S=[];if(O==="constructor"){z=P.map((y)=>{if(Array.isArray(y)&&y[0]==="."&&y[1]==="this"){let u=y[2];return S.push(`this.${u} = ${u}`),u}return y});for(let y of G)S.unshift(`this.${y} = this.${y}.bind(this)`)}let I=this.generateParamList(z),L=w?"async ":"",T=B?"*":"";if(H)Y+=this.indent()+`static ${L}${T}${O}(${I}) `;else Y+=this.indent()+`${L}${T}${O}(${I}) `;let V=O==="constructor";if(!q)this.currentMethodName=O;Y+=this.generateMethodBody(K,S,V,z),this.currentMethodName=null,Y+=`
153
- `}else if(H){let N=this.generate(W,"value");Y+=this.indent()+`static ${O} = ${N};
154
- `}else{let N=this.generate(W,"value");Y+=this.indent()+`${O} = ${N};
155
- `}}this.indentLevel--}else if(Z){let Q=D[0].slice(1),G=D.slice(1);this.indentLevel++;for(let[J,W]of Q){let H=this.isStaticMember(J),q=this.isComputedMember(J),O=this.extractMemberName(J);if(Array.isArray(W)&&(W[0]==="->"||W[0]==="=>")){let[N,P,K]=W,w=this.containsAwait(K),B=this.containsYield(K),z=this.generateParamList(P),S=w?"async ":"",I=B?"*":"";if(H)Y+=this.indent()+`static ${S}${I}${O}(${z}) `;else Y+=this.indent()+`${S}${I}${O}(${z}) `;this.currentMethodName=O,Y+=this.generateMethodBody(K,[],O==="constructor",P),this.currentMethodName=null,Y+=`
156
- `}else if(H){let N=this.generate(W,"value");Y+=this.indent()+`static ${O} = ${N};
157
- `}else{let N=this.generate(W,"value");Y+=this.indent()+`${O} = ${N};
158
- `}}for(let J of G)if(Array.isArray(J)&&J[0]==="class"){let[,W,H,...q]=J;if(Array.isArray(W)&&W[0]==="."&&W[1]==="this"){let O=W[2];Y+=this.indent()+`static ${O} = `;let N=this.generate(["class",null,H,...q],"value");Y+=N+`;
159
- `}}else Y+=this.indent()+this.generate(J,"statement")+`;
160
- `;this.indentLevel--}else{this.indentLevel++;for(let M of D)if(Array.isArray(M)&&M[0]==="="&&Array.isArray(M[1])&&M[1][0]==="."&&M[1][1]==="this"){let Q=M[1][2],G=this.generate(M[2],"value");Y+=this.indent()+`static ${Q} = ${G};
161
- `}else Y+=this.indent()+this.generate(M,"statement")+`;
162
- `;this.indentLevel--}}}return Y+=this.indent()+"}",Y}generateSuper(U,A,$,E){if(A.length===0){if(this.currentMethodName&&this.currentMethodName!=="constructor")return`super.${this.currentMethodName}()`;return"super"}let R=A.map((_)=>this.unwrap(this.generate(_,"value"))).join(", ");if(this.currentMethodName&&this.currentMethodName!=="constructor")return`super.${this.currentMethodName}(${R})`;return`super(${R})`}generateSoakCall(U,A,$,E){let[R,..._]=A,X=this.generate(R,"value"),Y=_.map((F)=>this.generate(F,"value")).join(", ");return`(typeof ${X} === 'function' ? ${X}(${Y}) : undefined)`}generateImport(U,A,$,E){if(A.length===1){let[Y]=A;return`import(${this.generate(Y,"value")})`}let[R,_]=A,X=this.addJsExtensionAndAssertions(_);if(typeof R==="string")return`import ${R} from ${X}`;if(Array.isArray(R)){if(R[0]==="*"&&R.length===2)return`import * as ${R[1]} from ${X}`;if(typeof R[0]==="string"&&Array.isArray(R[1])){let F=R[0],D=R[1];if(D[0]==="*"&&D.length===2)return`import ${F}, * as ${D[1]} from ${X}`;let Z=(Array.isArray(D)?D:[D]).map((M)=>{if(Array.isArray(M)&&M.length===2)return`${M[0]} as ${M[1]}`;return M}).join(", ");return`import ${F}, { ${Z} } from ${X}`}return`import { ${R.map((F)=>{if(Array.isArray(F)&&F.length===2)return`${F[0]} as ${F[1]}`;return F}).join(", ")} } from ${X}`}return`import ${this.generate(R,"value")} from ${X}`}generateExport(U,A,$,E){let[R]=A;if(Array.isArray(R)&&R.every((_)=>typeof _==="string"))return`export { ${R.join(", ")} }`;if(Array.isArray(R)&&R[0]==="="){let[,_,X]=R;return`export const ${_} = ${this.generate(X,"value")}`}return`export ${this.generate(R,"statement")}`}generateExportDefault(U,A,$,E){let[R]=A;if(Array.isArray(R)&&R[0]==="="){let[,_,X]=R;return`${`const ${_} = ${this.generate(X,"value")}`};
163
- export default ${_}`}return`export default ${this.generate(R,"statement")}`}generateExportAll(U,A,$,E){let[R]=A;return`export * from ${this.addJsExtensionAndAssertions(R)}`}generateExportFrom(U,A,$,E){let[R,_]=A,X=this.addJsExtensionAndAssertions(_);if(Array.isArray(R))return`export { ${R.map((F)=>{if(Array.isArray(F)&&F.length===2)return`${F[0]} as ${F[1]}`;return F}).join(", ")} } from ${X}`;return`export ${R} from ${X}`}generateDoIIFE(U,A,$,E){let[R]=A;return`(${this.generate(R,"statement")})()`}generateRegex(U,A,$,E){if(A.length===0)return U;let[R]=A;return this.generate(R,"value")}generateTaggedTemplate(U,A,$,E){let[R,_]=A,X=this.generate(R,"value"),Y=this.generate(_,"value");if(Y.startsWith("`"))return`${X}${Y}`;if(Y.startsWith('"')||Y.startsWith("'")){let F=Y.slice(1,-1);return`${X}\`${F}\``}return`${X}\`${Y}\``}generateString(U,A,$,E){let R="`";for(let _=0;_<A.length;_++){let X=A[_];if(X instanceof String)R+=this.extractStringContent(X);else if(typeof X==="string")if(X.startsWith('"')||X.startsWith("'")){if(this.options.debug)console.warn("[Rip] Unexpected quoted primitive in str interpolation:",X);R+=X.slice(1,-1)}else R+=X;else if(Array.isArray(X))if(X.length===1&&typeof X[0]==="string"&&!Array.isArray(X[0])){let Y=X[0];if(/^[\d"']/.test(Y))R+="${"+this.generate(Y,"value")+"}";else R+="${"+Y+"}"}else{let Y=X;if(X.length===1&&Array.isArray(X[0]))Y=X[0];R+="${"+this.generate(Y,"value")+"}"}}return R+="`",R}findPostfixConditional(U){if(!Array.isArray(U))return null;let A=U[0];if((A==="unless"||A==="if")&&U.length===3)return{type:A,condition:U[1],value:U[2]};if(A==="+"||A==="-"||A==="*"||A==="/")for(let $=1;$<U.length;$++){let E=this.findPostfixConditional(U[$]);if(E)return E.parentOp=A,E.operandIndex=$,E.otherOperands=U.slice(1).filter((R,_)=>_!==$-1),E}return null}generateDestructuringPattern(U){return this.formatParam(U)}generateParamList(U){let A=U.findIndex((E)=>Array.isArray(E)&&E[0]==="expansion");if(A!==-1){let E=U.slice(0,A),R=U.slice(A+1),_=E.map((Y)=>this.formatParam(Y)).join(", "),X=_?`${_}, ..._rest`:"..._rest";return this.expansionAfterParams=R,X}let $=U.findIndex((E)=>Array.isArray(E)&&E[0]==="rest");if($!==-1&&$<U.length-1){let E=U.slice(0,$),R=U[$],_=U.slice($+1),X=E.map((F)=>this.formatParam(F)),Y=X.length>0?`${X.join(", ")}, ...${R[1]}`:`...${R[1]}`;return this.restMiddleParam={restName:R[1],afterParams:_,beforeCount:E.length},Y}return this.expansionAfterParams=null,this.restMiddleParam=null,U.map((E)=>this.formatParam(E)).join(", ")}formatParam(U){if(typeof U==="string")return U;if(Array.isArray(U)&&U[0]==="rest")return`...${U[1]}`;if(Array.isArray(U)&&U[0]==="default"){let[,A,$]=U;return`${A} = ${this.generate($,"value")}`}if(Array.isArray(U)&&U[0]==="."&&U[1]==="this")return U[2];if(Array.isArray(U)&&U[0]==="array")return`[${U.slice(1).map(($)=>{if($===",")return"";if($==="...")return"";if(Array.isArray($)&&$[0]==="...")return`...${$[1]}`;if(Array.isArray($)&&$[0]==="="&&typeof $[1]==="string"){let[,E,R]=$;return`${E} = ${this.generate(R,"value")}`}if(typeof $==="string")return $;return this.formatParam($)}).join(", ")}]`;if(Array.isArray(U)&&U[0]==="object")return`{${U.slice(1).map(($)=>{if(Array.isArray($)&&$[0]==="...")return`...${$[1]}`;if(Array.isArray($)&&$[0]==="default"){let[,_,X]=$,Y=this.generate(X,"value");return`${_} = ${Y}`}let[E,R]=$;if(E===R)return E;return`${E}: ${R}`}).join(", ")}}`;return JSON.stringify(U)}generateBodyWithReturns(U,A=[],$={}){let{sideEffectOnly:E=!1,autoAssignments:R=[],isConstructor:_=!1,hasExpansionParams:X=!1}=$,Y=this.sideEffectOnly;this.sideEffectOnly=E;let F=new Set,D=(J)=>{if(typeof J==="string")F.add(J);else if(Array.isArray(J)){if(J[0]==="rest"||J[0]==="..."){if(typeof J[1]==="string")F.add(J[1])}else if(J[0]==="default"){if(typeof J[1]==="string")F.add(J[1])}else if(J[0]==="array"||J[0]==="object")this.collectVarsFromArray(J,F)}};if(Array.isArray(A))A.forEach(D);let Z=this.collectFunctionVariables(U),M=new Set([...Z].filter((J)=>!this.programVars.has(J)&&!this.reactiveVars?.has(J)&&!F.has(J))),Q=["return","throw","break","continue"],G=["for-in","for-of","for-from","while","until","loop"];if(Array.isArray(U)&&U[0]==="block"){let J=this.unwrapBlock(U);if(X&&this.expansionAfterParams&&this.expansionAfterParams.length>0)J=[...this.expansionAfterParams.map((O,N)=>{return`const ${typeof O==="string"?O:JSON.stringify(O)} = _rest[_rest.length - ${this.expansionAfterParams.length-N}]`}),...J],this.expansionAfterParams=null;if(this.restMiddleParam){let{restName:q,afterParams:O}=this.restMiddleParam,N=O.length,P=[];if(O.forEach((K,w)=>{let B=typeof K==="string"?K:Array.isArray(K)&&K[0]==="default"?K[1]:JSON.stringify(K),z=N-w;P.push(`const ${B} = ${q}[${q}.length - ${z}]`)}),N>0)P.push(`${q} = ${q}.slice(0, -${N})`);J=[...P,...J],this.restMiddleParam=null}this.indentLevel++;let W=`{
164
- `;if(M.size>0){let q=Array.from(M).sort().join(", ");W+=this.indent()+`let ${q};
165
- `}if(R.length>0&&J.length>0&&Array.isArray(J[0])&&J[0][0]==="super"){if(J.length===1&&!_)W+=this.indent()+"return "+this.generate(J[0],"value")+`;
166
- `;else W+=this.indent()+this.generate(J[0],"statement")+`;
167
- `;for(let O of R)W+=this.indent()+O+`;
168
- `;J.slice(1).forEach((O,N)=>{let P=N===J.length-2,K=Array.isArray(O)?O[0]:null;if(!P&&K==="comprehension"){let[,S,I,L]=O;W+=this.indent()+this.generateComprehensionAsLoop(S,I,L)+`
169
- `;return}if(!_&&P&&(K==="if"||K==="unless")){let[S,I,...L]=O.slice(1),T=(V)=>{return Array.isArray(V)&&V[0]==="block"&&V.length>2};if(T(I)||L.some(T)){W+=this.generateIfElseWithEarlyReturns(O);return}}let w=!_&&!E&&P&&!Q.includes(K)&&!G.includes(K)&&!this.hasExplicitControlFlow(O),B=w?"value":"statement",z=this.generate(O,B);if(w)W+=this.indent()+"return "+z+`;
170
- `;else W+=this.indent()+this.addSemicolon(O,z)+`
171
- `})}else{for(let q of R)W+=this.indent()+q+`;
172
- `;J.forEach((q,O)=>{let N=O===J.length-1,P=Array.isArray(q)?q[0]:null;if(!N&&P==="comprehension"){let[,z,S,I]=q;W+=this.indent()+this.generateComprehensionAsLoop(z,S,I)+`
173
- `;return}if(!_&&!E&&N&&(P==="if"||P==="unless")){let[z,S,...I]=q.slice(1),L=(T)=>{return Array.isArray(T)&&T[0]==="block"&&T.length>2};if(L(S)||I.some(L)){W+=this.generateIfElseWithEarlyReturns(q);return}}if(!_&&!E&&N&&P==="="){let[z,S]=q.slice(1);if(typeof z==="string"&&Array.isArray(S)){let I=S[0];if(I==="comprehension"||I==="for-in"){this.comprehensionTarget=z,W+=this.generate(S,"value"),this.comprehensionTarget=null,W+=this.indent()+`return ${z};
174
- `;return}}}let K=!_&&!E&&N&&!Q.includes(P)&&!G.includes(P)&&!this.hasExplicitControlFlow(q),w=K?"value":"statement",B=this.generate(q,w);if(K)W+=this.indent()+"return "+B+`;
175
- `;else W+=this.indent()+this.addSemicolon(q,B)+`
176
- `})}if(E&&J.length>0){let q=J[J.length-1],O=Array.isArray(q)?q[0]:null;if(!Q.includes(O))W+=this.indent()+`return;
177
- `}return this.indentLevel--,W+=this.indent()+"}",this.sideEffectOnly=Y,W}if(_||this.hasExplicitControlFlow(U))return this.sideEffectOnly=Y,`{ ${this.generate(U,"statement")}; }`;if(Array.isArray(U)&&(Q.includes(U[0])||G.includes(U[0])))return this.sideEffectOnly=Y,`{ ${this.generate(U,"statement")}; }`;if(this.sideEffectOnly=Y,E)return`{ ${this.generate(U,"statement")}; return; }`;return`{ return ${this.generate(U,"value")}; }`}generateFunctionBody(U,A=[],$=!1){let E=this.expansionAfterParams?.length>0;return this.generateBodyWithReturns(U,A,{sideEffectOnly:$,hasExpansionParams:E})}generateBlockWithReturns(U){if(!Array.isArray(U)||U[0]!=="block")return this.generate(U,"statement");let A=this.unwrapBlock(U);return`{
178
- ${this.withIndent(()=>{return A.map((E,R)=>{let _=R===A.length-1,X=Array.isArray(E)?E[0]:null,F=_&&!["return","throw","break","continue"].includes(X),D=F?"value":"statement",Z=this.generate(E,D);if(F)return this.indent()+"return "+Z+";";return this.indent()+Z+";"})}).join(`
132
+ `,this.indentLevel--,this.comprehensionDepth--,F+=this.indent()+"})()",F}generateObjectComprehension(U,_,E,$){let[A,R,X,Y]=_,M=`(() => {
133
+ `;this.indentLevel++,M+=this.indent()+`const result = {};
134
+ `;for(let G of X){let[J,Q,Z,O]=G;if(J==="for-of"){let[K,H]=Q,W=this.generate(Z,"value");if(M+=this.indent()+`for (const ${K} in ${W}) {
135
+ `,this.indentLevel++,O)M+=this.indent()+`if (!Object.hasOwn(${W}, ${K})) continue;
136
+ `;if(H)M+=this.indent()+`const ${H} = ${W}[${K}];
137
+ `}}for(let G of Y)M+=this.indent()+`if (${this.generate(G,"value")}) {
138
+ `,this.indentLevel++;let F=this.generate(A,"value"),D=this.generate(R,"value");M+=this.indent()+`result[${F}] = ${D};
139
+ `;for(let G=0;G<Y.length;G++)this.indentLevel--,M+=this.indent()+`}
140
+ `;for(let G=0;G<X.length;G++)this.indentLevel--,M+=this.indent()+`}
141
+ `;return M+=this.indent()+`return result;
142
+ `,this.indentLevel--,M+=this.indent()+"})()",M}generateClass(U,_,E,$){let[A,R,...X]=_,Y=A?`class ${A}`:"class";if(R)Y+=` extends ${this.generate(R,"value")}`;if(Y+=` {
143
+ `,X.length>0&&Array.isArray(X[0])){let M=X[0];if(M[0]==="block"){let F=M.slice(1),D=F.length>0&&Array.isArray(F[0])&&F[0][0]==="object";if(D&&F.length===1){let J=F[0].slice(1);this.indentLevel++;let Q=[];for(let[Z,O]of J){let K=this.isStaticMember(Z),H=this.isComputedMember(Z),W=this.extractMemberName(Z);if(this.isBoundMethod(O)&&!K&&!H&&W!=="constructor")Q.push(W)}for(let[Z,O]of J){let K=this.isStaticMember(Z),H=this.isComputedMember(Z),W=this.extractMemberName(Z);if(Array.isArray(O)&&(O[0]==="->"||O[0]==="=>")){let[q,N,z]=O,S=this.containsAwait(z),L=this.containsYield(z),I=N,T=[];if(W==="constructor"){I=N.map((u)=>{if(Array.isArray(u)&&u[0]==="."&&u[1]==="this"){let C=u[2];return T.push(`this.${C} = ${C}`),C}return u});for(let u of Q)T.unshift(`this.${u} = this.${u}.bind(this)`)}let j=this.generateParamList(I),w=S?"async ":"",P=L?"*":"";if(K)Y+=this.indent()+`static ${w}${P}${W}(${j}) `;else Y+=this.indent()+`${w}${P}${W}(${j}) `;let V=W==="constructor";if(!H)this.currentMethodName=W;Y+=this.generateMethodBody(z,T,V,I),this.currentMethodName=null,Y+=`
144
+ `}else if(K){let q=this.generate(O,"value");Y+=this.indent()+`static ${W} = ${q};
145
+ `}else{let q=this.generate(O,"value");Y+=this.indent()+`${W} = ${q};
146
+ `}}this.indentLevel--}else if(D){let J=F[0].slice(1),Q=F.slice(1);this.indentLevel++;for(let[Z,O]of J){let K=this.isStaticMember(Z),H=this.isComputedMember(Z),W=this.extractMemberName(Z);if(Array.isArray(O)&&(O[0]==="->"||O[0]==="=>")){let[q,N,z]=O,S=this.containsAwait(z),L=this.containsYield(z),I=this.generateParamList(N),T=S?"async ":"",j=L?"*":"";if(K)Y+=this.indent()+`static ${T}${j}${W}(${I}) `;else Y+=this.indent()+`${T}${j}${W}(${I}) `;this.currentMethodName=W,Y+=this.generateMethodBody(z,[],W==="constructor",N),this.currentMethodName=null,Y+=`
147
+ `}else if(K){let q=this.generate(O,"value");Y+=this.indent()+`static ${W} = ${q};
148
+ `}else{let q=this.generate(O,"value");Y+=this.indent()+`${W} = ${q};
149
+ `}}for(let Z of Q)if(Array.isArray(Z)&&Z[0]==="class"){let[,O,K,...H]=Z;if(Array.isArray(O)&&O[0]==="."&&O[1]==="this"){let W=O[2];Y+=this.indent()+`static ${W} = `;let q=this.generate(["class",null,K,...H],"value");Y+=q+`;
150
+ `}}else Y+=this.indent()+this.generate(Z,"statement")+`;
151
+ `;this.indentLevel--}else{this.indentLevel++;for(let G of F)if(Array.isArray(G)&&G[0]==="="&&Array.isArray(G[1])&&G[1][0]==="."&&G[1][1]==="this"){let J=G[1][2],Q=this.generate(G[2],"value");Y+=this.indent()+`static ${J} = ${Q};
152
+ `}else Y+=this.indent()+this.generate(G,"statement")+`;
153
+ `;this.indentLevel--}}}return Y+=this.indent()+"}",Y}generateSuper(U,_,E,$){if(_.length===0){if(this.currentMethodName&&this.currentMethodName!=="constructor")return`super.${this.currentMethodName}()`;return"super"}let A=_.map((R)=>this.unwrap(this.generate(R,"value"))).join(", ");if(this.currentMethodName&&this.currentMethodName!=="constructor")return`super.${this.currentMethodName}(${A})`;return`super(${A})`}generateSoakCall(U,_,E,$){let[A,...R]=_,X=this.generate(A,"value"),Y=R.map((M)=>this.generate(M,"value")).join(", ");return`(typeof ${X} === 'function' ? ${X}(${Y}) : undefined)`}generateImport(U,_,E,$){if(_.length===1){let[Y]=_;return`import(${this.generate(Y,"value")})`}let[A,R]=_,X=this.addJsExtensionAndAssertions(R);if(typeof A==="string")return`import ${A} from ${X}`;if(Array.isArray(A)){if(A[0]==="*"&&A.length===2)return`import * as ${A[1]} from ${X}`;if(typeof A[0]==="string"&&Array.isArray(A[1])){let M=A[0],F=A[1];if(F[0]==="*"&&F.length===2)return`import ${M}, * as ${F[1]} from ${X}`;let D=(Array.isArray(F)?F:[F]).map((G)=>{if(Array.isArray(G)&&G.length===2)return`${G[0]} as ${G[1]}`;return G}).join(", ");return`import ${M}, { ${D} } from ${X}`}return`import { ${A.map((M)=>{if(Array.isArray(M)&&M.length===2)return`${M[0]} as ${M[1]}`;return M}).join(", ")} } from ${X}`}return`import ${this.generate(A,"value")} from ${X}`}generateExport(U,_,E,$){let[A]=_;if(Array.isArray(A)&&A.every((R)=>typeof R==="string"))return`export { ${A.join(", ")} }`;if(Array.isArray(A)&&A[0]==="="){let[,R,X]=A;return`export const ${R} = ${this.generate(X,"value")}`}return`export ${this.generate(A,"statement")}`}generateExportDefault(U,_,E,$){let[A]=_;if(Array.isArray(A)&&A[0]==="="){let[,R,X]=A;return`${`const ${R} = ${this.generate(X,"value")}`};
154
+ export default ${R}`}return`export default ${this.generate(A,"statement")}`}generateExportAll(U,_,E,$){let[A]=_;return`export * from ${this.addJsExtensionAndAssertions(A)}`}generateExportFrom(U,_,E,$){let[A,R]=_,X=this.addJsExtensionAndAssertions(R);if(Array.isArray(A))return`export { ${A.map((M)=>{if(Array.isArray(M)&&M.length===2)return`${M[0]} as ${M[1]}`;return M}).join(", ")} } from ${X}`;return`export ${A} from ${X}`}generateDoIIFE(U,_,E,$){let[A]=_;return`(${this.generate(A,"statement")})()`}generateRegex(U,_,E,$){if(_.length===0)return U;let[A]=_;return this.generate(A,"value")}generateTaggedTemplate(U,_,E,$){let[A,R]=_,X=this.generate(A,"value"),Y=this.generate(R,"value");if(Y.startsWith("`"))return`${X}${Y}`;if(Y.startsWith('"')||Y.startsWith("'")){let M=Y.slice(1,-1);return`${X}\`${M}\``}return`${X}\`${Y}\``}generateString(U,_,E,$){let A="`";for(let R=0;R<_.length;R++){let X=_[R];if(X instanceof String)A+=this.extractStringContent(X);else if(typeof X==="string")if(X.startsWith('"')||X.startsWith("'")){if(this.options.debug)console.warn("[Rip] Unexpected quoted primitive in str interpolation:",X);A+=X.slice(1,-1)}else A+=X;else if(Array.isArray(X))if(X.length===1&&typeof X[0]==="string"&&!Array.isArray(X[0])){let Y=X[0];if(/^[\d"']/.test(Y))A+="${"+this.generate(Y,"value")+"}";else A+="${"+Y+"}"}else{let Y=X;if(X.length===1&&Array.isArray(X[0]))Y=X[0];A+="${"+this.generate(Y,"value")+"}"}}return A+="`",A}findPostfixConditional(U){if(!Array.isArray(U))return null;let _=U[0];if((_==="unless"||_==="if")&&U.length===3)return{type:_,condition:U[1],value:U[2]};if(_==="+"||_==="-"||_==="*"||_==="/")for(let E=1;E<U.length;E++){let $=this.findPostfixConditional(U[E]);if($)return $.parentOp=_,$.operandIndex=E,$.otherOperands=U.slice(1).filter((A,R)=>R!==E-1),$}return null}generateDestructuringPattern(U){return this.formatParam(U)}generateParamList(U){let _=U.findIndex(($)=>Array.isArray($)&&$[0]==="expansion");if(_!==-1){let $=U.slice(0,_),A=U.slice(_+1),R=$.map((Y)=>this.formatParam(Y)).join(", "),X=R?`${R}, ..._rest`:"..._rest";return this.expansionAfterParams=A,X}let E=U.findIndex(($)=>Array.isArray($)&&$[0]==="rest");if(E!==-1&&E<U.length-1){let $=U.slice(0,E),A=U[E],R=U.slice(E+1),X=$.map((M)=>this.formatParam(M)),Y=X.length>0?`${X.join(", ")}, ...${A[1]}`:`...${A[1]}`;return this.restMiddleParam={restName:A[1],afterParams:R,beforeCount:$.length},Y}return this.expansionAfterParams=null,this.restMiddleParam=null,U.map(($)=>this.formatParam($)).join(", ")}formatParam(U){if(typeof U==="string")return U;if(Array.isArray(U)&&U[0]==="rest")return`...${U[1]}`;if(Array.isArray(U)&&U[0]==="default"){let[,_,E]=U;return`${_} = ${this.generate(E,"value")}`}if(Array.isArray(U)&&U[0]==="."&&U[1]==="this")return U[2];if(Array.isArray(U)&&U[0]==="array")return`[${U.slice(1).map((E)=>{if(E===",")return"";if(E==="...")return"";if(Array.isArray(E)&&E[0]==="...")return`...${E[1]}`;if(Array.isArray(E)&&E[0]==="="&&typeof E[1]==="string"){let[,$,A]=E;return`${$} = ${this.generate(A,"value")}`}if(typeof E==="string")return E;return this.formatParam(E)}).join(", ")}]`;if(Array.isArray(U)&&U[0]==="object")return`{${U.slice(1).map((E)=>{if(Array.isArray(E)&&E[0]==="...")return`...${E[1]}`;if(Array.isArray(E)&&E[0]==="default"){let[,R,X]=E,Y=this.generate(X,"value");return`${R} = ${Y}`}let[$,A]=E;if($===A)return $;return`${$}: ${A}`}).join(", ")}}`;return JSON.stringify(U)}generateBodyWithReturns(U,_=[],E={}){let{sideEffectOnly:$=!1,autoAssignments:A=[],isConstructor:R=!1,hasExpansionParams:X=!1}=E,Y=this.sideEffectOnly;this.sideEffectOnly=$;let M=new Set,F=(Z)=>{if(typeof Z==="string")M.add(Z);else if(Array.isArray(Z)){if(Z[0]==="rest"||Z[0]==="..."){if(typeof Z[1]==="string")M.add(Z[1])}else if(Z[0]==="default"){if(typeof Z[1]==="string")M.add(Z[1])}else if(Z[0]==="array"||Z[0]==="object")this.collectVarsFromArray(Z,M)}};if(Array.isArray(_))_.forEach(F);let D=this.collectFunctionVariables(U),G=new Set([...D].filter((Z)=>!this.programVars.has(Z)&&!this.reactiveVars?.has(Z)&&!M.has(Z))),J=["return","throw","break","continue"],Q=["for-in","for-of","for-from","while","until","loop"];if(Array.isArray(U)&&U[0]==="block"){let Z=this.unwrapBlock(U);if(X&&this.expansionAfterParams&&this.expansionAfterParams.length>0)Z=[...this.expansionAfterParams.map((W,q)=>{return`const ${typeof W==="string"?W:JSON.stringify(W)} = _rest[_rest.length - ${this.expansionAfterParams.length-q}]`}),...Z],this.expansionAfterParams=null;if(this.restMiddleParam){let{restName:H,afterParams:W}=this.restMiddleParam,q=W.length,N=[];if(W.forEach((z,S)=>{let L=typeof z==="string"?z:Array.isArray(z)&&z[0]==="default"?z[1]:JSON.stringify(z),I=q-S;N.push(`const ${L} = ${H}[${H}.length - ${I}]`)}),q>0)N.push(`${H} = ${H}.slice(0, -${q})`);Z=[...N,...Z],this.restMiddleParam=null}this.indentLevel++;let O=`{
155
+ `;if(G.size>0){let H=Array.from(G).sort().join(", ");O+=this.indent()+`let ${H};
156
+ `}if(A.length>0&&Z.length>0&&Array.isArray(Z[0])&&Z[0][0]==="super"){if(Z.length===1&&!R)O+=this.indent()+"return "+this.generate(Z[0],"value")+`;
157
+ `;else O+=this.indent()+this.generate(Z[0],"statement")+`;
158
+ `;for(let W of A)O+=this.indent()+W+`;
159
+ `;Z.slice(1).forEach((W,q)=>{let N=q===Z.length-2,z=Array.isArray(W)?W[0]:null;if(!N&&z==="comprehension"){let[,T,j,w]=W;O+=this.indent()+this.generateComprehensionAsLoop(T,j,w)+`
160
+ `;return}if(!R&&N&&(z==="if"||z==="unless")){let[T,j,...w]=W.slice(1),P=(V)=>{return Array.isArray(V)&&V[0]==="block"&&V.length>2};if(P(j)||w.some(P)){O+=this.generateIfElseWithEarlyReturns(W);return}}let S=!R&&!$&&N&&!J.includes(z)&&!Q.includes(z)&&!this.hasExplicitControlFlow(W),L=S?"value":"statement",I=this.generate(W,L);if(S)O+=this.indent()+"return "+I+`;
161
+ `;else O+=this.indent()+this.addSemicolon(W,I)+`
162
+ `})}else{for(let H of A)O+=this.indent()+H+`;
163
+ `;Z.forEach((H,W)=>{let q=W===Z.length-1,N=Array.isArray(H)?H[0]:null;if(!q&&N==="comprehension"){let[,I,T,j]=H;O+=this.indent()+this.generateComprehensionAsLoop(I,T,j)+`
164
+ `;return}if(!R&&!$&&q&&(N==="if"||N==="unless")){let[I,T,...j]=H.slice(1),w=(P)=>{return Array.isArray(P)&&P[0]==="block"&&P.length>2};if(w(T)||j.some(w)){O+=this.generateIfElseWithEarlyReturns(H);return}}if(!R&&!$&&q&&N==="="){let[I,T]=H.slice(1);if(typeof I==="string"&&Array.isArray(T)){let j=T[0];if(j==="comprehension"||j==="for-in"){this.comprehensionTarget=I,O+=this.generate(T,"value"),this.comprehensionTarget=null,O+=this.indent()+`return ${I};
165
+ `;return}}}let z=!R&&!$&&q&&!J.includes(N)&&!Q.includes(N)&&!this.hasExplicitControlFlow(H),S=z?"value":"statement",L=this.generate(H,S);if(z)O+=this.indent()+"return "+L+`;
166
+ `;else O+=this.indent()+this.addSemicolon(H,L)+`
167
+ `})}if($&&Z.length>0){let H=Z[Z.length-1],W=Array.isArray(H)?H[0]:null;if(!J.includes(W))O+=this.indent()+`return;
168
+ `}return this.indentLevel--,O+=this.indent()+"}",this.sideEffectOnly=Y,O}if(R||this.hasExplicitControlFlow(U))return this.sideEffectOnly=Y,`{ ${this.generate(U,"statement")}; }`;if(Array.isArray(U)&&(J.includes(U[0])||Q.includes(U[0])))return this.sideEffectOnly=Y,`{ ${this.generate(U,"statement")}; }`;if(this.sideEffectOnly=Y,$)return`{ ${this.generate(U,"statement")}; return; }`;return`{ return ${this.generate(U,"value")}; }`}generateFunctionBody(U,_=[],E=!1){let $=this.expansionAfterParams?.length>0;return this.generateBodyWithReturns(U,_,{sideEffectOnly:E,hasExpansionParams:$})}generateBlockWithReturns(U){if(!Array.isArray(U)||U[0]!=="block")return this.generate(U,"statement");let _=this.unwrapBlock(U);return`{
169
+ ${this.withIndent(()=>{return _.map(($,A)=>{let R=A===_.length-1,X=Array.isArray($)?$[0]:null,M=R&&!["return","throw","break","continue"].includes(X),F=M?"value":"statement",D=this.generate($,F);if(M)return this.indent()+"return "+D+";";return this.indent()+D+";"})}).join(`
179
170
  `)}
180
- ${this.indent()}}`}extractExpression(U){let A=this.unwrapBlock(U);if(A.length>0)return this.generate(A[A.length-1],"value");return"undefined"}generateMethodBody(U,A=[],$=!1,E=[]){return this.generateBodyWithReturns(U,E,{autoAssignments:A,isConstructor:$})}generateLoopBody(U){if(!Array.isArray(U)){if(Array.isArray(U)&&U[0]==="comprehension"){let[,A,$,E]=U;return`{ ${this.generateComprehensionAsLoop(A,$,E)} }`}return`{ ${this.generate(U,"statement")}; }`}if(U[0]==="block"||Array.isArray(U[0])){let A=U[0]==="block"?U.slice(1):U;return`{
181
- ${this.withIndent(()=>{return A.map((E)=>{if(Array.isArray(E)&&E[0]==="comprehension"){let[,R,_,X]=E;return this.indent()+this.generateComprehensionAsLoop(R,_,X)}return this.indent()+this.addSemicolon(E,this.generate(E,"statement"))})}).join(`
171
+ ${this.indent()}}`}extractExpression(U){let _=this.unwrapBlock(U);if(_.length>0)return this.generate(_[_.length-1],"value");return"undefined"}generateMethodBody(U,_=[],E=!1,$=[]){return this.generateBodyWithReturns(U,$,{autoAssignments:_,isConstructor:E})}generateLoopBody(U){if(!Array.isArray(U)){if(Array.isArray(U)&&U[0]==="comprehension"){let[,_,E,$]=U;return`{ ${this.generateComprehensionAsLoop(_,E,$)} }`}return`{ ${this.generate(U,"statement")}; }`}if(U[0]==="block"||Array.isArray(U[0])){let _=U[0]==="block"?U.slice(1):U;return`{
172
+ ${this.withIndent(()=>{return _.map(($)=>{if(Array.isArray($)&&$[0]==="comprehension"){let[,A,R,X]=$;return this.indent()+this.generateComprehensionAsLoop(A,R,X)}return this.indent()+this.addSemicolon($,this.generate($,"statement"))})}).join(`
182
173
  `)}
183
- ${this.indent()}}`}return`{ ${this.generate(U,"statement")}; }`}generateLoopBodyWithGuard(U,A){let $=this.unwrap(this.generate(A,"value"));if(!Array.isArray(U))return`{ if (${$}) ${this.generate(U,"statement")}; }`;if(U[0]==="block"||Array.isArray(U[0])){let E=U[0]==="block"?U.slice(1):U,R=this.withIndent(()=>this.indent()),_=`if (${$}) {
184
- `,X=this.withIndent(()=>{this.indentLevel++;let F=this.formatStatements(E);return this.indentLevel--,F}),Y=this.withIndent(()=>this.indent()+"}");return`{
185
- ${R}${_}${X.join(`
174
+ ${this.indent()}}`}return`{ ${this.generate(U,"statement")}; }`}generateLoopBodyWithGuard(U,_){let E=this.unwrap(this.generate(_,"value"));if(!Array.isArray(U))return`{ if (${E}) ${this.generate(U,"statement")}; }`;if(U[0]==="block"||Array.isArray(U[0])){let $=U[0]==="block"?U.slice(1):U,A=this.withIndent(()=>this.indent()),R=`if (${E}) {
175
+ `,X=this.withIndent(()=>{this.indentLevel++;let M=this.formatStatements($);return this.indentLevel--,M}),Y=this.withIndent(()=>this.indent()+"}");return`{
176
+ ${A}${R}${X.join(`
186
177
  `)}
187
178
  ${Y}
188
- ${this.indent()}}`}return`{ if (${this.generate(A,"value")}) ${this.generate(U,"statement")}; }`}addJsExtensionAndAssertions(U){if(U instanceof String)U=U.valueOf();if(typeof U!=="string")return U;let $=U.startsWith('"')||U.startsWith("'")?U.slice(1,-1):U,E=$.startsWith("./")||$.startsWith("../"),R=$,_="";if(E){let Y=$.lastIndexOf("/"),F=Y>=0?$.substring(Y+1):$;if(F.includes(".")){if(F.endsWith(".json"))_=" with { type: 'json' }"}else R=$+".js"}return`'${R}'`+_}shouldAwaitCall(U){if(U instanceof String&&U.await!==void 0)return U.await===!0;return!1}containsAwait(U){if(!U)return!1;if(U instanceof String&&U.await===!0)return!0;if(typeof U!=="object")return!1;if(Array.isArray(U)&&U[0]==="await")return!0;if(Array.isArray(U)&&U[0]==="for-from"&&U[3]===!0)return!0;if(Array.isArray(U)&&(U[0]==="def"||U[0]==="->"||U[0]==="=>"||U[0]==="class"))return!1;if(Array.isArray(U))return U.some((A)=>this.containsAwait(A));return!1}containsYield(U){if(!U)return!1;if(typeof U!=="object")return!1;if(Array.isArray(U)&&(U[0]==="yield"||U[0]==="yield-from"))return!0;if(Array.isArray(U)&&(U[0]==="def"||U[0]==="->"||U[0]==="=>"||U[0]==="class"))return!1;if(Array.isArray(U))return U.some((A)=>this.containsYield(A));return!1}extractStringContent(U){let A=U.valueOf().slice(1,-1);if(U.indent){let $=new RegExp(`\\n${U.indent}`,"g");A=A.replace($,`
189
- `)}if(U.initialChunk&&A.startsWith(`
190
- `))A=A.slice(1);if(U.finalChunk&&A.endsWith(`
191
- `))A=A.slice(0,-1);return A}processHeregex(U){let A="",$=!1,E=0;while(E<U.length){let R=U[E],_=E>0?U[E-1]:null,X=U[E+1],Y=()=>{let F=0,D=E-1;while(D>=0&&U[D]==="\\")F++,D--;return F%2===1};if(R==="["&&!Y()){$=!0,A+=R,E++;continue}if(R==="]"&&$&&!Y()){$=!1,A+=R,E++;continue}if($){A+=R,E++;continue}if(/\s/.test(R)){E++;continue}if(R==="#"){if(Y()){A+=R,E++;continue}let F=E-1;while(F>=0&&U[F]==="\\")F--;if(F<E-1){A+=R,E++;continue}while(E<U.length&&U[E]!==`
192
- `)E++;continue}A+=R,E++}return A}collectVarsFromArray(U,A){U.slice(1).forEach(($)=>{if($===",")return;if($==="...")return;if(typeof $==="string")A.add($);else if(Array.isArray($)){if($[0]==="..."){if(typeof $[1]==="string")A.add($[1])}else if($[0]==="array")this.collectVarsFromArray($,A);else if($[0]==="object")this.collectVarsFromObject($,A)}})}collectVarsFromObject(U,A){U.slice(1).forEach(($)=>{if(Array.isArray($)){if($[0]==="..."){if(typeof $[1]==="string")A.add($[1])}else if($.length>=2){let[E,R,_]=$;if(_==="="){if(typeof E==="string")A.add(E)}else if(typeof R==="string")A.add(R);else if(Array.isArray(R)){if(R[0]==="array")this.collectVarsFromArray(R,A);else if(R[0]==="object")this.collectVarsFromObject(R,A)}}}})}indent(){return this.indentString.repeat(this.indentLevel)}unwrapBlock(U){if(!Array.isArray(U))return[U];if(U[0]==="block")return U.slice(1);if(Array.isArray(U[0]))return U;return[U]}needsSemicolon(U,A){if(!A||A.endsWith(";"))return!1;if(!A.endsWith("}"))return!0;let $=Array.isArray(U)?U[0]:null;return!["def","class","if","unless","for-in","for-of","for-from","while","until","loop","switch","try"].includes($)}addSemicolon(U,A){return A+(this.needsSemicolon(U,A)?";":"")}formatStatements(U,A="statement"){return U.map(($)=>this.indent()+this.addSemicolon($,this.generate($,A)))}hasExplicitControlFlow(U){if(!Array.isArray(U))return!1;let A=U[0];if(A==="return"||A==="throw"||A==="break"||A==="continue")return!0;if(A==="block"){let $=U.slice(1);if($.length===0)return!1;return $.some((E)=>Array.isArray(E)&&(E[0]==="return"||E[0]==="throw"||E[0]==="break"||E[0]==="continue"))}if(A==="switch"){let[,,$]=U;return $&&$.some((E)=>{let R=E[2];return this.unwrapBlock(R).some((X)=>Array.isArray(X)&&(X[0]==="return"||X[0]==="throw"||X[0]==="break"||X[0]==="continue"))})}if(A==="if"||A==="unless"){let[,,$,E]=U,R=this.branchHasControlFlow($),_=E&&this.branchHasControlFlow(E);return R&&_}return!1}branchHasControlFlow(U){if(!Array.isArray(U))return!1;let A=this.unwrapBlock(U);if(A.length===0)return!1;let $=A[A.length-1];return Array.isArray($)&&($[0]==="return"||$[0]==="throw"||$[0]==="break"||$[0]==="continue")}withIndent(U){this.indentLevel++;let A=U();return this.indentLevel--,A}isNegativeStep(U){if(!Array.isArray(U))return!1;if(U.length!==2)return!1;return(U[0]instanceof String?U[0].valueOf():U[0])==="-"}generateBranchWithReturn(U){let A=this.unwrapBlock(U),$="";for(let E=0;E<A.length;E++){let R=E===A.length-1,_=A[E],X=Array.isArray(_)?_[0]:null;if(R&&!(X==="return"||X==="throw"||X==="break"||X==="continue"))$+=this.indent()+`return ${this.generate(_,"value")};
193
- `;else $+=this.indent()+this.generate(_,"statement")+`;
194
- `}return $}generateComprehensionWithTarget(U,A,$,E){let R="";R+=this.indent()+`${E} = [];
195
- `;let _=U;if(Array.isArray(U)&&U[0]==="block"&&U.length===2)_=U[1];if(A.length===1){let F=A[0],[D,Z,M,Q]=F;if(D==="for-in"){let G=Q,J=Array.isArray(Z)?Z:[Z],W=J.length===0,[H,q]=W?["_i",null]:J,O=H;if(Array.isArray(H)&&(H[0]==="array"||H[0]==="object"))O=this.generateDestructuringPattern(H);if(G&&G!==null){let P=Array.isArray(M)&&M[0];if(P instanceof String)P=P.valueOf();if(P===".."||P==="..."){let w=P==="...",[B,z]=M.slice(1),S=this.generate(B,"value"),I=this.generate(z,"value"),L=this.generate(G,"value"),T=w?"<":"<=";R+=this.indent()+`for (let ${O} = ${S}; ${O} ${T} ${I}; ${O} += ${L}) {
196
- `}else{let w=this.generate(M,"value"),B=q||"_i",z=this.generate(G,"value");if(this.isNegativeStep(G))R+=this.indent()+`for (let ${B} = ${w}.length - 1; ${B} >= 0; ${B} += ${z}) {
197
- `;else R+=this.indent()+`for (let ${B} = 0; ${B} < ${w}.length; ${B} += ${z}) {
198
- `;if(this.indentLevel++,!W)R+=this.indent()+`const ${O} = ${w}[${B}];
199
- `}}else{let P=this.generate(M,"value");R+=this.indent()+`for (const ${O} of ${P}) {
200
- `}if(this.indentLevel++,$&&$.length>0)R+=this.indent()+`if (${$.map((P)=>this.generate(P,"value")).join(" && ")}) {
201
- `,this.indentLevel++;let N=this.unwrap(this.generate(_,"value"));if(R+=this.indent()+`${E}.push(${N});
202
- `,$&&$.length>0)this.indentLevel--,R+=this.indent()+`}
203
- `;return this.indentLevel--,R+=this.indent()+`}
204
- `,R}}let Y=this.containsAwait(U)?"async ":"";return this.indent()+`${E} = (${Y}() => { /* complex comprehension */ })();
205
- `}generateComprehensionAsLoop(U,A,$){let E="";if(A.length===1){let R=A[0],[_,X,Y,F]=R;if(_==="for-in"){let D=F,Z=Array.isArray(X)?X:[X],M=Z.length===0,[Q,G]=M?["_i",null]:Z,J=Q;if(Array.isArray(Q)&&(Q[0]==="array"||Q[0]==="object"))J=this.generateDestructuringPattern(Q);if(D&&D!==null){let W=Array.isArray(Y)&&Y[0];if(W instanceof String)W=W.valueOf();let H=W===".."||W==="...";if(H){let q=W==="...",[O,N]=Y.slice(1),P=this.generate(O,"value"),K=this.generate(N,"value"),w=this.generate(D,"value");E+=`for (let ${J} = ${P}; ${J} ${q?"<":"<="} ${K}; ${J} += ${w}) `}else{let q=this.generate(Y,"value"),O=G||"_i",N=this.generate(D,"value"),P=this.isNegativeStep(D),K=P&&(D[1]==="1"||D[1]===1||D[1]instanceof String&&D[1].valueOf()==="1"),w=!P&&(D==="1"||D===1||D instanceof String&&D.valueOf()==="1");if(K)E+=`for (let ${O} = ${q}.length - 1; ${O} >= 0; ${O}--) `;else if(w)E+=`for (let ${O} = 0; ${O} < ${q}.length; ${O}++) `;else if(P)E+=`for (let ${O} = ${q}.length - 1; ${O} >= 0; ${O} += ${N}) `;else E+=`for (let ${O} = 0; ${O} < ${q}.length; ${O} += ${N}) `;if(E+=`{
206
- `,this.indentLevel++,!M)E+=this.indent()+`const ${J} = ${q}[${O}];
207
- `}if($&&$.length>0){if(!H)E+=this.indent();E+=`{
208
- `,this.indentLevel++,E+=this.indent()+`if (${$.map((q)=>this.generate(q,"value")).join(" && ")}) {
209
- `,this.indentLevel++,E+=this.indent()+this.generate(U,"statement")+`;
210
- `,this.indentLevel--,E+=this.indent()+`}
211
- `,this.indentLevel--,E+=this.indent()+"}"}else{if(!H)E+=this.indent();E+=`{
212
- `,this.indentLevel++,E+=this.indent()+this.generate(U,"statement")+`;
213
- `,this.indentLevel--,E+=this.indent()+"}"}if(!H)this.indentLevel--,E+=`
214
- `+this.indent()+"}";return E}else if(G){let W=this.generate(Y,"value");E+=`for (let ${G} = 0; ${G} < ${W}.length; ${G}++) `,E+=`{
215
- `,this.indentLevel++,E+=this.indent()+`const ${J} = ${W}[${indexVarName}];
216
- `}else{if(E+=`for (const ${J} of ${this.generate(Y,"value")}) `,$&&$.length>0)E+=`{
217
- `,this.indentLevel++,E+=this.indent()+`if (${$.map((W)=>this.generate(W,"value")).join(" && ")}) {
218
- `,this.indentLevel++,E+=this.indent()+this.generate(U,"statement")+`;
219
- `,this.indentLevel--,E+=this.indent()+`}
220
- `,this.indentLevel--,E+=this.indent()+"}";else E+=`{
221
- `,this.indentLevel++,E+=this.indent()+this.generate(U,"statement")+`;
222
- `,this.indentLevel--,E+=this.indent()+"}";return E}}else if(_==="for-from"){let D=Array.isArray(X)?X:[X],[Z]=D,M=Z;if(Array.isArray(Z)&&(Z[0]==="array"||Z[0]==="object"))M=this.generateDestructuringPattern(Z);if(E+=`for (const ${M} of ${this.generate(Y,"value")}) `,$&&$.length>0)E+=`{
223
- `,this.indentLevel++,E+=this.indent()+`if (${$.map((Q)=>this.generate(Q,"value")).join(" && ")}) {
224
- `,this.indentLevel++,E+=this.indent()+this.generate(U,"statement")+`;
225
- `,this.indentLevel--,E+=this.indent()+`}
226
- `,this.indentLevel--,E+=this.indent()+"}";else E+=`{
227
- `,this.indentLevel++,E+=this.indent()+this.generate(U,"statement")+`;
228
- `,this.indentLevel--,E+=this.indent()+"}";return E}else if(_==="for-of"){let D=Array.isArray(X)?X:[X],[Z,M]=D,Q=F,G=this.generate(Y,"value");if(E+=`for (const ${Z} in ${G}) `,E+=`{
229
- `,this.indentLevel++,Q&&!M&&!$?.length)E+=this.indent()+`if (!Object.hasOwn(${G}, ${Z})) continue;
230
- `,E+=this.indent()+this.generate(U,"statement")+`;
231
- `;else if(Q&&M&&$?.length)E+=this.indent()+`if (Object.hasOwn(${G}, ${Z})) {
232
- `,this.indentLevel++,E+=this.indent()+`const ${M} = ${G}[${Z}];
233
- `,E+=this.indent()+`if (${$.map((J)=>this.generate(J,"value")).join(" && ")}) {
234
- `,this.indentLevel++,E+=this.indent()+this.generate(U,"statement")+`;
235
- `,this.indentLevel--,E+=this.indent()+`}
236
- `,this.indentLevel--,E+=this.indent()+`}
237
- `;else if(Q&&M)E+=this.indent()+`if (Object.hasOwn(${G}, ${Z})) {
238
- `,this.indentLevel++,E+=this.indent()+`const ${M} = ${G}[${Z}];
239
- `,E+=this.indent()+this.generate(U,"statement")+`;
240
- `,this.indentLevel--,E+=this.indent()+`}
241
- `;else if(M&&$?.length)E+=this.indent()+`const ${M} = ${G}[${Z}];
242
- `,E+=this.indent()+`if (${$.map((J)=>this.generate(J,"value")).join(" && ")}) {
243
- `,this.indentLevel++,E+=this.indent()+this.generate(U,"statement")+`;
244
- `,this.indentLevel--,E+=this.indent()+`}
245
- `;else if(M)E+=this.indent()+`const ${M} = ${G}[${Z}];
246
- `,E+=this.indent()+this.generate(U,"statement")+`;
247
- `;else if($?.length)E+=this.indent()+`if (${$.map((J)=>this.generate(J,"value")).join(" && ")}) {
248
- `,this.indentLevel++,E+=this.indent()+this.generate(U,"statement")+`;
249
- `,this.indentLevel--,E+=this.indent()+`}
250
- `;else E+=this.indent()+this.generate(U,"statement")+`;
251
- `;return this.indentLevel--,E+=this.indent()+"}",E}}return this.generate(["comprehension",U,A,$],"value")}generateIfElseWithEarlyReturns(U){let[A,$,E,...R]=U,_="",X=A==="unless"?`!${this.generate($,"value")}`:this.generate($,"value");_+=this.indent()+`if (${X}) {
252
- `,_+=this.withIndent(()=>this.generateBranchWithReturn(E)),_+=this.indent()+"}";for(let Y of R)if(_+=" else ",Array.isArray(Y)&&Y[0]==="if"){let[,F,D,...Z]=Y;if(_+=`if (${this.generate(F,"value")}) {
253
- `,_+=this.withIndent(()=>this.generateBranchWithReturn(D)),_+=this.indent()+"}",Z.length>0)for(let M of Z)_+=` else {
254
- `,_+=this.withIndent(()=>this.generateBranchWithReturn(M)),_+=this.indent()+"}"}else _+=`{
255
- `,_+=this.withIndent(()=>this.generateBranchWithReturn(Y)),_+=this.indent()+"}";return _}unwrap(U){if(typeof U!=="string")return U;while(U.startsWith("(")&&U.endsWith(")")){let A=0,$=!0;for(let E=0;E<U.length;E++){if(U[E]==="(")A++;if(U[E]===")")A--;if(A===0&&E<U.length-1){$=!1;break}}if($)U=U.slice(1,-1);else break}return U}flattenBinaryChain(U){if(!Array.isArray(U)||U.length<3)return U;let[A,...$]=U;if(A!=="&&"&&A!=="||")return U;let E=[],R=(_)=>{if(Array.isArray(_)&&_[0]===A)for(let X=1;X<_.length;X++)R(_[X]);else E.push(_)};for(let _ of $)R(_);return[A,...E]}unwrapLogical(U){if(typeof U!=="string")return U;while(U.startsWith("(")&&U.endsWith(")")){let A=0,$=1/0;for(let E=1;E<U.length-1;E++){if(U[E]==="(")A++;if(U[E]===")")A--;$=Math.min($,A)}if($>=0)U=U.slice(1,-1);else break}return U}unwrapIfBranch(U){if(Array.isArray(U)&&U.length===1){let A=U[0];if(!Array.isArray(A)||A[0]!=="block")return A}return U}isNegativeOneLiteral(U){return Array.isArray(U)&&U[0]==="-"&&U.length===2&&(U[1]==="1"||U[1]===1||U[1]instanceof String&&U[1].valueOf()==="1")}hasStatementInBranch(U){if(!Array.isArray(U))return!1;let A=U[0];if(A==="return"||A==="throw"||A==="break"||A==="continue")return!0;if(A==="block")return U.slice(1).some((E)=>this.hasStatementInBranch(E));return!1}isMultiStatementBlock(U){return Array.isArray(U)&&U[0]==="block"&&U.length>2}hasNestedMultiStatement(U){if(!Array.isArray(U))return!1;if(U[0]==="if"){let[A,$,E,...R]=U;return this.isMultiStatementBlock(E)||R.some((_)=>this.hasNestedMultiStatement(_))}return!1}buildTernaryChain(U){if(U.length===0)return"undefined";if(U.length===1)return this.extractExpression(this.unwrapIfBranch(U[0]));let A=U[0];if(Array.isArray(A)&&A[0]==="if"){let[$,E,R,..._]=A,X=this.extractExpression(this.unwrapIfBranch(R)),Y=this.buildTernaryChain([..._,...U.slice(1)]);return`(${this.generate(E,"value")} ? ${X} : ${Y})`}return this.extractExpression(this.unwrapIfBranch(A))}generateIfAsExpression(U,A,$){if(this.isMultiStatementBlock(A)||this.hasStatementInBranch(A)||$.some((Y)=>this.isMultiStatementBlock(Y)||this.hasStatementInBranch(Y)||this.hasNestedMultiStatement(Y))){let Y=this.containsAwait(U)||this.containsAwait(A)||$.some((M)=>this.containsAwait(M)),Z=`${Y?"await ":""}(${Y?"async ":""}() => { `;Z+=`if (${this.generate(U,"value")}) `,Z+=this.generateBlockWithReturns(A);for(let M of $)if(Z+=" else ",Array.isArray(M)&&M[0]==="if"){let[Q,G,J,...W]=M;Z+=`if (${this.generate(G,"value")}) `,Z+=this.generateBlockWithReturns(J);for(let H of W)if(Z+=" else ",Array.isArray(H)&&H[0]==="if"){let[q,O,N,...P]=H;Z+=`if (${this.generate(O,"value")}) `,Z+=this.generateBlockWithReturns(N),$.push(...P)}else Z+=this.generateBlockWithReturns(H)}else Z+=this.generateBlockWithReturns(M);return Z+=" })()",Z}let R=this.extractExpression(this.unwrapIfBranch(A)),_=this.buildTernaryChain($),X=this.generate(U,"value");if(Array.isArray(U)&&(U[0]==="yield"||U[0]==="await"))X=`(${X})`;return`(${X} ? ${R} : ${_})`}generateIfAsStatement(U,A,$){let R=`if (${this.unwrap(this.generate(U,"value"))}) `;R+=this.generate(this.unwrapIfBranch(A),"statement");for(let _ of $)R+=" else ",R+=this.generate(this.unwrapIfBranch(_),"statement");return R}isStaticMember(U){return Array.isArray(U)&&U[0]==="."&&U[1]==="this"}isComputedMember(U){return Array.isArray(U)&&U[0]==="computed"}extractMemberName(U){if(this.isStaticMember(U))return U[2];else if(this.isComputedMember(U))return`[${this.generate(U[1],"value")}]`;else return U}isBoundMethod(U){return Array.isArray(U)&&U[0]==="=>"}generateSwitchCaseBody(U,A){let $="";if(this.hasExplicitControlFlow(U)){let R=this.unwrapBlock(U);for(let _ of R)$+=this.indent()+this.generate(_,"statement")+`;
256
- `}else if(A==="value")if(Array.isArray(U)&&U[0]==="block"&&U.length>2){let R=U.slice(1);for(let _=0;_<R.length;_++)if(_===R.length-1){let Y=this.generate(R[_],"value");$+=this.indent()+`return ${Y};
257
- `}else $+=this.indent()+this.generate(R[_],"statement")+`;
258
- `}else{let R=this.extractExpression(U);$+=this.indent()+`return ${R};
259
- `}else{if(Array.isArray(U)&&U[0]==="block"&&U.length>1){let R=U.slice(1);for(let _ of R)$+=this.indent()+this.generate(_,"statement")+`;
260
- `}else{let R=this.generate(U,"statement");$+=this.indent()+R+`;
261
- `}$+=this.indent()+`break;
262
- `}return $}generateSwitchAsIfChain(U,A,$){let E="";for(let R=0;R<U.length;R++){let _=U[R],[,X,Y]=_;if(R===0)E+=`if (${this.generate(X,"value")}) {
263
- `;else E+=` else if (${this.generate(X,"value")}) {
264
- `;if(this.indentLevel++,$==="value"){let F=this.extractExpression(Y);E+=this.indent()+`return ${F};
265
- `}else{let F=this.unwrapBlock(Y);for(let D of F)E+=this.indent()+this.generate(D,"statement")+`;
266
- `}this.indentLevel--,E+=this.indent()+"}"}if(A){if(E+=` else {
267
- `,this.indentLevel++,$==="value"){let R=this.extractExpression(A);E+=this.indent()+`return ${R};
268
- `}else{let R=this.unwrapBlock(A);for(let _ of R)E+=this.indent()+this.generate(_,"statement")+`;
269
- `}this.indentLevel--,E+=this.indent()+"}"}if($==="value")return`(() => { ${E} })()`;return E}getReactiveRuntime(){return`// ============================================================================
179
+ ${this.indent()}}`}return`{ if (${this.generate(_,"value")}) ${this.generate(U,"statement")}; }`}addJsExtensionAndAssertions(U){if(U instanceof String)U=U.valueOf();if(typeof U!=="string")return U;let E=U.startsWith('"')||U.startsWith("'")?U.slice(1,-1):U,$=E.startsWith("./")||E.startsWith("../"),A=E,R="";if($){let Y=E.lastIndexOf("/"),M=Y>=0?E.substring(Y+1):E;if(M.includes(".")){if(M.endsWith(".json"))R=" with { type: 'json' }"}else A=E+".js"}return`'${A}'`+R}shouldAwaitCall(U){if(U instanceof String&&U.await!==void 0)return U.await===!0;return!1}containsAwait(U){if(!U)return!1;if(U instanceof String&&U.await===!0)return!0;if(typeof U!=="object")return!1;if(Array.isArray(U)&&U[0]==="await")return!0;if(Array.isArray(U)&&U[0]==="for-from"&&U[3]===!0)return!0;if(Array.isArray(U)&&(U[0]==="def"||U[0]==="->"||U[0]==="=>"||U[0]==="class"))return!1;if(Array.isArray(U))return U.some((_)=>this.containsAwait(_));return!1}containsYield(U){if(!U)return!1;if(typeof U!=="object")return!1;if(Array.isArray(U)&&(U[0]==="yield"||U[0]==="yield-from"))return!0;if(Array.isArray(U)&&(U[0]==="def"||U[0]==="->"||U[0]==="=>"||U[0]==="class"))return!1;if(Array.isArray(U))return U.some((_)=>this.containsYield(_));return!1}extractStringContent(U){let _=U.valueOf().slice(1,-1);if(U.indent){let E=new RegExp(`\\n${U.indent}`,"g");_=_.replace(E,`
180
+ `)}if(U.initialChunk&&_.startsWith(`
181
+ `))_=_.slice(1);if(U.finalChunk&&_.endsWith(`
182
+ `))_=_.slice(0,-1);return _}processHeregex(U){let _="",E=!1,$=0;while($<U.length){let A=U[$],R=$>0?U[$-1]:null,X=U[$+1],Y=()=>{let M=0,F=$-1;while(F>=0&&U[F]==="\\")M++,F--;return M%2===1};if(A==="["&&!Y()){E=!0,_+=A,$++;continue}if(A==="]"&&E&&!Y()){E=!1,_+=A,$++;continue}if(E){_+=A,$++;continue}if(/\s/.test(A)){$++;continue}if(A==="#"){if(Y()){_+=A,$++;continue}let M=$-1;while(M>=0&&U[M]==="\\")M--;if(M<$-1){_+=A,$++;continue}while($<U.length&&U[$]!==`
183
+ `)$++;continue}_+=A,$++}return _}collectVarsFromArray(U,_){U.slice(1).forEach((E)=>{if(E===",")return;if(E==="...")return;if(typeof E==="string")_.add(E);else if(Array.isArray(E)){if(E[0]==="..."){if(typeof E[1]==="string")_.add(E[1])}else if(E[0]==="array")this.collectVarsFromArray(E,_);else if(E[0]==="object")this.collectVarsFromObject(E,_)}})}collectVarsFromObject(U,_){U.slice(1).forEach((E)=>{if(Array.isArray(E)){if(E[0]==="..."){if(typeof E[1]==="string")_.add(E[1])}else if(E.length>=2){let[$,A,R]=E;if(R==="="){if(typeof $==="string")_.add($)}else if(typeof A==="string")_.add(A);else if(Array.isArray(A)){if(A[0]==="array")this.collectVarsFromArray(A,_);else if(A[0]==="object")this.collectVarsFromObject(A,_)}}}})}indent(){return this.indentString.repeat(this.indentLevel)}unwrapBlock(U){if(!Array.isArray(U))return[U];if(U[0]==="block")return U.slice(1);if(Array.isArray(U[0]))return U;return[U]}needsSemicolon(U,_){if(!_||_.endsWith(";"))return!1;if(!_.endsWith("}"))return!0;let E=Array.isArray(U)?U[0]:null;return!["def","class","if","unless","for-in","for-of","for-from","while","until","loop","switch","try"].includes(E)}addSemicolon(U,_){return _+(this.needsSemicolon(U,_)?";":"")}formatStatements(U,_="statement"){return U.map((E)=>this.indent()+this.addSemicolon(E,this.generate(E,_)))}hasExplicitControlFlow(U){if(!Array.isArray(U))return!1;let _=U[0];if(_==="return"||_==="throw"||_==="break"||_==="continue")return!0;if(_==="block"){let E=U.slice(1);if(E.length===0)return!1;return E.some(($)=>Array.isArray($)&&($[0]==="return"||$[0]==="throw"||$[0]==="break"||$[0]==="continue"))}if(_==="switch"){let[,,E]=U;return E&&E.some(($)=>{let A=$[2];return this.unwrapBlock(A).some((X)=>Array.isArray(X)&&(X[0]==="return"||X[0]==="throw"||X[0]==="break"||X[0]==="continue"))})}if(_==="if"||_==="unless"){let[,,E,$]=U,A=this.branchHasControlFlow(E),R=$&&this.branchHasControlFlow($);return A&&R}return!1}branchHasControlFlow(U){if(!Array.isArray(U))return!1;let _=this.unwrapBlock(U);if(_.length===0)return!1;let E=_[_.length-1];return Array.isArray(E)&&(E[0]==="return"||E[0]==="throw"||E[0]==="break"||E[0]==="continue")}withIndent(U){this.indentLevel++;let _=U();return this.indentLevel--,_}isNegativeStep(U){if(!Array.isArray(U))return!1;if(U.length!==2)return!1;return(U[0]instanceof String?U[0].valueOf():U[0])==="-"}generateBranchWithReturn(U){let _=this.unwrapBlock(U),E="";for(let $=0;$<_.length;$++){let A=$===_.length-1,R=_[$],X=Array.isArray(R)?R[0]:null;if(A&&!(X==="return"||X==="throw"||X==="break"||X==="continue"))E+=this.indent()+`return ${this.generate(R,"value")};
184
+ `;else E+=this.indent()+this.generate(R,"statement")+`;
185
+ `}return E}generateComprehensionWithTarget(U,_,E,$){let A="";A+=this.indent()+`${$} = [];
186
+ `;let R=U;if(Array.isArray(U)&&U[0]==="block"&&U.length===2)R=U[1];if(_.length===1){let M=_[0],[F,D,G,J]=M;if(F==="for-in"){let Q=J,Z=Array.isArray(D)?D:[D],O=Z.length===0,[K,H]=O?["_i",null]:Z,W=K;if(Array.isArray(K)&&(K[0]==="array"||K[0]==="object"))W=this.generateDestructuringPattern(K);if(Q&&Q!==null){let N=Array.isArray(G)&&G[0];if(N instanceof String)N=N.valueOf();if(N===".."||N==="..."){let S=N==="...",[L,I]=G.slice(1),T=this.generate(L,"value"),j=this.generate(I,"value"),w=this.generate(Q,"value"),P=S?"<":"<=";A+=this.indent()+`for (let ${W} = ${T}; ${W} ${P} ${j}; ${W} += ${w}) {
187
+ `}else{let S=this.generate(G,"value"),L=H||"_i",I=this.generate(Q,"value");if(this.isNegativeStep(Q))A+=this.indent()+`for (let ${L} = ${S}.length - 1; ${L} >= 0; ${L} += ${I}) {
188
+ `;else A+=this.indent()+`for (let ${L} = 0; ${L} < ${S}.length; ${L} += ${I}) {
189
+ `;if(this.indentLevel++,!O)A+=this.indent()+`const ${W} = ${S}[${L}];
190
+ `}}else{let N=this.generate(G,"value");A+=this.indent()+`for (const ${W} of ${N}) {
191
+ `}if(this.indentLevel++,E&&E.length>0)A+=this.indent()+`if (${E.map((N)=>this.generate(N,"value")).join(" && ")}) {
192
+ `,this.indentLevel++;let q=this.unwrap(this.generate(R,"value"));if(A+=this.indent()+`${$}.push(${q});
193
+ `,E&&E.length>0)this.indentLevel--,A+=this.indent()+`}
194
+ `;return this.indentLevel--,A+=this.indent()+`}
195
+ `,A}}let Y=this.containsAwait(U)?"async ":"";return this.indent()+`${$} = (${Y}() => { /* complex comprehension */ })();
196
+ `}generateComprehensionAsLoop(U,_,E){let $="";if(_.length===1){let A=_[0],[R,X,Y,M]=A;if(R==="for-in"){let F=M,D=Array.isArray(X)?X:[X],G=D.length===0,[J,Q]=G?["_i",null]:D,Z=J;if(Array.isArray(J)&&(J[0]==="array"||J[0]==="object"))Z=this.generateDestructuringPattern(J);if(F&&F!==null){let O=Array.isArray(Y)&&Y[0];if(O instanceof String)O=O.valueOf();let K=O===".."||O==="...";if(K){let H=O==="...",[W,q]=Y.slice(1),N=this.generate(W,"value"),z=this.generate(q,"value"),S=this.generate(F,"value");$+=`for (let ${Z} = ${N}; ${Z} ${H?"<":"<="} ${z}; ${Z} += ${S}) `}else{let H=this.generate(Y,"value"),W=Q||"_i",q=this.generate(F,"value"),N=this.isNegativeStep(F),z=N&&(F[1]==="1"||F[1]===1||F[1]instanceof String&&F[1].valueOf()==="1"),S=!N&&(F==="1"||F===1||F instanceof String&&F.valueOf()==="1");if(z)$+=`for (let ${W} = ${H}.length - 1; ${W} >= 0; ${W}--) `;else if(S)$+=`for (let ${W} = 0; ${W} < ${H}.length; ${W}++) `;else if(N)$+=`for (let ${W} = ${H}.length - 1; ${W} >= 0; ${W} += ${q}) `;else $+=`for (let ${W} = 0; ${W} < ${H}.length; ${W} += ${q}) `;if($+=`{
197
+ `,this.indentLevel++,!G)$+=this.indent()+`const ${Z} = ${H}[${W}];
198
+ `}if(E&&E.length>0){if(!K)$+=this.indent();$+=`{
199
+ `,this.indentLevel++,$+=this.indent()+`if (${E.map((H)=>this.generate(H,"value")).join(" && ")}) {
200
+ `,this.indentLevel++,$+=this.indent()+this.generate(U,"statement")+`;
201
+ `,this.indentLevel--,$+=this.indent()+`}
202
+ `,this.indentLevel--,$+=this.indent()+"}"}else{if(!K)$+=this.indent();$+=`{
203
+ `,this.indentLevel++,$+=this.indent()+this.generate(U,"statement")+`;
204
+ `,this.indentLevel--,$+=this.indent()+"}"}if(!K)this.indentLevel--,$+=`
205
+ `+this.indent()+"}";return $}else if(Q){let O=this.generate(Y,"value");$+=`for (let ${Q} = 0; ${Q} < ${O}.length; ${Q}++) `,$+=`{
206
+ `,this.indentLevel++,$+=this.indent()+`const ${Z} = ${O}[${indexVarName}];
207
+ `}else{if($+=`for (const ${Z} of ${this.generate(Y,"value")}) `,E&&E.length>0)$+=`{
208
+ `,this.indentLevel++,$+=this.indent()+`if (${E.map((O)=>this.generate(O,"value")).join(" && ")}) {
209
+ `,this.indentLevel++,$+=this.indent()+this.generate(U,"statement")+`;
210
+ `,this.indentLevel--,$+=this.indent()+`}
211
+ `,this.indentLevel--,$+=this.indent()+"}";else $+=`{
212
+ `,this.indentLevel++,$+=this.indent()+this.generate(U,"statement")+`;
213
+ `,this.indentLevel--,$+=this.indent()+"}";return $}}else if(R==="for-from"){let F=Array.isArray(X)?X:[X],[D]=F,G=D;if(Array.isArray(D)&&(D[0]==="array"||D[0]==="object"))G=this.generateDestructuringPattern(D);if($+=`for (const ${G} of ${this.generate(Y,"value")}) `,E&&E.length>0)$+=`{
214
+ `,this.indentLevel++,$+=this.indent()+`if (${E.map((J)=>this.generate(J,"value")).join(" && ")}) {
215
+ `,this.indentLevel++,$+=this.indent()+this.generate(U,"statement")+`;
216
+ `,this.indentLevel--,$+=this.indent()+`}
217
+ `,this.indentLevel--,$+=this.indent()+"}";else $+=`{
218
+ `,this.indentLevel++,$+=this.indent()+this.generate(U,"statement")+`;
219
+ `,this.indentLevel--,$+=this.indent()+"}";return $}else if(R==="for-of"){let F=Array.isArray(X)?X:[X],[D,G]=F,J=M,Q=this.generate(Y,"value");if($+=`for (const ${D} in ${Q}) `,$+=`{
220
+ `,this.indentLevel++,J&&!G&&!E?.length)$+=this.indent()+`if (!Object.hasOwn(${Q}, ${D})) continue;
221
+ `,$+=this.indent()+this.generate(U,"statement")+`;
222
+ `;else if(J&&G&&E?.length)$+=this.indent()+`if (Object.hasOwn(${Q}, ${D})) {
223
+ `,this.indentLevel++,$+=this.indent()+`const ${G} = ${Q}[${D}];
224
+ `,$+=this.indent()+`if (${E.map((Z)=>this.generate(Z,"value")).join(" && ")}) {
225
+ `,this.indentLevel++,$+=this.indent()+this.generate(U,"statement")+`;
226
+ `,this.indentLevel--,$+=this.indent()+`}
227
+ `,this.indentLevel--,$+=this.indent()+`}
228
+ `;else if(J&&G)$+=this.indent()+`if (Object.hasOwn(${Q}, ${D})) {
229
+ `,this.indentLevel++,$+=this.indent()+`const ${G} = ${Q}[${D}];
230
+ `,$+=this.indent()+this.generate(U,"statement")+`;
231
+ `,this.indentLevel--,$+=this.indent()+`}
232
+ `;else if(G&&E?.length)$+=this.indent()+`const ${G} = ${Q}[${D}];
233
+ `,$+=this.indent()+`if (${E.map((Z)=>this.generate(Z,"value")).join(" && ")}) {
234
+ `,this.indentLevel++,$+=this.indent()+this.generate(U,"statement")+`;
235
+ `,this.indentLevel--,$+=this.indent()+`}
236
+ `;else if(G)$+=this.indent()+`const ${G} = ${Q}[${D}];
237
+ `,$+=this.indent()+this.generate(U,"statement")+`;
238
+ `;else if(E?.length)$+=this.indent()+`if (${E.map((Z)=>this.generate(Z,"value")).join(" && ")}) {
239
+ `,this.indentLevel++,$+=this.indent()+this.generate(U,"statement")+`;
240
+ `,this.indentLevel--,$+=this.indent()+`}
241
+ `;else $+=this.indent()+this.generate(U,"statement")+`;
242
+ `;return this.indentLevel--,$+=this.indent()+"}",$}}return this.generate(["comprehension",U,_,E],"value")}generateIfElseWithEarlyReturns(U){let[_,E,$,...A]=U,R="",X=_==="unless"?`!${this.generate(E,"value")}`:this.generate(E,"value");R+=this.indent()+`if (${X}) {
243
+ `,R+=this.withIndent(()=>this.generateBranchWithReturn($)),R+=this.indent()+"}";for(let Y of A)if(R+=" else ",Array.isArray(Y)&&Y[0]==="if"){let[,M,F,...D]=Y;if(R+=`if (${this.generate(M,"value")}) {
244
+ `,R+=this.withIndent(()=>this.generateBranchWithReturn(F)),R+=this.indent()+"}",D.length>0)for(let G of D)R+=` else {
245
+ `,R+=this.withIndent(()=>this.generateBranchWithReturn(G)),R+=this.indent()+"}"}else R+=`{
246
+ `,R+=this.withIndent(()=>this.generateBranchWithReturn(Y)),R+=this.indent()+"}";return R}unwrap(U){if(typeof U!=="string")return U;while(U.startsWith("(")&&U.endsWith(")")){let _=0,E=!0;for(let $=0;$<U.length;$++){if(U[$]==="(")_++;if(U[$]===")")_--;if(_===0&&$<U.length-1){E=!1;break}}if(E)U=U.slice(1,-1);else break}return U}flattenBinaryChain(U){if(!Array.isArray(U)||U.length<3)return U;let[_,...E]=U;if(_!=="&&"&&_!=="||")return U;let $=[],A=(R)=>{if(Array.isArray(R)&&R[0]===_)for(let X=1;X<R.length;X++)A(R[X]);else $.push(R)};for(let R of E)A(R);return[_,...$]}unwrapLogical(U){if(typeof U!=="string")return U;while(U.startsWith("(")&&U.endsWith(")")){let _=0,E=1/0;for(let $=1;$<U.length-1;$++){if(U[$]==="(")_++;if(U[$]===")")_--;E=Math.min(E,_)}if(E>=0)U=U.slice(1,-1);else break}return U}unwrapIfBranch(U){if(Array.isArray(U)&&U.length===1){let _=U[0];if(!Array.isArray(_)||_[0]!=="block")return _}return U}isNegativeOneLiteral(U){return Array.isArray(U)&&U[0]==="-"&&U.length===2&&(U[1]==="1"||U[1]===1||U[1]instanceof String&&U[1].valueOf()==="1")}hasStatementInBranch(U){if(!Array.isArray(U))return!1;let _=U[0];if(_==="return"||_==="throw"||_==="break"||_==="continue")return!0;if(_==="block")return U.slice(1).some(($)=>this.hasStatementInBranch($));return!1}isMultiStatementBlock(U){return Array.isArray(U)&&U[0]==="block"&&U.length>2}hasNestedMultiStatement(U){if(!Array.isArray(U))return!1;if(U[0]==="if"){let[_,E,$,...A]=U;return this.isMultiStatementBlock($)||A.some((R)=>this.hasNestedMultiStatement(R))}return!1}buildTernaryChain(U){if(U.length===0)return"undefined";if(U.length===1)return this.extractExpression(this.unwrapIfBranch(U[0]));let _=U[0];if(Array.isArray(_)&&_[0]==="if"){let[E,$,A,...R]=_,X=this.extractExpression(this.unwrapIfBranch(A)),Y=this.buildTernaryChain([...R,...U.slice(1)]);return`(${this.generate($,"value")} ? ${X} : ${Y})`}return this.extractExpression(this.unwrapIfBranch(_))}generateIfAsExpression(U,_,E){if(this.isMultiStatementBlock(_)||this.hasStatementInBranch(_)||E.some((Y)=>this.isMultiStatementBlock(Y)||this.hasStatementInBranch(Y)||this.hasNestedMultiStatement(Y))){let Y=this.containsAwait(U)||this.containsAwait(_)||E.some((G)=>this.containsAwait(G)),D=`${Y?"await ":""}(${Y?"async ":""}() => { `;D+=`if (${this.generate(U,"value")}) `,D+=this.generateBlockWithReturns(_);for(let G of E)if(D+=" else ",Array.isArray(G)&&G[0]==="if"){let[J,Q,Z,...O]=G;D+=`if (${this.generate(Q,"value")}) `,D+=this.generateBlockWithReturns(Z);for(let K of O)if(D+=" else ",Array.isArray(K)&&K[0]==="if"){let[H,W,q,...N]=K;D+=`if (${this.generate(W,"value")}) `,D+=this.generateBlockWithReturns(q),E.push(...N)}else D+=this.generateBlockWithReturns(K)}else D+=this.generateBlockWithReturns(G);return D+=" })()",D}let A=this.extractExpression(this.unwrapIfBranch(_)),R=this.buildTernaryChain(E),X=this.generate(U,"value");if(Array.isArray(U)&&(U[0]==="yield"||U[0]==="await"))X=`(${X})`;return`(${X} ? ${A} : ${R})`}generateIfAsStatement(U,_,E){let A=`if (${this.unwrap(this.generate(U,"value"))}) `;A+=this.generate(this.unwrapIfBranch(_),"statement");for(let R of E)A+=" else ",A+=this.generate(this.unwrapIfBranch(R),"statement");return A}isStaticMember(U){return Array.isArray(U)&&U[0]==="."&&U[1]==="this"}isComputedMember(U){return Array.isArray(U)&&U[0]==="computed"}extractMemberName(U){if(this.isStaticMember(U))return U[2];else if(this.isComputedMember(U))return`[${this.generate(U[1],"value")}]`;else return U}isBoundMethod(U){return Array.isArray(U)&&U[0]==="=>"}generateSwitchCaseBody(U,_){let E="";if(this.hasExplicitControlFlow(U)){let A=this.unwrapBlock(U);for(let R of A)E+=this.indent()+this.generate(R,"statement")+`;
247
+ `}else if(_==="value")if(Array.isArray(U)&&U[0]==="block"&&U.length>2){let A=U.slice(1);for(let R=0;R<A.length;R++)if(R===A.length-1){let Y=this.generate(A[R],"value");E+=this.indent()+`return ${Y};
248
+ `}else E+=this.indent()+this.generate(A[R],"statement")+`;
249
+ `}else{let A=this.extractExpression(U);E+=this.indent()+`return ${A};
250
+ `}else{if(Array.isArray(U)&&U[0]==="block"&&U.length>1){let A=U.slice(1);for(let R of A)E+=this.indent()+this.generate(R,"statement")+`;
251
+ `}else{let A=this.generate(U,"statement");E+=this.indent()+A+`;
252
+ `}E+=this.indent()+`break;
253
+ `}return E}generateSwitchAsIfChain(U,_,E){let $="";for(let A=0;A<U.length;A++){let R=U[A],[,X,Y]=R;if(A===0)$+=`if (${this.generate(X,"value")}) {
254
+ `;else $+=` else if (${this.generate(X,"value")}) {
255
+ `;if(this.indentLevel++,E==="value"){let M=this.extractExpression(Y);$+=this.indent()+`return ${M};
256
+ `}else{let M=this.unwrapBlock(Y);for(let F of M)$+=this.indent()+this.generate(F,"statement")+`;
257
+ `}this.indentLevel--,$+=this.indent()+"}"}if(_){if($+=` else {
258
+ `,this.indentLevel++,E==="value"){let A=this.extractExpression(_);$+=this.indent()+`return ${A};
259
+ `}else{let A=this.unwrapBlock(_);for(let R of A)$+=this.indent()+this.generate(R,"statement")+`;
260
+ `}this.indentLevel--,$+=this.indent()+"}"}if(E==="value")return`(() => { ${$} })()`;return $}getReactiveRuntime(){return`// ============================================================================
270
261
  // Rip Reactive Runtime
271
262
  // A minimal, fine-grained reactivity system
272
263
  //
273
264
  // Reactivity:
274
- // __signal(value) - Reactive state container
275
- // __computed(fn) - Derived value (lazy, cached)
265
+ // __state(value) - Reactive state container
266
+ // __computed(fn) - Computed value (lazy, cached)
276
267
  // __effect(fn) - Side effect that re-runs when dependencies change
277
268
  // __batch(fn) - Group multiple updates into one flush
278
269
  // __readonly(value) - Immutable value wrapper
279
270
  //
280
- // Context API:
281
- // setContext(key, value) - Set context in current component
282
- // getContext(key) - Get context from nearest ancestor
283
- // hasContext(key) - Check if context exists
284
- //
285
271
  // Error Handling:
286
- // __catchErrors(fn) - Wrap function to route errors to boundary
287
- // __handleError(error) - Route error to nearest boundary
272
+ // __catchErrors(fn) - Wrap function to route errors to handler
273
+ // __handleError(err) - Route error to handler
288
274
  //
289
275
  // How reactivity works:
290
- // - Reading a signal/computed inside an effect tracks it as a dependency
291
- // - Writing to a signal notifies all subscribers
276
+ // - Reading a state/computed inside an effect tracks it as a dependency
277
+ // - Writing to a state notifies all subscribers
292
278
  // - Batching defers effect execution until the batch completes
293
279
  // ============================================================================
294
280
 
@@ -297,14 +283,14 @@ let __currentEffect = null; // The effect/computed currently being evaluated
297
283
  let __pendingEffects = new Set(); // Effects queued to run
298
284
  let __batching = false; // Are we inside a batch()?
299
285
 
300
- // Flush all pending effects (called after signal updates, or at end of batch)
286
+ // Flush all pending effects (called after state updates, or at end of batch)
301
287
  function __flushEffects() {
302
288
  const effects = [...__pendingEffects];
303
289
  __pendingEffects.clear();
304
290
  for (const effect of effects) effect.run();
305
291
  }
306
292
 
307
- // Shared primitive coercion (used by signal and computed)
293
+ // Shared primitive coercion (used by state and computed)
308
294
  const __primitiveCoercion = {
309
295
  valueOf() { return this.value; },
310
296
  toString() { return String(this.value); },
@@ -312,59 +298,59 @@ const __primitiveCoercion = {
312
298
  };
313
299
 
314
300
  /**
315
- * Create a reactive signal (state container)
301
+ * Create a reactive state container
316
302
  * @param {*} initialValue - The initial value
317
- * @returns {object} Signal with .value getter/setter
303
+ * @returns {object} State with .value getter/setter
318
304
  */
319
- function __signal(initialValue) {
305
+ function __state(initialValue) {
320
306
  let value = initialValue;
321
- const subscribers = new Set(); // Effects/computeds that depend on this signal
322
-
307
+ const subscribers = new Set(); // Effects/computeds that depend on this state
308
+
323
309
  // State flags
324
310
  let notifying = false; // Prevents re-entry during notification
325
311
  let locked = false; // Prevents writes (used during SSR/hydration)
326
- let dead = false; // Signal has been killed (cleanup)
312
+ let dead = false; // State has been killed (cleanup)
327
313
 
328
- const signal = {
314
+ const state = {
329
315
  get value() {
330
316
  if (dead) return value;
331
- // Track this signal as a dependency of the current effect/computed
317
+ // Track this state as a dependency of the current effect/computed
332
318
  if (__currentEffect) {
333
319
  subscribers.add(__currentEffect);
334
320
  __currentEffect.dependencies.add(subscribers);
335
321
  }
336
322
  return value;
337
323
  },
338
-
324
+
339
325
  set value(newValue) {
340
326
  // Skip if: dead, locked, same value, or already notifying
341
327
  if (dead || locked || newValue === value || notifying) return;
342
328
  value = newValue;
343
329
  notifying = true;
344
-
330
+
345
331
  // Notify subscribers: computeds mark dirty, effects get queued
346
332
  for (const sub of subscribers) {
347
333
  if (sub.markDirty) sub.markDirty(); // Computed
348
334
  else __pendingEffects.add(sub); // Effect
349
335
  }
350
-
336
+
351
337
  // Flush immediately unless we're batching
352
338
  if (!__batching) __flushEffects();
353
339
  notifying = false;
354
340
  },
355
-
341
+
356
342
  read() { return value; }, // Read without tracking
357
- lock() { locked = true; return signal; }, // Prevent further writes
358
- free() { subscribers.clear(); return signal; }, // Clear all subscribers
343
+ lock() { locked = true; return state; }, // Prevent further writes
344
+ free() { subscribers.clear(); return state; }, // Clear all subscribers
359
345
  kill() { dead = true; subscribers.clear(); return value; }, // Cleanup
360
-
346
+
361
347
  ...__primitiveCoercion
362
348
  };
363
- return signal;
349
+ return state;
364
350
  }
365
351
 
366
352
  /**
367
- * Create a computed value (derived state, lazy & cached)
353
+ * Create a computed value (lazy & cached)
368
354
  * @param {function} fn - Function that computes the value
369
355
  * @returns {object} Computed with .value getter
370
356
  */
@@ -372,14 +358,14 @@ function __computed(fn) {
372
358
  let value;
373
359
  let dirty = true; // Needs recomputation?
374
360
  const subscribers = new Set(); // Things that depend on this computed
375
-
361
+
376
362
  // State flags
377
363
  let locked = false; // Prevents recomputation
378
364
  let dead = false; // Computed has been killed
379
365
 
380
366
  const computed = {
381
- dependencies: new Set(), // Signals/computeds this depends on
382
-
367
+ dependencies: new Set(), // States/computeds this depends on
368
+
383
369
  // Called by dependencies when they change
384
370
  markDirty() {
385
371
  if (dead || locked || dirty) return;
@@ -390,7 +376,7 @@ function __computed(fn) {
390
376
  else __pendingEffects.add(sub);
391
377
  }
392
378
  },
393
-
379
+
394
380
  get value() {
395
381
  if (dead) return value;
396
382
  // Track this computed as a dependency
@@ -411,7 +397,7 @@ function __computed(fn) {
411
397
  }
412
398
  return value;
413
399
  },
414
-
400
+
415
401
  read() { return value; }, // Return cached value without tracking or recomputing
416
402
  lock() { locked = true; computed.value; return computed; }, // Lock after computing
417
403
  free() {
@@ -426,7 +412,7 @@ function __computed(fn) {
426
412
  computed.free();
427
413
  return result;
428
414
  },
429
-
415
+
430
416
  ...__primitiveCoercion
431
417
  };
432
418
  return computed;
@@ -439,8 +425,8 @@ function __computed(fn) {
439
425
  */
440
426
  function __effect(fn) {
441
427
  const effect = {
442
- dependencies: new Set(), // Signals/computeds this effect depends on
443
-
428
+ dependencies: new Set(), // States/computeds this effect depends on
429
+
444
430
  run() {
445
431
  // Clear old dependencies before re-running
446
432
  for (const dep of effect.dependencies) dep.delete(effect);
@@ -450,13 +436,13 @@ function __effect(fn) {
450
436
  __currentEffect = effect;
451
437
  try { fn(); } finally { __currentEffect = prev; }
452
438
  },
453
-
439
+
454
440
  dispose() {
455
441
  for (const dep of effect.dependencies) dep.delete(effect);
456
442
  effect.dependencies.clear();
457
443
  }
458
444
  };
459
-
445
+
460
446
  effect.run(); // Run immediately to establish dependencies
461
447
  return () => effect.dispose();
462
448
  }
@@ -487,76 +473,14 @@ function __readonly(value) {
487
473
  }
488
474
 
489
475
  // ============================================================================
490
- // Context API
491
- // Pass data down the component tree without prop drilling
492
- //
493
- // Usage:
494
- // // In parent component constructor or methods:
495
- // setContext('theme', { dark: true })
496
- //
497
- // // In any descendant component:
498
- // theme = getContext('theme')
499
- // ============================================================================
500
-
501
- let __currentComponent = null; // The component currently being initialized
502
-
503
- /**
504
- * Set a context value in the current component
505
- * @param {*} key - The context key (usually a string or symbol)
506
- * @param {*} value - The value to store
507
- */
508
- function setContext(key, value) {
509
- if (!__currentComponent) {
510
- throw new Error('setContext must be called during component initialization');
511
- }
512
- if (!__currentComponent._context) {
513
- __currentComponent._context = new Map();
514
- }
515
- __currentComponent._context.set(key, value);
516
- }
517
-
518
- /**
519
- * Get a context value from the nearest ancestor that set it
520
- * @param {*} key - The context key to look up
521
- * @returns {*} The context value, or undefined if not found
522
- */
523
- function getContext(key) {
524
- let component = __currentComponent;
525
- while (component) {
526
- if (component._context && component._context.has(key)) {
527
- return component._context.get(key);
528
- }
529
- component = component._parent;
530
- }
531
- return undefined;
532
- }
533
-
534
- /**
535
- * Check if a context key exists in any ancestor
536
- * @param {*} key - The context key to check
537
- * @returns {boolean} True if the key exists
538
- */
539
- function hasContext(key) {
540
- let component = __currentComponent;
541
- while (component) {
542
- if (component._context && component._context.has(key)) return true;
543
- component = component._parent;
544
- }
545
- return false;
546
- }
547
-
548
- // ============================================================================
549
- // Error Boundaries
550
- // Catch and handle errors in component trees gracefully
551
- //
552
- // Usage in component:
553
- // error: (err) -> console.error "Caught:", err
476
+ // Error Handling
477
+ // Catch and handle errors gracefully
554
478
  // ============================================================================
555
479
 
556
- let __errorHandler = null; // Current error handler (set by nearest error boundary)
480
+ let __errorHandler = null; // Current error handler
557
481
 
558
482
  /**
559
- * Set the current error handler (called by components with error: handler)
483
+ * Set the current error handler
560
484
  * @param {function} handler - Error handler function
561
485
  * @returns {function} Previous handler (for restoration)
562
486
  */
@@ -599,8 +523,8 @@ function __catchErrors(fn) {
599
523
  }
600
524
 
601
525
  // === End Reactive Runtime ===
602
- `}}class q1{constructor(U={}){this.options={showTokens:!1,showSExpr:!1,...U}}compile(U){let A=null,$=U.split(`
603
- `),E=$.findIndex((D)=>D==="__DATA__");if(E!==-1){let D=$.slice(E+1);A=D.length>0?D.join(`
526
+ `}}class H1{constructor(U={}){this.options={showTokens:!1,showSExpr:!1,...U}}compile(U){let _=null,E=U.split(`
527
+ `),$=E.findIndex((F)=>F==="__DATA__");if($!==-1){let F=E.slice($+1);_=F.length>0?F.join(`
604
528
  `)+`
605
- `:"",U=$.slice(0,E).join(`
606
- `)}let _=new k1().tokenize(U);if(this.options.showTokens)_.forEach((D)=>console.log(`${D[0].padEnd(12)} ${JSON.stringify(D[1])}`)),console.log();A1.lexer={tokens:_,pos:0,setInput:function(){},lex:function(){if(this.pos>=this.tokens.length)return 1;let D=this.tokens[this.pos++];return this.yytext=D[1],this.yylloc=D[2],D[0]}};let X;try{X=A1.parse(U)}catch(D){if(/\?\s*\([^)]*\?[^)]*:[^)]*\)\s*:/.test(U)||/\?\s+\w+\s+\?\s+/.test(U))throw Error("Nested ternary operators are not supported. Use if/else statements instead.");throw D}if(this.options.showSExpr)console.log(r(X,0,!0)),console.log();let Y=new f({dataSection:A,skipReactiveRuntime:this.options.skipReactiveRuntime,reactiveVars:this.options.reactiveVars}),F=Y.compile(X);return{tokens:_,sexpr:X,code:F,data:A,reactiveVars:Y.reactiveVars}}compileToJS(U){return this.compile(U).code}compileToSExpr(U){return this.compile(U).sexpr}}function R2(U,A={}){return new q1(A).compile(U)}function H1(U,A={}){return new q1(A).compileToJS(U)}var Q2="2.5.1",G2="2026-01-16@07:47:41GMT",_2=(U)=>{let A=U.match(/^[ \t]*(?=\S)/gm),$=Math.min(...(A||[]).map((E)=>E.length));return U.replace(RegExp(`^[ ]{${$}}`,"gm"),"").trim()};async function f3(){let U=document.querySelectorAll('script[type="text/rip"]');for(let A of U){if(A.hasAttribute("data-rip-processed"))continue;try{let $=_2(A.textContent),E=H1($);(0,eval)(E),A.setAttribute("data-rip-processed","true")}catch($){console.error("Error compiling Rip script:",$),console.error("Script content:",A.textContent)}}}if(typeof document<"u")if(document.readyState==="loading")document.addEventListener("DOMContentLoaded",f3);else f3();function A2(U){try{let $=H1(U).replace(/^let\s+[^;]+;\s*\n\s*/m,"");$=$.replace(/^const\s+/gm,"var ");let E=(0,eval)($);if(E!==void 0)globalThis._=E;return E}catch(A){console.error("Rip compilation error:",A.message);return}}if(typeof globalThis<"u")globalThis.rip=A2;export{A2 as rip,f3 as processRipScripts,A1 as parser,r as formatSExpr,H1 as compileToJS,R2 as compile,Q2 as VERSION,k1 as Lexer,q1 as Compiler,f as CodeGenerator,G2 as BUILD_DATE};
529
+ `:"",U=E.slice(0,$).join(`
530
+ `)}let R=new x1().tokenize(U);if(this.options.showTokens)R.forEach((F)=>console.log(`${F[0].padEnd(12)} ${JSON.stringify(F[1])}`)),console.log();_1.lexer={tokens:R,pos:0,setInput:function(){},lex:function(){if(this.pos>=this.tokens.length)return 1;let F=this.tokens[this.pos++];return this.yytext=F[1],this.yylloc=F[2],F[0]}};let X;try{X=_1.parse(U)}catch(F){if(/\?\s*\([^)]*\?[^)]*:[^)]*\)\s*:/.test(U)||/\?\s+\w+\s+\?\s+/.test(U))throw Error("Nested ternary operators are not supported. Use if/else statements instead.");throw F}if(this.options.showSExpr)console.log(a(X,0,!0)),console.log();let Y=new k({dataSection:_,skipReactiveRuntime:this.options.skipReactiveRuntime,reactiveVars:this.options.reactiveVars}),M=Y.compile(X);return{tokens:R,sexpr:X,code:M,data:_,reactiveVars:Y.reactiveVars}}compileToJS(U){return this.compile(U).code}compileToSExpr(U){return this.compile(U).sexpr}}function o2(U,_={}){return new H1(_).compile(U)}function N1(U,_={}){return new H1(_).compileToJS(U)}var Y3="2.7.2",M3="2026-02-03@11:22:57GMT",t2=(U)=>{let _=U.match(/^[ \t]*(?=\S)/gm),E=Math.min(...(_||[]).map(($)=>$.length));return U.replace(RegExp(`^[ ]{${E}}`,"gm"),"").trim()};async function v2(){let U=document.querySelectorAll('script[type="text/rip"]');for(let _ of U){if(_.hasAttribute("data-rip-processed"))continue;try{let E=t2(_.textContent),$=N1(E);(0,eval)($),_.setAttribute("data-rip-processed","true")}catch(E){console.error("Error compiling Rip script:",E),console.error("Script content:",_.textContent)}}}if(typeof document<"u")if(document.readyState==="loading")document.addEventListener("DOMContentLoaded",v2);else v2();function e2(U){try{let E=N1(U).replace(/^let\s+[^;]+;\s*\n\s*/m,"");E=E.replace(/^const\s+/gm,"var ");let $=(0,eval)(E);if($!==void 0)globalThis._=$;return $}catch(_){console.error("Rip compilation error:",_.message);return}}if(typeof globalThis<"u")globalThis.rip=e2;export{e2 as rip,v2 as processRipScripts,_1 as parser,a as formatSExpr,N1 as compileToJS,o2 as compile,Y3 as VERSION,x1 as Lexer,H1 as Compiler,k as CodeGenerator,M3 as BUILD_DATE};