-
Notifications
You must be signed in to change notification settings - Fork 38
Expand file tree
/
Copy pathtoolgood.algorithm.js
More file actions
2 lines (2 loc) · 177 KB
/
toolgood.algorithm.js
File metadata and controls
2 lines (2 loc) · 177 KB
1
2
/*! For license information please see toolgood.algorithm.js.LICENSE.txt */
!function(t,s){"object"==typeof exports&&"object"==typeof module?module.exports=s():"function"==typeof define&&define.amd?define([],s):"object"==typeof exports?exports["ToolGood.Algorithm"]=s():t["ToolGood.Algorithm"]=s()}(this,()=>(()=>{"use strict";var t={d:(s,e)=>{for(var i in e)t.t(e,i)&&!t.t(s,i)&&Object.defineProperty(s,i,{enumerable:!0,get:e[i]})},t:(t,s)=>Object.prototype.hasOwnProperty.call(t,s)},s={};t.d(s,{default:()=>Hs});class e{constructor(){this.source=null,this.type=null,this.channel=null,this.start=null,this.stop=null,this.i=null,this.line=null,this.h=null,this.l=null}u(){return this.source[0]}o(){return this.source[1]}get text(){return this.l}set text(t){this.l=t}}e.p=0,e.EPSILON=-2,e.S=1,e.EOF=-1,e.m=0,e.T=1;class i{constructor(t,s){if(this.name="<empty>",this.k=t,this.v=s||!1,this.N=0,this.data=[],this.v)for(let t=0;t<this.k.length;){let s=this.k.codePointAt(t);this.data.push(s),t+=s<=65535?1:2}else{this.data=new Array(this.k.length);for(let t=0;t<this.k.length;t++)this.data[t]=this.k.charCodeAt(t)}this.L=this.data.length}reset(){this.N=0}O(){if(this.N>=this.L)throw"cannot consume EOF";this.N+=1}LA(t){if(0===t)return 0;t<0&&(t+=1);let s=this.N+t-1;return s<0||s>=this.L?e.EOF:this.data[s]}LT(t){return this.LA(t)}mark(){return-1}release(t){}seek(t){t<=this.N?this.N=t:this.N=Math.min(t,this.L)}P(t,s){if(s>=this.L&&(s=this.L-1),t>=this.L)return"";if(this.v){let e="";for(let i=t;i<=s;i++)e+=String.fromCodePoint(this.data[i]);return e}return this.k.slice(t,s+1)}toString(){return this.k}get index(){return this.N}get size(){return this.L}}class n extends i{constructor(t,s){super(t,s)}LA(t){if(0===t)return 0;t<0&&(t+=1);let s=this.N+t-1;if(s<0||s>=this.L)return e.EOF;let i=this.data[s];return n.F(String.fromCharCode(i)).charCodeAt(0)}static F(t){if("string"!=typeof t||1!==t.length)return t;let s=t.charCodeAt(0);return s>=65&&s<=90?t:s<=127?t.toUpperCase():s<=65280?"×"==t?"*":"÷"==t?"/":"‘"==t||"’"==t?"'":'"'==t||'"'==t?'"':12288==s?String.fromCharCode(32):"【"==t?"[":"】"==t?"]":"〔"==t?"(":"〕"==t?")":t:(s<65375&&(t=String.fromCharCode(s-65248)),t.toUpperCase())}}function r(t,s){if(!Array.isArray(t)||!Array.isArray(s))return!1;if(t===s)return!0;if(t.length!==s.length)return!1;for(let e=0;e<t.length;e++)if(!(t[e]===s[e]||t[e].equals&&t[e].equals(s[e])))return!1;return!0}let h=Math.round(Math.random()*Math.pow(2,32));function l(t){if(!t)return 0;let s,e,i=typeof t,n="string"===i?t:!("object"!==i||!t.toString)&&t.toString();if(!n)return 0;let r=3&n.length,l=n.length-r,u=h,a=3432918353,c=461845907,o=0;for(;o<l;)e=255&n.charCodeAt(o)|(255&n.charCodeAt(++o))<<8|(255&n.charCodeAt(++o))<<16|(255&n.charCodeAt(++o))<<24,++o,e=(65535&e)*a+(((e>>>16)*a&65535)<<16)&4294967295,e=e<<15|e>>>17,e=(65535&e)*c+(((e>>>16)*c&65535)<<16)&4294967295,u^=e,u=u<<13|u>>>19,s=5*(65535&u)+((5*(u>>>16)&65535)<<16)&4294967295,u=27492+(65535&s)+(((s>>>16)+58964&65535)<<16);switch(e=0,r){case 3:e^=(255&n.charCodeAt(o+2))<<16;case 2:e^=(255&n.charCodeAt(o+1))<<8;case 1:e^=255&n.charCodeAt(o),e=(65535&e)*a+(((e>>>16)*a&65535)<<16)&4294967295,e=e<<15|e>>>17,e=(65535&e)*c+(((e>>>16)*c&65535)<<16)&4294967295,u^=e}return u^=n.length,u^=u>>>16,u=2246822507*(65535&u)+((2246822507*(u>>>16)&65535)<<16)&4294967295,u^=u>>>13,u=3266489909*(65535&u)+((3266489909*(u>>>16)&65535)<<16)&4294967295,u^=u>>>16,u>>>0}class u{constructor(){this.count=0,this.hash=0}update(){for(let t=0;t<arguments.length;t++){let s=arguments[t];if(null!=s)if(Array.isArray(s))this.update.apply(this,s);else{let t=0;switch(typeof s){case"undefined":case"function":continue;case"number":case"boolean":t=s;break;case"string":t=l(s);break;default:s._&&s._(this);continue}t*=3432918353,t=t<<15|t>>>17,t*=461845907,this.count=this.count+1;let e=this.hash^t;e=e<<13|e>>>19,e=5*e+3864292196,this.hash=e}}}finish(){let t=this.hash^4*this.count;return t^=t>>>16,t*=2246822507,t^=t>>>13,t*=3266489909,t^=t>>>16,t}static M(){let t=new u;return t.update.apply(t,arguments),t.finish()}}function a(t){return t?"string"==typeof t?l(t):t.q():-1}function c(t,s){return t&&t.equals?t.equals(s):t===s}function o(t){return null===t?"null":t}function f(t){return Array.isArray(t)?"["+t.map(o).join(", ")+"]":"null"}class d{constructor(t,s){this.H=new Array(16),this.threshold=Math.floor(12),this.V=0,this.U=t||a,this.j=s||c}get(t){if(null==t)return t;let s=this.K(t);if(!s)return null;for(let e of s)if(this.j(e,t))return e;return null}add(t){return this.$(t)===t}$(t){this.tt();let s=this.st(t),e=this.H[s];if(!e)return e=[t],this.H[s]=e,this.V++,t;for(let s of e)if(this.j(s,t))return s;return e.push(t),this.V++,t}has(t){return null!=this.get(t)}values(){return this.H.filter(t=>null!=t).flat(1)}toString(){return f(this.values())}get length(){return this.V}st(t){return this.U(t)&this.H.length-1}K(t){return this.H[this.st(t)]}tt(){if(this.V<=this.threshold)return;let t=this.H,s=2*this.H.length;this.H=new Array(s),this.threshold=Math.floor(.75*s);for(let s of t)if(s)for(let t of s){let s=this.st(t),e=this.H[s];e||(e=[],this.H[s]=e),e.push(t)}}}class g{q(){let t=new u;return this._(t),t.finish()}evaluate(t,s){}et(t,s){return this}static it(t,s){if(null===t||t===g.NONE)return s;if(null===s||s===g.NONE)return t;let e=new w(t,s);return 1===e.nt.length?e.nt[0]:e}static rt(t,s){if(null===t)return s;if(null===s)return t;if(t===g.NONE||s===g.NONE)return g.NONE;let e=new p(t,s);return 1===e.nt.length?e.nt[0]:e}}class w extends g{constructor(t,s){super();let e=new d;t instanceof w?t.nt.map(function(t){e.add(t)}):e.add(t),s instanceof w?s.nt.map(function(t){e.add(t)}):e.add(s);let i=x(e);if(i.length>0){let t=null;i.map(function(s){(null===t||s.ht<t.ht)&&(t=s)}),e.add(t)}this.nt=Array.from(e.values())}equals(t){return this===t||t instanceof w&&r(this.nt,t.nt)}_(t){t.update(this.nt,"AND")}evaluate(t,s){for(let e=0;e<this.nt.length;e++)if(!this.nt[e].evaluate(t,s))return!1;return!0}et(t,s){let e=!1,i=[];for(let n=0;n<this.nt.length;n++){let r=this.nt[n],h=r.et(t,s);if(e|=h!==r,null===h)return null;h!==g.NONE&&i.push(h)}if(!e)return this;if(0===i.length)return g.NONE;let n=null;return i.map(function(t){n=null===n?t:g.it(n,t)}),n}toString(){let t=this.nt.map(t=>t.toString());return(t.length>3?t.slice(3):t).join("&&")}}class p extends g{constructor(t,s){super();let e=new d;t instanceof p?t.nt.map(function(t){e.add(t)}):e.add(t),s instanceof p?s.nt.map(function(t){e.add(t)}):e.add(s);let i=x(e);if(i.length>0){let t=i.sort(function(t,s){return t.lt(s)}),s=t[t.length-1];e.add(s)}this.nt=Array.from(e.values())}equals(t){return this===t||t instanceof p&&r(this.nt,t.nt)}_(t){t.update(this.nt,"OR")}evaluate(t,s){for(let e=0;e<this.nt.length;e++)if(this.nt[e].evaluate(t,s))return!0;return!1}et(t,s){let e=!1,i=[];for(let n=0;n<this.nt.length;n++){let r=this.nt[n],h=r.et(t,s);if(e|=h!==r,h===g.NONE)return g.NONE;null!==h&&i.push(h)}return e?(0===i.length||i.map(function(t){return t}),null):this}toString(){let t=this.nt.map(t=>t.toString());return(t.length>3?t.slice(3):t).join("||")}}function x(t){let s=[];return t.values().map(function(t){t instanceof g.PrecedencePredicate&&s.push(t)}),s}function S(t,s){if(null===t){let t={state:null,alt:null,context:null,ut:null};return s&&(t.ct=0),t}{let e={};return e.state=t.state||null,e.alt=void 0===t.alt?null:t.alt,e.context=t.context||null,e.ut=t.ut||null,s&&(e.ct=t.ct||0,e.ot=t.ot||!1),e}}class m{constructor(t,s){this.ft(t,s),t=S(t),s=S(s,!0),this.state=null!==t.state?t.state:s.state,this.alt=null!==t.alt?t.alt:s.alt,this.context=null!==t.context?t.context:s.context,this.ut=null!==t.ut?t.ut:null!==s.ut?s.ut:g.NONE,this.ct=s.ct,this.ot=s.ot}ft(t,s){null!==t.context&&void 0!==t.context||null!==s&&null!==s.context&&void 0!==s.context||(this.context=null)}q(){let t=new u;return this._(t),t.finish()}_(t){t.update(this.state.dt,this.alt,this.context,this.ut)}equals(t){return this===t||t instanceof m&&this.state.dt===t.state.dt&&this.alt===t.alt&&(null===this.context?null===t.context:this.context.equals(t.context))&&this.ut.equals(t.ut)&&this.ot===t.ot}gt(){let t=new u;return t.update(this.state.dt,this.alt,this.ut),t.finish()}wt(t){return this===t||t instanceof m&&this.state.dt===t.state.dt&&this.alt===t.alt&&this.ut.equals(t.ut)}toString(){return"("+this.state+","+this.alt+(null!==this.context?",["+this.context.toString()+"]":"")+(this.ut!==g.NONE?","+this.ut.toString():"")+(this.ct>0?",up="+this.ct:"")+")"}}class T{constructor(t,s){this.start=t,this.stop=s}clone(){return new T(this.start,this.stop)}contains(t){return t>=this.start&&t<this.stop}toString(){return this.start===this.stop-1?this.start.toString():this.start.toString()+".."+(this.stop-1).toString()}get length(){return this.stop-this.start}}T.xt=new T(-1,-2);class k{constructor(){this.St=null,this.readOnly=!1}first(t){return null===this.St||0===this.St.length?e.p:this.St[0].start}Tt(t){this.kt(new T(t,t+1))}addRange(t,s){this.kt(new T(t,s+1))}kt(t){if(null===this.St)this.St=[],this.St.push(t.clone());else{for(let s=0;s<this.St.length;s++){let e=this.St[s];if(t.stop<e.start)return void this.St.splice(s,0,t);if(t.stop===e.start)return void(this.St[s]=new T(t.start,e.stop));if(t.start<=e.stop)return this.St[s]=new T(Math.min(e.start,t.start),Math.max(e.stop,t.stop)),void this.reduce(s)}this.St.push(t.clone())}}yt(t){return null!==t.St&&t.St.forEach(t=>this.kt(t),this),this}reduce(t){if(t<this.St.length-1){let s=this.St[t],e=this.St[t+1];s.stop>=e.stop?(this.St.splice(t+1,1),this.reduce(t)):s.stop>=e.start&&(this.St[t]=new T(s.start,e.stop),this.St.splice(t+1,1))}}vt(t,s){let e=new k;return e.kt(new T(t,s+1)),null!==this.St&&this.St.forEach(t=>e.removeRange(t)),e}contains(t){if(null===this.St)return!1;for(let s=0;s<this.St.length;s++)if(this.St[s].contains(t))return!0;return!1}removeRange(t){if(t.start===t.stop-1)this.At(t.start);else if(null!==this.St){let s=0;for(let e=0;e<this.St.length;e++){let e=this.St[s];if(t.stop<=e.start)return;if(t.start>e.start&&t.stop<e.stop){this.St[s]=new T(e.start,t.start);let i=new T(t.stop,e.stop);return void this.St.splice(s,0,i)}t.start<=e.start&&t.stop>=e.stop?(this.St.splice(s,1),s-=1):t.start<e.stop?this.St[s]=new T(e.start,t.start):t.stop<e.stop&&(this.St[s]=new T(t.stop,e.stop)),s+=1}}}At(t){if(null!==this.St)for(let s=0;s<this.St.length;s++){let e=this.St[s];if(t<e.start)return;if(t===e.start&&t===e.stop-1)return void this.St.splice(s,1);if(t===e.start)return void(this.St[s]=new T(e.start+1,e.stop));if(t===e.stop-1)return void(this.St[s]=new T(e.start,e.stop-1));if(t<e.stop-1){let i=new T(e.start,t);return e.start=t+1,void this.St.splice(s,0,i)}}}toString(t,s,e){return t=t||null,s=s||null,e=e||!1,null===this.St?"{}":null!==t||null!==s?this.Ct(t,s):e?this.Et():this.bt()}Et(){let t=[];for(let s=0;s<this.St.length;s++){let i=this.St[s];i.stop===i.start+1?i.start===e.EOF?t.push("<EOF>"):t.push("'"+String.fromCharCode(i.start)+"'"):t.push("'"+String.fromCharCode(i.start)+"'..'"+String.fromCharCode(i.stop-1)+"'")}return t.length>1?"{"+t.join(", ")+"}":t[0]}bt(){let t=[];for(let s=0;s<this.St.length;s++){let i=this.St[s];i.stop===i.start+1?i.start===e.EOF?t.push("<EOF>"):t.push(i.start.toString()):t.push(i.start.toString()+".."+(i.stop-1).toString())}return t.length>1?"{"+t.join(", ")+"}":t[0]}Ct(t,s){let e=[];for(let i=0;i<this.St.length;i++){let n=this.St[i];for(let i=n.start;i<n.stop;i++)e.push(this.Nt(t,s,i))}return e.length>1?"{"+e.join(", ")+"}":e[0]}Nt(t,s,i){return i===e.EOF?"<EOF>":i===e.EPSILON?"<EPSILON>":t[i]||s[i]}get length(){return this.St.map(t=>t.length).reduce((t,s)=>t+s)}}class y{constructor(){this.Rt=null,this.dt=y.Lt,this.Ot=null,this.Pt=0,this.It=!1,this.Ft=[],this.Dt=null}toString(){return this.dt}equals(t){return t instanceof y&&this.dt===t.dt}_t(){return!1}Mt(t,s){void 0===s&&(s=-1),0===this.Ft.length?this.It=t.qt:this.It!==t.qt&&(this.It=!1),-1===s?this.Ft.push(t):this.Ft.splice(s,1,t)}}y.p=0,y.BASIC=1,y.Ht=2,y.Bt=3,y.Vt=4,y.zt=5,y.Ut=6,y.jt=7,y.Kt=8,y.Wt=9,y.Gt=10,y.Jt=11,y.$t=12,y.Qt=["INVALID","BASIC","RULE_START","BLOCK_START","PLUS_BLOCK_START","STAR_BLOCK_START","TOKEN_START","RULE_STOP","BLOCK_END","STAR_LOOP_BACK","STAR_LOOP_ENTRY","PLUS_LOOP_BACK","LOOP_END"],y.Lt=-1;class v extends y{constructor(){return super(),this.Ot=y.jt,this}}class A{constructor(t){if(null==t)throw"target cannot be null.";this.target=t,this.qt=!1,this.label=null}}A.EPSILON=1,A.RANGE=2,A.RULE=3,A.PREDICATE=4,A.ATOM=5,A.ACTION=6,A.SET=7,A.Xt=8,A.WILDCARD=9,A.PRECEDENCE=10,A.Qt=["INVALID","EPSILON","RANGE","RULE","PREDICATE","ATOM","ACTION","SET","NOT_SET","WILDCARD","PRECEDENCE"],A.Yt={EpsilonTransition:A.EPSILON,RangeTransition:A.RANGE,RuleTransition:A.RULE,PredicateTransition:A.PREDICATE,AtomTransition:A.ATOM,ActionTransition:A.ACTION,Zt:A.SET,NotSetTransition:A.Xt,WildcardTransition:A.WILDCARD,PrecedencePredicateTransition:A.PRECEDENCE};class C extends A{constructor(t,s,e,i){super(t),this.Pt=s,this.ht=e,this.ts=i,this.ss=A.RULE,this.qt=!0}matches(t,s,e){return!1}}class E extends A{constructor(t,s){super(t),this.ss=A.SET,null!=s?this.label=s:(this.label=new k,this.label.Tt(e.p))}matches(t,s,e){return this.label.contains(t)}toString(){return this.label.toString()}}class b extends E{constructor(t,s){super(t,s),this.ss=A.Xt}matches(t,s,e){return t>=s&&t<=e&&!super.matches(t,s,e)}toString(){return"~"+super.toString()}}class N extends A{constructor(t){super(t),this.ss=A.WILDCARD}matches(t,s,e){return t>=s&&t<=e}toString(){return"."}}class R extends A{constructor(t){super(t)}}class L{}class O extends L{}class P extends O{}class I extends P{get es(){throw new Error("missing interface implementation")}}class F extends P{}class D extends F{}let _={ns:function(t,s,e){s=s||null,null!==(e=e||null)&&(s=e.rs);let i=_.hs(t,s);i=function(t){return t.replace(/\t/g,"\\t").replace(/\n/g,"\\n").replace(/\r/g,"\\r")}(i);let n=t.ls();if(0===n)return i;let r="("+i+" ";n>0&&(i=_.ns(t.us(0),s),r=r.concat(i));for(let e=1;e<n;e++)i=_.ns(t.us(e),s),r=r.concat(" "+i);return r=r.concat(")"),r},hs:function(t,s,i){if(s=s||null,null!==(i=i||null)&&(s=i.rs),null!==s){if(t instanceof I){let e=t.es.cs();return 0!=e?s[t.Pt]+":"+e:s[t.Pt]}if(t instanceof D)return t.toString();if(t instanceof F&&null!==t.fs)return t.fs.text}let n=t.ds();return n instanceof e?n.text:t.ds().toString()},gs:function(t){let s=[];for(let e=0;e<t.ls();e++)s.push(t.us(e));return s},ws:function(t){let s=[];for(t=t.getParent();null!==t;)s=[t].concat(s),t=t.getParent();return s},ps:function(t,s){return _.xs(t,s,!0)},Ss:function(t,s){return _.xs(t,s,!1)},xs:function(t,s,e){let i=[];return _.Ts(t,s,e,i),i},Ts:function(t,s,e,i){e&&t instanceof F?t.fs.type===s&&i.push(t):!e&&t instanceof I&&t.Pt===s&&i.push(t);for(let n=0;n<t.ls();n++)_.Ts(t.us(n),s,e,i)},ks:function(t){let s=[t];for(let e=0;e<t.ls();e++)s=s.concat(_.ks(t.us(e)));return s}};const M=_;class q extends I{constructor(t,s){super(),this.ys=t||null,this.vs=s||-1}As(){let t=0,s=this;for(;null!==s;)s=s.ys,t+=1;return t}Cs(){return-1===this.vs}Es(){return T.xt}get es(){return this}ds(){return this}P(){return 0===this.ls()?"":this.children.map(function(t){return t.P()}).join("")}cs(){return 0}bs(t){}us(t){return null}ls(){return 0}accept(t){return t.Ns(this)}ns(t,s){return M.ns(this,t,s)}toString(t,s){t=t||null,s=s||null;let e=this,i="[";for(;null!==e&&e!==s;){if(null===t)e.Cs()||(i+=e.vs);else{let s=e.Pt;i+=s>=0&&s<t.length?t[s]:""+s}null===e.ys||null===t&&e.ys.Cs()||(i+=" "),e=e.ys}return i+="]",i}}class H{constructor(t){this.Rs=t}Cs(){return this===H.EMPTY}Ls(){return this.Os(this.length-1)===H.Ps}q(){return this.Rs}_(t){t.update(this.Rs)}}H.EMPTY=null,H.Ps=2147483647,H.Is=1,H.id=H.Is,H.Fs=!1;class B extends H{constructor(t,s){let e=new u;return e.update(t,s),super(e.finish()),this.Ds=t,this._s=s,this}Cs(){return this._s[0]===H.Ps}getParent(t){return this.Ds[t]}Os(t){return this._s[t]}equals(t){return this===t||t instanceof B&&this.q()===t.q()&&r(this._s,t._s)&&r(this.Ds,t.Ds)}toString(){if(this.Cs())return"[]";{let t="[";for(let s=0;s<this._s.length;s++)s>0&&(t+=", "),this._s[s]!==H.Ps?(t+=this._s[s],null!==this.Ds[s]?t=t+" "+this.Ds[s]:t+="null"):t+="$";return t+"]"}}get length(){return this._s.length}}class V extends H{constructor(t,s){let e=0,i=new u;null!==t?i.update(t,s):i.update(1),e=i.finish(),super(e),this.ys=t,this.Ms=s}getParent(t){return this.ys}Os(t){return this.Ms}equals(t){return this===t||t instanceof V&&this.q()===t.q()&&this.Ms===t.Ms&&(null==this.ys?null==t.ys:this.ys.equals(t.ys))}toString(){let t=null===this.ys?"":this.ys.toString();return 0===t.length?this.Ms===H.Ps?"$":""+this.Ms:this.Ms+" "+t}get length(){return 1}static create(t,s){return s===H.Ps&&null===t?H.EMPTY:new V(t,s)}}class z extends V{constructor(){super(null,H.Ps)}Cs(){return!0}getParent(t){return null}Os(t){return this.Ms}equals(t){return this===t}toString(){return"$"}}H.EMPTY=new z;class U{constructor(t,s){this.H=new Array(16),this.threshold=Math.floor(12),this.V=0,this.U=t||a,this.j=s||c}set(t,s){this.tt();let e=this.st(t),i=this.H[e];if(!i)return i=[[t,s]],this.H[e]=i,this.V++,s;let n=i.find(s=>this.j(s[0],t),this);if(n){let t=n[1];return n[1]=s,t}return i.push([t,s]),this.V++,s}qs(t){let s=this.K(t);return!!s&&!!s.find(s=>this.j(s[0],t),this)}get(t){let s=this.K(t);if(!s)return null;let e=s.find(s=>this.j(s[0],t),this);return e?e[1]:null}entries(){return this.H.filter(t=>null!=t).flat(1)}Hs(){return this.entries().map(t=>t[0])}getValues(){return this.entries().map(t=>t[1])}toString(){return"["+this.entries().map(t=>"{"+t[0]+":"+t[1]+"}").join(", ")+"]"}get length(){return this.V}st(t){return this.U(t)&this.H.length-1}K(t){return this.H[this.st(t)]}tt(){if(this.V<=this.threshold)return;let t=this.H,s=2*this.H.length;this.H=new Array(s),this.threshold=Math.floor(.75*s);for(let s of t)if(s)for(let t of s){let s=this.st(t[0]),e=this.H[s];e||(e=[],this.H[s]=e),e.push(t)}}}function j(t,s){if(null==s&&(s=q.EMPTY),null===s.ys||s===q.EMPTY)return H.EMPTY;let e=j(t,s.ys),i=t.states[s.vs].Ft[0];return V.create(e,i.ts.dt)}function K(t,s,e){if(t.Cs())return t;let i=e.get(t)||null;if(null!==i)return i;if(i=s.get(t),null!==i)return e.set(t,i),i;let n=!1,r=[];for(let i=0;i<r.length;i++){let h=K(t.getParent(i),s,e);if(n||h!==t.getParent(i)){if(!n){r=[];for(let s=0;s<t.length;s++)r[s]=t.getParent(s);n=!0}r[i]=h}}if(!n)return s.add(t),e.set(t,t),t;let h=null;return h=0===r.length?H.EMPTY:1===r.length?V.create(r[0],t.Os(0)):new B(r,t._s),s.add(h),e.set(h,h),e.set(t,h),h}function W(t,s,e,i){if(t===s)return t;if(t instanceof V&&s instanceof V)return function(t,s,e,i){if(null!==i){let e=i.get(t,s);if(null!==e)return e;if(e=i.get(s,t),null!==e)return e}let n=function(t,s,e){if(e){if(t===H.EMPTY)return H.EMPTY;if(s===H.EMPTY)return H.EMPTY}else{if(t===H.EMPTY&&s===H.EMPTY)return H.EMPTY;if(t===H.EMPTY){let t=[s.Ms,H.Ps],e=[s.ys,null];return new B(e,t)}if(s===H.EMPTY){let s=[t.Ms,H.Ps],e=[t.ys,null];return new B(e,s)}}return null}(t,s,e);if(null!==n)return null!==i&&i.set(t,s,n),n;if(t.Ms===s.Ms){let n=W(t.ys,s.ys,e,i);if(n===t.ys)return t;if(n===s.ys)return s;let r=V.create(n,t.Ms);return null!==i&&i.set(t,s,r),r}{let e=null;if((t===s||null!==t.ys&&t.ys===s.ys)&&(e=t.ys),null!==e){let n=[t.Ms,s.Ms];t.Ms>s.Ms&&(n[0]=s.Ms,n[1]=t.Ms);let r=new B([e,e],n);return null!==i&&i.set(t,s,r),r}let n=[t.Ms,s.Ms],r=[t.ys,s.ys];t.Ms>s.Ms&&(n[0]=s.Ms,n[1]=t.Ms,r=[s.ys,t.ys]);let h=new B(r,n);return null!==i&&i.set(t,s,h),h}}(t,s,e,i);if(e){if(t instanceof z)return t;if(s instanceof z)return s}return t instanceof V&&(t=new B([t.getParent()],[t.Ms])),s instanceof V&&(s=new B([s.getParent()],[s.Ms])),function(t,s,e,i){if(null!==i){let e=i.get(t,s);if(null!==e)return H.Fs,e;if(e=i.get(s,t),null!==e)return H.Fs,e}let n=0,r=0,h=0,l=new Array(t._s.length+s._s.length).fill(0),u=new Array(t._s.length+s._s.length).fill(null);for(;n<t._s.length&&r<s._s.length;){let a=t.Ds[n],c=s.Ds[r];if(t._s[n]===s._s[r]){let s=t._s[n];s===H.Ps&&null===a&&null===c||null!==a&&null!==c&&a===c?(u[h]=a,l[h]=s):(u[h]=W(a,c,e,i),l[h]=s),n+=1,r+=1}else t._s[n]<s._s[r]?(u[h]=a,l[h]=t._s[n],n+=1):(u[h]=c,l[h]=s._s[r],r+=1);h+=1}if(n<t._s.length)for(let s=n;s<t._s.length;s++)u[h]=t.Ds[s],l[h]=t._s[s],h+=1;else for(let t=r;t<s._s.length;t++)u[h]=s.Ds[t],l[h]=s._s[t],h+=1;if(h<u.length){if(1===h){let e=V.create(u[0],l[0]);return null!==i&&i.set(t,s,e),e}u=u.slice(0,h),l=l.slice(0,h)}let a=new B(u,l);return a.equals(t)?(null!==i&&i.set(t,s,t),H.Fs,t):a.equals(s)?(null!==i&&i.set(t,s,s),H.Fs,s):(function(t){let s=new U;for(let e=0;e<t.length;e++){let i=t[e];s.qs(i)||s.set(i,i)}for(let e=0;e<t.length;e++)t[e]=s.get(t[e])}(u),null!==i&&i.set(t,s,a),H.Fs,a)}(t,s,e,i)}class G{constructor(){this.data=new Uint32Array(1)}set(t){G.Bs(t),this.Vs(t),this.data[t>>>5]|=1<<t%32}get(t){G.Bs(t);let s=t>>>5;return!(s>=this.data.length||!(this.data[s]&1<<t%32))}clear(t){G.Bs(t);let s=t>>>5;s<this.data.length&&(this.data[s]&=~(1<<t))}or(t){let s=Math.min(this.data.length,t.data.length);for(let e=0;e<s;++e)this.data[e]|=t.data[e];if(this.data.length<t.data.length){this.Vs((t.data.length<<5)-1);let e=t.data.length;for(let i=s;i<e;++i)this.data[i]=t.data[i]}}values(){let t=new Array(this.length),s=0,e=this.data.length;for(let i=0;i<e;++i){let e=this.data[i];for(;0!==e;){let n=e&-e;t[s++]=(i<<5)+G.zs(n-1),e^=n}}return t}minValue(){for(let t=0;t<this.data.length;++t){let s=this.data[t];if(0!==s){let e=0;for(;!(1&s);)e++,s>>=1;return e+32*t}}return 0}q(){return u.M(this.values())}equals(t){return t instanceof G&&r(this.data,t.data)}toString(){return"{"+this.values().join(", ")+"}"}get length(){return this.data.map(t=>G.zs(t)).reduce((t,s)=>t+s,0)}Vs(t){let s=t+32>>>5;if(s<=this.data.length)return;let e=new Uint32Array(s);e.set(this.data),e.fill(0,this.data.length),this.data=e}static Bs(t){if(t<0)throw new RangeError("index cannot be negative")}static zs(t){return t=(t=(858993459&(t-=t>>1&1431655765))+(t>>2&858993459))+(t>>4)&252645135,t+=t>>8,0+(t+=t>>16)&63}}class J{constructor(t){this.Rt=t}Us(t){if(null===t)return null;let s=t.Ft.length,e=[];for(let i=0;i<s;i++){e[i]=new k;let s=new d,n=!1;this.js(t.transition(i).target,null,H.EMPTY,e[i],s,new G,n,!1),(0===e[i].length||e[i].contains(J.Ks))&&(e[i]=null)}return e}LOOK(t,s,e){let i=new k,n=null!==(e=e||null)?j(t.Rt,e):null;return this.js(t,s,n,i,new d,new G,!0,!0),i}js(t,s,i,n,r,h,l,u){let a=new m({state:t,alt:0,context:i},null);if(!r.has(a)){if(r.add(a),t===s){if(null===i)return void n.Tt(e.EPSILON);if(i.Cs()&&u)return void n.Tt(e.EOF)}if(t instanceof v){if(null===i)return void n.Tt(e.EPSILON);if(i.Cs()&&u)return void n.Tt(e.EOF);if(i!==H.EMPTY){let e=h.get(t.Pt);try{h.clear(t.Pt);for(let t=0;t<i.length;t++){let e=this.Rt.states[i.Os(t)];this.js(e,s,i.getParent(t),n,r,h,l,u)}}finally{e&&h.set(t.Pt)}return}}for(let a=0;a<t.Ft.length;a++){let c=t.Ft[a];if(c.constructor===C){if(h.get(c.target.Pt))continue;let t=V.create(i,c.ts.dt);try{h.set(c.target.Pt),this.js(c.target,s,t,n,r,h,l,u)}finally{h.clear(c.target.Pt)}}else if(c instanceof R)l?this.js(c.target,s,i,n,r,h,l,u):n.Tt(J.Ks);else if(c.qt)this.js(c.target,s,i,n,r,h,l,u);else if(c.constructor===N)n.addRange(e.S,this.Rt.Ws);else{let t=c.label;null!==t&&(c instanceof b&&(t=t.vt(e.S,this.Rt.Ws)),n.yt(t))}}}}}J.Ks=e.p;class ${constructor(t,s){this.Gs=t,this.Ws=s,this.states=[],this.Js=[],this.$s=[],this.Qs=null,this.Xs={},this.Ys=null,this.Zs=null,this.te=[]}se(t,s){return new J(this).LOOK(t,null,s)}ee(t){return null!==t.Dt||(t.Dt=this.se(t,null),t.Dt.readOnly=!0),t.Dt}ie(t,s){return void 0===s?this.ee(t):this.se(t,s)}ne(t){null!==t&&(t.Rt=this,t.dt=this.states.length),this.states.push(t)}re(t){this.states[t.dt]=null}he(t){return this.Js.push(t),t.le=this.Js.length-1,t.le}ue(t){return 0===this.Js.length?null:this.Js[t]}ae(t,s){if(t<0||t>=this.states.length)throw"Invalid state number.";let i=this.states[t],n=this.ie(i);if(!n.contains(e.EPSILON))return n;let r=new k;for(r.yt(n),r.At(e.EPSILON);null!==s&&s.vs>=0&&n.contains(e.EPSILON);){let t=this.states[s.vs].Ft[0];n=this.ie(t.ts),r.yt(n),r.At(e.EPSILON),s=s.ys}return n.contains(e.EPSILON)&&r.Tt(e.EOF),r}}$.ce=0;class Q extends y{constructor(){super(),this.Ot=y.BASIC}}class X extends y{constructor(){return super(),this.le=-1,this.oe=!1,this}}class Y extends X{constructor(){return super(),this.fe=null,this}}class Z extends y{constructor(){return super(),this.Ot=y.Kt,this.de=null,this}}class tt extends y{constructor(){return super(),this.Ot=y.$t,this.ge=null,this}}class st extends y{constructor(){return super(),this.Ot=y.Ht,this.we=null,this.pe=!1,this}}class et extends X{constructor(){return super(),this.Ot=y.Ut,this}}class it extends X{constructor(){return super(),this.Ot=y.Jt,this}}class nt extends y{constructor(){return super(),this.Ot=y.Wt,this}}class rt extends X{constructor(){return super(),this.Ot=y.Gt,this.ge=null,this.xe=null,this}}class ht extends Y{constructor(){return super(),this.Ot=y.Vt,this.ge=null,this}}class lt extends Y{constructor(){return super(),this.Ot=y.zt,this}}class ut extends Y{constructor(){return super(),this.Ot=y.Bt,this}}class at extends A{constructor(t,s){super(t),this.Se=s,this.label=this.me(),this.ss=A.ATOM}me(){let t=new k;return t.Tt(this.Se),t}matches(t,s,e){return this.Se===t}toString(){return this.Se}}class ct extends A{constructor(t,s,e){super(t),this.ss=A.RANGE,this.start=s,this.stop=e,this.label=this.me()}me(){let t=new k;return t.addRange(this.start,this.stop),t}matches(t,s,e){return t>=this.start&&t<=this.stop}toString(){return"'"+String.fromCharCode(this.start)+"'..'"+String.fromCharCode(this.stop)+"'"}}class ot extends A{constructor(t,s,e,i){super(t),this.ss=A.ACTION,this.Pt=s,this.Te=void 0===e?-1:e,this.ke=void 0!==i&&i,this.qt=!0}matches(t,s,e){return!1}toString(){return"action_"+this.Pt+":"+this.Te}}class ft extends A{constructor(t,s){super(t),this.ss=A.EPSILON,this.qt=!0,this.ye=s}matches(t,s,e){return!1}toString(){return"epsilon"}}class dt extends g{constructor(t,s,e){super(),this.Pt=void 0===t?-1:t,this.ve=void 0===s?-1:s,this.ke=void 0!==e&&e}evaluate(t,s){let e=this.ke?s:null;return t.Ae(e,this.Pt,this.ve)}_(t){t.update(this.Pt,this.ve,this.ke)}equals(t){return this===t||t instanceof dt&&this.Pt===t.Pt&&this.ve===t.ve&&this.ke===t.ke}toString(){return"{"+this.Pt+":"+this.ve+"}?"}}g.NONE=new dt;class gt extends R{constructor(t,s,e,i){super(t),this.ss=A.PREDICATE,this.Pt=s,this.ve=e,this.ke=i,this.qt=!0}matches(t,s,e){return!1}Ce(){return new dt(this.Pt,this.ve,this.ke)}toString(){return"pred_"+this.Pt+":"+this.ve}}class wt extends g{constructor(t){super(),this.ht=void 0===t?0:t}evaluate(t,s){return t.Ee(s,this.ht)}et(t,s){return t.Ee(s,this.ht)?g.NONE:null}lt(t){return this.ht-t.ht}_(t){t.update(this.ht)}equals(t){return this===t||t instanceof wt&&this.ht===t.ht}toString(){return"{"+this.ht+">=prec}?"}}g.PrecedencePredicate=wt;class pt extends R{constructor(t,s){super(t),this.ss=A.PRECEDENCE,this.ht=s,this.qt=!0}matches(t,s,e){return!1}Ce(){return new wt(this.ht)}toString(){return this.ht+" >= _p"}}class xt{constructor(t){void 0===t&&(t=null),this.readOnly=!1,this.be=null===t||t.be,this.Ne=null!==t&&t.Ne}}xt.Re=new xt,xt.Re.readOnly=!0;class St{constructor(t){this.Le=t,this.Oe=!1}q(){let t=new u;return this._(t),t.finish()}_(t){t.update(this.Le)}equals(t){return this===t}}class mt extends St{constructor(){super(6)}Pe(t){t.Ie()}toString(){return"skip"}}mt.INSTANCE=new mt;class Tt extends St{constructor(t){super(0),this.channel=t}Pe(t){t.Fe=this.channel}_(t){t.update(this.Le,this.channel)}equals(t){return this===t||t instanceof Tt&&this.channel===t.channel}toString(){return"channel("+this.channel+")"}}class kt extends St{constructor(t,s){super(1),this.Pt=t,this.Te=s,this.Oe=!0}Pe(t){t.action(null,this.Pt,this.Te)}_(t){t.update(this.Le,this.Pt,this.Te)}equals(t){return this===t||t instanceof kt&&this.Pt===t.Pt&&this.Te===t.Te}}class yt extends St{constructor(){super(3)}Pe(t){t.De()}toString(){return"more"}}yt.INSTANCE=new yt;class vt extends St{constructor(t){super(7),this.type=t}Pe(t){t.type=this.type}_(t){t.update(this.Le,this.type)}equals(t){return this===t||t instanceof vt&&this.type===t.type}toString(){return"type("+this.type+")"}}class At extends St{constructor(t){super(5),this.mode=t}Pe(t){t._e(this.mode)}_(t){t.update(this.Le,this.mode)}equals(t){return this===t||t instanceof At&&this.mode===t.mode}toString(){return"pushMode("+this.mode+")"}}class Ct extends St{constructor(){super(4)}Pe(t){t.Me()}toString(){return"popMode"}}Ct.INSTANCE=new Ct;class Et extends St{constructor(t){super(2),this.mode=t}Pe(t){t.qe(this.mode)}_(t){t.update(this.Le,this.mode)}equals(t){return this===t||t instanceof Et&&this.mode===t.mode}toString(){return"mode("+this.mode+")"}}function bt(t,s){let e=[];return e[t-1]=s,e.map(function(t){return s})}class Nt{constructor(t){null==t&&(t=xt.Re),this.He=t,this.Be=null,this.Ve=null}ze(t){let s=this.reset(t);this.Ue(s),s&&this.je();let e=this.Ke();this.We(e,s),this.Ge(e,s),this.Je(e);let i=[];return this.$e(e,i,this.Qe.bind(this)),s&&this.$e(e,i,this.Xe.bind(this)),this.Ye(e,i),this.Ze(e),this.ti(e,s),this.si(e),this.be(e),this.He.Ne&&1===e.Gs&&(this.Ne(e),this.be(e)),e}reset(t){if(3===(t.charCodeAt?t.charCodeAt(0):t[0])){let s=function(t){let s=t.charCodeAt(0);return s>1?s-2:s+65534},e=t.split("").map(s);return e[0]=t.charCodeAt(0),this.data=e,this.ei=0,!0}return this.data=t,this.ei=0,!1}je(){let t=0;for(;t++<8;)this.Qe()}Ue(t){let s=this.Qe();if(!t&&4!==s)throw"Could not deserialize ATN with version "+s+" (expected 4)."}Ke(){let t=this.Qe(),s=this.Qe();return new $(t,s)}We(t,s){let e,i,n,r=[],h=[],l=this.Qe();for(let e=0;e<l;e++){let e=this.Qe();if(e===y.p){t.ne(null);continue}let i=this.Qe();s&&65535===i&&(i=-1);let n=this.ii(e,i);if(e===y.$t){let t=this.Qe();r.push([n,t])}else if(n instanceof Y){let t=this.Qe();h.push([n,t])}t.ne(n)}for(e=0;e<r.length;e++)i=r[e],i[0].ge=t.states[i[1]];for(e=0;e<h.length;e++)i=h[e],i[0].fe=t.states[i[1]];let u=this.Qe();for(e=0;e<u;e++)n=this.Qe(),t.states[n].oe=!0;let a=this.Qe();for(e=0;e<a;e++)n=this.Qe(),t.states[n].pe=!0}Ge(t,s){let i,n=this.Qe();for(0===t.Gs&&(t.Ys=bt(n,0)),t.$s=bt(n,0),i=0;i<n;i++){let n=this.Qe();if(t.$s[i]=t.states[n],0===t.Gs){let n=this.Qe();s&&65535===n&&(n=e.EOF),t.Ys[i]=n}}for(t.Qs=bt(n,0),i=0;i<t.states.length;i++){let s=t.states[i];s instanceof v&&(t.Qs[s.Pt]=s,t.$s[s.Pt].we=s)}}Je(t){let s=this.Qe();for(let e=0;e<s;e++){let s=this.Qe();t.te.push(t.states[s])}}$e(t,s,e){let i=this.Qe();for(let t=0;t<i;t++){let t=new k;s.push(t);let i=this.Qe();0!==this.Qe()&&t.Tt(-1);for(let s=0;s<i;s++){let s=e(),i=e();t.addRange(s,i)}}}Ye(t,s){let e,i,n,r,h,l=this.Qe();for(e=0;e<l;e++){let e=this.Qe(),i=this.Qe(),n=this.Qe(),h=this.Qe(),l=this.Qe(),u=this.Qe();r=this.ni(t,n,e,i,h,l,u,s),t.states[e].Mt(r)}for(e=0;e<t.states.length;e++)for(n=t.states[e],i=0;i<n.Ft.length;i++){let s=n.Ft[i];if(!(s instanceof C))continue;let e=-1;t.$s[s.target.Pt].pe&&0===s.ht&&(e=s.target.Pt),r=new ft(s.ts,e),t.Qs[s.target.Pt].Mt(r)}for(e=0;e<t.states.length;e++){if(n=t.states[e],n instanceof Y){if(null===n.fe)throw"IllegalState";if(null!==n.fe.de)throw"IllegalState";n.fe.de=n}if(n instanceof it)for(i=0;i<n.Ft.length;i++)h=n.Ft[i].target,h instanceof ht&&(h.ge=n);else if(n instanceof nt)for(i=0;i<n.Ft.length;i++)h=n.Ft[i].target,h instanceof rt&&(h.ge=n)}}Ze(t){let s=this.Qe();for(let e=0;e<s;e++){let s=this.Qe(),i=t.states[s];t.Js.push(i),i.le=e}}ti(t,s){if(0===t.Gs){let e=this.Qe();t.Zs=bt(e,null);for(let i=0;i<e;i++){let e=this.Qe(),n=this.Qe();s&&65535===n&&(n=-1);let r=this.Qe();s&&65535===r&&(r=-1),t.Zs[i]=this.ri(e,n,r)}}}Ne(t){let s,e=t.$s.length;for(s=0;s<e;s++)t.Ys[s]=t.Ws+s+1;for(s=0;s<e;s++)this.hi(t,s)}hi(t,s){let e,i,n=new ut;n.Pt=s,t.ne(n);let r=new Z;r.Pt=s,t.ne(r),n.fe=r,t.he(n),r.de=n;let h=null,l=null;if(t.$s[s].pe){for(l=null,e=0;e<t.states.length;e++)if(i=t.states[e],this.li(i,s)){l=i,h=i.ge.Ft[0];break}if(null===h)throw"Couldn't identify final state of the precedence rule prefix section."}else l=t.Qs[s];for(e=0;e<t.states.length;e++){i=t.states[e];for(let t=0;t<i.Ft.length;t++){let s=i.Ft[t];s!==h&&s.target===l&&(s.target=r)}}let u=t.$s[s],a=u.Ft.length;for(;a>0;)n.Mt(u.Ft[a-1]),u.Ft=u.Ft.slice(-1);t.$s[s].Mt(new ft(n)),r.Mt(new ft(l));let c=new Q;t.ne(c),c.Mt(new at(r,t.Ys[s])),n.Mt(new ft(c))}li(t,s){if(t.Pt!==s)return null;if(!(t instanceof rt))return null;let e=t.Ft[t.Ft.length-1].target;return e instanceof tt&&e.It&&e.Ft[0].target instanceof v?t:null}si(t){for(let s=0;s<t.states.length;s++){let e=t.states[s];if(e instanceof rt&&t.$s[e.Pt].pe){let t=e.Ft[e.Ft.length-1].target;t instanceof tt&&t.It&&t.Ft[0].target instanceof v&&(e.xe=!0)}}}be(t){if(this.He.be)for(let s=0;s<t.states.length;s++){let e=t.states[s];if(null!==e)if(this.ui(e.It||e.Ft.length<=1),e instanceof ht)this.ui(null!==e.ge);else if(e instanceof rt)if(this.ui(null!==e.ge),this.ui(2===e.Ft.length),e.Ft[0].target instanceof lt)this.ui(e.Ft[1].target instanceof tt),this.ui(!e.oe);else{if(!(e.Ft[0].target instanceof tt))throw"IllegalState";this.ui(e.Ft[1].target instanceof lt),this.ui(e.oe)}else e instanceof nt?(this.ui(1===e.Ft.length),this.ui(e.Ft[0].target instanceof rt)):e instanceof tt?this.ui(null!==e.ge):e instanceof st?this.ui(null!==e.we):e instanceof Y?this.ui(null!==e.fe):e instanceof Z?this.ui(null!==e.de):e instanceof X?this.ui(e.Ft.length<=1||e.le>=0):this.ui(e.Ft.length<=1||e instanceof v)}}ui(t,s){if(!t)throw null==s&&(s="IllegalState"),s}Qe(){return this.data[this.ei++]}Xe(){return this.Qe()|this.Qe()<<16}ni(t,s,i,n,r,h,l,u){let a=t.states[n];switch(s){case A.EPSILON:return new ft(a);case A.RANGE:return new ct(a,0!==l?e.EOF:r,h);case A.RULE:return new C(t.states[r],h,l,a);case A.PREDICATE:return new gt(a,r,h,0!==l);case A.PRECEDENCE:return new pt(a,r);case A.ATOM:return new at(a,0!==l?e.EOF:r);case A.ACTION:return new ot(a,r,h,0!==l);case A.SET:return new E(a,u[r]);case A.Xt:return new b(a,u[r]);case A.WILDCARD:return new N(a);default:throw"The specified transition type: "+s+" is not valid."}}ii(t,s){if(null===this.Be){let t=[];t[y.p]=null,t[y.BASIC]=()=>new Q,t[y.Ht]=()=>new st,t[y.Bt]=()=>new ut,t[y.Vt]=()=>new ht,t[y.zt]=()=>new lt,t[y.Ut]=()=>new et,t[y.jt]=()=>new v,t[y.Kt]=()=>new Z,t[y.Wt]=()=>new nt,t[y.Gt]=()=>new rt,t[y.Jt]=()=>new it,t[y.$t]=()=>new tt,this.Be=t}if(t>this.Be.length||null===this.Be[t])throw"The specified state type "+t+" is not valid.";{let e=this.Be[t]();if(null!==e)return e.Pt=s,e}}ri(t,s,e){if(null===this.Ve){let t=[];t[0]=(t,s)=>new Tt(t),t[1]=(t,s)=>new kt(t,s),t[2]=(t,s)=>new Et(t),t[3]=(t,s)=>yt.INSTANCE,t[4]=(t,s)=>Ct.INSTANCE,t[5]=(t,s)=>new At(t),t[6]=(t,s)=>mt.INSTANCE,t[7]=(t,s)=>new vt(t),this.Ve=t}if(t>this.Ve.length||null===this.Ve[t])throw"The specified lexer action type "+t+" is not valid.";return this.Ve[t](s,e)}}class Rt{ai(t,s,e,i,n,r){}ci(t,s,e,i,n,r,h){}oi(t,s,e,i,n,r){}fi(t,s,e,i,n,r){}}class Lt extends Rt{constructor(){super()}ai(t,s,e,i,n,r){}}Lt.INSTANCE=new Lt;class Ot extends Rt{constructor(t){if(super(),null===t)throw"delegates";return this.di=t,this}ai(t,s,e,i,n,r){this.di.map(h=>h.ai(t,s,e,i,n,r))}ci(t,s,e,i,n,r,h){this.di.map(l=>l.ci(t,s,e,i,n,r,h))}oi(t,s,e,i,n,r){this.di.map(h=>h.oi(t,s,e,i,n,r))}fi(t,s,e,i,n,r){this.di.map(h=>h.fi(t,s,e,i,n,r))}}class Pt{constructor(){this.gi=[Lt.INSTANCE],this.wi=null,this.pi=-1}Ue(t){}xi(t){this.gi.push(t)}Si(){this.gi=[]}mi(){return Object.getPrototypeOf(this).constructor.Ti||[]}ki(){return Object.getPrototypeOf(this).constructor.yi||[]}Ai(){if(!this.Ci){let t=this.mi(),s=this.ki(),e=t.length>s.length?t.length:s.length;this.Ci=[];for(let i=0;i<e;i++)this.Ci[i]=t[i]||s[i]||"<INVALID"}return this.Ci}Ei(){let t=this.Ai();if(null===t)throw"The current recognizer does not provide a list of token names.";let s=this.bi[t];return void 0===s&&(s=t.reduce(function(t,s,e){t[s]=e}),s.EOF=e.EOF,this.bi[t]=s),s}Ni(){let t=this.rs;if(null===t)throw"The current recognizer does not provide a list of rule names.";let s=this.Ri[t];return void 0===s&&(s=t.reduce(function(t,s,e){t[s]=e}),this.Ri[t]=s),s}Li(t){let s=this.Ei()[t];return void 0!==s?s:e.p}Oi(t){return"line "+t.Pi().line+":"+t.Pi().h}Ii(t){if(null===t)return"<no token>";let s=t.text;return null===s&&(s=t.type===e.EOF?"<EOF>":"<"+t.type+">"),s=s.replace("\n","\\n").replace("\r","\\r").replace("\t","\\t"),"'"+s+"'"}Fi(){return this.Di()}Di(){return new Ot(this.gi)}Ae(t,s,e){return!0}Ee(t,s){return!0}get Rt(){return this.wi.Rt}get state(){return this.pi}set state(t){this.pi=t}}Pt.bi={},Pt.Ri={};class It extends e{constructor(t,s,i,n,r){super(),this.source=void 0!==t?t:It._i,this.type=void 0!==s?s:null,this.channel=void 0!==i?i:e.m,this.start=void 0!==n?n:-1,this.stop=void 0!==r?r:-1,this.i=-1,null!==this.source[0]?(this.line=t[0].line,this.h=t[0].h):this.h=-1}clone(){let t=new It(this.source,this.type,this.channel,this.start,this.stop);return t.i=this.i,t.line=this.line,t.h=this.h,t.text=this.text,t}Mi(t){let s=new It(this.source,t,this.channel,this.start,this.stop);return s.i=this.i,s.line=this.line,s.h=this.h,t===e.EOF&&(s.text=""),s}toString(){let t=this.text;return t=null!==t?t.replace(/\n/g,"\\n").replace(/\r/g,"\\r").replace(/\t/g,"\\t"):"<no text>","[@"+this.i+","+this.start+":"+this.stop+"='"+t+"',<"+this.type+">"+(this.channel>0?",channel="+this.channel:"")+","+this.line+":"+this.h+"]"}get text(){if(null!==this.l)return this.l;let t=this.o();if(null===t)return null;let s=t.size;return this.start<s&&this.stop<s?t.P(this.start,this.stop):"<EOF>"}set text(t){this.l=t}}It._i=[null,null];class Ft{}class Dt extends Ft{constructor(t){super(),this.qi=void 0!==t&&t}create(t,s,e,i,n,r,h,l){let u=new It(t,s,i,n,r);return u.line=h,u.h=l,null!==e?u.text=e:this.qi&&null!==t[1]&&(u.text=t[1].P(n,r)),u}Hi(t,s){let e=new It(null,t);return e.text=s,e}}Dt.DEFAULT=new Dt;class _t extends Error{constructor(t){super(t.message),Error.captureStackTrace&&Error.captureStackTrace(this,_t),this.message=t.message,this.Bi=t.Bi,this.input=t.input,this.Vi=t.Vi,this.zi=null,this.Ui=-1,null!==this.Bi&&(this.Ui=this.Bi.state)}ae(){return null!==this.Bi?this.Bi.Rt.ae(this.Ui,this.Vi):null}toString(){return this.message}}class Mt extends _t{constructor(t,s,e,i){super({message:"",Bi:t,input:s,Vi:null}),this.ji=e,this.Ki=i}toString(){let t="";return this.ji>=0&&this.ji<this.input.size&&(t=this.input.P(new T(this.ji,this.ji))),"LexerNoViableAltException"+t}}class qt extends Pt{constructor(t){super(),this.Wi=t,this.Gi=Dt.DEFAULT,this.Ji=[this,t],this.wi=null,this.$i=null,this.Qi=-1,this.Xi=-1,this.Yi=-1,this.Zi=!1,this.Fe=e.m,this.tn=e.p,this.sn=[],this.en=qt.nn,this.l=null}reset(){null!==this.Wi&&this.Wi.seek(0),this.$i=null,this.tn=e.p,this.Fe=e.m,this.Qi=-1,this.Yi=-1,this.Xi=-1,this.l=null,this.Zi=!1,this.en=qt.nn,this.sn=[],this.wi.reset()}rn(){if(null===this.Wi)throw"nextToken requires a non-null input stream.";let t=this.Wi.mark();try{for(;;){if(this.Zi)return this.hn(),this.$i;this.$i=null,this.Fe=e.m,this.Qi=this.Wi.index,this.Yi=this.wi.h,this.Xi=this.wi.line,this.l=null;let t=!1;for(;;){this.tn=e.p;let s=qt.SKIP;try{s=this.wi.match(this.Wi,this.en)}catch(t){if(!(t instanceof _t))throw t;this.ln(t),this.un(t)}if(this.Wi.LA(1)===e.EOF&&(this.Zi=!0),this.tn===e.p&&(this.tn=s),this.tn===qt.SKIP){t=!0;break}if(this.tn!==qt.MORE)break}if(!t)return null===this.$i&&this.emit(),this.$i}}finally{this.Wi.release(t)}}Ie(){this.tn=qt.SKIP}De(){this.tn=qt.MORE}mode(t){this.qe(t)}qe(t){this.en=t}an(){return this.en}cn(){return this.sn}_e(t){this.wi.debug,this.sn.push(this.en),this.qe(t)}Me(){if(0===this.sn.length)throw"Empty Stack";return this.wi.debug,this.qe(this.sn.pop()),this.en}fn(t){this.$i=t}emit(){let t=this.Gi.create(this.Ji,this.tn,this.l,this.Fe,this.Qi,this.dn()-1,this.Xi,this.Yi);return this.fn(t),t}hn(){let t=this.h,s=this.line,i=this.Gi.create(this.Ji,e.EOF,null,e.m,this.Wi.index,this.Wi.index-1,s,t);return this.fn(i),i}dn(){return this.Wi.index}gn(){let t=[],s=this.rn();for(;s.type!==e.EOF;)t.push(s),s=this.rn();return t}ln(t){let s=this.Qi,e=this.Wi.index,i=this.Wi.P(s,e),n="token recognition error at: '"+this.wn(i)+"'";this.Di().ai(this,null,this.Xi,this.Yi,n,t)}wn(t){let s=[];for(let e=0;e<t.length;e++)s.push(t[e]);return s.join("")}pn(t){return t.charCodeAt(0)===e.EOF?"<EOF>":"\n"===t?"\\n":"\t"===t?"\\t":"\r"===t?"\\r":t}xn(t){return"'"+this.pn(t)+"'"}un(t){this.Wi.LA(1)!==e.EOF&&(t instanceof Mt?this.wi.O(this.Wi):this.Wi.O())}get Sn(){return this.Wi}set Sn(t){this.Wi=null,this.Ji=[this,this.Wi],this.reset(),this.Wi=t,this.Ji=[this,this.Wi]}get mn(){return this.Wi.mn}get type(){return this.tn}set type(t){this.tn=t}get line(){return this.wi.line}set line(t){this.wi.line=t}get h(){return this.wi.h}set h(t){this.wi.h=t}get text(){return null!==this.l?this.l:this.wi.P(this.Wi)}set text(t){this.l=t}}function Ht(t){return t.gt()}function Bt(t,s){return t===s||null!==t&&null!==s&&t.wt(s)}qt.nn=0,qt.MORE=-2,qt.SKIP=-3,qt.Tn=e.m,qt.HIDDEN=e.T,qt.kn=0,qt.yn=1114111;class Vt{constructor(t){this.vn=new d(Ht,Bt),this.An=void 0===t||t,this.readOnly=!1,this.Cn=[],this.En=0,this.bn=null,this.Nn=!1,this.Rn=!1,this.Rs=-1}add(t,s){if(void 0===s&&(s=null),this.readOnly)throw"This set is readonly";t.ut!==g.NONE&&(this.Nn=!0),t.ct>0&&(this.Rn=!0);let e=this.vn.$(t);if(e===t)return this.Rs=-1,this.Cn.push(t),!0;let i=!this.An,n=W(e.context,t.context,i,s);return e.ct=Math.max(e.ct,t.ct),t.ot&&(e.ot=!0),e.context=n,!0}Ln(){let t=new d;for(let s=0;s<this.Cn.length;s++)t.add(this.Cn[s].state);return t}On(){let t=[];for(let s=0;s<this.Cn.length;s++){let e=this.Cn[s].ut;e!==g.NONE&&t.push(e.ut)}return t}Pn(t){if(this.readOnly)throw"This set is readonly";if(0!==this.vn.length)for(let s=0;s<this.Cn.length;s++){let e=this.Cn[s];e.context=t.In(e.context)}}addAll(t){for(let s=0;s<t.length;s++)this.add(t[s]);return!1}equals(t){return this===t||t instanceof Vt&&r(this.Cn,t.Cn)&&this.An===t.An&&this.En===t.En&&this.bn===t.bn&&this.Nn===t.Nn&&this.Rn===t.Rn}q(){let t=new u;return t.update(this.Cn),t.finish()}_(t){this.readOnly?(-1===this.Rs&&(this.Rs=this.q()),t.update(this.Rs)):t.update(this.q())}Cs(){return 0===this.Cn.length}contains(t){if(null===this.vn)throw"This method is not implemented for readonly sets.";return this.vn.contains(t)}Fn(t){if(null===this.vn)throw"This method is not implemented for readonly sets.";return this.vn.Fn(t)}clear(){if(this.readOnly)throw"This set is readonly";this.Cn=[],this.Rs=-1,this.vn=new d}Dn(t){this.readOnly=t,t&&(this.vn=null)}toString(){return f(this.Cn)+(this.Nn?",hasSemanticContext="+this.Nn:"")+(this.En!==$.ce?",uniqueAlt="+this.En:"")+(null!==this.bn?",conflictingAlts="+this.bn:"")+(this.Rn?",dipsIntoOuterContext":"")}get items(){return this.Cn}get length(){return this.Cn.length}}class zt{constructor(t,s){return null===t&&(t=-1),null===s&&(s=new Vt),this.dt=t,this.Cn=s,this._n=null,this.Mn=!1,this.qn=0,this.Hn=null,this.Bn=!1,this.Vn=null,this}zn(){let t=new d;if(null!==this.Cn)for(let s=0;s<this.Cn.length;s++){let e=this.Cn[s];t.add(e.alt)}return 0===t.length?null:t}equals(t){return this===t||t instanceof zt&&this.Cn.equals(t.Cn)}toString(){let t=this.dt+":"+this.Cn;return this.Mn&&(t+="=>",null!==this.Vn?t+=this.Vn:t+=this.qn),t}q(){let t=new u;return t.update(this.Cn),t.finish()}}class Ut{constructor(t,s){return this.Rt=t,this.Un=s,this}In(t){if(null===this.Un)return t;let s=new U;return K(t,this.Un,s)}}Ut.ERROR=new zt(2147483647,new Vt);class jt extends Vt{constructor(){super(),this.vn=new d}}class Kt extends m{constructor(t,s){super(t,s);let e=t.Hn||null;return this.Hn=e||(null!==s?s.Hn:null),this.jn=null!==s&&this.Kn(s,this.state),this.gt=Kt.prototype.q,this.wt=Kt.prototype.equals,this}_(t){t.update(this.state.dt,this.alt,this.context,this.ut,this.jn,this.Hn)}equals(t){return this===t||t instanceof Kt&&this.jn===t.jn&&(this.Hn?this.Hn.equals(t.Hn):!t.Hn)&&super.equals(t)}Kn(t,s){return t.jn||s instanceof X&&s.oe}}class Wt extends St{constructor(t,s){super(s.Le),this.offset=t,this.action=s,this.Oe=!0}Pe(t){this.action.Pe(t)}_(t){t.update(this.Le,this.offset,this.action)}equals(t){return this===t||t instanceof Wt&&this.offset===t.offset&&this.action===t.action}}class Gt{constructor(t){return this.Zs=null===t?[]:t,this.Rs=u.M(t),this}Wn(t){let s=null;for(let e=0;e<this.Zs.length;e++)!this.Zs[e].Oe||this.Zs[e]instanceof Wt||(null===s&&(s=this.Zs.concat([])),s[e]=new Wt(t,this.Zs[e]));return null===s?this:new Gt(s)}Pe(t,s,e){let i=!1,n=s.index;try{for(let r=0;r<this.Zs.length;r++){let h=this.Zs[r];if(h instanceof Wt){let t=h.offset;s.seek(e+t),h=h.action,i=e+t!==n}else h.Oe&&(s.seek(n),i=!1);h.Pe(t)}}finally{i&&s.seek(n)}}q(){return this.Rs}_(t){t.update(this.Rs)}equals(t){if(this===t)return!0;if(t instanceof Gt){if(this.Rs!=t.Rs)return!1;if(this.Zs.length!=t.Zs.length)return!1;{let s=this.Zs.length;for(let e=0;e<s;++e)if(!this.Zs[e].equals(t.Zs[e]))return!1;return!0}}return!1}static append(t,s){if(null===t)return new Gt([s]);let e=t.Zs.concat([s]);return new Gt(e)}}function Jt(t){t.index=-1,t.line=0,t.h=-1,t.Gn=null}class $t{constructor(){Jt(this)}reset(){Jt(this)}}class Qt extends Ut{constructor(t,s,e,i){super(s,i),this.Jn=e,this.$n=t,this.ji=-1,this.line=1,this.h=0,this.mode=qt.nn,this.Qn=new $t}Xn(t){this.h=t.h,this.line=t.line,this.mode=t.mode,this.ji=t.ji}match(t,s){this.mode=s;let e=t.mark();try{this.ji=t.index,this.Qn.reset();let e=this.Jn[s];return null===e.Yn?this.Zn(t):this.tr(t,e.Yn)}finally{t.release(e)}}reset(){this.Qn.reset(),this.ji=-1,this.line=1,this.h=0,this.mode=qt.nn}Zn(t){let s=this.Rt.te[this.mode];Qt.debug,this.mode;let e=this.sr(t,s),i=e.Nn;e.Nn=!1;let n=this.er(e);i||(this.Jn[this.mode].Yn=n);let r=this.tr(t,n);return Qt.debug,r}tr(t,s){Qt.debug,s.Mn&&this.ir(this.Qn,t,s);let i=t.LA(1),n=s;for(;;){Qt.debug;let s=this.nr(n,i);if(null===s&&(s=this.rr(t,n,i)),s===Ut.ERROR)break;if(i!==e.EOF&&this.O(t),s.Mn&&(this.ir(this.Qn,t,s),i===e.EOF))break;i=t.LA(1),n=s}return this.hr(this.Qn,t,n.Cn,i)}nr(t,s){if(null===t._n||s<Qt.lr||s>Qt.ur)return null;let e=t._n[s-Qt.lr];return void 0===e&&(e=null),Qt.debug,e}rr(t,s,e){let i=new jt;return this.ar(t,s.Cn,i,e),0===i.items.length?(i.Nn||this.cr(s,e,Ut.ERROR),Ut.ERROR):this.cr(s,e,null,i)}hr(t,s,i,n){if(null!==this.Qn.Gn){let e=t.Gn.Hn;return this.accept(s,e,this.ji,t.index,t.line,t.h),t.Gn.qn}if(n===e.EOF&&s.index===this.ji)return e.EOF;throw new Mt(this.$n,s,this.ji,i)}ar(t,s,i,n){let r=$.ce;for(let h=0;h<s.items.length;h++){let l=s.items[h],u=l.alt===r;if(!u||!l.jn){Qt.debug;for(let s=0;s<l.state.Ft.length;s++){let h=l.state.Ft[s],a=this.dr(h,n);if(null!==a){let s=l.Hn;null!==s&&(s=s.Wn(t.index-this.ji));let h=n===e.EOF,c=new Kt({state:a,Hn:s},l);this.gr(t,c,i,u,!0,h)&&(r=l.alt)}}}}}accept(t,s,e,i,n,r){Qt.debug,t.seek(i),this.line=n,this.h=r,null!==s&&null!==this.$n&&s.Pe(this.$n,t,e)}dr(t,s){return t.matches(s,0,qt.yn)?t.target:null}sr(t,s){let e=H.EMPTY,i=new jt;for(let n=0;n<s.Ft.length;n++){let r=s.Ft[n].target,h=new Kt({state:r,alt:n+1,context:e},null);this.gr(t,h,i,!1,!1,!1)}return i}gr(t,s,e,i,n,r){let h=null;if(Qt.debug,s.state instanceof v){if(Qt.debug&&this.$n,null===s.context||s.context.Ls()){if(null===s.context||s.context.Cs())return e.add(s),!0;e.add(new Kt({state:s.state,context:H.EMPTY},s)),i=!0}if(null!==s.context&&!s.context.Cs())for(let l=0;l<s.context.length;l++)if(s.context.Os(l)!==H.Ps){let u=s.context.getParent(l),a=this.Rt.states[s.context.Os(l)];h=new Kt({state:a,context:u},s),i=this.gr(t,h,e,i,n,r)}return i}s.state.It||i&&s.jn||e.add(s);for(let l=0;l<s.state.Ft.length;l++){let u=s.state.Ft[l];h=this.wr(t,s,u,e,n,r),null!==h&&(i=this.gr(t,h,e,i,n,r))}return i}wr(t,s,i,n,r,h){let l=null;if(i.ss===A.RULE){let t=V.create(s.context,i.ts.dt);l=new Kt({state:i.target,context:t},s)}else{if(i.ss===A.PRECEDENCE)throw"Precedence predicates are not supported in lexers.";if(i.ss===A.PREDICATE)Qt.debug,n.Nn=!0,this.pr(t,i.Pt,i.ve,r)&&(l=new Kt({state:i.target},s));else if(i.ss===A.ACTION)if(null===s.context||s.context.Ls()){let t=Gt.append(s.Hn,this.Rt.Zs[i.Te]);l=new Kt({state:i.target,Hn:t},s)}else l=new Kt({state:i.target},s);else i.ss===A.EPSILON?l=new Kt({state:i.target},s):i.ss!==A.ATOM&&i.ss!==A.RANGE&&i.ss!==A.SET||h&&i.matches(e.EOF,0,qt.yn)&&(l=new Kt({state:i.target},s))}return l}pr(t,s,e,i){if(null===this.$n)return!0;if(!i)return this.$n.Ae(null,s,e);let n=this.h,r=this.line,h=t.index,l=t.mark();try{return this.O(t),this.$n.Ae(null,s,e)}finally{this.h=n,this.line=r,t.seek(h),t.release(l)}}ir(t,s,e){t.index=s.index,t.line=this.line,t.h=this.h,t.Gn=e}cr(t,s,e,i){if(void 0===e&&(e=null),void 0===i&&(i=null),null===e&&null!==i){let t=i.Nn;if(i.Nn=!1,e=this.er(i),t)return e}return s<Qt.lr||s>Qt.ur||(Qt.debug,null===t._n&&(t._n=[]),t._n[s-Qt.lr]=e),e}er(t){let s=new zt(null,t),e=null;for(let s=0;s<t.items.length;s++){let i=t.items[s];if(i.state instanceof v){e=i;break}}null!==e&&(s.Mn=!0,s.Hn=e.Hn,s.qn=this.Rt.Ys[e.state.Pt]);let i=this.Jn[this.mode],n=i.states.get(s);if(null!==n)return n;let r=s;return r.dt=i.states.length,t.Dn(!0),r.Cn=t,i.states.add(r),r}Sr(t){return this.Jn[t]}P(t){return t.P(this.ji,t.index-1)}O(t){t.LA(1)==="\n".charCodeAt(0)?(this.line+=1,this.h=0):this.h+=1,t.O()}mr(t){return-1===t?"EOF":"'"+String.fromCharCode(t)+"'"}}Qt.debug=!1,Qt.Tr=!1,Qt.lr=0,Qt.ur=127;class Xt{constructor(t,s){this.alt=s,this.kr=t}toString(){return"("+this.kr+", "+this.alt+")"}}class Yt{constructor(){this.data={}}get(t){return this.data["k-"+t]||null}set(t,s){this.data["k-"+t]=s}values(){return Object.keys(this.data).filter(t=>t.startsWith("k-")).map(t=>this.data[t],this)}}let Zt={SLL:0,LL:1,yr:2,vr:function(t,s){if(Zt.Ar(s))return!0;if(t===Zt.SLL&&s.Nn){let t=new Vt;for(let e=0;e<s.items.length;e++){let i=s.items[e];i=new m({ut:g.NONE},i),t.add(i)}s=t}let e=Zt.Cr(s);return Zt.Er(e)&&!Zt.br(s)},Nr:function(t){for(let s=0;s<t.items.length;s++)if(t.items[s].state instanceof v)return!0;return!1},Ar:function(t){for(let s=0;s<t.items.length;s++)if(!(t.items[s].state instanceof v))return!1;return!0},Rr:function(t){return Zt.Lr(t)},Or:function(t){return!Zt.Pr(t)},Pr:function(t){for(let s=0;s<t.length;s++)if(1===t[s].length)return!0;return!1},Er:function(t){for(let s=0;s<t.length;s++)if(t[s].length>1)return!0;return!1},Ir:function(t){let s=null;for(let e=0;e<t.length;e++){let i=t[e];if(null===s)s=i;else if(i!==s)return!1}return!0},Fr:function(t){let s=Zt.Dr(t);return 1===s.length?s.minValue():$.ce},Dr:function(t){let s=new G;return t.map(function(t){s.or(t)}),s},Cr:function(t){let s=new U;return s.U=function(t){u.M(t.state.dt,t.context)},s.j=function(t,s){return t.state.dt===s.state.dt&&t.context.equals(s.context)},t.items.map(function(t){let e=s.get(t);null===e&&(e=new G,s.set(t,e)),e.set(t.alt)}),s.getValues()},_r:function(t){let s=new Yt;return t.items.map(function(t){let e=s.get(t.state);null===e&&(e=new G,s.set(t.state,e)),e.set(t.alt)}),s},br:function(t){let s=Zt._r(t).values();for(let t=0;t<s.length;t++)if(1===s[t].length)return!0;return!1},Lr:function(t){let s=null;for(let e=0;e<t.length;e++){let i=t[e].minValue();if(null===s)s=i;else if(s!==i)return $.ce}return s}};const ts=Zt;class ss extends _t{constructor(t,s,e,i,n,r){r=r||t.Mr,i=i||t.qr(),e=e||t.qr(),s=s||t.o(),super({message:"",Bi:t,input:s,Vi:r}),this.Ki=n,this.Hr=e,this.zi=i}}class es{constructor(t){this.Br=t||U,this.Vr=new this.Br}get(t,s){let e=this.Vr.get(t)||null;return null===e?null:e.get(s)||null}set(t,s,e){let i=this.Vr.get(t)||null;null===i&&(i=new this.Br,this.Vr.set(t,i)),i.set(s,e)}}const is={ATN:$,ATNDeserializer:Nt,LexerATNSimulator:Qt,ParserATNSimulator:class extends Ut{constructor(t,s,e,i){super(s,i),this.zr=t,this.Jn=e,this.Ur=ts.LL,this.Wi=null,this.jr=0,this.Kr=null,this.Wr=null,this.Gr=null,this.debug=!1,this.Jr=!1,this.$r=!1,this.Fs=!1,this.Tr=!1,this.Qr=!1}reset(){}Xr(t,s,e){this.debug||this.Fs,this.Wi=t,this.jr=t.index,this.Kr=e;let i=this.Jn[s];this.Wr=i;let n=t.mark(),r=t.index;try{let s;if(s=i.Yr?i.Zr(this.zr.th()):i.Yn,null===s){null===e&&(e=q.EMPTY),this.debug;let t=!1,n=this.sr(i.sh,q.EMPTY,t);i.Yr?(i.Yn.Cn=n,n=this.eh(n),s=this.er(i,new zt(null,n)),i.ih(this.zr.th(),s)):(s=this.er(i,new zt(null,n)),i.Yn=s)}let n=this.tr(i,s,t,r,e);return this.debug,n}finally{this.Wr=null,this.Gr=null,t.seek(r),t.release(n)}}tr(t,s,i,n,r){let h;this.debug||this.Fs;let l=s;this.debug;let u=i.LA(1);for(;;){let s=this.nr(l,u);if(null===s&&(s=this.rr(t,l,u)),s===Ut.ERROR){let t=this.nh(i,r,l.Cn,n);if(i.seek(n),h=this.rh(l.Cn,r),h!==$.ce)return h;throw t}if(s.Bn&&this.Ur!==ts.SLL){let e=null;if(null!==s.Vn){this.debug;let t=i.index;if(t!==n&&i.seek(n),e=this.hh(s.Vn,r,!0),1===e.length)return this.debug,e.minValue();t!==n&&i.seek(t)}this.Tr;let l=!0,u=this.sr(t.sh,r,l);return this.oi(t,e,s.Cn,n,i.index),h=this.uh(t,s,u,i,n,r),h}if(s.Mn){if(null===s.Vn)return s.qn;let e=i.index;i.seek(n);let h=this.hh(s.Vn,r,!0);if(0===h.length)throw this.nh(i,r,s.Cn,n);return 1===h.length||this.ci(t,s,n,e,!1,h,s.Cn),h.minValue()}l=s,u!==e.EOF&&(i.O(),u=i.LA(1))}}nr(t,s){let e=t._n;return null===e?null:e[s+1]||null}rr(t,s,e){let i=this.ah(s.Cn,e,!1);if(null===i)return this.cr(t,s,e,Ut.ERROR),Ut.ERROR;let n=new zt(null,i),r=this.Fr(i);return this.debug&&ts.Cr(i),r!==$.ce?(n.Mn=!0,n.Cn.En=r,n.qn=r):ts.vr(this.Ur,i)&&(n.Cn.bn=this.oh(i),n.Bn=!0,n.Mn=!0,n.qn=n.Cn.bn.minValue()),n.Mn&&n.Cn.Nn&&(this.fh(n,this.Rt.ue(t.le)),null!==n.Vn&&(n.qn=$.ce)),n=this.cr(t,s,e,n),n}fh(t,s){let e=s.Ft.length,i=this.dh(t.Cn),n=this.gh(i,t.Cn,e);null!==n?(t.Vn=this.wh(i,n),t.qn=$.ce):t.qn=i.minValue()}uh(t,s,i,n,r,h){this.debug||this.Fs;let l,u=!1,a=i;n.seek(r);let c=n.LA(1),o=-1;for(;;){if(l=this.ah(a,c,!0),null===l){let t=this.nh(n,h,a,r);n.seek(r);let s=this.rh(a,h);if(s!==$.ce)return s;throw t}let t=ts.Cr(l);if(this.debug,l.En=this.Fr(l),l.En!==$.ce){o=l.En;break}if(this.Ur!==ts.yr){if(o=ts.Rr(t),o!==$.ce)break}else if(ts.Or(t)&&ts.Ir(t)){u=!0,o=ts.Lr(t);break}a=l,c!==e.EOF&&(n.O(),c=n.LA(1))}return l.En!==$.ce?(this.fi(t,o,l,r,n.index),o):(this.ci(t,s,r,n.index,u,null,l),o)}ah(t,s,i){this.debug,null===this.Gr&&(this.Gr=new es);let n=new Vt(i),r=null;for(let h=0;h<t.items.length;h++){let l=t.items[h];if(this.debug,l.state instanceof v)(i||s===e.EOF)&&(null===r&&(r=[]),r.push(l),this.$r);else for(let t=0;t<l.state.Ft.length;t++){let e=l.state.Ft[t],i=this.dr(e,s);if(null!==i){let t=new m({state:i},l);n.add(t,this.Gr),this.$r}}}let h=null;if(null===r&&s!==e.EOF&&(1===n.items.length||this.Fr(n)!==$.ce)&&(h=n),null===h){h=new Vt(i);let t=new d,r=s===e.EOF;for(let s=0;s<n.items.length;s++)this.gr(n.items[s],h,t,!1,i,r)}if(s===e.EOF&&(h=this.ph(h,h===n)),!(null===r||i&&ts.Nr(h)))for(let t=0;t<r.length;t++)h.add(r[t],this.Gr);return this.Fs,0===h.items.length?null:h}ph(t,s){if(ts.Ar(t))return t;let i=new Vt(t.An);for(let n=0;n<t.items.length;n++){let r=t.items[n];if(r.state instanceof v)i.add(r,this.Gr);else if(s&&r.state.It&&this.Rt.ie(r.state).contains(e.EPSILON)){let t=this.Rt.Qs[r.state.Pt];i.add(new m({state:t},r),this.Gr)}}return i}sr(t,s,e){let i=j(this.Rt,s),n=new Vt(e);this.Fs;for(let s=0;s<t.Ft.length;s++){let r=t.Ft[s].target,h=new m({state:r,alt:s+1,context:i},null),l=new d;this.gr(h,n,l,!0,e,!1)}return n}eh(t){let s,e=[],i=new Vt(t.An);for(let n=0;n<t.items.length;n++){if(s=t.items[n],1!==s.alt)continue;let r=s.ut.et(this.zr,this.Kr);null!==r&&(e[s.state.dt]=s.context,r!==s.ut?i.add(new m({ut:r},s),this.Gr):i.add(s,this.Gr))}for(let n=0;n<t.items.length;n++)if(s=t.items[n],1!==s.alt){if(!s.ot){let t=e[s.state.dt]||null;if(null!==t&&t.equals(s.context))continue}i.add(s,this.Gr)}return i}dr(t,s){return t.matches(s,0,this.Rt.Ws)?t.target:null}gh(t,s,e){let i=[];for(let e=0;e<s.items.length;e++){let n=s.items[e];t.get(n.alt)&&(i[n.alt]=g.rt(i[n.alt]||null,n.ut))}let n=0;for(let t=1;t<e+1;t++){let s=i[t]||null;null===s?i[t]=g.NONE:s!==g.NONE&&(n+=1)}return 0===n&&(i=null),this.debug,i}wh(t,s){let e=[],i=!1;for(let n=1;n<s.length;n++){let r=s[n];null!==t&&t.get(n)&&e.push(new Xt(r,n)),r!==g.NONE&&(i=!0)}return i?e:null}rh(t,s){let e=this.xh(t,s),i=e[0],n=e[1],r=this.Sh(i);return r!==$.ce||n.items.length>0&&(r=this.Sh(n),r!==$.ce)?r:$.ce}Sh(t){let s=[];for(let e=0;e<t.items.length;e++){let i=t.items[e];(i.ct>0||i.state instanceof v&&i.context.Ls())&&s.indexOf(i.alt)<0&&s.push(i.alt)}return 0===s.length?$.ce:Math.min.apply(null,s)}xh(t,s){let e=new Vt(t.An),i=new Vt(t.An);for(let n=0;n<t.items.length;n++){let r=t.items[n];r.ut!==g.NONE?r.ut.evaluate(this.zr,s)?e.add(r):i.add(r):e.add(r)}return[e,i]}hh(t,s,e){let i=new G;for(let n=0;n<t.length;n++){let r=t[n];if(r.kr===g.NONE){if(i.set(r.alt),!e)break;continue}let h=r.kr.evaluate(this.zr,s);if(this.debug||this.Tr,h&&(this.debug||this.Tr,i.set(r.alt),!e))break}return i}gr(t,s,e,i,n,r){this.mh(t,s,e,i,n,0,r)}mh(t,s,e,i,n,r,h){if(this.Fs||this.Jr,t.state instanceof v){if(!t.context.Cs()){for(let l=0;l<t.context.length;l++){if(t.context.Os(l)===H.Ps){if(n){s.add(new m({state:t.state,context:H.EMPTY},t),this.Gr);continue}this.debug,this.Th(t,s,e,i,n,r,h);continue}let u=this.Rt.states[t.context.Os(l)],a=t.context.getParent(l),c={state:u,alt:t.alt,context:a,ut:t.ut},o=new m(c,null);o.ct=t.ct,this.mh(o,s,e,i,n,r-1,h)}return}if(n)return void s.add(t,this.Gr);this.debug}this.Th(t,s,e,i,n,r,h)}Th(t,s,e,i,n,r,h){let l=t.state;l.It||s.add(t,this.Gr);for(let u=0;u<l.Ft.length;u++){if(0===u&&this.kh(t))continue;let a=l.Ft[u],c=i&&!(a instanceof ot),o=this.wr(t,a,c,0===r,n,h);if(null!==o){let i=r;if(t.state instanceof v){if(null!==this.Wr&&this.Wr.Yr&&a.ye===this.Wr.sh.Pt&&(o.ot=!0),o.ct+=1,e.$(o)!==o)continue;s.Rn=!0,i-=1,this.debug}else{if(!a.qt&&e.$(o)!==o)continue;a instanceof C&&i>=0&&(i+=1)}this.mh(o,s,e,c,n,i,h)}}}kh(t){let s=t.state;if(s.Ot!==y.Gt)return!1;if(s.Ot!==y.Gt||!s.xe||t.context.Cs()||t.context.Ls())return!1;let e=t.context.length;for(let i=0;i<e;i++)if(this.Rt.states[t.context.Os(i)].Pt!==s.Pt)return!1;let i=s.Ft[0].target.fe.dt,n=this.Rt.states[i];for(let i=0;i<e;i++){let e=t.context.Os(i),r=this.Rt.states[e];if(1!==r.Ft.length||!r.Ft[0].qt)return!1;let h=r.Ft[0].target;if(!(r.Ot===y.Kt&&h===s||r===n||h===n||h.Ot===y.Kt&&1===h.Ft.length&&h.Ft[0].qt&&h.Ft[0].target===s))return!1}return!0}yh(t){return null!==this.zr&&t>=0?this.zr.rs[t]:"<rule "+t+">"}wr(t,s,i,n,r,h){switch(s.ss){case A.RULE:return this.Ah(t,s);case A.PRECEDENCE:return this.Ch(t,s,i,n,r);case A.PREDICATE:return this.Eh(t,s,i,n,r);case A.ACTION:return this.bh(t,s);case A.EPSILON:return new m({state:s.target},t);case A.ATOM:case A.RANGE:case A.SET:return h&&s.matches(e.EOF,0,1)?new m({state:s.target},t):null;default:return null}}bh(t,s){return this.debug&&(-1===s.Te||s.Te),new m({state:s.target},t)}Ch(t,s,e,i,n){this.debug&&this.zr;let r=null;if(e&&i)if(n){let e=this.Wi.index;this.Wi.seek(this.jr);let i=s.Ce().evaluate(this.zr,this.Kr);this.Wi.seek(e),i&&(r=new m({state:s.target},t))}else{let e=g.it(t.ut,s.Ce());r=new m({state:s.target,ut:e},t)}else r=new m({state:s.target},t);return this.debug,r}Eh(t,s,e,i,n){this.debug&&this.zr;let r=null;if(e&&(s.ke&&i||!s.ke))if(n){let e=this.Wi.index;this.Wi.seek(this.jr);let i=s.Ce().evaluate(this.zr,this.Kr);this.Wi.seek(e),i&&(r=new m({state:s.target},t))}else{let e=g.it(t.ut,s.Ce());r=new m({state:s.target,ut:e},t)}else r=new m({state:s.target},t);return this.debug,r}Ah(t,s){this.debug;let e=s.ts,i=V.create(t.context,e.dt);return new m({state:s.target,context:i},t)}oh(t){let s=ts.Cr(t);return ts.Dr(s)}dh(t){let s=null;return t.En!==$.ce?(s=new G,s.set(t.En)):s=t.bn,s}mr(t){return t===e.EOF?"EOF":null===this.zr||null===this.zr.Ti||t>=this.zr.Ti.length&&t>=this.zr.yi.length?""+t:(this.zr.Ti[t]||this.zr.yi[t])+"<"+t+">"}Nh(t){return this.mr(t.LA(1))}Rh(t){let s=t.Lh();for(let t=0;t<s.length;t++){let e=s[t],i="no edges";if(e.state.Ft.length>0){let t=e.state.Ft[0];t instanceof at?i="Atom "+this.mr(t.label):t instanceof E&&(i=(t instanceof b?"~":"")+"Set "+t.set)}}}nh(t,s,e,i){return new ss(this.zr,t,t.get(i),t.LT(1),e,s)}Fr(t){let s=$.ce;for(let e=0;e<t.items.length;e++){let i=t.items[e];if(s===$.ce)s=i.alt;else if(i.alt!==s)return $.ce}return s}cr(t,s,e,i){return this.debug,null===i?null:(i=this.er(t,i),null===s||e<-1||e>this.Rt.Ws||(null===s._n&&(s._n=[]),s._n[e+1]=i,this.debug&&(null===this.zr||this.zr.Ti,null===this.zr||this.zr.yi)),i)}er(t,s){if(s===Ut.ERROR)return s;let e=t.states.get(s);return null!==e?(this.Fs,e):(s.dt=t.states.length,s.Cn.readOnly||(s.Cn.Pn(this),s.Cn.Dn(!0)),this.Fs,t.states.add(s),this.debug,s)}oi(t,s,e,i,n){(this.debug||this.Qr)&&new T(i,n+1),null!==this.zr&&this.zr.Di().oi(this.zr,t,i,n,s,e)}fi(t,s,e,i,n){(this.debug||this.Qr)&&new T(i,n+1),null!==this.zr&&this.zr.Di().fi(this.zr,t,i,n,s,e)}ci(t,s,e,i,n,r,h){(this.debug||this.Qr)&&new T(e,i+1),null!==this.zr&&this.zr.Di().ci(this.zr,t,e,i,n,r,h)}},PredictionContextCache:class{constructor(){this.cache=new U}add(t){if(t===H.EMPTY)return H.EMPTY;let s=this.cache.get(t)||null;return null!==s?s:(this.cache.set(t,t),t)}get(t){return this.cache.get(t)||null}get length(){return this.cache.length}}};class ns{constructor(t,s,e){this.Oh=t,this.Ti=s||[],this.yi=e||[]}toString(){if(null===this.Oh.Yn)return null;let t="",s=this.Oh.Ph();for(let e=0;e<s.length;e++){let i=s[e];if(null!==i._n){let s=i._n.length;for(let e=0;e<s;e++){let s=i._n[e]||null;null!==s&&2147483647!==s.dt&&(t=t.concat(this.Ih(i)),t=t.concat("-"),t=t.concat(this.Fh(e)),t=t.concat("->"),t=t.concat(this.Ih(s)),t=t.concat("\n"))}}}return 0===t.length?null:t}Fh(t){return 0===t?"EOF":null!==this.Ti||null!==this.yi?this.Ti[t-1]||this.yi[t-1]:String.fromCharCode(t-1)}Ih(t){let s=(t.Mn?":":"")+"s"+t.dt+(t.Bn?"^":"");return t.Mn?null!==t.Vn?s+"=>"+f(t.Vn):s+"=>"+t.qn.toString():s}}class rs extends ns{constructor(t){super(t,null)}Fh(t){return"'"+String.fromCharCode(t)+"'"}}const hs={DFA:class{constructor(t,s){if(void 0===s&&(s=0),this.sh=t,this.le=s,this.Dh=new d,this.Yn=null,this.Yr=!1,t instanceof rt&&t.xe){this.Yr=!0;let t=new zt(null,new Vt);t._n=[],t.Mn=!1,t.Bn=!1,this.Yn=t}}Zr(t){if(!this.Yr)throw"Only precedence DFAs may contain a precedence start state.";return t<0||t>=this.Yn._n.length?null:this.Yn._n[t]||null}ih(t,s){if(!this.Yr)throw"Only precedence DFAs may contain a precedence start state.";t<0||(this.Yn._n[t]=s)}_h(t){if(this.Yr!==t){if(this.Dh=new d,t){let t=new zt(null,new Vt);t._n=[],t.Mn=!1,t.Bn=!1,this.Yn=t}else this.Yn=null;this.Yr=t}}Ph(){return this.Dh.values().sort(function(t,s){return t.dt-s.dt})}toString(t,s){return t=t||null,s=s||null,null===this.Yn?"":new ns(this,t,s).toString()}Mh(){return null===this.Yn?"":new rs(this).toString()}get states(){return this.Dh}}},ls={ParseTreeVisitor:class{qh(t){return Array.isArray(t)?t.map(function(t){return t.accept(this)},this):t.accept(this)}Ns(t){return t.children?this.qh(t.children):null}Hh(t){}Bh(t){}}},us={RecognitionException:_t,NoViableAltException:ss};class as extends _t{constructor(t,s,e){super({message:cs(s,e||null),Bi:t,input:t.o(),Vi:t.Mr});let i=t.wi.Rt.states[t.state].Ft[0];i instanceof gt?(this.Pt=i.Pt,this.Vh=i.ve):(this.Pt=0,this.Vh=0),this.zh=s,this.zi=t.qr()}}function cs(t,s){return null!==s?s:"failed predicate: {"+t+"}?"}class os extends _t{constructor(t){super({message:"",Bi:t,input:t.o(),Vi:t.Mr}),this.zi=t.qr()}}class fs{reset(t){}Uh(t){}un(t,s){}sync(t){}jh(t){}reportError(t){}}class ds extends fs{constructor(){super(),this.Kh=!1,this.Wh=-1,this.Gh=null,this.Jh=null,this.$h=0}reset(t){this.Qh(t)}Xh(t){this.Kh=!0}jh(t){return this.Kh}Qh(t){this.Kh=!1,this.Gh=null,this.Wh=-1}Yh(t){this.Qh(t)}reportError(t,s){this.jh(t)||(this.Xh(t),s instanceof ss?this.Zh(t,s):s instanceof os?this.tl(t,s):s instanceof as?this.sl(t,s):t.el(s.Pi(),s.getMessage(),s))}un(t,s){this.Wh===t.o().index&&null!==this.Gh&&this.Gh.indexOf(t.state)>=0&&t.O(),this.Wh=t.Wi.index,null===this.Gh&&(this.Gh=[]),this.Gh.push(t.state);let e=this.il(t);this.nl(t,e)}sync(t){if(this.jh(t))return;let s=t.wi.Rt.states[t.state],i=t.rl().LA(1),n=t.Rt.ie(s);if(n.contains(i))return this.Jh=null,void(this.$h=y.Lt);if(n.contains(e.EPSILON))null===this.Jh&&(this.Jh=t.Mr,this.hl=t.pi);else switch(s.Ot){case y.Bt:case y.zt:case y.Vt:case y.Gt:if(null!==this.ll(t))return;throw new os(t);case y.Jt:case y.Wt:{this.ul(t);let s=new k;s.yt(t.ae());let e=s.yt(this.il(t));this.nl(t,e)}}}Zh(t,s){let i,n=t.rl();i=null!==n?s.Hr.type===e.EOF?"<EOF>":n.P(new T(s.Hr.i,s.zi.i)):"<unknown input>";let r="no viable alternative at input "+this.al(i);t.el(r,s.zi,s)}tl(t,s){let e="mismatched input "+this.Ii(s.zi)+" expecting "+s.ae().toString(t.Ti,t.yi);t.el(e,s.zi,s)}sl(t,s){let e="rule "+t.rs[t.Mr.Pt]+" "+s.message;t.el(e,s.zi,s)}ul(t){if(this.jh(t))return;this.Xh(t);let s=t.qr(),e="extraneous input "+this.Ii(s)+" expecting "+this.ae(t).toString(t.Ti,t.yi);t.el(e,s,null)}cl(t){if(this.jh(t))return;this.Xh(t);let s=t.qr(),e="missing "+this.ae(t).toString(t.Ti,t.yi)+" at "+this.Ii(s);t.el(e,s,null)}Uh(t){let s=this.ll(t);if(null!==s)return t.O(),s;if(this.ol(t))return this.fl(t);throw new os(t)}ol(t){let s=t.rl().LA(1),e=t.wi.Rt,i=e.states[t.state].Ft[0].target;return!!e.ie(i,t.Mr).contains(s)&&(this.cl(t),!0)}ll(t){let s=t.rl().LA(2);if(this.ae(t).contains(s)){this.ul(t),t.O();let s=t.qr();return this.Yh(t),s}return null}fl(t){let s,i=t.qr(),n=this.ae(t).first();s=n===e.EOF?"<missing EOF>":"<missing "+t.Ti[n]+">";let r=i,h=t.rl().LT(-1);return r.type===e.EOF&&null!==h&&(r=h),t.dl().create(r.source,n,s,e.m,-1,-1,r.line,r.h)}ae(t){return t.ae()}Ii(t){if(null===t)return"<no token>";let s=t.text;return null===s&&(s=t.type===e.EOF?"<EOF>":"<"+t.type+">"),this.al(s)}al(t){return"'"+(t=(t=(t=t.replace(/\n/g,"\\n")).replace(/\r/g,"\\r")).replace(/\t/g,"\\t"))+"'"}il(t){let s=t.wi.Rt,i=t.Mr,n=new k;for(;null!==i&&i.vs>=0;){let t=s.states[i.vs].Ft[0],e=s.ie(t.ts);n.yt(e),i=i.ys}return n.At(e.EPSILON),n}nl(t,s){let i=t.rl().LA(1);for(;i!==e.EOF&&!s.contains(i);)t.O(),i=t.rl().LA(1)}}class gs{Hh(t){}Bh(t){}gl(t){}wl(t){}}class ws extends gs{constructor(t){super(),this.zr=t}gl(t){}Hh(t){}wl(t){}}class ps extends Pt{constructor(t){super(),this.Wi=null,this.pl=new ds,this.xl=[],this.xl.push(0),this.Mr=null,this.Sl=!0,this.ml=null,this.Tl=null,this.kl=0,this.yl(t)}reset(){null!==this.Wi&&this.Wi.seek(0),this.pl.reset(this),this.Mr=null,this.kl=0,this.vl(!1),this.xl=[],this.xl.push(0),null!==this.wi&&this.wi.reset()}match(t){let s=this.qr();return s.type===t?(this.pl.Yh(this),this.O()):(s=this.pl.Uh(this),this.Sl&&-1===s.i&&this.Mr.Al(s)),s}Cl(){let t=this.qr();return t.type>0?(this.pl.Yh(this),this.O()):(t=this.pl.Uh(this),this.Sl&&-1===t.i&&this.Mr.Al(t)),t}El(){return this.Tl||[]}bl(t){if(null===t)throw"listener";null===this.Tl&&(this.Tl=[]),this.Tl.push(t)}Nl(t){if(null!==this.Tl){let s=this.Tl.indexOf(t);s>=0&&this.Tl.splice(s,1),0===this.Tl.length&&(this.Tl=null)}}Rl(){this.Tl=null}Ll(){if(null!==this.Tl){let t=this.Mr;this.Tl.forEach(function(s){s.gl(t),t.Ol(s)})}}Pl(){if(null!==this.Tl){let t=this.Mr;this.Tl.slice(0).reverse().forEach(function(s){t.Il(s),s.wl(t)})}}dl(){return this.Wi.Fl.Gi}Dl(t){this.Wi.Fl.Gi=t}_l(){let t=this.Ml();if(null===t)throw"The current parser does not support an ATN with bypass alternatives.";let s=this.ql[t];if(null===s){let e=new xt;e.Ne=!0,s=new Nt(e).ze(t),this.ql[t]=s}return s}o(){return this.rl()}yl(t){this.Hl(t)}rl(){return this.Wi}Hl(t){this.Wi=null,this.reset(),this.Wi=t}get Bl(){return this.kl}qr(){return this.Wi.LT(1)}el(t,s,e){e=e||null,null===(s=s||null)&&(s=this.qr()),this.kl+=1;let i=s.line,n=s.h;this.Di().ai(this,s,i,n,t,e)}O(){let t=this.qr();t.type!==e.EOF&&this.o().O();let s=null!==this.Tl&&this.Tl.length>0;if(this.Sl||s){let e;e=this.pl.jh(this)?this.Mr.Al(t):this.Mr.Vl(t),e.vs=this.state,s&&this.Tl.forEach(function(t){e instanceof D||void 0!==e.zl&&e.zl()?t.Bh(e):e instanceof F&&t.Hh(e)})}return t}Ul(){null!==this.Mr.ys&&this.Mr.ys.jl(this.Mr)}Ol(t,s,e){this.state=s,this.Mr=t,this.Mr.start=this.Wi.LT(1),this.Sl&&this.Ul(),this.Ll()}Il(){this.Mr.stop=this.Wi.LT(-1),this.Pl(),this.state=this.Mr.vs,this.Mr=this.Mr.ys}Kl(t,s){t.bs(s),this.Sl&&this.Mr!==t&&null!==this.Mr.ys&&(this.Mr.ys.Wl(),this.Mr.ys.jl(t)),this.Mr=t}th(){return 0===this.xl.length?-1:this.xl[this.xl.length-1]}Gl(t,s,e,i){this.state=s,this.xl.push(i),this.Mr=t,this.Mr.start=this.Wi.LT(1),this.Ll()}Jl(t,s,e){let i=this.Mr;i.ys=t,i.vs=s,i.stop=this.Wi.LT(-1),this.Mr=t,this.Mr.start=i.start,this.Sl&&this.Mr.jl(i),this.Ll()}$l(t){this.xl.pop(),this.Mr.stop=this.Wi.LT(-1);let s=this.Mr,e=this.El();if(null!==e&&e.length>0)for(;this.Mr!==t;)this.Pl(),this.Mr=this.Mr.ys;else this.Mr=t;s.ys=t,this.Sl&&null!==t&&t.jl(s)}Ql(t){let s=this.Mr;for(;null!==s;){if(s.Pt===t)return s;s=s.ys}return null}Ee(t,s){return s>=this.xl[this.xl.length-1]}Xl(t){return!1}Yl(t){let s=this.wi.Rt,i=this.Mr,n=s.states[this.state],r=s.ie(n);if(r.contains(t))return!0;if(!r.contains(e.EPSILON))return!1;for(;null!==i&&i.vs>=0&&r.contains(e.EPSILON);){let e=s.states[i.vs].Ft[0];if(r=s.ie(e.ts),r.contains(t))return!0;i=i.ys}return!(!r.contains(e.EPSILON)||t!==e.EOF)}ae(){return this.wi.Rt.ae(this.state,this.Mr)}Zl(){let t=this.wi.Rt,s=t.states[this.state];return t.ie(s)}tu(t){let s=this.Ni()[t];return null!==s?s:-1}su(t){null===(t=t||null)&&(t=this.Mr);let s=[];for(;null!==t;){let e=t.Pt;e<0?s.push("n/a"):s.push(this.rs[e]),t=t.ys}return s}eu(){return this.wi.Jn.toString()}iu(){let t=!1;for(let s=0;s<this.wi.Jn.length;s++){let e=this.wi.Jn[s];e.states.length>0&&(this.ru.nu("Decision "+e.le+":"),this.ru.print(e.toString(this.Ti,this.yi)),t=!0)}}hu(){return this.Wi.hu()}vl(t){t?(null!==this.ml&&this.Nl(this.ml),this.ml=new ws(this),this.bl(this.ml)):(this.Nl(this.ml),this.ml=null)}}ps.ql={};class xs extends F{constructor(t){super(),this.ys=null,this.fs=t}us(t){return null}lu(){return this.fs}getParent(){return this.ys}ds(){return this.fs}Es(){if(null===this.fs)return T.xt;let t=this.fs.i;return new T(t,t)}ls(){return 0}accept(t){return t.Hh(this)}P(){return this.fs.text}toString(){return this.fs.type===e.EOF?"<EOF>":this.fs.text}}class Ss extends xs{constructor(t){super(t)}zl(){return!0}accept(t){return t.Bh(this)}}class ms extends q{constructor(t,s){super(t,s),this.children=null,this.start=null,this.stop=null,this.exception=null}uu(t){this.ys=t.ys,this.vs=t.vs,this.children=null,this.start=t.start,this.stop=t.stop,t.children&&(this.children=[],t.children.map(function(t){t instanceof Ss&&(this.children.push(t),t.ys=this)},this))}Ol(t){}Il(t){}jl(t){return null===this.children&&(this.children=[]),this.children.push(t),t}Wl(){null!==this.children&&this.children.pop()}Vl(t){let s=new xs(t);return this.jl(s),s.ys=this,s}Al(t){let s=new Ss(t);return this.jl(s),s.ys=this,s}us(t,s){if(s=s||null,null===this.children||t<0||t>=this.children.length)return null;if(null===s)return this.children[t];for(let e=0;e<this.children.length;e++){let i=this.children[e];if(i instanceof s){if(0===t)return i;t-=1}}return null}au(t,s){if(null===this.children||s<0||s>=this.children.length)return null;for(let e=0;e<this.children.length;e++){let i=this.children[e];if(i instanceof F&&i.fs.type===t){if(0===s)return i;s-=1}}return null}cu(t){if(null===this.children)return[];{let s=[];for(let e=0;e<this.children.length;e++){let i=this.children[e];i instanceof F&&i.fs.type===t&&s.push(i)}return s}}ou(t,s){return this.us(s,t)}fu(t){if(null===this.children)return[];{let s=[];for(let e=0;e<this.children.length;e++){let i=this.children[e];i instanceof t&&s.push(i)}return s}}ls(){return null===this.children?0:this.children.length}Es(){return null===this.start||null===this.stop?T.xt:new T(this.start.i,this.stop.i)}}q.EMPTY=new ms;const Ts={Rt:is,Oh:hs,error:us,du:ls,Lexer:qt,Parser:ps,ParserRuleContext:ms},ks=(new Ts.Rt.ATNDeserializer).ze([4,0,304,3219,6,-1,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,2,5,7,5,2,6,7,6,2,7,7,7,2,8,7,8,2,9,7,9,2,10,7,10,2,11,7,11,2,12,7,12,2,13,7,13,2,14,7,14,2,15,7,15,2,16,7,16,2,17,7,17,2,18,7,18,2,19,7,19,2,20,7,20,2,21,7,21,2,22,7,22,2,23,7,23,2,24,7,24,2,25,7,25,2,26,7,26,2,27,7,27,2,28,7,28,2,29,7,29,2,30,7,30,2,31,7,31,2,32,7,32,2,33,7,33,2,34,7,34,2,35,7,35,2,36,7,36,2,37,7,37,2,38,7,38,2,39,7,39,2,40,7,40,2,41,7,41,2,42,7,42,2,43,7,43,2,44,7,44,2,45,7,45,2,46,7,46,2,47,7,47,2,48,7,48,2,49,7,49,2,50,7,50,2,51,7,51,2,52,7,52,2,53,7,53,2,54,7,54,2,55,7,55,2,56,7,56,2,57,7,57,2,58,7,58,2,59,7,59,2,60,7,60,2,61,7,61,2,62,7,62,2,63,7,63,2,64,7,64,2,65,7,65,2,66,7,66,2,67,7,67,2,68,7,68,2,69,7,69,2,70,7,70,2,71,7,71,2,72,7,72,2,73,7,73,2,74,7,74,2,75,7,75,2,76,7,76,2,77,7,77,2,78,7,78,2,79,7,79,2,80,7,80,2,81,7,81,2,82,7,82,2,83,7,83,2,84,7,84,2,85,7,85,2,86,7,86,2,87,7,87,2,88,7,88,2,89,7,89,2,90,7,90,2,91,7,91,2,92,7,92,2,93,7,93,2,94,7,94,2,95,7,95,2,96,7,96,2,97,7,97,2,98,7,98,2,99,7,99,2,100,7,100,2,101,7,101,2,102,7,102,2,103,7,103,2,104,7,104,2,105,7,105,2,106,7,106,2,107,7,107,2,108,7,108,2,109,7,109,2,110,7,110,2,111,7,111,2,112,7,112,2,113,7,113,2,114,7,114,2,115,7,115,2,116,7,116,2,117,7,117,2,118,7,118,2,119,7,119,2,120,7,120,2,121,7,121,2,122,7,122,2,123,7,123,2,124,7,124,2,125,7,125,2,126,7,126,2,127,7,127,2,128,7,128,2,129,7,129,2,130,7,130,2,131,7,131,2,132,7,132,2,133,7,133,2,134,7,134,2,135,7,135,2,136,7,136,2,137,7,137,2,138,7,138,2,139,7,139,2,140,7,140,2,141,7,141,2,142,7,142,2,143,7,143,2,144,7,144,2,145,7,145,2,146,7,146,2,147,7,147,2,148,7,148,2,149,7,149,2,150,7,150,2,151,7,151,2,152,7,152,2,153,7,153,2,154,7,154,2,155,7,155,2,156,7,156,2,157,7,157,2,158,7,158,2,159,7,159,2,160,7,160,2,161,7,161,2,162,7,162,2,163,7,163,2,164,7,164,2,165,7,165,2,166,7,166,2,167,7,167,2,168,7,168,2,169,7,169,2,170,7,170,2,171,7,171,2,172,7,172,2,173,7,173,2,174,7,174,2,175,7,175,2,176,7,176,2,177,7,177,2,178,7,178,2,179,7,179,2,180,7,180,2,181,7,181,2,182,7,182,2,183,7,183,2,184,7,184,2,185,7,185,2,186,7,186,2,187,7,187,2,188,7,188,2,189,7,189,2,190,7,190,2,191,7,191,2,192,7,192,2,193,7,193,2,194,7,194,2,195,7,195,2,196,7,196,2,197,7,197,2,198,7,198,2,199,7,199,2,200,7,200,2,201,7,201,2,202,7,202,2,203,7,203,2,204,7,204,2,205,7,205,2,206,7,206,2,207,7,207,2,208,7,208,2,209,7,209,2,210,7,210,2,211,7,211,2,212,7,212,2,213,7,213,2,214,7,214,2,215,7,215,2,216,7,216,2,217,7,217,2,218,7,218,2,219,7,219,2,220,7,220,2,221,7,221,2,222,7,222,2,223,7,223,2,224,7,224,2,225,7,225,2,226,7,226,2,227,7,227,2,228,7,228,2,229,7,229,2,230,7,230,2,231,7,231,2,232,7,232,2,233,7,233,2,234,7,234,2,235,7,235,2,236,7,236,2,237,7,237,2,238,7,238,2,239,7,239,2,240,7,240,2,241,7,241,2,242,7,242,2,243,7,243,2,244,7,244,2,245,7,245,2,246,7,246,2,247,7,247,2,248,7,248,2,249,7,249,2,250,7,250,2,251,7,251,2,252,7,252,2,253,7,253,2,254,7,254,2,255,7,255,2,256,7,256,2,257,7,257,2,258,7,258,2,259,7,259,2,260,7,260,2,261,7,261,2,262,7,262,2,263,7,263,2,264,7,264,2,265,7,265,2,266,7,266,2,267,7,267,2,268,7,268,2,269,7,269,2,270,7,270,2,271,7,271,2,272,7,272,2,273,7,273,2,274,7,274,2,275,7,275,2,276,7,276,2,277,7,277,2,278,7,278,2,279,7,279,2,280,7,280,2,281,7,281,2,282,7,282,2,283,7,283,2,284,7,284,2,285,7,285,2,286,7,286,2,287,7,287,2,288,7,288,2,289,7,289,2,290,7,290,2,291,7,291,2,292,7,292,2,293,7,293,2,294,7,294,2,295,7,295,2,296,7,296,2,297,7,297,2,298,7,298,2,299,7,299,2,300,7,300,2,301,7,301,2,302,7,302,2,303,7,303,2,304,7,304,1,0,1,0,1,1,1,1,1,2,1,2,1,3,1,3,1,4,1,4,1,5,1,5,1,6,1,6,1,7,1,7,1,8,1,8,1,9,1,9,1,10,1,10,1,11,1,11,1,12,1,12,1,13,1,13,1,14,1,14,1,15,1,15,1,16,1,16,1,17,1,17,1,18,1,18,1,18,1,19,1,19,1,20,1,20,1,20,1,21,1,21,1,21,1,21,1,21,1,21,1,21,3,21,663,8,21,1,22,1,22,1,22,1,22,1,22,1,22,3,22,671,8,22,1,23,1,23,1,23,1,24,1,24,1,24,1,25,1,25,1,25,4,25,682,8,25,11,25,12,25,683,3,25,686,8,25,1,25,1,25,5,25,690,8,25,10,25,12,25,693,9,25,1,25,1,25,4,25,697,8,25,11,25,12,25,698,3,25,701,8,25,1,25,1,25,1,25,4,25,706,8,25,11,25,12,25,707,3,25,710,8,25,1,25,1,25,5,25,714,8,25,10,25,12,25,717,9,25,1,25,1,25,4,25,721,8,25,11,25,12,25,722,3,25,725,8,25,3,25,727,8,25,1,25,1,25,3,25,731,8,25,1,25,1,25,3,25,735,8,25,3,25,737,8,25,1,26,1,26,1,26,1,26,5,26,743,8,26,10,26,12,26,746,9,26,1,26,1,26,1,26,1,26,1,26,5,26,753,8,26,10,26,12,26,756,9,26,1,26,1,26,1,26,1,26,1,26,5,26,763,8,26,10,26,12,26,766,9,26,1,26,3,26,769,8,26,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,1,27,3,27,814,8,27,1,28,1,28,1,28,1,28,1,28,1,28,1,28,3,28,823,8,28,1,29,1,29,1,29,1,29,1,29,1,29,1,29,3,29,832,8,29,1,30,1,30,1,30,1,30,1,30,1,31,1,31,1,31,1,31,1,32,1,32,1,32,1,32,1,32,1,32,1,33,1,33,1,33,1,33,1,33,1,34,1,34,1,35,1,35,1,35,1,36,1,36,1,36,1,36,1,36,1,36,1,37,1,37,1,37,1,37,1,37,1,38,1,38,1,38,1,38,1,38,1,38,1,39,1,39,1,39,1,39,1,40,1,40,1,40,1,40,1,40,1,41,1,41,1,41,1,41,1,41,1,41,1,41,1,42,1,42,1,42,1,42,1,42,1,42,1,42,1,43,1,43,1,43,1,43,1,43,1,43,1,43,1,43,1,43,1,44,1,44,1,44,1,44,1,44,1,44,1,44,1,45,1,45,1,45,1,45,1,45,1,45,1,45,1,45,1,45,1,45,1,46,1,46,1,46,1,46,1,46,1,46,1,46,1,46,1,46,1,46,1,47,1,47,1,47,1,47,1,47,1,47,1,47,1,48,1,48,1,48,1,48,1,48,1,48,1,49,1,49,1,49,1,49,1,50,1,50,1,50,1,50,1,51,1,51,1,51,1,51,1,51,1,52,1,52,1,52,1,52,1,52,1,53,1,53,1,53,1,53,1,54,1,54,1,54,1,54,1,54,1,54,1,54,1,54,1,55,1,55,1,55,1,55,1,55,1,55,1,55,1,55,1,56,1,56,1,56,1,56,1,57,1,57,1,57,1,57,1,57,1,58,1,58,1,58,1,58,1,59,1,59,1,59,1,59,1,59,1,60,1,60,1,60,1,60,1,61,1,61,1,61,1,61,1,61,1,62,1,62,1,62,1,62,1,63,1,63,1,63,1,63,1,63,1,64,1,64,1,64,1,64,1,65,1,65,1,65,1,65,1,65,1,66,1,66,1,66,1,66,1,67,1,67,1,67,1,67,1,67,1,68,1,68,1,68,1,68,1,68,1,69,1,69,1,69,1,69,1,69,1,69,1,70,1,70,1,70,1,70,1,70,1,71,1,71,1,71,1,71,1,71,1,71,1,72,1,72,1,72,1,72,1,72,1,73,1,73,1,73,1,73,1,73,1,73,1,74,1,74,1,74,1,74,1,74,1,75,1,75,1,75,1,75,1,75,1,75,1,76,1,76,1,76,1,76,1,76,1,77,1,77,1,77,1,77,1,78,1,78,1,78,1,78,1,78,1,79,1,79,1,79,1,79,1,79,1,79,1,79,1,79,1,79,1,79,1,79,1,80,1,80,1,80,1,80,1,81,1,81,1,81,1,82,1,82,1,82,1,82,1,82,1,82,1,83,1,83,1,83,1,83,1,83,1,83,1,83,1,84,1,84,1,84,1,84,1,85,1,85,1,85,1,85,1,85,1,86,1,86,1,86,1,86,1,86,1,86,1,86,1,87,1,87,1,87,1,87,1,88,1,88,1,88,1,88,1,88,1,88,1,88,1,88,1,88,1,88,1,88,3,88,1160,8,88,1,89,1,89,1,89,1,89,1,89,1,90,1,90,1,90,1,90,1,90,1,90,1,91,1,91,1,91,1,91,1,91,1,92,1,92,1,92,1,92,1,92,1,92,1,92,1,92,1,93,1,93,1,93,1,93,1,93,1,93,1,93,1,93,1,94,1,94,1,94,1,94,1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,1,95,3,95,1210,8,95,1,96,1,96,1,96,1,96,1,96,1,96,1,96,1,97,1,97,1,97,1,97,1,97,1,98,1,98,1,98,1,98,1,98,1,98,1,98,1,98,1,98,1,98,1,98,1,98,3,98,1236,8,98,1,99,1,99,1,99,1,99,1,99,1,99,1,100,1,100,1,100,1,100,1,100,1,100,1,100,1,100,1,100,1,100,1,101,1,101,1,101,1,101,1,101,1,101,1,101,1,101,1,101,1,101,1,101,1,101,1,101,1,101,1,101,1,101,1,101,1,101,1,101,1,101,3,101,1274,8,101,1,102,1,102,1,102,1,102,1,102,1,102,1,102,1,102,1,102,1,102,1,102,1,102,1,102,1,102,1,102,1,102,1,102,1,102,3,102,1294,8,102,1,103,1,103,1,103,1,103,1,103,1,103,1,103,1,104,1,104,1,104,1,104,1,104,1,104,1,104,1,104,1,104,1,104,1,105,1,105,1,105,1,105,1,105,1,105,1,105,1,105,1,105,1,105,1,105,1,105,1,105,1,105,1,105,1,105,1,105,1,105,1,105,1,105,1,105,1,105,3,105,1335,8,105,1,106,1,106,1,106,1,106,1,106,1,106,1,106,1,106,1,106,1,106,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,107,1,108,1,108,1,108,1,108,1,108,1,108,1,108,1,108,1,108,1,108,1,108,1,109,1,109,1,109,1,109,1,109,1,109,1,109,1,109,1,109,1,109,1,109,1,110,1,110,1,110,1,110,1,110,1,110,1,110,1,110,1,110,1,110,1,110,1,110,1,110,1,111,1,111,1,111,1,111,1,111,1,111,1,111,1,111,1,111,1,111,1,111,1,111,1,111,1,111,1,111,1,111,1,112,1,112,1,112,1,112,1,112,1,112,1,112,1,112,1,112,1,112,1,112,1,112,1,112,1,113,1,113,1,113,1,113,1,113,1,113,1,113,1,113,1,113,1,113,1,113,1,113,1,113,1,113,1,113,1,113,1,114,1,114,1,114,1,114,1,114,1,114,1,114,1,114,1,114,1,114,1,114,1,114,1,114,1,114,1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,115,1,116,1,116,1,116,1,116,1,116,1,117,1,117,1,118,1,118,1,118,1,118,1,119,1,119,1,119,1,119,1,120,1,120,1,120,1,120,1,120,1,121,1,121,1,121,1,121,1,121,1,121,1,121,1,122,1,122,1,122,1,122,1,122,1,122,1,122,1,123,1,123,1,123,1,123,1,123,1,123,1,123,1,123,1,124,1,124,1,124,1,124,1,124,1,124,1,124,1,124,1,125,1,125,1,125,1,125,1,125,1,125,1,125,1,125,1,126,1,126,1,126,1,126,1,126,1,126,1,126,1,126,1,127,1,127,1,127,1,127,1,127,1,127,1,127,1,127,1,128,1,128,1,128,1,128,1,128,1,128,1,128,1,128,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,129,1,130,1,130,1,130,1,130,1,130,1,130,1,130,1,130,1,131,1,131,1,131,1,131,1,131,1,131,1,131,1,131,1,132,1,132,1,132,1,132,1,132,1,132,1,132,1,132,1,133,1,133,1,133,1,133,1,133,1,133,1,133,1,133,1,134,1,134,1,134,1,134,1,134,1,134,1,134,1,134,1,135,1,135,1,135,1,135,1,135,1,135,1,135,1,135,1,136,1,136,1,136,1,136,1,136,1,136,1,136,1,137,1,137,1,137,1,137,1,137,1,137,1,137,1,137,1,137,1,137,1,137,1,137,1,137,1,137,1,138,1,138,1,138,1,138,1,138,1,138,1,139,1,139,1,139,1,139,1,139,1,139,1,140,1,140,1,140,1,140,1,140,1,140,1,140,1,140,1,141,1,141,1,141,1,141,1,141,1,141,1,142,1,142,1,142,1,142,1,143,1,143,1,143,1,143,1,143,1,143,1,144,1,144,1,144,1,144,1,144,1,144,1,144,1,145,1,145,1,145,1,145,1,145,1,145,1,146,1,146,1,146,1,146,1,146,1,147,1,147,1,147,1,147,1,147,1,147,1,148,1,148,1,148,1,148,1,148,1,148,1,148,1,149,1,149,1,149,1,149,1,149,1,149,1,149,1,149,1,150,1,150,1,150,1,150,1,150,1,150,1,150,1,150,1,151,1,151,1,151,1,151,1,152,1,152,1,152,1,152,1,152,1,152,1,152,1,152,1,152,1,152,1,152,1,152,1,152,1,152,3,152,1730,8,152,1,153,1,153,1,153,1,153,1,153,1,153,1,153,1,153,1,153,1,153,1,153,1,153,3,153,1744,8,153,1,154,1,154,1,154,1,154,1,154,1,154,1,154,1,154,1,154,1,154,1,155,1,155,1,155,1,155,1,155,1,155,1,155,1,155,1,155,1,155,1,155,1,155,1,155,1,155,1,155,1,155,1,155,1,155,1,155,1,155,1,155,1,155,1,155,1,155,1,155,1,155,3,155,1782,8,155,1,156,1,156,1,156,1,156,1,156,1,156,1,156,1,156,1,156,1,156,1,157,1,157,1,157,1,157,1,157,1,157,1,157,1,157,1,158,1,158,1,158,1,158,1,158,1,158,1,158,1,158,1,158,1,158,1,158,1,158,1,159,1,159,1,159,1,159,1,159,1,159,1,159,1,159,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,160,1,161,1,161,1,161,1,161,1,161,1,161,1,162,1,162,1,162,1,162,1,162,1,163,1,163,1,163,1,164,1,164,1,164,1,164,1,164,1,164,1,164,1,164,1,165,1,165,1,165,1,165,1,165,1,166,1,166,1,166,1,166,1,166,1,166,1,166,1,166,1,166,1,167,1,167,1,167,1,167,1,167,1,167,1,167,1,167,1,167,1,167,1,168,1,168,1,168,1,168,1,168,1,168,1,168,1,168,1,168,1,168,1,168,1,169,1,169,1,169,1,169,1,169,1,169,1,169,1,169,1,169,1,170,1,170,1,170,1,170,1,170,1,171,1,171,1,171,1,171,1,171,1,172,1,172,1,172,1,172,1,172,1,172,1,172,1,172,1,172,1,172,1,172,1,173,1,173,1,173,1,173,1,173,1,173,1,173,1,173,1,174,1,174,1,174,1,175,1,175,1,175,1,175,1,176,1,176,1,176,1,176,1,176,1,176,1,177,1,177,1,177,1,177,1,177,1,177,1,177,1,177,1,177,1,177,1,177,1,177,1,178,1,178,1,178,1,178,1,178,1,178,1,178,1,178,1,178,1,178,1,179,1,179,1,179,1,179,1,179,1,179,1,180,1,180,1,180,1,180,1,181,1,181,1,181,1,182,1,182,1,182,1,182,1,183,1,183,1,183,1,183,1,184,1,184,1,184,1,184,1,185,1,185,1,185,1,185,1,185,1,185,1,185,1,185,1,185,1,185,1,185,1,185,1,186,1,186,1,186,1,186,1,186,1,186,1,186,1,186,1,187,1,187,1,187,1,187,1,187,1,187,1,188,1,188,1,188,1,188,1,188,1,188,1,188,1,188,1,188,1,188,1,188,1,189,1,189,1,189,1,189,1,189,1,189,1,189,1,189,1,189,1,189,1,189,1,189,1,189,1,189,1,189,1,189,1,189,3,189,2041,8,189,1,190,1,190,1,190,1,190,1,191,1,191,1,191,1,191,1,191,1,191,1,191,1,192,1,192,1,192,1,192,1,193,1,193,1,193,1,193,1,193,1,194,1,194,1,194,1,194,1,194,1,194,1,194,1,194,1,195,1,195,1,195,1,195,1,195,1,195,1,195,1,195,1,196,1,196,1,196,1,196,1,196,1,196,1,196,1,196,1,197,1,197,1,197,1,197,1,197,1,197,1,198,1,198,1,198,1,198,1,199,1,199,1,199,1,199,1,199,1,199,1,199,1,200,1,200,1,200,1,200,1,200,1,200,1,200,1,200,1,200,1,200,1,200,1,200,3,200,2116,8,200,1,201,1,201,1,201,1,201,1,201,1,201,1,201,1,201,1,201,1,201,1,201,1,201,1,201,3,201,2131,8,201,1,202,1,202,1,202,1,202,1,202,1,202,1,203,1,203,1,203,1,203,1,203,1,203,1,203,1,203,3,203,2147,8,203,1,204,1,204,1,204,1,204,1,204,1,204,1,204,1,204,1,204,3,204,2158,8,204,1,205,1,205,1,205,1,205,1,206,1,206,1,206,1,206,1,206,1,206,1,206,1,206,1,206,1,207,1,207,1,207,1,207,1,208,1,208,1,208,1,208,1,208,1,208,1,208,1,209,1,209,1,209,1,209,1,209,1,209,1,209,1,210,1,210,1,210,1,210,1,210,1,210,1,211,1,211,1,211,1,211,1,211,1,211,1,211,1,211,1,211,1,211,1,212,1,212,1,212,1,212,1,212,1,212,1,212,1,212,1,213,1,213,1,213,1,213,1,213,1,213,1,213,1,214,1,214,1,214,1,214,1,214,1,214,1,214,1,214,1,214,1,214,1,214,1,214,1,215,1,215,1,215,1,215,1,215,1,215,1,216,1,216,1,216,1,216,1,216,1,216,1,216,1,216,1,217,1,217,1,217,1,217,1,217,1,217,1,217,1,217,1,218,1,218,1,218,1,218,1,218,1,218,1,218,1,218,1,219,1,219,1,219,1,219,1,219,1,219,1,219,1,219,1,220,1,220,1,220,1,220,1,220,1,220,1,220,1,220,1,220,1,221,1,221,1,221,1,221,1,221,1,221,1,221,1,221,1,221,1,222,1,222,1,222,1,222,1,222,1,222,1,222,1,222,1,223,1,223,1,223,1,223,1,223,1,223,1,224,1,224,1,224,1,224,1,224,1,225,1,225,1,225,1,225,1,225,1,226,1,226,1,226,1,226,1,226,1,227,1,227,1,227,1,227,1,227,1,227,1,228,1,228,1,228,1,228,1,228,1,228,1,228,1,228,1,229,1,229,1,229,1,229,1,229,1,229,1,229,1,229,1,229,1,230,1,230,1,230,1,230,1,230,1,230,1,231,1,231,1,231,1,231,1,231,1,231,1,232,1,232,1,232,1,232,1,232,1,232,1,232,1,232,1,232,1,232,1,232,1,232,1,232,1,232,1,232,1,232,1,232,1,232,1,232,1,232,1,232,1,232,1,232,1,232,3,232,2378,8,232,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,1,233,3,233,2406,8,233,1,234,1,234,1,234,1,234,1,234,1,234,1,234,1,234,1,234,1,234,1,234,1,234,1,234,1,234,1,234,1,234,1,234,3,234,2425,8,234,1,235,1,235,1,235,1,235,1,235,1,235,1,235,1,235,1,235,1,235,1,235,1,235,1,235,1,236,1,236,1,236,1,236,1,236,1,236,1,236,1,236,1,236,3,236,2449,8,236,1,237,1,237,1,237,1,237,1,237,1,237,1,238,1,238,1,238,1,238,1,238,1,238,1,238,1,238,1,238,1,238,1,238,1,238,1,238,1,238,3,238,2471,8,238,1,239,1,239,1,239,1,239,1,239,1,239,1,239,1,239,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,240,1,241,1,241,1,241,1,241,1,241,1,241,1,241,1,241,1,241,1,241,1,241,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,242,1,243,1,243,1,243,1,243,1,243,1,243,1,244,1,244,1,244,1,244,1,244,1,244,1,244,1,244,1,244,1,244,1,244,1,244,1,245,1,245,1,245,1,245,1,245,1,245,1,245,1,245,1,245,1,245,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,246,1,247,1,247,1,247,1,247,1,247,1,247,1,247,1,247,1,247,1,247,1,248,1,248,1,248,1,248,1,248,1,248,1,248,1,248,1,249,1,249,1,249,1,249,1,249,1,249,1,249,1,249,1,249,1,250,1,250,1,250,1,250,1,250,1,250,1,250,1,250,1,250,1,250,1,250,1,251,1,251,1,251,1,251,1,251,1,251,1,251,1,251,1,251,1,251,1,251,1,252,1,252,1,252,1,252,1,252,1,252,1,252,1,252,1,252,1,252,1,252,1,252,1,252,1,252,1,252,1,252,1,252,1,252,1,252,1,252,1,252,1,252,1,252,1,252,1,252,1,252,1,252,1,252,3,252,2626,8,252,1,253,1,253,1,253,1,253,1,253,1,253,1,253,1,253,1,253,1,253,1,253,1,253,1,253,1,253,1,253,1,253,1,253,1,253,1,253,1,253,1,253,3,253,2649,8,253,1,254,1,254,1,254,1,254,1,254,1,254,1,254,1,254,1,254,1,254,1,255,1,255,1,255,1,255,1,255,1,255,1,256,1,256,1,256,1,256,1,256,1,256,1,256,1,257,1,257,1,257,1,257,1,257,1,257,1,257,1,257,1,258,1,258,1,258,1,258,1,258,1,258,1,258,1,258,1,259,1,259,1,259,1,259,1,259,1,259,1,259,1,259,1,259,1,260,1,260,1,260,1,260,1,260,1,260,1,260,1,260,1,260,1,260,1,260,1,260,1,260,1,260,1,260,3,260,2714,8,260,1,261,1,261,1,261,1,261,1,261,1,261,1,261,1,261,1,261,1,261,1,261,1,261,1,261,1,261,1,261,1,261,1,261,3,261,2733,8,261,1,262,1,262,1,262,1,262,1,262,1,262,1,262,1,262,1,262,1,262,1,262,1,262,1,262,1,262,1,262,3,262,2750,8,262,1,263,1,263,1,263,1,263,1,263,1,263,1,263,1,263,1,263,1,263,1,263,1,263,1,263,1,263,1,263,1,263,1,263,1,263,1,263,3,263,2771,8,263,1,264,1,264,1,264,1,264,1,264,1,264,1,264,1,264,1,264,1,264,1,264,3,264,2784,8,264,1,265,1,265,1,265,1,265,1,265,1,265,1,265,1,265,1,265,3,265,2795,8,265,1,266,1,266,1,266,1,266,1,266,1,266,1,266,1,266,1,266,1,266,1,266,1,266,1,266,1,266,1,266,1,266,1,266,3,266,2814,8,266,1,267,1,267,1,267,1,267,1,267,1,267,1,267,1,267,1,267,1,267,1,267,1,267,1,267,1,267,1,267,1,267,1,267,3,267,2833,8,267,1,268,1,268,1,268,1,268,1,268,1,269,1,269,1,269,1,269,1,269,1,270,1,270,1,270,1,270,1,271,1,271,1,271,1,271,1,272,1,272,1,272,1,272,1,272,1,272,1,272,1,272,1,273,1,273,1,273,1,273,1,273,1,273,1,273,1,273,1,273,1,273,1,273,1,273,1,273,1,274,1,274,1,274,1,274,1,274,1,274,1,274,1,274,1,274,1,274,1,274,1,274,1,274,1,274,1,274,1,274,1,274,1,274,1,274,1,274,1,274,1,274,1,274,3,274,2897,8,274,1,275,1,275,1,275,1,275,1,275,1,275,1,275,1,275,1,275,1,275,1,275,1,275,1,275,1,275,1,275,1,275,1,275,1,275,1,275,1,275,1,275,1,275,1,275,1,275,1,275,3,275,2924,8,275,1,276,1,276,1,276,1,276,1,276,1,276,1,276,1,276,1,276,1,276,1,276,1,276,1,276,1,276,1,276,1,276,1,276,1,276,1,276,3,276,2945,8,276,1,277,1,277,1,277,1,277,1,277,1,277,1,277,1,277,1,277,1,277,1,277,3,277,2958,8,277,1,278,1,278,1,278,1,278,1,278,1,278,1,278,1,278,1,278,1,278,1,278,1,278,1,278,1,278,1,278,1,278,1,278,3,278,2977,8,278,1,279,1,279,1,279,1,279,1,279,1,279,1,279,1,279,1,279,1,279,1,279,1,279,1,279,1,279,1,279,1,279,1,279,1,279,1,279,3,279,2998,8,279,1,280,1,280,1,280,1,280,1,280,1,280,1,280,1,280,1,280,1,280,1,280,1,280,1,280,1,280,1,280,1,280,1,280,1,280,1,280,3,280,3019,8,280,1,281,1,281,1,281,1,281,1,281,1,281,1,281,1,281,1,281,1,281,1,281,1,281,1,281,1,281,1,281,1,281,1,281,1,281,1,281,1,281,1,281,1,281,1,281,3,281,3044,8,281,1,282,1,282,1,282,1,282,1,282,1,282,1,282,1,282,1,283,1,283,1,283,1,283,1,284,1,284,1,284,1,284,1,284,1,284,1,284,1,284,1,284,1,284,1,285,1,285,1,285,1,285,1,286,1,286,1,286,1,287,1,287,1,287,1,288,1,288,1,288,1,288,1,288,1,289,1,289,1,289,1,289,1,289,1,290,1,290,1,290,1,290,1,290,1,291,1,291,1,291,1,291,1,291,1,292,1,292,1,292,1,292,1,292,1,293,1,293,1,293,1,293,1,293,1,293,1,293,1,293,1,294,1,294,1,294,1,294,1,294,1,294,1,294,1,294,1,294,1,294,1,294,1,294,1,295,1,295,1,295,1,295,1,295,1,296,1,296,1,296,1,296,1,297,1,297,1,297,1,297,1,297,1,297,1,297,1,298,1,298,1,298,1,298,1,298,1,298,1,298,1,298,1,298,1,298,1,298,1,298,1,298,1,298,1,298,1,298,1,298,1,298,1,298,1,298,1,298,1,298,1,298,1,298,1,298,1,298,1,298,1,298,1,298,3,298,3168,8,298,1,299,1,299,1,299,1,299,1,299,1,300,1,300,3,300,3177,8,300,1,300,1,300,5,300,3181,8,300,10,300,12,300,3184,9,300,1,301,1,301,1,302,4,302,3189,8,302,11,302,12,302,3190,1,302,1,302,1,303,1,303,1,303,1,303,5,303,3199,8,303,10,303,12,303,3202,9,303,1,303,1,303,1,303,1,303,1,303,1,304,1,304,1,304,1,304,5,304,3213,8,304,10,304,12,304,3216,9,304,1,304,1,304,1,3200,0,305,1,1,3,2,5,3,7,4,9,5,11,6,13,7,15,8,17,9,19,10,21,11,23,12,25,13,27,14,29,15,31,16,33,17,35,18,37,19,39,20,41,21,43,22,45,23,47,24,49,25,51,26,53,27,55,28,57,29,59,30,61,31,63,32,65,33,67,34,69,35,71,36,73,37,75,38,77,39,79,40,81,41,83,42,85,43,87,44,89,45,91,46,93,47,95,48,97,49,99,50,101,51,103,52,105,53,107,54,109,55,111,56,113,57,115,58,117,59,119,60,121,61,123,62,125,63,127,64,129,65,131,66,133,67,135,68,137,69,139,70,141,71,143,72,145,73,147,74,149,75,151,76,153,77,155,78,157,79,159,80,161,81,163,82,165,83,167,84,169,85,171,86,173,87,175,88,177,89,179,90,181,91,183,92,185,93,187,94,189,95,191,96,193,97,195,98,197,99,199,100,201,101,203,102,205,103,207,104,209,105,211,106,213,107,215,108,217,109,219,110,221,111,223,112,225,113,227,114,229,115,231,116,233,117,235,118,237,119,239,120,241,121,243,122,245,123,247,124,249,125,251,126,253,127,255,128,257,129,259,130,261,131,263,132,265,133,267,134,269,135,271,136,273,137,275,138,277,139,279,140,281,141,283,142,285,143,287,144,289,145,291,146,293,147,295,148,297,149,299,150,301,151,303,152,305,153,307,154,309,155,311,156,313,157,315,158,317,159,319,160,321,161,323,162,325,163,327,164,329,165,331,166,333,167,335,168,337,169,339,170,341,171,343,172,345,173,347,174,349,175,351,176,353,177,355,178,357,179,359,180,361,181,363,182,365,183,367,184,369,185,371,186,373,187,375,188,377,189,379,190,381,191,383,192,385,193,387,194,389,195,391,196,393,197,395,198,397,199,399,200,401,201,403,202,405,203,407,204,409,205,411,206,413,207,415,208,417,209,419,210,421,211,423,212,425,213,427,214,429,215,431,216,433,217,435,218,437,219,439,220,441,221,443,222,445,223,447,224,449,225,451,226,453,227,455,228,457,229,459,230,461,231,463,232,465,233,467,234,469,235,471,236,473,237,475,238,477,239,479,240,481,241,483,242,485,243,487,244,489,245,491,246,493,247,495,248,497,249,499,250,501,251,503,252,505,253,507,254,509,255,511,256,513,257,515,258,517,259,519,260,521,261,523,262,525,263,527,264,529,265,531,266,533,267,535,268,537,269,539,270,541,271,543,272,545,273,547,274,549,275,551,276,553,277,555,278,557,279,559,280,561,281,563,282,565,283,567,284,569,285,571,286,573,287,575,288,577,289,579,290,581,291,583,292,585,293,587,294,589,295,591,296,593,297,595,298,597,299,599,300,601,301,603,0,605,302,607,303,609,304,1,0,11,1,0,48,57,1,0,49,57,2,0,43,43,45,45,1,0,39,39,1,0,34,34,1,0,96,96,2,0,65,90,95,95,3,0,48,57,65,90,95,95,10,0,192,214,216,246,248,8191,11264,12287,12352,12687,13056,13183,13312,16383,19968,55295,63744,64255,65280,65520,3,0,9,10,12,13,32,32,2,0,10,10,13,13,3311,0,1,1,0,0,0,0,3,1,0,0,0,0,5,1,0,0,0,0,7,1,0,0,0,0,9,1,0,0,0,0,11,1,0,0,0,0,13,1,0,0,0,0,15,1,0,0,0,0,17,1,0,0,0,0,19,1,0,0,0,0,21,1,0,0,0,0,23,1,0,0,0,0,25,1,0,0,0,0,27,1,0,0,0,0,29,1,0,0,0,0,31,1,0,0,0,0,33,1,0,0,0,0,35,1,0,0,0,0,37,1,0,0,0,0,39,1,0,0,0,0,41,1,0,0,0,0,43,1,0,0,0,0,45,1,0,0,0,0,47,1,0,0,0,0,49,1,0,0,0,0,51,1,0,0,0,0,53,1,0,0,0,0,55,1,0,0,0,0,57,1,0,0,0,0,59,1,0,0,0,0,61,1,0,0,0,0,63,1,0,0,0,0,65,1,0,0,0,0,67,1,0,0,0,0,69,1,0,0,0,0,71,1,0,0,0,0,73,1,0,0,0,0,75,1,0,0,0,0,77,1,0,0,0,0,79,1,0,0,0,0,81,1,0,0,0,0,83,1,0,0,0,0,85,1,0,0,0,0,87,1,0,0,0,0,89,1,0,0,0,0,91,1,0,0,0,0,93,1,0,0,0,0,95,1,0,0,0,0,97,1,0,0,0,0,99,1,0,0,0,0,101,1,0,0,0,0,103,1,0,0,0,0,105,1,0,0,0,0,107,1,0,0,0,0,109,1,0,0,0,0,111,1,0,0,0,0,113,1,0,0,0,0,115,1,0,0,0,0,117,1,0,0,0,0,119,1,0,0,0,0,121,1,0,0,0,0,123,1,0,0,0,0,125,1,0,0,0,0,127,1,0,0,0,0,129,1,0,0,0,0,131,1,0,0,0,0,133,1,0,0,0,0,135,1,0,0,0,0,137,1,0,0,0,0,139,1,0,0,0,0,141,1,0,0,0,0,143,1,0,0,0,0,145,1,0,0,0,0,147,1,0,0,0,0,149,1,0,0,0,0,151,1,0,0,0,0,153,1,0,0,0,0,155,1,0,0,0,0,157,1,0,0,0,0,159,1,0,0,0,0,161,1,0,0,0,0,163,1,0,0,0,0,165,1,0,0,0,0,167,1,0,0,0,0,169,1,0,0,0,0,171,1,0,0,0,0,173,1,0,0,0,0,175,1,0,0,0,0,177,1,0,0,0,0,179,1,0,0,0,0,181,1,0,0,0,0,183,1,0,0,0,0,185,1,0,0,0,0,187,1,0,0,0,0,189,1,0,0,0,0,191,1,0,0,0,0,193,1,0,0,0,0,195,1,0,0,0,0,197,1,0,0,0,0,199,1,0,0,0,0,201,1,0,0,0,0,203,1,0,0,0,0,205,1,0,0,0,0,207,1,0,0,0,0,209,1,0,0,0,0,211,1,0,0,0,0,213,1,0,0,0,0,215,1,0,0,0,0,217,1,0,0,0,0,219,1,0,0,0,0,221,1,0,0,0,0,223,1,0,0,0,0,225,1,0,0,0,0,227,1,0,0,0,0,229,1,0,0,0,0,231,1,0,0,0,0,233,1,0,0,0,0,235,1,0,0,0,0,237,1,0,0,0,0,239,1,0,0,0,0,241,1,0,0,0,0,243,1,0,0,0,0,245,1,0,0,0,0,247,1,0,0,0,0,249,1,0,0,0,0,251,1,0,0,0,0,253,1,0,0,0,0,255,1,0,0,0,0,257,1,0,0,0,0,259,1,0,0,0,0,261,1,0,0,0,0,263,1,0,0,0,0,265,1,0,0,0,0,267,1,0,0,0,0,269,1,0,0,0,0,271,1,0,0,0,0,273,1,0,0,0,0,275,1,0,0,0,0,277,1,0,0,0,0,279,1,0,0,0,0,281,1,0,0,0,0,283,1,0,0,0,0,285,1,0,0,0,0,287,1,0,0,0,0,289,1,0,0,0,0,291,1,0,0,0,0,293,1,0,0,0,0,295,1,0,0,0,0,297,1,0,0,0,0,299,1,0,0,0,0,301,1,0,0,0,0,303,1,0,0,0,0,305,1,0,0,0,0,307,1,0,0,0,0,309,1,0,0,0,0,311,1,0,0,0,0,313,1,0,0,0,0,315,1,0,0,0,0,317,1,0,0,0,0,319,1,0,0,0,0,321,1,0,0,0,0,323,1,0,0,0,0,325,1,0,0,0,0,327,1,0,0,0,0,329,1,0,0,0,0,331,1,0,0,0,0,333,1,0,0,0,0,335,1,0,0,0,0,337,1,0,0,0,0,339,1,0,0,0,0,341,1,0,0,0,0,343,1,0,0,0,0,345,1,0,0,0,0,347,1,0,0,0,0,349,1,0,0,0,0,351,1,0,0,0,0,353,1,0,0,0,0,355,1,0,0,0,0,357,1,0,0,0,0,359,1,0,0,0,0,361,1,0,0,0,0,363,1,0,0,0,0,365,1,0,0,0,0,367,1,0,0,0,0,369,1,0,0,0,0,371,1,0,0,0,0,373,1,0,0,0,0,375,1,0,0,0,0,377,1,0,0,0,0,379,1,0,0,0,0,381,1,0,0,0,0,383,1,0,0,0,0,385,1,0,0,0,0,387,1,0,0,0,0,389,1,0,0,0,0,391,1,0,0,0,0,393,1,0,0,0,0,395,1,0,0,0,0,397,1,0,0,0,0,399,1,0,0,0,0,401,1,0,0,0,0,403,1,0,0,0,0,405,1,0,0,0,0,407,1,0,0,0,0,409,1,0,0,0,0,411,1,0,0,0,0,413,1,0,0,0,0,415,1,0,0,0,0,417,1,0,0,0,0,419,1,0,0,0,0,421,1,0,0,0,0,423,1,0,0,0,0,425,1,0,0,0,0,427,1,0,0,0,0,429,1,0,0,0,0,431,1,0,0,0,0,433,1,0,0,0,0,435,1,0,0,0,0,437,1,0,0,0,0,439,1,0,0,0,0,441,1,0,0,0,0,443,1,0,0,0,0,445,1,0,0,0,0,447,1,0,0,0,0,449,1,0,0,0,0,451,1,0,0,0,0,453,1,0,0,0,0,455,1,0,0,0,0,457,1,0,0,0,0,459,1,0,0,0,0,461,1,0,0,0,0,463,1,0,0,0,0,465,1,0,0,0,0,467,1,0,0,0,0,469,1,0,0,0,0,471,1,0,0,0,0,473,1,0,0,0,0,475,1,0,0,0,0,477,1,0,0,0,0,479,1,0,0,0,0,481,1,0,0,0,0,483,1,0,0,0,0,485,1,0,0,0,0,487,1,0,0,0,0,489,1,0,0,0,0,491,1,0,0,0,0,493,1,0,0,0,0,495,1,0,0,0,0,497,1,0,0,0,0,499,1,0,0,0,0,501,1,0,0,0,0,503,1,0,0,0,0,505,1,0,0,0,0,507,1,0,0,0,0,509,1,0,0,0,0,511,1,0,0,0,0,513,1,0,0,0,0,515,1,0,0,0,0,517,1,0,0,0,0,519,1,0,0,0,0,521,1,0,0,0,0,523,1,0,0,0,0,525,1,0,0,0,0,527,1,0,0,0,0,529,1,0,0,0,0,531,1,0,0,0,0,533,1,0,0,0,0,535,1,0,0,0,0,537,1,0,0,0,0,539,1,0,0,0,0,541,1,0,0,0,0,543,1,0,0,0,0,545,1,0,0,0,0,547,1,0,0,0,0,549,1,0,0,0,0,551,1,0,0,0,0,553,1,0,0,0,0,555,1,0,0,0,0,557,1,0,0,0,0,559,1,0,0,0,0,561,1,0,0,0,0,563,1,0,0,0,0,565,1,0,0,0,0,567,1,0,0,0,0,569,1,0,0,0,0,571,1,0,0,0,0,573,1,0,0,0,0,575,1,0,0,0,0,577,1,0,0,0,0,579,1,0,0,0,0,581,1,0,0,0,0,583,1,0,0,0,0,585,1,0,0,0,0,587,1,0,0,0,0,589,1,0,0,0,0,591,1,0,0,0,0,593,1,0,0,0,0,595,1,0,0,0,0,597,1,0,0,0,0,599,1,0,0,0,0,601,1,0,0,0,0,605,1,0,0,0,0,607,1,0,0,0,0,609,1,0,0,0,1,611,1,0,0,0,3,613,1,0,0,0,5,615,1,0,0,0,7,617,1,0,0,0,9,619,1,0,0,0,11,621,1,0,0,0,13,623,1,0,0,0,15,625,1,0,0,0,17,627,1,0,0,0,19,629,1,0,0,0,21,631,1,0,0,0,23,633,1,0,0,0,25,635,1,0,0,0,27,637,1,0,0,0,29,639,1,0,0,0,31,641,1,0,0,0,33,643,1,0,0,0,35,645,1,0,0,0,37,647,1,0,0,0,39,650,1,0,0,0,41,652,1,0,0,0,43,662,1,0,0,0,45,670,1,0,0,0,47,672,1,0,0,0,49,675,1,0,0,0,51,736,1,0,0,0,53,768,1,0,0,0,55,813,1,0,0,0,57,822,1,0,0,0,59,831,1,0,0,0,61,833,1,0,0,0,63,838,1,0,0,0,65,842,1,0,0,0,67,848,1,0,0,0,69,853,1,0,0,0,71,855,1,0,0,0,73,858,1,0,0,0,75,864,1,0,0,0,77,869,1,0,0,0,79,875,1,0,0,0,81,879,1,0,0,0,83,884,1,0,0,0,85,891,1,0,0,0,87,898,1,0,0,0,89,907,1,0,0,0,91,914,1,0,0,0,93,924,1,0,0,0,95,934,1,0,0,0,97,941,1,0,0,0,99,947,1,0,0,0,101,951,1,0,0,0,103,955,1,0,0,0,105,960,1,0,0,0,107,965,1,0,0,0,109,969,1,0,0,0,111,977,1,0,0,0,113,985,1,0,0,0,115,989,1,0,0,0,117,994,1,0,0,0,119,998,1,0,0,0,121,1003,1,0,0,0,123,1007,1,0,0,0,125,1012,1,0,0,0,127,1016,1,0,0,0,129,1021,1,0,0,0,131,1025,1,0,0,0,133,1030,1,0,0,0,135,1034,1,0,0,0,137,1039,1,0,0,0,139,1044,1,0,0,0,141,1050,1,0,0,0,143,1055,1,0,0,0,145,1061,1,0,0,0,147,1066,1,0,0,0,149,1072,1,0,0,0,151,1077,1,0,0,0,153,1083,1,0,0,0,155,1088,1,0,0,0,157,1092,1,0,0,0,159,1097,1,0,0,0,161,1108,1,0,0,0,163,1112,1,0,0,0,165,1115,1,0,0,0,167,1121,1,0,0,0,169,1128,1,0,0,0,171,1132,1,0,0,0,173,1137,1,0,0,0,175,1144,1,0,0,0,177,1159,1,0,0,0,179,1161,1,0,0,0,181,1166,1,0,0,0,183,1172,1,0,0,0,185,1177,1,0,0,0,187,1185,1,0,0,0,189,1193,1,0,0,0,191,1209,1,0,0,0,193,1211,1,0,0,0,195,1218,1,0,0,0,197,1235,1,0,0,0,199,1237,1,0,0,0,201,1243,1,0,0,0,203,1273,1,0,0,0,205,1293,1,0,0,0,207,1295,1,0,0,0,209,1302,1,0,0,0,211,1334,1,0,0,0,213,1336,1,0,0,0,215,1346,1,0,0,0,217,1356,1,0,0,0,219,1367,1,0,0,0,221,1378,1,0,0,0,223,1391,1,0,0,0,225,1407,1,0,0,0,227,1420,1,0,0,0,229,1436,1,0,0,0,231,1450,1,0,0,0,233,1469,1,0,0,0,235,1474,1,0,0,0,237,1476,1,0,0,0,239,1480,1,0,0,0,241,1484,1,0,0,0,243,1489,1,0,0,0,245,1496,1,0,0,0,247,1503,1,0,0,0,249,1511,1,0,0,0,251,1519,1,0,0,0,253,1527,1,0,0,0,255,1535,1,0,0,0,257,1543,1,0,0,0,259,1551,1,0,0,0,261,1559,1,0,0,0,263,1567,1,0,0,0,265,1575,1,0,0,0,267,1583,1,0,0,0,269,1591,1,0,0,0,271,1599,1,0,0,0,273,1607,1,0,0,0,275,1614,1,0,0,0,277,1628,1,0,0,0,279,1634,1,0,0,0,281,1640,1,0,0,0,283,1648,1,0,0,0,285,1654,1,0,0,0,287,1658,1,0,0,0,289,1664,1,0,0,0,291,1671,1,0,0,0,293,1677,1,0,0,0,295,1682,1,0,0,0,297,1688,1,0,0,0,299,1695,1,0,0,0,301,1703,1,0,0,0,303,1711,1,0,0,0,305,1729,1,0,0,0,307,1743,1,0,0,0,309,1745,1,0,0,0,311,1781,1,0,0,0,313,1783,1,0,0,0,315,1793,1,0,0,0,317,1801,1,0,0,0,319,1813,1,0,0,0,321,1821,1,0,0,0,323,1831,1,0,0,0,325,1837,1,0,0,0,327,1842,1,0,0,0,329,1845,1,0,0,0,331,1853,1,0,0,0,333,1858,1,0,0,0,335,1867,1,0,0,0,337,1877,1,0,0,0,339,1888,1,0,0,0,341,1897,1,0,0,0,343,1902,1,0,0,0,345,1907,1,0,0,0,347,1918,1,0,0,0,349,1926,1,0,0,0,351,1929,1,0,0,0,353,1933,1,0,0,0,355,1939,1,0,0,0,357,1951,1,0,0,0,359,1961,1,0,0,0,361,1967,1,0,0,0,363,1971,1,0,0,0,365,1974,1,0,0,0,367,1978,1,0,0,0,369,1982,1,0,0,0,371,1986,1,0,0,0,373,1998,1,0,0,0,375,2006,1,0,0,0,377,2012,1,0,0,0,379,2040,1,0,0,0,381,2042,1,0,0,0,383,2046,1,0,0,0,385,2053,1,0,0,0,387,2057,1,0,0,0,389,2062,1,0,0,0,391,2070,1,0,0,0,393,2078,1,0,0,0,395,2086,1,0,0,0,397,2092,1,0,0,0,399,2096,1,0,0,0,401,2115,1,0,0,0,403,2130,1,0,0,0,405,2132,1,0,0,0,407,2146,1,0,0,0,409,2157,1,0,0,0,411,2159,1,0,0,0,413,2163,1,0,0,0,415,2172,1,0,0,0,417,2176,1,0,0,0,419,2183,1,0,0,0,421,2190,1,0,0,0,423,2196,1,0,0,0,425,2206,1,0,0,0,427,2214,1,0,0,0,429,2221,1,0,0,0,431,2233,1,0,0,0,433,2239,1,0,0,0,435,2247,1,0,0,0,437,2255,1,0,0,0,439,2263,1,0,0,0,441,2271,1,0,0,0,443,2280,1,0,0,0,445,2289,1,0,0,0,447,2297,1,0,0,0,449,2303,1,0,0,0,451,2308,1,0,0,0,453,2313,1,0,0,0,455,2318,1,0,0,0,457,2324,1,0,0,0,459,2332,1,0,0,0,461,2341,1,0,0,0,463,2347,1,0,0,0,465,2377,1,0,0,0,467,2405,1,0,0,0,469,2424,1,0,0,0,471,2426,1,0,0,0,473,2448,1,0,0,0,475,2450,1,0,0,0,477,2470,1,0,0,0,479,2472,1,0,0,0,481,2480,1,0,0,0,483,2489,1,0,0,0,485,2500,1,0,0,0,487,2511,1,0,0,0,489,2517,1,0,0,0,491,2529,1,0,0,0,493,2539,1,0,0,0,495,2548,1,0,0,0,497,2558,1,0,0,0,499,2566,1,0,0,0,501,2575,1,0,0,0,503,2586,1,0,0,0,505,2625,1,0,0,0,507,2648,1,0,0,0,509,2650,1,0,0,0,511,2660,1,0,0,0,513,2666,1,0,0,0,515,2673,1,0,0,0,517,2681,1,0,0,0,519,2689,1,0,0,0,521,2713,1,0,0,0,523,2732,1,0,0,0,525,2749,1,0,0,0,527,2770,1,0,0,0,529,2783,1,0,0,0,531,2794,1,0,0,0,533,2813,1,0,0,0,535,2832,1,0,0,0,537,2834,1,0,0,0,539,2839,1,0,0,0,541,2844,1,0,0,0,543,2848,1,0,0,0,545,2852,1,0,0,0,547,2860,1,0,0,0,549,2896,1,0,0,0,551,2923,1,0,0,0,553,2944,1,0,0,0,555,2957,1,0,0,0,557,2976,1,0,0,0,559,2997,1,0,0,0,561,3018,1,0,0,0,563,3043,1,0,0,0,565,3045,1,0,0,0,567,3053,1,0,0,0,569,3057,1,0,0,0,571,3067,1,0,0,0,573,3071,1,0,0,0,575,3074,1,0,0,0,577,3077,1,0,0,0,579,3082,1,0,0,0,581,3087,1,0,0,0,583,3092,1,0,0,0,585,3097,1,0,0,0,587,3102,1,0,0,0,589,3110,1,0,0,0,591,3122,1,0,0,0,593,3127,1,0,0,0,595,3131,1,0,0,0,597,3167,1,0,0,0,599,3169,1,0,0,0,601,3176,1,0,0,0,603,3185,1,0,0,0,605,3188,1,0,0,0,607,3194,1,0,0,0,609,3208,1,0,0,0,611,612,5,46,0,0,612,2,1,0,0,0,613,614,5,40,0,0,614,4,1,0,0,0,615,616,5,41,0,0,616,6,1,0,0,0,617,618,5,44,0,0,618,8,1,0,0,0,619,620,5,91,0,0,620,10,1,0,0,0,621,622,5,93,0,0,622,12,1,0,0,0,623,624,5,33,0,0,624,14,1,0,0,0,625,626,5,63,0,0,626,16,1,0,0,0,627,628,5,58,0,0,628,18,1,0,0,0,629,630,5,123,0,0,630,20,1,0,0,0,631,632,5,125,0,0,632,22,1,0,0,0,633,634,5,43,0,0,634,24,1,0,0,0,635,636,5,45,0,0,636,26,1,0,0,0,637,638,5,42,0,0,638,28,1,0,0,0,639,640,5,47,0,0,640,30,1,0,0,0,641,642,5,37,0,0,642,32,1,0,0,0,643,644,5,38,0,0,644,34,1,0,0,0,645,646,5,62,0,0,646,36,1,0,0,0,647,648,5,62,0,0,648,649,5,61,0,0,649,38,1,0,0,0,650,651,5,60,0,0,651,40,1,0,0,0,652,653,5,60,0,0,653,654,5,61,0,0,654,42,1,0,0,0,655,656,5,33,0,0,656,663,5,61,0,0,657,658,5,33,0,0,658,659,5,61,0,0,659,663,5,61,0,0,660,661,5,60,0,0,661,663,5,62,0,0,662,655,1,0,0,0,662,657,1,0,0,0,662,660,1,0,0,0,663,44,1,0,0,0,664,671,5,61,0,0,665,666,5,61,0,0,666,671,5,61,0,0,667,668,5,61,0,0,668,669,5,61,0,0,669,671,5,61,0,0,670,664,1,0,0,0,670,665,1,0,0,0,670,667,1,0,0,0,671,46,1,0,0,0,672,673,5,38,0,0,673,674,5,38,0,0,674,48,1,0,0,0,675,676,5,124,0,0,676,677,5,124,0,0,677,50,1,0,0,0,678,685,5,48,0,0,679,681,5,46,0,0,680,682,7,0,0,0,681,680,1,0,0,0,682,683,1,0,0,0,683,681,1,0,0,0,683,684,1,0,0,0,684,686,1,0,0,0,685,679,1,0,0,0,685,686,1,0,0,0,686,737,1,0,0,0,687,691,7,1,0,0,688,690,7,0,0,0,689,688,1,0,0,0,690,693,1,0,0,0,691,689,1,0,0,0,691,692,1,0,0,0,692,700,1,0,0,0,693,691,1,0,0,0,694,696,5,46,0,0,695,697,7,0,0,0,696,695,1,0,0,0,697,698,1,0,0,0,698,696,1,0,0,0,698,699,1,0,0,0,699,701,1,0,0,0,700,694,1,0,0,0,700,701,1,0,0,0,701,737,1,0,0,0,702,709,5,48,0,0,703,705,5,46,0,0,704,706,7,0,0,0,705,704,1,0,0,0,706,707,1,0,0,0,707,705,1,0,0,0,707,708,1,0,0,0,708,710,1,0,0,0,709,703,1,0,0,0,709,710,1,0,0,0,710,727,1,0,0,0,711,715,7,1,0,0,712,714,7,0,0,0,713,712,1,0,0,0,714,717,1,0,0,0,715,713,1,0,0,0,715,716,1,0,0,0,716,724,1,0,0,0,717,715,1,0,0,0,718,720,5,46,0,0,719,721,7,0,0,0,720,719,1,0,0,0,721,722,1,0,0,0,722,720,1,0,0,0,722,723,1,0,0,0,723,725,1,0,0,0,724,718,1,0,0,0,724,725,1,0,0,0,725,727,1,0,0,0,726,702,1,0,0,0,726,711,1,0,0,0,727,728,1,0,0,0,728,730,5,69,0,0,729,731,7,2,0,0,730,729,1,0,0,0,730,731,1,0,0,0,731,732,1,0,0,0,732,734,7,0,0,0,733,735,7,0,0,0,734,733,1,0,0,0,734,735,1,0,0,0,735,737,1,0,0,0,736,678,1,0,0,0,736,687,1,0,0,0,736,726,1,0,0,0,737,52,1,0,0,0,738,744,5,39,0,0,739,743,8,3,0,0,740,741,5,92,0,0,741,743,5,39,0,0,742,739,1,0,0,0,742,740,1,0,0,0,743,746,1,0,0,0,744,742,1,0,0,0,744,745,1,0,0,0,745,747,1,0,0,0,746,744,1,0,0,0,747,769,5,39,0,0,748,754,5,34,0,0,749,753,8,4,0,0,750,751,5,92,0,0,751,753,5,34,0,0,752,749,1,0,0,0,752,750,1,0,0,0,753,756,1,0,0,0,754,752,1,0,0,0,754,755,1,0,0,0,755,757,1,0,0,0,756,754,1,0,0,0,757,769,5,34,0,0,758,764,5,96,0,0,759,763,8,5,0,0,760,761,5,92,0,0,761,763,5,96,0,0,762,759,1,0,0,0,762,760,1,0,0,0,763,766,1,0,0,0,764,762,1,0,0,0,764,765,1,0,0,0,765,767,1,0,0,0,766,764,1,0,0,0,767,769,5,96,0,0,768,738,1,0,0,0,768,748,1,0,0,0,768,758,1,0,0,0,769,54,1,0,0,0,770,814,5,77,0,0,771,772,5,75,0,0,772,814,5,77,0,0,773,774,5,68,0,0,774,814,5,77,0,0,775,776,5,67,0,0,776,814,5,77,0,0,777,778,5,77,0,0,778,814,5,77,0,0,779,780,5,77,0,0,780,814,5,50,0,0,781,782,5,75,0,0,782,783,5,77,0,0,783,814,5,50,0,0,784,785,5,68,0,0,785,786,5,77,0,0,786,814,5,50,0,0,787,788,5,67,0,0,788,789,5,77,0,0,789,814,5,50,0,0,790,791,5,77,0,0,791,792,5,77,0,0,792,814,5,50,0,0,793,794,5,77,0,0,794,814,5,51,0,0,795,796,5,75,0,0,796,797,5,77,0,0,797,814,5,51,0,0,798,799,5,68,0,0,799,800,5,77,0,0,800,814,5,51,0,0,801,802,5,67,0,0,802,803,5,77,0,0,803,814,5,51,0,0,804,805,5,77,0,0,805,806,5,77,0,0,806,814,5,51,0,0,807,814,5,76,0,0,808,809,5,77,0,0,809,814,5,76,0,0,810,814,5,71,0,0,811,812,5,75,0,0,812,814,5,71,0,0,813,770,1,0,0,0,813,771,1,0,0,0,813,773,1,0,0,0,813,775,1,0,0,0,813,777,1,0,0,0,813,779,1,0,0,0,813,781,1,0,0,0,813,784,1,0,0,0,813,787,1,0,0,0,813,790,1,0,0,0,813,793,1,0,0,0,813,795,1,0,0,0,813,798,1,0,0,0,813,801,1,0,0,0,813,804,1,0,0,0,813,807,1,0,0,0,813,808,1,0,0,0,813,810,1,0,0,0,813,811,1,0,0,0,814,56,1,0,0,0,815,816,5,84,0,0,816,817,5,82,0,0,817,818,5,85,0,0,818,823,5,69,0,0,819,820,5,89,0,0,820,821,5,69,0,0,821,823,5,83,0,0,822,815,1,0,0,0,822,819,1,0,0,0,823,58,1,0,0,0,824,825,5,70,0,0,825,826,5,65,0,0,826,827,5,76,0,0,827,828,5,83,0,0,828,832,5,69,0,0,829,830,5,78,0,0,830,832,5,79,0,0,831,824,1,0,0,0,831,829,1,0,0,0,832,60,1,0,0,0,833,834,5,82,0,0,834,835,5,65,0,0,835,836,5,78,0,0,836,837,5,68,0,0,837,62,1,0,0,0,838,839,5,78,0,0,839,840,5,79,0,0,840,841,5,87,0,0,841,64,1,0,0,0,842,843,5,84,0,0,843,844,5,79,0,0,844,845,5,68,0,0,845,846,5,65,0,0,846,847,5,89,0,0,847,66,1,0,0,0,848,849,5,71,0,0,849,850,5,85,0,0,850,851,5,73,0,0,851,852,5,68,0,0,852,68,1,0,0,0,853,854,5,69,0,0,854,70,1,0,0,0,855,856,5,80,0,0,856,857,5,73,0,0,857,72,1,0,0,0,858,859,5,69,0,0,859,860,5,82,0,0,860,861,5,82,0,0,861,862,5,79,0,0,862,863,5,82,0,0,863,74,1,0,0,0,864,865,5,89,0,0,865,866,5,69,0,0,866,867,5,65,0,0,867,868,5,82,0,0,868,76,1,0,0,0,869,870,5,77,0,0,870,871,5,79,0,0,871,872,5,78,0,0,872,873,5,84,0,0,873,874,5,72,0,0,874,78,1,0,0,0,875,876,5,68,0,0,876,877,5,65,0,0,877,878,5,89,0,0,878,80,1,0,0,0,879,880,5,72,0,0,880,881,5,79,0,0,881,882,5,85,0,0,882,883,5,82,0,0,883,82,1,0,0,0,884,885,5,77,0,0,885,886,5,73,0,0,886,887,5,78,0,0,887,888,5,85,0,0,888,889,5,84,0,0,889,890,5,69,0,0,890,84,1,0,0,0,891,892,5,83,0,0,892,893,5,69,0,0,893,894,5,67,0,0,894,895,5,79,0,0,895,896,5,78,0,0,896,897,5,68,0,0,897,86,1,0,0,0,898,899,5,73,0,0,899,900,5,83,0,0,900,901,5,78,0,0,901,902,5,85,0,0,902,903,5,77,0,0,903,904,5,66,0,0,904,905,5,69,0,0,905,906,5,82,0,0,906,88,1,0,0,0,907,908,5,73,0,0,908,909,5,83,0,0,909,910,5,84,0,0,910,911,5,69,0,0,911,912,5,88,0,0,912,913,5,84,0,0,913,90,1,0,0,0,914,915,5,73,0,0,915,916,5,83,0,0,916,917,5,78,0,0,917,918,5,79,0,0,918,919,5,78,0,0,919,920,5,84,0,0,920,921,5,69,0,0,921,922,5,88,0,0,922,923,5,84,0,0,923,92,1,0,0,0,924,925,5,73,0,0,925,926,5,83,0,0,926,927,5,76,0,0,927,928,5,79,0,0,928,929,5,71,0,0,929,930,5,73,0,0,930,931,5,67,0,0,931,932,5,65,0,0,932,933,5,76,0,0,933,94,1,0,0,0,934,935,5,73,0,0,935,936,5,83,0,0,936,937,5,69,0,0,937,938,5,86,0,0,938,939,5,69,0,0,939,940,5,78,0,0,940,96,1,0,0,0,941,942,5,73,0,0,942,943,5,83,0,0,943,944,5,79,0,0,944,945,5,68,0,0,945,946,5,68,0,0,946,98,1,0,0,0,947,948,5,78,0,0,948,949,5,79,0,0,949,950,5,84,0,0,950,100,1,0,0,0,951,952,5,65,0,0,952,953,5,66,0,0,953,954,5,83,0,0,954,102,1,0,0,0,955,956,5,83,0,0,956,957,5,73,0,0,957,958,5,71,0,0,958,959,5,78,0,0,959,104,1,0,0,0,960,961,5,83,0,0,961,962,5,81,0,0,962,963,5,82,0,0,963,964,5,84,0,0,964,106,1,0,0,0,965,966,5,73,0,0,966,967,5,78,0,0,967,968,5,84,0,0,968,108,1,0,0,0,969,970,5,68,0,0,970,971,5,69,0,0,971,972,5,71,0,0,972,973,5,82,0,0,973,974,5,69,0,0,974,975,5,69,0,0,975,976,5,83,0,0,976,110,1,0,0,0,977,978,5,82,0,0,978,979,5,65,0,0,979,980,5,68,0,0,980,981,5,73,0,0,981,982,5,65,0,0,982,983,5,78,0,0,983,984,5,83,0,0,984,112,1,0,0,0,985,986,5,67,0,0,986,987,5,79,0,0,987,988,5,83,0,0,988,114,1,0,0,0,989,990,5,67,0,0,990,991,5,79,0,0,991,992,5,83,0,0,992,993,5,72,0,0,993,116,1,0,0,0,994,995,5,83,0,0,995,996,5,73,0,0,996,997,5,78,0,0,997,118,1,0,0,0,998,999,5,83,0,0,999,1e3,5,73,0,0,1e3,1001,5,78,0,0,1001,1002,5,72,0,0,1002,120,1,0,0,0,1003,1004,5,84,0,0,1004,1005,5,65,0,0,1005,1006,5,78,0,0,1006,122,1,0,0,0,1007,1008,5,84,0,0,1008,1009,5,65,0,0,1009,1010,5,78,0,0,1010,1011,5,72,0,0,1011,124,1,0,0,0,1012,1013,5,67,0,0,1013,1014,5,79,0,0,1014,1015,5,84,0,0,1015,126,1,0,0,0,1016,1017,5,67,0,0,1017,1018,5,79,0,0,1018,1019,5,84,0,0,1019,1020,5,72,0,0,1020,128,1,0,0,0,1021,1022,5,67,0,0,1022,1023,5,83,0,0,1023,1024,5,67,0,0,1024,130,1,0,0,0,1025,1026,5,67,0,0,1026,1027,5,83,0,0,1027,1028,5,67,0,0,1028,1029,5,72,0,0,1029,132,1,0,0,0,1030,1031,5,83,0,0,1031,1032,5,69,0,0,1032,1033,5,67,0,0,1033,134,1,0,0,0,1034,1035,5,83,0,0,1035,1036,5,69,0,0,1036,1037,5,67,0,0,1037,1038,5,72,0,0,1038,136,1,0,0,0,1039,1040,5,65,0,0,1040,1041,5,67,0,0,1041,1042,5,79,0,0,1042,1043,5,83,0,0,1043,138,1,0,0,0,1044,1045,5,65,0,0,1045,1046,5,67,0,0,1046,1047,5,79,0,0,1047,1048,5,83,0,0,1048,1049,5,72,0,0,1049,140,1,0,0,0,1050,1051,5,65,0,0,1051,1052,5,83,0,0,1052,1053,5,73,0,0,1053,1054,5,78,0,0,1054,142,1,0,0,0,1055,1056,5,65,0,0,1056,1057,5,83,0,0,1057,1058,5,73,0,0,1058,1059,5,78,0,0,1059,1060,5,72,0,0,1060,144,1,0,0,0,1061,1062,5,65,0,0,1062,1063,5,84,0,0,1063,1064,5,65,0,0,1064,1065,5,78,0,0,1065,146,1,0,0,0,1066,1067,5,65,0,0,1067,1068,5,84,0,0,1068,1069,5,65,0,0,1069,1070,5,78,0,0,1070,1071,5,72,0,0,1071,148,1,0,0,0,1072,1073,5,65,0,0,1073,1074,5,67,0,0,1074,1075,5,79,0,0,1075,1076,5,84,0,0,1076,150,1,0,0,0,1077,1078,5,65,0,0,1078,1079,5,67,0,0,1079,1080,5,79,0,0,1080,1081,5,84,0,0,1081,1082,5,72,0,0,1082,152,1,0,0,0,1083,1084,5,69,0,0,1084,1085,5,86,0,0,1085,1086,5,69,0,0,1086,1087,5,78,0,0,1087,154,1,0,0,0,1088,1089,5,79,0,0,1089,1090,5,68,0,0,1090,1091,5,68,0,0,1091,156,1,0,0,0,1092,1093,5,70,0,0,1093,1094,5,65,0,0,1094,1095,5,67,0,0,1095,1096,5,84,0,0,1096,158,1,0,0,0,1097,1098,5,70,0,0,1098,1099,5,65,0,0,1099,1100,5,67,0,0,1100,1101,5,84,0,0,1101,1102,5,68,0,0,1102,1103,5,79,0,0,1103,1104,5,85,0,0,1104,1105,5,66,0,0,1105,1106,5,76,0,0,1106,1107,5,69,0,0,1107,160,1,0,0,0,1108,1109,5,69,0,0,1109,1110,5,88,0,0,1110,1111,5,80,0,0,1111,162,1,0,0,0,1112,1113,5,76,0,0,1113,1114,5,78,0,0,1114,164,1,0,0,0,1115,1116,5,76,0,0,1116,1117,5,79,0,0,1117,1118,5,71,0,0,1118,1119,5,49,0,0,1119,1120,5,48,0,0,1120,166,1,0,0,0,1121,1122,5,83,0,0,1122,1123,5,81,0,0,1123,1124,5,82,0,0,1124,1125,5,84,0,0,1125,1126,5,80,0,0,1126,1127,5,73,0,0,1127,168,1,0,0,0,1128,1129,5,69,0,0,1129,1130,5,82,0,0,1130,1131,5,70,0,0,1131,170,1,0,0,0,1132,1133,5,69,0,0,1133,1134,5,82,0,0,1134,1135,5,70,0,0,1135,1136,5,67,0,0,1136,172,1,0,0,0,1137,1138,5,65,0,0,1138,1139,5,82,0,0,1139,1140,5,65,0,0,1140,1141,5,66,0,0,1141,1142,5,73,0,0,1142,1143,5,67,0,0,1143,174,1,0,0,0,1144,1145,5,65,0,0,1145,1146,5,83,0,0,1146,1147,5,67,0,0,1147,176,1,0,0,0,1148,1149,5,74,0,0,1149,1150,5,73,0,0,1150,1160,5,83,0,0,1151,1152,5,87,0,0,1152,1153,5,73,0,0,1153,1154,5,68,0,0,1154,1155,5,69,0,0,1155,1156,5,67,0,0,1156,1157,5,72,0,0,1157,1158,5,65,0,0,1158,1160,5,82,0,0,1159,1148,1,0,0,0,1159,1151,1,0,0,0,1160,178,1,0,0,0,1161,1162,5,67,0,0,1162,1163,5,72,0,0,1163,1164,5,65,0,0,1164,1165,5,82,0,0,1165,180,1,0,0,0,1166,1167,5,67,0,0,1167,1168,5,76,0,0,1168,1169,5,69,0,0,1169,1170,5,65,0,0,1170,1171,5,78,0,0,1171,182,1,0,0,0,1172,1173,5,67,0,0,1173,1174,5,79,0,0,1174,1175,5,68,0,0,1175,1176,5,69,0,0,1176,184,1,0,0,0,1177,1178,5,85,0,0,1178,1179,5,78,0,0,1179,1180,5,73,0,0,1180,1181,5,67,0,0,1181,1182,5,72,0,0,1182,1183,5,65,0,0,1183,1184,5,82,0,0,1184,186,1,0,0,0,1185,1186,5,85,0,0,1186,1187,5,78,0,0,1187,1188,5,73,0,0,1188,1189,5,67,0,0,1189,1190,5,79,0,0,1190,1191,5,68,0,0,1191,1192,5,69,0,0,1192,188,1,0,0,0,1193,1194,5,76,0,0,1194,1195,5,69,0,0,1195,1196,5,78,0,0,1196,190,1,0,0,0,1197,1198,5,76,0,0,1198,1199,5,79,0,0,1199,1200,5,87,0,0,1200,1201,5,69,0,0,1201,1210,5,82,0,0,1202,1203,5,84,0,0,1203,1204,5,79,0,0,1204,1205,5,76,0,0,1205,1206,5,79,0,0,1206,1207,5,87,0,0,1207,1208,5,69,0,0,1208,1210,5,82,0,0,1209,1197,1,0,0,0,1209,1202,1,0,0,0,1210,192,1,0,0,0,1211,1212,5,80,0,0,1212,1213,5,82,0,0,1213,1214,5,79,0,0,1214,1215,5,80,0,0,1215,1216,5,69,0,0,1216,1217,5,82,0,0,1217,194,1,0,0,0,1218,1219,5,84,0,0,1219,1220,5,82,0,0,1220,1221,5,73,0,0,1221,1222,5,77,0,0,1222,196,1,0,0,0,1223,1224,5,85,0,0,1224,1225,5,80,0,0,1225,1226,5,80,0,0,1226,1227,5,69,0,0,1227,1236,5,82,0,0,1228,1229,5,84,0,0,1229,1230,5,79,0,0,1230,1231,5,85,0,0,1231,1232,5,80,0,0,1232,1233,5,80,0,0,1233,1234,5,69,0,0,1234,1236,5,82,0,0,1235,1223,1,0,0,0,1235,1228,1,0,0,0,1236,198,1,0,0,0,1237,1238,5,86,0,0,1238,1239,5,65,0,0,1239,1240,5,76,0,0,1240,1241,5,85,0,0,1241,1242,5,69,0,0,1242,200,1,0,0,0,1243,1244,5,84,0,0,1244,1245,5,73,0,0,1245,1246,5,77,0,0,1246,1247,5,69,0,0,1247,1248,5,86,0,0,1248,1249,5,65,0,0,1249,1250,5,76,0,0,1250,1251,5,85,0,0,1251,1252,5,69,0,0,1252,202,1,0,0,0,1253,1254,5,78,0,0,1254,1255,5,79,0,0,1255,1256,5,82,0,0,1256,1257,5,77,0,0,1257,1258,5,83,0,0,1258,1259,5,68,0,0,1259,1260,5,73,0,0,1260,1261,5,83,0,0,1261,1274,5,84,0,0,1262,1263,5,78,0,0,1263,1264,5,79,0,0,1264,1265,5,82,0,0,1265,1266,5,77,0,0,1266,1267,5,46,0,0,1267,1268,5,83,0,0,1268,1269,5,46,0,0,1269,1270,5,68,0,0,1270,1271,5,73,0,0,1271,1272,5,83,0,0,1272,1274,5,84,0,0,1273,1253,1,0,0,0,1273,1262,1,0,0,0,1274,204,1,0,0,0,1275,1276,5,78,0,0,1276,1277,5,79,0,0,1277,1278,5,82,0,0,1278,1279,5,77,0,0,1279,1280,5,83,0,0,1280,1281,5,73,0,0,1281,1282,5,78,0,0,1282,1294,5,86,0,0,1283,1284,5,78,0,0,1284,1285,5,79,0,0,1285,1286,5,82,0,0,1286,1287,5,77,0,0,1287,1288,5,46,0,0,1288,1289,5,83,0,0,1289,1290,5,46,0,0,1290,1291,5,73,0,0,1291,1292,5,78,0,0,1292,1294,5,86,0,0,1293,1275,1,0,0,0,1293,1283,1,0,0,0,1294,206,1,0,0,0,1295,1296,5,70,0,0,1296,1297,5,73,0,0,1297,1298,5,83,0,0,1298,1299,5,72,0,0,1299,1300,5,69,0,0,1300,1301,5,82,0,0,1301,208,1,0,0,0,1302,1303,5,70,0,0,1303,1304,5,73,0,0,1304,1305,5,83,0,0,1305,1306,5,72,0,0,1306,1307,5,69,0,0,1307,1308,5,82,0,0,1308,1309,5,73,0,0,1309,1310,5,78,0,0,1310,1311,5,86,0,0,1311,210,1,0,0,0,1312,1313,5,71,0,0,1313,1314,5,65,0,0,1314,1315,5,77,0,0,1315,1316,5,77,0,0,1316,1317,5,65,0,0,1317,1318,5,76,0,0,1318,1335,5,78,0,0,1319,1320,5,71,0,0,1320,1321,5,65,0,0,1321,1322,5,77,0,0,1322,1323,5,77,0,0,1323,1324,5,65,0,0,1324,1325,5,76,0,0,1325,1326,5,78,0,0,1326,1327,5,46,0,0,1327,1328,5,80,0,0,1328,1329,5,82,0,0,1329,1330,5,69,0,0,1330,1331,5,67,0,0,1331,1332,5,73,0,0,1332,1333,5,83,0,0,1333,1335,5,69,0,0,1334,1312,1,0,0,0,1334,1319,1,0,0,0,1335,212,1,0,0,0,1336,1337,5,85,0,0,1337,1338,5,82,0,0,1338,1339,5,76,0,0,1339,1340,5,69,0,0,1340,1341,5,78,0,0,1341,1342,5,67,0,0,1342,1343,5,79,0,0,1343,1344,5,68,0,0,1344,1345,5,69,0,0,1345,214,1,0,0,0,1346,1347,5,85,0,0,1347,1348,5,82,0,0,1348,1349,5,76,0,0,1349,1350,5,68,0,0,1350,1351,5,69,0,0,1351,1352,5,67,0,0,1352,1353,5,79,0,0,1353,1354,5,68,0,0,1354,1355,5,69,0,0,1355,216,1,0,0,0,1356,1357,5,72,0,0,1357,1358,5,84,0,0,1358,1359,5,77,0,0,1359,1360,5,76,0,0,1360,1361,5,69,0,0,1361,1362,5,78,0,0,1362,1363,5,67,0,0,1363,1364,5,79,0,0,1364,1365,5,68,0,0,1365,1366,5,69,0,0,1366,218,1,0,0,0,1367,1368,5,72,0,0,1368,1369,5,84,0,0,1369,1370,5,77,0,0,1370,1371,5,76,0,0,1371,1372,5,68,0,0,1372,1373,5,69,0,0,1373,1374,5,67,0,0,1374,1375,5,79,0,0,1375,1376,5,68,0,0,1376,1377,5,69,0,0,1377,220,1,0,0,0,1378,1379,5,66,0,0,1379,1380,5,65,0,0,1380,1381,5,83,0,0,1381,1382,5,69,0,0,1382,1383,5,54,0,0,1383,1384,5,52,0,0,1384,1385,5,84,0,0,1385,1386,5,79,0,0,1386,1387,5,84,0,0,1387,1388,5,69,0,0,1388,1389,5,88,0,0,1389,1390,5,84,0,0,1390,222,1,0,0,0,1391,1392,5,66,0,0,1392,1393,5,65,0,0,1393,1394,5,83,0,0,1394,1395,5,69,0,0,1395,1396,5,54,0,0,1396,1397,5,52,0,0,1397,1398,5,85,0,0,1398,1399,5,82,0,0,1399,1400,5,76,0,0,1400,1401,5,84,0,0,1401,1402,5,79,0,0,1402,1403,5,84,0,0,1403,1404,5,69,0,0,1404,1405,5,88,0,0,1405,1406,5,84,0,0,1406,224,1,0,0,0,1407,1408,5,84,0,0,1408,1409,5,69,0,0,1409,1410,5,88,0,0,1410,1411,5,84,0,0,1411,1412,5,84,0,0,1412,1413,5,79,0,0,1413,1414,5,66,0,0,1414,1415,5,65,0,0,1415,1416,5,83,0,0,1416,1417,5,69,0,0,1417,1418,5,54,0,0,1418,1419,5,52,0,0,1419,226,1,0,0,0,1420,1421,5,84,0,0,1421,1422,5,69,0,0,1422,1423,5,88,0,0,1423,1424,5,84,0,0,1424,1425,5,84,0,0,1425,1426,5,79,0,0,1426,1427,5,66,0,0,1427,1428,5,65,0,0,1428,1429,5,83,0,0,1429,1430,5,69,0,0,1430,1431,5,54,0,0,1431,1432,5,52,0,0,1432,1433,5,85,0,0,1433,1434,5,82,0,0,1434,1435,5,76,0,0,1435,228,1,0,0,0,1436,1437,5,73,0,0,1437,1438,5,83,0,0,1438,1439,5,78,0,0,1439,1440,5,85,0,0,1440,1441,5,76,0,0,1441,1442,5,76,0,0,1442,1443,5,79,0,0,1443,1444,5,82,0,0,1444,1445,5,69,0,0,1445,1446,5,77,0,0,1446,1447,5,80,0,0,1447,1448,5,84,0,0,1448,1449,5,89,0,0,1449,230,1,0,0,0,1450,1451,5,73,0,0,1451,1452,5,83,0,0,1452,1453,5,78,0,0,1453,1454,5,85,0,0,1454,1455,5,76,0,0,1455,1456,5,76,0,0,1456,1457,5,79,0,0,1457,1458,5,82,0,0,1458,1459,5,87,0,0,1459,1460,5,72,0,0,1460,1461,5,73,0,0,1461,1462,5,84,0,0,1462,1463,5,69,0,0,1463,1464,5,83,0,0,1464,1465,5,80,0,0,1465,1466,5,65,0,0,1466,1467,5,67,0,0,1467,1468,5,69,0,0,1468,232,1,0,0,0,1469,1470,5,74,0,0,1470,1471,5,83,0,0,1471,1472,5,79,0,0,1472,1473,5,78,0,0,1473,234,1,0,0,0,1474,1475,5,84,0,0,1475,236,1,0,0,0,1476,1477,5,82,0,0,1477,1478,5,77,0,0,1478,1479,5,66,0,0,1479,238,1,0,0,0,1480,1481,5,77,0,0,1481,1482,5,68,0,0,1482,1483,5,53,0,0,1483,240,1,0,0,0,1484,1485,5,83,0,0,1485,1486,5,72,0,0,1486,1487,5,65,0,0,1487,1488,5,49,0,0,1488,242,1,0,0,0,1489,1490,5,83,0,0,1490,1491,5,72,0,0,1491,1492,5,65,0,0,1492,1493,5,50,0,0,1493,1494,5,53,0,0,1494,1495,5,54,0,0,1495,244,1,0,0,0,1496,1497,5,83,0,0,1497,1498,5,72,0,0,1498,1499,5,65,0,0,1499,1500,5,53,0,0,1500,1501,5,49,0,0,1501,1502,5,50,0,0,1502,246,1,0,0,0,1503,1504,5,68,0,0,1504,1505,5,69,0,0,1505,1506,5,67,0,0,1506,1507,5,50,0,0,1507,1508,5,66,0,0,1508,1509,5,73,0,0,1509,1510,5,78,0,0,1510,248,1,0,0,0,1511,1512,5,68,0,0,1512,1513,5,69,0,0,1513,1514,5,67,0,0,1514,1515,5,50,0,0,1515,1516,5,72,0,0,1516,1517,5,69,0,0,1517,1518,5,88,0,0,1518,250,1,0,0,0,1519,1520,5,68,0,0,1520,1521,5,69,0,0,1521,1522,5,67,0,0,1522,1523,5,50,0,0,1523,1524,5,79,0,0,1524,1525,5,67,0,0,1525,1526,5,84,0,0,1526,252,1,0,0,0,1527,1528,5,72,0,0,1528,1529,5,69,0,0,1529,1530,5,88,0,0,1530,1531,5,50,0,0,1531,1532,5,66,0,0,1532,1533,5,73,0,0,1533,1534,5,78,0,0,1534,254,1,0,0,0,1535,1536,5,72,0,0,1536,1537,5,69,0,0,1537,1538,5,88,0,0,1538,1539,5,50,0,0,1539,1540,5,68,0,0,1540,1541,5,69,0,0,1541,1542,5,67,0,0,1542,256,1,0,0,0,1543,1544,5,72,0,0,1544,1545,5,69,0,0,1545,1546,5,88,0,0,1546,1547,5,50,0,0,1547,1548,5,79,0,0,1548,1549,5,67,0,0,1549,1550,5,84,0,0,1550,258,1,0,0,0,1551,1552,5,79,0,0,1552,1553,5,67,0,0,1553,1554,5,84,0,0,1554,1555,5,50,0,0,1555,1556,5,66,0,0,1556,1557,5,73,0,0,1557,1558,5,78,0,0,1558,260,1,0,0,0,1559,1560,5,79,0,0,1560,1561,5,67,0,0,1561,1562,5,84,0,0,1562,1563,5,50,0,0,1563,1564,5,68,0,0,1564,1565,5,69,0,0,1565,1566,5,67,0,0,1566,262,1,0,0,0,1567,1568,5,79,0,0,1568,1569,5,67,0,0,1569,1570,5,84,0,0,1570,1571,5,50,0,0,1571,1572,5,72,0,0,1572,1573,5,69,0,0,1573,1574,5,88,0,0,1574,264,1,0,0,0,1575,1576,5,66,0,0,1576,1577,5,73,0,0,1577,1578,5,78,0,0,1578,1579,5,50,0,0,1579,1580,5,79,0,0,1580,1581,5,67,0,0,1581,1582,5,84,0,0,1582,266,1,0,0,0,1583,1584,5,66,0,0,1584,1585,5,73,0,0,1585,1586,5,78,0,0,1586,1587,5,50,0,0,1587,1588,5,68,0,0,1588,1589,5,69,0,0,1589,1590,5,67,0,0,1590,268,1,0,0,0,1591,1592,5,66,0,0,1592,1593,5,73,0,0,1593,1594,5,78,0,0,1594,1595,5,50,0,0,1595,1596,5,72,0,0,1596,1597,5,69,0,0,1597,1598,5,88,0,0,1598,270,1,0,0,0,1599,1600,5,73,0,0,1600,1601,5,83,0,0,1601,1602,5,69,0,0,1602,1603,5,82,0,0,1603,1604,5,82,0,0,1604,1605,5,79,0,0,1605,1606,5,82,0,0,1606,272,1,0,0,0,1607,1608,5,73,0,0,1608,1609,5,83,0,0,1609,1610,5,78,0,0,1610,1611,5,85,0,0,1611,1612,5,76,0,0,1612,1613,5,76,0,0,1613,274,1,0,0,0,1614,1615,5,73,0,0,1615,1616,5,83,0,0,1616,1617,5,78,0,0,1617,1618,5,85,0,0,1618,1619,5,76,0,0,1619,1620,5,76,0,0,1620,1621,5,79,0,0,1621,1622,5,82,0,0,1622,1623,5,69,0,0,1623,1624,5,82,0,0,1624,1625,5,82,0,0,1625,1626,5,79,0,0,1626,1627,5,82,0,0,1627,276,1,0,0,0,1628,1629,5,84,0,0,1629,1630,5,82,0,0,1630,1631,5,85,0,0,1631,1632,5,78,0,0,1632,1633,5,67,0,0,1633,278,1,0,0,0,1634,1635,5,82,0,0,1635,1636,5,79,0,0,1636,1637,5,85,0,0,1637,1638,5,78,0,0,1638,1639,5,68,0,0,1639,280,1,0,0,0,1640,1641,5,67,0,0,1641,1642,5,69,0,0,1642,1643,5,73,0,0,1643,1644,5,76,0,0,1644,1645,5,73,0,0,1645,1646,5,78,0,0,1646,1647,5,71,0,0,1647,282,1,0,0,0,1648,1649,5,70,0,0,1649,1650,5,76,0,0,1650,1651,5,79,0,0,1651,1652,5,79,0,0,1652,1653,5,82,0,0,1653,284,1,0,0,0,1654,1655,5,76,0,0,1655,1656,5,79,0,0,1656,1657,5,71,0,0,1657,286,1,0,0,0,1658,1659,5,68,0,0,1659,1660,5,69,0,0,1660,1661,5,76,0,0,1661,1662,5,84,0,0,1662,1663,5,65,0,0,1663,288,1,0,0,0,1664,1665,5,71,0,0,1665,1666,5,69,0,0,1666,1667,5,83,0,0,1667,1668,5,84,0,0,1668,1669,5,69,0,0,1669,1670,5,80,0,0,1670,290,1,0,0,0,1671,1672,5,82,0,0,1672,1673,5,79,0,0,1673,1674,5,77,0,0,1674,1675,5,65,0,0,1675,1676,5,78,0,0,1676,292,1,0,0,0,1677,1678,5,76,0,0,1678,1679,5,69,0,0,1679,1680,5,70,0,0,1680,1681,5,84,0,0,1681,294,1,0,0,0,1682,1683,5,82,0,0,1683,1684,5,73,0,0,1684,1685,5,71,0,0,1685,1686,5,72,0,0,1686,1687,5,84,0,0,1687,296,1,0,0,0,1688,1689,5,83,0,0,1689,1690,5,69,0,0,1690,1691,5,65,0,0,1691,1692,5,82,0,0,1692,1693,5,67,0,0,1693,1694,5,72,0,0,1694,298,1,0,0,0,1695,1696,5,87,0,0,1696,1697,5,69,0,0,1697,1698,5,69,0,0,1698,1699,5,75,0,0,1699,1700,5,68,0,0,1700,1701,5,65,0,0,1701,1702,5,89,0,0,1702,300,1,0,0,0,1703,1704,5,87,0,0,1704,1705,5,69,0,0,1705,1706,5,69,0,0,1706,1707,5,75,0,0,1707,1708,5,78,0,0,1708,1709,5,85,0,0,1709,1710,5,77,0,0,1710,302,1,0,0,0,1711,1712,5,73,0,0,1712,1713,5,82,0,0,1713,1714,5,82,0,0,1714,304,1,0,0,0,1715,1716,5,84,0,0,1716,1717,5,82,0,0,1717,1718,5,73,0,0,1718,1719,5,77,0,0,1719,1720,5,83,0,0,1720,1721,5,84,0,0,1721,1722,5,65,0,0,1722,1723,5,82,0,0,1723,1730,5,84,0,0,1724,1725,5,76,0,0,1725,1726,5,84,0,0,1726,1727,5,82,0,0,1727,1728,5,73,0,0,1728,1730,5,77,0,0,1729,1715,1,0,0,0,1729,1724,1,0,0,0,1730,306,1,0,0,0,1731,1732,5,84,0,0,1732,1733,5,82,0,0,1733,1734,5,73,0,0,1734,1735,5,77,0,0,1735,1736,5,69,0,0,1736,1737,5,78,0,0,1737,1744,5,68,0,0,1738,1739,5,82,0,0,1739,1740,5,84,0,0,1740,1741,5,82,0,0,1741,1742,5,73,0,0,1742,1744,5,77,0,0,1743,1731,1,0,0,0,1743,1738,1,0,0,0,1744,308,1,0,0,0,1745,1746,5,84,0,0,1746,1747,5,73,0,0,1747,1748,5,77,0,0,1748,1749,5,69,0,0,1749,1750,5,83,0,0,1750,1751,5,84,0,0,1751,1752,5,65,0,0,1752,1753,5,77,0,0,1753,1754,5,80,0,0,1754,310,1,0,0,0,1755,1756,5,80,0,0,1756,1757,5,65,0,0,1757,1758,5,82,0,0,1758,1759,5,65,0,0,1759,1782,5,77,0,0,1760,1761,5,80,0,0,1761,1762,5,65,0,0,1762,1763,5,82,0,0,1763,1764,5,65,0,0,1764,1765,5,77,0,0,1765,1766,5,69,0,0,1766,1767,5,84,0,0,1767,1768,5,69,0,0,1768,1782,5,82,0,0,1769,1770,5,71,0,0,1770,1771,5,69,0,0,1771,1772,5,84,0,0,1772,1773,5,80,0,0,1773,1774,5,65,0,0,1774,1775,5,82,0,0,1775,1776,5,65,0,0,1776,1777,5,77,0,0,1777,1778,5,69,0,0,1778,1779,5,84,0,0,1779,1780,5,69,0,0,1780,1782,5,82,0,0,1781,1755,1,0,0,0,1781,1760,1,0,0,0,1781,1769,1,0,0,0,1782,312,1,0,0,0,1783,1784,5,68,0,0,1784,1785,5,65,0,0,1785,1786,5,84,0,0,1786,1787,5,69,0,0,1787,1788,5,86,0,0,1788,1789,5,65,0,0,1789,1790,5,76,0,0,1790,1791,5,85,0,0,1791,1792,5,69,0,0,1792,314,1,0,0,0,1793,1794,5,68,0,0,1794,1795,5,65,0,0,1795,1796,5,89,0,0,1796,1797,5,83,0,0,1797,1798,5,51,0,0,1798,1799,5,54,0,0,1799,1800,5,48,0,0,1800,316,1,0,0,0,1801,1802,5,78,0,0,1802,1803,5,69,0,0,1803,1804,5,84,0,0,1804,1805,5,87,0,0,1805,1806,5,79,0,0,1806,1807,5,82,0,0,1807,1808,5,75,0,0,1808,1809,5,68,0,0,1809,1810,5,65,0,0,1810,1811,5,89,0,0,1811,1812,5,83,0,0,1812,318,1,0,0,0,1813,1814,5,87,0,0,1814,1815,5,79,0,0,1815,1816,5,82,0,0,1816,1817,5,75,0,0,1817,1818,5,68,0,0,1818,1819,5,65,0,0,1819,1820,5,89,0,0,1820,320,1,0,0,0,1821,1822,5,65,0,0,1822,1823,5,86,0,0,1823,1824,5,69,0,0,1824,1825,5,82,0,0,1825,1826,5,65,0,0,1826,1827,5,71,0,0,1827,1828,5,69,0,0,1828,1829,5,73,0,0,1829,1830,5,70,0,0,1830,322,1,0,0,0,1831,1832,5,83,0,0,1832,1833,5,85,0,0,1833,1834,5,77,0,0,1834,1835,5,73,0,0,1835,1836,5,70,0,0,1836,324,1,0,0,0,1837,1838,5,88,0,0,1838,1839,5,73,0,0,1839,1840,5,82,0,0,1840,1841,5,82,0,0,1841,326,1,0,0,0,1842,1843,5,73,0,0,1843,1844,5,70,0,0,1844,328,1,0,0,0,1845,1846,5,73,0,0,1846,1847,5,70,0,0,1847,1848,5,69,0,0,1848,1849,5,82,0,0,1849,1850,5,82,0,0,1850,1851,5,79,0,0,1851,1852,5,82,0,0,1852,330,1,0,0,0,1853,1854,5,84,0,0,1854,1855,5,73,0,0,1855,1856,5,77,0,0,1856,1857,5,69,0,0,1857,332,1,0,0,0,1858,1859,5,89,0,0,1859,1860,5,69,0,0,1860,1861,5,65,0,0,1861,1862,5,82,0,0,1862,1863,5,70,0,0,1863,1864,5,82,0,0,1864,1865,5,65,0,0,1865,1866,5,67,0,0,1866,334,1,0,0,0,1867,1868,5,83,0,0,1868,1869,5,85,0,0,1869,1870,5,66,0,0,1870,1871,5,83,0,0,1871,1872,5,84,0,0,1872,1873,5,82,0,0,1873,1874,5,73,0,0,1874,1875,5,78,0,0,1875,1876,5,71,0,0,1876,336,1,0,0,0,1877,1878,5,83,0,0,1878,1879,5,84,0,0,1879,1880,5,65,0,0,1880,1881,5,82,0,0,1881,1882,5,84,0,0,1882,1883,5,83,0,0,1883,1884,5,87,0,0,1884,1885,5,73,0,0,1885,1886,5,84,0,0,1886,1887,5,72,0,0,1887,338,1,0,0,0,1888,1889,5,69,0,0,1889,1890,5,78,0,0,1890,1891,5,68,0,0,1891,1892,5,83,0,0,1892,1893,5,87,0,0,1893,1894,5,73,0,0,1894,1895,5,84,0,0,1895,1896,5,72,0,0,1896,340,1,0,0,0,1897,1898,5,70,0,0,1898,1899,5,73,0,0,1899,1900,5,78,0,0,1900,1901,5,68,0,0,1901,342,1,0,0,0,1902,1903,5,82,0,0,1903,1904,5,65,0,0,1904,1905,5,78,0,0,1905,1906,5,75,0,0,1906,344,1,0,0,0,1907,1908,5,83,0,0,1908,1909,5,85,0,0,1909,1910,5,66,0,0,1910,1911,5,83,0,0,1911,1912,5,84,0,0,1912,1913,5,73,0,0,1913,1914,5,84,0,0,1914,1915,5,85,0,0,1915,1916,5,84,0,0,1916,1917,5,69,0,0,1917,346,1,0,0,0,1918,1919,5,82,0,0,1919,1920,5,69,0,0,1920,1921,5,80,0,0,1921,1922,5,76,0,0,1922,1923,5,65,0,0,1923,1924,5,67,0,0,1924,1925,5,69,0,0,1925,348,1,0,0,0,1926,1927,5,68,0,0,1927,1928,5,66,0,0,1928,350,1,0,0,0,1929,1930,5,68,0,0,1930,1931,5,68,0,0,1931,1932,5,66,0,0,1932,352,1,0,0,0,1933,1934,5,70,0,0,1934,1935,5,73,0,0,1935,1936,5,88,0,0,1936,1937,5,69,0,0,1937,1938,5,68,0,0,1938,354,1,0,0,0,1939,1940,5,82,0,0,1940,1941,5,69,0,0,1941,1942,5,77,0,0,1942,1943,5,79,0,0,1943,1944,5,86,0,0,1944,1945,5,69,0,0,1945,1946,5,83,0,0,1946,1947,5,84,0,0,1947,1948,5,65,0,0,1948,1949,5,82,0,0,1949,1950,5,84,0,0,1950,356,1,0,0,0,1951,1952,5,82,0,0,1952,1953,5,69,0,0,1953,1954,5,77,0,0,1954,1955,5,79,0,0,1955,1956,5,86,0,0,1956,1957,5,69,0,0,1957,1958,5,69,0,0,1958,1959,5,78,0,0,1959,1960,5,68,0,0,1960,358,1,0,0,0,1961,1962,5,65,0,0,1962,1963,5,82,0,0,1963,1964,5,82,0,0,1964,1965,5,65,0,0,1965,1966,5,89,0,0,1966,360,1,0,0,0,1967,1968,5,65,0,0,1968,1969,5,78,0,0,1969,1970,5,68,0,0,1970,362,1,0,0,0,1971,1972,5,79,0,0,1972,1973,5,82,0,0,1973,364,1,0,0,0,1974,1975,5,88,0,0,1975,1976,5,79,0,0,1976,1977,5,82,0,0,1977,366,1,0,0,0,1978,1979,5,71,0,0,1979,1980,5,67,0,0,1980,1981,5,68,0,0,1981,368,1,0,0,0,1982,1983,5,76,0,0,1983,1984,5,67,0,0,1984,1985,5,77,0,0,1985,370,1,0,0,0,1986,1987,5,77,0,0,1987,1988,5,85,0,0,1988,1989,5,76,0,0,1989,1990,5,84,0,0,1990,1991,5,73,0,0,1991,1992,5,78,0,0,1992,1993,5,79,0,0,1993,1994,5,77,0,0,1994,1995,5,73,0,0,1995,1996,5,65,0,0,1996,1997,5,76,0,0,1997,372,1,0,0,0,1998,1999,5,80,0,0,1999,2e3,5,82,0,0,2e3,2001,5,79,0,0,2001,2002,5,68,0,0,2002,2003,5,85,0,0,2003,2004,5,67,0,0,2004,2005,5,84,0,0,2005,374,1,0,0,0,2006,2007,5,83,0,0,2007,2008,5,85,0,0,2008,2009,5,77,0,0,2009,2010,5,83,0,0,2010,2011,5,81,0,0,2011,376,1,0,0,0,2012,2013,5,83,0,0,2013,2014,5,85,0,0,2014,2015,5,77,0,0,2015,2016,5,80,0,0,2016,2017,5,82,0,0,2017,2018,5,79,0,0,2018,2019,5,68,0,0,2019,2020,5,85,0,0,2020,2021,5,67,0,0,2021,2022,5,84,0,0,2022,378,1,0,0,0,2023,2024,5,67,0,0,2024,2025,5,79,0,0,2025,2026,5,78,0,0,2026,2027,5,67,0,0,2027,2028,5,65,0,0,2028,2029,5,84,0,0,2029,2030,5,69,0,0,2030,2031,5,78,0,0,2031,2032,5,65,0,0,2032,2033,5,84,0,0,2033,2041,5,69,0,0,2034,2035,5,67,0,0,2035,2036,5,79,0,0,2036,2037,5,78,0,0,2037,2038,5,67,0,0,2038,2039,5,65,0,0,2039,2041,5,84,0,0,2040,2023,1,0,0,0,2040,2034,1,0,0,0,2041,380,1,0,0,0,2042,2043,5,77,0,0,2043,2044,5,65,0,0,2044,2045,5,88,0,0,2045,382,1,0,0,0,2046,2047,5,77,0,0,2047,2048,5,69,0,0,2048,2049,5,68,0,0,2049,2050,5,73,0,0,2050,2051,5,65,0,0,2051,2052,5,78,0,0,2052,384,1,0,0,0,2053,2054,5,77,0,0,2054,2055,5,73,0,0,2055,2056,5,78,0,0,2056,386,1,0,0,0,2057,2058,5,77,0,0,2058,2059,5,79,0,0,2059,2060,5,68,0,0,2060,2061,5,69,0,0,2061,388,1,0,0,0,2062,2063,5,65,0,0,2063,2064,5,86,0,0,2064,2065,5,69,0,0,2065,2066,5,82,0,0,2066,2067,5,65,0,0,2067,2068,5,71,0,0,2068,2069,5,69,0,0,2069,390,1,0,0,0,2070,2071,5,71,0,0,2071,2072,5,69,0,0,2072,2073,5,79,0,0,2073,2074,5,77,0,0,2074,2075,5,69,0,0,2075,2076,5,65,0,0,2076,2077,5,78,0,0,2077,392,1,0,0,0,2078,2079,5,72,0,0,2079,2080,5,65,0,0,2080,2081,5,82,0,0,2081,2082,5,77,0,0,2082,2083,5,69,0,0,2083,2084,5,65,0,0,2084,2085,5,78,0,0,2085,394,1,0,0,0,2086,2087,5,67,0,0,2087,2088,5,79,0,0,2088,2089,5,85,0,0,2089,2090,5,78,0,0,2090,2091,5,84,0,0,2091,396,1,0,0,0,2092,2093,5,83,0,0,2093,2094,5,85,0,0,2094,2095,5,77,0,0,2095,398,1,0,0,0,2096,2097,5,65,0,0,2097,2098,5,86,0,0,2098,2099,5,69,0,0,2099,2100,5,68,0,0,2100,2101,5,69,0,0,2101,2102,5,86,0,0,2102,400,1,0,0,0,2103,2104,5,83,0,0,2104,2105,5,84,0,0,2105,2106,5,68,0,0,2106,2107,5,69,0,0,2107,2116,5,86,0,0,2108,2109,5,83,0,0,2109,2110,5,84,0,0,2110,2111,5,68,0,0,2111,2112,5,69,0,0,2112,2113,5,86,0,0,2113,2114,5,46,0,0,2114,2116,5,83,0,0,2115,2103,1,0,0,0,2115,2108,1,0,0,0,2116,402,1,0,0,0,2117,2118,5,83,0,0,2118,2119,5,84,0,0,2119,2120,5,68,0,0,2120,2121,5,69,0,0,2121,2122,5,86,0,0,2122,2131,5,80,0,0,2123,2124,5,83,0,0,2124,2125,5,84,0,0,2125,2126,5,68,0,0,2126,2127,5,69,0,0,2127,2128,5,86,0,0,2128,2129,5,46,0,0,2129,2131,5,80,0,0,2130,2117,1,0,0,0,2130,2123,1,0,0,0,2131,404,1,0,0,0,2132,2133,5,68,0,0,2133,2134,5,69,0,0,2134,2135,5,86,0,0,2135,2136,5,83,0,0,2136,2137,5,81,0,0,2137,406,1,0,0,0,2138,2139,5,86,0,0,2139,2140,5,65,0,0,2140,2147,5,82,0,0,2141,2142,5,86,0,0,2142,2143,5,65,0,0,2143,2144,5,82,0,0,2144,2145,5,46,0,0,2145,2147,5,83,0,0,2146,2138,1,0,0,0,2146,2141,1,0,0,0,2147,408,1,0,0,0,2148,2149,5,86,0,0,2149,2150,5,65,0,0,2150,2151,5,82,0,0,2151,2158,5,80,0,0,2152,2153,5,86,0,0,2153,2154,5,65,0,0,2154,2155,5,82,0,0,2155,2156,5,46,0,0,2156,2158,5,80,0,0,2157,2148,1,0,0,0,2157,2152,1,0,0,0,2158,410,1,0,0,0,2159,2160,5,78,0,0,2160,2161,5,80,0,0,2161,2162,5,86,0,0,2162,412,1,0,0,0,2163,2164,5,81,0,0,2164,2165,5,85,0,0,2165,2166,5,79,0,0,2166,2167,5,84,0,0,2167,2168,5,73,0,0,2168,2169,5,69,0,0,2169,2170,5,78,0,0,2170,2171,5,84,0,0,2171,414,1,0,0,0,2172,2173,5,77,0,0,2173,2174,5,79,0,0,2174,2175,5,68,0,0,2175,416,1,0,0,0,2176,2177,5,67,0,0,2177,2178,5,79,0,0,2178,2179,5,77,0,0,2179,2180,5,66,0,0,2180,2181,5,73,0,0,2181,2182,5,78,0,0,2182,418,1,0,0,0,2183,2184,5,80,0,0,2184,2185,5,69,0,0,2185,2186,5,82,0,0,2186,2187,5,77,0,0,2187,2188,5,85,0,0,2188,2189,5,84,0,0,2189,420,1,0,0,0,2190,2191,5,65,0,0,2191,2192,5,84,0,0,2192,2193,5,65,0,0,2193,2194,5,78,0,0,2194,2195,5,50,0,0,2195,422,1,0,0,0,2196,2197,5,82,0,0,2197,2198,5,79,0,0,2198,2199,5,85,0,0,2199,2200,5,78,0,0,2200,2201,5,68,0,0,2201,2202,5,68,0,0,2202,2203,5,79,0,0,2203,2204,5,87,0,0,2204,2205,5,78,0,0,2205,424,1,0,0,0,2206,2207,5,82,0,0,2207,2208,5,79,0,0,2208,2209,5,85,0,0,2209,2210,5,78,0,0,2210,2211,5,68,0,0,2211,2212,5,85,0,0,2212,2213,5,80,0,0,2213,426,1,0,0,0,2214,2215,5,77,0,0,2215,2216,5,82,0,0,2216,2217,5,79,0,0,2217,2218,5,85,0,0,2218,2219,5,78,0,0,2219,2220,5,68,0,0,2220,428,1,0,0,0,2221,2222,5,82,0,0,2222,2223,5,65,0,0,2223,2224,5,78,0,0,2224,2225,5,68,0,0,2225,2226,5,66,0,0,2226,2227,5,69,0,0,2227,2228,5,84,0,0,2228,2229,5,87,0,0,2229,2230,5,69,0,0,2230,2231,5,69,0,0,2231,2232,5,78,0,0,2232,430,1,0,0,0,2233,2234,5,80,0,0,2234,2235,5,79,0,0,2235,2236,5,87,0,0,2236,2237,5,69,0,0,2237,2238,5,82,0,0,2238,432,1,0,0,0,2239,2240,5,66,0,0,2240,2241,5,69,0,0,2241,2242,5,83,0,0,2242,2243,5,83,0,0,2243,2244,5,69,0,0,2244,2245,5,76,0,0,2245,2246,5,73,0,0,2246,434,1,0,0,0,2247,2248,5,66,0,0,2248,2249,5,69,0,0,2249,2250,5,83,0,0,2250,2251,5,83,0,0,2251,2252,5,69,0,0,2252,2253,5,76,0,0,2253,2254,5,74,0,0,2254,436,1,0,0,0,2255,2256,5,66,0,0,2256,2257,5,69,0,0,2257,2258,5,83,0,0,2258,2259,5,83,0,0,2259,2260,5,69,0,0,2260,2261,5,76,0,0,2261,2262,5,75,0,0,2262,438,1,0,0,0,2263,2264,5,66,0,0,2264,2265,5,69,0,0,2265,2266,5,83,0,0,2266,2267,5,83,0,0,2267,2268,5,69,0,0,2268,2269,5,76,0,0,2269,2270,5,89,0,0,2270,440,1,0,0,0,2271,2272,5,83,0,0,2272,2273,5,85,0,0,2273,2274,5,77,0,0,2274,2275,5,88,0,0,2275,2276,5,50,0,0,2276,2277,5,77,0,0,2277,2278,5,89,0,0,2278,2279,5,50,0,0,2279,442,1,0,0,0,2280,2281,5,83,0,0,2281,2282,5,85,0,0,2282,2283,5,77,0,0,2283,2284,5,88,0,0,2284,2285,5,50,0,0,2285,2286,5,80,0,0,2286,2287,5,89,0,0,2287,2288,5,50,0,0,2288,444,1,0,0,0,2289,2290,5,83,0,0,2290,2291,5,85,0,0,2291,2292,5,77,0,0,2292,2293,5,88,0,0,2293,2294,5,77,0,0,2294,2295,5,89,0,0,2295,2296,5,50,0,0,2296,446,1,0,0,0,2297,2298,5,69,0,0,2298,2299,5,88,0,0,2299,2300,5,65,0,0,2300,2301,5,67,0,0,2301,2302,5,84,0,0,2302,448,1,0,0,0,2303,2304,5,82,0,0,2304,2305,5,69,0,0,2305,2306,5,80,0,0,2306,2307,5,84,0,0,2307,450,1,0,0,0,2308,2309,5,84,0,0,2309,2310,5,69,0,0,2310,2311,5,88,0,0,2311,2312,5,84,0,0,2312,452,1,0,0,0,2313,2314,5,68,0,0,2314,2315,5,65,0,0,2315,2316,5,89,0,0,2316,2317,5,83,0,0,2317,454,1,0,0,0,2318,2319,5,69,0,0,2319,2320,5,68,0,0,2320,2321,5,65,0,0,2321,2322,5,84,0,0,2322,2323,5,69,0,0,2323,456,1,0,0,0,2324,2325,5,69,0,0,2325,2326,5,79,0,0,2326,2327,5,77,0,0,2327,2328,5,79,0,0,2328,2329,5,78,0,0,2329,2330,5,84,0,0,2330,2331,5,72,0,0,2331,458,1,0,0,0,2332,2333,5,81,0,0,2333,2334,5,85,0,0,2334,2335,5,65,0,0,2335,2336,5,82,0,0,2336,2337,5,84,0,0,2337,2338,5,73,0,0,2338,2339,5,76,0,0,2339,2340,5,69,0,0,2340,460,1,0,0,0,2341,2342,5,76,0,0,2342,2343,5,65,0,0,2343,2344,5,82,0,0,2344,2345,5,71,0,0,2345,2346,5,69,0,0,2346,462,1,0,0,0,2347,2348,5,83,0,0,2348,2349,5,77,0,0,2349,2350,5,65,0,0,2350,2351,5,76,0,0,2351,2352,5,76,0,0,2352,464,1,0,0,0,2353,2354,5,80,0,0,2354,2355,5,69,0,0,2355,2356,5,82,0,0,2356,2357,5,67,0,0,2357,2358,5,69,0,0,2358,2359,5,78,0,0,2359,2360,5,84,0,0,2360,2361,5,73,0,0,2361,2362,5,76,0,0,2362,2378,5,69,0,0,2363,2364,5,80,0,0,2364,2365,5,69,0,0,2365,2366,5,82,0,0,2366,2367,5,67,0,0,2367,2368,5,69,0,0,2368,2369,5,78,0,0,2369,2370,5,84,0,0,2370,2371,5,73,0,0,2371,2372,5,76,0,0,2372,2373,5,69,0,0,2373,2374,5,46,0,0,2374,2375,5,73,0,0,2375,2376,5,78,0,0,2376,2378,5,67,0,0,2377,2353,1,0,0,0,2377,2363,1,0,0,0,2378,466,1,0,0,0,2379,2380,5,80,0,0,2380,2381,5,69,0,0,2381,2382,5,82,0,0,2382,2383,5,67,0,0,2383,2384,5,69,0,0,2384,2385,5,78,0,0,2385,2386,5,84,0,0,2386,2387,5,82,0,0,2387,2388,5,65,0,0,2388,2389,5,78,0,0,2389,2406,5,75,0,0,2390,2391,5,80,0,0,2391,2392,5,69,0,0,2392,2393,5,82,0,0,2393,2394,5,67,0,0,2394,2395,5,69,0,0,2395,2396,5,78,0,0,2396,2397,5,84,0,0,2397,2398,5,82,0,0,2398,2399,5,65,0,0,2399,2400,5,78,0,0,2400,2401,5,75,0,0,2401,2402,5,46,0,0,2402,2403,5,73,0,0,2403,2404,5,78,0,0,2404,2406,5,67,0,0,2405,2379,1,0,0,0,2405,2390,1,0,0,0,2406,468,1,0,0,0,2407,2408,5,67,0,0,2408,2409,5,79,0,0,2409,2410,5,86,0,0,2410,2411,5,65,0,0,2411,2425,5,82,0,0,2412,2413,5,67,0,0,2413,2414,5,79,0,0,2414,2415,5,86,0,0,2415,2416,5,65,0,0,2416,2417,5,82,0,0,2417,2418,5,73,0,0,2418,2419,5,65,0,0,2419,2420,5,78,0,0,2420,2421,5,67,0,0,2421,2422,5,69,0,0,2422,2423,5,46,0,0,2423,2425,5,80,0,0,2424,2407,1,0,0,0,2424,2412,1,0,0,0,2425,470,1,0,0,0,2426,2427,5,67,0,0,2427,2428,5,79,0,0,2428,2429,5,86,0,0,2429,2430,5,65,0,0,2430,2431,5,82,0,0,2431,2432,5,73,0,0,2432,2433,5,65,0,0,2433,2434,5,78,0,0,2434,2435,5,67,0,0,2435,2436,5,69,0,0,2436,2437,5,46,0,0,2437,2438,5,83,0,0,2438,472,1,0,0,0,2439,2440,5,84,0,0,2440,2441,5,73,0,0,2441,2442,5,78,0,0,2442,2449,5,86,0,0,2443,2444,5,84,0,0,2444,2445,5,46,0,0,2445,2446,5,73,0,0,2446,2447,5,78,0,0,2447,2449,5,86,0,0,2448,2439,1,0,0,0,2448,2443,1,0,0,0,2449,474,1,0,0,0,2450,2451,5,82,0,0,2451,2452,5,69,0,0,2452,2453,5,71,0,0,2453,2454,5,69,0,0,2454,2455,5,88,0,0,2455,476,1,0,0,0,2456,2457,5,73,0,0,2457,2458,5,83,0,0,2458,2459,5,82,0,0,2459,2460,5,69,0,0,2460,2461,5,71,0,0,2461,2462,5,69,0,0,2462,2471,5,88,0,0,2463,2464,5,73,0,0,2464,2465,5,83,0,0,2465,2466,5,77,0,0,2466,2467,5,65,0,0,2467,2468,5,84,0,0,2468,2469,5,67,0,0,2469,2471,5,72,0,0,2470,2456,1,0,0,0,2470,2463,1,0,0,0,2471,478,1,0,0,0,2472,2473,5,72,0,0,2473,2474,5,77,0,0,2474,2475,5,65,0,0,2475,2476,5,67,0,0,2476,2477,5,77,0,0,2477,2478,5,68,0,0,2478,2479,5,53,0,0,2479,480,1,0,0,0,2480,2481,5,72,0,0,2481,2482,5,77,0,0,2482,2483,5,65,0,0,2483,2484,5,67,0,0,2484,2485,5,83,0,0,2485,2486,5,72,0,0,2486,2487,5,65,0,0,2487,2488,5,49,0,0,2488,482,1,0,0,0,2489,2490,5,72,0,0,2490,2491,5,77,0,0,2491,2492,5,65,0,0,2492,2493,5,67,0,0,2493,2494,5,83,0,0,2494,2495,5,72,0,0,2495,2496,5,65,0,0,2496,2497,5,50,0,0,2497,2498,5,53,0,0,2498,2499,5,54,0,0,2499,484,1,0,0,0,2500,2501,5,72,0,0,2501,2502,5,77,0,0,2502,2503,5,65,0,0,2503,2504,5,67,0,0,2504,2505,5,83,0,0,2505,2506,5,72,0,0,2506,2507,5,65,0,0,2507,2508,5,53,0,0,2508,2509,5,49,0,0,2509,2510,5,50,0,0,2510,486,1,0,0,0,2511,2512,5,83,0,0,2512,2513,5,80,0,0,2513,2514,5,76,0,0,2514,2515,5,73,0,0,2515,2516,5,84,0,0,2516,488,1,0,0,0,2517,2518,5,76,0,0,2518,2519,5,79,0,0,2519,2520,5,79,0,0,2520,2521,5,75,0,0,2521,2522,5,67,0,0,2522,2523,5,69,0,0,2523,2524,5,73,0,0,2524,2525,5,76,0,0,2525,2526,5,73,0,0,2526,2527,5,78,0,0,2527,2528,5,71,0,0,2528,490,1,0,0,0,2529,2530,5,76,0,0,2530,2531,5,79,0,0,2531,2532,5,79,0,0,2532,2533,5,75,0,0,2533,2534,5,70,0,0,2534,2535,5,76,0,0,2535,2536,5,79,0,0,2536,2537,5,79,0,0,2537,2538,5,82,0,0,2538,492,1,0,0,0,2539,2540,5,65,0,0,2540,2541,5,68,0,0,2541,2542,5,68,0,0,2542,2543,5,89,0,0,2543,2544,5,69,0,0,2544,2545,5,65,0,0,2545,2546,5,82,0,0,2546,2547,5,83,0,0,2547,494,1,0,0,0,2548,2549,5,65,0,0,2549,2550,5,68,0,0,2550,2551,5,68,0,0,2551,2552,5,77,0,0,2552,2553,5,79,0,0,2553,2554,5,78,0,0,2554,2555,5,84,0,0,2555,2556,5,72,0,0,2556,2557,5,83,0,0,2557,496,1,0,0,0,2558,2559,5,65,0,0,2559,2560,5,68,0,0,2560,2561,5,68,0,0,2561,2562,5,68,0,0,2562,2563,5,65,0,0,2563,2564,5,89,0,0,2564,2565,5,83,0,0,2565,498,1,0,0,0,2566,2567,5,65,0,0,2567,2568,5,68,0,0,2568,2569,5,68,0,0,2569,2570,5,72,0,0,2570,2571,5,79,0,0,2571,2572,5,85,0,0,2572,2573,5,82,0,0,2573,2574,5,83,0,0,2574,500,1,0,0,0,2575,2576,5,65,0,0,2576,2577,5,68,0,0,2577,2578,5,68,0,0,2578,2579,5,77,0,0,2579,2580,5,73,0,0,2580,2581,5,78,0,0,2581,2582,5,85,0,0,2582,2583,5,84,0,0,2583,2584,5,69,0,0,2584,2585,5,83,0,0,2585,502,1,0,0,0,2586,2587,5,65,0,0,2587,2588,5,68,0,0,2588,2589,5,68,0,0,2589,2590,5,83,0,0,2590,2591,5,69,0,0,2591,2592,5,67,0,0,2592,2593,5,79,0,0,2593,2594,5,78,0,0,2594,2595,5,68,0,0,2595,2596,5,83,0,0,2596,504,1,0,0,0,2597,2598,5,72,0,0,2598,2599,5,65,0,0,2599,2626,5,83,0,0,2600,2601,5,72,0,0,2601,2602,5,65,0,0,2602,2603,5,83,0,0,2603,2604,5,75,0,0,2604,2605,5,69,0,0,2605,2626,5,89,0,0,2606,2607,5,67,0,0,2607,2608,5,79,0,0,2608,2609,5,78,0,0,2609,2610,5,84,0,0,2610,2611,5,65,0,0,2611,2612,5,73,0,0,2612,2613,5,78,0,0,2613,2626,5,83,0,0,2614,2615,5,67,0,0,2615,2616,5,79,0,0,2616,2617,5,78,0,0,2617,2618,5,84,0,0,2618,2619,5,65,0,0,2619,2620,5,73,0,0,2620,2621,5,78,0,0,2621,2622,5,83,0,0,2622,2623,5,75,0,0,2623,2624,5,69,0,0,2624,2626,5,89,0,0,2625,2597,1,0,0,0,2625,2600,1,0,0,0,2625,2606,1,0,0,0,2625,2614,1,0,0,0,2626,506,1,0,0,0,2627,2628,5,72,0,0,2628,2629,5,65,0,0,2629,2630,5,83,0,0,2630,2631,5,86,0,0,2631,2632,5,65,0,0,2632,2633,5,76,0,0,2633,2634,5,85,0,0,2634,2649,5,69,0,0,2635,2636,5,67,0,0,2636,2637,5,79,0,0,2637,2638,5,78,0,0,2638,2639,5,84,0,0,2639,2640,5,65,0,0,2640,2641,5,73,0,0,2641,2642,5,78,0,0,2642,2643,5,83,0,0,2643,2644,5,86,0,0,2644,2645,5,65,0,0,2645,2646,5,76,0,0,2646,2647,5,85,0,0,2647,2649,5,69,0,0,2648,2627,1,0,0,0,2648,2635,1,0,0,0,2649,508,1,0,0,0,2650,2651,5,73,0,0,2651,2652,5,78,0,0,2652,2653,5,84,0,0,2653,2654,5,69,0,0,2654,2655,5,82,0,0,2655,2656,5,67,0,0,2656,2657,5,69,0,0,2657,2658,5,80,0,0,2658,2659,5,84,0,0,2659,510,1,0,0,0,2660,2661,5,83,0,0,2661,2662,5,76,0,0,2662,2663,5,79,0,0,2663,2664,5,80,0,0,2664,2665,5,69,0,0,2665,512,1,0,0,0,2666,2667,5,67,0,0,2667,2668,5,79,0,0,2668,2669,5,82,0,0,2669,2670,5,82,0,0,2670,2671,5,69,0,0,2671,2672,5,76,0,0,2672,514,1,0,0,0,2673,2674,5,80,0,0,2674,2675,5,69,0,0,2675,2676,5,65,0,0,2676,2677,5,82,0,0,2677,2678,5,83,0,0,2678,2679,5,79,0,0,2679,2680,5,78,0,0,2680,516,1,0,0,0,2681,2682,5,67,0,0,2682,2683,5,79,0,0,2683,2684,5,85,0,0,2684,2685,5,78,0,0,2685,2686,5,84,0,0,2686,2687,5,73,0,0,2687,2688,5,70,0,0,2688,518,1,0,0,0,2689,2690,5,70,0,0,2690,2691,5,79,0,0,2691,2692,5,82,0,0,2692,2693,5,69,0,0,2693,2694,5,67,0,0,2694,2695,5,65,0,0,2695,2696,5,83,0,0,2696,2697,5,84,0,0,2697,520,1,0,0,0,2698,2699,5,78,0,0,2699,2700,5,79,0,0,2700,2701,5,82,0,0,2701,2702,5,77,0,0,2702,2703,5,73,0,0,2703,2704,5,78,0,0,2704,2714,5,86,0,0,2705,2706,5,78,0,0,2706,2707,5,79,0,0,2707,2708,5,82,0,0,2708,2709,5,77,0,0,2709,2710,5,46,0,0,2710,2711,5,73,0,0,2711,2712,5,78,0,0,2712,2714,5,86,0,0,2713,2698,1,0,0,0,2713,2705,1,0,0,0,2714,522,1,0,0,0,2715,2716,5,66,0,0,2716,2717,5,69,0,0,2717,2718,5,84,0,0,2718,2719,5,65,0,0,2719,2720,5,68,0,0,2720,2721,5,73,0,0,2721,2722,5,83,0,0,2722,2733,5,84,0,0,2723,2724,5,66,0,0,2724,2725,5,69,0,0,2725,2726,5,84,0,0,2726,2727,5,65,0,0,2727,2728,5,46,0,0,2728,2729,5,68,0,0,2729,2730,5,73,0,0,2730,2731,5,83,0,0,2731,2733,5,84,0,0,2732,2715,1,0,0,0,2732,2723,1,0,0,0,2733,524,1,0,0,0,2734,2735,5,66,0,0,2735,2736,5,69,0,0,2736,2737,5,84,0,0,2737,2738,5,65,0,0,2738,2739,5,73,0,0,2739,2740,5,78,0,0,2740,2750,5,86,0,0,2741,2742,5,66,0,0,2742,2743,5,69,0,0,2743,2744,5,84,0,0,2744,2745,5,65,0,0,2745,2746,5,46,0,0,2746,2747,5,73,0,0,2747,2748,5,78,0,0,2748,2750,5,86,0,0,2749,2734,1,0,0,0,2749,2741,1,0,0,0,2750,526,1,0,0,0,2751,2752,5,69,0,0,2752,2753,5,88,0,0,2753,2754,5,80,0,0,2754,2755,5,79,0,0,2755,2756,5,78,0,0,2756,2757,5,68,0,0,2757,2758,5,73,0,0,2758,2759,5,83,0,0,2759,2771,5,84,0,0,2760,2761,5,69,0,0,2761,2762,5,88,0,0,2762,2763,5,80,0,0,2763,2764,5,79,0,0,2764,2765,5,78,0,0,2765,2766,5,46,0,0,2766,2767,5,68,0,0,2767,2768,5,73,0,0,2768,2769,5,83,0,0,2769,2771,5,84,0,0,2770,2751,1,0,0,0,2770,2760,1,0,0,0,2771,528,1,0,0,0,2772,2773,5,70,0,0,2773,2774,5,68,0,0,2774,2775,5,73,0,0,2775,2776,5,83,0,0,2776,2784,5,84,0,0,2777,2778,5,70,0,0,2778,2779,5,46,0,0,2779,2780,5,68,0,0,2780,2781,5,73,0,0,2781,2782,5,83,0,0,2782,2784,5,84,0,0,2783,2772,1,0,0,0,2783,2777,1,0,0,0,2784,530,1,0,0,0,2785,2786,5,70,0,0,2786,2787,5,73,0,0,2787,2788,5,78,0,0,2788,2795,5,86,0,0,2789,2790,5,70,0,0,2790,2791,5,46,0,0,2791,2792,5,73,0,0,2792,2793,5,78,0,0,2793,2795,5,86,0,0,2794,2785,1,0,0,0,2794,2789,1,0,0,0,2795,532,1,0,0,0,2796,2797,5,71,0,0,2797,2798,5,65,0,0,2798,2799,5,77,0,0,2799,2800,5,77,0,0,2800,2801,5,65,0,0,2801,2802,5,73,0,0,2802,2803,5,78,0,0,2803,2814,5,86,0,0,2804,2805,5,71,0,0,2805,2806,5,65,0,0,2806,2807,5,77,0,0,2807,2808,5,77,0,0,2808,2809,5,65,0,0,2809,2810,5,46,0,0,2810,2811,5,73,0,0,2811,2812,5,78,0,0,2812,2814,5,86,0,0,2813,2796,1,0,0,0,2813,2804,1,0,0,0,2814,534,1,0,0,0,2815,2816,5,76,0,0,2816,2817,5,79,0,0,2817,2818,5,71,0,0,2818,2819,5,73,0,0,2819,2820,5,78,0,0,2820,2833,5,86,0,0,2821,2822,5,76,0,0,2822,2823,5,79,0,0,2823,2824,5,71,0,0,2824,2825,5,78,0,0,2825,2826,5,79,0,0,2826,2827,5,82,0,0,2827,2828,5,77,0,0,2828,2829,5,46,0,0,2829,2830,5,73,0,0,2830,2831,5,78,0,0,2831,2833,5,86,0,0,2832,2815,1,0,0,0,2832,2821,1,0,0,0,2833,536,1,0,0,0,2834,2835,5,88,0,0,2835,2836,5,78,0,0,2836,2837,5,80,0,0,2837,2838,5,86,0,0,2838,538,1,0,0,0,2839,2840,5,77,0,0,2840,2841,5,73,0,0,2841,2842,5,82,0,0,2842,2843,5,82,0,0,2843,540,1,0,0,0,2844,2845,5,83,0,0,2845,2846,5,76,0,0,2846,2847,5,78,0,0,2847,542,1,0,0,0,2848,2849,5,77,0,0,2849,2850,5,73,0,0,2850,2851,5,68,0,0,2851,544,1,0,0,0,2852,2853,5,68,0,0,2853,2854,5,65,0,0,2854,2855,5,84,0,0,2855,2856,5,69,0,0,2856,2857,5,68,0,0,2857,2858,5,73,0,0,2858,2859,5,70,0,0,2859,546,1,0,0,0,2860,2861,5,82,0,0,2861,2862,5,69,0,0,2862,2863,5,71,0,0,2863,2864,5,69,0,0,2864,2865,5,88,0,0,2865,2866,5,82,0,0,2866,2867,5,69,0,0,2867,2868,5,80,0,0,2868,2869,5,76,0,0,2869,2870,5,65,0,0,2870,2871,5,67,0,0,2871,2872,5,69,0,0,2872,548,1,0,0,0,2873,2874,5,76,0,0,2874,2875,5,79,0,0,2875,2876,5,71,0,0,2876,2877,5,78,0,0,2877,2878,5,79,0,0,2878,2879,5,82,0,0,2879,2880,5,77,0,0,2880,2881,5,68,0,0,2881,2882,5,73,0,0,2882,2883,5,83,0,0,2883,2897,5,84,0,0,2884,2885,5,76,0,0,2885,2886,5,79,0,0,2886,2887,5,71,0,0,2887,2888,5,78,0,0,2888,2889,5,79,0,0,2889,2890,5,82,0,0,2890,2891,5,77,0,0,2891,2892,5,46,0,0,2892,2893,5,68,0,0,2893,2894,5,73,0,0,2894,2895,5,83,0,0,2895,2897,5,84,0,0,2896,2873,1,0,0,0,2896,2884,1,0,0,0,2897,550,1,0,0,0,2898,2899,5,78,0,0,2899,2900,5,69,0,0,2900,2901,5,71,0,0,2901,2902,5,66,0,0,2902,2903,5,73,0,0,2903,2904,5,78,0,0,2904,2905,5,79,0,0,2905,2906,5,77,0,0,2906,2907,5,68,0,0,2907,2908,5,73,0,0,2908,2909,5,83,0,0,2909,2924,5,84,0,0,2910,2911,5,78,0,0,2911,2912,5,69,0,0,2912,2913,5,71,0,0,2913,2914,5,66,0,0,2914,2915,5,73,0,0,2915,2916,5,78,0,0,2916,2917,5,79,0,0,2917,2918,5,77,0,0,2918,2919,5,46,0,0,2919,2920,5,68,0,0,2920,2921,5,73,0,0,2921,2922,5,83,0,0,2922,2924,5,84,0,0,2923,2898,1,0,0,0,2923,2910,1,0,0,0,2924,552,1,0,0,0,2925,2926,5,80,0,0,2926,2927,5,79,0,0,2927,2928,5,73,0,0,2928,2929,5,83,0,0,2929,2930,5,83,0,0,2930,2931,5,79,0,0,2931,2945,5,78,0,0,2932,2933,5,80,0,0,2933,2934,5,79,0,0,2934,2935,5,73,0,0,2935,2936,5,83,0,0,2936,2937,5,83,0,0,2937,2938,5,79,0,0,2938,2939,5,78,0,0,2939,2940,5,46,0,0,2940,2941,5,68,0,0,2941,2942,5,73,0,0,2942,2943,5,83,0,0,2943,2945,5,84,0,0,2944,2925,1,0,0,0,2944,2932,1,0,0,0,2945,554,1,0,0,0,2946,2947,5,84,0,0,2947,2948,5,68,0,0,2948,2949,5,73,0,0,2949,2950,5,83,0,0,2950,2958,5,84,0,0,2951,2952,5,84,0,0,2952,2953,5,46,0,0,2953,2954,5,68,0,0,2954,2955,5,73,0,0,2955,2956,5,83,0,0,2956,2958,5,84,0,0,2957,2946,1,0,0,0,2957,2951,1,0,0,0,2958,556,1,0,0,0,2959,2960,5,78,0,0,2960,2961,5,79,0,0,2961,2962,5,82,0,0,2962,2963,5,77,0,0,2963,2964,5,68,0,0,2964,2965,5,73,0,0,2965,2966,5,83,0,0,2966,2977,5,84,0,0,2967,2968,5,78,0,0,2968,2969,5,79,0,0,2969,2970,5,82,0,0,2970,2971,5,77,0,0,2971,2972,5,46,0,0,2972,2973,5,68,0,0,2973,2974,5,73,0,0,2974,2975,5,83,0,0,2975,2977,5,84,0,0,2976,2959,1,0,0,0,2976,2967,1,0,0,0,2977,558,1,0,0,0,2978,2979,5,66,0,0,2979,2980,5,73,0,0,2980,2981,5,78,0,0,2981,2982,5,79,0,0,2982,2983,5,77,0,0,2983,2984,5,68,0,0,2984,2985,5,73,0,0,2985,2986,5,83,0,0,2986,2998,5,84,0,0,2987,2988,5,66,0,0,2988,2989,5,73,0,0,2989,2990,5,78,0,0,2990,2991,5,79,0,0,2991,2992,5,77,0,0,2992,2993,5,46,0,0,2993,2994,5,68,0,0,2994,2995,5,73,0,0,2995,2996,5,83,0,0,2996,2998,5,84,0,0,2997,2978,1,0,0,0,2997,2987,1,0,0,0,2998,560,1,0,0,0,2999,3e3,5,71,0,0,3e3,3001,5,65,0,0,3001,3002,5,77,0,0,3002,3003,5,77,0,0,3003,3004,5,65,0,0,3004,3005,5,68,0,0,3005,3006,5,73,0,0,3006,3007,5,83,0,0,3007,3019,5,84,0,0,3008,3009,5,71,0,0,3009,3010,5,65,0,0,3010,3011,5,77,0,0,3011,3012,5,77,0,0,3012,3013,5,65,0,0,3013,3014,5,46,0,0,3014,3015,5,68,0,0,3015,3016,5,73,0,0,3016,3017,5,83,0,0,3017,3019,5,84,0,0,3018,2999,1,0,0,0,3018,3008,1,0,0,0,3019,562,1,0,0,0,3020,3021,5,72,0,0,3021,3022,5,89,0,0,3022,3023,5,80,0,0,3023,3024,5,71,0,0,3024,3025,5,69,0,0,3025,3026,5,79,0,0,3026,3027,5,77,0,0,3027,3028,5,68,0,0,3028,3029,5,73,0,0,3029,3030,5,83,0,0,3030,3044,5,84,0,0,3031,3032,5,72,0,0,3032,3033,5,89,0,0,3033,3034,5,80,0,0,3034,3035,5,71,0,0,3035,3036,5,69,0,0,3036,3037,5,79,0,0,3037,3038,5,77,0,0,3038,3039,5,46,0,0,3039,3040,5,68,0,0,3040,3041,5,73,0,0,3041,3042,5,83,0,0,3042,3044,5,84,0,0,3043,3020,1,0,0,0,3043,3031,1,0,0,0,3044,564,1,0,0,0,3045,3046,5,87,0,0,3046,3047,5,69,0,0,3047,3048,5,73,0,0,3048,3049,5,66,0,0,3049,3050,5,85,0,0,3050,3051,5,76,0,0,3051,3052,5,76,0,0,3052,566,1,0,0,0,3053,3054,5,83,0,0,3054,3055,5,89,0,0,3055,3056,5,68,0,0,3056,568,1,0,0,0,3057,3058,5,83,0,0,3058,3059,5,69,0,0,3059,3060,5,82,0,0,3060,3061,5,73,0,0,3061,3062,5,69,0,0,3062,3063,5,83,0,0,3063,3064,5,83,0,0,3064,3065,5,85,0,0,3065,3066,5,77,0,0,3066,570,1,0,0,0,3067,3068,5,80,0,0,3068,3069,5,77,0,0,3069,3070,5,84,0,0,3070,572,1,0,0,0,3071,3072,5,80,0,0,3072,3073,5,86,0,0,3073,574,1,0,0,0,3074,3075,5,70,0,0,3075,3076,5,86,0,0,3076,576,1,0,0,0,3077,3078,5,78,0,0,3078,3079,5,80,0,0,3079,3080,5,69,0,0,3080,3081,5,82,0,0,3081,578,1,0,0,0,3082,3083,5,82,0,0,3083,3084,5,65,0,0,3084,3085,5,84,0,0,3085,3086,5,69,0,0,3086,580,1,0,0,0,3087,3088,5,68,0,0,3088,3089,5,65,0,0,3089,3090,5,84,0,0,3090,3091,5,69,0,0,3091,582,1,0,0,0,3092,3093,5,80,0,0,3093,3094,5,80,0,0,3094,3095,5,77,0,0,3095,3096,5,84,0,0,3096,584,1,0,0,0,3097,3098,5,73,0,0,3098,3099,5,80,0,0,3099,3100,5,77,0,0,3100,3101,5,84,0,0,3101,586,1,0,0,0,3102,3103,5,73,0,0,3103,3104,5,78,0,0,3104,3105,5,68,0,0,3105,3106,5,69,0,0,3106,3107,5,88,0,0,3107,3108,5,79,0,0,3108,3109,5,70,0,0,3109,588,1,0,0,0,3110,3111,5,76,0,0,3111,3112,5,65,0,0,3112,3113,5,83,0,0,3113,3114,5,84,0,0,3114,3115,5,73,0,0,3115,3116,5,78,0,0,3116,3117,5,68,0,0,3117,3118,5,69,0,0,3118,3119,5,88,0,0,3119,3120,5,79,0,0,3120,3121,5,70,0,0,3121,590,1,0,0,0,3122,3123,5,74,0,0,3123,3124,5,79,0,0,3124,3125,5,73,0,0,3125,3126,5,78,0,0,3126,592,1,0,0,0,3127,3128,5,73,0,0,3128,3129,5,70,0,0,3129,3130,5,83,0,0,3130,594,1,0,0,0,3131,3132,5,83,0,0,3132,3133,5,87,0,0,3133,3134,5,73,0,0,3134,3135,5,84,0,0,3135,3136,5,67,0,0,3136,3137,5,72,0,0,3137,596,1,0,0,0,3138,3139,5,65,0,0,3139,3140,5,76,0,0,3140,3141,5,71,0,0,3141,3142,5,79,0,0,3142,3143,5,82,0,0,3143,3144,5,73,0,0,3144,3145,5,84,0,0,3145,3146,5,72,0,0,3146,3147,5,77,0,0,3147,3148,5,86,0,0,3148,3149,5,69,0,0,3149,3150,5,82,0,0,3150,3151,5,83,0,0,3151,3152,5,73,0,0,3152,3153,5,79,0,0,3153,3168,5,78,0,0,3154,3155,5,69,0,0,3155,3156,5,78,0,0,3156,3157,5,71,0,0,3157,3158,5,73,0,0,3158,3159,5,78,0,0,3159,3160,5,69,0,0,3160,3161,5,86,0,0,3161,3162,5,69,0,0,3162,3163,5,82,0,0,3163,3164,5,83,0,0,3164,3165,5,73,0,0,3165,3166,5,79,0,0,3166,3168,5,78,0,0,3167,3138,1,0,0,0,3167,3154,1,0,0,0,3168,598,1,0,0,0,3169,3170,5,78,0,0,3170,3171,5,85,0,0,3171,3172,5,76,0,0,3172,3173,5,76,0,0,3173,600,1,0,0,0,3174,3177,7,6,0,0,3175,3177,3,603,301,0,3176,3174,1,0,0,0,3176,3175,1,0,0,0,3177,3182,1,0,0,0,3178,3181,7,7,0,0,3179,3181,3,603,301,0,3180,3178,1,0,0,0,3180,3179,1,0,0,0,3181,3184,1,0,0,0,3182,3180,1,0,0,0,3182,3183,1,0,0,0,3183,602,1,0,0,0,3184,3182,1,0,0,0,3185,3186,7,8,0,0,3186,604,1,0,0,0,3187,3189,7,9,0,0,3188,3187,1,0,0,0,3189,3190,1,0,0,0,3190,3188,1,0,0,0,3190,3191,1,0,0,0,3191,3192,1,0,0,0,3192,3193,6,302,0,0,3193,606,1,0,0,0,3194,3195,5,47,0,0,3195,3196,5,42,0,0,3196,3200,1,0,0,0,3197,3199,9,0,0,0,3198,3197,1,0,0,0,3199,3202,1,0,0,0,3200,3201,1,0,0,0,3200,3198,1,0,0,0,3201,3203,1,0,0,0,3202,3200,1,0,0,0,3203,3204,5,42,0,0,3204,3205,5,47,0,0,3205,3206,1,0,0,0,3206,3207,6,303,0,0,3207,608,1,0,0,0,3208,3209,5,47,0,0,3209,3210,5,47,0,0,3210,3214,1,0,0,0,3211,3213,8,10,0,0,3212,3211,1,0,0,0,3213,3216,1,0,0,0,3214,3212,1,0,0,0,3214,3215,1,0,0,0,3215,3217,1,0,0,0,3216,3214,1,0,0,0,3217,3218,6,304,0,0,3218,610,1,0,0,0,71,0,662,670,683,685,691,698,700,707,709,715,722,724,726,730,734,736,742,744,752,754,762,764,768,813,822,831,1159,1209,1235,1273,1293,1334,1729,1743,1781,2040,2115,2130,2146,2157,2377,2405,2424,2448,2470,2625,2648,2713,2732,2749,2770,2783,2794,2813,2832,2896,2923,2944,2957,2976,2997,3018,3043,3167,3176,3180,3182,3190,3200,3214,1,6,0,0]),ys=ks.Js.map((t,s)=>new Ts.Oh.DFA(t,s));class vs extends Ts.Lexer{static gu="";static wu=[];static pu=[];static Ti=[];static yi=[];static rs=[];constructor(t){super(t),this.wi=new Ts.Rt.LexerATNSimulator(this,ks,ys,new Ts.Rt.PredictionContextCache)}}class As{}class Cs extends As{constructor(t){super(),this.Fl=t,this.xu=[],this.index=-1,this.Su=!1}mark(){return 0}release(t){}reset(){this.seek(0)}seek(t){this.mu(),this.index=this.Tu(t)}get size(){return this.xu.length}get(t){return this.mu(),this.xu[t]}O(){let t=!1;if(t=this.index>=0&&(this.Su?this.index<this.xu.length-1:this.index<this.xu.length),!t&&this.LA(1)===e.EOF)throw"cannot consume EOF";this.sync(this.index+1)&&(this.index=this.Tu(this.index+1))}sync(t){let s=t-this.xu.length+1;return!(s>0)||this.fetch(s)>=s}fetch(t){if(this.Su)return 0;for(let s=0;s<t;s++){let t=this.Fl.rn();if(t.i=this.xu.length,this.xu.push(t),t.type===e.EOF)return this.Su=!0,s+1}return t}cu(t,s,i){if(void 0===i&&(i=null),t<0||s<0)return null;this.mu();let n=[];s>=this.xu.length&&(s=this.xu.length-1);for(let r=t;r<s;r++){let t=this.xu[r];if(t.type===e.EOF)break;(null===i||i.contains(t.type))&&n.push(t)}return n}LA(t){return this.LT(t).type}LB(t){return this.index-t<0?null:this.xu[this.index-t]}LT(t){if(this.mu(),0===t)return null;if(t<0)return this.LB(-t);let s=this.index+t-1;return this.sync(s),s>=this.xu.length?this.xu[this.xu.length-1]:this.xu[s]}Tu(t){return t}mu(){-1===this.index&&this.ku()}ku(){this.sync(0),this.index=this.Tu(0)}yu(t){this.Fl=t,this.xu=[],this.index=-1,this.Su=!1}vu(t,s){if(this.sync(t),t>=this.xu.length)return-1;let i=this.xu[t];for(;i.channel!==s;){if(i.type===e.EOF)return-1;t+=1,this.sync(t),i=this.xu[t]}return t}Au(t,s){for(;t>=0&&this.xu[t].channel!==s;)t-=1;return t}Cu(t,s){if(void 0===s&&(s=-1),this.mu(),t<0||t>=this.xu.length)throw t+" not in 0.."+this.xu.length-1;let e=this.vu(t+1,qt.Tn),i=t+1,n=-1===e?this.xu.length-1:e;return this.Eu(i,n,s)}bu(t,s){if(void 0===s&&(s=-1),this.mu(),t<0||t>=this.xu.length)throw t+" not in 0.."+this.xu.length-1;let e=this.Au(t-1,qt.Tn);if(e===t-1)return null;let i=e+1,n=t-1;return this.Eu(i,n,s)}Eu(t,s,e){let i=[];for(let n=t;n<s+1;n++){let t=this.xu[n];-1===e?t.channel!==qt.Tn&&i.push(t):t.channel===e&&i.push(t)}return 0===i.length?null:i}hu(){return this.Fl.hu()}P(t){this.mu(),this.fill(),t||(t=new T(0,this.xu.length-1));let s=t.start;s instanceof e&&(s=s.i);let i=t.stop;if(i instanceof e&&(i=i.i),null===s||null===i||s<0||i<0)return"";i>=this.xu.length&&(i=this.xu.length-1);let n="";for(let t=s;t<i+1;t++){let s=this.xu[t];if(s.type===e.EOF)break;n+=s.text}return n}fill(){for(this.mu();1e3===this.fetch(1e3););}}Object.defineProperty(Cs,"size",{get:function(){return this.xu.length}});class Es extends Cs{constructor(t,s){super(t),this.channel=void 0===s?e.m:s}Tu(t){return this.vu(t,this.channel)}LB(t){if(0===t||this.index-t<0)return null;let s=this.index,e=1;for(;e<=t;)s=this.Au(s-1,this.channel),e+=1;return s<0?null:this.xu[s]}LT(t){if(this.mu(),0===t)return null;if(t<0)return this.LB(-t);let s=this.index,e=1;for(;e<t;)this.sync(s+1)&&(s=this.vu(s+1,this.channel)),e+=1;return this.xu[s]}Nu(){let t=0;this.fill();for(let s=0;s<this.xu.length;s++){let i=this.xu[s];if(i.channel===this.channel&&(t+=1),i.type===e.EOF)break}return t}}const bs=(new Ts.Rt.ATNDeserializer).ze([4,1,304,465,2,0,7,0,2,1,7,1,2,2,7,2,2,3,7,3,2,4,7,4,1,0,1,0,1,0,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,24,8,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,39,8,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,50,8,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,63,8,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,78,8,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,89,8,1,3,1,91,8,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,100,8,1,10,1,12,1,103,9,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,145,8,1,3,1,147,8,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,164,8,1,3,1,166,8,1,3,1,168,8,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,185,8,1,3,1,187,8,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,200,8,1,3,1,202,8,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,213,8,1,10,1,12,1,216,9,1,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,1,230,8,1,10,1,12,1,233,9,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,246,8,1,10,1,12,1,249,9,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,257,8,1,10,1,12,1,260,9,1,1,1,5,1,263,8,1,10,1,12,1,266,9,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,274,8,1,10,1,12,1,277,9,1,1,1,5,1,280,8,1,10,1,12,1,283,9,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,292,8,1,10,1,12,1,295,9,1,3,1,297,8,1,1,1,1,1,1,1,1,1,3,1,303,8,1,1,1,1,1,1,1,3,1,308,8,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,344,8,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,361,8,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,383,8,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,396,8,1,3,1,398,8,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,409,8,1,10,1,12,1,412,9,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,1,423,8,1,10,1,12,1,426,9,1,3,1,428,8,1,1,1,1,1,1,1,1,1,1,1,3,1,435,8,1,1,1,1,1,1,1,3,1,440,8,1,1,1,1,1,5,1,444,8,1,10,1,12,1,447,9,1,1,2,3,2,450,8,2,1,2,1,2,1,3,1,3,1,3,1,3,1,3,1,3,1,3,3,3,461,8,3,1,4,1,4,1,4,0,1,2,5,0,2,4,6,8,0,28,1,0,29,30,1,0,31,36,1,0,37,123,1,0,124,157,1,0,158,172,1,0,173,174,1,0,175,176,1,0,177,179,1,0,180,206,1,0,207,259,1,0,260,278,1,0,279,285,1,0,286,289,1,0,290,291,1,0,292,293,1,0,294,295,2,0,28,28,118,118,1,0,14,16,2,0,12,13,17,17,1,0,18,21,1,0,22,23,6,0,38,47,54,54,95,96,98,101,107,108,115,123,4,0,136,138,147,148,153,155,157,157,5,0,224,224,226,226,238,239,244,244,247,254,2,0,168,170,178,179,2,0,272,272,274,274,1,0,26,27,2,0,28,179,181,301,544,0,10,1,0,0,0,2,307,1,0,0,0,4,449,1,0,0,0,6,460,1,0,0,0,8,462,1,0,0,0,10,11,3,2,1,0,11,12,5,0,0,1,12,1,1,0,0,0,13,14,6,1,-1,0,14,15,5,2,0,0,15,16,3,2,1,0,16,17,5,3,0,0,17,308,1,0,0,0,18,19,5,7,0,0,19,308,3,2,1,36,20,23,7,0,0,0,21,22,5,2,0,0,22,24,5,3,0,0,23,21,1,0,0,0,23,24,1,0,0,0,24,308,1,0,0,0,25,26,7,1,0,0,26,27,5,2,0,0,27,308,5,3,0,0,28,29,7,2,0,0,29,30,5,2,0,0,30,31,3,2,1,0,31,32,5,3,0,0,32,308,1,0,0,0,33,34,7,3,0,0,34,35,5,2,0,0,35,38,3,2,1,0,36,37,5,4,0,0,37,39,3,2,1,0,38,36,1,0,0,0,38,39,1,0,0,0,39,40,1,0,0,0,40,41,5,3,0,0,41,308,1,0,0,0,42,43,7,4,0,0,43,44,5,2,0,0,44,45,3,2,1,0,45,46,5,4,0,0,46,49,3,2,1,0,47,48,5,4,0,0,48,50,3,2,1,0,49,47,1,0,0,0,49,50,1,0,0,0,50,51,1,0,0,0,51,52,5,3,0,0,52,308,1,0,0,0,53,54,7,5,0,0,54,55,5,2,0,0,55,56,3,2,1,0,56,57,5,4,0,0,57,58,3,2,1,0,58,59,5,4,0,0,59,62,3,2,1,0,60,61,5,4,0,0,61,63,3,2,1,0,62,60,1,0,0,0,62,63,1,0,0,0,63,64,1,0,0,0,64,65,5,3,0,0,65,308,1,0,0,0,66,67,7,6,0,0,67,68,5,2,0,0,68,69,3,2,1,0,69,70,5,4,0,0,70,71,3,2,1,0,71,72,5,4,0,0,72,73,3,2,1,0,73,74,5,4,0,0,74,77,3,2,1,0,75,76,5,4,0,0,76,78,3,2,1,0,77,75,1,0,0,0,77,78,1,0,0,0,78,79,1,0,0,0,79,80,5,3,0,0,80,308,1,0,0,0,81,82,7,7,0,0,82,83,5,2,0,0,83,90,3,2,1,0,84,85,5,4,0,0,85,88,3,2,1,0,86,87,5,4,0,0,87,89,3,2,1,0,88,86,1,0,0,0,88,89,1,0,0,0,89,91,1,0,0,0,90,84,1,0,0,0,90,91,1,0,0,0,91,92,1,0,0,0,92,93,5,3,0,0,93,308,1,0,0,0,94,95,7,8,0,0,95,96,5,2,0,0,96,101,3,2,1,0,97,98,5,4,0,0,98,100,3,2,1,0,99,97,1,0,0,0,100,103,1,0,0,0,101,99,1,0,0,0,101,102,1,0,0,0,102,104,1,0,0,0,103,101,1,0,0,0,104,105,5,3,0,0,105,308,1,0,0,0,106,107,7,9,0,0,107,108,5,2,0,0,108,109,3,2,1,0,109,110,5,4,0,0,110,111,3,2,1,0,111,112,5,3,0,0,112,308,1,0,0,0,113,114,7,10,0,0,114,115,5,2,0,0,115,116,3,2,1,0,116,117,5,4,0,0,117,118,3,2,1,0,118,119,5,4,0,0,119,120,3,2,1,0,120,121,5,3,0,0,121,308,1,0,0,0,122,123,7,11,0,0,123,124,5,2,0,0,124,125,3,2,1,0,125,126,5,4,0,0,126,127,3,2,1,0,127,128,5,4,0,0,128,129,3,2,1,0,129,130,5,4,0,0,130,131,3,2,1,0,131,132,5,3,0,0,132,308,1,0,0,0,133,134,7,12,0,0,134,135,5,2,0,0,135,136,3,2,1,0,136,137,5,4,0,0,137,138,3,2,1,0,138,139,5,4,0,0,139,146,3,2,1,0,140,141,5,4,0,0,141,144,3,2,1,0,142,143,5,4,0,0,143,145,3,2,1,0,144,142,1,0,0,0,144,145,1,0,0,0,145,147,1,0,0,0,146,140,1,0,0,0,146,147,1,0,0,0,147,148,1,0,0,0,148,149,5,3,0,0,149,308,1,0,0,0,150,151,7,13,0,0,151,152,5,2,0,0,152,153,3,2,1,0,153,154,5,4,0,0,154,155,3,2,1,0,155,156,5,4,0,0,156,167,3,2,1,0,157,158,5,4,0,0,158,165,3,2,1,0,159,160,5,4,0,0,160,163,3,2,1,0,161,162,5,4,0,0,162,164,3,2,1,0,163,161,1,0,0,0,163,164,1,0,0,0,164,166,1,0,0,0,165,159,1,0,0,0,165,166,1,0,0,0,166,168,1,0,0,0,167,157,1,0,0,0,167,168,1,0,0,0,168,169,1,0,0,0,169,170,5,3,0,0,170,308,1,0,0,0,171,172,7,14,0,0,172,173,5,2,0,0,173,174,3,2,1,0,174,175,5,4,0,0,175,176,3,2,1,0,176,177,5,4,0,0,177,178,3,2,1,0,178,179,5,4,0,0,179,186,3,2,1,0,180,181,5,4,0,0,181,184,3,2,1,0,182,183,5,4,0,0,183,185,3,2,1,0,184,182,1,0,0,0,184,185,1,0,0,0,185,187,1,0,0,0,186,180,1,0,0,0,186,187,1,0,0,0,187,188,1,0,0,0,188,189,5,3,0,0,189,308,1,0,0,0,190,191,7,15,0,0,191,192,5,2,0,0,192,193,3,2,1,0,193,194,5,4,0,0,194,201,3,2,1,0,195,196,5,4,0,0,196,199,3,2,1,0,197,198,5,4,0,0,198,200,3,2,1,0,199,197,1,0,0,0,199,200,1,0,0,0,200,202,1,0,0,0,201,195,1,0,0,0,201,202,1,0,0,0,202,203,1,0,0,0,203,204,5,3,0,0,204,308,1,0,0,0,205,206,5,296,0,0,206,207,5,2,0,0,207,208,3,2,1,0,208,209,5,4,0,0,209,214,3,2,1,0,210,211,5,4,0,0,211,213,3,2,1,0,212,210,1,0,0,0,213,216,1,0,0,0,214,212,1,0,0,0,214,215,1,0,0,0,215,217,1,0,0,0,216,214,1,0,0,0,217,218,5,3,0,0,218,308,1,0,0,0,219,220,5,297,0,0,220,221,5,2,0,0,221,222,3,2,1,0,222,223,5,4,0,0,223,231,3,2,1,0,224,225,5,4,0,0,225,226,3,2,1,0,226,227,5,4,0,0,227,228,3,2,1,0,228,230,1,0,0,0,229,224,1,0,0,0,230,233,1,0,0,0,231,229,1,0,0,0,231,232,1,0,0,0,232,234,1,0,0,0,233,231,1,0,0,0,234,235,5,3,0,0,235,308,1,0,0,0,236,237,5,298,0,0,237,238,5,2,0,0,238,239,3,2,1,0,239,240,5,4,0,0,240,241,3,2,1,0,241,242,5,4,0,0,242,247,3,2,1,0,243,244,5,4,0,0,244,246,3,2,1,0,245,243,1,0,0,0,246,249,1,0,0,0,247,245,1,0,0,0,247,248,1,0,0,0,248,250,1,0,0,0,249,247,1,0,0,0,250,251,5,3,0,0,251,308,1,0,0,0,252,253,5,10,0,0,253,258,3,6,3,0,254,255,5,4,0,0,255,257,3,6,3,0,256,254,1,0,0,0,257,260,1,0,0,0,258,256,1,0,0,0,258,259,1,0,0,0,259,264,1,0,0,0,260,258,1,0,0,0,261,263,5,4,0,0,262,261,1,0,0,0,263,266,1,0,0,0,264,262,1,0,0,0,264,265,1,0,0,0,265,267,1,0,0,0,266,264,1,0,0,0,267,268,5,11,0,0,268,308,1,0,0,0,269,270,5,5,0,0,270,275,3,2,1,0,271,272,5,4,0,0,272,274,3,2,1,0,273,271,1,0,0,0,274,277,1,0,0,0,275,273,1,0,0,0,275,276,1,0,0,0,276,281,1,0,0,0,277,275,1,0,0,0,278,280,5,4,0,0,279,278,1,0,0,0,280,283,1,0,0,0,281,279,1,0,0,0,281,282,1,0,0,0,282,284,1,0,0,0,283,281,1,0,0,0,284,285,5,6,0,0,285,308,1,0,0,0,286,287,5,301,0,0,287,296,5,2,0,0,288,293,3,2,1,0,289,290,5,4,0,0,290,292,3,2,1,0,291,289,1,0,0,0,292,295,1,0,0,0,293,291,1,0,0,0,293,294,1,0,0,0,294,297,1,0,0,0,295,293,1,0,0,0,296,288,1,0,0,0,296,297,1,0,0,0,297,298,1,0,0,0,298,308,5,3,0,0,299,308,5,301,0,0,300,302,3,4,2,0,301,303,7,16,0,0,302,301,1,0,0,0,302,303,1,0,0,0,303,308,1,0,0,0,304,308,5,27,0,0,305,308,5,299,0,0,306,308,5,300,0,0,307,13,1,0,0,0,307,18,1,0,0,0,307,20,1,0,0,0,307,25,1,0,0,0,307,28,1,0,0,0,307,33,1,0,0,0,307,42,1,0,0,0,307,53,1,0,0,0,307,66,1,0,0,0,307,81,1,0,0,0,307,94,1,0,0,0,307,106,1,0,0,0,307,113,1,0,0,0,307,122,1,0,0,0,307,133,1,0,0,0,307,150,1,0,0,0,307,171,1,0,0,0,307,190,1,0,0,0,307,205,1,0,0,0,307,219,1,0,0,0,307,236,1,0,0,0,307,252,1,0,0,0,307,269,1,0,0,0,307,286,1,0,0,0,307,299,1,0,0,0,307,300,1,0,0,0,307,304,1,0,0,0,307,305,1,0,0,0,307,306,1,0,0,0,308,445,1,0,0,0,309,310,10,34,0,0,310,311,7,17,0,0,311,444,3,2,1,35,312,313,10,33,0,0,313,314,7,18,0,0,314,444,3,2,1,34,315,316,10,32,0,0,316,317,7,19,0,0,317,444,3,2,1,33,318,319,10,31,0,0,319,320,7,20,0,0,320,444,3,2,1,32,321,322,10,30,0,0,322,323,5,24,0,0,323,444,3,2,1,31,324,325,10,29,0,0,325,326,5,25,0,0,326,444,3,2,1,30,327,328,10,28,0,0,328,329,5,8,0,0,329,330,3,2,1,0,330,331,5,9,0,0,331,332,3,2,1,29,332,444,1,0,0,0,333,334,10,47,0,0,334,335,5,1,0,0,335,336,7,21,0,0,336,337,5,2,0,0,337,444,5,3,0,0,338,339,10,46,0,0,339,340,5,1,0,0,340,341,7,22,0,0,341,343,5,2,0,0,342,344,3,2,1,0,343,342,1,0,0,0,343,344,1,0,0,0,344,345,1,0,0,0,345,444,5,3,0,0,346,347,10,45,0,0,347,348,5,1,0,0,348,349,7,23,0,0,349,350,5,2,0,0,350,351,3,2,1,0,351,352,5,3,0,0,352,444,1,0,0,0,353,354,10,44,0,0,354,355,5,1,0,0,355,356,7,24,0,0,356,357,5,2,0,0,357,360,3,2,1,0,358,359,5,4,0,0,359,361,3,2,1,0,360,358,1,0,0,0,360,361,1,0,0,0,361,362,1,0,0,0,362,363,5,3,0,0,363,444,1,0,0,0,364,365,10,43,0,0,365,366,5,1,0,0,366,367,7,25,0,0,367,368,5,2,0,0,368,369,3,2,1,0,369,370,5,4,0,0,370,371,3,2,1,0,371,372,5,3,0,0,372,444,1,0,0,0,373,374,10,42,0,0,374,375,5,1,0,0,375,376,5,174,0,0,376,377,5,2,0,0,377,378,3,2,1,0,378,379,5,4,0,0,379,382,3,2,1,0,380,381,5,4,0,0,381,383,3,2,1,0,382,380,1,0,0,0,382,383,1,0,0,0,383,384,1,0,0,0,384,385,5,3,0,0,385,444,1,0,0,0,386,387,10,41,0,0,387,388,5,1,0,0,388,389,7,15,0,0,389,390,5,2,0,0,390,397,3,2,1,0,391,392,5,4,0,0,392,395,3,2,1,0,393,394,5,4,0,0,394,396,3,2,1,0,395,393,1,0,0,0,395,396,1,0,0,0,396,398,1,0,0,0,397,391,1,0,0,0,397,398,1,0,0,0,398,399,1,0,0,0,399,400,5,3,0,0,400,444,1,0,0,0,401,402,10,40,0,0,402,403,5,1,0,0,403,404,5,296,0,0,404,405,5,2,0,0,405,410,3,2,1,0,406,407,5,4,0,0,407,409,3,2,1,0,408,406,1,0,0,0,409,412,1,0,0,0,410,408,1,0,0,0,410,411,1,0,0,0,411,413,1,0,0,0,412,410,1,0,0,0,413,414,5,3,0,0,414,444,1,0,0,0,415,416,10,39,0,0,416,417,5,1,0,0,417,418,5,301,0,0,418,427,5,2,0,0,419,424,3,2,1,0,420,421,5,4,0,0,421,423,3,2,1,0,422,420,1,0,0,0,423,426,1,0,0,0,424,422,1,0,0,0,424,425,1,0,0,0,425,428,1,0,0,0,426,424,1,0,0,0,427,419,1,0,0,0,427,428,1,0,0,0,428,429,1,0,0,0,429,444,5,3,0,0,430,439,10,38,0,0,431,434,5,5,0,0,432,435,5,301,0,0,433,435,3,2,1,0,434,432,1,0,0,0,434,433,1,0,0,0,435,436,1,0,0,0,436,440,5,6,0,0,437,438,5,1,0,0,438,440,3,8,4,0,439,431,1,0,0,0,439,437,1,0,0,0,440,444,1,0,0,0,441,442,10,35,0,0,442,444,5,16,0,0,443,309,1,0,0,0,443,312,1,0,0,0,443,315,1,0,0,0,443,318,1,0,0,0,443,321,1,0,0,0,443,324,1,0,0,0,443,327,1,0,0,0,443,333,1,0,0,0,443,338,1,0,0,0,443,346,1,0,0,0,443,353,1,0,0,0,443,364,1,0,0,0,443,373,1,0,0,0,443,386,1,0,0,0,443,401,1,0,0,0,443,415,1,0,0,0,443,430,1,0,0,0,443,441,1,0,0,0,444,447,1,0,0,0,445,443,1,0,0,0,445,446,1,0,0,0,446,3,1,0,0,0,447,445,1,0,0,0,448,450,5,13,0,0,449,448,1,0,0,0,449,450,1,0,0,0,450,451,1,0,0,0,451,452,5,26,0,0,452,5,1,0,0,0,453,454,7,26,0,0,454,455,5,9,0,0,455,461,3,2,1,0,456,457,3,8,4,0,457,458,5,9,0,0,458,459,3,2,1,0,459,461,1,0,0,0,460,453,1,0,0,0,460,456,1,0,0,0,461,7,1,0,0,0,462,463,7,27,0,0,463,9,1,0,0,0,42,23,38,49,62,77,88,90,101,144,146,163,165,167,184,186,199,201,214,231,247,258,264,275,281,293,296,302,307,343,360,382,395,397,410,424,427,434,439,443,445,449,460]),Ns=bs.Js.map((t,s)=>new Ts.Oh.DFA(t,s)),Rs=new Ts.Rt.PredictionContextCache;class Ls extends Ts.Parser{static gu="mathjs.g4";static Ti=[];static yi=[];static rs=[];constructor(t){super(t),this.wi=new Ts.Rt.ParserATNSimulator(this,bs,Ns,Rs),this.rs=Ls.rs,this.Ti=Ls.Ti,this.yi=Ls.yi}Ae(t,s,e){return!0}A(t){this.match(t)}B(t,s){this.match(t),this.match(s)}C(t,s,e){this.match(t),this.match(s),this.match(e)}D(t,s,e,i){this.match(t),this.match(s),this.match(e),this.match(i)}E(t,s){this.state=t,this.Ru(s)}I(t,s,e,i){this.match(t),this.match(s),this.state=e,this.Ru(i)}J(t,s,e){this.match(t),this.state=s,this.Ru(e)}R(){return this.Wi.LT(1)}Q(){this.pl.Yh(this),this.O()}W(t,s,e){this.Jl(t,s,e)}X(){this.pl.sync(this)}Y(){return this.Wi.LA(1)}Z(){return this.pl.sync(this),this.Wi.LA(1)}Lu(){let t=new Os(this,this.Mr,this.state);this.Ol(t,0,0);try{this.Kl(t,1),this.E(10,0),this.match(-1)}catch(s){if(!(s instanceof Ts.error.RecognitionException))throw s;t.exception=s,this.pl.reportError(this,s),this.pl.un(this,s)}finally{this.Il()}return t}Ru(t){void 0===t&&(t=0);const s=this.Mr,e=this.state;let i=new Ps(this,this.Mr,e);this.Gl(i,2,1,t);var n=0;try{switch(this.Kl(i,1),this.X(),this.wi.Xr(this.Wi,27,this.Mr)){case 1:this.J(2,15,0),this.A(3);break;case 2:this.J(7,19,36);break;case 3:29!==(n=this.Y())&&30!==n?this.pl.Uh(this):this.Q(),this.X(),1===this.wi.Xr(this.Wi,0,this.Mr)&&this.B(2,3);break;case 4:(n=this.Y())-31&-32||!(1<<n-31&63)?this.pl.Uh(this):this.Q(),this.B(2,3);break;case 5:!((n=this.Y())-37&-32)&&1<<n-37&4294967295||!(n-69&-32)&&1<<n-69&4294967295||!(n-101&-32)&&1<<n-101&8388607?this.Q():this.pl.Uh(this),this.J(2,30,0),this.A(3);break;case 6:!((n=this.Y())-124&-32)&&1<<n-124&4294967295||156===n||157===n?this.Q():this.pl.Uh(this),this.J(2,35,0),4===(n=this.Z())&&this.J(4,37,0),this.A(3);break;case 7:(n=this.Y())-158&-32||!(1<<n-158&32767)?this.pl.Uh(this):this.Q(),this.J(2,44,0),this.J(4,46,0),4===(n=this.Z())&&this.J(4,48,0),this.A(3);break;case 8:173!==(n=this.Y())&&174!==n?this.pl.Uh(this):this.Q(),this.J(2,55,0),this.J(4,57,0),this.J(4,59,0),4===(n=this.Z())&&this.J(4,61,0),this.A(3);break;case 9:175!==(n=this.Y())&&176!==n?this.pl.Uh(this):this.Q(),this.J(2,68,0),this.J(4,70,0),this.J(4,72,0),this.J(4,74,0),4===(n=this.Z())&&this.J(4,76,0),this.A(3);break;case 10:(n=this.Y())-177&-32||!(1<<n-177&7)?this.pl.Uh(this):this.Q(),this.J(2,83,0),4===(n=this.Z())&&(this.J(4,85,0),4===(n=this.Z())&&this.J(4,87,0)),this.A(3);break;case 11:for((n=this.Y())-180&-32||!(1<<n-180&134217727)?this.pl.Uh(this):this.Q(),this.J(2,96,0),n=this.Z();4===n;)this.J(4,98,0),n=this.Z();this.A(3);break;case 12:!((n=this.Y())-207&-32)&&1<<n-207&4294967295||!(n-239&-32)&&1<<n-239&2097151?this.Q():this.pl.Uh(this),this.J(2,108,0),this.J(4,110,0),this.A(3);break;case 13:(n=this.Y())-260&-32||!(1<<n-260&524287)?this.pl.Uh(this):this.Q(),this.J(2,115,0),this.J(4,117,0),this.J(4,119,0),this.A(3);break;case 14:(n=this.Y())-279&-32||!(1<<n-279&127)?this.pl.Uh(this):this.Q(),this.J(2,124,0),this.J(4,126,0),this.J(4,128,0),this.J(4,130,0),this.A(3);break;case 15:(n=this.Y())-286&-32||!(1<<n-286&15)?this.pl.Uh(this):this.Q(),this.J(2,135,0),this.J(4,137,0),this.J(4,139,0),4===(n=this.Z())&&(this.J(4,141,0),4===(n=this.Z())&&this.J(4,143,0)),this.A(3);break;case 16:290!==(n=this.Y())&&291!==n?this.pl.Uh(this):this.Q(),this.J(2,152,0),this.J(4,154,0),this.J(4,156,0),4===(n=this.Z())&&(this.J(4,158,0),4===(n=this.Z())&&(this.J(4,160,0),4===(n=this.Z())&&this.J(4,162,0))),this.A(3);break;case 17:292!==(n=this.Y())&&293!==n?this.pl.Uh(this):this.Q(),this.J(2,173,0),this.J(4,175,0),this.J(4,177,0),this.J(4,179,0),4===(n=this.Z())&&(this.J(4,181,0),4===(n=this.Z())&&this.J(4,183,0)),this.A(3);break;case 18:294!==(n=this.Y())&&295!==n?this.pl.Uh(this):this.Q(),this.J(2,192,0),this.J(4,194,0),4===(n=this.Z())&&(this.J(4,196,0),4===(n=this.Z())&&this.J(4,198,0)),this.A(3);break;case 19:for(this.I(296,2,207,0),this.J(4,209,0),n=this.Z();4===n;)this.J(4,211,0),n=this.Z();this.A(3);break;case 20:for(this.I(297,2,221,0),this.J(4,223,0),n=this.Z();4===n;)this.J(4,225,0),this.J(4,227,0),n=this.Z();this.A(3);break;case 21:for(this.I(298,2,238,0),this.J(4,240,0),this.J(4,242,0),n=this.Z();4===n;)this.J(4,244,0),n=this.Z();this.A(3);break;case 22:this.A(10),this.state=253,this.Ou(),this.X();for(var r=this.wi.Xr(this.Wi,20,this.Mr);2!=r&&r!=Ts.Rt.ATN.ce;)1===r&&(this.A(4),this.state=255,this.Ou()),this.X(),r=this.wi.Xr(this.Wi,20,this.Mr);for(n=this.Z();4===n;)this.A(4),n=this.Z();this.A(11);break;case 23:for(this.J(5,270,0),this.X(),r=this.wi.Xr(this.Wi,22,this.Mr);2!=r&&r!=Ts.Rt.ATN.ce;)1===r&&this.J(4,272,0),this.X(),r=this.wi.Xr(this.Wi,22,this.Mr);for(n=this.Z();4===n;)this.A(4),n=this.Z();this.A(6);break;case 24:if(this.B(301,2),!(-32&(n=this.Z()))&&1<<n&3959432356||!(n-32&-32)&&1<<n-32&4294967295||!(n-64&-32)&&1<<n-64&4294967295||!(n-96&-32)&&1<<n-96&4294967295||!(n-128&-32)&&1<<n-128&4294967295||!(n-160&-32)&&1<<n-160&4294967295||!(n-192&-32)&&1<<n-192&4294967295||!(n-224&-32)&&1<<n-224&4294967295||!(n-256&-32)&&1<<n-256&4294967295||!(n-288&-32)&&1<<n-288&16383)for(this.E(288,0),n=this.Z();4===n;)this.J(4,290,0),n=this.Z();this.A(3);break;case 25:this.A(301);break;case 26:this.state=300,this.Pu(),this.X(),1===this.wi.Xr(this.Wi,26,this.Mr)&&(i.unit=this.R(),28!==(n=this.Y())&&118!==n?i.unit=this.pl.Uh(this):this.Q());break;case 27:this.A(27);break;case 28:this.A(299);break;case 29:this.A(300)}for(this.Mr.stop=this.Wi.LT(-1),this.X(),r=this.wi.Xr(this.Wi,39,this.Mr);2!=r&&r!=Ts.Rt.ATN.ce;){if(1===r)switch(null!==this.Tl&&this.Pl(),this.X(),this.wi.Xr(this.Wi,38,this.Mr)){case 1:i=new Ps(this,s,e),this.W(i,2,1),i.Iu=this.R(),-32&(n=this.Y())||!(1<<n&114688)?i.Iu=this.pl.Uh(this):this.Q(),this.E(311,35);break;case 2:i=new Ps(this,s,e),this.W(i,2,1),i.Iu=this.R(),-32&(n=this.Y())||!(1<<n&143360)?i.Iu=this.pl.Uh(this):this.Q(),this.E(314,34);break;case 3:i=new Ps(this,s,e),this.W(i,2,1),i.Iu=this.R(),-32&(n=this.Y())||!(1<<n&3932160)?i.Iu=this.pl.Uh(this):this.Q(),this.E(317,33);break;case 4:i=new Ps(this,s,e),this.W(i,2,1),i.Iu=this.R(),22!==(n=this.Y())&&23!==n?i.Iu=this.pl.Uh(this):this.Q(),this.E(320,32);break;case 5:i=new Ps(this,s,e),this.W(i,2,1),i.Iu=this.J(24,323,31);break;case 6:i=new Ps(this,s,e),this.W(i,2,1),i.Iu=this.J(25,326,30);break;case 7:i=new Ps(this,s,e),this.W(i,2,1),this.J(8,329,0),this.J(9,331,29);break;case 8:i=new Ps(this,s,e),this.W(i,2,1),this.A(1),!((n=this.Y())-38&-32)&&1<<n-38&66559||!(n-95&-32)&&1<<n-95&535834747?this.Q():this.pl.Uh(this),this.B(2,3);break;case 9:i=new Ps(this,s,e),this.W(i,2,1),this.A(1),(n=this.Y())-136&-32||!(1<<n-136&3020807)?this.pl.Uh(this):this.Q(),this.A(2),(!(-32&(n=this.Z()))&&1<<n&3959432356||!(n-32&-32)&&1<<n-32&4294967295||!(n-64&-32)&&1<<n-64&4294967295||!(n-96&-32)&&1<<n-96&4294967295||!(n-128&-32)&&1<<n-128&4294967295||!(n-160&-32)&&1<<n-160&4294967295||!(n-192&-32)&&1<<n-192&4294967295||!(n-224&-32)&&1<<n-224&4294967295||!(n-256&-32)&&1<<n-256&4294967295||!(n-288&-32)&&1<<n-288&16383)&&this.E(342,0),this.A(3);break;case 10:i=new Ps(this,s,e),this.W(i,2,1),this.A(1),(n=this.Y())-224&-32||!(1<<n-224&2140192773)?this.pl.Uh(this):this.Q(),this.J(2,350,0),this.A(3);break;case 11:i=new Ps(this,s,e),this.W(i,2,1),this.A(1),(n=this.Y())-168&-32||!(1<<n-168&3079)?this.pl.Uh(this):this.Q(),this.J(2,357,0),4===(n=this.Z())&&this.J(4,359,0),this.A(3);break;case 12:i=new Ps(this,s,e),this.W(i,2,1),this.A(1),272!==(n=this.Y())&&274!==n?this.pl.Uh(this):this.Q(),this.J(2,368,0),this.J(4,370,0),this.A(3);break;case 13:i=new Ps(this,s,e),this.W(i,2,1),this.G(1,174,2,377,0),this.J(4,379,0),4===(n=this.Z())&&this.J(4,381,0),this.A(3);break;case 14:i=new Ps(this,s,e),this.W(i,2,1),this.A(1),294!==(n=this.Y())&&295!==n?this.pl.Uh(this):this.Q(),this.J(2,390,0),4===(n=this.Z())&&(this.J(4,392,0),4===(n=this.Z())&&this.J(4,394,0)),this.A(3);break;case 15:for(i=new Ps(this,s,e),this.W(i,2,1),this.G(1,296,2,405,0),n=this.Z();4===n;)this.J(4,407,0),n=this.Z();this.A(3);break;case 16:if(i=new Ps(this,s,e),this.W(i,2,1),this.C(1,301,2),!(-32&(n=this.Z()))&&1<<n&3959432356||!(n-32&-32)&&1<<n-32&4294967295||!(n-64&-32)&&1<<n-64&4294967295||!(n-96&-32)&&1<<n-96&4294967295||!(n-128&-32)&&1<<n-128&4294967295||!(n-160&-32)&&1<<n-160&4294967295||!(n-192&-32)&&1<<n-192&4294967295||!(n-224&-32)&&1<<n-224&4294967295||!(n-256&-32)&&1<<n-256&4294967295||!(n-288&-32)&&1<<n-288&16383)for(this.E(419,0),n=this.Z();4===n;)this.J(4,421,0),n=this.Z();this.A(3);break;case 17:switch(i=new Ps(this,s,e),this.W(i,2,1),this.state=430,this.X(),this.Wi.LA(1)){case 5:switch(this.A(5),this.X(),this.wi.Xr(this.Wi,36,this.Mr)){case 1:this.A(301);break;case 2:this.E(433,0)}this.A(6);break;case 1:this.A(1),this.state=438,this.Fu();break;default:throw new Ts.error.NoViableAltException(this)}break;case 18:i=new Ps(this,s,e),this.W(i,2,1),this.A(16)}this.X(),r=this.wi.Xr(this.Wi,39,this.Mr)}}catch(t){if(!(t instanceof Ts.error.RecognitionException))throw t;i.exception=t,this.pl.reportError(this,t),this.pl.un(this,t)}finally{this.$l(s)}return i}Pu(){let t=new Is(this,this.Mr,this.state);this.Ol(t,4,2);try{this.Kl(t,1),13===this.Z()&&this.A(13),this.A(26)}catch(s){if(!(s instanceof Ts.error.RecognitionException))throw s;t.exception=s,this.pl.reportError(this,s),this.pl.un(this,s)}finally{this.Il()}return t}Ou(){let t=new Fs(this,this.Mr,this.state);this.Ol(t,6,3);var s=0;try{switch(this.X(),this.Wi.LA(1)){case 26:case 27:this.Kl(t,1),t.key=this.R(),26!==(s=this.Y())&&27!==s?t.key=this.pl.Uh(this):this.Q(),this.J(9,455,0);break;case 28:case 29:case 30:case 31:case 32:case 33:case 34:case 35:case 36:case 37:case 38:case 39:case 40:case 41:case 42:case 43:case 44:case 45:case 46:case 47:case 48:case 49:case 50:case 51:case 52:case 53:case 54:case 55:case 56:case 57:case 58:case 59:case 60:case 61:case 62:case 63:case 64:case 65:case 66:case 67:case 68:case 69:case 70:case 71:case 72:case 73:case 74:case 75:case 76:case 77:case 78:case 79:case 80:case 81:case 82:case 83:case 84:case 85:case 86:case 87:case 88:case 89:case 90:case 91:case 92:case 93:case 94:case 95:case 96:case 97:case 98:case 99:case 100:case 101:case 102:case 103:case 104:case 105:case 106:case 107:case 108:case 109:case 110:case 111:case 112:case 113:case 114:case 115:case 116:case 117:case 118:case 119:case 120:case 121:case 122:case 123:case 124:case 125:case 126:case 127:case 128:case 129:case 130:case 131:case 132:case 133:case 134:case 135:case 136:case 137:case 138:case 139:case 140:case 141:case 142:case 143:case 144:case 145:case 146:case 147:case 148:case 149:case 150:case 151:case 152:case 153:case 154:case 155:case 156:case 157:case 158:case 159:case 160:case 161:case 162:case 163:case 164:case 165:case 166:case 167:case 168:case 169:case 170:case 171:case 172:case 173:case 174:case 175:case 176:case 177:case 178:case 179:case 181:case 182: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 195:case 196:case 197:case 198:case 199:case 200:case 201:case 202:case 203:case 204:case 205:case 206:case 207:case 208:case 209:case 210:case 211:case 212:case 213:case 214:case 215:case 216:case 217:case 218:case 219:case 220:case 221:case 222:case 223:case 224:case 225:case 226:case 227:case 228:case 229:case 230:case 231:case 232:case 233:case 234:case 235:case 236:case 237:case 238:case 239:case 240:case 241:case 242:case 243:case 244:case 245:case 246:case 247:case 248:case 249:case 250:case 251:case 252:case 253:case 254:case 255:case 256:case 257:case 258:case 259:case 260:case 261:case 262:case 263:case 264:case 265:case 266:case 267:case 268:case 269:case 270:case 271:case 272:case 273:case 274:case 275:case 276:case 277:case 278:case 279:case 280:case 281:case 282:case 283:case 284:case 285:case 286:case 287:case 288:case 289:case 290:case 291:case 292:case 293:case 294:case 295:case 296:case 297:case 298:case 299:case 300:case 301:this.Kl(t,2),this.state=456,this.Fu(),this.J(9,458,0);break;default:throw new Ts.error.NoViableAltException(this)}}catch(s){if(!(s instanceof Ts.error.RecognitionException))throw s;t.exception=s,this.pl.reportError(this,s),this.pl.un(this,s)}finally{this.Il()}return t}Fu(){let t=new Ds(this,this.Mr,this.state);this.Ol(t,8,4);var s=0;try{this.Kl(t,1),!((s=this.Y())-28&-32)&&1<<s-28&4294967295||!(s-60&-32)&&1<<s-60&4294967295||!(s-92&-32)&&1<<s-92&4294967295||!(s-124&-32)&&1<<s-124&4294967295||!(s-156&-32)&&1<<s-156&4278190079||!(s-188&-32)&&1<<s-188&4294967295||!(s-220&-32)&&1<<s-220&4294967295||!(s-252&-32)&&1<<s-252&4294967295||!(s-284&-32)&&1<<s-284&262143?this.Q():this.pl.Uh(this)}catch(s){if(!(s instanceof Ts.error.RecognitionException))throw s;t.exception=s,this.pl.reportError(this,s),this.pl.un(this,s)}finally{this.Il()}return t}}class Os extends Ts.ParserRuleContext{constructor(t,s,e){super(s,e),this.zr=t,this.Pt=0}accept(t){return t.Du(this)}}class Ps extends Ts.ParserRuleContext{constructor(t,s,e){super(s,e),this.zr=t,this.Pt=1,this.unit=null,this.Iu=null}accept(t){return t._u(this)}}class Is extends Ts.ParserRuleContext{constructor(t,s,e){super(s,e),this.zr=t,this.Pt=2}accept(t){return t.Mu(this)}}class Fs extends Ts.ParserRuleContext{constructor(t,s,e){super(s,e),this.zr=t,this.Pt=3,this.key=null}accept(t){return t.qu(this)}}class Ds extends Ts.ParserRuleContext{constructor(t,s,e){super(s,e),this.zr=t,this.Pt=4}accept(t){return t.Hu(this)}}class _s extends Ts.du.ParseTreeVisitor{Du(t){return this.Ns(t)}_u(t){return this.Ns(t)}Mu(t){return this.Ns(t)}qu(t){return this.Ns(t)}Hu(t){return this.Ns(t)}}class Ms{static ParseFormula(t,s){if(!t||""===t.trim())return null;if(!s)return null;let e=new n(t),i=new vs(e);i.Si(),i.xi(s);let r=new Es(i),h=new Ls(r);h.Si(),h.xi(s);let l=h.Lu();return(new _s).qh(l)}}class qs extends Rt{constructor(){super()}ai(t,s,e,i,n,r){this.SyntaxError(t,s,e,i,n,r)}SyntaxError(t,s,e,i,n,r){}}const Hs={AlgorithmEngineHelper:Ms,AntlrErrorListener:qs};return"undefined"!=typeof window&&(window.ToolGood=window.ToolGood||{},window.ToolGood.Algorithm={AlgorithmEngineHelper:Ms,AntlrErrorListener:qs}),s.default})());