diff options
| author | Marshall Lochbaum <mwlochbaum@gmail.com> | 2021-05-05 13:01:15 -0400 |
|---|---|---|
| committer | Marshall Lochbaum <mwlochbaum@gmail.com> | 2021-05-05 13:05:57 -0400 |
| commit | b0ad6041f146c23dfbb31016893709cd402ec4cb (patch) | |
| tree | 198adcadcca5e59c759d8e84c339790f1a760019 | |
| parent | 5a477b9cfe4653cd33a67ac5004eeb3565018e25 (diff) | |
Basic support for namespace creation and destructuring
| -rw-r--r-- | docs/bqn.js | 51 | ||||
| -rw-r--r-- | src/f.bqn | 4 |
2 files changed, 35 insertions, 20 deletions
diff --git a/docs/bqn.js b/docs/bqn.js index b60ba614..93aee2e7 100644 --- a/docs/bqn.js +++ b/docs/bqn.js @@ -18,9 +18,19 @@ let set = (d, id, v) => { if (!d && id.e[id.p]===null) throw Error("↩: Variable modified before definition"); id.e[id.p] = v; } else { - if (!v.sh) throw Error("← or ↩: Multiple targets but atomic value"); - if (!eq(id.sh,v.sh)) throw Error("← or ↩: Target and value shapes don't match"); - id.map((n,j)=>set(d,n,v[j])); + if (v.sh) { + if (!eq(id.sh,v.sh)) throw Error("← or ↩: Target and value shapes don't match"); + id.map((n,j)=>set(d,n,v[j])); + } else if (v.ns) { + id.map(n=>{ + if (!n.e) throw Error("← or ↩: Cannot extract non-name from namespace"); + let ni = v.ns[n.e.vid[n.p]]; + if (!has(ni)) throw Error("← or ↩: Unknown namespace key"); + set(d,n,v[ni]); + }); + } else { + throw Error("← or ↩: Multiple targets but atomic value"); + } } return v; } @@ -56,26 +66,30 @@ let genjs = (B, p, L) => { // Bytecode -> Javascript compiler case 21:case 31: { r+= rP("getv("+ge(num())+","+num()+")"); break; } case 22: { r+= rP("{e:"+ge(num())+",p:"+num()+"}"); break; } case 25: { if(rD!==1) throw Error("Internal compiler error: Wrong stack size"); r+= "return v0;"; break loop; } + case 29: { r+= "e.ns=ns;return e;"; break loop; } } } return "let "+new Array(szM).fill().map((_,i)=>rV(i)).join(',')+";"+r+fin; } -let run = (B,O,S,L) => { // Bytecode, Objects, Sections/blocks +let run = (B,O,S,L) => { // Bytecode, Objects, Sections/blocks, Locations let train2=( g,h)=>{ let t=(x,w)=>call(g,call(h,x,w)); t.repr=()=>[2, g,h];return t;} let train3=(f,g,h)=>{if(!has(f))return train2(g,h);let t=(x,w)=>call(g,call(h,x,w),call(f,x,w));t.repr=()=>[3,f,g,h];return t;} - let D = S.map(([type,imm,pos,varam],i) => { - let I = imm? 0 : 3; // Operand start - let def = new Array(I + (type==0?0:type+1) + varam).fill(null); + let D = S.map(([type,imm,pos,varam,vid,vex],i) => { + let I = imm ? 0 : 3; // Operand start + let sp = (type===0?0:type+1) + I; + let def = new Array(sp + varam).fill(null); + let ns = {}; if (vex) vex.forEach((e,j)=>{if(e)ns[vid[j]]=j+sp;}); + vid = (new Array(sp).fill(null)).concat(vid); let c = genjs(B, pos, L); let repdf = ["","4,f,mod","5,f,mod,g"].map(s=>s?"fn.repr=()=>["+s+"];":s); - if (imm) c = "const e=[...e2];e.p=oe;"+c; - else c = "const fn=(x, w)=>{const e=[...e2];e.p=oe;e[0]=fn;e[1]=x;e[2]=w;"+c+"};"+repdf[type]+"return fn;"; + if (imm) c = "const e=[...e2];e.vid=vid;e.p=oe;"+c; + else c = "const fn=(x, w)=>{const e=[...e2];e.vid=vid;e.p=oe;e[0]=fn;e[1]=x;e[2]=w;"+c+"};"+repdf[type]+"return fn;"; if (type===0) c = "let e2=def;"+c; if (type===1) c = "const mod=(f ) => {let e2=[...def]; e2["+I+"]=mod;e2["+(I+1)+"]=f;" +c+"}; mod.m=1;return mod;"; if (type===2) c = "const mod=(f,g) => {let e2=[...def]; e2["+I+"]=mod;e2["+(I+1)+"]=f;e2["+(I+2)+"]=g;"+c+"}; mod.m=2;return mod;"; - return Function("'use strict'; return (chkM,has,call,getv,get,set,llst,train2,train3,O,L,def) => D => oe => {"+c+"};")() - (chkM,has,call,getv,get,set,llst,train2,train3,O,L,def); + return Function("'use strict'; return (chkM,has,call,getv,get,set,llst,train2,train3,O,L,def,vid,ns) => D => oe => {"+c+"};")() + (chkM,has,call,getv,get,set,llst,train2,train3,O,L,def,vid,ns); }); D.forEach((d,i) => {D[i]=d(D)}); return D[0]([]); @@ -150,6 +164,7 @@ let abs = (x,w) => { let lesseq = (x,w) => { let s=typeof w, t=typeof x; if (s==="function"||t==="function") throw Error("𝕨≤𝕩: Cannot compare operations"); + if (w.ns||x.ns) throw Error("𝕨≤𝕩: Cannot compare namespaces"); return +(s!==t ? s<=t : w<=x); } let equals = (x,w) => { @@ -195,7 +210,7 @@ let group_ord = (x,w) => { // ∾⊔x assuming w=group_len(x) x.map((e,i)=>{if(e>=0)r[s[e]++]=i;}); return list(r,x.fill); } -let type = x => isfunc(x) ? 3+(x.m||0) : x.sh ? 0 : 2-isnum(x); +let type = x => isfunc(x) ? 3+(x.m||0) : x.sh ? 0 : x.ns ? 6 : 2-isnum(x); let tofill = x => isfunc(x) ? undefined : x.sh ? arr(x.map(tofill),x.sh,x.fill) : isnum(x)?0 : ' '; @@ -314,9 +329,9 @@ let glyph = x => { // Compiler runtime[42] = assertFn("Compiler"); let compgen = run( - [15,1,25,21,0,1,22,0,3,22,0,4,22,0,5,4,3,11,14,0,58,0,0,0,82,17,22,0,6,11,14,31,0,3,31,0,4,31,0,5,21,0,6,0,21,0,88,17,0,89,0,90,0,91,0,92,0,93,0,20,0,58,0,50,3,2,17,0,43,0,33,7,0,59,17,0,58,0,25,16,0,0,0,83,17,0,94,0,60,22,0,7,11,0,25,16,0,45,0,0,7,0,96,17,0,20,16,0,42,0,21,7,0,95,17,0,61,0,0,0,82,17,0,21,0,99,17,0,21,0,98,0,24,0,59,17,17,0,21,0,97,17,0,100,3,14,0,44,0,13,7,0,11,0,51,0,22,8,0,21,19,16,22,0,8,22,0,9,4,2,11,14,21,0,9,0,49,0,0,7,0,27,0,62,19,0,53,0,42,0,44,0,22,7,7,8,16,22,0,10,22,0,11,22,0,12,22,0,13,22,0,14,22,0,15,22,0,16,22,0,17,22,0,18,22,0,19,22,0,20,22,0,21,22,0,22,22,0,23,4,14,11,14,0,34,0,53,0,1,8,0,12,0,9,0,15,0,52,0,62,8,19,0,34,0,52,0,63,8,19,22,0,24,11,14,21,0,13,0,34,16,22,0,25,11,14,0,13,0,11,0,63,19,0,42,0,30,7,0,101,19,0,53,0,21,8,22,0,26,11,14,15,2,22,0,27,11,14,15,3,21,0,8,7,22,0,28,11,14,21,0,19,0,34,16,22,0,29,11,14,0,63,0,64,0,65,0,59,0,66,0,59,0,62,3,2,0,67,0,62,0,64,0,25,16,0,28,16,0,30,0,68,17,3,9,0,41,31,0,9,7,0,23,0,13,19,0,53,0,42,0,44,0,20,7,7,8,16,0,21,16,22,0,30,11,14,0,2,0,49,0,6,7,9,22,0,31,11,14,21,0,31,0,52,0,13,0,50,0,25,8,8,22,0,32,11,14,21,0,31,0,52,0,13,0,50,0,25,8,0,0,0,63,19,8,22,0,33,11,14,15,4,22,0,34,11,14,15,5,22,0,35,11,14,15,6,22,0,36,11,14,15,7,22,0,37,11,25,21,0,1,0,11,16,0,44,15,8,7,21,0,4,17,0,21,16,25,21,1,27,21,1,26,0,52,0,102,8,0,103,0,19,3,3,7,0,42,0,40,7,0,62,19,22,0,2,11,14,21,0,1,0,53,0,33,8,0,53,0,17,0,57,0,18,0,30,0,13,19,0,50,31,0,2,8,8,8,0,18,0,19,19,22,0,3,11,14,21,0,1,0,31,16,22,0,4,11,14,0,19,0,31,21,0,1,0,33,21,0,4,17,19,0,6,0,63,19,0,42,0,1,7,0,63,19,0,42,0,33,7,31,0,4,19,31,0,3,0,19,19,25,0,84,0,14,21,0,1,17,22,0,3,11,14,0,85,0,14,21,0,1,17,22,0,4,11,0,9,0,52,0,26,0,52,0,62,0,62,3,2,8,8,16,0,30,16,22,0,5,11,14,0,86,0,14,21,0,1,17,22,0,6,11,0,30,16,22,0,7,11,14,21,0,5,21,0,7,0,24,0,59,17,21,0,3,0,30,16,3,3,0,21,16,22,0,8,11,0,31,16,22,0,9,11,14,21,0,8,0,33,21,0,9,17,22,0,8,12,14,31,0,5,0,0,0,64,17,31,0,7,0,24,0,63,17,0,63,0,21,21,1,6,0,14,21,0,1,17,17,0,30,16,0,30,0,52,21,0,3,0,49,0,0,7,16,0,21,0,62,17,0,53,0,33,0,50,0,27,0,53,0,1,8,8,8,8,16,3,3,0,21,16,0,33,31,0,9,17,22,0,10,11,14,0,19,0,34,0,59,19,0,14,0,62,19,0,57,15,9,8,22,0,11,11,14,0,30,0,52,21,0,10,0,31,21,0,8,17,0,44,0,62,7,0,21,0,63,19,21,0,11,0,13,0,53,0,21,8,19,0,23,0,13,19,16,8,0,46,0,30,7,9,0,23,21,0,1,0,13,16,19,22,0,12,11,14,31,0,8,21,0,12,16,22,0,13,11,14,31,0,10,31,0,12,16,22,0,14,11,14,21,0,14,0,10,21,0,13,17,22,0,15,11,0,49,0,13,7,0,63,17,22,0,16,11,14,21,0,16,0,11,31,0,14,17,0,9,21,0,6,0,10,21,0,4,17,17,0,47,0,10,7,0,57,15,10,8,16,14,0,87,0,14,21,0,1,17,0,9,21,0,16,17,22,0,17,11,14,31,0,4,0,9,21,0,13,17,0,27,16,0,10,21,0,17,17,0,30,16,22,0,18,11,14,21,0,18,31,0,17,0,53,0,33,8,0,2,0,82,0,1,0,87,17,19,0,1,21,0,1,0,53,0,33,8,19,16,22,0,19,11,14,21,0,6,0,9,22,0,13,13,0,26,16,0,9,21,0,6,17,22,0,20,11,0,12,22,0,16,13,14,31,0,15,0,9,31,0,6,17,0,49,0,13,7,16,0,11,0,63,0,53,0,21,8,0,51,0,2,0,52,0,49,0,0,7,8,8,0,18,19,31,0,20,0,27,16,0,12,31,0,13,17,22,0,21,11,17,0,42,0,1,7,0,63,17,0,42,0,39,7,21,0,1,17,22,0,22,11,14,21,0,16,0,30,16,22,0,23,11,14,21,0,16,0,27,0,63,17,0,30,16,0,23,0,52,0,13,8,21,0,23,17,22,0,24,11,14,15,11,22,0,25,11,14,21,0,23,31,0,3,0,53,0,33,8,0,2,0,1,19,21,0,24,17,0,1,22,0,24,13,14,21,0,1,0,33,21,0,23,17,21,1,28,16,22,0,26,11,14,21,1,22,0,34,0,51,0,42,0,1,7,0,22,0,18,19,8,21,1,19,17,21,1,24,21,0,26,17,22,0,27,11,0,11,0,52,0,27,8,16,22,0,28,11,14,21,1,21,0,47,0,0,7,16,0,0,0,59,17,0,14,21,0,26,17,22,0,29,11,14,21,1,22,0,34,16,0,14,21,0,26,17,22,0,30,11,14,21,0,26,0,30,21,0,28,17,0,42,0,1,7,21,1,21,0,34,16,17,0,42,0,3,0,50,0,5,8,7,21,1,7,17,22,0,31,11,14,21,1,21,0,34,16,0,0,21,1,7,17,0,16,21,0,26,17,0,9,21,0,27,17,0,2,21,1,7,17,0,1,22,0,26,13,14,21,0,27,0,26,16,0,12,21,0,30,17,0,47,0,10,7,0,57,15,12,8,16,14,21,0,30,0,10,0,52,0,27,8,16,0,13,22,0,28,13,14,31,0,30,0,30,21,0,28,17,0,19,0,0,0,8,0,53,0,2,8,19,0,62,0,16,21,0,31,17,0,2,0,64,17,17,22,0,32,11,0,11,0,62,17,22,0,33,11,14,21,0,33,0,8,16,0,21,0,62,17,0,33,21,0,28,0,49,0,0,7,16,17,0,9,21,0,27,17,22,0,34,11,0,12,21,0,27,17,22,0,35,11,14,21,0,27,0,2,21,0,26,17,0,21,0,52,0,62,8,0,30,21,0,34,0,21,0,62,17,0,26,0,53,0,10,8,16,0,11,21,0,29,0,21,0,62,17,17,19,0,51,21,1,35,8,21,0,24,17,22,0,36,11,14,31,0,31,0,30,21,0,33,17,0,14,0,52,0,64,8,0,53,0,9,8,0,0,0,19,19,21,0,35,0,11,0,52,0,26,8,16,0,42,0,30,7,21,0,29,17,17,22,0,37,11,14,21,0,32,0,30,31,0,33,17,0,14,0,63,17,22,0,38,11,14,31,0,34,0,12,21,0,28,17,0,49,0,0,7,16,0,2,31,0,29,0,12,31,0,35,17,17,0,42,0,1,7,0,63,17,22,0,39,11,14,21,0,39,0,11,0,52,0,49,0,6,7,0,27,0,59,19,8,16,0,30,16,21,0,26,0,53,0,33,8,0,12,21,1,21,0,34,16,19,0,11,21,0,38,19,0,53,0,19,0,47,0,10,7,9,0,57,15,13,8,8,16,14,21,0,26,0,39,31,0,39,17,0,30,0,11,0,51,0,22,8,0,30,0,52,0,8,8,19,31,0,38,17,22,0,40,11,14,31,0,16,0,27,16,0,49,0,0,7,16,0,33,31,0,21,0,30,16,0,21,31,0,18,17,17,0,21,21,0,28,0,30,16,0,33,0,52,0,32,8,31,0,32,17,17,22,0,41,11,14,31,0,36,31,0,19,31,0,22,3,3,0,21,31,0,40,17,22,0,42,11,14,21,0,42,0,44,0,35,7,16,22,0,43,11,0,42,0,44,0,30,0,52,0,49,0,6,7,0,27,0,59,19,0,12,0,19,19,8,7,7,22,0,42,13,14,21,0,42,0,34,0,52,0,63,8,0,54,0,44,21,1,8,0,53,0,33,8,7,21,0,2,9,8,16,22,0,42,12,14,21,1,22,21,1,24,21,0,26,17,0,10,21,0,27,17,0,8,16,22,0,44,11,14,31,0,27,0,26,0,53,0,12,8,16,0,10,21,0,44,17,0,42,0,30,7,22,0,23,13,14,21,0,26,0,33,0,52,31,0,41,8,0,54,21,0,42,0,44,0,13,7,16,22,0,45,11,0,27,21,1,29,17,0,49,0,0,7,16,0,0,31,0,43,17,0,21,16,8,16,21,0,25,31,0,44,0,10,31,0,28,17,17,22,0,26,12,14,21,1,13,0,34,0,53,0,1,8,0,2,21,1,24,19,21,0,26,17,0,1,22,0,26,13,14,21,1,25,0,14,21,0,26,17,0,42,0,21,7,0,13,0,21,19,0,63,17,0,30,16,0,24,0,63,17,0,24,0,59,17,22,0,46,11,0,44,0,63,7,16,0,49,0,13,7,16,22,0,47,11,14,21,1,15,0,34,16,0,0,0,65,0,68,3,2,17,0,37,21,0,26,0,33,21,0,47,0,1,21,0,46,17,17,0,0,21,0,47,17,17,0,26,0,53,0,10,8,16,0,12,31,0,47,17,0,42,0,30,7,31,0,46,17,22,0,48,11,14,21,1,25,0,13,21,0,26,17,0,33,0,52,31,0,48,8,0,54,0,44,0,63,7,8,16,0,42,15,14,7,22,0,26,13,14,0,62,0,21,21,1,30,17,0,33,21,0,26,0,5,21,1,29,17,17,0,30,0,52,31,0,45,0,23,0,64,17,0,47,0,0,7,16,0,22,21,1,29,17,21,1,24,21,0,26,17,8,0,54,31,0,37,8,16,22,0,49,11,14,21,1,18,0,34,16,0,68,3,2,21,1,24,21,0,26,17,0,2,0,68,17,0,0,22,0,26,13,14,31,0,26,31,0,49,31,0,42,21,0,24,21,0,23,3,5,25,15,15,22,0,3,11,14,21,1,27,21,1,26,0,52,0,107,8,0,108,21,1,8,0,53,0,33,8,0,109,3,4,7,22,0,4,11,14,21,1,20,0,47,0,25,0,53,0,0,8,7,16,0,21,0,110,0,47,0,1,7,16,0,0,21,1,21,0,34,16,17,17,0,44,21,0,1,0,53,0,14,8,7,16,22,0,5,22,0,6,22,0,7,22,0,8,22,0,9,4,5,11,14,21,1,21,0,34,16,0,11,21,0,1,17,0,10,21,0,5,17,0,8,16,21,0,2,21,0,3,21,0,1,0,53,0,30,8,0,50,31,0,4,8,8,16,14,21,0,1,0,14,0,62,17,22,0,10,11,0,10,21,0,5,17,22,0,11,11,0,10,21,0,9,17,22,0,12,11,14,21,0,11,0,10,21,0,8,17,0,8,16,22,0,13,11,14,21,0,11,0,27,16,0,12,21,0,8,17,21,0,2,21,0,3,0,111,8,16,14,21,0,12,0,10,21,0,8,17,0,9,21,0,12,0,26,0,63,17,17,21,0,2,21,0,3,0,112,8,16,14,21,0,1,0,30,21,0,12,17,0,11,0,52,0,27,8,0,10,0,14,0,52,0,62,8,19,16,0,8,16,21,0,2,0,30,31,0,12,19,21,0,3,0,113,8,16,14,21,0,5,0,27,16,0,12,21,0,8,17,0,10,21,0,10,17,0,26,0,10,31,0,5,0,26,16,0,9,21,0,6,17,19,0,9,0,27,19,0,63,17,0,12,21,0,7,0,10,31,0,6,17,17,21,0,2,31,0,3,0,114,8,16,14,21,0,13,0,9,0,52,0,8,21,1,33,0,51,0,12,8,21,1,19,0,34,16,0,13,21,0,1,17,0,11,21,0,9,17,19,0,15,0,26,19,8,16,22,0,14,11,0,9,0,52,0,49,0,0,7,21,1,31,0,1,0,19,19,0,8,19,0,16,0,69,19,8,16,22,0,15,11,14,21,1,19,0,34,16,0,42,0,1,7,0,63,17,0,1,21,0,1,17,0,2,21,0,15,17,0,30,21,0,9,0,8,16,17,0,42,0,33,7,0,58,0,25,16,0,42,0,21,7,0,70,0,63,3,2,17,0,21,0,59,17,17,22,0,16,11,14,21,0,16,0,49,0,0,0,52,0,58,0,53,0,2,8,8,0,2,0,15,0,52,0,62,8,19,7,0,62,17,0,30,31,0,16,0,15,0,62,17,0,26,0,53,0,12,8,16,17,22,0,17,11,14,31,0,8,0,27,16,0,30,31,0,13,0,27,0,53,0,12,8,16,22,0,18,11,17,0,42,0,33,7,0,63,0,59,3,2,17,0,2,22,0,17,13,14,31,0,10,0,30,31,0,11,17,22,0,19,11,14,31,0,14,0,26,0,53,0,12,8,0,30,9,0,51,0,1,0,52,31,0,9,0,26,16,21,1,33,16,0,53,0,33,8,8,0,19,0,2,0,11,19,0,1,0,52,0,27,8,19,0,1,0,1,19,8,31,0,15,17,0,30,21,0,19,17,22,0,20,11,14,21,0,19,0,8,16,0,2,21,0,17,17,0,26,16,0,30,21,0,19,17,0,42,0,1,7,31,0,20,17,22,0,21,11,0,7,16,0,4,0,58,17,22,0,22,11,14,0,63,0,71,3,2,0,33,31,0,7,0,30,31,0,18,17,17,0,2,31,0,17,17,0,30,31,0,19,17,0,30,0,52,21,0,21,0,11,0,62,17,8,0,54,0,2,8,21,0,22,17,0,30,0,52,31,0,21,0,12,0,62,17,8,0,54,0,42,0,3,7,8,31,0,22,17,25,21,0,2,22,0,3,22,0,4,22,0,5,22,0,6,4,4,11,14,31,0,4,0,13,16,22,0,7,11,14,15,16,22,0,8,11,14,15,17,22,0,9,11,14,21,0,1,0,13,16,0,11,0,62,17,0,40,0,119,17,14,21,1,15,21,1,24,21,0,1,17,0,2,21,0,3,0,2,0,64,17,0,1,0,59,17,17,22,0,10,11,0,49,0,0,7,16,22,0,11,11,0,31,16,22,0,12,11,14,0,59,0,14,21,0,3,17,0,33,21,0,12,17,22,0,13,11,14,21,0,1,0,33,21,0,12,17,22,0,14,11,0,30,0,52,0,62,0,53,0,11,8,8,0,42,0,1,7,0,63,19,0,17,0,57,31,0,8,8,0,30,0,52,0,62,0,53,0,12,8,8,19,21,0,10,0,33,21,0,12,17,17,14,31,0,11,0,34,21,0,12,0,34,16,17,0,15,0,62,17,0,40,0,120,17,14,21,0,14,0,30,21,0,13,17,0,14,0,52,21,1,25,8,0,9,0,52,0,27,8,0,14,0,52,21,1,15,0,34,16,8,19,16,21,0,12,0,30,21,0,13,19,21,0,9,0,121,8,16,14,31,0,13,0,21,0,63,17,0,9,0,52,0,26,0,52,0,63,8,8,16,15,18,16,14,21,0,10,0,0,21,0,3,17,0,15,0,62,17,0,26,16,22,0,15,11,0,12,21,1,14,0,34,16,0,14,21,0,1,17,17,0,1,22,0,3,13,14,21,0,3,0,15,0,62,17,0,27,16,0,9,31,0,15,17,0,12,21,0,3,0,67,0,53,0,15,8,0,9,0,11,0,52,0,73,8,19,16,17,0,13,0,50,0,25,8,21,0,9,0,123,8,16,14,0,67,0,14,21,0,3,17,0,10,0,52,0,26,8,16,22,0,16,11,0,33,0,52,21,0,12,8,0,54,0,27,8,16,22,0,17,11,14,21,0,17,0,10,21,0,16,17,0,8,16,22,0,18,11,14,21,1,15,0,34,16,0,0,0,63,17,0,14,21,0,1,17,22,0,19,11,14,21,1,17,0,34,16,0,14,21,0,1,17,0,33,21,0,19,0,8,16,21,1,32,16,17,22,0,20,11,14,21,0,20,0,11,21,0,18,17,0,13,0,50,0,25,8,21,0,9,0,124,8,16,14,21,1,15,0,34,16,0,0,0,65,17,0,14,21,0,1,17,0,26,0,63,17,0,9,21,0,20,17,0,13,0,50,0,25,8,21,0,9,0,125,8,16,14,21,0,16,0,33,21,0,12,17,0,31,16,0,42,0,33,7,22,0,12,13,14,0,59,0,14,21,0,3,17,0,10,21,0,16,17,0,33,21,0,12,17,0,21,0,63,17,0,0,0,52,0,49,0,0,7,8,16,0,31,16,0,42,0,33,7,0,8,0,31,0,53,0,42,0,33,7,8,19,0,33,0,52,0,31,8,0,18,19,21,0,12,0,21,0,59,17,17,0,24,0,59,17,0,49,0,0,7,16,0,31,16,22,0,21,11,14,21,1,15,0,34,16,0,0,0,64,17,0,64,3,2,21,1,24,21,0,1,17,0,2,21,0,10,17,0,33,21,0,21,17,22,0,22,11,0,49,0,0,7,16,22,0,23,11,0,31,16,22,0,24,11,14,21,0,24,0,42,0,33,7,22,0,21,13,14,21,0,24,0,42,0,33,7,22,0,23,13,14,21,0,24,0,42,0,33,7,22,0,22,13,14,21,0,21,0,42,0,33,7,22,0,1,13,14,21,0,21,0,42,0,33,7,22,0,10,13,14,21,0,21,0,42,0,33,7,22,0,5,13,14,21,0,21,0,42,0,33,7,22,0,6,13,14,0,62,0,12,21,0,22,17,22,0,25,11,0,49,0,0,7,16,22,0,26,11,14,0,62,0,11,21,0,22,17,0,30,16,22,0,27,11,14,0,18,0,30,0,10,19,0,42,0,21,7,0,30,0,21,19,0,63,19,22,0,28,11,14,0,14,21,0,28,0,50,0,8,8,21,0,25,19,22,0,29,11,14,21,0,1,0,31,21,1,18,0,34,16,0,0,0,68,17,0,0,0,62,0,65,0,72,0,68,3,4,17,17,22,0,30,11,14,21,1,18,21,1,24,21,0,1,17,0,30,16,22,0,31,11,14,21,0,30,21,0,29,0,63,17,22,0,32,11,14,31,0,30,21,0,29,0,52,0,65,8,0,2,0,64,19,0,6,21,0,29,0,52,0,64,8,19,16,22,0,33,11,0,0,0,52,0,11,0,52,0,62,8,0,10,21,0,32,19,8,16,22,0,34,11,14,21,0,34,0,34,16,0,11,0,62,17,21,0,1,0,50,15,19,8,0,30,9,21,0,9,0,126,8,16,14,21,0,1,31,0,29,21,1,14,0,34,16,17,22,0,35,11,14,0,62,0,14,21,0,34,17,0,12,21,0,35,17,0,47,0,10,7,16,21,0,1,0,50,15,20,8,0,30,9,21,0,9,0,127,8,16,14,21,0,32,0,2,0,65,17,0,0,0,62,0,64,0,65,3,3,0,33,21,0,33,17,17,22,0,36,11,14,21,0,3,0,33,0,52,21,0,21,0,33,21,0,27,17,8,0,54,21,0,34,0,24,0,63,17,8,16,0,2,21,0,18,17,0,42,0,1,7,21,0,16,17,22,0,3,12,14,31,0,18,0,9,31,0,19,17,22,0,37,11,14,0,62,0,11,21,0,3,17,0,33,0,52,21,0,12,8,0,54,0,27,0,52,0,63,8,8,16,22,0,38,11,0,27,16,0,9,21,0,37,17,22,0,39,11,14,21,0,3,0,33,21,0,39,0,8,16,21,1,32,16,17,0,2,21,0,39,17,0,0,21,0,3,17,0,19,0,15,0,64,19,0,11,21,0,38,19,0,1,0,19,19,0,6,0,19,0,14,0,65,19,0,2,31,0,38,0,0,0,63,17,19,0,33,0,52,21,0,12,8,0,54,0,27,8,9,19,16,22,0,40,11,14,21,0,40,0,33,0,0,0,6,0,63,19,0,5,0,19,19,31,0,39,0,8,16,0,49,0,0,7,16,0,53,0,19,0,1,0,33,19,8,19,0,62,0,14,21,0,40,17,0,9,21,0,37,17,0,8,16,21,1,32,16,17,0,6,22,0,40,13,14,21,0,40,0,27,16,0,2,31,0,37,17,0,0,22,0,3,13,14,31,0,20,0,19,0,1,0,8,0,53,0,2,8,19,22,0,40,13,14,21,1,29,0,1,21,0,1,17,22,0,41,11,21,0,7,0,53,0,11,8,0,9,0,15,0,52,0,62,8,19,16,22,0,42,11,0,30,16,22,0,43,11,0,42,0,33,7,21,0,1,17,22,0,44,11,14,21,0,22,0,1,22,0,10,13,14,21,0,10,0,49,0,0,7,16,0,31,16,22,0,12,12,14,21,0,21,0,33,21,0,12,17,22,0,45,11,14,21,0,16,0,1,21,0,17,17,0,33,21,0,45,17,0,12,0,30,0,51,0,1,8,0,11,19,0,62,17,0,42,0,3,7,0,64,17,0,0,0,63,17,22,0,46,11,14,21,1,15,0,34,16,0,0,0,68,17,0,14,21,0,1,17,0,33,21,0,12,17,0,30,16,22,0,47,11,14,31,0,10,0,33,21,0,12,17,0,12,21,0,12,0,53,0,30,8,0,11,9,0,51,0,22,8,0,11,19,0,62,17,0,44,0,21,7,21,0,25,0,30,16,21,0,27,3,2,17,22,0,48,11,14,31,0,48,0,47,15,21,7,16,14,21,0,16,0,33,21,0,45,17,0,31,16,22,0,49,11,0,42,0,33,7,22,0,12,13,14,21,0,21,0,33,21,0,12,17,22,0,45,12,14,21,0,12,0,31,16,22,0,50,11,14,21,0,12,0,42,0,33,7,22,0,1,13,14,21,0,45,0,42,0,33,7,22,0,3,13,14,21,0,45,0,42,0,33,7,22,0,40,13,14,31,0,16,0,12,21,0,17,17,0,33,31,0,45,17,0,30,16,0,21,31,0,49,0,31,16,0,33,21,0,47,17,17,22,0,47,12,14,21,0,50,0,33,21,0,27,17,22,0,51,11,0,30,31,0,35,0,24,0,63,17,17,0,0,0,63,17,22,0,52,11,14,21,0,52,0,13,0,11,0,62,19,0,57,0,19,0,45,0,0,7,0,65,0,25,16,19,0,42,0,33,7,0,52,0,59,0,63,3,2,0,53,0,21,8,8,21,0,3,19,0,13,0,66,0,62,0,59,3,3,19,0,48,0,10,7,9,0,50,21,0,12,0,33,21,0,52,19,21,0,9,0,128,8,8,8,16,14,21,0,12,0,33,0,63,0,0,21,0,52,17,17,0,41,31,0,17,7,0,33,31,0,21,0,53,0,33,8,19,0,12,21,0,42,0,53,0,33,8,19,16,21,0,12,0,33,21,0,52,19,21,0,9,0,129,8,16,14,0,66,0,15,21,0,3,17,22,0,53,11,14,0,62,0,11,21,0,3,17,0,11,21,0,53,17,22,0,54,11,14,21,0,54,0,27,16,21,1,32,16,0,42,0,33,7,21,0,40,17,22,0,55,11,0,15,0,63,17,22,0,56,11,14,0,62,0,11,21,0,40,17,22,0,57,11,14,0,62,0,11,21,0,55,17,22,0,58,11,14,21,0,58,0,9,21,0,53,17,21,0,12,21,0,9,0,130,8,16,14,0,64,0,16,21,0,3,17,0,9,0,64,0,11,21,0,55,17,17,22,0,59,11,0,30,16,0,28,16,22,0,60,11,14,0,65,0,14,21,0,3,17,22,0,61,11,0,9,21,0,59,17,0,26,16,0,10,21,0,59,17,22,0,62,11,14,0,64,0,25,16,0,37,21,0,3,17,0,10,21,0,62,17,0,11,21,0,61,17,0,11,21,0,57,17,0,27,0,15,31,0,61,19,0,9,0,26,19,16,0,12,21,0,59,17,21,0,12,21,0,9,0,131,8,16,14,0,62,0,14,21,0,3,17,0,11,0,52,0,10,0,52,0,27,8,8,21,0,62,17,0,26,0,53,0,9,8,16,21,0,12,21,0,9,0,132,8,16,14,0,63,0,16,31,0,40,17,0,26,16,0,9,21,1,14,0,34,16,0,0,0,64,17,0,14,21,0,1,17,17,0,11,21,0,56,17,22,0,63,11,14,21,0,63,0,10,21,0,62,17,0,8,16,0,28,0,54,21,1,31,0,1,0,18,19,0,52,0,13,0,50,0,25,8,8,8,16,22,0,64,11,14,31,0,53,0,30,16,22,0,65,11,0,0,0,52,21,0,64,0,53,0,33,8,8,16,0,0,0,63,17,22,0,66,11,14,21,0,3,0,33,21,0,65,17,0,13,0,73,17,22,0,67,11,14,21,0,3,0,33,21,0,66,17,22,0,68,11,0,13,21,0,55,0,33,21,0,66,17,0,6,0,62,17,17,21,0,12,0,33,21,0,66,19,21,0,9,0,133,8,16,14,21,1,29,0,1,21,0,1,17,21,0,7,0,53,0,11,8,0,9,0,15,0,52,0,74,8,19,16,22,0,69,11,14,21,0,69,0,33,21,0,66,17,0,10,0,62,0,14,31,0,68,17,17,0,8,16,21,0,12,0,33,21,0,66,19,21,0,9,0,134,8,16,14,21,0,1,0,33,21,0,65,17,0,42,0,1,7,21,1,14,0,34,16,17,0,2,0,64,17,0,0,31,0,52,0,37,21,0,65,17,17,0,0,21,0,67,17,0,0,0,63,17,22,0,70,11,14,21,0,1,0,44,0,62,7,16,0,33,0,52,21,0,66,8,0,54,31,0,70,8,16,0,1,0,52,0,26,8,16,0,33,31,0,50,17,0,49,0,0,7,16,0,27,16,22,0,71,11,0,33,21,0,12,17,0,2,16,22,0,72,11,14,21,0,55,0,16,0,62,17,0,9,21,0,72,17,0,11,21,1,15,21,1,24,21,0,1,17,0,10,21,0,54,17,0,10,0,62,0,15,21,0,3,17,0,9,31,0,69,17,17,0,11,21,1,15,0,34,16,0,0,0,65,17,0,14,21,0,1,17,17,17,21,0,12,21,0,9,0,135,8,16,14,21,0,72,0,12,0,52,0,27,8,16,0,9,21,0,3,0,15,0,62,17,17,0,9,21,0,55,0,11,0,62,17,17,21,0,12,21,0,9,0,136,8,16,14,21,0,71,0,33,21,0,43,17,22,0,73,11,14,0,64,0,72,3,2,21,1,24,21,0,73,17,22,0,74,11,14,21,0,73,0,7,0,9,0,11,19,0,64,17,22,0,75,11,0,42,0,30,7,21,0,43,17,22,0,76,11,0,44,0,62,7,16,22,0,77,11,14,21,0,43,0,50,0,30,0,52,21,0,75,8,0,53,0,21,8,8,22,0,78,11,14,0,62,0,11,31,0,22,17,0,49,0,0,7,16,0,33,21,0,76,17,22,0,79,11,14,21,0,25,0,13,0,21,0,30,19,16,0,33,21,0,79,17,22,0,80,11,14,21,0,26,0,33,21,0,43,17,0,42,21,0,24,0,33,31,0,27,17,0,21,21,0,1,0,13,16,17,7,0,33,0,30,0,52,21,0,74,8,0,21,31,0,79,19,19,0,21,31,0,24,0,30,21,0,25,17,0,21,0,59,17,0,53,0,33,8,0,0,21,0,73,0,14,0,63,17,19,19,16,22,0,81,11,14,21,0,77,0,21,22,0,74,13,14,21,0,44,0,30,31,0,75,17,0,21,22,0,44,13,14,21,0,81,0,31,16,0,33,0,52,21,0,44,0,30,0,52,21,0,74,8,0,53,0,21,8,16,22,0,82,11,0,53,0,33,8,0,31,9,8,16,22,0,83,11,14,21,0,83,0,30,0,52,0,15,0,52,21,0,74,0,13,16,8,8,16,15,22,16,14,21,0,83,0,33,0,52,21,0,74,0,42,0,30,7,16,0,1,16,0,21,21,0,74,17,0,53,0,33,0,50,0,49,0,0,7,8,8,0,31,9,8,16,0,30,0,52,21,0,74,0,13,16,0,53,0,11,8,8,16,22,0,83,12,14,21,0,83,0,42,0,33,7,22,0,74,13,14,21,0,83,0,42,0,33,7,22,0,44,13,14,21,0,78,0,33,21,0,83,19,22,0,78,12,14,31,0,44,0,13,0,52,0,27,8,16,0,11,21,0,74,17,21,0,78,21,0,9,0,30,21,1,26,0,138,19,8,16,14,31,0,76,0,44,0,64,7,16,0,21,0,63,0,65,3,2,21,1,24,21,0,73,17,17,0,33,21,0,83,17,15,23,16,14,21,0,80,0,21,21,0,43,17,0,33,0,52,21,0,83,8,0,54,0,33,0,52,21,0,74,21,1,32,16,8,8,16,22,0,84,11,14,0,64,0,72,3,2,21,1,24,21,0,71,17,0,9,31,0,42,17,0,49,0,0,7,16,21,1,31,0,1,0,19,19,21,0,25,17,22,0,85,11,0,30,31,0,25,0,26,0,63,17,17,22,0,86,11,14,21,0,31,0,44,0,62,7,16,0,21,21,0,77,17,0,21,21,0,84,0,23,0,52,0,13,8,21,0,43,17,31,0,23,0,53,0,33,8,0,51,0,1,8,21,0,43,17,17,22,0,87,11,14,31,0,41,0,33,21,0,31,17,0,0,0,64,17,0,15,0,52,0,62,8,0,53,0,0,8,16,0,0,21,0,32,0,2,0,65,17,0,33,21,0,26,0,33,21,0,31,17,17,17,0,21,0,63,0,1,31,0,85,17,0,0,21,0,36,0,33,21,0,26,17,17,0,33,31,0,84,17,17,22,0,88,11,14,21,0,87,0,33,0,52,31,0,83,8,0,54,0,19,0,11,0,62,19,31,0,28,0,33,0,52,0,49,0,0,7,8,0,18,19,21,0,74,19,0,9,0,18,0,14,0,62,19,0,9,21,0,74,0,26,0,63,17,19,19,8,21,0,77,0,21,21,0,73,17,17,22,0,89,11,14,31,0,71,0,33,21,0,31,17,0,21,31,0,77,17,0,21,31,0,73,17,0,11,0,62,17,0,0,0,75,17,0,0,31,0,89,0,2,0,58,17,17,31,0,87,31,0,88,3,3,22,0,90,11,14,21,0,80,0,11,0,52,0,27,0,52,0,59,8,8,16,0,30,16,22,0,91,11,14,31,0,31,0,21,21,0,80,17,0,21,31,0,43,17,0,30,0,65,17,21,0,80,0,33,21,0,91,17,3,2,0,30,0,63,0,65,3,2,17,0,28,0,59,17,0,21,16,22,0,92,11,14,31,0,90,0,12,16,0,29,16,0,20,16,21,0,91,0,44,0,65,7,16,21,0,91,0,19,0,1,0,26,19,0,52,0,13,8,31,0,80,17,31,0,91,0,44,0,76,7,16,3,4,0,28,0,59,17,22,0,93,11,14,21,0,62,0,8,16,0,49,0,0,7,16,21,1,31,0,1,0,19,19,21,0,54,17,0,7,0,10,0,12,19,0,64,17,0,9,21,0,56,17,22,0,94,11,14,31,0,59,0,27,16,0,10,0,63,0,14,21,0,3,17,17,22,0,95,11,0,11,21,0,72,0,11,21,0,54,17,0,10,0,52,0,26,8,16,0,10,21,0,62,17,0,10,31,0,94,17,22,0,96,11,17,0,30,16,22,0,97,11,14,31,0,95,0,10,31,0,96,17,0,12,21,0,56,17,21,0,12,21,0,9,0,140,8,16,14,0,62,0,14,21,0,3,17,0,11,21,0,62,17,0,10,0,62,0,16,21,0,3,17,0,9,31,0,56,17,17,0,11,31,0,57,17,0,26,16,0,33,21,0,97,17,22,0,98,11,14,21,1,25,0,11,21,0,1,17,0,30,16,22,0,99,11,0,42,0,33,7,21,0,1,17,22,0,100,11,0,9,16,0,38,16,22,0,101,11,0,27,0,1,0,19,19,0,59,17,0,30,16,0,33,31,0,100,17,22,0,102,11,14,31,0,7,0,0,21,1,29,17,22,0,103,11,0,16,21,0,1,17,0,30,16,22,0,104,11,0,21,31,0,99,17,22,0,105,11,14,21,0,1,0,33,31,0,104,17,0,0,21,0,101,0,13,16,0,42,0,1,7,31,0,103,17,17,0,21,22,0,102,13,14,21,1,25,0,14,21,0,1,17,22,0,106,11,14,21,1,15,0,34,16,0,0,0,64,17,0,14,21,0,1,17,22,0,107,11,14,21,1,15,0,34,16,0,0,0,72,17,0,14,21,0,1,17,22,0,108,11,21,1,32,0,51,0,11,8,21,0,107,17,0,9,21,0,106,17,22,0,109,11,14,21,0,58,0,9,21,0,109,0,10,21,0,108,17,0,27,16,17,21,0,12,21,0,9,0,141,8,16,14,0,62,0,21,21,0,109,17,0,49,0,0,7,16,0,30,0,63,0,21,21,0,108,17,17,0,24,0,63,17,0,27,0,53,0,1,8,16,0,0,31,0,54,0,26,0,63,17,0,30,31,0,108,17,0,8,16,17,0,42,0,21,7,31,0,46,17,22,0,110,11,14,31,0,106,0,11,31,0,109,17,0,11,21,0,58,17,0,30,16,22,0,111,11,14,31,0,107,0,30,16,22,0,112,11,14,21,0,98,0,0,21,0,97,17,0,0,0,52,21,0,64,0,53,0,33,8,0,2,21,0,98,19,8,16,22,0,113,11,14,21,0,113,0,30,31,0,58,0,33,21,0,97,17,22,0,114,11,0,2,21,0,98,0,0,0,63,17,17,17,0,21,22,0,111,13,14,21,0,114,0,8,16,22,0,114,12,14,21,0,114,0,42,0,30,7,22,0,97,13,14,21,0,114,0,42,0,30,7,22,0,98,13,14,31,0,114,0,42,0,30,7,22,0,113,13,14,21,0,105,21,0,105,21,0,51,21,0,51,21,0,47,0,30,0,64,17,21,0,111,21,0,66,0,30,21,0,67,17,31,0,64,0,33,21,0,60,17,0,6,0,63,17,0,0,21,0,60,17,31,0,113,21,0,112,3,10,0,21,16,0,42,0,33,7,21,0,12,17,0,21,31,0,92,17,22,0,115,11,0,31,16,22,0,116,11,14,31,0,105,0,44,0,62,7,16,31,0,102,21,0,51,0,44,0,77,7,16,31,0,51,0,13,16,0,25,16,0,0,0,63,17,31,0,110,0,22,31,0,72,0,33,31,0,47,17,0,0,0,65,17,17,0,29,16,0,20,16,31,0,111,0,44,0,76,7,16,21,0,1,0,0,21,0,63,17,0,33,31,0,65,0,30,21,0,67,17,17,0,0,21,1,14,0,34,16,0,0,0,63,17,0,1,0,78,17,17,0,6,0,78,17,31,0,3,0,33,21,0,60,17,0,0,0,68,17,31,0,55,0,33,21,0,97,17,0,2,0,80,17,0,1,31,0,98,17,0,0,0,79,17,0,14,0,52,0,58,8,0,2,0,61,19,0,0,0,19,19,16,21,0,112,0,44,0,81,7,16,3,10,0,21,31,0,93,17,0,21,16,0,33,21,0,116,17,22,0,117,11,14,0,19,0,42,0,33,7,21,0,12,19,0,21,0,13,0,53,0,42,0,24,0,52,0,1,8,7,8,19,22,0,118,11,14,31,0,66,0,30,31,0,67,17,0,42,0,1,7,0,63,17,31,0,60,21,0,97,3,3,0,21,16,21,0,118,21,0,5,0,13,16,0,42,0,1,7,0,63,17,0,5,31,0,115,17,0,28,0,52,0,13,0,50,0,1,8,8,21,0,112,17,17,22,0,119,11,14,21,0,5,21,0,6,3,2,0,44,0,33,0,52,0,28,0,52,21,0,112,0,13,16,8,0,33,21,0,116,19,0,42,0,21,7,0,59,19,8,7,21,0,119,31,0,63,0,10,31,0,62,17,0,8,16,0,27,16,21,1,32,16,0,33,31,0,97,17,31,0,118,31,0,119,17,3,2,17,22,0,120,11,14,0,81,0,21,21,0,117,17,31,0,101,31,0,33,31,0,32,0,8,16,31,0,112,0,13,0,51,0,1,8,31,0,117,17,0,16,31,0,116,17,0,21,0,63,17,0,30,16,31,0,36,0,0,31,0,86,17,3,4,31,0,120,3,4,25,21,0,2,0,13,0,13,0,64,19,0,57,15,24,8,16,22,0,3,22,0,4,4,2,11,14,21,0,1,21,1,34,31,0,4,17,22,0,5,11,22,0,6,22,0,7,22,0,8,22,0,9,22,0,10,4,5,11,14,31,0,6,21,1,36,31,0,7,21,0,8,0,34,16,31,0,9,31,0,10,3,4,17,22,0,11,22,0,12,22,0,13,22,0,14,4,4,11,14,31,0,11,31,0,8,0,24,0,63,17,0,21,31,0,3,0,33,31,0,12,17,3,1,17,0,21,16,31,0,13,0,12,16,0,29,16,0,43,0,11,7,16,31,0,14,31,0,5,3,5,25,21,0,1,21,0,2,16,25,21,0,1,0,33,0,52,21,0,2,0,30,21,0,1,17,8,0,54,0,44,0,63,7,8,16,21,1,11,21,0,2,0,42,0,33,7,16,17,25,0,62,0,40,21,0,1,0,30,16,0,34,16,0,104,3,2,17,25,21,0,2,0,42,0,30,7,22,1,24,13,14,21,0,1,0,30,21,0,2,17,25,0,62,0,40,21,1,24,0,30,21,0,1,17,0,105,3,2,17,25,0,62,0,40,21,0,2,0,30,21,0,1,17,0,42,0,33,7,21,1,24,17,0,106,3,2,17,25,21,0,2,0,42,0,30,7,22,1,23,13,14,21,0,1,21,1,25,21,0,2,17,25,0,47,0,10,7,0,57,21,0,1,0,11,0,51,0,22,8,21,0,2,0,53,0,30,8,19,0,42,0,40,7,0,62,19,8,25,0,62,0,28,0,53,0,45,0,14,7,8,0,48,15,25,7,0,19,0,50,0,44,0,62,7,8,19,0,34,0,59,19,3,2,0,55,0,13,0,11,0,62,19,0,51,0,9,8,8,22,0,3,11,14,15,26,22,0,4,11,14,0,62,21,0,4,0,116,8,0,42,0,63,31,0,4,0,117,8,7,3,2,0,55,0,13,0,51,0,12,8,8,22,0,5,11,14,21,0,1,31,0,5,0,118,3,2,0,55,0,13,0,51,0,5,8,0,11,31,0,3,19,8,21,0,2,17,0,42,0,40,7,0,62,17,25,0,14,0,57,0,47,0,10,7,8,0,57,21,0,1,0,11,0,51,0,22,8,21,0,2,0,53,0,30,8,0,42,0,63,0,56,0,33,8,7,0,41,21,1,6,7,0,22,21,1,5,19,19,0,29,0,50,0,9,8,9,19,0,42,0,40,7,0,62,19,8,25,21,1,14,0,21,0,62,17,0,30,21,0,1,17,0,13,21,2,15,0,34,16,0,0,0,72,17,17,21,1,12,0,21,0,62,19,0,30,21,0,1,19,21,1,9,0,122,8,16,25,21,2,18,21,2,24,21,0,1,17,0,9,21,1,26,0,14,0,62,17,17,25,21,2,14,0,34,16,0,14,21,0,1,17,0,9,21,1,34,0,13,0,62,17,0,33,21,1,26,17,17,25,21,1,5,0,33,0,52,21,0,1,8,0,54,21,1,5,0,33,21,0,2,17,8,16,22,1,5,12,14,21,1,6,0,33,0,52,21,0,2,8,0,54,21,1,6,0,33,21,0,1,17,8,16,22,1,6,12,25,21,1,81,0,33,0,52,21,0,1,8,0,13,0,52,0,27,8,9,0,51,0,10,8,21,1,82,17,0,8,16,21,1,78,0,30,0,52,21,1,74,8,0,53,0,21,8,9,0,33,21,0,1,19,21,1,9,0,137,8,16,25,21,0,1,0,30,21,0,1,0,2,16,0,10,21,1,74,17,22,0,3,11,17,0,27,0,53,0,1,8,16,0,15,0,64,17,21,1,78,0,30,31,0,3,19,21,1,9,0,139,8,16,25,21,0,1,0,44,0,44,0,41,0,62,7,0,40,0,142,19,7,7,3,2,25,21,0,1,0,27,16,0,0,21,0,2,17,0,49,0,6,7,16,0,6,21,0,1,17,25,0,36,0,14,0,18,0,50,0,13,8,19,0,42,0,30,7,0,19,19,0,0,21,0,2,19,0,42,0,33,7,21,3,8,19,0,21,0,99,19,0,21,21,0,1,19,0,21,0,115,19,25] - ,[runtime[0],runtime[1],runtime[2],runtime[3],runtime[4],runtime[6],runtime[7],runtime[8],runtime[9],runtime[10],runtime[11],runtime[12],runtime[13],runtime[14],runtime[15],runtime[16],runtime[17],runtime[19],runtime[20],runtime[21],runtime[22],runtime[23],runtime[24],runtime[25],runtime[26],runtime[27],runtime[28],runtime[29],runtime[30],runtime[31],runtime[32],runtime[33],runtime[34],runtime[35],runtime[36],runtime[37],runtime[38],runtime[39],runtime[40],runtime[41],runtime[42],runtime[43],runtime[44],runtime[45],runtime[46],runtime[47],runtime[48],runtime[49],runtime[50],runtime[51],runtime[52],runtime[53],runtime[54],runtime[55],runtime[56],runtime[58],runtime[59],runtime[61],10,-1,26,9,0,1,2,3,-3,-2,5,17,3.1415926535898,Infinity,4,-4,-10,21,14,15,11,16,7,25,'\0','0','#','\'','\"','@',str("⋄,"),str("⇐←↩"),str("(){}⟨⟩"),str("‿"),str("·"),str("𝕊𝕏𝕎𝔽𝔾𝕤𝕩𝕨𝕗𝕘"),str("π∞¯."),str("_"),str("aA"),str("•"),str("𝕨"),str(" "),str("#\'\"@"),str("s"),str("Unknown character"),str(": "),str("Unclosed quote"),str("System dot with no name"),str("Numbers can\'t start with underscores"),str("Letter"),str(" \""),str("\" not allowed in numbers"),str("ea"),str("Negative sign in the middle of a number"),str("Portion of a number is empty"),str("Ill-formed decimal or exponent use"),str("π and ∞ must occur alone"),str("Missing "),str("opening"),str("closing"),str("Malformed bracket nesting"),str("Empty program"),str("Swapped open and closed brackets"),str("Parentheses can\'t contain separators"),str("Empty statement or expression"),str("Invalid assignment or stranding use"),str("Can\'t strand Nothing (·)"),str("Can\'t return Nothing (·)"),str("Special name outside of any block"),str("Can\'t export from a non-immediate block"),str("Modules must be immediately assigned"),str("Modules must be destructured"),str("Nothing (·) cannot be assigned"),str("Missing operand"),str("Double subjects (missing ‿?)"),str("Role of the two sides in assignment must match"),str("Function or modifier assignment to a non-name"),str("Assignment target must be a name or list of targets"),str("Can\'t use result of function/modifier assignment without parentheses"),str("Redefinition"),str("Undefined identifier"),str("Imports must have been exported"),str("Second-level parts of a train must be functions"),str("Can\'t use Nothing (·) in lists"),str("System values not supported")] - ,[[0,1,0,0],[0,0,3,38],[1,0,488,5],[1,1,507,5],[0,0,631,50],[0,0,2417,23],[0,0,3236,121],[0,0,8234,15],[0,0,8385,3],[0,0,8393,3],[0,0,8433,3],[0,0,8452,3],[0,0,8475,3],[0,0,8494,3],[0,0,8522,3],[2,1,8546,3],[0,0,8582,6],[2,1,8719,3],[0,0,8791,3],[0,0,8841,3],[0,0,8863,3],[0,0,8893,3],[0,0,8951,3],[0,0,9013,4],[0,0,9065,3],[0,0,9087,3],[2,1,9112,3]] + [15,1,25,21,0,1,22,0,3,22,0,4,22,0,5,4,3,11,14,0,58,0,0,0,82,17,22,0,6,11,14,31,0,3,31,0,4,31,0,5,21,0,6,0,21,0,88,17,0,89,0,90,0,91,0,92,0,93,0,20,0,58,0,50,3,2,17,0,43,0,33,7,0,59,17,0,58,0,25,16,0,0,0,83,17,0,94,0,60,22,0,7,11,0,25,16,0,45,0,0,7,0,96,17,0,20,16,0,42,0,21,7,0,95,17,0,61,0,0,0,82,17,0,21,0,99,17,0,21,0,98,0,24,0,59,17,17,0,21,0,97,17,0,100,3,14,0,44,0,13,7,0,11,0,51,0,22,8,0,21,19,16,22,0,8,22,0,9,4,2,11,14,21,0,9,0,49,0,0,7,0,27,0,62,19,0,53,0,42,0,44,0,22,7,7,8,16,22,0,10,22,0,11,22,0,12,22,0,13,22,0,14,22,0,15,22,0,16,22,0,17,22,0,18,22,0,19,22,0,20,22,0,21,22,0,22,22,0,23,4,14,11,14,0,34,0,53,0,1,8,0,12,0,9,0,15,0,52,0,62,8,19,0,34,0,52,0,63,8,19,22,0,24,11,14,21,0,13,0,34,16,22,0,25,11,14,0,13,0,11,0,63,19,0,42,0,30,7,0,101,19,0,53,0,21,8,22,0,26,11,14,15,2,22,0,27,11,14,15,3,21,0,8,7,22,0,28,11,14,21,0,19,0,34,16,22,0,29,11,14,0,63,0,64,0,65,0,59,0,66,0,59,0,62,3,2,0,67,0,62,0,64,0,25,16,0,28,16,0,30,0,68,17,3,9,0,41,31,0,9,7,0,23,0,13,19,0,53,0,42,0,44,0,20,7,7,8,16,0,21,16,22,0,30,11,14,0,2,0,49,0,6,7,9,22,0,31,11,14,21,0,31,0,52,0,13,0,50,0,25,8,8,22,0,32,11,14,21,0,31,0,52,0,13,0,50,0,25,8,0,0,0,63,19,8,22,0,33,11,14,15,4,22,0,34,11,14,15,5,22,0,35,11,14,15,6,22,0,36,11,14,15,7,22,0,37,11,25,21,0,1,0,11,16,0,44,15,8,7,21,0,4,17,0,21,16,25,21,1,27,21,1,26,0,52,0,102,8,0,103,0,19,3,3,7,0,42,0,40,7,0,62,19,22,0,2,11,14,21,0,1,0,53,0,33,8,0,53,0,17,0,57,0,18,0,30,0,13,19,0,50,31,0,2,8,8,8,0,18,0,19,19,22,0,3,11,14,21,0,1,0,31,16,22,0,4,11,14,0,19,0,31,21,0,1,0,33,21,0,4,17,19,0,6,0,63,19,0,42,0,1,7,0,63,19,0,42,0,33,7,31,0,4,19,31,0,3,0,19,19,25,0,84,0,14,21,0,1,17,22,0,3,11,14,0,85,0,14,21,0,1,17,22,0,4,11,0,9,0,52,0,26,0,52,0,62,0,62,3,2,8,8,16,0,30,16,22,0,5,11,14,0,86,0,14,21,0,1,17,22,0,6,11,0,30,16,22,0,7,11,14,21,0,5,21,0,7,0,24,0,59,17,21,0,3,0,30,16,3,3,0,21,16,22,0,8,11,0,31,16,22,0,9,11,14,21,0,8,0,33,21,0,9,17,22,0,8,12,14,31,0,5,0,0,0,64,17,31,0,7,0,24,0,63,17,0,63,0,21,21,1,6,0,14,21,0,1,17,17,0,30,16,0,30,0,52,21,0,3,0,49,0,0,7,16,0,21,0,62,17,0,53,0,33,0,50,0,27,0,53,0,1,8,8,8,8,16,3,3,0,21,16,0,33,31,0,9,17,22,0,10,11,14,0,19,0,34,0,59,19,0,14,0,62,19,0,57,15,9,8,22,0,11,11,14,0,30,0,52,21,0,10,0,31,21,0,8,17,0,44,0,62,7,0,21,0,63,19,21,0,11,0,13,0,53,0,21,8,19,0,23,0,13,19,16,8,0,46,0,30,7,9,0,23,21,0,1,0,13,16,19,22,0,12,11,14,31,0,8,21,0,12,16,22,0,13,11,14,31,0,10,31,0,12,16,22,0,14,11,14,21,0,14,0,10,21,0,13,17,22,0,15,11,0,49,0,13,7,0,63,17,22,0,16,11,14,21,0,16,0,11,31,0,14,17,0,9,21,0,6,0,10,21,0,4,17,17,0,47,0,10,7,0,57,15,10,8,16,14,0,87,0,14,21,0,1,17,0,9,21,0,16,17,22,0,17,11,14,31,0,4,0,9,21,0,13,17,0,27,16,0,10,21,0,17,17,0,30,16,22,0,18,11,14,21,0,18,31,0,17,0,53,0,33,8,0,2,0,82,0,1,0,87,17,19,0,1,21,0,1,0,53,0,33,8,19,16,22,0,19,11,14,21,0,6,0,9,22,0,13,13,0,26,16,0,9,21,0,6,17,22,0,20,11,0,12,22,0,16,13,14,31,0,15,0,9,31,0,6,17,0,49,0,13,7,16,0,11,0,63,0,53,0,21,8,0,51,0,2,0,52,0,49,0,0,7,8,8,0,18,19,31,0,20,0,27,16,0,12,31,0,13,17,22,0,21,11,17,0,42,0,1,7,0,63,17,0,42,0,39,7,21,0,1,17,22,0,22,11,14,21,0,16,0,30,16,22,0,23,11,14,21,0,16,0,27,0,63,17,0,30,16,0,23,0,52,0,13,8,21,0,23,17,22,0,24,11,14,15,11,22,0,25,11,14,21,0,23,31,0,3,0,53,0,33,8,0,2,0,1,19,21,0,24,17,0,1,22,0,24,13,14,21,0,1,0,33,21,0,23,17,21,1,28,16,22,0,26,11,14,21,1,22,0,34,0,51,0,42,0,1,7,0,22,0,18,19,8,21,1,19,17,21,1,24,21,0,26,17,22,0,27,11,0,11,0,52,0,27,8,16,22,0,28,11,14,21,1,21,0,47,0,0,7,16,0,0,0,59,17,0,14,21,0,26,17,22,0,29,11,14,21,1,22,0,34,16,0,14,21,0,26,17,22,0,30,11,14,21,0,26,0,30,21,0,28,17,0,42,0,1,7,21,1,21,0,34,16,17,0,42,0,3,0,50,0,5,8,7,21,1,7,17,22,0,31,11,14,21,1,21,0,34,16,0,0,21,1,7,17,0,16,21,0,26,17,0,9,21,0,27,17,0,2,21,1,7,17,0,1,22,0,26,13,14,21,0,27,0,26,16,0,12,21,0,30,17,0,47,0,10,7,0,57,15,12,8,16,14,21,0,30,0,10,0,52,0,27,8,16,0,13,22,0,28,13,14,31,0,30,0,30,21,0,28,17,0,19,0,0,0,8,0,53,0,2,8,19,0,62,0,16,21,0,31,17,0,2,0,64,17,17,22,0,32,11,0,11,0,62,17,22,0,33,11,14,21,0,33,0,8,16,0,21,0,62,17,0,33,21,0,28,0,49,0,0,7,16,17,0,9,21,0,27,17,22,0,34,11,0,12,21,0,27,17,22,0,35,11,14,21,0,27,0,2,21,0,26,17,0,21,0,52,0,62,8,0,30,21,0,34,0,21,0,62,17,0,26,0,53,0,10,8,16,0,11,21,0,29,0,21,0,62,17,17,19,0,51,21,1,35,8,21,0,24,17,22,0,36,11,14,31,0,31,0,30,21,0,33,17,0,14,0,52,0,64,8,0,53,0,9,8,0,0,0,19,19,21,0,35,0,11,0,52,0,26,8,16,0,42,0,30,7,21,0,29,17,17,22,0,37,11,14,21,0,32,0,30,31,0,33,17,0,14,0,63,17,22,0,38,11,14,31,0,34,0,12,21,0,28,17,0,49,0,0,7,16,0,2,31,0,29,0,12,31,0,35,17,17,0,42,0,1,7,0,63,17,22,0,39,11,14,21,0,39,0,11,0,52,0,49,0,6,7,0,27,0,59,19,8,16,0,30,16,21,0,26,0,53,0,33,8,0,12,21,1,21,0,34,16,19,0,11,21,0,38,19,0,53,0,19,0,47,0,10,7,9,0,57,15,13,8,8,16,14,21,1,8,0,33,21,0,26,17,0,39,31,0,39,17,0,39,0,64,0,21,31,0,38,17,17,22,0,40,11,14,31,0,16,0,27,16,0,49,0,0,7,16,0,33,31,0,21,0,30,16,0,21,31,0,18,17,17,0,21,21,0,28,0,30,16,0,33,0,52,0,32,8,31,0,32,17,17,22,0,41,11,14,31,0,36,31,0,19,31,0,22,3,3,0,21,31,0,40,17,22,0,42,11,14,21,0,42,0,44,0,35,7,16,22,0,43,11,0,42,0,44,0,30,0,52,0,49,0,6,7,0,27,0,59,19,0,12,0,19,19,8,7,7,22,0,42,13,14,21,0,42,0,34,0,52,0,63,8,0,54,21,0,2,8,16,22,0,42,12,14,21,1,22,21,1,24,21,0,26,17,0,10,21,0,27,17,0,8,16,22,0,44,11,14,31,0,27,0,26,0,53,0,12,8,16,0,10,21,0,44,17,0,42,0,30,7,22,0,23,13,14,21,0,26,0,33,0,52,31,0,41,8,0,54,21,0,42,0,44,0,13,7,16,22,0,45,11,0,27,21,1,29,17,0,49,0,0,7,16,0,0,31,0,43,17,0,21,16,8,16,21,0,25,31,0,44,0,10,31,0,28,17,17,22,0,26,12,14,21,1,13,0,34,0,53,0,1,8,0,2,21,1,24,19,21,0,26,17,0,1,22,0,26,13,14,21,1,25,0,14,21,0,26,17,0,42,0,21,7,0,13,0,21,19,0,63,17,0,30,16,0,24,0,63,17,0,24,0,59,17,22,0,46,11,0,44,0,63,7,16,0,49,0,13,7,16,22,0,47,11,14,21,1,15,0,34,16,0,0,0,65,0,68,3,2,17,0,37,21,0,26,0,33,21,0,47,0,1,21,0,46,17,17,0,0,21,0,47,17,17,0,26,0,53,0,10,8,16,0,12,31,0,47,17,0,42,0,30,7,31,0,46,17,22,0,48,11,14,21,1,25,0,13,21,0,26,17,0,33,0,52,31,0,48,8,0,54,0,44,0,63,7,8,16,0,42,15,14,7,22,0,26,13,14,0,62,0,21,21,1,30,17,0,33,21,0,26,0,5,21,1,29,17,17,0,30,0,52,31,0,45,0,23,0,64,17,0,47,0,0,7,16,0,22,21,1,29,17,21,1,24,21,0,26,17,8,0,54,31,0,37,8,16,22,0,49,11,14,21,1,18,0,34,16,0,68,3,2,21,1,24,21,0,26,17,0,2,0,68,17,0,0,22,0,26,13,14,31,0,26,31,0,49,31,0,42,21,0,24,21,0,23,3,5,25,15,15,22,0,3,11,14,21,1,27,21,1,26,0,52,0,107,8,0,108,21,1,8,0,53,0,33,8,0,109,3,4,7,22,0,4,11,14,21,1,20,0,47,0,25,0,53,0,0,8,7,16,0,21,0,110,0,47,0,1,7,16,0,0,21,1,21,0,34,16,17,17,0,44,21,0,1,0,53,0,14,8,7,16,22,0,5,22,0,6,22,0,7,22,0,8,22,0,9,4,5,11,14,21,1,21,0,34,16,0,11,21,0,1,17,0,10,21,0,5,17,0,8,16,21,0,2,21,0,3,21,0,1,0,53,0,30,8,0,50,31,0,4,8,8,16,14,21,0,1,0,14,0,62,17,22,0,10,11,0,10,21,0,5,17,22,0,11,11,0,10,21,0,9,17,22,0,12,11,14,21,0,11,0,10,21,0,8,17,0,8,16,22,0,13,11,14,21,0,11,0,27,16,0,12,21,0,8,17,21,0,2,21,0,3,0,111,8,16,14,21,0,12,0,10,21,0,8,17,0,9,21,0,12,0,26,0,63,17,17,21,0,2,21,0,3,0,112,8,16,14,21,0,1,0,30,21,0,12,17,0,11,0,52,0,27,8,0,10,0,14,0,52,0,62,8,19,16,0,8,16,21,0,2,0,30,31,0,12,19,21,0,3,0,113,8,16,14,21,0,5,0,27,16,0,12,21,0,8,17,0,10,21,0,10,17,0,26,0,10,31,0,5,0,26,16,0,9,21,0,6,17,19,0,9,0,27,19,0,63,17,0,12,21,0,7,0,10,31,0,6,17,17,21,0,2,31,0,3,0,114,8,16,14,21,0,13,0,9,0,52,0,8,21,1,33,0,51,0,12,8,21,1,19,0,34,16,0,13,21,0,1,17,0,11,21,0,9,17,19,0,15,0,26,19,8,16,22,0,14,11,0,9,0,52,0,49,0,0,7,21,1,31,0,1,0,19,19,0,8,19,0,16,0,69,19,8,16,22,0,15,11,14,21,1,19,0,34,16,0,42,0,1,7,0,63,17,0,1,21,0,1,17,0,2,21,0,15,17,0,30,21,0,9,0,8,16,17,0,42,0,33,7,0,58,0,25,16,0,42,0,21,7,0,70,0,63,3,2,17,0,21,0,59,17,17,22,0,16,11,14,21,0,16,0,49,0,0,0,52,0,58,0,53,0,2,8,8,0,2,0,15,0,52,0,62,8,19,7,0,62,17,0,30,31,0,16,0,15,0,62,17,0,26,0,53,0,12,8,16,17,22,0,17,11,14,31,0,8,0,27,16,0,30,31,0,13,0,27,0,53,0,12,8,16,22,0,18,11,17,0,42,0,33,7,0,63,0,59,3,2,17,0,2,22,0,17,13,14,31,0,10,0,30,31,0,11,17,22,0,19,11,14,31,0,14,0,26,0,53,0,12,8,0,30,9,0,51,0,1,0,52,31,0,9,0,26,16,21,1,33,16,0,53,0,33,8,8,0,19,0,2,0,11,19,0,1,0,52,0,27,8,19,0,1,0,1,19,8,31,0,15,17,0,30,21,0,19,17,22,0,20,11,14,21,0,19,0,8,16,0,2,21,0,17,17,0,26,16,0,30,21,0,19,17,0,42,0,1,7,31,0,20,17,22,0,21,11,0,7,16,0,4,0,58,17,22,0,22,11,14,0,63,0,71,3,2,0,33,31,0,7,0,30,31,0,18,17,17,0,2,31,0,17,17,0,30,31,0,19,17,0,30,0,52,21,0,21,0,11,0,62,17,8,0,54,0,2,8,21,0,22,17,0,30,0,52,31,0,21,0,12,0,62,17,8,0,54,0,42,0,3,7,8,31,0,22,17,25,21,0,2,22,0,3,22,0,4,22,0,5,22,0,6,4,4,11,14,31,0,4,0,13,16,22,0,7,11,14,15,16,22,0,8,11,14,15,17,22,0,9,11,14,21,0,1,0,13,16,0,11,0,62,17,0,40,0,119,17,14,21,1,15,21,1,24,21,0,1,17,0,2,21,0,3,0,2,0,64,17,0,1,0,59,17,17,22,0,10,11,0,49,0,0,7,16,22,0,11,11,0,31,16,22,0,12,11,14,0,59,0,14,21,0,3,17,0,33,21,0,12,17,22,0,13,11,14,21,0,1,0,33,21,0,12,17,22,0,14,11,0,30,0,52,0,62,0,53,0,11,8,8,0,42,0,1,7,0,63,19,0,17,0,57,31,0,8,8,0,30,0,52,0,62,0,53,0,12,8,8,19,21,0,10,0,33,21,0,12,17,17,14,31,0,11,0,34,21,0,12,0,34,16,17,0,15,0,62,17,0,40,0,120,17,14,21,0,14,0,30,21,0,13,17,0,14,0,52,21,1,25,8,0,9,0,52,0,27,8,0,14,0,52,21,1,15,0,34,16,8,19,16,21,0,12,0,30,21,0,13,19,21,0,9,0,121,8,16,14,31,0,13,0,21,0,63,17,0,9,0,52,0,26,0,52,0,63,8,8,16,15,18,16,14,21,0,10,0,0,21,0,3,17,0,15,0,62,17,0,26,16,22,0,15,11,0,12,21,1,14,0,34,16,0,14,21,0,1,17,17,0,1,22,0,3,13,14,21,0,3,0,15,0,62,17,0,27,16,0,9,31,0,15,17,0,12,21,0,3,0,67,0,53,0,15,8,0,9,0,11,0,52,0,73,8,19,16,17,0,13,0,50,0,25,8,21,0,9,0,123,8,16,14,0,67,0,14,21,0,3,17,0,10,0,52,0,26,8,16,22,0,16,11,0,33,0,52,21,0,12,8,0,54,0,27,8,16,22,0,17,11,14,21,0,17,0,10,21,0,16,17,0,8,16,22,0,18,11,14,21,1,15,0,34,16,0,0,0,63,17,0,14,21,0,1,17,22,0,19,11,14,21,1,17,0,34,16,0,14,21,0,1,17,0,33,21,0,19,0,8,16,21,1,32,16,17,22,0,20,11,14,21,0,20,0,11,21,0,18,17,0,13,0,50,0,25,8,21,0,9,0,124,8,16,14,21,1,15,0,34,16,0,0,0,65,17,0,14,21,0,1,17,0,26,0,63,17,0,9,21,0,20,17,0,13,0,50,0,25,8,21,0,9,0,125,8,16,14,21,0,16,0,33,21,0,12,17,0,31,16,0,42,0,33,7,22,0,12,13,14,0,59,0,14,21,0,3,17,0,10,21,0,16,17,0,33,21,0,12,17,0,21,0,63,17,0,0,0,52,0,49,0,0,7,8,16,0,31,16,0,42,0,33,7,0,8,0,31,0,53,0,42,0,33,7,8,19,0,33,0,52,0,31,8,0,18,19,21,0,12,0,21,0,59,17,17,0,24,0,59,17,0,49,0,0,7,16,0,31,16,22,0,21,11,14,21,1,15,0,34,16,0,0,0,64,17,0,64,3,2,21,1,24,21,0,1,17,0,2,21,0,10,17,0,33,21,0,21,17,22,0,22,11,0,49,0,0,7,16,22,0,23,11,0,31,16,22,0,24,11,14,21,0,24,0,42,0,33,7,22,0,21,13,14,21,0,24,0,42,0,33,7,22,0,23,13,14,21,0,24,0,42,0,33,7,22,0,22,13,14,21,0,21,0,42,0,33,7,22,0,1,13,14,21,0,21,0,42,0,33,7,22,0,10,13,14,21,0,21,0,42,0,33,7,22,0,5,13,14,21,0,21,0,42,0,33,7,22,0,6,13,14,0,62,0,12,21,0,22,17,22,0,25,11,0,49,0,0,7,16,22,0,26,11,14,0,62,0,11,21,0,22,17,0,30,16,22,0,27,11,14,0,18,0,30,0,10,19,0,42,0,21,7,0,30,0,21,19,0,63,19,22,0,28,11,14,0,14,21,0,28,0,50,0,8,8,21,0,25,19,22,0,29,11,14,21,0,1,0,31,21,1,18,0,34,16,0,0,0,68,17,0,0,0,62,0,65,0,72,0,68,3,4,17,17,22,0,30,11,14,21,1,18,21,1,24,21,0,1,17,0,30,16,22,0,31,11,14,21,0,30,21,0,29,0,63,17,22,0,32,11,14,31,0,30,21,0,29,0,52,0,65,8,0,2,0,64,19,0,6,21,0,29,0,52,0,64,8,19,16,22,0,33,11,0,0,0,52,0,11,0,52,0,62,8,0,10,21,0,32,19,8,16,22,0,34,11,14,21,0,34,0,34,16,0,11,0,62,17,21,0,1,0,50,15,19,8,0,30,9,21,0,9,0,126,8,16,14,21,0,1,31,0,29,21,1,14,0,34,16,17,22,0,35,11,14,21,0,32,0,2,0,65,17,0,0,0,62,0,64,0,65,3,3,0,33,21,0,33,17,17,22,0,36,11,14,21,0,3,0,33,0,52,21,0,21,0,33,21,0,27,17,8,0,54,21,0,34,0,24,0,63,17,8,16,0,2,21,0,18,17,0,42,0,1,7,21,0,16,17,22,0,3,12,14,31,0,18,0,9,31,0,19,17,22,0,37,11,14,0,62,0,11,21,0,3,17,0,33,0,52,21,0,12,8,0,54,0,27,0,52,0,63,8,8,16,22,0,38,11,0,27,16,0,9,21,0,37,17,22,0,39,11,14,21,0,3,0,33,21,0,39,0,8,16,21,1,32,16,17,0,2,21,0,39,17,0,0,21,0,3,17,0,19,0,15,0,64,19,0,11,21,0,38,19,0,1,0,19,19,0,6,0,19,0,14,0,65,19,0,2,31,0,38,0,0,0,63,17,19,0,33,0,52,21,0,12,8,0,54,0,27,8,9,19,16,22,0,40,11,14,21,0,40,0,33,0,0,0,6,0,63,19,0,5,0,19,19,31,0,39,0,8,16,0,49,0,0,7,16,0,53,0,19,0,1,0,33,19,8,19,0,62,0,14,21,0,40,17,0,9,21,0,37,17,0,8,16,21,1,32,16,17,0,6,22,0,40,13,14,21,0,40,0,27,16,0,2,31,0,37,17,0,0,22,0,3,13,14,31,0,20,0,19,0,1,0,8,0,53,0,2,8,19,22,0,40,13,14,21,1,29,0,1,21,0,1,17,22,0,41,11,21,0,7,0,53,0,11,8,0,9,0,15,0,52,0,62,8,19,16,22,0,42,11,0,30,16,22,0,43,11,0,42,0,33,7,21,0,1,17,22,0,44,11,14,21,0,22,0,1,22,0,10,13,14,21,0,10,0,49,0,0,7,16,0,31,16,22,0,12,12,14,21,0,21,0,33,21,0,12,17,22,0,45,11,14,21,0,16,0,1,21,0,17,17,0,33,21,0,45,17,0,12,0,30,0,51,0,1,8,0,11,19,0,62,17,0,42,0,3,7,0,64,17,0,0,0,63,17,22,0,46,11,14,21,1,15,0,34,16,0,0,0,68,17,0,14,21,0,1,17,0,33,21,0,12,17,0,30,16,22,0,47,11,14,31,0,10,0,33,21,0,12,17,0,12,21,0,12,0,53,0,30,8,0,11,9,0,51,0,22,8,0,11,19,0,62,17,0,44,0,21,7,21,0,25,0,30,16,21,0,27,3,2,17,22,0,48,11,14,31,0,48,0,47,15,20,7,16,14,21,0,16,0,33,21,0,45,17,0,31,16,22,0,49,11,0,42,0,33,7,22,0,12,13,14,21,0,21,0,33,21,0,12,17,22,0,45,12,14,21,0,12,0,31,16,22,0,50,11,14,21,0,12,0,42,0,33,7,22,0,1,13,14,21,0,45,0,42,0,33,7,22,0,3,13,14,21,0,45,0,42,0,33,7,22,0,40,13,14,31,0,16,0,12,21,0,17,17,0,33,31,0,45,17,0,30,16,0,21,31,0,49,0,31,16,0,33,21,0,47,17,17,22,0,47,12,14,21,0,50,0,33,21,0,27,17,22,0,51,11,0,21,0,59,17,0,30,21,0,35,17,0,0,0,63,17,22,0,52,11,14,21,0,3,0,33,0,63,0,0,21,0,52,17,17,0,14,0,62,17,0,9,21,0,3,0,33,21,0,52,17,0,14,0,66,17,17,0,9,0,62,0,14,31,0,34,17,0,30,21,0,35,17,17,22,0,53,11,14,21,0,12,0,33,0,63,0,0,21,0,52,17,17,0,41,31,0,17,7,0,33,31,0,21,0,53,0,33,8,19,0,15,21,0,42,0,53,0,33,8,19,16,0,9,22,0,53,13,14,21,0,53,0,8,16,0,21,0,62,17,0,33,0,52,0,49,0,0,7,8,21,0,35,17,0,9,22,0,35,13,14,0,66,0,15,21,0,3,17,22,0,54,11,14,0,62,0,11,21,0,3,17,0,11,21,0,54,17,22,0,55,11,14,21,0,55,0,27,16,21,1,32,16,0,42,0,33,7,21,0,40,17,22,0,56,11,0,15,0,63,17,22,0,57,11,14,0,62,0,11,21,0,40,17,22,0,58,11,14,0,62,0,11,21,0,56,17,22,0,59,11,14,21,0,59,0,9,21,0,54,17,21,0,12,21,0,9,0,127,8,16,14,0,64,0,16,21,0,3,17,0,9,0,64,0,11,21,0,56,17,17,22,0,60,11,0,30,16,0,28,16,22,0,61,11,14,0,65,0,14,21,0,3,17,22,0,62,11,0,9,21,0,60,17,0,26,16,0,10,21,0,60,17,22,0,63,11,14,0,64,0,25,16,0,37,21,0,3,17,0,10,21,0,63,17,0,11,21,0,62,17,0,11,21,0,58,17,0,27,0,15,31,0,62,19,0,9,0,26,19,16,0,12,21,0,60,17,21,0,12,21,0,9,0,128,8,16,14,0,62,0,14,21,0,3,17,0,11,0,52,0,10,0,52,0,27,8,8,21,0,63,17,0,26,0,53,0,9,8,16,21,0,12,21,0,9,0,129,8,16,14,0,63,0,16,31,0,40,17,0,26,16,0,9,21,1,14,0,34,16,0,0,0,64,17,0,14,21,0,1,17,17,0,11,21,0,57,17,22,0,64,11,14,21,0,64,0,10,21,0,63,17,0,8,16,0,28,0,54,21,1,31,0,1,0,18,19,0,52,0,13,0,50,0,25,8,8,8,16,22,0,65,11,14,31,0,54,0,30,16,22,0,66,11,0,0,0,52,21,0,65,0,53,0,33,8,8,16,0,0,0,63,17,22,0,67,11,14,21,0,3,0,33,21,0,66,17,0,13,0,73,17,22,0,68,11,14,21,0,3,0,33,21,0,67,17,22,0,69,11,0,13,21,0,56,0,33,21,0,67,17,0,6,0,62,17,17,21,0,12,0,33,21,0,67,19,21,0,9,0,130,8,16,14,21,1,29,0,1,21,0,1,17,21,0,7,0,53,0,11,8,0,9,0,15,0,52,0,74,8,19,16,22,0,70,11,14,21,0,70,0,33,21,0,67,17,0,10,0,62,0,14,31,0,69,17,17,0,8,16,21,0,12,0,33,21,0,67,19,21,0,9,0,131,8,16,14,21,0,1,0,33,21,0,66,17,0,42,0,1,7,21,1,14,0,34,16,17,0,2,0,64,17,0,0,31,0,52,0,30,31,0,53,17,0,37,21,0,66,17,17,0,0,21,0,68,17,0,0,0,63,17,22,0,71,11,14,21,0,1,0,44,0,62,7,16,0,33,0,52,21,0,67,8,0,54,31,0,71,8,16,0,1,0,52,0,26,8,16,0,33,31,0,50,17,0,49,0,0,7,16,0,27,16,22,0,72,11,0,33,21,0,12,17,0,2,16,22,0,73,11,14,21,0,56,0,16,0,62,17,0,9,21,0,73,17,0,11,21,1,15,21,1,24,21,0,1,17,0,10,21,0,55,17,0,10,0,62,0,15,21,0,3,17,0,9,31,0,70,17,17,0,11,21,1,15,0,34,16,0,0,0,65,17,0,14,21,0,1,17,17,17,21,0,12,21,0,9,0,132,8,16,14,21,0,73,0,12,0,52,0,27,8,16,0,9,21,0,3,0,15,0,62,17,17,0,9,21,0,56,0,11,0,62,17,17,21,0,12,21,0,9,0,133,8,16,14,21,0,72,0,33,21,0,43,17,22,0,74,11,14,0,64,0,72,3,2,21,1,24,21,0,74,17,22,0,75,11,14,0,63,0,65,3,2,21,1,24,21,0,74,17,22,0,76,11,14,21,0,44,0,30,21,0,75,17,0,42,0,1,7,21,1,29,17,0,39,21,0,36,0,13,16,0,21,21,0,25,0,49,0,0,7,16,0,33,21,0,43,17,0,30,21,0,75,17,17,22,0,77,11,17,22,0,78,11,14,21,0,74,0,7,0,9,0,11,19,0,64,17,22,0,79,11,0,42,0,30,7,21,0,43,17,22,0,80,11,0,44,0,62,7,16,22,0,81,11,14,21,0,43,0,50,0,30,0,52,21,0,79,8,0,53,0,21,8,8,22,0,82,11,14,0,62,0,11,31,0,22,17,0,49,0,0,7,16,0,33,31,0,80,17,22,0,83,11,14,21,0,25,0,13,0,21,0,30,19,16,0,33,21,0,83,17,22,0,84,11,14,21,0,26,0,33,21,0,43,17,0,42,21,0,24,0,33,31,0,27,17,0,21,21,0,1,0,13,16,17,7,0,33,0,30,0,52,21,0,75,8,0,21,31,0,83,19,19,0,21,31,0,24,0,30,21,0,25,17,0,21,0,59,17,0,53,0,33,8,0,0,21,0,74,0,14,0,63,17,19,19,16,22,0,85,11,14,21,0,81,0,21,22,0,75,13,14,21,0,44,0,30,31,0,79,17,0,21,22,0,44,13,14,21,0,85,0,31,16,0,33,0,52,21,0,44,0,30,0,52,21,0,75,8,0,53,0,21,8,16,22,0,86,11,0,53,0,33,8,0,31,9,8,16,22,0,87,11,14,21,0,87,0,30,0,52,0,15,0,52,21,0,75,0,13,16,8,8,16,15,21,16,14,21,0,87,0,33,0,52,21,0,75,0,42,0,30,7,16,0,1,16,0,21,21,0,75,17,0,53,0,33,0,50,0,49,0,0,7,8,8,0,31,9,8,16,0,30,0,52,21,0,75,0,13,16,0,53,0,11,8,8,16,22,0,87,12,14,21,0,87,0,42,0,33,7,22,0,75,13,14,21,0,87,0,42,0,33,7,22,0,44,13,14,21,0,82,0,33,21,0,87,19,22,0,82,12,14,31,0,44,0,13,0,52,0,27,8,16,0,11,21,0,75,17,21,0,82,21,0,9,0,30,21,1,26,0,135,19,8,16,14,21,0,81,0,44,0,64,7,16,0,21,21,0,76,17,0,33,21,0,87,17,22,0,88,11,0,11,0,62,17,21,0,28,0,24,0,63,19,0,16,0,30,19,21,0,75,17,0,33,21,0,87,0,30,21,0,75,17,0,31,16,17,0,39,31,0,77,17,22,0,89,11,14,21,0,81,0,44,0,64,7,16,0,21,31,0,76,17,0,33,21,0,87,17,15,22,16,14,21,0,84,0,21,21,0,43,17,0,33,0,52,21,0,87,8,0,54,0,33,0,52,21,0,75,21,1,32,16,8,8,16,22,0,90,11,14,0,64,0,72,3,2,21,1,24,21,0,72,17,0,9,31,0,42,17,0,49,0,0,7,16,21,1,31,0,1,0,19,19,21,0,25,17,22,0,91,11,0,30,31,0,25,0,26,0,63,17,17,22,0,92,11,14,21,0,31,0,44,0,62,7,16,0,21,21,0,81,17,0,21,21,0,90,0,23,0,52,0,13,8,21,0,43,17,31,0,23,0,53,0,33,8,0,51,0,1,8,21,0,43,17,17,22,0,93,11,14,31,0,41,0,33,21,0,31,17,0,0,0,64,17,0,15,0,52,0,62,8,0,53,0,0,8,16,0,0,21,0,32,0,2,0,65,17,0,33,21,0,26,0,33,21,0,31,17,17,17,0,21,0,63,0,1,31,0,91,17,0,0,21,0,36,0,33,21,0,26,17,17,0,33,31,0,90,17,17,22,0,94,11,14,21,0,93,0,33,0,52,31,0,87,8,0,54,0,19,0,11,0,62,19,31,0,28,0,33,0,52,0,49,0,0,7,8,0,18,19,21,0,75,19,0,9,0,18,0,14,0,62,19,0,9,21,0,75,0,26,0,63,17,19,19,8,21,0,81,0,21,21,0,74,17,17,22,0,95,11,14,31,0,72,0,33,21,0,31,17,0,21,31,0,81,17,0,21,31,0,74,17,0,11,0,62,17,0,0,0,75,17,0,0,31,0,95,0,2,0,58,17,17,31,0,93,31,0,94,3,3,22,0,96,11,14,21,0,84,0,11,0,52,0,27,0,52,0,59,8,8,16,0,30,16,22,0,97,11,14,31,0,31,0,21,21,0,84,17,0,21,31,0,43,17,0,30,0,65,17,21,0,84,0,33,21,0,97,17,3,2,0,30,0,63,0,65,3,2,17,0,28,0,59,17,0,21,16,22,0,98,11,14,31,0,96,0,12,16,0,29,16,0,20,16,21,0,97,0,44,0,65,7,16,21,0,97,0,19,0,1,0,26,19,0,52,0,13,8,31,0,84,17,31,0,97,0,44,0,76,7,16,3,4,0,28,0,59,17,22,0,99,11,14,21,0,63,0,8,16,0,49,0,0,7,16,21,1,31,0,1,0,19,19,21,0,55,17,0,7,0,10,0,12,19,0,64,17,0,9,21,0,57,17,22,0,100,11,14,31,0,60,0,27,16,0,10,0,63,0,14,21,0,3,17,17,22,0,101,11,0,11,21,0,73,0,11,21,0,55,17,0,10,0,52,0,26,8,16,0,10,21,0,63,17,0,10,31,0,100,17,22,0,102,11,17,0,30,16,22,0,103,11,14,31,0,101,0,10,31,0,102,17,0,12,21,0,57,17,21,0,12,21,0,9,0,137,8,16,14,0,62,0,14,21,0,3,17,0,11,21,0,63,17,0,10,0,62,0,16,21,0,3,17,0,9,31,0,57,17,17,0,11,31,0,58,17,0,26,16,0,33,21,0,103,17,22,0,104,11,14,21,1,25,0,11,21,0,1,17,0,30,16,22,0,105,11,0,42,0,33,7,21,0,1,17,22,0,106,11,0,9,16,0,38,16,22,0,107,11,0,27,0,1,0,19,19,0,59,17,0,30,16,0,33,31,0,106,17,22,0,108,11,14,31,0,7,0,0,21,1,29,17,22,0,109,11,0,16,21,0,1,17,0,30,16,22,0,110,11,0,21,31,0,105,17,22,0,111,11,14,21,0,1,0,33,31,0,110,17,0,0,21,0,107,0,13,16,0,42,0,1,7,31,0,109,17,17,0,21,22,0,108,13,14,21,1,25,0,14,21,0,1,17,22,0,112,11,14,21,1,15,0,34,16,0,0,0,64,17,0,14,21,0,1,17,22,0,113,11,14,21,1,15,0,34,16,0,0,0,72,17,0,14,21,0,1,17,22,0,114,11,21,1,32,0,51,0,11,8,21,0,113,17,0,9,21,0,112,17,22,0,115,11,14,21,0,59,0,9,21,0,115,0,10,21,0,114,17,0,27,16,17,21,0,12,21,0,9,0,138,8,16,14,0,62,0,21,21,0,115,17,0,49,0,0,7,16,0,30,0,63,0,21,21,0,114,17,17,0,24,0,63,17,0,27,0,53,0,1,8,16,0,0,31,0,55,0,26,0,63,17,0,30,31,0,114,17,0,8,16,17,0,42,0,21,7,31,0,46,17,22,0,116,11,14,31,0,112,0,11,31,0,115,17,0,11,21,0,59,17,0,30,16,22,0,117,11,14,31,0,113,0,30,16,22,0,118,11,14,21,0,104,0,0,21,0,103,17,0,0,0,52,21,0,65,0,53,0,33,8,0,2,21,0,104,19,8,16,22,0,119,11,14,21,0,119,0,30,31,0,59,0,33,21,0,103,17,22,0,120,11,0,2,21,0,104,0,0,0,63,17,17,17,0,21,22,0,117,13,14,21,0,120,0,8,16,22,0,120,12,14,21,0,120,0,42,0,30,7,22,0,103,13,14,21,0,120,0,42,0,30,7,22,0,104,13,14,31,0,120,0,42,0,30,7,22,0,119,13,14,21,0,111,21,0,111,21,0,51,21,0,51,21,0,47,0,30,0,64,17,21,0,117,21,0,67,0,30,21,0,68,17,31,0,65,0,33,21,0,61,17,0,6,0,63,17,0,0,21,0,61,17,31,0,119,21,0,118,3,10,0,21,16,0,42,0,33,7,21,0,12,17,0,21,31,0,98,17,22,0,121,11,0,31,16,22,0,122,11,14,31,0,111,0,44,0,62,7,16,31,0,108,21,0,51,0,44,0,77,7,16,31,0,51,0,13,16,0,25,16,0,0,0,63,17,31,0,116,0,22,31,0,73,0,33,31,0,47,17,0,0,0,65,17,17,0,29,16,0,20,16,31,0,117,0,44,0,76,7,16,21,0,1,0,0,21,0,64,17,0,33,31,0,66,0,30,21,0,68,17,17,0,0,21,1,14,0,34,16,0,0,0,63,17,0,1,0,78,17,17,0,6,0,78,17,31,0,3,0,33,21,0,61,17,0,0,0,68,17,31,0,56,0,33,21,0,103,17,0,2,0,80,17,0,1,31,0,104,17,0,0,0,79,17,0,14,0,52,0,58,8,0,2,0,61,19,0,0,0,19,19,16,31,0,35,0,2,0,72,17,0,0,0,81,17,22,0,123,11,0,24,0,59,17,3,10,0,21,31,0,99,17,0,21,16,0,33,21,0,122,17,22,0,124,11,14,0,19,0,42,0,33,7,21,0,12,19,0,21,0,13,0,53,0,42,0,24,0,52,0,1,8,7,8,19,22,0,125,11,14,31,0,67,0,30,31,0,68,17,0,42,0,1,7,0,63,17,31,0,61,21,0,103,3,3,0,21,16,21,0,125,21,0,5,0,13,16,0,42,0,1,7,0,63,17,0,5,31,0,121,17,0,28,0,52,0,13,0,50,0,1,8,8,21,0,118,17,17,22,0,126,11,14,21,0,5,21,0,6,3,2,0,44,0,33,0,52,0,28,0,52,21,0,118,0,13,16,8,0,33,21,0,122,19,0,42,0,21,7,0,59,19,8,7,21,0,126,31,0,64,0,10,31,0,63,17,0,8,16,0,27,16,21,1,32,16,0,33,31,0,103,17,31,0,125,31,0,126,17,3,2,17,22,0,127,11,14,31,0,123,0,34,0,59,17,0,21,21,0,124,17,31,0,107,31,0,33,31,0,32,0,8,16,31,0,118,0,13,0,51,0,1,8,31,0,124,17,0,16,31,0,122,17,0,21,0,63,17,0,30,16,31,0,36,0,0,31,0,92,17,31,0,78,31,0,89,3,6,31,0,127,3,4,25,21,0,2,0,13,0,13,0,64,19,0,57,15,23,8,16,22,0,3,22,0,4,4,2,11,14,21,0,1,21,1,34,31,0,4,17,22,0,5,11,22,0,6,22,0,7,22,0,8,22,0,9,22,0,10,4,5,11,14,31,0,6,21,1,36,31,0,7,21,0,8,0,34,16,31,0,9,31,0,10,3,4,17,22,0,11,22,0,12,22,0,13,22,0,14,4,4,11,14,31,0,11,31,0,8,0,24,0,63,17,0,21,31,0,3,0,33,31,0,12,17,3,1,17,0,21,16,31,0,13,0,12,16,0,29,16,0,43,0,11,7,16,31,0,14,31,0,5,3,5,25,21,0,1,21,0,2,16,25,21,0,1,0,33,0,52,21,0,2,0,30,21,0,1,17,8,0,54,0,44,0,63,7,8,16,21,1,11,21,0,2,0,42,0,33,7,16,17,25,0,62,0,40,21,0,1,0,30,16,0,34,16,0,104,3,2,17,25,21,0,2,0,42,0,30,7,22,1,24,13,14,21,0,1,0,30,21,0,2,17,25,0,62,0,40,21,1,24,0,30,21,0,1,17,0,105,3,2,17,25,0,62,0,40,21,0,2,0,30,21,0,1,17,0,42,0,33,7,21,1,24,17,0,106,3,2,17,25,21,0,2,0,42,0,30,7,22,1,23,13,14,21,0,1,21,1,25,21,0,2,17,25,0,47,0,10,7,0,57,21,0,1,0,11,0,51,0,22,8,21,0,2,0,53,0,30,8,19,0,42,0,40,7,0,62,19,8,25,0,62,0,28,0,53,0,45,0,14,7,8,0,48,15,24,7,0,19,0,50,0,44,0,62,7,8,19,0,34,0,59,19,3,2,0,55,0,13,0,11,0,62,19,0,51,0,9,8,8,22,0,3,11,14,15,25,22,0,4,11,14,0,62,21,0,4,0,116,8,0,42,0,63,31,0,4,0,117,8,7,3,2,0,55,0,13,0,51,0,12,8,8,22,0,5,11,14,21,0,1,31,0,5,0,118,3,2,0,55,0,13,0,51,0,5,8,0,11,31,0,3,19,8,21,0,2,17,0,42,0,40,7,0,62,17,25,0,14,0,57,0,47,0,10,7,8,0,57,21,0,1,0,11,0,51,0,22,8,21,0,2,0,53,0,30,8,0,42,0,63,0,56,0,33,8,7,0,41,21,1,6,7,0,22,21,1,5,19,19,0,29,0,50,0,9,8,9,19,0,42,0,40,7,0,62,19,8,25,21,1,14,0,21,0,62,17,0,30,21,0,1,17,0,13,21,2,15,0,34,16,0,0,0,72,17,17,21,1,12,0,21,0,62,19,0,30,21,0,1,19,21,1,9,0,122,8,16,25,21,2,18,21,2,24,21,0,1,17,0,9,21,1,26,0,14,0,62,17,17,25,21,1,5,0,33,0,52,21,0,1,8,0,54,21,1,5,0,33,21,0,2,17,8,16,22,1,5,12,14,21,1,6,0,33,0,52,21,0,2,8,0,54,21,1,6,0,33,21,0,1,17,8,16,22,1,6,12,25,21,1,85,0,33,0,52,21,0,1,8,0,13,0,52,0,27,8,9,0,51,0,10,8,21,1,86,17,0,8,16,21,1,82,0,30,0,52,21,1,75,8,0,53,0,21,8,9,0,33,21,0,1,19,21,1,9,0,134,8,16,25,21,0,1,0,30,21,0,1,0,2,16,0,10,21,1,75,17,22,0,3,11,17,0,27,0,53,0,1,8,16,0,15,0,64,17,21,1,82,0,30,31,0,3,19,21,1,9,0,136,8,16,25,21,0,1,0,44,0,44,0,41,0,62,7,0,40,0,139,19,7,7,3,2,25,21,0,1,0,27,16,0,0,21,0,2,17,0,49,0,6,7,16,0,6,21,0,1,17,25,0,36,0,14,0,18,0,50,0,13,8,19,0,42,0,30,7,0,19,19,0,0,21,0,2,19,0,42,0,33,7,21,3,8,19,0,21,0,99,19,0,21,21,0,1,19,0,21,0,115,19,25] + ,[runtime[0],runtime[1],runtime[2],runtime[3],runtime[4],runtime[6],runtime[7],runtime[8],runtime[9],runtime[10],runtime[11],runtime[12],runtime[13],runtime[14],runtime[15],runtime[16],runtime[17],runtime[19],runtime[20],runtime[21],runtime[22],runtime[23],runtime[24],runtime[25],runtime[26],runtime[27],runtime[28],runtime[29],runtime[30],runtime[31],runtime[32],runtime[33],runtime[34],runtime[35],runtime[36],runtime[37],runtime[38],runtime[39],runtime[40],runtime[41],runtime[42],runtime[43],runtime[44],runtime[45],runtime[46],runtime[47],runtime[48],runtime[49],runtime[50],runtime[51],runtime[52],runtime[53],runtime[54],runtime[55],runtime[56],runtime[58],runtime[59],runtime[61],10,-1,26,9,0,1,2,3,-3,-2,5,17,3.1415926535898,Infinity,4,-4,-10,21,14,15,11,16,7,25,'\0','0','#','\'','\"','@',str("⋄,"),str("⇐←↩"),str("(){}⟨⟩"),str("‿"),str("·"),str("𝕊𝕏𝕎𝔽𝔾𝕤𝕩𝕨𝕗𝕘"),str("π∞¯."),str("_"),str("aA"),str("•"),str("𝕨"),str(" "),str("#\'\"@"),str("s"),str("Unknown character"),str(": "),str("Unclosed quote"),str("System dot with no name"),str("Numbers can\'t start with underscores"),str("Letter"),str(" \""),str("\" not allowed in numbers"),str("ea"),str("Negative sign in the middle of a number"),str("Portion of a number is empty"),str("Ill-formed decimal or exponent use"),str("π and ∞ must occur alone"),str("Missing "),str("opening"),str("closing"),str("Malformed bracket nesting"),str("Empty program"),str("Swapped open and closed brackets"),str("Parentheses can\'t contain separators"),str("Empty statement or expression"),str("Invalid assignment or stranding use"),str("Can\'t strand Nothing (·)"),str("Can\'t return Nothing (·)"),str("Special name outside of any block"),str("Nothing (·) cannot be assigned"),str("Missing operand"),str("Double subjects (missing ‿?)"),str("Role of the two sides in assignment must match"),str("Function or modifier assignment to a non-name"),str("Assignment target must be a name or list of targets"),str("Can\'t use result of function/modifier assignment without parentheses"),str("Redefinition"),str("Undefined identifier"),str("Imports must have been exported"),str("Second-level parts of a train must be functions"),str("Can\'t use Nothing (·) in lists"),str("System values not supported")] + ,[[0,1,0,0],[0,0,3,38],[1,0,488,5],[1,1,507,5],[0,0,631,50],[0,0,2401,23],[0,0,3220,128],[0,0,8345,15],[0,0,8496,3],[0,0,8504,3],[0,0,8544,3],[0,0,8563,3],[0,0,8586,3],[0,0,8605,3],[0,0,8633,3],[2,1,8657,3],[0,0,8693,6],[2,1,8830,3],[0,0,8902,3],[0,0,8952,3],[0,0,8974,3],[0,0,9032,3],[0,0,9094,4],[0,0,9146,3],[0,0,9168,3],[2,1,9193,3]] ); let compile = compgen(list(glyphs.map(str))); runtime[42] = rtAssert; @@ -336,9 +351,9 @@ let bqn = bqngen(compile, rt_sys); let fmtnum = x => str(x==Infinity ? "∞" : x==-Infinity ? "¯∞" : (""+x).replace(/-/g,"¯")); let fmt1 = run( - [15,1,25,21,0,1,22,0,2,22,0,3,22,0,4,22,0,5,4,4,11,14,0,64,0,14,0,17,0,17,19,0,37,0,65,8,3,2,0,40,0,9,0,37,0,54,8,8,21,0,5,3,2,0,40,0,54,0,38,0,7,8,8,0,18,9,22,0,6,11,14,15,2,22,0,7,11,14,0,10,0,7,0,47,19,0,42,15,3,8,22,0,8,11,14,15,4,22,0,9,11,14,15,5,22,0,10,11,14,15,6,15,7,3,2,0,40,15,8,0,46,3,2,0,40,0,9,0,38,0,9,0,37,0,46,8,0,36,0,6,8,8,8,8,22,0,11,11,14,0,74,0,18,0,73,17,15,9,15,10,3,2,0,40,0,9,0,10,0,43,19,0,6,0,10,0,9,0,47,19,19,8,3,2,0,40,0,13,0,13,0,43,0,43,3,2,19,8,22,0,12,11,14,15,11,22,0,13,11,14,15,12,22,0,14,11,14,15,13,15,14,15,15,3,3,0,40,0,27,0,54,7,0,7,0,16,19,0,35,0,32,0,0,7,0,11,0,0,0,7,0,37,0,43,8,19,0,9,19,8,8,22,0,15,11,14,31,0,6,31,0,15,21,0,14,3,2,0,40,0,31,21,0,2,7,0,11,0,52,19,0,16,0,35,0,32,0,6,7,8,9,8,21,0,14,3,3,0,40,0,12,0,3,0,47,19,8,22,0,16,11,14,15,16,22,0,17,11,14,0,15,0,15,21,0,16,9,21,0,17,0,26,0,46,19,0,18,9,3,2,0,40,0,14,0,11,0,52,19,8,21,0,2,19,22,0,18,11,14,21,0,18,0,35,0,29,0,53,0,0,0,54,17,0,38,0,17,8,7,8,0,16,9,0,20,0,44,19,25,0,46,0,30,0,19,7,21,0,1,0,1,16,17,0,23,0,39,0,34,0,28,0,31,0,2,7,7,7,8,16,0,32,0,44,0,45,3,2,0,41,0,0,8,7,21,0,2,17,0,16,16,0,26,0,37,0,44,8,0,39,0,43,8,16,25,21,0,1,0,13,16,0,20,0,44,17,22,0,3,11,0,4,0,46,17,21,1,7,16,22,0,4,11,14,15,17,22,0,5,11,14,21,0,1,0,16,21,0,1,0,13,16,0,19,0,44,17,0,17,31,0,3,0,32,0,2,7,16,17,17,0,19,0,37,0,32,0,0,7,8,31,0,5,3,2,0,40,0,15,0,35,0,9,8,0,7,0,43,19,8,31,0,4,17,25,21,0,1,0,16,16,0,30,0,27,0,55,7,0,16,0,13,0,26,0,44,19,0,38,0,18,8,19,0,17,0,15,19,7,21,0,1,0,13,16,21,1,7,0,46,17,17,0,17,16,25,0,55,0,16,21,0,1,0,9,16,21,0,2,3,2,17,22,0,3,11,14,21,0,3,21,0,1,31,0,3,3,3,0,18,16,0,17,16,25,0,68,0,17,21,0,1,0,25,16,0,20,0,46,17,0,20,0,44,17,17,0,17,0,67,17,0,18,16,25,21,0,1,0,13,16,0,26,0,44,17,22,0,3,11,14,0,69,21,0,2,0,15,0,3,0,46,19,0,28,0,25,7,0,70,19,0,16,9,21,1,5,3,2,0,40,0,7,0,37,0,48,8,8,16,3,2,0,17,16,0,19,21,0,3,17,0,18,16,21,0,1,0,26,0,39,0,71,0,26,0,46,0,1,21,0,2,17,0,3,0,49,17,0,4,0,43,17,17,8,16,0,72,0,19,0,37,0,1,8,31,0,3,17,0,18,16,3,3,0,17,16,25,21,0,1,0,25,16,0,31,0,10,7,0,66,17,0,33,0,1,7,16,0,34,0,0,7,16,0,10,0,47,17,0,32,0,6,7,16,25,21,0,1,0,30,0,75,7,16,21,1,10,0,46,17,21,1,11,0,47,17,0,26,0,37,0,43,0,44,3,2,8,0,39,0,56,8,16,25,21,0,1,0,13,16,0,66,0,30,21,1,5,7,0,30,0,17,0,37,0,76,8,7,9,0,17,9,0,26,0,39,0,57,8,9,3,2,0,40,0,9,0,7,0,46,19,8,16,0,18,16,25,21,0,1,0,30,0,13,7,16,22,0,3,11,14,21,0,3,0,30,0,26,7,0,46,17,0,16,0,27,0,46,7,0,1,0,10,19,0,42,0,33,0,4,7,8,3,2,0,40,0,10,0,7,0,43,19,8,16,22,0,4,11,14,31,0,3,0,30,0,26,7,16,0,10,0,7,0,43,19,0,42,0,46,0,41,0,33,0,4,7,8,8,16,22,0,5,11,14,21,0,1,0,30,0,19,7,0,46,0,19,21,0,4,0,9,16,0,2,21,0,2,17,0,1,16,17,0,5,31,0,4,17,0,2,21,0,2,17,0,31,0,18,7,21,0,5,17,17,0,10,0,1,0,47,19,0,4,0,43,19,0,42,0,18,8,16,0,47,0,41,0,17,0,35,0,7,8,8,16,22,0,6,11,14,31,0,6,21,1,9,0,8,0,35,21,1,8,8,3,2,0,40,31,0,5,0,16,16,0,12,0,37,0,23,0,37,0,46,8,8,16,8,16,21,1,10,0,47,17,25,21,0,1,0,30,21,1,18,7,16,21,1,13,0,46,0,14,21,0,2,17,17,21,1,11,21,0,1,0,10,16,17,25,21,0,1,0,10,16,22,0,3,11,14,0,77,0,15,0,39,21,0,1,8,16,0,20,0,43,17,22,0,1,12,14,21,0,1,0,13,16,0,20,0,44,17,22,0,4,11,0,9,16,0,1,16,0,10,0,37,0,43,8,0,42,0,45,8,16,22,0,5,11,14,0,58,22,0,6,11,14,15,18,22,0,7,11,14,21,0,1,0,24,0,37,0,15,0,10,21,0,6,19,0,0,0,46,19,8,31,0,7,3,2,0,40,0,10,0,9,0,46,19,8,16,22,0,1,12,14,21,0,6,0,19,0,37,0,1,8,21,0,4,17,21,0,5,0,41,0,17,8,21,0,1,17,31,0,5,0,41,0,17,8,0,61,0,19,21,0,4,0,17,0,46,17,0,26,0,44,17,17,0,16,31,0,4,17,0,26,0,39,31,0,6,8,16,17,0,18,16,21,0,3,0,9,0,46,17,0,42,21,1,8,21,1,10,0,46,19,21,1,11,31,0,3,19,8,16,25,21,0,1,21,1,14,21,1,12,3,2,0,40,0,13,0,10,0,43,19,0,32,0,6,7,9,8,16,25,21,0,1,21,1,14,0,44,17,25,0,78,0,79,0,80,0,81,3,4,0,30,0,14,0,17,0,17,19,7,0,62,17,22,0,3,11,14,0,15,0,15,0,35,21,1,16,0,35,21,0,3,0,26,16,0,25,3,2,0,40,0,9,0,10,0,46,19,8,8,8,0,7,0,36,0,18,8,0,43,19,21,1,17,3,2,0,40,0,14,0,11,0,52,19,8,21,1,2,19,22,0,4,11,14,21,0,1,21,1,3,16,22,0,5,11,0,26,16,22,0,6,11,14,0,63,0,1,0,82,17,0,26,21,0,6,17,22,0,7,11,14,0,84,0,38,0,17,8,0,17,0,83,19,22,0,8,11,14,0,15,0,30,31,0,4,0,38,0,26,0,37,0,46,8,0,14,0,11,21,0,7,0,3,0,47,17,19,0,42,0,15,0,35,31,0,8,8,8,0,26,0,38,0,0,8,19,8,7,0,9,0,35,0,21,8,0,10,0,43,19,0,1,9,0,46,0,8,21,0,7,17,0,42,0,23,8,9,19,0,17,9,22,0,9,11,14,21,0,5,0,20,0,46,17,0,27,21,0,1,7,21,1,4,0,35,0,16,8,9,31,0,3,0,40,0,47,0,1,21,0,2,17,8,31,0,9,3,3,0,40,31,0,6,0,3,0,47,17,8,16,22,0,10,11,14,21,0,10,21,0,7,0,11,0,47,17,0,42,0,27,31,0,5,7,0,26,0,44,19,21,1,2,9,0,8,0,52,19,0,42,0,85,0,38,0,17,8,8,8,16,22,0,10,12,14,31,0,7,31,0,10,3,2,25,21,0,1,0,17,0,37,0,25,0,35,0,30,0,55,7,8,8,16,0,25,21,0,2,0,0,0,46,17,0,17,0,43,17,0,24,16,0,2,0,37,0,7,0,37,0,22,8,8,16,17,25,0,51,0,0,0,54,17,0,7,21,0,1,17,0,2,0,54,0,1,0,60,17,17,0,0,0,50,0,0,0,54,17,0,15,0,1,0,59,19,0,2,0,10,19,21,0,1,17,17,0,0,21,0,1,17,25] - ,[runtime[0],runtime[1],runtime[2],runtime[6],runtime[7],runtime[9],runtime[11],runtime[12],runtime[13],runtime[14],runtime[15],runtime[16],runtime[18],runtime[19],runtime[20],runtime[21],runtime[22],runtime[23],runtime[24],runtime[25],runtime[26],runtime[27],runtime[29],runtime[30],runtime[32],runtime[35],runtime[36],runtime[43],runtime[44],runtime[45],runtime[46],runtime[47],runtime[49],runtime[50],runtime[51],runtime[52],runtime[53],runtime[54],runtime[55],runtime[56],runtime[58],runtime[59],runtime[61],0,-1,Infinity,1,2,5,4,127,32,3,10,'\0',' ','┐','↕','\"','␡','␀','·','*','0',str("@"),str("\'"),str("⟨⟩"),str("⟨"),str("⟩"),str("┌"),str("·─"),str("·╵╎┆┊"),str("┘"),str("┌┐"),str("└┘"),str(" "),str("‿"),str(""),str("array"),str("function"),str("1-modifier"),str("2-modifier"),str("00321111"),str("("),str(")"),str("{𝔽}")] - ,[[0,1,0,0],[1,1,3,19],[0,0,399,3],[0,0,465,6],[0,0,565,3],[0,0,616,4],[0,0,655,3],[0,0,685,4],[0,0,808,3],[0,0,846,3],[0,0,885,3],[0,0,938,7],[0,0,1168,3],[0,0,1201,8],[0,0,1428,3],[0,0,1457,3],[0,0,1467,11],[0,0,1822,3],[0,0,1874,3]] + [15,1,25,21,0,1,22,0,2,22,0,3,22,0,4,22,0,5,4,4,11,14,0,65,0,15,0,18,0,18,19,0,38,0,66,8,3,2,0,41,0,10,0,38,0,55,8,8,21,0,5,3,2,0,41,0,55,0,39,0,8,8,8,0,19,9,22,0,6,11,14,15,2,22,0,7,11,14,0,11,0,8,0,48,19,0,43,15,3,8,22,0,8,11,14,15,4,22,0,9,11,14,15,5,22,0,10,11,14,15,6,15,7,3,2,0,41,15,8,0,47,3,2,0,41,0,10,0,39,0,10,0,38,0,47,8,0,37,0,7,8,8,8,8,22,0,11,11,14,0,75,0,19,0,74,17,15,9,15,10,3,2,0,41,0,10,0,11,0,44,19,0,7,0,11,0,10,0,48,19,19,8,3,2,0,41,0,14,0,14,0,44,0,44,3,2,19,8,22,0,12,11,14,15,11,22,0,13,11,14,15,12,22,0,14,11,14,15,13,15,14,15,15,3,3,0,41,0,28,0,55,7,0,8,0,17,19,0,36,0,33,0,0,7,0,12,0,0,0,8,0,38,0,44,8,19,0,10,19,8,8,22,0,15,11,14,31,0,6,31,0,15,21,0,14,3,2,0,41,0,32,21,0,2,7,0,12,0,53,19,0,17,0,36,0,33,0,7,7,8,9,8,21,0,14,3,3,0,41,0,13,0,3,0,48,19,8,22,0,16,11,14,15,16,22,0,17,11,14,0,16,0,16,21,0,16,9,21,0,17,0,27,0,47,19,0,19,9,3,2,0,41,0,15,0,12,0,53,19,8,21,0,2,19,22,0,18,11,14,21,0,18,0,36,0,30,0,54,0,0,0,55,17,0,39,0,18,8,7,8,0,17,9,0,21,0,45,19,25,0,47,0,31,0,20,7,21,0,1,0,1,16,17,0,24,0,40,0,35,0,29,0,32,0,2,7,7,7,8,16,0,33,0,45,0,46,3,2,0,42,0,0,8,7,21,0,2,17,0,17,16,0,27,0,38,0,45,8,0,40,0,44,8,16,25,21,0,1,0,14,16,0,21,0,45,17,22,0,3,11,0,4,0,47,17,21,1,7,16,22,0,4,11,14,15,17,22,0,5,11,14,21,0,1,0,17,21,0,1,0,14,16,0,20,0,45,17,0,18,31,0,3,0,33,0,2,7,16,17,17,0,20,0,38,0,33,0,0,7,8,31,0,5,3,2,0,41,0,16,0,36,0,10,8,0,8,0,44,19,8,31,0,4,17,25,21,0,1,0,17,16,0,31,0,28,0,56,7,0,17,0,14,0,27,0,45,19,0,39,0,19,8,19,0,18,0,16,19,7,21,0,1,0,14,16,21,1,7,0,47,17,17,0,18,16,25,0,56,0,17,21,0,1,0,10,16,21,0,2,3,2,17,22,0,3,11,14,21,0,3,21,0,1,31,0,3,3,3,0,19,16,0,18,16,25,0,69,0,18,21,0,1,0,26,16,0,21,0,47,17,0,21,0,45,17,17,0,18,0,68,17,0,19,16,25,21,0,1,0,14,16,0,27,0,45,17,22,0,3,11,14,0,70,21,0,2,0,16,0,3,0,47,19,0,29,0,26,7,0,71,19,0,17,9,21,1,5,3,2,0,41,0,8,0,38,0,49,8,8,16,3,2,0,18,16,0,20,21,0,3,17,0,19,16,21,0,1,0,27,0,40,0,72,0,27,0,47,0,1,21,0,2,17,0,3,0,50,17,0,4,0,44,17,17,8,16,0,73,0,20,0,38,0,1,8,31,0,3,17,0,19,16,3,3,0,18,16,25,21,0,1,0,26,16,0,32,0,11,7,0,67,17,0,34,0,1,7,16,0,35,0,0,7,16,0,11,0,48,17,0,33,0,7,7,16,25,21,0,1,0,31,0,76,7,16,21,1,10,0,47,17,21,1,11,0,48,17,0,27,0,38,0,44,0,45,3,2,8,0,40,0,57,8,16,25,21,0,1,0,14,16,0,67,0,31,21,1,5,7,0,31,0,18,0,38,0,77,8,7,9,0,18,9,0,27,0,40,0,58,8,9,3,2,0,41,0,10,0,8,0,47,19,8,16,0,19,16,25,21,0,1,0,31,0,14,7,16,22,0,3,11,14,21,0,3,0,31,0,27,7,0,47,17,0,17,0,28,0,47,7,0,1,0,11,19,0,43,0,34,0,4,7,8,3,2,0,41,0,11,0,8,0,44,19,8,16,22,0,4,11,14,31,0,3,0,31,0,27,7,16,0,11,0,8,0,44,19,0,43,0,47,0,42,0,34,0,4,7,8,8,16,22,0,5,11,14,21,0,1,0,31,0,20,7,0,47,0,20,21,0,4,0,10,16,0,2,21,0,2,17,0,1,16,17,0,6,31,0,4,17,0,2,21,0,2,17,0,32,0,19,7,21,0,5,17,17,0,11,0,1,0,48,19,0,4,0,44,19,0,43,0,19,8,16,0,48,0,42,0,18,0,36,0,8,8,8,16,22,0,6,11,14,31,0,6,21,1,9,0,9,0,36,21,1,8,8,3,2,0,41,31,0,5,0,17,16,0,13,0,38,0,24,0,38,0,47,8,8,16,8,16,21,1,10,0,48,17,25,21,0,1,0,31,21,1,18,7,16,21,1,13,0,47,0,15,21,0,2,17,17,21,1,11,21,0,1,0,11,16,17,25,21,0,1,0,11,16,22,0,3,11,14,0,78,0,16,0,40,21,0,1,8,16,0,21,0,44,17,22,0,1,12,14,21,0,1,0,14,16,0,21,0,45,17,22,0,4,11,0,10,16,0,1,16,0,11,0,38,0,44,8,0,43,0,46,8,16,22,0,5,11,14,0,59,22,0,6,11,14,15,18,22,0,7,11,14,21,0,1,0,25,0,38,0,16,0,11,21,0,6,19,0,0,0,47,19,8,31,0,7,3,2,0,41,0,11,0,10,0,47,19,8,16,22,0,1,12,14,21,0,6,0,20,0,38,0,1,8,21,0,4,17,21,0,5,0,42,0,18,8,21,0,1,17,31,0,5,0,42,0,18,8,0,62,0,20,21,0,4,0,18,0,47,17,0,27,0,45,17,17,0,17,31,0,4,17,0,27,0,40,31,0,6,8,16,17,0,19,16,21,0,3,0,10,0,47,17,0,43,21,1,8,21,1,10,0,47,19,21,1,11,31,0,3,19,8,16,25,21,0,1,21,1,14,21,1,12,3,2,0,41,0,14,0,11,0,44,19,0,33,0,7,7,9,8,16,25,21,0,1,21,1,14,0,45,17,25,0,79,0,80,0,81,0,82,0,83,3,5,0,31,0,15,0,18,0,18,19,7,0,63,17,22,0,3,11,14,0,16,0,16,0,36,21,1,16,0,36,21,0,3,0,27,16,0,26,3,2,0,41,0,10,0,11,0,47,19,8,8,8,0,8,0,37,0,19,8,0,44,19,21,1,17,3,2,0,41,0,15,0,12,0,53,19,8,21,1,2,19,22,0,4,11,14,21,0,1,21,1,3,16,22,0,5,11,0,27,16,22,0,6,11,14,0,64,0,1,0,84,17,0,27,21,0,6,17,22,0,7,11,14,0,86,0,39,0,18,8,0,18,0,85,19,22,0,8,11,14,0,16,0,31,31,0,4,0,39,0,27,0,38,0,47,8,0,15,0,12,21,0,7,0,3,0,48,17,19,0,43,0,16,0,36,31,0,8,8,8,0,27,0,39,0,0,8,19,8,7,0,10,0,36,0,22,8,0,11,0,44,19,0,1,9,0,47,0,9,21,0,7,17,0,43,0,24,8,9,19,0,18,9,22,0,9,11,14,21,0,5,0,21,0,47,17,0,28,21,0,1,7,21,1,4,0,36,0,17,8,9,31,0,3,0,41,0,48,0,1,21,0,2,17,8,31,0,9,3,3,0,41,31,0,6,0,5,16,0,3,0,48,17,8,16,22,0,10,11,14,21,0,10,21,0,7,0,12,0,48,17,0,43,0,28,31,0,5,7,0,27,0,45,19,21,1,2,9,0,9,0,53,19,0,43,0,87,0,39,0,18,8,8,8,16,22,0,10,12,14,31,0,7,31,0,10,3,2,25,21,0,1,0,18,0,38,0,26,0,36,0,31,0,56,7,8,8,16,0,26,21,0,2,0,0,0,47,17,0,18,0,44,17,0,25,16,0,2,0,38,0,8,0,38,0,23,8,8,16,17,25,0,52,0,0,0,55,17,0,8,21,0,1,17,0,2,0,55,0,1,0,61,17,17,0,0,0,51,0,0,0,55,17,0,16,0,1,0,60,19,0,2,0,11,19,21,0,1,17,17,0,0,21,0,1,17,25] + ,[runtime[0],runtime[1],runtime[2],runtime[6],runtime[7],runtime[8],runtime[9],runtime[11],runtime[12],runtime[13],runtime[14],runtime[15],runtime[16],runtime[18],runtime[19],runtime[20],runtime[21],runtime[22],runtime[23],runtime[24],runtime[25],runtime[26],runtime[27],runtime[29],runtime[30],runtime[32],runtime[35],runtime[36],runtime[43],runtime[44],runtime[45],runtime[46],runtime[47],runtime[49],runtime[50],runtime[51],runtime[52],runtime[53],runtime[54],runtime[55],runtime[56],runtime[58],runtime[59],runtime[61],0,-1,Infinity,1,2,5,4,127,32,3,10,'\0',' ','┐','↕','\"','␡','␀','·','*','0',str("@"),str("\'"),str("⟨⟩"),str("⟨"),str("⟩"),str("┌"),str("·─"),str("·╵╎┆┊"),str("┘"),str("┌┐"),str("└┘"),str(" "),str("‿"),str(""),str("array"),str("function"),str("1-modifier"),str("2-modifier"),str("namespace"),str("00321111"),str("("),str(")"),str("{𝔽}")] + ,[[0,1,0,0],[1,1,3,19],[0,0,399,3],[0,0,465,6],[0,0,565,3],[0,0,616,4],[0,0,655,3],[0,0,685,4],[0,0,808,3],[0,0,846,3],[0,0,885,3],[0,0,938,7],[0,0,1168,3],[0,0,1201,8],[0,0,1428,3],[0,0,1457,3],[0,0,1467,11],[0,0,1827,3],[0,0,1879,3]] )(list([type, decompose, glyph, fmtnum])); let fmt = x => unstr(fmt1(x)); @@ -81,13 +81,13 @@ # Format part of a compound operation; return precedence‿string FmtOp ← { - tn ← '*'(∾∾⊣)¨"array"‿"function"‿"1-modifier"‿"2-modifier" + tn ← '*'(∾∾⊣)¨"array"‿"function"‿"1-modifier"‿"2-modifier"‿"namespace" FmtComp ← Type (3≤⊣)◶⟨0≍○<(1=≠)◶⟨⊑tn,⊏⟩∘FmtDat∘⊢, FmtOp⟩ ⊢ k ← ⊑ d ← Decomp 𝕩 p ← k ⊑ "00321111"-'0' Paren ← "("∾∾⟜")" FromComp ← ∾(⌽⍟(p>1)·-0=↕∘≠)(+⟜⊑Paren∘⊢⍟((2⌊p)≤⊣)1⊸⊑)⟜FmtComp¨⊢ - s ← (2⌊k)◶⟨⥊∘FF𝕩˙,(𝕨-2)◶tn,FromComp⟩ 1↓d + s ← (2⌊|k)◶⟨⥊∘FF𝕩˙,(𝕨-2)◶tn,FromComp⟩ 1↓d s ↩ ∾⟜"{𝔽}"⍟(3>·Type ¯1⊑d˙)⍟(2≤p) s p‿s } |
