diff --git a/build.js b/build.js
index 0bdec13..a3ccc7b 100644
--- a/build.js
+++ b/build.js
@@ -13,9 +13,10 @@ const marked_toc = require('marked');
const plantuml = require('plantuml');
const _ = require('lodash');
const slugify = require('uslug');
+const { transformFml } = require('./fmlTransformer')
-
+const fml_syntax_highlight = require('./fml_syntax_highlight');
const child_process = require('child_process');
@@ -87,7 +88,7 @@ function toc(str) {
// var defaultTemplate = '<%= depth %><%= bullet %>[<%= heading %>](#<%= url %>)\n';
var defaultTemplate = '<%- heading %>\n';
-
+
const utils = {};
utils.arrayify = function (arr) {
@@ -137,11 +138,11 @@ function toc(str) {
var omit = ['grunt', 'helper', 'handlebars-helper', 'mixin', 'filter', 'assemble-contrib', 'assemble'];
utils.strip = function (name, options) {
- var opts = _.extend({}, options);
- if(opts.omit === false) {omit = [];}
- var exclusions = _.union(omit, utils.arrayify(opts.strip || []));
- var re = new RegExp('^(?:' + exclusions.join('|') + ')[-_]?', 'g');
- return name.replace(re, '');
+ var opts = _.extend({}, options);
+ if (opts.omit === false) { omit = []; }
+ var exclusions = _.union(omit, utils.arrayify(opts.strip || []));
+ var re = new RegExp('^(?:' + exclusions.join('|') + ')[-_]?', 'g');
+ return name.replace(re, '');
};
var opts = {
@@ -151,7 +152,7 @@ function toc(str) {
maxDepth: 3,
slugifyOptions: { allowedChars: '-' },
slugify: function (text) {
- return slugify(text, opts.slugifyOptions).replace("ex-","ex---");
+ return slugify(text, opts.slugifyOptions).replace("ex-", "ex---");
}
};
@@ -220,7 +221,7 @@ function toc(str) {
});
tocArray.push(data);
- toc += ejs.render(defaultTemplate,data);
+ toc += ejs.render(defaultTemplate, data);
//toc += _.template(opts.template || defaultTemplate, data);
});
@@ -284,7 +285,7 @@ renderer.paragraph = function (text) {
renderer._code = renderer.code;
renderer.code = function (code, infostring, escaped) {
- //console.log(code, infostring, escaped);
+ // console.log(code, infostring, escaped);
if (infostring) {
if (infostring.startsWith("puml")) {
let i = epuml_count++;
@@ -293,17 +294,70 @@ renderer.code = function (code, infostring, escaped) {
})
return ``;
}
+
+ if (infostring.startsWith("fml1") || infostring.startsWith("fml2")) {
+
+ let fml = "" + code;
+
+ let i = fml_count++;
+
+ const fml_output = renderer._out_folder + "fml_" + i + ".svg";
+ const tempFile = renderer._out_folder + `fml_${i}.temp.fml`;
+
+ try{
+ fs.ensureFileSync(tempFile);
+
+ const transformedFml = transformFml(code, infostring.startsWith("fml1") ? "Flat" : "Nested")
+
+ fs.writeFile(tempFile, transformedFml)
+ .then(_ => {
+ run("node fml " + tempFile + " " + fml_output, undefined, () => {
+ fs.remove(tempFile)
+ })
+ })
+
+ if (infostring.indexOf("?src") >= 0) {
+
+ return ``;
+
+ } else {
+
+ return ``;
+
+ }
+
+ } catch(e) {
+ //the original code will be printed (opportunity to show the error)
+ console.log(e);
+ }
+
+ }
+
}
return renderer._code(code, infostring, escaped);
};
+//TODO (["'])(?:(?=(\\?))\2.)*?\1 for quoted strings (which do not contain keywords)
+function highlight_fml(s) {
+ return fml_syntax_highlight.parse(s);
+ let keywords = ["feature", "optional", "required", "hasOneOf", "hasSome", "has", "requires", "excludes"] //fml1
+
+ return keywords.reduce((s, k) => s.replace(new RegExp(k+" ", "g"), `${k} `, s)
+ .replace(new RegExp(k+"\n", "g"), `${k}\n`, s)
+ .replace(new RegExp(k, "g"), `${k}`), s);
+}
+
renderer._image = renderer.image;
renderer.image = function (href, title, text) {
//console.log(href, title, text);
+ let url = new URL(href, "http://localhost/");
+
+ href = "." + url.pathname;
+
if (href.endsWith(".puml")) {
let i = puml_count++;
@@ -319,7 +373,38 @@ renderer.image = function (href, title, text) {
}
- if (href.endsWith(".fml")) {
+ if (href.endsWith(".fml1") || href.endsWith(".fml2")) {
+
+ let i = fml_count++;
+
+ const fml_output = renderer._out_folder + "fml_" + i + ".svg";
+ const tempFile = renderer._out_folder + `fml_${i}.temp.fml`;
+
+ fs.ensureFileSync(tempFile);
+
+ let fml = fs.readFileSync(href.replace("./", renderer._in_folder), 'utf8');
+
+ const transformedFml = transformFml(fml, href.endsWith(".fml1") ? "Flat" : "Nested")
+
+ fs.writeFile(tempFile, transformedFml)
+ .then(_ => {
+ run("node fml " + tempFile + " " + fml_output, undefined, () => {
+ fs.remove(tempFile)
+ })
+ })
+
+ if (url.searchParams.has("src")) {
+
+ return ``;
+
+ } else {
+
+ return ``;
+
+ }
+ }
+
+ if (href.endsWith(".fml") || href.endsWith(".fml0")) {
let i = fml_count++;
@@ -343,7 +428,7 @@ renderer.image = function (href, title, text) {
}
- if (href.endsWith(".madr")) {
+ if (href.endsWith(".madr") || href.endsWith(".md")) {
let md = fs.readFileSync(href.replace("./", renderer._in_folder));
@@ -351,6 +436,14 @@ renderer.image = function (href, title, text) {
}
+ if (href.endsWith(".svg") || href.endsWith(".png") ) {
+ let fileName = href.split("/").slice(-1);
+ let out = renderer._out_folder + `${fileName}`;
+ fs.copySync(href.replace("./", renderer._in_folder), out);
+
+ return ``;
+ }
+
return renderer._image(href, title, text);
}
diff --git a/fmlTransformer.js b/fmlTransformer.js
new file mode 100644
index 0000000..dcf7175
--- /dev/null
+++ b/fmlTransformer.js
@@ -0,0 +1,570 @@
+'use strict';var d,aa=Object.freeze({esVersion:6,assumingES6:!0,productionMode:!0,linkerVersion:"1.13.0",fileLevelThis:this}),ba;function ca(a){for(var b in a)return b}function ea(a){this.gm=a}ea.prototype.toString=function(){return String.fromCharCode(this.gm)};var ia=function ha(a,b,c){var f=new a.A(b[c]);if(c>24===a?l(ma):a<<16>>16===a?l(na):l(pa):qa(a)?l(ra):l(sa);case "boolean":return l(ta);case "undefined":return l(ua);default:return null===a?a.uo():a instanceof p?l(va):a instanceof ea?l(wa):a&&a.$classData?l(a.$classData):null}}
+function xa(a){switch(typeof a){case "string":return"java.lang.String";case "number":return la(a)?a<<24>>24===a?"java.lang.Byte":a<<16>>16===a?"java.lang.Short":"java.lang.Integer":qa(a)?"java.lang.Float":"java.lang.Double";case "boolean":return"java.lang.Boolean";case "undefined":return"java.lang.Void";default:return null===a?a.uo():a instanceof p?"java.lang.Long":a instanceof ea?"java.lang.Character":a&&a.$classData?a.$classData.name:null.tb.name}}
+function ya(a,b){return"string"===typeof a?a.charCodeAt(b):a.Tg(b)}function za(a,b){switch(typeof a){case "string":return a===b;case "number":return Object.is(a,b);case "boolean":return a===b;case "undefined":return a===b;default:return a&&a.$classData||null===a?a=a.r(b):a instanceof p?b instanceof p?(b=Aa(b),a=a.$===b.$&&a.ga===b.ga):a=!1:a=a instanceof ea?b instanceof ea?Ba(a)===Ba(b):!1:Ca.prototype.r.call(a,b),a}}
+function Da(a){switch(typeof a){case "string":return Ea(a);case "number":return Fa(a);case "boolean":return a?1231:1237;case "undefined":return 0;default:return a&&a.$classData||null===a?a.v():a instanceof p?a.$^a.ga:a instanceof ea?Ba(a):Ca.prototype.v.call(a)}}function Ga(a){return"string"===typeof a?a.length:a.t()}function Ja(a){return void 0===a?"undefined":a.toString()}function Ka(a){return 2147483647a?-2147483648:a|0}
+function La(a,b,c,e,f){if(a!==c||e>=BigInt(32);return b;case "boolean":return a?1231:1237;case "undefined":return 0;case "symbol":return a=a.description,void 0===a?0:Ea(a);default:if(null===a)return 0;b=Na.get(a);void 0===b&&(Ma=b=Ma+1|0,Na.set(a,b));return b}}function la(a){return"number"===typeof a&&(a|0)===a&&1/a!==1/-0}
+function qa(a){return"number"===typeof a&&(a!==a||Math.fround(a)===a)}function Pa(a){return new ea(a)}function Ba(a){return null===a?0:a.gm}function Aa(a){return null===a?ba:a}function Ca(){}Ca.prototype.constructor=Ca;function q(){}q.prototype=Ca.prototype;Ca.prototype.v=function(){return Oa(this)};Ca.prototype.r=function(a){return this===a};Ca.prototype.u=function(){var a=this.v();return xa(this)+"@"+(+(a>>>0)).toString(16)};Ca.prototype.toString=function(){return this.u()};
+function r(a){if("number"===typeof a){this.a=Array(a);for(var b=0;bh===g;g.name=c;g.isPrimitive=!0;g.isInstance=()=>!1;void 0!==e&&(g.Hg=bb(g,e,f));return g}function u(a,b,c,e,f){var g=new $a,h=ca(a);g.ia=e;g.ef="L"+c+";";g.jf=k=>!!k.ia[h];g.name=c;g.isInterface=b;g.isInstance=f||(k=>!!(k&&k.$classData&&k.$classData.ia[h]));return g}
+function bb(a,b,c,e){var f=new $a;b.prototype.$classData=f;var g="["+a.ef;f.A=b;f.ia={b:1,Pb:1,c:1};f.Ug=a;f.Zf=a;f.$f=1;f.ef=g;f.name=g;f.isArrayClass=!0;f.jf=e||(h=>f===h);f.Lh=c?h=>new b(new c(h)):h=>new b(h);f.isInstance=h=>h instanceof b;return f}
+function cb(a){function b(k){if("number"===typeof k){this.a=Array(k);for(var m=0;m{var m=k.$f;return m===f?e.jf(k.Zf):m>f&&e===v};c.jf=h;c.Lh=k=>
+new b(k);c.isInstance=k=>{k=k&&k.$classData;return!!k&&(k===c||h(k))};return c}function w(a){a.Hg||(a.Hg=cb(a));return a.Hg}function l(a){a.yi||(a.yi=new db(a));return a.yi}$a.prototype.isAssignableFrom=function(a){return this===a||this.jf(a)};$a.prototype.checkCast=function(){};$a.prototype.getSuperclass=function(){return this.ep?l(this.ep):null};$a.prototype.getComponentType=function(){return this.Ug?l(this.Ug):null};
+$a.prototype.newArrayOfThisClass=function(a){for(var b=this,c=0;c!a.isPrimitive;v.name="java.lang.Object";v.isInstance=a=>null!==a;v.Hg=bb(v,r,void 0,a=>{var b=a.$f;return 1===b?!a.Zf.isPrimitive:1void 0===a);function Fb(){}Fb.prototype=new q;Fb.prototype.constructor=Fb;function Gb(a,b,c){return b.tb.newArrayOfThisClass([c])}function Hb(a,b){if(b instanceof r||b instanceof Ra||b instanceof Sa||b instanceof Ta||b instanceof Ua||b instanceof t||b instanceof Xa||b instanceof Ya||b instanceof Za)return b.a.length;throw Ib("argument type mismatch");}
+Fb.prototype.$classData=u({To:0},!1,"java.lang.reflect.Array$",{To:1,b:1});var Jb;function Kb(){Jb||(Jb=new Fb);return Jb}function Lb(){}Lb.prototype=new q;Lb.prototype.constructor=Lb;function Mb(a,b,c){a=0;for(var e=b.a.length;;){if(a===e)return-1-a|0;var f=(a+e|0)>>>1|0,g=b.a[f];g=c===g?0:cg)e=f;else{if(0===g)return f;a=1+f|0}}}
+function Nb(a,b,c){if(b===c)return!0;if(null===b||null===c)return!1;a=b.a.length;if(c.a.length!==a)return!1;for(var e=0;e!==a;){var f=b.a[e],g=f.ga,h=c.a[e],k=h.ga;if(f.$!==h.$||g!==k)return!1;e=1+e|0}return!0}function Ob(a,b,c){if(b===c)return!0;if(null===b||null===c)return!1;a=b.a.length;if(c.a.length!==a)return!1;for(var e=0;e!==a;){if(b.a[e]!==c.a[e])return!1;e=1+e|0}return!0}
+function Tb(a,b,c){if(b===c)return!0;if(null===b||null===c)return!1;a=b.a.length;if(c.a.length!==a)return!1;for(var e=0;e!==a;){if(b.a[e]!==c.a[e])return!1;e=1+e|0}return!0}function Ub(a,b,c){if(b===c)return!0;if(null===b||null===c)return!1;a=b.a.length;if(c.a.length!==a)return!1;for(var e=0;e!==a;){if(b.a[e]!==c.a[e])return!1;e=1+e|0}return!0}
+function Vb(a,b,c){if(b===c)return!0;if(null===b||null===c)return!1;a=b.a.length;if(c.a.length!==a)return!1;for(var e=0;e!==a;){if(b.a[e]!==c.a[e])return!1;e=1+e|0}return!0}function Wb(a,b,c){if(b===c)return!0;if(null===b||null===c)return!1;a=b.a.length;if(c.a.length!==a)return!1;for(var e=0;e!==a;){if(b.a[e]!==c.a[e])return!1;e=1+e|0}return!0}
+function Xb(a,b,c){if(b===c)return!0;if(null===b||null===c)return!1;a=b.a.length;if(c.a.length!==a)return!1;for(var e=0;e!==a;){if(!Object.is(b.a[e],c.a[e]))return!1;e=1+e|0}return!0}function Yb(a,b,c){if(b===c)return!0;if(null===b||null===c)return!1;a=b.a.length;if(c.a.length!==a)return!1;for(var e=0;e!==a;){if(!Object.is(b.a[e],c.a[e]))return!1;e=1+e|0}return!0}function Zb(a,b,c){if(0>c)throw new $b;a=b.a.length;a=ce)throw Ib(c+" \x3e "+e);a=e-c|0;e=b.a.length-c|0;e=a>24&&0===(8&a.He)<<24>>24&&(a.Cm=new dc,a.He=(8|a.He)<<24>>24);return a.Cm}function ec(){this.Cm=this.Dm=null;this.He=0}ec.prototype=new q;ec.prototype.constructor=ec;
+function fc(a){0===(1&a.He)<<24>>24&&0===(1&a.He)<<24>>24&&(a.Dm=new gc(new hc),a.He=(1|a.He)<<24>>24);return a.Dm}ec.prototype.$classData=u({Vo:0},!1,"java.util.Collections$",{Vo:1,b:1});var ic;function jc(){ic||(ic=new ec);return ic}function p(a,b){this.$=a;this.ga=b}p.prototype=new q;p.prototype.constructor=p;p.prototype.r=function(a){return a instanceof p?this.$===a.$&&this.ga===a.ga:!1};p.prototype.v=function(){return this.$^this.ga};
+p.prototype.u=function(){kc();var a=this.$,b=this.ga;return b===a>>31?""+a:0>b?"-"+qc(-a|0,0!==a?~b:-b|0):qc(a,b)};p.prototype.$classData=u({po:0},!1,"org.scalajs.linker.runtime.RuntimeLong",{po:1,b:1});
+function qc(a,b){if(0===(-2097152&b))b=""+(4294967296*b+ +(a>>>0));else{var c=(32+(Math.clz32(1E9)|0)|0)-(0!==b?Math.clz32(b)|0:32+(Math.clz32(a)|0)|0)|0,e=c,f=0===(32&e)?1E9<>>(31-e|0)|0|0<=(-2147483648^n):(-2147483648^m)>=(-2147483648^y))k=h,m=e,h=g-f|0,k=(-2147483648^h)>(-2147483648^g)?-1+(k-m|0)|0:k-m|0,g=h,h=k,32>c?b|=1<>>1|0;f=f>>>1|0|e<<31;e=k}c=
+h;if(0===c?-1147483648<=(-2147483648^g):-2147483648<=(-2147483648^c))c=4294967296*h+ +(g>>>0),g=c/1E9,f=g/4294967296|0,e=b,b=g=e+(g|0)|0,a=(-2147483648^g)<(-2147483648^e)?1+(a+f|0)|0:a+f|0,g=c%1E9|0;c=""+g;b=""+(4294967296*a+ +(b>>>0))+"000000000".substring(c.length)+c}return b}function rc(){this.Rh=0}rc.prototype=new q;rc.prototype.constructor=rc;function sc(a,b,c){return 0>c?-(4294967296*+((0!==b?~c:-c|0)>>>0)+ +((-b|0)>>>0)):4294967296*c+ +(b>>>0)}
+rc.prototype.$classData=u({qo:0},!1,"org.scalajs.linker.runtime.RuntimeLong$",{qo:1,b:1});var tc;function kc(){tc||(tc=new rc);return tc}function uc(){this.Ri=this.ah=null;vc=this;this.ah=new t(0);this.Ri=new r(0)}uc.prototype=new q;uc.prototype.constructor=uc;uc.prototype.$classData=u({ip:0},!1,"scala.Array$EmptyArrays$",{ip:1,b:1});var vc;function wc(){vc||(vc=new uc);return vc}var xc=u({s:0},!0,"scala.Equals",{s:1,b:1});function yc(){}yc.prototype=new q;yc.prototype.constructor=yc;
+function zc(){}zc.prototype=yc.prototype;function Ac(){this.$h=null;Bc=this;this.$h=new z(()=>Cc().$h)}Ac.prototype=new q;Ac.prototype.constructor=Ac;Ac.prototype.$classData=u({np:0},!1,"scala.PartialFunction$",{np:1,b:1});var Bc;function Cc(){Bc||(Bc=new Ac);return Bc}function Dc(){}Dc.prototype=new q;Dc.prototype.constructor=Dc;function Ec(a,b){a=b+~(b<<9)|0;a^=a>>>14|0;a=a+(a<<4)|0;return a^(a>>>10|0)}Dc.prototype.$classData=u({wq:0},!1,"scala.collection.Hashing$",{wq:1,b:1});var Fc;
+function Gc(){Fc||(Fc=new Dc);return Fc}function Hc(a,b){for(a=a.g();a.i();)b.e(a.f())}function Qc(a,b){var c=!1;for(a=a.g();!c&&a.i();)c=!!b.e(a.f());return c}function Rc(a,b,c,e){a=a.g();var f=c,g=Hb(Kb(),b)-c|0;for(e=c+(eb)throw vd(a,b);if(b>(-1+a.a.length|0))throw vd(a,b);var c=new t(-1+a.a.length|0);a.G(0,c,0,b);a.G(1+b|0,c,b,-1+(a.a.length-b|0)|0);return c}
+function Pd(a,b,c){if(0>b)throw vd(a,b);if(b>a.a.length)throw vd(a,b);var e=new t(1+a.a.length|0);a.G(0,e,0,b);e.a[b]=c;a.G(b,e,1+b|0,a.a.length-b|0);return e}var ad=u({uh:0},!1,"scala.collection.immutable.Node",{uh:1,b:1});yd.prototype.$classData=ad;function Qd(){this.vh=0;Rd=this;this.vh=Ka(+Math.ceil(6.4))}Qd.prototype=new q;Qd.prototype.constructor=Qd;function Sd(a,b,c){return 31&(b>>>c|0)}function Td(a,b){return 1<c)return null;a=a.Xa}}de.prototype.aa=function(a){for(var b=this;;)if(a.e(new H(b.Ye,b.tc)),null!==b.Xa)b=b.Xa;else break};de.prototype.Ad=function(a){for(var b=this;;)if(a.Yf(b.Ye,b.tc),null!==b.Xa)b=b.Xa;else break};de.prototype.u=function(){return"Node("+this.Ye+", "+this.tc+", "+this.ze+") -\x3e "+this.Xa};var fe=u({jt:0},!1,"scala.collection.mutable.HashMap$Node",{jt:1,b:1});de.prototype.$classData=fe;
+function ge(){}ge.prototype=new q;ge.prototype.constructor=ge;ge.prototype.$classData=u({rt:0},!1,"scala.collection.mutable.MutationTracker$",{rt:1,b:1});var he;function ie(){this.ai=this.Nm=null;je=this;ke();this.Nm=ke();le||(le=new me);ne();I();oe();this.ai=K();pe();qe()}ie.prototype=new q;ie.prototype.constructor=ie;ie.prototype.$classData=u({tp:0},!1,"scala.package$",{tp:1,b:1});var je;function re(){je||(je=new ie);return je}function se(){}se.prototype=new q;se.prototype.constructor=se;
+function F(a,b,c){if(b===c)c=!0;else if(te(b))a:if(te(c))c=ue(b,c);else{if(c instanceof ea){if("number"===typeof b){c=+b===Ba(c);break a}if(b instanceof p){a=Aa(b);b=a.ga;c=Ba(c);c=a.$===c&&b===c>>31;break a}}c=null===b?null===c:za(b,c)}else c=b instanceof ea?ve(b,c):null===b?null===c:za(b,c);return c}
+function ue(a,b){if("number"===typeof a){a=+a;if("number"===typeof b)return a===+b;if(b instanceof p){var c=Aa(b);b=c.$;c=c.ga;return a===sc(kc(),b,c)}return!1}if(a instanceof p){c=Aa(a);a=c.$;c=c.ga;if(b instanceof p){b=Aa(b);var e=b.ga;return a===b.$&&c===e}return"number"===typeof b?(b=+b,sc(kc(),a,c)===b):!1}return null===a?null===b:za(a,b)}
+function ve(a,b){if(b instanceof ea)return Ba(a)===Ba(b);if(te(b)){if("number"===typeof b)return+b===Ba(a);if(b instanceof p){b=Aa(b);var c=b.ga;a=Ba(a);return b.$===a&&c===a>>31}return null===b?null===a:za(b,a)}return null===a&&null===b}se.prototype.$classData=u({Ht:0},!1,"scala.runtime.BoxesRunTime$",{Ht:1,b:1});var we;function G(){we||(we=new se);return we}var xe=u({Lt:0},!1,"scala.runtime.Null$",{Lt:1,b:1});function ye(){}ye.prototype=new q;ye.prototype.constructor=ye;
+function ze(a,b,c){if(b instanceof r||b instanceof t||b instanceof Za||b instanceof Xa||b instanceof Ya)return b.a[c];if(b instanceof Sa)return Pa(b.a[c]);if(b instanceof Ta||b instanceof Ua||b instanceof Ra)return b.a[c];if(null===b)throw new Ae;throw new L(b);}
+function Sc(a,b,c,e){if(b instanceof r)b.a[c]=e;else if(b instanceof t)b.a[c]=e|0;else if(b instanceof Za)b.a[c]=+e;else if(b instanceof Xa)b.a[c]=Aa(e);else if(b instanceof Ya)b.a[c]=Math.fround(e);else if(b instanceof Sa)b.a[c]=Ba(e);else if(b instanceof Ta)b.a[c]=e|0;else if(b instanceof Ua)b.a[c]=e|0;else if(b instanceof Ra)b.a[c]=!!e;else{if(null===b)throw new Ae;throw new L(b);}}function Be(a){A();var b=a.Za();return Tc(b,a.Ea()+"(",",",")")}
+function Ce(a,b){return null===b?null:De(Ee(),b)}function Fe(a,b){return null===b?null:0===b.a.length?(a=Ee(),Ge(),a.mi?a.ni:He(a)):new Ie(b)}ye.prototype.$classData=u({Nt:0},!1,"scala.runtime.ScalaRunTime$",{Nt:1,b:1});var Je;function A(){Je||(Je=new ye);return Je}function Ke(){}Ke.prototype=new q;Ke.prototype.constructor=Ke;Ke.prototype.h=function(a,b){a=this.ee(a,b);return-430675100+Math.imul(5,a<<13|a>>>19|0)|0};
+Ke.prototype.ee=function(a,b){b=Math.imul(-862048943,b);b=Math.imul(461845907,b<<15|b>>>17|0);return a^b};Ke.prototype.H=function(a,b){a^=b;a=Math.imul(-2048144789,a^(a>>>16|0));a=Math.imul(-1028477387,a^(a>>>13|0));return a^(a>>>16|0)};function Le(a,b){a=b.$;b=b.ga;return b===a>>31?a:a^b}
+function Me(a,b){a=Ka(b);if(a===b)return a;a=kc();if(-0x7fffffffffffffff>b){a.Rh=-2147483648;var c=0}else if(0x7fffffffffffffff<=b)a.Rh=2147483647,c=-1;else{c=b|0;var e=b/4294967296|0;a.Rh=0>b&&0!==c?-1+e|0:e}a=a.Rh;return sc(kc(),c,a)===b?c^a:wb(xb(),b)}function M(a,b){return null===b?0:"number"===typeof b?Me(0,+b):b instanceof p?(a=Aa(b),Le(0,new p(a.$,a.ga))):Da(b)}function Ne(a,b){throw Oe(new Pe,""+b);}Ke.prototype.$classData=u({Qt:0},!1,"scala.runtime.Statics$",{Qt:1,b:1});var Qe;
+function N(){Qe||(Qe=new Ke);return Qe}function Re(){}Re.prototype=new q;Re.prototype.constructor=Re;Re.prototype.$classData=u({Jp:0},!1,"scala.sys.package$",{Jp:1,b:1});var Se;function Te(){}Te.prototype=new q;Te.prototype.constructor=Te;function Ue(){}Ue.prototype=Te.prototype;Te.prototype.h=function(a,b){a=this.ee(a,b);return-430675100+Math.imul(5,a<<13|a>>>19|0)|0};Te.prototype.ee=function(a,b){b=Math.imul(-862048943,b);b=Math.imul(461845907,b<<15|b>>>17|0);return a^b};
+Te.prototype.H=function(a,b){return Ve(a^b)};function Ve(a){a=Math.imul(-2048144789,a^(a>>>16|0));a=Math.imul(-1028477387,a^(a>>>13|0));return a^(a>>>16|0)}function We(a,b,c){var e=a.h(-889275714,Ea("Tuple2"));e=a.h(e,b);e=a.h(e,c);return a.H(e,2)}function Xe(a){var b=O(),c=a.Ca();if(0===c)return Ea(a.Ea());var e=b.h(-889275714,Ea(a.Ea()));for(var f=0;fb+" expected"))}function zf(a,b){return yf(a,new z(c=>F(G(),c,b)),new z(c=>"'"+b+"' expected but "+c+" found"))}function yf(a,b,c){return new Af(new z(e=>{if(e.gc>=Ga(e.hc)){var f=a.vi();return new Bf(f.dj,"end of input",e)}if(b.e(Pa(Cf(e)))){f=Cf(e);if(e.gc{var e=R();return new Ef(b,c,e,a)}),a)}function Gf(a,b){return Hf(If(a,b,b),new T(()=>{re();var c=Ce(A(),new (w(Jf).A)([]));c=Kf(K(),c);return Ff(a,c)}))}function Lf(a,b,c){return Hf(Mf(a,b,c),new T(()=>{re();var e=Ce(A(),new (w(Jf).A)([]));e=Kf(K(),e);return Ff(a,e)}))}
+function If(a,b,c){return new Af(new z(e=>{var f=new Nf,g=new Of;e=Pf(C(b),e);if(e instanceof Qf&&e.Fc===a){a.Xf();var h=e.Gc;Rf(g,e.Hc);e=e.he;if(f.$d)f=f.ae;else{if(null===f)throw new Ae;f=f.$d?f.ae:Sf(f,C(c))}a:for(;;){var k=Pf(f,h);if(k instanceof Qf&&k.Fc===a){var m=k;a.Xf();h=m.Hc;k=m.Gc;e=jf(m.he,e);Rf(g,h);h=k}else{if(k instanceof Bf&&k.ie===a){f=jf(e,new P(k));g=g.Wb();g=new Ef(g,h,f,a);break a}throw new L(k);}}return g}if(e instanceof Tf&&e.dh===a)return e;throw new L(e);}),a)}
+function Uf(a,b,c){if(0===b){var e=re().ai;return Ff(a,e)}return new Af(new z(f=>{var g=new Of,h=C(c);a:for(var k=R();;){if(g.$c===b){g=g.Wb();g=new Ef(g,f,k,a);break a}k=Pf(h,f);if(k instanceof Qf&&k.Fc===a){f=k;a.Xf();k=f.Gc;Rf(g,f.Hc);var m=f.he;f=k;k=m}else{if(k instanceof Tf&&k.dh===a){g=k;break a}throw new L(k);}}return g}),a)}function Mf(a,b,c){return Vf(W(C(b),new T(()=>Gf(a,new T(()=>Wf(C(c),b))))),new z(e=>{if(null!==e)return a.I(),new X(e.O,e.ca);throw new L(e);}))}
+function Xf(a){return new z(b=>{if(null!==b)return a.I(),new X(b.O,b.ca);throw new L(b);})}function Yf(a,b){if(null===b)throw new Ae;return b.$d?b.ae:Sf(b,C(a))}function Zf(a,b){if(null===b)throw new Ae;return b.$d?b.ae:Sf(b,C(a))}function $f(){}$f.prototype=new q;$f.prototype.constructor=$f;function ag(){}ag.prototype=$f.prototype;function bg(){}bg.prototype=new q;bg.prototype.constructor=bg;function cg(){}cg.prototype=bg.prototype;function dg(){}dg.prototype=new q;dg.prototype.constructor=dg;
+function eg(a,b){if(b instanceof P){a=b.Gb;if(fg()===a)return"[ ] ";if(gg()===a)return"[*] ";throw new L(a);}if(R()===b)return"";throw new L(b);}function hg(a,b){a=!b.xc.d();var c=!b.vc.d(),e=!b.wc.d();return!0===a?new P(new ig(b.xc,"[","]")):!0===c?(b=jg(b.vc,0),new P(new ig(b,"{","}"))):!0===e?(b=jg(b.wc,0),new P(new ig(b,"(",")"))):R()}
+function kg(a,b,c){var e=hg(lg(),b);re();A();a=eg(lg(),b.Nd);b=b.ec.cf;if(e.d())var f=R();else f=e.Ra().Fg,f=new P(" : "+f);f=f.d()?"":f.Ra();if(e.d())var g=R();else g=e.Ra().Eg.Cd(new z(h=>kg(lg(),h,1+c|0))),g=new P("\n"+Tc(g,"",",\n","")+"\n");g=g.d()?"":g.Ra();e.d()?e=R():(e=e.Ra().Gg,e=new P(e));a=Fe(0,new (w(ka).A)([""+a+b+f,g,e.d()?"":e.Ra()]));b=Kf(K(),a);a:for(;;)if(b.d()){f=K();break}else if(e=b.m(),a=b.l(),""!==e===!1)b=a;else for(;;){if(a.d())f=b;else{if(""!==a.m()!==!1){a=a.l();continue}e=
+a;a=new X(b.m(),K());f=b.l();for(b=a;f!==e;)g=new X(f.m(),K()),b=b.N=g,f=f.l();for(f=e=e.l();!e.d();){if(""!==e.m()===!1){for(;f!==e;)g=new X(f.m(),K()),b=b.N=g,f=f.l();f=e.l()}e=e.l()}f.d()||(b.N=f);f=a}break a}a=h=>{if(0>c)throw mg();return""+" ".repeat(c)+h};if(f===K())a=K();else{b=f.m();e=b=new X(a(b),K());for(f=f.l();f!==K();)g=f.m(),g=new X(a(g),K()),e=e.N=g,f=f.l();a=b}return Tc(a,"","","")}
+function ng(a,b,c){re();A();a=b.Od.Cd(new z(Q=>b.ec.cf+" \x3d\x3e "+c.mb(Q.Vf).Ra()));for(var e=b.Md.Cd(new z(Q=>b.ec.cf+" \x3c--\x3e "+c.mb(Q.Vf).Ra())),f=b.xc.Cd(new z(Q=>ng(lg(),Q,c))),g=b.vc,h=null,k=null;g!==K();){for(var m=g.m().Cd(new z((Q=>U=>ng(lg(),U,Q))(c))).g();m.i();){var n=new X(m.f(),K());null===k?h=n:k.N=n;k=n}g=g.l()}g=null===h?K():h;h=b.wc;for(m=k=null;h!==K();){for(n=h.m().Cd(new z((Q=>U=>ng(lg(),U,Q))(c))).g();n.i();){var y=new X(n.f(),K());null===m?k=y:m.N=y;m=y}h=h.l()}a=Ce(0,
+new (w(xc).A)([a,e,f,g,null===k?K():k]));a=Kf(K(),a);e=og().Jm;e=pg(a,e);a:for(;;)if(e.d()){a=K();break}else if(f=e.m(),a=e.l(),""!==f===!1)e=a;else for(;;){if(a.d())a=e;else{if(""!==a.m()!==!1){a=a.l();continue}f=a;a=new X(e.m(),K());g=e.l();for(e=a;g!==f;)h=new X(g.m(),K()),e=e.N=h,g=g.l();for(g=f=f.l();!f.d();){if(""!==f.m()===!1){for(;g!==f;)h=new X(g.m(),K()),e=e.N=h,g=g.l();g=f.l()}f=f.l()}g.d()||(e.N=g)}break a}return Tc(a,"","\n","")}
+function qg(a,b){a=new H(b.kb.Vf,b.ec.cf);var c=b.xc.Ba(new z(f=>qg(lg(),f))).Wb(),e=(new rg(b.vc)).Rg(0);e.d()?(sg(),e=Fe(A(),new (w(tg).A)([])),e=ug(0,e)):e=e.Ra();e=e.Ba(new z(f=>qg(lg(),f))).Wb();b=(new rg(b.wc)).Rg(0);b.d()?(sg(),b=Fe(A(),new (w(tg).A)([])),b=ug(0,b)):b=b.Ra();c=vg(vg(b.Ba(new z(f=>qg(lg(),f))).Wb(),e),c);return new X(a,c)}dg.prototype.$classData=u({no:0},!1,"utils.Exporter$package$",{no:1,b:1});var wg;function lg(){wg||(wg=new dg);return wg}function xg(){}xg.prototype=new q;
+xg.prototype.constructor=xg;
+function yg(a,b){for(var c=b,e=a;;){var f=c;if(f===K())var g=K();else{for(var h=f.m(),k=new X(h.df,K()),m=k,n=f.l();n!==K();){var y=n.m(),Q=new X(y.df,K());m=m.N=Q;n=n.l()}g=k}var U=(da=>Va=>!da.ja(Va.kb))(ug(zg(),g)),J=e;a:for(var S;;)if(J.d()){S=K();break}else{var oa=J.m(),Y=J.l();if(!1===!!U(oa))J=Y;else for(var fa=J,Ha=Y;;){if(Ha.d())S=fa;else{var Ia=Ha.m();if(!1!==!!U(Ia)){Ha=Ha.l();continue}for(var Ic=Ha,rb=new X(fa.m(),K()),Wa=fa.l(),lc=rb;Wa!==Ic;){var jk=new X(Wa.m(),K());lc=lc.N=jk;Wa=Wa.l()}for(var mc=
+Ic.l(),Pb=mc;!mc.d();){var zm=mc.m();if(!1===!!U(zm)){for(;Pb!==mc;){var kk=new X(Pb.m(),K());lc=lc.N=kk;Pb=Pb.l()}Pb=mc.l()}mc=mc.l()}Pb.d()||(lc.N=Pb);S=rb}break a}}if(S===K())var kf=K();else{for(var lf=S.m(),lk=new X(lf.kb,K()),mk=lk,Bd=S.l();Bd!==K();){var Am=Bd.m(),nk=new X(Am.kb,K());mk=mk.N=nk;Bd=Bd.l()}kf=lk}var mf=(da=>Va=>{for(var Cd=da;!Cd.d();){var ok=Cd.m();if(Va.Wf.ja(ok))return!0;Cd=Cd.l()}return!1})(kf),Dd=c;a:for(var Jc;;)if(Dd.d()){Jc=K();break}else{var pk=Dd.m(),qk=Dd.l();if(!1===
+!!mf(pk))Dd=qk;else for(var Fh=Dd,Ed=qk;;){if(Ed.d())Jc=Fh;else{var Bm=Ed.m();if(!1!==!!mf(Bm)){Ed=Ed.l();continue}for(var nf=Ed,Gh=new X(Fh.m(),K()),of=Fh.l(),Kc=Gh;of!==nf;){var rk=new X(of.m(),K());Kc=Kc.N=rk;of=of.l()}for(var nc=nf.l(),Qb=nc;!nc.d();){var Hh=nc.m();if(!1===!!mf(Hh)){for(;Qb!==nc;){var pf=new X(Qb.m(),K());Kc=Kc.N=pf;Qb=Qb.l()}Qb=nc.l()}nc=nc.l()}Qb.d()||(Kc.N=Qb);Jc=Gh}break a}}for(var oc=e,qf=Jc;!qf.d();){var Cm=oc,sk=qf.m(),Ih=Cm,Fd=sk;a:{for(var Lc=Ih;!Lc.d();){var tk=Lc.m().kb,
+Jh=Fd.df;if(null===tk?null===Jh:tk.r(Jh)){var Kh=new P(Lc.m());break a}Lc=Lc.l()}Kh=R()}var V=Kh.Ra(),rf=(da=>Va=>da.Wf.ja(Va.kb))(Fd),Mc=Ih;a:for(var lb;;)if(Mc.d()){lb=K();break}else{var Dm=Mc.m(),uk=Mc.l();if(!1===!!rf(Dm))Mc=uk;else for(var Lh=Mc,Gd=uk;;){if(Gd.d())lb=Lh;else{var Em=Gd.m();if(!1!==!!rf(Em)){Gd=Gd.l();continue}for(var sf=Gd,Mh=new X(Lh.m(),K()),tf=Lh.l(),Nc=Mh;tf!==sf;){var vk=new X(tf.m(),K());Nc=Nc.N=vk;tf=tf.l()}for(var Rb=sf.l(),pc=Rb;!Rb.d();){var wk=Rb.m();if(!1===!!rf(wk)){for(;pc!==
+Rb;){var Nh=new X(pc.m(),K());Nc=Nc.N=Nh;pc=pc.l()}pc=Rb.l()}Rb=Rb.l()}pc.d()||(Nc.N=pc);lb=Mh}break a}}var Sb=Fd.Qh;if(Ag()===Sb){var Hd=V.xc;oe();var Oc=Kf(K(),Hd),yk=da=>{var Va=gg();return new Bg(da.kb,da.ec,da.Md,da.Od,da.xc,da.wc,da.vc,new P(Va))};if(lb===K())var zk=K();else{for(var Ak=lb.m(),Bk=new X(yk(Ak),K()),Oh=Bk,Id=lb.l();Id!==K();){var Fm=Id.m(),Ck=new X(yk(Fm),K());Oh=Oh.N=Ck;Id=Id.l()}zk=Bk}var Dk=vg(zk,Oc),Gm=ug(zg(),Dk);var Jd=new Bg(V.kb,V.ec,V.Md,V.Od,Gm,V.wc,V.vc,V.Nd)}else if(Cg()===
+Sb){var Ek=V.xc;oe();var Im=Kf(K(),Ek),Ph=da=>{var Va=fg();return new Bg(da.kb,da.ec,da.Md,da.Od,da.xc,da.wc,da.vc,new P(Va))};if(lb===K())var Qh=K();else{for(var Jm=lb.m(),Fk=new X(Ph(Jm),K()),Gk=Fk,uf=lb.l();uf!==K();){var Km=uf.m(),Lm=new X(Ph(Km),K());Gk=Gk.N=Lm;uf=uf.l()}Qh=Fk}var Mm=vg(Qh,Im),Nm=ug(zg(),Mm);Jd=new Bg(V.kb,V.ec,V.Md,V.Od,Nm,V.wc,V.vc,V.Nd)}else if(Dg()===Sb){var Rh=ug(zg(),lb);Jd=new Bg(V.kb,V.ec,V.Md,V.Od,V.xc,new X(Rh,V.wc),V.vc,V.Nd)}else if(Eg()===Sb){var Jk=ug(zg(),lb);
+Jd=new Bg(V.kb,V.ec,V.Md,V.Od,V.xc,V.wc,new X(Jk,V.vc),V.Nd)}else throw new L(Sb);var Sh=(da=>Va=>{var Cd=Va.kb,ok=da.df;return(null===Cd?null===ok:Cd.r(ok))?!1:!da.Wf.ja(Va.kb)})(Fd),Pc=Ih;a:for(var Kd;;)if(Pc.d()){Kd=K();break}else{var Kk=Pc.m(),Th=Pc.l();if(!1===!!Sh(Kk))Pc=Th;else for(var Om=Pc,Uh=Th;;){if(Uh.d())Kd=Om;else{var lt=Uh.m();if(!1!==!!Sh(lt)){Uh=Uh.l();continue}for(var Wp=Uh,Xp=new X(Om.m(),K()),Lk=Om.l(),Vh=Xp;Lk!==Wp;){var mt=new X(Lk.m(),K());Vh=Vh.N=mt;Lk=Lk.l()}for(var Ld=Wp.l(),
+Md=Ld;!Ld.d();){var nt=Ld.m();if(!1===!!Sh(nt)){for(;Md!==Ld;){var ot=new X(Md.m(),K());Vh=Vh.N=ot;Md=Md.l()}Md=Ld.l()}Ld=Ld.l()}Md.d()||(Vh.N=Md);Kd=Xp}break a}}oc=new X(Jd,Kd);qf=qf.l()}var Yp=oc,Pm=(da=>Va=>!da.ja(Va))(Jc),Wh=c;a:for(var Xh;;)if(Wh.d()){Xh=K();break}else{var pt=Wh.m(),Zp=Wh.l();if(!1===!!Pm(pt))Wh=Zp;else for(var Qm=Wh,Yh=Zp;;){if(Yh.d())Xh=Qm;else{var qt=Yh.m();if(!1!==!!Pm(qt)){Yh=Yh.l();continue}for(var $p=Yh,aq=new X(Qm.m(),K()),Mk=Qm.l(),Zh=aq;Mk!==$p;){var rt=new X(Mk.m(),
+K());Zh=Zh.N=rt;Mk=Mk.l()}for(var Nd=$p.l(),Od=Nd;!Nd.d();){var st=Nd.m();if(!1===!!Pm(st)){for(;Od!==Nd;){var tt=new X(Od.m(),K());Zh=Zh.N=tt;Od=Od.l()}Od=Nd.l()}Nd=Nd.l()}Od.d()||(Zh.N=Od);Xh=aq}break a}}if(Xh.d())return Yp;e=Yp;c=Xh}}xg.prototype.$classData=u({oo:0},!1,"utils.Parser$package$",{oo:1,b:1});var Fg;
+function Gg(a,b){0===(4&a.Xb)<<24>>24&&0===(4&a.Xb)<<24>>24&&(a.rm=new t(new Int32Array([1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,5,1,2,5,1,3,2,1,3,2,1,3,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,
+2,1,3,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,5,2,4,27,4,27,4,27,4,27,4,27,6,1,2,1,2,4,27,1,2,0,4,2,24,0,27,1,24,1,0,1,0,1,2,1,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,25,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,28,6,7,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,
+1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,0,1,0,4,24,0,2,0,24,20,0,26,0,6,20,6,24,6,24,6,24,6,0,5,0,5,24,0,16,0,25,24,26,24,28,6,24,0,24,5,4,5,6,9,24,5,6,5,24,5,6,16,28,6,4,6,28,6,5,9,5,28,5,24,0,16,5,6,5,6,0,5,6,5,0,9,5,6,4,28,24,4,0,5,6,4,6,4,6,4,6,0,24,0,5,6,0,24,0,5,0,5,0,6,0,6,8,5,6,8,6,5,8,6,8,6,8,5,6,5,6,24,9,24,4,5,0,5,0,
+6,8,0,5,0,5,0,5,0,5,0,5,0,5,0,6,5,8,6,0,8,0,8,6,5,0,8,0,5,0,5,6,0,9,5,26,11,28,26,0,6,8,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,6,0,8,6,0,6,0,6,0,6,0,5,0,5,0,9,6,5,6,0,6,8,0,5,0,5,0,5,0,5,0,5,0,5,0,6,5,8,6,0,6,8,0,8,6,0,5,0,5,6,0,9,24,26,0,6,8,0,5,0,5,0,5,0,5,0,5,0,5,0,6,5,8,6,8,6,0,8,0,8,6,0,6,8,0,5,0,5,6,0,9,28,5,11,0,6,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,8,6,8,0,8,0,8,6,0,5,0,8,0,9,11,28,26,28,0,8,0,5,0,5,0,5,0,5,0,5,0,5,6,8,0,6,0,6,0,6,0,5,0,5,6,0,9,0,11,28,0,8,0,5,0,5,0,5,0,5,0,5,0,6,5,8,6,8,0,6,8,
+0,8,6,0,8,0,5,0,5,6,0,9,0,5,0,8,0,5,0,5,0,5,0,5,8,6,0,8,0,8,6,5,0,8,0,5,6,0,9,11,0,28,5,0,8,0,5,0,5,0,5,0,5,0,5,0,6,0,8,6,0,6,0,8,0,8,24,0,5,6,5,6,0,26,5,4,6,24,9,24,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,6,5,6,0,6,5,0,5,0,4,0,6,0,9,0,5,0,5,28,24,28,24,28,6,28,9,11,28,6,28,6,28,6,21,22,21,22,8,5,0,5,0,6,8,6,24,6,5,6,0,6,0,28,6,28,0,28,24,28,24,0,5,8,6,8,6,8,6,8,6,5,9,24,5,8,6,5,6,5,8,5,8,5,6,5,6,8,6,8,6,5,8,9,8,6,28,1,0,1,0,1,0,5,24,4,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,
+0,5,0,5,0,6,24,11,0,5,28,0,5,0,20,5,24,5,12,5,21,22,0,5,24,10,0,5,0,5,6,0,5,6,24,0,5,6,0,5,0,5,0,6,0,5,6,8,6,8,6,8,6,24,4,24,26,5,6,0,9,0,11,0,24,20,24,6,12,0,9,0,5,4,5,0,5,6,5,0,5,0,5,0,6,8,6,8,0,8,6,8,6,0,28,0,24,9,5,0,5,0,5,0,8,5,8,0,9,11,0,28,5,6,8,0,24,5,8,6,8,6,0,6,8,6,8,6,8,6,0,6,9,0,9,0,24,4,24,0,6,8,5,6,8,6,8,6,8,6,8,5,0,9,24,28,6,28,0,6,8,5,8,6,8,6,8,6,8,5,9,5,6,8,6,8,6,8,6,8,0,24,5,8,6,8,6,0,24,9,0,5,9,5,4,24,0,24,0,6,24,6,8,6,5,6,5,8,6,5,0,2,4,2,4,2,4,6,0,6,1,2,1,2,1,2,1,2,1,2,1,2,1,2,
+1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,0,1,0,2,1,2,1,2,0,1,0,2,0,1,0,
+1,0,1,0,1,2,1,2,0,2,3,2,3,2,3,2,0,2,1,3,27,2,27,2,0,2,1,3,27,2,0,2,1,0,27,2,1,27,0,2,0,2,1,3,27,0,12,16,20,24,29,30,21,29,30,21,29,24,13,14,16,12,24,29,30,24,23,24,25,21,22,24,25,24,23,24,12,16,0,16,11,4,0,11,25,21,22,4,11,25,21,22,0,4,0,26,0,6,7,6,7,6,0,28,1,28,1,28,2,1,2,1,2,28,1,28,25,1,28,1,28,1,28,1,28,1,28,2,1,2,5,2,28,2,1,25,1,2,28,25,28,2,28,11,10,1,2,10,11,0,25,28,25,28,25,28,25,28,25,28,25,28,25,28,25,28,25,28,25,28,25,28,25,28,21,22,28,25,28,25,28,25,28,0,28,0,28,0,11,28,11,28,25,28,25,
+28,25,28,25,28,0,28,21,22,21,22,21,22,21,22,21,22,21,22,21,22,11,28,25,21,22,25,21,22,21,22,21,22,21,22,21,22,25,28,25,21,22,21,22,21,22,21,22,21,22,21,22,21,22,21,22,21,22,21,22,21,22,25,21,22,21,22,25,21,22,25,28,25,28,25,0,28,0,1,0,2,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,4,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,28,1,2,1,2,6,1,2,0,24,11,24,
+2,0,2,0,2,0,5,0,4,24,0,6,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,6,24,29,30,29,30,24,29,30,24,29,30,24,20,24,20,24,29,30,24,29,30,21,22,21,22,21,22,21,22,24,4,24,20,0,28,0,28,0,28,0,28,0,12,24,28,4,5,10,21,22,21,22,21,22,21,22,21,22,28,21,22,21,22,21,22,21,22,20,21,22,28,10,6,8,20,4,28,10,4,5,24,28,0,5,0,6,27,4,5,20,5,24,4,5,0,5,0,5,0,28,11,28,5,0,28,0,5,28,0,11,28,11,28,11,28,11,28,11,28,5,0,28,5,0,5,4,5,0,28,0,5,4,24,5,4,24,5,9,5,0,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,
+1,2,1,2,1,2,1,2,1,2,1,2,5,6,7,24,6,24,4,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,0,6,5,10,6,24,0,27,4,27,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,4,2,1,2,1,2,1,2,1,2,1,2,1,2,1,2,4,27,1,2,1,2,0,1,2,1,2,0,1,2,1,2,1,2,1,2,1,2,1,0,4,2,5,6,5,6,5,6,5,8,6,8,28,0,11,28,26,28,0,5,24,0,8,5,8,6,0,24,9,0,6,5,24,5,0,9,5,6,24,5,6,8,0,24,5,0,6,8,5,6,8,6,8,6,8,24,0,4,9,0,24,0,5,6,8,6,8,6,0,5,6,5,
+6,8,0,9,0,24,5,4,5,28,5,8,0,5,6,5,6,5,6,5,6,5,6,5,0,5,4,24,5,8,6,8,24,5,4,8,6,0,5,0,5,0,5,0,5,0,5,0,5,8,6,8,6,8,24,8,6,0,9,0,5,0,5,0,5,0,19,18,5,0,5,0,2,0,2,0,5,6,5,25,5,0,5,0,5,0,5,0,5,0,5,27,0,5,21,22,0,5,0,5,0,5,26,28,0,6,24,21,22,24,0,6,0,24,20,23,21,22,21,22,21,22,21,22,21,22,21,22,21,22,21,22,24,21,22,24,23,24,0,24,20,21,22,21,22,21,22,24,25,20,25,0,24,26,24,0,5,0,5,0,16,0,24,26,24,21,22,24,25,24,20,24,9,24,25,24,1,21,24,22,27,23,27,2,21,25,22,25,21,22,24,21,22,24,5,4,5,4,5,0,5,0,5,0,5,0,5,
+0,26,25,27,28,26,0,28,25,28,0,16,28,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,24,0,11,0,28,10,11,28,11,0,28,0,28,6,0,5,0,5,0,5,0,11,0,5,10,5,10,0,5,0,24,5,0,5,24,10,0,1,2,5,0,9,0,5,0,5,0,5,0,5,0,5,0,5,0,24,11,0,5,11,0,24,5,0,24,0,5,0,5,0,5,6,0,6,0,6,5,0,5,0,5,0,6,0,6,11,0,24,0,5,11,24,0,5,0,24,5,0,11,5,0,11,0,5,0,11,0,8,6,8,5,6,24,0,11,9,0,6,8,5,8,6,8,6,24,16,24,0,5,0,9,0,6,5,6,8,6,0,9,24,0,6,8,5,8,6,8,5,24,0,9,0,5,6,8,6,8,6,8,6,0,9,0,5,0,10,0,24,0,5,0,5,0,5,0,5,8,0,6,4,0,5,0,28,0,28,0,28,8,6,28,8,16,6,28,6,
+28,6,28,0,28,6,28,0,28,0,11,0,1,2,1,2,0,2,1,2,1,0,1,0,1,0,1,0,1,0,1,2,0,2,0,2,0,2,1,2,1,0,1,0,1,0,1,0,2,1,0,1,0,1,0,1,0,1,0,2,1,2,1,2,1,2,1,2,1,2,1,2,0,1,25,2,25,2,1,25,2,25,2,1,25,2,25,2,1,25,2,25,2,1,25,2,25,2,1,2,0,9,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,5,0,25,0,28,0,28,0,28,0,28,0,28,0,28,0,11,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,0,28,
+0,28,0,28,0,28,0,5,0,5,0,5,0,5,0,16,0,16,0,6,0,18,0,18,0])),a.Xb=(4|a.Xb)<<24>>24);var c=a.rm.a;if(0===(2&a.Xb)<<24>>24&&0===(2&a.Xb)<<24>>24){for(var e=new t(new Int32Array([257,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,3,2,1,1,1,2,1,3,2,4,1,2,1,3,3,2,1,2,1,1,1,1,1,2,1,1,2,1,1,2,1,3,1,1,1,2,2,1,1,
+3,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,2,1,2,2,1,1,4,1,1,1,1,1,1,1,1,69,1,27,18,4,12,14,5,7,1,1,1,17,112,1,1,1,1,1,1,1,1,2,1,3,1,5,2,1,1,3,1,1,1,2,1,17,1,9,35,1,2,3,3,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,1,1,1,1,2,2,51,48,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,5,2,1,1,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,9,38,2,1,6,1,39,1,1,1,4,1,1,45,1,1,1,2,1,2,1,1,8,27,5,3,2,11,5,1,3,2,1,2,2,11,1,2,2,32,1,10,21,10,4,2,1,99,1,1,7,1,1,6,2,2,1,4,2,10,3,2,1,14,1,1,1,1,30,27,2,89,11,1,14,10,33,9,2,1,3,1,5,22,4,1,9,1,3,1,
+5,2,15,1,25,3,2,1,65,1,1,11,55,27,1,3,1,54,1,1,1,1,3,8,4,1,2,1,7,10,2,2,10,1,1,6,1,7,1,1,2,1,8,2,2,2,22,1,7,1,1,3,4,2,1,1,3,4,2,2,2,2,1,1,8,1,4,2,1,3,2,2,10,2,2,6,1,1,5,2,1,1,6,4,2,2,22,1,7,1,2,1,2,1,2,2,1,1,3,2,4,2,2,3,3,1,7,4,1,1,7,10,2,3,1,11,2,1,1,9,1,3,1,22,1,7,1,2,1,5,2,1,1,3,5,1,2,1,1,2,1,2,1,15,2,2,2,10,1,1,15,1,2,1,8,2,2,2,22,1,7,1,2,1,5,2,1,1,1,1,1,4,2,2,2,2,1,8,1,1,4,2,1,3,2,2,10,1,1,6,10,1,1,1,6,3,3,1,4,3,2,1,1,1,2,3,2,3,3,3,12,4,2,1,2,3,3,1,3,1,2,1,6,1,14,10,3,6,1,1,6,3,1,8,1,3,1,23,
+1,10,1,5,3,1,3,4,1,3,1,4,7,2,1,2,6,2,2,2,10,8,7,1,2,2,1,8,1,3,1,23,1,10,1,5,2,1,1,1,1,5,1,1,2,1,2,2,7,2,7,1,1,2,2,2,10,1,2,15,2,1,8,1,3,1,41,2,1,3,4,1,3,1,3,1,1,8,1,8,2,2,2,10,6,3,1,6,2,2,1,18,3,24,1,9,1,1,2,7,3,1,4,3,3,1,1,1,8,18,2,1,12,48,1,2,7,4,1,6,1,8,1,10,2,37,2,1,1,2,2,1,1,2,1,6,4,1,7,1,3,1,1,1,1,2,2,1,4,1,2,6,1,2,1,2,5,1,1,1,6,2,10,2,4,32,1,3,15,1,1,3,2,6,10,10,1,1,1,1,1,1,1,1,1,1,2,8,1,36,4,14,1,5,1,2,5,11,1,36,1,8,1,6,1,2,5,4,2,37,43,2,4,1,6,1,2,2,2,1,10,6,6,2,2,4,3,1,3,2,7,3,4,13,1,2,2,
+6,1,1,1,10,3,1,2,38,1,1,5,1,2,43,1,1,332,1,4,2,7,1,1,1,4,2,41,1,4,2,33,1,4,2,7,1,1,1,4,2,15,1,57,1,4,2,67,2,3,9,20,3,16,10,6,85,11,1,620,2,17,1,26,1,1,3,75,3,3,15,13,1,4,3,11,18,3,2,9,18,2,12,13,1,3,1,2,12,52,2,1,7,8,1,2,11,3,1,3,1,1,1,2,10,6,10,6,6,1,4,3,1,1,10,6,35,1,52,8,41,1,1,5,70,10,29,3,3,4,2,3,4,2,1,6,3,4,1,3,2,10,30,2,5,11,44,4,17,7,2,6,10,1,3,34,23,2,3,2,2,53,1,1,1,7,1,1,1,1,2,8,6,10,2,1,10,6,10,6,7,1,6,82,4,1,47,1,1,5,1,1,5,1,2,7,4,10,7,10,9,9,3,2,1,30,1,4,2,2,1,1,2,2,10,44,1,1,2,3,1,1,
+3,2,8,4,36,8,8,2,2,3,5,10,3,3,10,30,6,2,64,8,8,3,1,13,1,7,4,1,4,2,1,2,9,44,63,13,1,34,37,39,21,4,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,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,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,9,8,6,2,6,2,8,8,8,8,6,2,6,2,8,1,1,1,1,1,1,1,1,8,8,14,2,8,8,8,8,8,8,5,1,2,4,1,1,1,3,3,1,2,4,1,3,4,2,2,4,1,3,8,5,3,2,3,1,2,4,1,2,1,11,5,6,2,1,1,1,2,1,1,1,8,1,1,5,1,9,1,1,4,2,3,1,1,1,11,1,1,1,10,1,5,5,6,1,1,2,6,3,1,1,1,10,3,1,1,1,13,3,32,16,13,4,1,3,12,15,2,1,4,1,2,1,3,2,3,1,1,1,2,1,5,6,1,1,1,1,1,1,4,1,1,4,1,4,1,2,2,2,5,1,4,1,1,2,1,1,16,35,1,1,4,1,6,5,5,2,4,1,2,1,2,1,7,1,31,2,2,1,1,1,31,268,8,4,20,2,7,1,1,81,1,
+30,25,40,6,18,12,39,25,11,21,60,78,22,183,1,9,1,54,8,111,1,144,1,103,1,1,1,1,1,1,1,1,1,1,1,1,1,1,30,44,5,1,1,31,1,1,1,1,1,1,1,1,1,1,16,256,131,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,63,1,1,1,1,32,1,1,258,48,21,2,6,3,10,166,47,1,47,1,1,1,3,2,1,1,1,1,1,1,4,1,1,2,1,6,2,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,6,1,1,1,1,3,1,1,5,4,1,2,38,1,
+1,5,1,2,56,7,1,1,14,1,23,9,7,1,7,1,7,1,7,1,7,1,7,1,7,1,7,1,32,2,1,1,1,1,3,1,1,1,1,1,9,1,2,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,5,1,10,2,68,26,1,89,12,214,26,12,4,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,2,1,9,4,2,1,5,2,3,1,1,1,2,1,86,2,2,2,2,1,1,90,1,3,1,5,41,3,94,1,2,4,10,27,5,36,12,16,31,1,10,30,8,1,15,32,10,39,15,320,6582,10,64,20941,51,21,1,1143,3,55,9,40,6,2,268,1,3,16,10,2,20,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,10,1,1,1,1,
+1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,7,1,70,10,2,6,8,23,9,2,1,1,1,1,1,1,1,1,1,1,1,1,1,3,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,8,1,1,1,1,2,1,1,1,1,1,1,1,1,1,1,2,1,1,1,1,1,1,1,1,1,12,1,1,1,1,1,1,1,1,1,1,1,77,2,1,7,1,3,1,4,1,23,2,2,1,4,4,6,2,1,1,6,52,4,8,2,50,16,1,9,2,10,6,18,6,3,1,4,10,28,8,2,23,11,2,11,1,29,3,3,1,47,1,2,4,2,1,4,13,1,1,10,4,2,32,41,6,2,2,2,2,9,3,1,8,1,1,2,10,2,4,16,1,6,3,1,1,4,48,1,1,3,2,
+2,5,2,1,1,1,24,2,1,2,11,1,2,2,2,1,2,1,1,10,6,2,6,2,6,9,7,1,7,145,35,2,1,2,1,2,1,1,1,2,10,6,11172,12,23,4,49,4,2048,6400,366,2,106,38,7,12,5,5,1,1,10,1,13,1,5,1,1,1,2,1,2,1,108,16,17,363,1,1,16,64,2,54,40,12,1,1,2,16,7,1,1,1,6,7,9,1,2,2,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,2,1,1,4,3,3,1,4,1,1,1,1,1,1,1,3,1,1,3,1,1,1,2,4,5,1,135,2,1,1,3,1,3,1,1,1,1,1,1,2,10,2,3,2,26,1,1,1,1,1,1,26,1,1,1,1,1,1,1,1,1,2,10,1,45,2,31,3,6,2,6,2,6,2,3,3,2,1,1,1,2,1,1,4,2,10,3,2,2,12,1,26,1,19,1,2,1,15,2,14,34,123,5,3,4,45,3,9,
+53,4,17,1,5,12,52,45,1,130,29,3,49,47,31,1,4,12,17,1,8,1,53,30,1,1,36,4,8,1,5,42,40,40,78,2,10,854,6,2,1,1,44,1,2,3,1,2,23,1,1,8,160,22,6,3,1,26,5,1,64,56,6,2,64,1,3,1,2,5,4,4,1,3,1,27,4,3,4,1,8,8,9,7,29,2,1,128,54,3,7,22,2,8,19,5,8,128,73,535,31,385,1,1,1,53,15,7,4,20,10,16,2,1,45,3,4,2,2,2,1,4,14,25,7,10,6,3,36,5,1,8,1,10,4,60,2,1,48,3,9,2,4,4,7,10,1190,43,1,1,1,2,6,1,1,8,10,2358,879,145,99,13,4,2956,1071,13265,569,1223,69,11,1,46,16,4,13,16480,2,8190,246,10,39,2,60,2,3,3,6,8,8,2,7,30,4,48,34,66,
+3,1,186,87,9,18,142,26,26,26,7,1,18,26,26,1,1,2,2,1,2,2,2,4,1,8,4,1,1,1,7,1,11,26,26,2,1,4,2,8,1,7,1,26,2,1,4,1,5,1,1,3,7,1,26,26,26,26,26,26,26,26,26,26,26,26,28,2,25,1,25,1,6,25,1,25,1,6,25,1,25,1,6,25,1,25,1,6,25,1,25,1,6,1,1,2,50,5632,4,1,27,1,2,1,1,2,1,1,10,1,4,1,1,1,1,6,1,4,1,1,1,1,1,1,3,1,2,1,1,2,1,1,1,1,1,1,1,1,1,1,2,1,1,2,4,1,7,1,4,1,4,1,1,1,10,1,17,5,3,1,5,1,17,52,2,270,44,4,100,12,15,2,14,2,15,1,15,32,11,5,31,1,60,4,43,75,29,13,43,5,9,7,2,174,33,15,6,1,70,3,20,12,37,1,5,21,17,15,63,1,1,
+1,182,1,4,3,62,2,4,12,24,147,70,4,11,48,70,58,116,2188,42711,41,4149,11,222,16354,542,722403,1,30,96,128,240,65040,65534,2,65534])),f=e.a[0],g=1,h=e.a.length;g!==h;)f=f+e.a[g]|0,e.a[g]=f,g=1+g|0;a.qm=e;a.Xb=(2|a.Xb)<<24>>24}a=a.qm;b=Mb(x(),a,b);return c[0<=b?1+b|0:-1-b|0]}
+function Hg(a){0===(32&a.Xb)<<24>>24&&0===(32&a.Xb)<<24>>24&&(a.tm=new t(new Int32Array([1632,1776,1984,2406,2534,2662,2790,2918,3046,3174,3302,3430,3664,3792,3872,4160,4240,6112,6160,6470,6608,6784,6800,6992,7088,7232,7248,42528,43216,43264,43472,43600,44016,65296,66720,69734,69872,69942,70096,71360,120782,120792,120802,120812,120822])),a.Xb=(32|a.Xb)<<24>>24);return a.tm}function Ig(a){return 12===a||13===a||14===a}function Jg(){this.tm=this.rm=this.qm=this.sm=null;this.Xb=0}Jg.prototype=new q;
+Jg.prototype.constructor=Jg;function Kg(a,b){return 256>b?9===b||10===b||11===b||12===b||13===b||28<=b&&31>=b||160!==b&&Ig(Lg(a).a[b]):8199!==b&&8239!==b&&Ig(Gg(a,b))}
+function Lg(a){0===(1&a.Xb)<<24>>24&&0===(1&a.Xb)<<24>>24&&(a.sm=new t(new Int32Array([15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,12,24,24,24,26,24,24,24,21,22,24,25,24,20,24,24,9,9,9,9,9,9,9,9,9,9,24,24,25,25,25,24,24,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,21,24,22,27,23,27,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,21,25,22,25,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,15,
+15,12,24,26,26,26,26,28,24,27,28,5,29,25,16,28,27,28,25,11,11,27,2,24,24,27,11,5,30,11,11,11,24,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,1,25,1,1,1,1,1,1,1,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,2,25,2,2,2,2,2,2,2,2])),a.Xb=(1|a.Xb)<<24>>24);return a.sm}Jg.prototype.$classData=u({zo:0},!1,"java.lang.Character$",{zo:1,b:1,c:1});var Mg;function Ng(){Mg||(Mg=new Jg);return Mg}function Og(a){throw new Pg('For input string: "'+a+'"');}function Qg(){}Qg.prototype=new q;
+Qg.prototype.constructor=Qg;
+function kd(a,b){a=null===b?0:b.length;0===a&&Og(b);var c=b.charCodeAt(0),e=45===c,f=e?2147483648:2147483647;c=e||43===c?1:0;c>=b.length&&Og(b);for(var g=0;c!==a;){var h=Ng();var k=b.charCodeAt(c);if(256>k)h=48<=k&&57>=k?-48+k|0:65<=k&&90>=k?-55+k|0:97<=k&&122>=k?-87+k|0:-1;else if(65313<=k&&65338>=k)h=-65303+k|0;else if(65345<=k&&65370>=k)h=-65335+k|0;else{var m=Mb(x(),Hg(h),k);m=0>m?-2-m|0:m;0>m?h=-1:(h=k-Hg(h).a[m]|0,h=9h?h:-1;g=10*g+h;(-1===h||g>f)&&Og(b);c=1+c|0}return e?-g|0:g|
+0}function Vd(a,b){a=b-(1431655765&b>>1)|0;a=(858993459&a)+(858993459&a>>2)|0;return Math.imul(16843009,252645135&(a+(a>>4)|0))>>24}Qg.prototype.$classData=u({Go:0},!1,"java.lang.Integer$",{Go:1,b:1,c:1});var Rg;function ld(){Rg||(Rg=new Qg);return Rg}function te(a){return"number"===typeof a||a instanceof p}function Sg(){}Sg.prototype=new q;Sg.prototype.constructor=Sg;
+function Tg(a,b,c){a=0+c|0;if(0>a||a>b.a.length)throw b=new Ug,xd(b,null),b;c="";for(var e=0;e!==a;)c=""+c+String.fromCharCode(b.a[e]),e=1+e|0;return c}Sg.prototype.$classData=u({No:0},!1,"java.lang.String$",{No:1,b:1,c:1});var Vg;function Wg(){Vg||(Vg=new Sg);return Vg}function xd(a,b){a.xm=b;"[object Error]"!==Object.prototype.toString.call(a)&&(void 0===Error.captureStackTrace?Error():Error.captureStackTrace(a))}
+class Xg extends Error{constructor(){super();this.xm=null}Fi(){return this.xm}u(){var a=xa(this),b=this.Fi();return null===b?a:a+": "+b}v(){return Ca.prototype.v.call(this)}r(a){return Ca.prototype.r.call(this,a)}get message(){var a=this.Fi();return null===a?"":a}get name(){return xa(this)}toString(){return this.u()}}function Yg(){}Yg.prototype=new q;Yg.prototype.constructor=Yg;function Zg(){}Zg.prototype=Yg.prototype;
+function $g(a,b){for(a=fc(jc()).kf();a.i();){var c=a.f(),e=c.nm();if(null===b?null===e:za(b,e))return c.om()}return null}Yg.prototype.r=function(a){if(a===this)return!0;if(a&&a.$classData&&a.$classData.ia.bp){a=fc(jc()).M();var b=jc();if(a===fc(b).M()){a=fc(jc()).kf();a:{for(;a.i();){var c=a.f();b=$g(0,c.nm());c=c.om();if(null===b?null!==c:!za(b,c)){a=!0;break a}}a=!1}return!a}}return!1};Yg.prototype.v=function(){for(var a=fc(jc()).kf(),b=0;a.i();){var c=b;b=a.f();c|=0;b=b.v()+c|0}return b|0};
+Yg.prototype.u=function(){for(var a="{",b=!0,c=fc(jc()).kf();c.i();){var e=c.f();b?b=!1:a+=", ";a=""+a+e.nm()+"\x3d"+e.om()}return a+"}"};function dc(){}dc.prototype=new q;dc.prototype.constructor=dc;dc.prototype.i=function(){return!1};dc.prototype.f=function(){throw ah();};dc.prototype.$classData=u({Xo:0},!1,"java.util.Collections$EmptyIterator",{Xo:1,b:1,ap:1});function bh(){this.Jm=null;ch=this;this.Jm=new dh}bh.prototype=new q;bh.prototype.constructor=bh;
+bh.prototype.$classData=u({fp:0},!1,"scala.$less$colon$less$",{fp:1,b:1,c:1});var ch;function og(){ch||(ch=new bh);return ch}function eh(){}eh.prototype=new q;eh.prototype.constructor=eh;function fh(a,b,c){a=b.x();if(-1Pf(a,c).lm(b)),a.eg)}function Oi(a,b){return new Af(new z(c=>Pf(a,c).Fm(b)),a.eg)}function Pi(a,b){return new Af(new z((c=>e=>Pf(a,e).fm(new T(()=>{if(c.$d)var f=c.ae;else{if(null===c)throw new Ae;f=c.$d?c.ae:Sf(c,C(b))}return Pf(f,e)})))(new Nf)),a.eg)}function W(a,b){return Mi(Ni(a,new z((c=>e=>Oi(c.$d?c.ae:Yf(b,c),new z(f=>new Qi(a.eg,e,f))))(new Nf))),"~")}
+function Wf(a,b){return Mi(Ni(a,new z((c=>()=>Oi(c.$d?c.ae:Zf(b,c),new z(e=>e)))(new Nf))),"~\x3e")}function Hf(a,b){return Mi(Pi(a,b),"|")}function Vf(a,b){return Mi(Oi(a,b),a.u()+"^^")}function Ri(a){var b=new Df;b.hc=a;b.gc=0;return b}function Df(){this.hc=null;this.gc=0}Df.prototype=new cg;Df.prototype.constructor=Df;function Cf(a){return a.gc=Ga(this.hc)?"":"'"+Pa(Cf(this))+"', ...")+")"};
+Df.prototype.$classData=u({Xp:0},!1,"scala.util.parsing.input.CharSequenceReader",{Xp:1,Cu:1,b:1});function qb(){}qb.prototype=new lh;qb.prototype.constructor=qb;qb.prototype.e=function(a){return Ri(a)};qb.prototype.$classData=u({Sn:0},!1,"Main$package$$anon$2",{Sn:1,iu:1,b:1,E:1});function Si(){Ti();return Ui}function Vi(){Ti();return Wi}function Xi(){Yi=this;Ui=new Zi(0,"Flat");Wi=new Zi(1,"Nested");Si();Vi()}Xi.prototype=new q;Xi.prototype.constructor=Xi;
+Xi.prototype.$classData=u({Un:0},!1,"Syntax$",{Un:1,b:1,fd:1,Ui:1});var Yi;function Ti(){Yi||(Yi=new Xi)}function $i(a){var b=new aj;xd(b,a);return b}class aj extends Xg{}aj.prototype.$classData=u({Cc:0},!1,"java.lang.Exception",{Cc:1,Dc:1,b:1,c:1});function bj(){}bj.prototype=new q;bj.prototype.constructor=bj;function cj(){}cj.prototype=bj.prototype;bj.prototype.ja=function(a){var b=jc();for(b=cc(b);b.i();){var c=b.f();if(null===a?null===c:za(a,c))return!0}return!1};
+bj.prototype.u=function(){var a=jc();a=cc(a);for(var b="[",c=!0;a.i();)c?c=!1:b+=", ",b=""+b+a.f();return b+"]"};function dj(a){this.Bm=a}dj.prototype=new q;dj.prototype.constructor=dj;dj.prototype.i=function(){return this.Bm.i()};dj.prototype.f=function(){return this.Bm.f()};dj.prototype.$classData=u({Zo:0},!1,"java.util.Collections$UnmodifiableIterator",{Zo:1,b:1,eu:1,ap:1});function fg(){ej||(ej=new fj);return gj}function gg(){ej||(ej=new fj);return hj}
+function fj(){ej=this;gj=new ij(0,"Optional");hj=new ij(1,"Required");fg();gg()}fj.prototype=new q;fj.prototype.constructor=fj;fj.prototype.$classData=u({ao:0},!1,"model.ChildFeatureKind$",{ao:1,b:1,fd:1,Ui:1});var ej;function jj(){kj||(kj=new lj);return mj}function nj(){kj||(kj=new lj);return oj}function lj(){kj=this;mj=new pj(0,"Requires");oj=new pj(1,"Excludes");jj();nj()}lj.prototype=new q;lj.prototype.constructor=lj;lj.prototype.$classData=u({eo:0},!1,"model.ConstraintKind$",{eo:1,b:1,fd:1,Ui:1});
+var kj;function qj(){}qj.prototype=new q;qj.prototype.constructor=qj;qj.prototype.u=function(){return"Feature"};function rj(){sj();sg();var a=Fe(A(),new (w(tj).A)([]));return ug(0,a)}function uj(){sj();sg();var a=Fe(A(),new (w(tj).A)([]));return ug(0,a)}function vj(){sj();sg();var a=Fe(A(),new (w(tg).A)([]));return ug(0,a)}function wj(){sj();re();var a=Ce(A(),new (w(Jf).A)([]));return Kf(K(),a)}function xj(){sj();re();var a=Ce(A(),new (w(Jf).A)([]));return Kf(K(),a)}
+qj.prototype.$classData=u({ho:0},!1,"model.Feature$",{ho:1,b:1,fd:1,Ie:1});var yj;function sj(){yj||(yj=new qj)}function Ag(){zj();return Aj}function Cg(){zj();return Bj}function Dg(){zj();return Cj}function Eg(){zj();return Dj}function Ej(){Fj=this;Aj=new Gj(0,"Has");Bj=new Gj(1,"CanHave");Cj=new Gj(2,"HasSome");Dj=new Gj(3,"HasOneOf");Ag();Cg();Dg();Eg()}Ej.prototype=new q;Ej.prototype.constructor=Ej;Ej.prototype.$classData=u({lo:0},!1,"model.RelationKind$",{lo:1,b:1,fd:1,Ui:1});var Fj;
+function zj(){Fj||(Fj=new Ej)}function Hj(){}Hj.prototype=new q;Hj.prototype.constructor=Hj;function Ij(){}Ij.prototype=Hj.prototype;function Jj(){Kj=this;re();oe();zg()}Jj.prototype=new nh;Jj.prototype.constructor=Jj;function Lj(a,b){if(!b)throw Ib("requirement failed");}Jj.prototype.$classData=u({qp:0},!1,"scala.Predef$",{qp:1,ju:1,ku:1,b:1});var Kj;function sg(){Kj||(Kj=new Jj);return Kj}function Mj(){this.fi=null}Mj.prototype=new q;Mj.prototype.constructor=Mj;function Nj(){}Nj.prototype=Mj.prototype;
+Mj.prototype.pa=function(){return this.fi.km(td())};Mj.prototype.Ya=function(a){return this.fi.mm(a,td())};Mj.prototype.ba=function(){var a=this.fi,b=td();return a.Yh(b)};function Oj(){this.me=null}Oj.prototype=new q;Oj.prototype.constructor=Oj;function Pj(){}Pj.prototype=Oj.prototype;Oj.prototype.pa=function(){return this.me.pa()};Oj.prototype.Ya=function(a){return this.me.Ya(a)};Oj.prototype.ba=function(){return this.me.ba()};
+function Qj(a,b){if(0>b)return 1;var c=a.x();if(0<=c)return c===b?0:c{var h=b.e(g);if(ja(e)!==l(Tj)){var k=e.mb(h);if(k instanceof P)h=k.Gb;else{if(R()!==k)throw new L(k);k=a.wa().ba();Uj(e,h,k);h=k}}else{k=M(N(),h);k^=k>>>16|0;var m=k&(-1+e.F.a.length|0),n=e.F.a[m];n=null===n?null:ee(n,h,k);if(null!==n)h=n.tc;else{n=e.F;var y=a.wa().ba();(1+e.uc|0)>=e.Ze&&Vj(e,e.F.a.length<<1);Wj(e,h,y,k,n===e.F?m:k&(-1+e.F.a.length|0));h=y}}g=c.e(g);return h.oa(g)}));var f=new Xj(a);e.aa(f);return f.fh}
+function Xj(){this.fh=null;this.fh=Yj()}Xj.prototype=new vi;Xj.prototype.constructor=Xj;Xj.prototype.e=function(a){this.fh=this.fh.af(a.Pa,a.va.Ta())};Xj.prototype.$classData=u({Bq:0},!1,"scala.collection.IterableOps$Result$1",{Bq:1,Kn:1,b:1,E:1});function Zj(a,b,c){var e=0c?-1:c<=b?0:c-b|0;return 0===c?I().P:new dk(a,b,c)}
+function ek(){this.P=null;fk=this;this.P=new gk}ek.prototype=new q;ek.prototype.constructor=ek;ek.prototype.ba=function(){return new hk};ek.prototype.pa=function(){return this.P};ek.prototype.Ya=function(a){return a.g()};ek.prototype.$classData=u({Cq:0},!1,"scala.collection.Iterator$",{Cq:1,b:1,Hb:1,c:1});var fk;function I(){fk||(fk=new ek);return fk}function ik(a){var b=xk();a.ig=b}function Hk(){this.ig=null}Hk.prototype=new q;Hk.prototype.constructor=Hk;function Ik(){}Ik.prototype=Hk.prototype;
+Hk.prototype.pa=function(){return this.ig.pa()};Hk.prototype.ba=function(){return this.ig.ba()};function Nk(){}Nk.prototype=new q;Nk.prototype.constructor=Nk;function Ok(a,b){if(b&&b.$classData&&b.$classData.ia.ne)return b;if(b&&b.$classData&&b.$classData.ia.z)return new Pk(new T(()=>b.g()));a=Qk(pe(),b);return Rk(new Sk,a)}Nk.prototype.ba=function(){Tk();var a=new Uk;return new Vk(a,new z(b=>Ok(Wk(),b)))};Nk.prototype.pa=function(){Xk||(Xk=new Yk);return Xk};
+Nk.prototype.Ya=function(a){return Ok(0,a)};Nk.prototype.$classData=u({Wq:0},!1,"scala.collection.View$",{Wq:1,b:1,Hb:1,c:1});var Zk;function Wk(){Zk||(Zk=new Nk);return Zk}function sd(a,b,c,e,f,g){this.ea=a;this.ma=b;this.Ua=c;this.Tc=e;this.Ib=f;this.Jc=g}sd.prototype=new Bh;sd.prototype.constructor=sd;d=sd.prototype;d.M=function(){return this.Ib};d.Ob=function(){return this.Jc};d.Rd=function(a){return this.Ua.a[a<<1]};d.Bd=function(a){return this.Ua.a[1+(a<<1)|0]};
+d.Hi=function(a){return new H(this.Ua.a[a<<1],this.Ua.a[1+(a<<1)|0])};d.dd=function(a){return this.Tc.a[a]};d.ed=function(a){return this.Ua.a[(-1+this.Ua.a.length|0)-a|0]};d.zi=function(a,b,c,e){var f=Sd(B(),c,e),g=Td(B(),f);if(0!==(this.ea&g)){if(b=Ud(B(),this.ea,f,g),F(G(),a,this.Rd(b)))return this.Bd(b)}else if(0!==(this.ma&g))return this.ed(Ud(B(),this.ma,f,g)).zi(a,b,c,5+e|0);throw $k(new al,"key not found: "+a);};
+d.Vh=function(a,b,c,e){var f=Sd(B(),c,e),g=Td(B(),f);return 0!==(this.ea&g)?(b=Ud(B(),this.ea,f,g),c=this.Rd(b),F(G(),a,c)?new P(this.Bd(b)):R()):0!==(this.ma&g)?(f=Ud(B(),this.ma,f,g),this.ed(f).Vh(a,b,c,5+e|0)):R()};d.Gi=function(a,b,c,e,f){var g=Sd(B(),c,e),h=Td(B(),g);return 0!==(this.ea&h)?(b=Ud(B(),this.ea,g,h),c=this.Rd(b),F(G(),a,c)?this.Bd(b):C(f)):0!==(this.ma&h)?(g=Ud(B(),this.ma,g,h),this.ed(g).Gi(a,b,c,5+e|0,f)):C(f)};
+d.Ai=function(a,b,c,e){var f=Sd(B(),c,e),g=Td(B(),f);return 0!==(this.ea&g)?(c=Ud(B(),this.ea,f,g),this.Tc.a[c]===b&&F(G(),a,this.Rd(c))):0!==(this.ma&g)&&this.ed(Ud(B(),this.ma,f,g)).Ai(a,b,c,5+e|0)};
+function bl(a,b,c,e,f,g,h){var k=Sd(B(),f,g),m=Td(B(),k);if(0!==(a.ea&m)){var n=Ud(B(),a.ea,k,m);k=a.Rd(n);var y=a.dd(n);if(y===e&&F(G(),k,b))return h?(f=a.Bd(n),Object.is(k,b)&&Object.is(f,c)||(m=a.zd(m)<<1,b=a.Ua,f=new r(b.a.length),b.G(0,f,0,b.a.length),f.a[1+m|0]=c,a=new sd(a.ea,a.ma,f,a.Tc,a.Ib,a.Jc)),a):a;n=a.Bd(n);h=Ec(Gc(),y);c=cl(a,k,n,y,h,b,c,e,f,5+g|0);f=a.zd(m);e=f<<1;g=(-2+a.Ua.a.length|0)-a.nf(m)|0;k=a.Ua;b=new r(-1+k.a.length|0);k.G(0,b,0,e);k.G(2+e|0,b,e,g-e|0);b.a[g]=c;k.G(2+g|0,
+b,1+g|0,-2+(k.a.length-g|0)|0);f=Ad(a.Tc,f);return new sd(a.ea^m,a.ma|m,b,f,(-1+a.Ib|0)+c.M()|0,(a.Jc-h|0)+c.Ob()|0)}if(0!==(a.ma&m))return k=Ud(B(),a.ma,k,m),k=a.ed(k),c=k.Pn(b,c,e,f,5+g|0,h),c!==k&&(m=(-1+a.Ua.a.length|0)-a.nf(m)|0,b=a.Ua,f=new r(b.a.length),b.G(0,f,0,b.a.length),f.a[m]=c,a=new sd(a.ea,a.ma,f,a.Tc,(a.Ib-k.M()|0)+c.M()|0,(a.Jc-k.Ob()|0)+c.Ob()|0)),a;g=a.zd(m);k=g<<1;y=a.Ua;h=new r(2+y.a.length|0);y.G(0,h,0,k);h.a[k]=b;h.a[1+k|0]=c;y.G(k,h,2+k|0,y.a.length-k|0);c=Pd(a.Tc,g,e);return new sd(a.ea|
+m,a.ma,h,c,1+a.Ib|0,a.Jc+f|0)}function cl(a,b,c,e,f,g,h,k,m,n){if(32<=n)return qe(),new dl(e,f,el(fl(new gl,[new H(b,c),new H(g,h)])));var y=Sd(B(),f,n),Q=Sd(B(),m,n),U=f+m|0;if(y!==Q)return a=Td(B(),y)|Td(B(),Q),y{if(null!==b)return a.Yf(b.Pa,b.va);throw new L(b);}))};d.Ei=function(a){for(var b=this.ya.g();b.i();){var c=b.f();(0,a.Jn)(c.Pa,c.va,this.lj)}};d.r=function(a){if(a instanceof dl){if(this===a)return!0;if(this.Df===a.Df&&this.ya.t()===a.ya.t()){for(var b=this.ya.g();b.i();){var c=b.f();if(null===c)throw new L(c);var e=c.va;c=nl(a,c.Pa);if(0>c||!F(G(),e,a.ya.y(c).va))return!1}return!0}}return!1};
+d.v=function(){throw new hl("Trie nodes do not support hashing.");};d.Ob=function(){return Math.imul(this.ya.t(),this.Df)};d.im=function(){return new dl(this.lj,this.Df,this.ya)};d.Vg=function(a){return this.ed(a)};d.$classData=u({rr:0},!1,"scala.collection.immutable.HashCollisionMapNode",{rr:1,bs:1,uh:1,b:1});function ll(a,b,c){this.en=a;this.nh=b;this.Sb=c;Lj(sg(),2<=this.Sb.t())}ll.prototype=new Dh;ll.prototype.constructor=ll;d=ll.prototype;
+d.Th=function(a,b,c){return this.nh===c?ol(this.Sb,a):!1};d.On=function(a,b,c,e){return this.Th(a,b,c,e)?this:new ll(b,c,this.Sb.Pd(a))};d.Wg=function(){return!1};d.$g=function(){return 0};d.ff=function(){throw Oe(new Pe,"No sub-nodes present in hash-collision leaf node.");};d.ag=function(){return!0};d.dg=function(){return this.Sb.t()};d.gf=function(a){return this.Sb.y(a)};d.dd=function(){return this.en};d.M=function(){return this.Sb.t()};d.aa=function(a){for(var b=this.Sb.g();b.i();)a.e(b.f())};
+d.Ob=function(){return Math.imul(this.Sb.t(),this.nh)};d.r=function(a){if(a instanceof ll){if(this===a)return!0;if(this.nh===a.nh&&this.Sb.t()===a.Sb.t()){a=a.Sb;for(var b=!0,c=this.Sb.g();b&&c.i();)b=c.f(),b=ol(a,b);return b}}return!1};d.v=function(){throw new hl("Trie nodes do not support hashing.");};d.jm=function(){return new ll(this.en,this.nh,this.Sb)};d.Vg=function(a){return this.ff(a)};d.$classData=u({sr:0},!1,"scala.collection.immutable.HashCollisionSetNode",{sr:1,vs:1,uh:1,b:1});
+function pl(){this.ng=null;ql=this;rd||(rd=new qd);this.ng=new rl(rd.nn)}pl.prototype=new q;pl.prototype.constructor=pl;pl.prototype.ba=function(){return new sl};pl.prototype.pa=function(){return this.ng};pl.prototype.$classData=u({ur:0},!1,"scala.collection.immutable.HashMap$",{ur:1,b:1,ji:1,c:1});var ql;function tl(){ql||(ql=new pl);return ql}function ul(){this.ph=null;vl=this;Xd||(Xd=new Wd);this.ph=new wl(Xd.tn)}ul.prototype=new q;ul.prototype.constructor=ul;ul.prototype.ba=function(){return new xl};
+ul.prototype.Ya=function(a){return a instanceof wl?a:0===a.x()?this.ph:yl(zl(new xl,a))};ul.prototype.pa=function(){return this.ph};ul.prototype.$classData=u({yr:0},!1,"scala.collection.immutable.HashSet$",{yr:1,b:1,Hb:1,c:1});var vl;function Al(){vl||(vl=new ul);return vl}function Bl(a,b){this.Lr=a;this.Mr=b}Bl.prototype=new q;Bl.prototype.constructor=Bl;Bl.prototype.m=function(){return this.Lr};Bl.prototype.jb=function(){return this.Mr};
+Bl.prototype.$classData=u({Kr:0},!1,"scala.collection.immutable.LazyList$State$Cons",{Kr:1,b:1,Jr:1,c:1});function Cl(){}Cl.prototype=new q;Cl.prototype.constructor=Cl;Cl.prototype.Li=function(){throw $k(new al,"head of empty lazy list");};Cl.prototype.jb=function(){throw new hl("tail of empty lazy list");};Cl.prototype.m=function(){this.Li()};Cl.prototype.$classData=u({Nr:0},!1,"scala.collection.immutable.LazyList$State$Empty$",{Nr:1,b:1,Jr:1,c:1});var Dl;
+function El(){Dl||(Dl=new Cl);return Dl}function Fl(){}Fl.prototype=new q;Fl.prototype.constructor=Fl;Fl.prototype.ba=function(){return new Gl};Fl.prototype.pa=function(){return Yj()};Fl.prototype.$classData=u({Qr:0},!1,"scala.collection.immutable.Map$",{Qr:1,b:1,ji:1,c:1});var Hl;function xk(){Hl||(Hl=new Fl);return Hl}function Il(){}Il.prototype=new q;Il.prototype.constructor=Il;
+function ug(a,b){return b&&b.$classData&&b.$classData.ia.Nu?Jl(Kl(new Ll,b)):0===b.x()?Ml():b&&b.$classData&&b.$classData.ia.tg?b:Jl(Kl(new Ll,b))}Il.prototype.ba=function(){return new Ll};Il.prototype.Ya=function(a){return ug(0,a)};Il.prototype.pa=function(){return Ml()};Il.prototype.$classData=u({js:0},!1,"scala.collection.immutable.Set$",{js:1,b:1,Hb:1,c:1});var Nl;function zg(){Nl||(Nl=new Il);return Nl}function Ol(){}Ol.prototype=new q;Ol.prototype.constructor=Ol;
+Ol.prototype.ba=function(){return new Pl(16,.75)};Ol.prototype.pa=function(){var a=new Ql;Rl(a,16,.75);return a};Ol.prototype.$classData=u({et:0},!1,"scala.collection.mutable.HashMap$",{et:1,b:1,ji:1,c:1});var Sl;function Tl(){Sl||(Sl=new Ol);return Sl}var Jf=u({Kt:0},!1,"scala.runtime.Nothing$",{Kt:1,Dc:1,b:1,c:1});function T(a){this.yt=a}T.prototype=new ti;T.prototype.constructor=T;function C(a){return(0,a.yt)()}
+T.prototype.$classData=u({xt:0},!1,"scala.scalajs.runtime.AnonFunction0",{xt:1,Uu:1,b:1,Rt:1});function z(a){this.At=a}z.prototype=new vi;z.prototype.constructor=z;z.prototype.e=function(a){return(0,this.At)(a)};z.prototype.$classData=u({zt:0},!1,"scala.scalajs.runtime.AnonFunction1",{zt:1,Kn:1,b:1,E:1});function Ul(a){this.Ct=a}Ul.prototype=new xi;Ul.prototype.constructor=Ul;Ul.prototype.Yf=function(a,b){return(0,this.Ct)(a,b)};
+Ul.prototype.$classData=u({Bt:0},!1,"scala.scalajs.runtime.AnonFunction2",{Bt:1,Gt:1,b:1,Cj:1});function Vl(a){this.Jn=a}Vl.prototype=new zi;Vl.prototype.constructor=Vl;Vl.prototype.$classData=u({Dt:0},!1,"scala.scalajs.runtime.AnonFunction3",{Dt:1,Vu:1,b:1,St:1});function Af(a,b){this.eg=this.ei=null;this.Pp=a;if(null===b)throw new Ae;if(null===b)throw new Ae;this.eg=b;this.ei=""}Af.prototype=new Li;Af.prototype.constructor=Af;function Pf(a,b){return a.Pp.e(b)}
+Af.prototype.e=function(a){return Pf(this,a)};Af.prototype.$classData=u({Op:0},!1,"scala.util.parsing.combinator.Parsers$$anon$1",{Op:1,yu:1,b:1,E:1});function Wl(a){if(null===a)throw new Ae;}Wl.prototype=new q;Wl.prototype.constructor=Wl;Wl.prototype.u=function(){return"~"};Wl.prototype.$classData=u({Sp:0},!1,"scala.util.parsing.combinator.Parsers$$tilde$",{Sp:1,b:1,fd:1,Ie:1});function Xl(a){this.dj=null;if(null===a)throw new Ae;this.dj=a}Xl.prototype=new q;Xl.prototype.constructor=Xl;
+Xl.prototype.u=function(){return"Failure"};Xl.prototype.$classData=u({Up:0},!1,"scala.util.parsing.combinator.Parsers$Failure$",{Up:1,b:1,fd:1,Ie:1});function Yl(a){if(null===a)throw new Ae;}Yl.prototype=new q;Yl.prototype.constructor=Yl;Yl.prototype.u=function(){return"Success"};Yl.prototype.$classData=u({Wp:0},!1,"scala.util.parsing.combinator.Parsers$Success$",{Wp:1,b:1,fd:1,Ie:1});function Zl(){}Zl.prototype=new Zg;Zl.prototype.constructor=Zl;
+Zl.prototype.$classData=u({$p:0},!1,"scala.util.parsing.input.PositionCache$$anon$1",{$p:1,Zt:1,b:1,bp:1});function $l(a){return xf(a,"labelChars",new z(b=>34!==Ba(b)))}function am(a){return xf(a,"whitespace",new z(b=>{b=Ba(b);return Kg(Ng(),b)?10!==b:!1}))}function bm(a){return xf(a,"whitespaceEndOfLine",new z(b=>{b=Ba(b);return Kg(Ng(),b)}))}function cm(a){return Gf(a,new T(()=>a.Dg()))}function dm(a){return Gf(a,new T(()=>a.Qn()))}function em(a){return W(a.Mh(),new T(()=>zf(a,Pa(10))))}
+function fm(a,b){b=oh(sg(),b);var c=re().ai;c=Ff(a,c);for(var e=b.rc.length,f=c;;)if(0!==e)c=-1+e|0,e=b.rc.charCodeAt(-1+e|0),f=Vf(W(zf(a,Pa(e)),new T((g=>()=>g)(f))),Xf(a)),e=c;else break;return Vf(W(f,new T(()=>a.Mh())),new z(g=>{if(null!==g)return a.I(),Tc(g.O,"","","");throw new L(g);}))}function gm(a){return Vf(fm(a,"has"),new z(()=>Ag()))}function hm(a){return Vf(fm(a,"canHave"),new z(()=>Cg()))}function im(a){return Vf(fm(a,"hasSome"),new z(()=>Dg()))}
+function jm(a){return Vf(fm(a,"hasOneOf"),new z(()=>Eg()))}function km(a){return Vf(fm(a,"requires"),new z(()=>jj()))}function lm(a){return Vf(fm(a,"excludes"),new z(()=>nj()))}function mm(a){return Vf(fm(a,"required"),new z(()=>gg()))}function nm(a){return Vf(fm(a,"optional"),new z(()=>fg()))}function om(a){return Hf(a.Ki(),new T(()=>a.hm()))}function pm(a){return Hf(a.Ji(),new T(()=>a.Ii()))}function qm(a){return Hf(a.Qi(),new T(()=>a.Ci()))}function rm(a){return Hf(a.Im(),new T(()=>a.Hm()))}
+function sm(a){return xf(a,"Lower case letter",new z(b=>{b=Ba(b);var c=Ng();return 256>b?170===b||186===b||2===Lg(c).a[b]:688<=b&&696>=b||704<=b&&705>=b||736<=b&&740>=b||837===b||890===b||7468<=b&&7530>=b||7544===b||7579<=b&&7615>=b||8305===b||8319===b||8336<=b&&8348>=b||8560<=b&&8575>=b||9424<=b&&9449>=b||11388<=b&&11389>=b||42864===b||43E3<=b&&43001>=b||2===Gg(c,b)}))}
+function tm(a){return xf(a,"Upper case letter",new z(b=>{b=Ba(b);var c=Ng(),e;(e=8544<=b&&8559>=b||9398<=b&&9423>=b)||(e=1===(0>b?0:256>b?Lg(c).a[b]:Gg(c,b)));return e}))}function um(a){return xf(a,"Digit",new z(b=>{b=Ba(b);var c=Ng();return 256>b?48<=b&&57>=b:9===Gg(c,b)}))}function vm(a){return Hf(a.em(),new T(()=>a.dm()))}function wm(a){return Hf(a.$l(),new T(()=>a.Bj()))}function xm(a){return Hf(a.Zl(),new T(()=>zf(a,Pa(95))))}
+function ym(a){return Vf(W(W(a.xi(),new T(()=>Gf(a,new T(()=>a.xi())))),new T(()=>a.Mh())),new z(b=>{if(null!==b){a.I();var c=b.O;if(null!==c)return a.I(),b=""+Pa(Ba(c.O))+Tc(c.ca,"","",""),new Hm(b)}throw new L(b);}))}function Rm(a){return Vf(W(W(W(a.ui(),new T(()=>Gf(a,new T(()=>a.Em())))),new T(()=>a.ui())),new T(()=>a.Mh())),new z(b=>{if(null!==b){a.I();var c=b.O;if(null!==c&&(a.I(),c=c.O,null!==c))return a.I(),b=Tc(c.ca,"","",""),new Sm(b)}throw new L(b);}))}
+var ta=u({wo:0},!1,"java.lang.Boolean",{wo:1,b:1,c:1,Fe:1,Ge:1},a=>"boolean"===typeof a),wa=u({yo:0},!1,"java.lang.Character",{yo:1,b:1,c:1,Fe:1,Ge:1},a=>a instanceof ea);function Ji(a){var b=new Tm;xd(b,a);return b}class Tm extends aj{}Tm.prototype.$classData=u({Pc:0},!1,"java.lang.RuntimeException",{Pc:1,Cc:1,Dc:1,b:1,c:1});function Um(a){a.w="";return a}function Vm(){this.w=null}Vm.prototype=new q;Vm.prototype.constructor=Vm;d=Vm.prototype;d.u=function(){return this.w};d.t=function(){return this.w.length};
+d.Tg=function(a){return this.w.charCodeAt(a)};d.Mn=function(a,b){return this.w.substring(a,b)};d.$classData=u({Oo:0},!1,"java.lang.StringBuilder",{Oo:1,b:1,pm:1,Xt:1,c:1});function Wm(a,b,c){this.Oh=a;this.bf=b;this.Ph=c}Wm.prototype=new q;Wm.prototype.constructor=Wm;d=Wm.prototype;d.Za=function(){return new Xm(this)};d.v=function(){return Xe(this)};
+d.r=function(a){if(this===a)return!0;if(a instanceof Wm){var b=this.Oh,c=a.Oh;(null===b?null===c:b.r(c))?(b=this.bf,c=a.bf,b=null===b?null===c:b.r(c)):b=!1;return b?this.Ph===a.Ph:!1}return!1};d.u=function(){return Be(this)};d.Ca=function(){return 3};d.Ea=function(){return"Constraint"};d.Da=function(a){switch(a){case 0:return this.Oh;case 1:return this.bf;case 2:return this.Ph;default:throw Oe(new Pe,""+a);}};d.$classData=u({co:0},!1,"model.Constraint",{co:1,b:1,s:1,nb:1,c:1});
+function Bg(a,b,c,e,f,g,h,k){this.kb=a;this.ec=b;this.Md=c;this.Od=e;this.xc=f;this.wc=g;this.vc=h;this.Nd=k}Bg.prototype=new q;Bg.prototype.constructor=Bg;d=Bg.prototype;d.Za=function(){return new Xm(this)};d.v=function(){return Xe(this)};
+d.r=function(a){if(this===a)return!0;if(a instanceof Bg){var b=this.kb,c=a.kb;(null===b?null===c:b.r(c))?(b=this.ec,c=a.ec,b=null===b?null===c:b.r(c)):b=!1;b?(b=this.Md,c=a.Md,b=null===b?null===c:b.r(c)):b=!1;b?(b=this.Od,c=a.Od,b=null===b?null===c:b.r(c)):b=!1;b?(b=this.xc,c=a.xc,b=null===b?null===c:b.r(c)):b=!1;b?(b=this.wc,c=a.wc,b=null===b?null===c:b.r(c)):b=!1;b?(b=this.vc,c=a.vc,b=null===b?null===c:b.r(c)):b=!1;if(b)return b=this.Nd,a=a.Nd,null===b?null===a:b.r(a)}return!1};d.u=function(){return Be(this)};
+d.Ca=function(){return 8};d.Ea=function(){return"Feature"};d.Da=function(a){switch(a){case 0:return this.kb;case 1:return this.ec;case 2:return this.Md;case 3:return this.Od;case 4:return this.xc;case 5:return this.wc;case 6:return this.vc;case 7:return this.Nd;default:throw Oe(new Pe,""+a);}};var tg=u({go:0},!1,"model.Feature",{go:1,b:1,s:1,nb:1,c:1});Bg.prototype.$classData=tg;function Hm(a){this.Vf=a;Lj(sg(),null!==a&&0hn().Ym)}fn.prototype=new Ik;fn.prototype.constructor=fn;fn.prototype.$classData=u({Nq:0},!1,"scala.collection.Map$",{Nq:1,Oq:1,b:1,ji:1,c:1});var gn;function hn(){gn||(gn=new fn);return gn}function jn(){this.Gd=null}jn.prototype=new q;jn.prototype.constructor=jn;
+function kn(){}kn.prototype=jn.prototype;jn.prototype.Ee=function(a){return this.Gd.Ya(a)};jn.prototype.ba=function(){return this.Gd.ba()};jn.prototype.Ya=function(a){return this.Ee(a)};jn.prototype.pa=function(){return this.Gd.pa()};function ln(a,b){return a.Xg(new z(c=>F(G(),b,c)),0)}function ol(a,b){return a.Uh(new z(c=>F(G(),c,b)))}
+function mn(a,b){var c=a.x();if(-1!==c){var e=b.x();c=-1!==e&&c!==e}else c=!1;if(c)return!1;a:{a=a.g();for(b=b.g();a.i()&&b.i();)if(!F(G(),a.f(),b.f())){b=!1;break a}b=a.i()===b.i()}return b}function nn(a,b){var c=a.wa().ba();for(a=a.g();a.i();){var e=b.e(a.f());c.oa(e)}return c.Ta()}function on(a,b){var c=a.wa().ba();for(a=a.g();a.i();){var e=b.e(a.f());c.lb(e)}return c.Ta()}function pg(a,b){var c=a.wa().ba();for(a=a.g();a.i();){var e=b.e(a.f());c.lb(e)}return c.Ta()}
+function pn(){this.me=null;this.me=oe()}pn.prototype=new Pj;pn.prototype.constructor=pn;pn.prototype.Ya=function(a){return qn(a)?a:Oj.prototype.Ya.call(this,a)};pn.prototype.$classData=u({Dr:0},!1,"scala.collection.immutable.Iterable$",{Dr:1,Um:1,b:1,Hb:1,c:1});var rn;function dn(){rn||(rn=new pn);return rn}function sn(){this.rh=null;tn=this;this.rh=un(new vn(new T(()=>El())))}sn.prototype=new q;sn.prototype.constructor=sn;
+function wn(a,b,c){var e=new Bi(b);return new vn(new T(()=>{for(var f=new Bi(null),g=!1,h=new Bi(e.Eb);!g&&!h.Eb.d();)f.Eb=c.e(Z(h.Eb).m()).g(),g=f.Eb.i(),g||(h.Eb=Z(h.Eb).jb(),e.Eb=h.Eb);return g?(g=f.Eb.f(),h.Eb=Z(h.Eb).jb(),e.Eb=h.Eb,pe(),pe(),new Bl(g,new vn(new T(()=>xn(pe(),f.Eb,new T(()=>Z(wn(pe(),h.Eb,c)))))))):El()}))}function yn(a,b,c){var e=new Bi(b),f=new Ai(c);return new vn(new T(()=>{for(var g=e.Eb,h=f.Aj;0zn(pe(),b.g())))}function xn(a,b,c){return b.i()?(a=b.f(),new Bl(a,new vn(new T(()=>xn(pe(),b,c))))):C(c)}function zn(a,b){return b.i()?(a=b.f(),new Bl(a,new vn(new T(()=>zn(pe(),b))))):El()}sn.prototype.ba=function(){return new An};sn.prototype.pa=function(){return this.rh};sn.prototype.Ya=function(a){return Qk(this,a)};sn.prototype.$classData=u({Fr:0},!1,"scala.collection.immutable.LazyList$",{Fr:1,b:1,Fd:1,Hb:1,c:1});var tn;
+function pe(){tn||(tn=new sn);return tn}function Bn(){Cn=this}Bn.prototype=new q;Bn.prototype.constructor=Bn;Bn.prototype.ba=function(){var a=Uc();return new Vk(a,new z(b=>new ph(b)))};Bn.prototype.$classData=u({Is:0},!1,"scala.collection.immutable.WrappedString$",{Is:1,b:1,Hu:1,Fu:1,c:1});var Cn;function Vk(a,b){this.En=this.ri=null;if(null===a)throw null;this.ri=a;this.En=b}Vk.prototype=new q;Vk.prototype.constructor=Vk;Vk.prototype.Ta=function(){return this.En.e(this.ri.Ta())};
+Vk.prototype.lb=function(a){this.ri.lb(a);return this};Vk.prototype.oa=function(a){this.ri.oa(a);return this};Vk.prototype.$classData=u({at:0},!1,"scala.collection.mutable.Builder$$anon$1",{at:1,b:1,sc:1,cc:1,bc:1});function Dn(a,b){a.Cg=b;return a}function En(){this.Cg=null}En.prototype=new q;En.prototype.constructor=En;function Fn(){}Fn.prototype=En.prototype;En.prototype.lb=function(a){this.Cg.lb(a);return this};En.prototype.oa=function(a){this.Cg.oa(a);return this};En.prototype.Ta=function(){return this.Cg};
+En.prototype.$classData=u({vj:0},!1,"scala.collection.mutable.GrowableBuilder",{vj:1,b:1,sc:1,cc:1,bc:1});function Gn(){this.me=null;this.me=Tk()}Gn.prototype=new Pj;Gn.prototype.constructor=Gn;Gn.prototype.$classData=u({mt:0},!1,"scala.collection.mutable.Iterable$",{mt:1,Um:1,b:1,Hb:1,c:1});var Hn;function In(){this.ig=null;this.ig=Tl()}In.prototype=new Ik;In.prototype.constructor=In;In.prototype.$classData=u({qt:0},!1,"scala.collection.mutable.Map$",{qt:1,Oq:1,b:1,ji:1,c:1});var Jn;
+function Sj(){Jn||(Jn=new In);return Jn}function Kn(a){throw Oe(new Pe,""+a);}function Qi(a,b,c){this.cj=null;this.O=b;this.ca=c;if(null===a)throw new Ae;this.cj=a}Qi.prototype=new q;Qi.prototype.constructor=Qi;d=Qi.prototype;d.Za=function(){return new Xm(this)};d.v=function(){return Xe(this)};d.r=function(a){if(this===a)return!0;if(a instanceof Qi&&a.cj===this.cj){var b=this.O,c=a.O;if(F(G(),b,c))return b=this.ca,a=a.ca,F(G(),b,a)}return!1};d.Ca=function(){return 2};d.Ea=function(){return"~"};
+d.Da=function(a){if(0===a)return this.O;if(1===a)return this.ca;throw Oe(new Pe,""+a);};d.u=function(){return"("+this.O+"~"+this.ca+")"};d.$classData=u({Rp:0},!1,"scala.util.parsing.combinator.Parsers$$tilde",{Rp:1,b:1,s:1,nb:1,c:1});function Ln(){}Ln.prototype=new q;Ln.prototype.constructor=Ln;function Mn(){}Mn.prototype=Ln.prototype;Ln.prototype.Za=function(){return new Xm(this)};var ma=u({xo:0},!1,"java.lang.Byte",{xo:1,Zg:1,b:1,c:1,Fe:1,Ge:1},a=>"number"===typeof a&&a<<24>>24===a&&1/a!==1/-0);
+function Ib(a){var b=new Nn;xd(b,a);return b}function mg(){var a=new Nn;xd(a,null);return a}class Nn extends Tm{}Nn.prototype.$classData=u({vm:0},!1,"java.lang.IllegalArgumentException",{vm:1,Pc:1,Cc:1,Dc:1,b:1,c:1});class od extends Tm{constructor(a){super();xd(this,a)}}od.prototype.$classData=u({Eo:0},!1,"java.lang.IllegalStateException",{Eo:1,Pc:1,Cc:1,Dc:1,b:1,c:1});function Oe(a,b){xd(a,b);return a}class Pe extends Tm{}
+Pe.prototype.$classData=u({Ni:0},!1,"java.lang.IndexOutOfBoundsException",{Ni:1,Pc:1,Cc:1,Dc:1,b:1,c:1});class $b extends Tm{constructor(){super();xd(this,null)}}$b.prototype.$classData=u({Jo:0},!1,"java.lang.NegativeArraySizeException",{Jo:1,Pc:1,Cc:1,Dc:1,b:1,c:1});class Ae extends Tm{constructor(){super();xd(this,null)}}Ae.prototype.$classData=u({Ko:0},!1,"java.lang.NullPointerException",{Ko:1,Pc:1,Cc:1,Dc:1,b:1,c:1});
+var na=u({Mo:0},!1,"java.lang.Short",{Mo:1,Zg:1,b:1,c:1,Fe:1,Ge:1},a=>"number"===typeof a&&a<<16>>16===a&&1/a!==1/-0);class hl extends Tm{constructor(a){super();xd(this,a)}}hl.prototype.$classData=u({Ro:0},!1,"java.lang.UnsupportedOperationException",{Ro:1,Pc:1,Cc:1,Dc:1,b:1,c:1});function On(){}On.prototype=new cj;On.prototype.constructor=On;function Pn(){}Pn.prototype=On.prototype;
+On.prototype.r=function(a){if(a===this)a=!0;else if(a&&a.$classData&&a.$classData.ia.Am){var b;if(b=0===a.M()){a=a.kf();a:{for(;a.i();)if(b=a.f(),!this.ja(b)){a=!0;break a}a=!1}b=!a}a=b}else a=!1;return a};On.prototype.v=function(){var a=jc();a=cc(a);for(var b=0;a.i();){var c=b;b=a.f();c|=0;b=Da(b)+c|0}return b|0};function Qn(){this.lf=null}Qn.prototype=new q;Qn.prototype.constructor=Qn;function Rn(){}Rn.prototype=Qn.prototype;Qn.prototype.M=function(){return this.lf.M()};Qn.prototype.u=function(){return this.lf.u()};
+Qn.prototype.kf=function(){return new dj(this.lf.kf())};class Sn extends Tm{constructor(){super();xd(this,"mutation occurred during iteration")}}Sn.prototype.$classData=u({$o:0},!1,"java.util.ConcurrentModificationException",{$o:1,Pc:1,Cc:1,Dc:1,b:1,c:1});function $k(a,b){xd(a,b);return a}function ah(){var a=new al;xd(a,null);return a}class al extends Tm{}al.prototype.$classData=u({cp:0},!1,"java.util.NoSuchElementException",{cp:1,Pc:1,Cc:1,Dc:1,b:1,c:1});function Tn(){}Tn.prototype=new q;
+Tn.prototype.constructor=Tn;function Un(){}Un.prototype=Tn.prototype;Tn.prototype.Za=function(){return new Xm(this)};function Vn(){}Vn.prototype=new q;Vn.prototype.constructor=Vn;function Wn(){}Wn.prototype=Vn.prototype;Vn.prototype.Za=function(){return new Xm(this)};function Xn(){}Xn.prototype=new q;Xn.prototype.constructor=Xn;function Yn(){}Yn.prototype=Xn.prototype;Xn.prototype.Za=function(){return new Xm(this)};function dh(){}dh.prototype=new $m;dh.prototype.constructor=dh;dh.prototype.e=function(a){return a};
+dh.prototype.u=function(){return"generalized constraint"};dh.prototype.$classData=u({gp:0},!1,"scala.$less$colon$less$$anon$1",{gp:1,gu:1,hu:1,b:1,E:1,c:1});class L extends Tm{constructor(a){super();this.Km=null;this.Si=!1;this.Zh=a;xd(this,null)}Fi(){if(!this.Si&&!this.Si){if(null===this.Zh)var a="null";else try{a=Ja(this.Zh)+" (of class "+ja(this.Zh).tb.name+")"}catch(b){a="an instance of class "+ja(this.Zh).tb.name}this.Km=a;this.Si=!0}return this.Km}}
+L.prototype.$classData=u({jp:0},!1,"scala.MatchError",{jp:1,Pc:1,Cc:1,Dc:1,b:1,c:1});function Zn(){}Zn.prototype=new q;Zn.prototype.constructor=Zn;function $n(){}$n.prototype=Zn.prototype;Zn.prototype.d=function(){return this===R()};Zn.prototype.x=function(){return this.d()?0:1};Zn.prototype.g=function(){if(this.d())return I().P;I();var a=this.Ra();return new ao(a)};function Xm(a){this.Mm=this.bh=0;this.Lm=null;if(null===a)throw null;this.Lm=a;this.bh=0;this.Mm=a.Ca()}Xm.prototype=new bn;
+Xm.prototype.constructor=Xm;Xm.prototype.i=function(){return this.bha.Ed)return-1;a=a.Ed-b|0;return 0>a?0:a}
+function dk(a,b,c){this.hg=a;this.Ed=c;this.rf=b}dk.prototype=new bn;dk.prototype.constructor=dk;d=dk.prototype;d.x=function(){var a=this.hg.x();if(0>a)return-1;a=a-this.rf|0;a=0>a?0:a;if(0>this.Ed)return a;var b=this.Ed;return bthis.Ed?this.hg.f():I().P.f()};
+d.Kh=function(a,b){a=0b)b=io(this,a);else if(b<=a)b=0;else if(0>this.Ed)b=b-a|0;else{var c=io(this,a);b=b-a|0;b=cb)throw Oe(new Pe,""+b);a=a.Bi(b);if(a.d())throw Oe(new Pe,""+b);return a.m()}
+function ko(a,b){if(b&&b.$classData&&b.$classData.ia.hj)a:for(;;){if(a===b){a=!0;break a}if((a.d()?0:!b.d())&&F(G(),a.m(),b.m()))a=a.l(),b=b.l();else{a=a.d()&&b.d();break a}}else a=mn(a,b);return a}function lo(a,b,c){var e=0h)throw oo();if(h>c.a.length)throw oo();e=new t(1+c.a.length|0);c.G(0,e,0,h);e.a[h]=f;c.G(h,e,1+h|0,c.a.length-h|0);b.ea|=m;b.Ua=a;b.Tc=e;b.Ib=1+b.Ib|0;b.Jc=b.Jc+g|0}}else if(b instanceof dl)m=nl(b,c),b.ya=0>m?b.ya.Pd(new H(c,e)):b.ya.Ce(m,new H(c,
+e));else throw new L(b);}function po(a){if(0===a.re.Ib)return tl().ng;null===a.oh&&(a.oh=new rl(a.re));return a.oh}function qo(a,b){no(a);var c=b.Pa;c=M(N(),c);var e=Ec(Gc(),c);xh(a,a.re,b.Pa,b.va,c,e,0);return a}function ro(a,b,c){no(a);var e=M(N(),b);xh(a,a.re,b,c,e,Ec(Gc(),e),0);return a}
+function so(a,b){no(a);if(b instanceof rl)new wh(a,b);else if(b instanceof Ql)for(b=to(b);b.i();){var c=b.f(),e=c.ze;e^=e>>>16|0;var f=Ec(Gc(),e);xh(a,a.re,c.Ye,c.tc,e,f,0)}else if(b&&b.$classData&&b.$classData.ia.Ff)b.Ad(new Ul((g,h)=>ro(a,g,h)));else for(b=b.g();b.i();)qo(a,b.f());return a}sl.prototype.lb=function(a){return so(this,a)};sl.prototype.oa=function(a){return qo(this,a)};sl.prototype.Ta=function(){return po(this)};
+sl.prototype.$classData=u({vr:0},!1,"scala.collection.immutable.HashMapBuilder",{vr:1,b:1,Be:1,sc:1,cc:1,bc:1});function xl(){this.se=this.Ef=null;this.se=new Yd(0,0,wc().Ri,wc().ah,0,0)}xl.prototype=new q;xl.prototype.constructor=xl;
+function zh(a,b,c,e,f,g){if(b instanceof Yd){var h=Sd(B(),f,g),k=Td(B(),h);if(0!==(b.$a&k)){a=Ud(B(),b.$a,h,k);h=b.gf(a);var m=b.dd(a);m===e&&F(G(),h,c)?(e=b.zd(k),b.xb.a[e]=h):(a=Ec(Gc(),m),e=kl(b,h,m,a,c,e,f,5+g|0),f=b.zd(k),c=(-1+b.xb.a.length|0)-b.nf(k)|0,b.xb.G(1+f|0,b.xb,f,c-f|0),b.xb.a[c]=e,b.$a^=k,b.Jb|=k,b.jd=Ad(b.jd,f),b.Qb=(-1+b.Qb|0)+e.M()|0,b.Uc=(b.Uc-a|0)+e.Ob()|0)}else if(0!==(b.Jb&k))k=Ud(B(),b.Jb,h,k),k=b.ff(k),h=k.M(),m=k.Ob(),zh(a,k,c,e,f,5+g|0),b.Qb=b.Qb+(k.M()-h|0)|0,b.Uc=b.Uc+
+(k.Ob()-m|0)|0;else{g=b.zd(k);h=b.xb;a=new r(1+h.a.length|0);h.G(0,a,0,g);a.a[g]=c;h.G(g,a,1+g|0,h.a.length-g|0);c=b.jd;if(0>g)throw oo();if(g>c.a.length)throw oo();h=new t(1+c.a.length|0);c.G(0,h,0,g);h.a[g]=e;c.G(g,h,1+g|0,c.a.length-g|0);b.$a|=k;b.xb=a;b.jd=h;b.Qb=1+b.Qb|0;b.Uc=b.Uc+f|0}}else if(b instanceof ll)e=ln(b.Sb,c),b.Sb=0>e?b.Sb.Pd(c):b.Sb.Ce(e,c);else throw new L(b);}function yl(a){if(0===a.se.Qb)return Al().ph;null===a.Ef&&(a.Ef=new wl(a.se));return a.Ef}
+function uo(a,b){null!==a.Ef&&(a.se=ml(a.se));a.Ef=null;var c=M(N(),b),e=Ec(Gc(),c);zh(a,a.se,b,c,e,0);return a}function zl(a,b){null!==a.Ef&&(a.se=ml(a.se));a.Ef=null;if(b instanceof wl)new yh(a,b);else for(b=b.g();b.i();)uo(a,b.f());return a}xl.prototype.lb=function(a){return zl(this,a)};xl.prototype.oa=function(a){return uo(this,a)};xl.prototype.Ta=function(){return yl(this)};xl.prototype.$classData=u({zr:0},!1,"scala.collection.immutable.HashSetBuilder",{zr:1,b:1,Be:1,sc:1,cc:1,bc:1});
+function vo(){this.Gd=null;this.Gd=qe()}vo.prototype=new kn;vo.prototype.constructor=vo;vo.prototype.Ya=function(a){return wo(a)?a:jn.prototype.Ee.call(this,a)};vo.prototype.Ee=function(a){return wo(a)?a:jn.prototype.Ee.call(this,a)};vo.prototype.$classData=u({Br:0},!1,"scala.collection.immutable.IndexedSeq$",{Br:1,ij:1,b:1,Fd:1,Hb:1,c:1});var xo;function ne(){xo||(xo=new vo);return xo}function An(){this.gn=this.og=null;yo(this)}An.prototype=new q;An.prototype.constructor=An;
+function yo(a){var b=new md;pe();a.gn=new vn(new T(()=>nd(b)));a.og=b}function zo(a){pd(a.og,new T(()=>El()));return a.gn}function Ao(a,b){var c=new md;pd(a.og,new T(()=>{pe();pe();return new Bl(b,new vn(new T(()=>nd(c))))}));a.og=c;return a}function Bo(a,b){if(0!==b.x()){var c=new md;pd(a.og,new T(()=>xn(pe(),b.g(),new T(()=>nd(c)))));a.og=c}return a}An.prototype.lb=function(a){return Bo(this,a)};An.prototype.oa=function(a){return Ao(this,a)};An.prototype.Ta=function(){return zo(this)};
+An.prototype.$classData=u({Gr:0},!1,"scala.collection.immutable.LazyList$LazyBuilder",{Gr:1,b:1,Be:1,sc:1,cc:1,bc:1});function Co(a){this.qh=a}Co.prototype=new bn;Co.prototype.constructor=Co;Co.prototype.i=function(){return!this.qh.d()};Co.prototype.f=function(){if(this.qh.d())return I().P.f();var a=Z(this.qh).m();this.qh=Z(this.qh).jb();return a};Co.prototype.$classData=u({Ir:0},!1,"scala.collection.immutable.LazyList$LazyIterator",{Ir:1,da:1,b:1,R:1,n:1,o:1});function Do(){Eo=this;K();K()}
+Do.prototype=new q;Do.prototype.constructor=Do;Do.prototype.ba=function(){return new Of};Do.prototype.pa=function(){return K()};Do.prototype.Ya=function(a){return Kf(K(),a)};Do.prototype.$classData=u({Pr:0},!1,"scala.collection.immutable.List$",{Pr:1,b:1,hh:1,Fd:1,Hb:1,c:1});var Eo;function oe(){Eo||(Eo=new Do);return Eo}function Fo(){this.Pe=0;this.pg=null}Fo.prototype=new bn;Fo.prototype.constructor=Fo;function Go(){}Go.prototype=Fo.prototype;Fo.prototype.i=function(){return 2>this.Pe};
+Fo.prototype.f=function(){switch(this.Pe){case 0:var a=new H(this.pg.od,this.pg.te);break;case 1:a=new H(this.pg.pd,this.pg.ue);break;default:a=I().P.f()}this.Pe=1+this.Pe|0;return a};Fo.prototype.Ac=function(a){this.Pe=this.Pe+a|0;return this};function Ho(){this.Re=0;this.Qe=null}Ho.prototype=new bn;Ho.prototype.constructor=Ho;function Io(){}Io.prototype=Ho.prototype;Ho.prototype.i=function(){return 3>this.Re};
+Ho.prototype.f=function(){switch(this.Re){case 0:var a=new H(this.Qe.Vc,this.Qe.Ud);break;case 1:a=new H(this.Qe.Wc,this.Qe.Vd);break;case 2:a=new H(this.Qe.Xc,this.Qe.Wd);break;default:a=I().P.f()}this.Re=1+this.Re|0;return a};Ho.prototype.Ac=function(a){this.Re=this.Re+a|0;return this};function Jo(){this.Se=0;this.Xd=null}Jo.prototype=new bn;Jo.prototype.constructor=Jo;function Ko(){}Ko.prototype=Jo.prototype;Jo.prototype.i=function(){return 4>this.Se};
+Jo.prototype.f=function(){switch(this.Se){case 0:var a=new H(this.Xd.kc,this.Xd.qd);break;case 1:a=new H(this.Xd.lc,this.Xd.rd);break;case 2:a=new H(this.Xd.mc,this.Xd.sd);break;case 3:a=new H(this.Xd.nc,this.Xd.td);break;default:a=I().P.f()}this.Se=1+this.Se|0;return a};Jo.prototype.Ac=function(a){this.Se=this.Se+a|0;return this};function Gl(){this.Yd=null;this.qg=!1;this.Te=null;this.Yd=Yj();this.qg=!1}Gl.prototype=new q;Gl.prototype.constructor=Gl;
+function Lo(a,b){return a.qg?(so(a.Te,b),a):Eh(a,b)}Gl.prototype.lb=function(a){return Lo(this,a)};Gl.prototype.oa=function(a){var b=a.Pa;a=a.va;if(this.qg)ro(this.Te,b,a);else if(4>this.Yd.M())this.Yd=this.Yd.af(b,a);else if(this.Yd.ja(b))this.Yd=this.Yd.af(b,a);else{this.qg=!0;null===this.Te&&(this.Te=new sl);var c=this.Yd;ro(ro(ro(ro(this.Te,c.kc,c.qd),c.lc,c.rd),c.mc,c.sd),c.nc,c.td);ro(this.Te,b,a)}return this};Gl.prototype.Ta=function(){return this.qg?po(this.Te):this.Yd};
+Gl.prototype.$classData=u({Zr:0},!1,"scala.collection.immutable.MapBuilderImpl",{Zr:1,b:1,Be:1,sc:1,cc:1,bc:1});function Mo(a){this.mh=this.lh=this.pi=null;this.pj=0;this.mn=null;this.ld=this.Cf=-1;this.lh=new t(1+B().vh|0);this.mh=new (w(ad).A)(1+B().vh|0);ed(this,a);fd(this);this.pj=0}Mo.prototype=new hd;Mo.prototype.constructor=Mo;d=Mo.prototype;d.g=function(){return this};d.d=function(){return!this.i()};d.De=function(a){return ak(this,a)};d.Ac=function(a){return ck(this,a,-1)};d.u=function(){return"\x3citerator\x3e"};
+d.sb=function(a,b,c){return Rc(this,a,b,c)};d.yc=function(a,b,c,e){return Vc(this,a,b,c,e)};d.Wb=function(){oe();return Kf(K(),this)};d.x=function(){return-1};d.v=function(){var a=O(),b=this.mn;return We(a,this.pj,M(N(),b))};d.f=function(){if(!this.i())throw ah();this.pj=this.pi.dd(this.Cf);this.mn=this.pi.Bd(this.Cf);this.Cf=-1+this.Cf|0;return this};d.$classData=u({$r:0},!1,"scala.collection.immutable.MapKeyValueTupleHashIterator",{$r:1,Ju:1,b:1,R:1,n:1,o:1});
+function No(a){this.qe=this.na=0;this.jc=null;this.Rb=0;this.Ne=this.kd=null;bd(this,a)}No.prototype=new dd;No.prototype.constructor=No;d=No.prototype;d.g=function(){return this};d.d=function(){return!this.i()};d.De=function(a){return ak(this,a)};d.Ac=function(a){return ck(this,a,-1)};d.u=function(){return"\x3citerator\x3e"};d.sb=function(a,b,c){return Rc(this,a,b,c)};d.yc=function(a,b,c,e){return Vc(this,a,b,c,e)};d.Wb=function(){oe();return Kf(K(),this)};d.x=function(){return-1};
+d.f=function(){if(!this.i())throw ah();var a=this.jc.Hi(this.na);this.na=1+this.na|0;return a};d.$classData=u({as:0},!1,"scala.collection.immutable.MapKeyValueTupleIterator",{as:1,oi:1,b:1,R:1,n:1,o:1});
+function Oo(a){a.Kc<=a.Va&&I().P.f();a.Kf=1+a.Kf|0;for(var b=a.on.de(a.Kf);0===b.a.length;)a.Kf=1+a.Kf|0,b=a.on.de(a.Kf);a.qi=a.sg;var c=a.es/2|0,e=a.Kf-c|0;a.Jf=(1+c|0)-(0>e?-e|0:e)|0;c=a.Jf;switch(c){case 1:a.Id=b;break;case 2:a.Gf=b;break;case 3:a.Hf=b;break;case 4:a.If=b;break;case 5:a.rg=b;break;case 6:a.qj=b;break;default:throw new L(c);}a.sg=a.qi+Math.imul(b.a.length,1<a.Ve&&(a.sg=a.Ve);1c?a.Id=a.Gf.a[31&(b>>>5|0)]:(32768>c?a.Gf=a.Hf.a[31&(b>>>10|0)]:(1048576>c?a.Hf=a.If.a[31&(b>>>15|0)]:(33554432>c?a.If=a.rg.a[31&(b>>>20|0)]:(a.rg=a.qj.a[b>>>25|0],a.If=a.rg.a[0]),a.Hf=a.If.a[0]),a.Gf=a.Hf.a[0]),a.Id=a.Gf.a[0]);a.th=b}a.Kc=a.Kc-a.Va|0;b=a.Id.a.length;c=a.Kc;a.Ue=bthis.Va};d.f=function(){this.Va===this.Ue&&Po(this);var a=this.Id.a[this.Va];this.Va=1+this.Va|0;return a};
+d.Ac=function(a){if(0=this.sg;)Oo(this);b=a-this.qi|0;if(1c||(32768>c||(1048576>c||(33554432>c||(this.rg=this.qj.a[b>>>25|0]),this.If=this.rg.a[31&(b>>>20|0)]),this.Hf=this.If.a[31&(b>>>15|0)]),this.Gf=this.Hf.a[31&(b>>>10|0)]);this.Id=this.Gf.a[31&(b>>>5|0)];this.th=b}this.Ue=this.Id.a.length;this.Va=31&b;this.Kc=this.Va+(this.Ve-a|0)|0;this.Ue>this.Kc&&
+(this.Ue=this.Kc)}}return this};d.sb=function(a,b,c){var e=Hb(Kb(),a),f=this.Kc-this.Va|0;c=cthis.Lf.M())this.Lf=this.Lf.bg(a);else if(!this.Lf.ja(a)){this.Ch=!0;null===this.Mf&&(this.Mf=new xl);var b=this.Lf;this.Mf.oa(b.ug).oa(b.vg).oa(b.wg).oa(b.xg);uo(this.Mf,a)}return this};Ll.prototype.Ta=function(){return Jl(this)};
+Ll.prototype.$classData=u({ss:0},!1,"scala.collection.immutable.SetBuilderImpl",{ss:1,b:1,Be:1,sc:1,cc:1,bc:1});function Ro(a){this.qe=this.na=0;this.jc=null;this.Rb=0;this.Ne=this.kd=null;this.rj=0;bd(this,a);this.rj=0}Ro.prototype=new dd;Ro.prototype.constructor=Ro;d=Ro.prototype;d.g=function(){return this};d.d=function(){return!this.i()};d.De=function(a){return ak(this,a)};d.Ac=function(a){return ck(this,a,-1)};d.u=function(){return"\x3citerator\x3e"};d.sb=function(a,b,c){return Rc(this,a,b,c)};
+d.yc=function(a,b,c,e){return Vc(this,a,b,c,e)};d.Wb=function(){oe();return Kf(K(),this)};d.x=function(){return-1};d.v=function(){return this.rj};d.f=function(){if(!this.i())throw ah();this.rj=this.jc.dd(this.na);this.na=1+this.na|0;return this};d.$classData=u({ts:0},!1,"scala.collection.immutable.SetHashIterator",{ts:1,oi:1,b:1,R:1,n:1,o:1});function So(a){this.qe=this.na=0;this.jc=null;this.Rb=0;this.Ne=this.kd=null;bd(this,a)}So.prototype=new dd;So.prototype.constructor=So;d=So.prototype;d.g=function(){return this};
+d.d=function(){return!this.i()};d.De=function(a){return ak(this,a)};d.Ac=function(a){return ck(this,a,-1)};d.u=function(){return"\x3citerator\x3e"};d.sb=function(a,b,c){return Rc(this,a,b,c)};d.yc=function(a,b,c,e){return Vc(this,a,b,c,e)};d.Wb=function(){oe();return Kf(K(),this)};d.x=function(){return-1};d.f=function(){if(!this.i())throw ah();var a=this.jc.gf(this.na);this.na=1+this.na|0;return a};d.$classData=u({us:0},!1,"scala.collection.immutable.SetIterator",{us:1,oi:1,b:1,R:1,n:1,o:1});
+function To(){this.un=0;this.vn=null;Uo=this;try{Zc();var a=Ab(Db(),"scala.collection.immutable.Vector.defaultApplyPreferredMaxLength","250");var b=kd(ld(),a)}catch(c){throw c;}this.un=b;this.vn=new Qo(Vo(),0,0)}To.prototype=new q;To.prototype.constructor=To;
+function el(a){if(a instanceof Wo)return a;var b=a.x();if(0===b)return Vo();if(0=b){a:{if(a instanceof Ie){var c=a.Qa().vb();if(null!==c&&c===l(v)){a=a.pe;break a}}qn(a)?(b=new r(b),a.sb(b,0,2147483647),a=b):(b=new r(b),a.g().sb(b,0,2147483647),a=b)}return new Xo(a)}return Yo(Zo(new $o,a))}To.prototype.ba=function(){return new $o};To.prototype.Ya=function(a){return el(a)};To.prototype.pa=function(){return Vo()};
+To.prototype.$classData=u({xs:0},!1,"scala.collection.immutable.Vector$",{xs:1,b:1,hh:1,Fd:1,Hb:1,c:1});var Uo;function qe(){Uo||(Uo=new To);return Uo}function ap(a,b){var c=b.a.length;if(0h?-h|0:h)|0;1===g?ap(a,f):ce(E(),-2+g|0,f,new z(k=>{ap(a,k)}));e=1+e|0}return a}
+function bp(a){var b=32+a.ac|0,c=b^a.ac;a.ac=b;a.fa=0;if(1024>c)1===a.Aa&&(a.T=new (w(w(v)).A)(32),a.T.a[0]=a.ha,a.Aa=1+a.Aa|0),a.ha=new r(32),a.T.a[31&(b>>>5|0)]=a.ha;else if(32768>c)2===a.Aa&&(a.Z=new (w(w(w(v))).A)(32),a.Z.a[0]=a.T,a.Aa=1+a.Aa|0),a.ha=new r(32),a.T=new (w(w(v)).A)(32),a.T.a[31&(b>>>5|0)]=a.ha,a.Z.a[31&(b>>>10|0)]=a.T;else if(1048576>c)3===a.Aa&&(a.la=new (w(w(w(w(v)))).A)(32),a.la.a[0]=a.Z,a.Aa=1+a.Aa|0),a.ha=new r(32),a.T=new (w(w(v)).A)(32),a.Z=new (w(w(w(v))).A)(32),a.T.a[31&
+(b>>>5|0)]=a.ha,a.Z.a[31&(b>>>10|0)]=a.T,a.la.a[31&(b>>>15|0)]=a.Z;else if(33554432>c)4===a.Aa&&(a.za=new (w(w(w(w(w(v))))).A)(32),a.za.a[0]=a.la,a.Aa=1+a.Aa|0),a.ha=new r(32),a.T=new (w(w(v)).A)(32),a.Z=new (w(w(w(v))).A)(32),a.la=new (w(w(w(w(v)))).A)(32),a.T.a[31&(b>>>5|0)]=a.ha,a.Z.a[31&(b>>>10|0)]=a.T,a.la.a[31&(b>>>15|0)]=a.Z,a.za.a[31&(b>>>20|0)]=a.la;else if(1073741824>c)5===a.Aa&&(a.Db=new (w(w(w(w(w(w(v)))))).A)(64),a.Db.a[0]=a.za,a.Aa=1+a.Aa|0),a.ha=new r(32),a.T=new (w(w(v)).A)(32),a.Z=
+new (w(w(w(v))).A)(32),a.la=new (w(w(w(w(v)))).A)(32),a.za=new (w(w(w(w(w(v))))).A)(32),a.T.a[31&(b>>>5|0)]=a.ha,a.Z.a[31&(b>>>10|0)]=a.T,a.la.a[31&(b>>>15|0)]=a.Z,a.za.a[31&(b>>>20|0)]=a.la,a.Db.a[31&(b>>>25|0)]=a.za;else throw Ib("advance1("+b+", "+c+"): a1\x3d"+a.ha+", a2\x3d"+a.T+", a3\x3d"+a.Z+", a4\x3d"+a.la+", a5\x3d"+a.za+", a6\x3d"+a.Db+", depth\x3d"+a.Aa);}
+function $o(){this.ha=this.T=this.Z=this.la=this.za=this.Db=null;this.Aa=this.Mc=this.ac=this.fa=0;this.ha=new r(32);this.Mc=this.ac=this.fa=0;this.Aa=1}$o.prototype=new q;$o.prototype.constructor=$o;
+function Zo(a,b){if(b instanceof Wo)if(0===a.fa&&0===a.ac){var c=b.ce();switch(c){case 0:break;case 1:a.Aa=1;c=b.k.a.length;a.fa=31&c;a.ac=c-a.fa|0;b=b.k;a.ha=32===b.a.length?b:ac(x(),b,0,32);break;case 3:c=b.Lc;var e=b.p;a.ha=32===e.a.length?e:ac(x(),e,0,32);a.Aa=2;a.Mc=32-b.vd|0;e=b.q+a.Mc|0;a.fa=31&e;a.ac=e-a.fa|0;a.T=new (w(w(v)).A)(32);a.T.a[0]=b.k;c.G(0,a.T,1,c.a.length);a.T.a[1+c.a.length|0]=a.ha;break;case 5:c=b.Ub;e=b.Vb;var f=b.p;a.ha=32===f.a.length?f:ac(x(),f,0,32);a.Aa=3;a.Mc=1024-b.pc|
+0;f=b.q+a.Mc|0;a.fa=31&f;a.ac=f-a.fa|0;a.Z=new (w(w(w(v))).A)(32);a.Z.a[0]=be(E(),b.k,b.Yc);c.G(0,a.Z,1,c.a.length);a.T=Zb(x(),e,32);a.Z.a[1+c.a.length|0]=a.T;a.T.a[e.a.length]=a.ha;break;case 7:c=b.pb;e=b.rb;f=b.qb;var g=b.p;a.ha=32===g.a.length?g:ac(x(),g,0,32);a.Aa=4;a.Mc=32768-b.Nb|0;g=b.q+a.Mc|0;a.fa=31&g;a.ac=g-a.fa|0;a.la=new (w(w(w(w(v)))).A)(32);a.la.a[0]=be(E(),be(E(),b.k,b.Zb),b.$b);c.G(0,a.la,1,c.a.length);a.Z=Zb(x(),e,32);a.T=Zb(x(),f,32);a.la.a[1+c.a.length|0]=a.Z;a.Z.a[e.a.length]=
+a.T;a.T.a[f.a.length]=a.ha;break;case 9:c=b.Ga;e=b.Ja;f=b.Ia;g=b.Ha;var h=b.p;a.ha=32===h.a.length?h:ac(x(),h,0,32);a.Aa=5;a.Mc=1048576-b.eb|0;h=b.q+a.Mc|0;a.fa=31&h;a.ac=h-a.fa|0;a.za=new (w(w(w(w(w(v))))).A)(32);a.za.a[0]=be(E(),be(E(),be(E(),b.k,b.Ab),b.Bb),b.Cb);c.G(0,a.za,1,c.a.length);a.la=Zb(x(),e,32);a.Z=Zb(x(),f,32);a.T=Zb(x(),g,32);a.za.a[1+c.a.length|0]=a.la;a.la.a[e.a.length]=a.Z;a.Z.a[f.a.length]=a.T;a.T.a[g.a.length]=a.ha;break;case 11:c=b.qa;e=b.ua;f=b.ta;g=b.sa;h=b.ra;var k=b.p;a.ha=
+32===k.a.length?k:ac(x(),k,0,32);a.Aa=6;a.Mc=33554432-b.Wa|0;k=b.q+a.Mc|0;a.fa=31&k;a.ac=k-a.fa|0;a.Db=new (w(w(w(w(w(w(v)))))).A)(32);a.Db.a[0]=be(E(),be(E(),be(E(),be(E(),b.k,b.fb),b.gb),b.hb),b.ib);c.G(0,a.Db,1,c.a.length);a.za=Zb(x(),e,32);a.la=Zb(x(),f,32);a.Z=Zb(x(),g,32);a.T=Zb(x(),h,32);a.Db.a[1+c.a.length|0]=a.za;a.za.a[e.a.length]=a.la;a.la.a[f.a.length]=a.Z;a.Z.a[g.a.length]=a.T;a.T.a[h.a.length]=a.ha;break;default:throw new L(c);}0===a.fa&&0=b){if(32===c)return new Xo(a.ha);var e=a.ha;return new Xo(Zb(x(),e,c))}if(1024>=b){var f=31&(-1+b|0),g=(-1+b|0)>>>5|0,h=a.T,k=ac(x(),h,1,g),m=a.T.a[0],n=a.T.a[g],y=1+f|0,Q=n.a.length===y?n:Zb(x(),n,y);return new dp(m,32-a.Mc|0,k,Q,c)}if(32768>=b){var U=31&(-1+b|0),J=31&((-1+b|0)>>>5|0),S=(-1+b|0)>>>10|0,oa=a.Z,Y=ac(x(),oa,1,S),fa=a.Z.a[0],Ha=fa.a.length,Ia=ac(x(),fa,1,Ha),Ic=a.Z.a[0].a[0],rb=a.Z.a[S],Wa=Zb(x(),rb,J),lc=a.Z.a[S].a[J],
+jk=1+U|0,mc=lc.a.length===jk?lc:Zb(x(),lc,jk),Pb=Ic.a.length;return new ep(Ic,Pb,Ia,Pb+(Ia.a.length<<5)|0,Y,Wa,mc,c)}if(1048576>=b){var zm=31&(-1+b|0),kk=31&((-1+b|0)>>>5|0),kf=31&((-1+b|0)>>>10|0),lf=(-1+b|0)>>>15|0,lk=a.la,mk=ac(x(),lk,1,lf),Bd=a.la.a[0],Am=Bd.a.length,nk=ac(x(),Bd,1,Am),mf=a.la.a[0].a[0],Dd=mf.a.length,Jc=ac(x(),mf,1,Dd),pk=a.la.a[0].a[0].a[0],qk=a.la.a[lf],Fh=Zb(x(),qk,kf),Ed=a.la.a[lf].a[kf],Bm=Zb(x(),Ed,kk),nf=a.la.a[lf].a[kf].a[kk],Gh=1+zm|0,of=nf.a.length===Gh?nf:Zb(x(),nf,
+Gh),Kc=pk.a.length,rk=Kc+(Jc.a.length<<5)|0;return new fp(pk,Kc,Jc,rk,nk,rk+(nk.a.length<<10)|0,mk,Fh,Bm,of,c)}if(33554432>=b){var nc=31&(-1+b|0),Qb=31&((-1+b|0)>>>5|0),Hh=31&((-1+b|0)>>>10|0),pf=31&((-1+b|0)>>>15|0),oc=(-1+b|0)>>>20|0,qf=a.za,Cm=ac(x(),qf,1,oc),sk=a.za.a[0],Ih=sk.a.length,Fd=ac(x(),sk,1,Ih),Lc=a.za.a[0].a[0],tk=Lc.a.length,Jh=ac(x(),Lc,1,tk),Kh=a.za.a[0].a[0].a[0],V=Kh.a.length,rf=ac(x(),Kh,1,V),Mc=a.za.a[0].a[0].a[0].a[0],lb=a.za.a[oc],Dm=Zb(x(),lb,pf),uk=a.za.a[oc].a[pf],Lh=Zb(x(),
+uk,Hh),Gd=a.za.a[oc].a[pf].a[Hh],Em=Zb(x(),Gd,Qb),sf=a.za.a[oc].a[pf].a[Hh].a[Qb],Mh=1+nc|0,tf=sf.a.length===Mh?sf:Zb(x(),sf,Mh),Nc=Mc.a.length,vk=Nc+(rf.a.length<<5)|0,Rb=vk+(Jh.a.length<<10)|0;return new gp(Mc,Nc,rf,vk,Jh,Rb,Fd,Rb+(Fd.a.length<<15)|0,Cm,Dm,Lh,Em,tf,c)}var pc=31&(-1+b|0),wk=31&((-1+b|0)>>>5|0),Nh=31&((-1+b|0)>>>10|0),Sb=31&((-1+b|0)>>>15|0),Hd=31&((-1+b|0)>>>20|0),Oc=(-1+b|0)>>>25|0,yk=a.Db,zk=ac(x(),yk,1,Oc),Ak=a.Db.a[0],Bk=Ak.a.length,Oh=ac(x(),Ak,1,Bk),Id=a.Db.a[0].a[0],Fm=Id.a.length,
+Ck=ac(x(),Id,1,Fm),Dk=a.Db.a[0].a[0].a[0],Gm=Dk.a.length,Jd=ac(x(),Dk,1,Gm),Ek=a.Db.a[0].a[0].a[0].a[0],Im=Ek.a.length,Ph=ac(x(),Ek,1,Im),Qh=a.Db.a[0].a[0].a[0].a[0].a[0],Jm=a.Db.a[Oc],Fk=Zb(x(),Jm,Hd),Gk=a.Db.a[Oc].a[Hd],uf=Zb(x(),Gk,Sb),Km=a.Db.a[Oc].a[Hd].a[Sb],Lm=Zb(x(),Km,Nh),Mm=a.Db.a[Oc].a[Hd].a[Sb].a[Nh],Nm=Zb(x(),Mm,wk),Rh=a.Db.a[Oc].a[Hd].a[Sb].a[Nh].a[wk],Jk=1+pc|0,Sh=Rh.a.length===Jk?Rh:Zb(x(),Rh,Jk),Pc=Qh.a.length,Kd=Pc+(Ph.a.length<<5)|0,Kk=Kd+(Jd.a.length<<10)|0,Th=Kk+(Ck.a.length<<
+15)|0;return new hp(Qh,Pc,Ph,Kd,Jd,Kk,Ck,Th,Oh,Th+(Oh.a.length<<20)|0,zk,Fk,uf,Lm,Nm,Sh,c)}d=$o.prototype;d.u=function(){return"VectorBuilder(len1\x3d"+this.fa+", lenRest\x3d"+this.ac+", offset\x3d"+this.Mc+", depth\x3d"+this.Aa+")"};d.Ta=function(){return Yo(this)};d.lb=function(a){return Zo(this,a)};d.oa=function(a){32===this.fa&&bp(this);this.ha.a[this.fa]=a;this.fa=1+this.fa|0;return this};d.$classData=u({Fs:0},!1,"scala.collection.immutable.VectorBuilder",{Fs:1,b:1,Be:1,sc:1,cc:1,bc:1});
+function ip(){this.yn=null;jp=this;this.yn=new r(0)}ip.prototype=new q;ip.prototype.constructor=ip;ip.prototype.ba=function(){return new Uk};
+function kp(a,b,c){var e=a.a.length;e=new p(e,e>>31);var f=c.ga,g=e.ga;if(f===g?(-2147483648^c.$)<=(-2147483648^e.$):f>>31|0|e.ga<<1;f=(0===e?-2147483632<(-2147483648^f):0(-2147483648^e):
+g>f)?c:new p(e,f);c=e.$;e=e.ga;c=((0===e?-3>(-2147483648^c):0>e)?new p(c,e):new p(2147483645,0)).$}if(0>c)return a;c=new r(c);a.G(0,c,0,b);return c}ip.prototype.pa=function(){return lp()};ip.prototype.Ya=function(a){var b=a.x();if(0<=b){var c=kp(this.yn,0,new p(b,b>>31));a&&a.$classData&&a.$classData.ia.z?a.sb(c,0,2147483647):a.g().sb(c,0,2147483647);a=new mp;a.we=0;a.ve=c;a.Oa=b;b=a}else b=np(lp(),a);return b};
+ip.prototype.$classData=u({Ks:0},!1,"scala.collection.mutable.ArrayBuffer$",{Ks:1,b:1,hh:1,Fd:1,Hb:1,c:1});var jp;function Tk(){jp||(jp=new ip);return jp}function Uk(){this.Cg=null;Dn(this,(Tk(),lp()))}Uk.prototype=new Fn;Uk.prototype.constructor=Uk;Uk.prototype.$classData=u({Ls:0},!1,"scala.collection.mutable.ArrayBuffer$$anon$1",{Ls:1,vj:1,b:1,sc:1,cc:1,bc:1});function ai(){this.Gd=null;this.Gd=op()}ai.prototype=new kn;ai.prototype.constructor=ai;
+ai.prototype.$classData=u({$s:0},!1,"scala.collection.mutable.Buffer$",{$s:1,ij:1,b:1,Fd:1,Hb:1,c:1});var $h;function Pl(a,b){this.Cg=null;Dn(this,Rl(new Ql,a,b))}Pl.prototype=new Fn;Pl.prototype.constructor=Pl;Pl.prototype.$classData=u({it:0},!1,"scala.collection.mutable.HashMap$$anon$6",{it:1,vj:1,b:1,sc:1,cc:1,bc:1});function pp(a,b){if(null===b)throw null;a.Fh=b;a.Xe=0;a.ye=null;a.Gh=b.F.a.length}function qp(){this.Xe=0;this.ye=null;this.Gh=0;this.Fh=null}qp.prototype=new bn;
+qp.prototype.constructor=qp;function rp(){}rp.prototype=qp.prototype;qp.prototype.i=function(){if(null!==this.ye)return!0;for(;this.Xefl(new gl,a.$e)))};Fp.prototype.Ya=function(a){return this.ba().lb(a).Ta()};
+Fp.prototype.pa=function(){var a=new gl;fl(a,[]);return a};Fp.prototype.$classData=u({Ft:0},!1,"scala.scalajs.runtime.WrappedVarArgs$",{Ft:1,b:1,hh:1,Fd:1,Hb:1,c:1});var Ip;function Jp(){Ip||(Ip=new Fp);return Ip}function Qf(){this.Fc=this.Gc=this.Hc=null}Qf.prototype=new ag;Qf.prototype.constructor=Qf;function Kp(){}d=Kp.prototype=Qf.prototype;d.Za=function(){return new Xm(this)};d.v=function(){return Xe(this)};
+d.r=function(a){if(this===a)return!0;if(a instanceof Qf&&a.Fc===this.Fc){var b=this.Hc,c=a.Hc;return F(G(),b,c)?this.Gc===a.Gc:!1}return!1};d.Ca=function(){return 2};d.Ea=function(){return"Success"};d.Da=function(a){if(0===a)return this.Hc;if(1===a)return this.Gc;throw Oe(new Pe,""+a);};d.Gm=function(){return this.Gc};d.Fm=function(a){var b=this.Fc;a=a.e(this.Hc);return new Ef(a,this.Gc,this.he,b)};
+d.lm=function(a){var b=a.e(this.Hc).e(this.Gc);if(b instanceof Qf&&b.Fc===this.Fc){this.Fc.Xf();a=b.Hc;var c=b.Gc;b=jf(this.he,b.he);return new Ef(a,c,b,this.Fc)}if(b instanceof Bf&&b.ie===this.Fc)return jf(new P(b),this.he).Ra();throw new L(b);};d.fm=function(){return this};d.Ra=function(){return this.Hc};d.u=function(){var a=this.Gc;return"["+new wf(a.hc,a.gc)+"] parsed: "+this.Hc};
+function Lp(a){if(!a.Rm){var b=uh().Rg($g(Mp(),a.Yb));if(b instanceof P)b=b.Gb;else if(R()===b){b=lp();Np(b,0);var c=Ga(a.Yb),e=-1+c|0;if(!(0>=c))for(c=0;;){var f=c;10!==ya(a.Yb,f)&&(13!==ya(a.Yb,f)||f!==(-1+Ga(a.Yb)|0)&&10===ya(a.Yb,1+f|0))||Np(b,1+f|0);if(c===e)break;c=1+c|0}e=Ga(a.Yb);Np(b,e);ud();if(0<=b.Oa)e=new t(b.Oa),b.sb(e,0,2147483647),b=e;else{e=[];for(b=Op(b).g();b.i();)c=b.f(),e.push(null===c?0:c);b=new t(new Int32Array(e))}Mp()}else throw new L(b);a.Qm=b;a.Rm=!0}return a.Qm}
+function wf(a,b){this.Qm=null;this.Rm=!1;this.Yb=a;this.Ke=b}wf.prototype=new q;wf.prototype.constructor=wf;d=wf.prototype;d.Za=function(){return new Xm(this)};d.v=function(){var a=Ea("OffsetPosition");a=N().h(-889275714,a);var b=this.Yb;b=M(N(),b);a=N().h(a,b);b=this.Ke;a=N().h(a,b);return N().H(a,2)};d.r=function(a){if(this===a)return!0;if(a instanceof wf&&this.Ke===a.Ke){var b=this.Yb;a=a.Yb;return null===b?null===a:za(b,a)}return!1};d.Ca=function(){return 2};d.Ea=function(){return"OffsetPosition"};
+d.Da=function(a){if(0===a)return this.Yb;if(1===a)return this.Ke;throw Oe(new Pe,""+a);};function Pp(a){for(var b=0,c=-1+Lp(a).a.length|0;(1+b|0)a.Ld())),new T(()=>a.wi())),new T(()=>Tp(a))),new z(b=>{if(null!==b){a.I();var c=b.O;if(null!==c){a.I();var e=c.O;if(null!==e){a.I();b=e.ca;c=c.ca;e=rj();var f=uj(),g=vj(),h=wj(),k=xj(),m=R();return new Bg(b,c,e,f,g,h,k,m)}}}throw new L(b);})),a.Xj=!0);return a.Wj}
+function bq(a){a.sk||(a.rk=Vf(W(W(W(a.Ld(),new T(()=>{a.tk||(a.qk=om(a),a.tk=!0);return a.qk})),new T(()=>a.Ld())),new T(()=>Tp(a))),new z(b=>{if(null!==b){a.I();var c=b.O;if(null!==c){a.I();var e=c.O;if(null!==e)return a.I(),b=e.O,e=e.ca,c=c.ca,sg(),c=Fe(A(),new (w(tj).A)([c])),c=ug(0,c),new Ym(b,c,e)}}throw new L(b);})),a.sk=!0);return a.rk}
+function cq(a){a.Zj||(a.Yj=Vf(W(Lf(a,new T(()=>a.Ld()),new T(()=>{a.Jj||(a.Ij=fm(a,","),a.Jj=!0);return a.Ij})),new T(()=>Tp(a))),new z(b=>{if(null!==b)return a.I(),b.O;throw new L(b);})),a.Zj=!0);return a.Yj}
+function dq(a){a.wk||(a.vk=Vf(W(W(W(W(W(a.Ld(),new T(()=>{a.xk||(a.uk=pm(a),a.xk=!0);return a.uk})),new T(()=>{a.Lj||(a.Kj=fm(a,"["),a.Lj=!0);return a.Kj})),new T(()=>cq(a))),new T(()=>{a.Nj||(a.Mj=fm(a,"]"),a.Nj=!0);return a.Mj})),new T(()=>Tp(a))),new z(b=>{if(null!==b){a.I();var c=b.O;if(null!==c&&(a.I(),c=c.O,null!==c)){a.I();var e=c.O;if(null!==e&&(a.I(),e=e.O,null!==e))return a.I(),b=e.O,e=e.ca,c=c.ca,c=ug(zg(),c),new Ym(b,c,e)}}throw new L(b);})),a.wk=!0);return a.vk}
+function eq(a){a.ok||(a.nk=Hf(dq(a),new T(()=>bq(a))),a.ok=!0);return a.nk}function fq(a){a.Pj||(a.Oj=Vf(W(W(W(a.Ld(),new T(()=>{a.Rj||(a.Qj=qm(a),a.Rj=!0);return a.Qj})),new T(()=>a.Ld())),new T(()=>Tp(a))),new z(b=>{if(null!==b){a.I();var c=b.O;if(null!==c){a.I();var e=c.O;if(null!==e)return a.I(),new Wm(e.O,c.ca,e.ca)}}throw new L(b);})),a.Pj=!0);return a.Oj}
+function gq(){hq||(hq=new Sp);var a=hq;a.ak||(a.$j=Vf(W(W(W(W(Tp(a),new T(()=>Gf(a,new T(()=>Vp(a))))),new T(()=>Gf(a,new T(()=>eq(a))))),new T(()=>Gf(a,new T(()=>fq(a))))),new T(()=>Tp(a))),new z(b=>{if(null!==b){a.I();var c=b.O;if(null!==c){a.I();var e=c.O;if(null!==e){a.I();var f=e.O;if(null!==f){a.I();b=f.ca;e=e.ca;f=c.ca;c=Sj().pa();for(f=f.g();f.i();){var g=f.f(),h=g.Oh;if(ja(c)!==l(Tj)){var k=c.mb(h);if(k instanceof P)h=k.Gb;else{if(R()!==k)throw new L(k);oe();k=new Of;Uj(c,h,k);h=k}}else{k=
+M(N(),h);k^=k>>>16|0;var m=k&(-1+c.F.a.length|0),n=c.F.a[m];n=null===n?null:ee(n,h,k);if(null!==n)h=n.tc;else{n=c.F;oe();var y=new Of;(1+c.uc|0)>=c.Ze&&Vj(c,c.F.a.length<<1);Wj(c,h,y,k,n===c.F?m:k&(-1+c.F.a.length|0));h=y}}h.oa(g)}f=tl().ng;for(c=c.g();c.i();){g=c.f();if(null===g)throw new L(g);f=iq(f,g.Pa,g.va.Ta())}var Q=f;c=U=>{for(var J=Q.Bc(U.kb,new T(()=>{re();var Wa=Ce(A(),new (w(Jf).A)([]));return Kf(K(),Wa)})),S=Sj().pa(),oa=J.g();oa.i();){var Y=oa.f(),fa=Y.Ph,Ha=(Wa=>()=>Wa.mf())(J);if(ja(S)!==
+l(Tj)){var Ia=S.mb(fa);if(Ia instanceof P)fa=Ia.Gb;else{if(R()!==Ia)throw new L(Ia);Ha=Ha();Uj(S,fa,Ha);fa=Ha}}else{Ia=M(N(),fa);Ia^=Ia>>>16|0;var Ic=Ia&(-1+S.F.a.length|0),rb=S.F.a[Ic];rb=null===rb?null:ee(rb,fa,Ia);null!==rb?fa=rb.tc:(rb=S.F,Ha=Ha(),(1+S.uc|0)>=S.Ze&&Vj(S,S.F.a.length<<1),Wj(S,fa,Ha,Ia,rb===S.F?Ic:Ia&(-1+S.F.a.length|0)),fa=Ha)}fa.oa(Y)}J=tl().ng;for(S=S.g();S.i();){oa=S.f();if(null===oa)throw new L(oa);J=iq(J,oa.Pa,oa.va.Ta())}if(J.d())return U;Y=J.Bc(jj(),new T(()=>{re();var Wa=
+Ce(A(),new (w(Jf).A)([]));return Kf(K(),Wa)}));if(Y===K())S=K();else for(S=Y.m(),oa=S=new X(S.bf,K()),Y=Y.l();Y!==K();)fa=Y.m(),fa=new X(fa.bf,K()),oa=oa.N=fa,Y=Y.l();S=ug(zg(),S);Y=J.Bc(nj(),new T(()=>{re();var Wa=Ce(A(),new (w(Jf).A)([]));return Kf(K(),Wa)}));if(Y===K())J=K();else for(J=Y.m(),oa=J=new X(J.bf,K()),Y=Y.l();Y!==K();)fa=Y.m(),fa=new X(fa.bf,K()),oa=oa.N=fa,Y=Y.l();J=ug(zg(),J);return new Bg(U.kb,U.ec,J,S,U.xc,U.wc,U.vc,U.Nd)};if(b===K())b=K();else{f=b.m();g=f=new X(c(f),K());for(b=
+b.l();b!==K();)h=b.m(),h=new X(c(h),K()),g=g.N=h,b=b.l();b=f}Fg||(Fg=new xg);e=yg(b,e);return jg(e,0)}}}}throw new L(b);})),a.ak=!0);return a.$j}d.$classData=u({Wn:0},!1,"dsl.FlatFeatureModelDSLParser$",{Wn:1,b:1,Np:1,Mp:1,Yn:1,$n:1,Zn:1});var hq;
+function jq(){this.wl=!1;this.gl=null;this.bl=this.hl=!1;this.Ll=null;this.Ml=!1;this.Tl=null;this.Wl=!1;this.Ul=null;this.Vl=!1;this.Xl=null;this.Yl=!1;this.Bl=null;this.Cl=!1;this.Fl=null;this.Kl=!1;this.zl=null;this.Al=!1;this.Il=null;this.Jl=!1;this.Gl=null;this.Hl=!1;this.Rl=null;this.Sl=!1;this.Dl=null;this.El=!1;this.Pl=null;this.Ql=!1;this.Nl=null;this.Ol=!1;this.ul=null;this.vl=!1;this.cl=null;this.dl=!1;this.sl=null;this.tl=!1;this.xl=null;this.yl=!1;this.el=null;this.fl=!1;this.ml=null;
+this.rl=!1;this.nl=null;this.ql=!1;this.ol=null;this.pl=!1;this.il=null;this.jl=!1;this.kl=null;this.ll=!1}jq.prototype=new q;jq.prototype.constructor=jq;d=jq.prototype;d.Xf=function(){this.wl||(new Yl(this),this.wl=!0)};d.vi=function(){this.hl||(this.gl=new Xl(this),this.hl=!0);return this.gl};d.I=function(){this.bl||(new Wl(this),this.bl=!0)};d.Em=function(){this.Ml||(this.Ll=$l(this),this.Ml=!0);return this.Ll};d.Dg=function(){this.Wl||(this.Tl=am(this),this.Wl=!0);return this.Tl};
+d.Qn=function(){this.Vl||(this.Ul=bm(this),this.Vl=!0);return this.Ul};d.Mh=function(){this.Yl||(this.Xl=cm(this),this.Yl=!0);return this.Xl};function kq(a){a.Cl||(a.Bl=em(a),a.Cl=!0);return a.Bl}d.Ki=function(){this.Kl||(this.Fl=gm(this),this.Kl=!0);return this.Fl};d.hm=function(){this.Al||(this.zl=hm(this),this.Al=!0);return this.zl};d.Ji=function(){this.Jl||(this.Il=im(this),this.Jl=!0);return this.Il};d.Ii=function(){this.Hl||(this.Gl=jm(this),this.Hl=!0);return this.Gl};
+d.Qi=function(){this.Sl||(this.Rl=km(this),this.Sl=!0);return this.Rl};d.Ci=function(){this.El||(this.Dl=lm(this),this.El=!0);return this.Dl};d.Im=function(){this.Ql||(this.Pl=mm(this),this.Ql=!0);return this.Pl};d.Hm=function(){this.Ol||(this.Nl=nm(this),this.Ol=!0);return this.Nl};function lq(a){a.vl||(a.ul=rm(a),a.vl=!0);return a.ul}d.ui=function(){this.dl||(this.cl=fm(this,'"'),this.dl=!0);return this.cl};d.dm=function(){this.tl||(this.sl=sm(this),this.tl=!0);return this.sl};
+d.em=function(){this.yl||(this.xl=tm(this),this.yl=!0);return this.xl};d.Bj=function(){this.fl||(this.el=um(this),this.fl=!0);return this.el};d.$l=function(){this.rl||(this.ml=vm(this),this.rl=!0);return this.ml};d.Zl=function(){this.ql||(this.nl=wm(this),this.ql=!0);return this.nl};d.xi=function(){this.pl||(this.ol=xm(this),this.pl=!0);return this.ol};d.Ld=function(){this.jl||(this.il=ym(this),this.jl=!0);return this.il};d.wi=function(){this.ll||(this.kl=Rm(this),this.ll=!0);return this.kl};
+function mq(a,b){return Vf(W(Uf(a,2,new T(()=>b)),new T(()=>Gf(a,new T(()=>b)))),new z(c=>{if(null!==c)return a.I(),vg(c.ca,c.O);throw new L(c);}))}function nq(a,b){return Vf(W(W(W(Uf(a,2+(b<<2)|0,new T(()=>a.Dg())),new T(()=>a.Ki())),new T(()=>kq(a))),new T(()=>{var c=new T(()=>oq(a,1+b|0));return If(a,c,c)})),new z(c=>{if(null!==c){a.I();var e=c.O;if(null!==e&&(a.I(),e=e.O,null!==e))return a.I(),new H(e.ca,c.ca)}throw new L(c);}))}
+function pq(a,b){return Vf(W(W(W(Uf(a,2+(b<<2)|0,new T(()=>a.Dg())),new T(()=>Hf(a.Ji(),new T(()=>a.Ii())))),new T(()=>kq(a))),new T(()=>mq(a,oq(a,1+b|0)))),new z(c=>{if(null!==c){a.I();var e=c.O;if(null!==e&&(a.I(),e=e.O,null!==e))return a.I(),new H(e.ca,c.ca)}throw new L(c);}))}function qq(a,b){return Hf(nq(a,b),new T(()=>pq(a,b)))}
+function rq(a,b){return Vf(W(W(W(Uf(a,2+(b<<2)|0,new T(()=>a.Dg())),new T(()=>Hf(a.Qi(),new T(()=>a.Ci())))),new T(()=>a.Ld())),new T(()=>kq(a))),new z(c=>{if(null!==c){a.I();var e=c.O;if(null!==e){a.I();var f=e.O;if(null!==f)return a.I(),new H(f.ca,e.ca)}}throw new L(c);}))}
+function sq(a,b){return Vf(W(W(W(W(Uf(a,b<<2,new T(()=>a.Dg())),new T(()=>a.Ld())),new T(()=>a.wi())),new T(()=>Hf(Vf(lq(a),new z(c=>new P(c))),new T(()=>{var c=R();return Ff(a,c)})))),new T(()=>Hf(Vf(kq(a),new z(c=>new P(c))),new T(()=>{var c=R();return Ff(a,c)})))),new z(c=>{if(null!==c){a.I();var e=c.O;if(null!==e){a.I();var f=e.O;if(null!==f){a.I();var g=f.O;if(null!==g){a.I();c=g.ca;f=f.ca;e=e.ca;g=rj();var h=uj(),k=vj(),m=wj(),n=xj();return new Bg(c,f,g,h,k,m,n,e)}}}}throw new L(c);}))}
+function oq(a,b){return Vf(W(W(sq(a,b),new T(()=>Hf(Vf(qq(a,b),new z(c=>new P(c))),new T(()=>{var c=R();return Ff(a,c)})))),new T(()=>Gf(a,new T(()=>rq(a,b))))),new z(c=>{if(null!==c){a.I();var e=c.O;if(null!==e){a.I();var f=e.O,g=e.ca;e=c.ca;c=rh(uh(),g);c=Rj(c,new z(J=>J.Pa),new z(J=>J.va));c=new tq(c,new z(J=>J.Wb()));g=Sj().pa();for(var h=e;!h.d();){var k=h.m(),m=k.Pa;if(ja(g)!==l(Tj)){var n=g.mb(m);if(n instanceof P)m=n.Gb;else{if(R()!==n)throw new L(n);oe();n=new Of;Uj(g,m,n);m=n}}else{n=M(N(),
+m);n^=n>>>16|0;var y=n&(-1+g.F.a.length|0),Q=g.F.a[y];Q=null===Q?null:ee(Q,m,n);if(null!==Q)m=Q.tc;else{Q=g.F;oe();var U=new Of;(1+g.uc|0)>=g.Ze&&Vj(g,g.F.a.length<<1);Wj(g,m,U,n,Q===g.F?y:n&(-1+g.F.a.length|0));m=U}}m.oa(k.va);h=h.l()}e=new Xj(e);g.aa(e);e=e.fh;g=Ag();g=c.mb(g);if(g instanceof P)g=g.Gb;else{if(R()!==g)throw new L(g);re();g=Ce(A(),new (w(Jf).A)([]));g=Kf(K(),g)}g=(new rg(g)).e(0);g.d()?g=R():(g=g.Ra(),g=new P(ug(zg(),g)));g.d()?(sg(),g=Fe(A(),new (w(tg).A)([])),g=ug(0,g)):g=g.Ra();
+h=Dg();h=c.mb(h);if(h instanceof P)h=h.Gb;else{if(R()!==h)throw new L(h);re();h=Ce(A(),new (w(Jf).A)([]));h=Kf(K(),h)}n=h;h=J=>ug(zg(),J);if(n===K())h=K();else{k=n.m();m=k=new X(h(k),K());for(n=n.l();n!==K();)y=n.m(),y=new X(h(y),K()),m=m.N=y,n=n.l();h=k}k=Eg();c=c.mb(k);if(c instanceof P)c=c.Gb;else{if(R()!==c)throw new L(c);re();c=Ce(A(),new (w(Jf).A)([]));c=Kf(K(),c)}n=c;c=J=>ug(zg(),J);if(n===K())c=K();else{k=n.m();m=k=new X(c(k),K());for(n=n.l();n!==K();)y=n.m(),y=new X(c(y),K()),m=m.N=y,n=n.l();
+c=k}k=e.Bc(jj(),new T(()=>{re();var J=Ce(A(),new (w(Jf).A)([]));return Kf(K(),J)}));k=ug(zg(),k);e=e.Bc(nj(),new T(()=>{re();var J=Ce(A(),new (w(Jf).A)([]));return Kf(K(),J)}));e=ug(zg(),e);return new Bg(f.kb,f.ec,e,k,g,h,c,f.Nd)}}throw new L(c);}))}d.$classData=u({Xn:0},!1,"dsl.NestedFeatureModelDSLParser$",{Xn:1,b:1,Np:1,Mp:1,Yn:1,$n:1,Zn:1});var uq;function oo(){var a=new wd;xd(a,null);return a}class wd extends Pe{}
+wd.prototype.$classData=u({vo:0},!1,"java.lang.ArrayIndexOutOfBoundsException",{vo:1,Ni:1,Pc:1,Cc:1,Dc:1,b:1,c:1});function Fa(a){return wb(xb(),a)}var sa=u({Bo:0},!1,"java.lang.Double",{Bo:1,Zg:1,b:1,c:1,Fe:1,Ge:1,Xh:1},a=>"number"===typeof a),ra=u({Co:0},!1,"java.lang.Float",{Co:1,Zg:1,b:1,c:1,Fe:1,Ge:1,Xh:1},a=>qa(a)),pa=u({Fo:0},!1,"java.lang.Integer",{Fo:1,Zg:1,b:1,c:1,Fe:1,Ge:1,Xh:1},a=>la(a)),va=u({Io:0},!1,"java.lang.Long",{Io:1,Zg:1,b:1,c:1,Fe:1,Ge:1,Xh:1},a=>a instanceof p);
+class Pg extends Nn{constructor(a){super();xd(this,a)}}Pg.prototype.$classData=u({Lo:0},!1,"java.lang.NumberFormatException",{Lo:1,vm:1,Pc:1,Cc:1,Dc:1,b:1,c:1});function Ea(a){for(var b=0,c=1,e=-1+a.length|0;0<=e;)b=b+Math.imul(a.charCodeAt(e),c)|0,c=Math.imul(31,c),e=-1+e|0;return b}var ka=u({ro:0},!1,"java.lang.String",{ro:1,b:1,c:1,Fe:1,pm:1,Ge:1,Xh:1},a=>"string"===typeof a);class Ug extends Pe{}
+Ug.prototype.$classData=u({Po:0},!1,"java.lang.StringIndexOutOfBoundsException",{Po:1,Ni:1,Pc:1,Cc:1,Dc:1,b:1,c:1});function vq(){}vq.prototype=new $n;vq.prototype.constructor=vq;d=vq.prototype;d.Ea=function(){return"None"};d.Ca=function(){return 0};d.Da=function(a){return Ne(N(),a)};d.Za=function(){return new bo(this)};d.v=function(){return 2433880};d.u=function(){return"None"};d.Ra=function(){throw $k(new al,"None.get");};d.$classData=u({kp:0},!1,"scala.None$",{kp:1,lp:1,b:1,n:1,nb:1,s:1,c:1});
+var wq;function R(){wq||(wq=new vq);return wq}function P(a){this.Gb=a}P.prototype=new $n;P.prototype.constructor=P;d=P.prototype;d.Ra=function(){return this.Gb};d.Ea=function(){return"Some"};d.Ca=function(){return 1};d.Da=function(a){return 0===a?this.Gb:Ne(N(),a)};d.Za=function(){return new bo(this)};d.v=function(){return Xe(this)};d.u=function(){return Be(this)};d.r=function(a){return this===a?!0:a instanceof P?F(G(),this.Gb,a.Gb):!1};
+d.$classData=u({sp:0},!1,"scala.Some",{sp:1,lp:1,b:1,n:1,nb:1,s:1,c:1});function xq(){}xq.prototype=new q;xq.prototype.constructor=xq;function yq(){}d=yq.prototype=xq.prototype;d.wa=function(){return ke()};d.zc=function(){return this.Fb()};d.Fb=function(){return"Iterable"};d.u=function(){return eo(this)};d.mf=function(){return this.wa().ba()};d.Cd=function(a){return this.wa().Ya(new zq(this,a))};d.Ba=function(a){return this.wa().Ya(new Aq(this,a))};d.aa=function(a){Hc(this,a)};
+d.Qd=function(a){for(var b=!0,c=this.g();b&&c.i();)b=!!a.e(c.f());return b};d.Uh=function(a){return Qc(this,a)};d.d=function(){return!this.g().i()};d.sb=function(a,b,c){return Rc(this,a,b,c)};d.yc=function(a,b,c,e){return Vc(this,a,b,c,e)};d.Wb=function(){oe();return Kf(K(),this)};d.x=function(){return-1};function Bq(a,b){a.hd=b;a.K=0;b=a.hd;a.Ic=Hb(Kb(),b);return a}function Cq(){this.hd=null;this.Ic=this.K=0}Cq.prototype=new bn;Cq.prototype.constructor=Cq;function Dq(){}d=Dq.prototype=Cq.prototype;
+d.x=function(){return this.Ic-this.K|0};d.i=function(){return this.Ka)a=this.Ic;else{var b=this.Ic;a=ba?0:a);return this};
+d.Kh=function(a,b){a=0>a?0:a>this.ic?this.ic:a;b=(0>b?0:b>this.ic?this.ic:b)-a|0;this.ic=0>b?0:b;this.le=this.le+a|0;return this};d.$classData=u({Tm:0},!1,"scala.collection.IndexedSeqView$IndexedSeqViewIterator",{Tm:1,da:1,b:1,R:1,n:1,o:1,c:1});function hk(){this.Hh=null;this.Hh=I().P}hk.prototype=new tp;hk.prototype.constructor=hk;function Hq(a,b){a.Hh=a.Hh.De(new T(()=>{I();return new ao(b)}));return a}hk.prototype.oa=function(a){return Hq(this,a)};
+hk.prototype.$classData=u({Hq:0},!1,"scala.collection.Iterator$$anon$21",{Hq:1,Su:1,b:1,Be:1,sc:1,cc:1,bc:1});function Iq(a,b,c){a=a.mb(b);if(a instanceof P)return a.Gb;if(R()===a)return C(c);throw new L(a);}function Jq(a,b,c){return a.Bc(b,new T(()=>c.e(b)))}function Kq(a){throw $k(new al,"key not found: "+a);}function Lq(a,b,c,e,f){a=a.g();a=new go(a,new z(g=>{if(null!==g)return g.Pa+" -\x3e "+g.va;throw new L(g);}));return Vc(a,b,c,e,f)}
+function He(a){a.mi||(a.ni=new Ie(new r(0)),a.mi=!0);return a.ni}function Mq(){this.dn=this.ni=null;this.mi=!1;Nq=this;this.dn=new co(this)}Mq.prototype=new q;Mq.prototype.constructor=Mq;Mq.prototype.Yh=function(a){Tk();var b=new Uk;return new Vk(b,new z(c=>{Ee();if(0<=c.x()){var e=a.fc(c.x());c.sb(e,0,2147483647)}else{var f=a.vb(),g=f===l(gb);e=[];for(c=c.g();c.i();){var h=c.f();e.push(g?Ba(h):null===h?f.tb.Nh:h)}e=w((f===l(eb)?l(ua):f===l(xe)||f===l(Jf)?l(v):f).tb).Lh(e)}return De(0,e)}))};
+function De(a,b){if(null===b)return null;if(b instanceof r)return new Ie(b);if(b instanceof t)return new Oq(b);if(b instanceof Za)return new Pq(b);if(b instanceof Xa)return new Qq(b);if(b instanceof Ya)return new Rq(b);if(b instanceof Sa)return new Sq(b);if(b instanceof Ta)return new Tq(b);if(b instanceof Ua)return new Uq(b);if(b instanceof Ra)return new Vq(b);if(Eb(b))return new Wq(b);throw new L(b);}Mq.prototype.mm=function(a,b){return a instanceof Xq?a:De(0,fh(jh(),a,b))};
+Mq.prototype.km=function(){return this.mi?this.ni:He(this)};Mq.prototype.$classData=u({er:0},!1,"scala.collection.immutable.ArraySeq$",{er:1,b:1,Qq:1,tq:1,sq:1,vq:1,c:1});var Nq;function Ee(){Nq||(Nq=new Mq);return Nq}function qn(a){return!!(a&&a.$classData&&a.$classData.ia.W)}function Yq(a){this.Pe=0;this.pg=null;if(null===a)throw null;this.pg=a;this.Pe=0}Yq.prototype=new Go;Yq.prototype.constructor=Yq;
+Yq.prototype.$classData=u({Ur:0},!1,"scala.collection.immutable.Map$Map2$$anon$1",{Ur:1,Ku:1,da:1,b:1,R:1,n:1,o:1});function Zq(a){this.Re=0;this.Qe=null;if(null===a)throw null;this.Qe=a;this.Re=0}Zq.prototype=new Io;Zq.prototype.constructor=Zq;Zq.prototype.$classData=u({Wr:0},!1,"scala.collection.immutable.Map$Map3$$anon$4",{Wr:1,Lu:1,da:1,b:1,R:1,n:1,o:1});function $q(a){this.Se=0;this.Xd=null;if(null===a)throw null;this.Xd=a;this.Se=0}$q.prototype=new Ko;$q.prototype.constructor=$q;
+$q.prototype.$classData=u({Yr:0},!1,"scala.collection.immutable.Map$Map4$$anon$7",{Yr:1,Mu:1,da:1,b:1,R:1,n:1,o:1});function ar(){this.ud=this.Jd=0}ar.prototype=new bn;ar.prototype.constructor=ar;function br(){}br.prototype=ar.prototype;ar.prototype.x=function(){return this.ud};ar.prototype.i=function(){return 0a?0:a);return this};function cr(){}cr.prototype=new q;cr.prototype.constructor=cr;function dr(){}dr.prototype=cr.prototype;function er(){this.Bn=this.Cn=null;fr=this;this.Cn=new co(this);this.Bn=new gr(new r(0))}er.prototype=new q;er.prototype.constructor=er;er.prototype.Yh=function(a){a=new hr(a.vb());return new Vk(a,new z(b=>ir(jr(),b)))};
+function ir(a,b){if(null===b)return null;if(b instanceof r)return new gr(b);if(b instanceof t)return new kr(b);if(b instanceof Za)return new lr(b);if(b instanceof Xa)return new mr(b);if(b instanceof Ya)return new nr(b);if(b instanceof Sa)return new or(b);if(b instanceof Ta)return new pr(b);if(b instanceof Ua)return new qr(b);if(b instanceof Ra)return new rr(b);if(Eb(b))return new sr(b);throw new L(b);}er.prototype.mm=function(a,b){return ir(0,fh(jh(),a,b))};er.prototype.km=function(){return this.Bn};
+er.prototype.$classData=u({Ps:0},!1,"scala.collection.mutable.ArraySeq$",{Ps:1,b:1,Qq:1,tq:1,sq:1,vq:1,c:1});var fr;function jr(){fr||(fr=new er);return fr}function tr(a){this.Xe=0;this.ye=null;this.Gh=0;this.Fh=null;pp(this,a)}tr.prototype=new rp;tr.prototype.constructor=tr;tr.prototype.Di=function(a){return new H(a.Ye,a.tc)};tr.prototype.$classData=u({ft:0},!1,"scala.collection.mutable.HashMap$$anon$1",{ft:1,Gn:1,da:1,b:1,R:1,n:1,o:1});
+function ur(a){this.Xe=0;this.ye=null;this.Gh=0;this.Fh=null;pp(this,a)}ur.prototype=new rp;ur.prototype.constructor=ur;ur.prototype.Di=function(a){return a};ur.prototype.$classData=u({gt:0},!1,"scala.collection.mutable.HashMap$$anon$4",{gt:1,Gn:1,da:1,b:1,R:1,n:1,o:1});function vr(a){this.Xe=0;this.ye=null;this.Gh=0;this.Fh=null;this.wj=0;if(null===a)throw null;pp(this,a);this.wj=0}vr.prototype=new rp;vr.prototype.constructor=vr;vr.prototype.v=function(){return this.wj};
+vr.prototype.Di=function(a){var b=O(),c=a.ze;a=a.tc;this.wj=Ei(b,c^(c>>>16|0),M(N(),a));return this};vr.prototype.$classData=u({ht:0},!1,"scala.collection.mutable.HashMap$$anon$5",{ht:1,Gn:1,da:1,b:1,R:1,n:1,o:1});function pi(a){this.bi=a}pi.prototype=new q;pi.prototype.constructor=pi;d=pi.prototype;d.r=function(a){if(a&&a.$classData&&a.$classData.ia.Ec){var b=this.vb();a=a.vb();b=b===a}else b=!1;return b};d.v=function(){var a=this.bi;return M(N(),a)};d.u=function(){return Bp(this,this.bi)};
+d.vb=function(){return this.bi};d.fc=function(a){var b=this.bi;return Gb(Kb(),b,a)};d.$classData=u({vp:0},!1,"scala.reflect.ClassTag$GenericClassTag",{vp:1,b:1,Ec:1,Qc:1,Rc:1,c:1,s:1});function Ef(a,b,c,e){this.he=this.Fc=this.Gc=this.Hc=null;if(null===e)throw new Ae;this.Hc=a;this.Gc=b;if(null===e)throw new Ae;this.Fc=e;if(null===e)throw new Ae;this.he=c}Ef.prototype=new Kp;Ef.prototype.constructor=Ef;
+Ef.prototype.$classData=u({Qp:0},!1,"scala.util.parsing.combinator.Parsers$$anon$2",{Qp:1,zu:1,Vp:1,b:1,s:1,nb:1,c:1});function Bf(a,b,c){this.ie=this.dh=null;this.di=b;this.je=c;if(null===a)throw new Ae;this.ie=a;if(null===a)throw new Ae;this.dh=a;if(null===a)throw new Ae;}Bf.prototype=new Ii;Bf.prototype.constructor=Bf;d=Bf.prototype;d.Za=function(){return new Xm(this)};d.v=function(){return Xe(this)};
+d.r=function(a){return this===a?!0:a instanceof Bf&&a.ie===this.ie?this.di===a.di?this.je===a.je:!1:!1};d.Ca=function(){return 2};d.Ea=function(){return"Failure"};d.Da=function(a){if(0===a)return this.di;if(1===a)return this.je;throw Oe(new Pe,""+a);};d.Gm=function(){return this.je};
+d.u=function(){var a=this.je,b=this.je;a="["+new wf(a.hc,a.gc)+"] failure: "+this.di+"\n\n";var c=new wf(b.hc,b.gc);b=Rp(c);Zc();Zc();var e=Rp(c);c=-1+Qp(c)|0;Zc();var f=e.length;c=c=c?"":e.substring(0,c);c=e.length;f=new Sa(c);for(var g=0;gF(G(),b.Bc(c.Pa,hn().Zm),c.va)))}catch(c){throw c;}else return!1;else return!1}function Ps(){}Ps.prototype=new yq;Ps.prototype.constructor=Ps;function Qs(){}d=Qs.prototype=Ps.prototype;d.Sg=function(){return!0};
+d.r=function(a){return Ls(this,a)};d.v=function(){return Fi(this)};d.u=function(){return eo(this)};d.Mi=function(a){return 0<=a&&0new H(b.Pa,this.$m.e(b.va))))};d.mb=function(a){a=this.ki.mb(a);var b=this.$m;return a.d()?R():new P(b.e(a.Ra()))};d.x=function(){return this.ki.x()};d.d=function(){return this.ki.d()};d.$classData=u({Pq:0},!1,"scala.collection.MapView$MapValues",{Pq:1,Du:1,Le:1,D:1,b:1,z:1,n:1,C:1,o:1,B:1,ne:1,c:1,Gu:1,tf:1,J:1,E:1});function $s(){}$s.prototype=new Ns;$s.prototype.constructor=$s;function at(){}
+at.prototype=$s.prototype;$s.prototype.wa=function(){return zg()};function bt(a){this.uf=null;Rk(this,a)}bt.prototype=new Vs;bt.prototype.constructor=bt;d=bt.prototype;d.g=function(){return Eq(new Fq,this)};d.Fb=function(){return"IndexedSeqView"};d.ub=function(a){var b=this.t();return b===a?0:b>31;var k=g>>>31|0|g>>31<<1;for(g=(h===k?(-2147483648^c)>(-2147483648^g<<1):h>k)?g:c;fa)a=1;else a:for(var b=this,c=0;;){if(c===a){a=b.d()?0:1;break a}if(b.d()){a=-1;break a}c=1+c|0;b=b.l()}return a};d.Mi=function(a){return jo(this,a)};d.y=function(a){return jg(this,a)};d.Uh=function(a){a:{for(var b=this;!b.d();){if(a.e(b.m())){a=!0;break a}b=b.l()}a=!1}return a};d.of=function(a){return ko(this,a)};d.Xg=function(a,b){return lo(this,a,b)};
+function Z(a){if(!a.nj&&!a.nj){if(a.oj)throw Ji("self-referential LazyList or a derivation thereof has no more elements");a.oj=!0;try{var b=C(a.hn)}finally{a.oj=!1}a.nd=!0;a.hn=null;a.jn=b;a.nj=!0}return a.jn}d.d=function(){return Z(this)===El()};d.x=function(){return this.nd&&this.d()?0:-1};d.m=function(){return Z(this).m()};function un(a){var b=a,c=a;for(b.d()||(b=Z(b).jb());c!==b&&!b.d();){b=Z(b).jb();if(b.d())break;b=Z(b).jb();if(b===c)break;c=Z(c).jb()}return a}
+d.g=function(){return this.nd&&this.d()?I().P:new Co(this)};d.aa=function(a){for(var b=this;!b.d();)a.e(Z(b).m()),b=Z(b).jb()};d.zc=function(){return"LazyList"};d.yc=function(a,b,c,e){un(this);It(this,a.dc,b,c,e);return a};d.u=function(){var a=new Vm;Um(a);a.w="LazyList";return It(this,a,"(",", ",")").w};d.e=function(a){return jg(this,a|0)};d.cg=function(a){return jo(this,a|0)};d.Bi=function(a){return 0>=a?this:this.nd&&this.d()?pe().rh:yn(pe(),this,a)};
+d.Ba=function(a){return this.nd&&this.d()?pe().rh:wn(pe(),this,a)};d.l=function(){return Z(this).jb()};d.wa=function(){return pe()};d.$classData=u({Er:0},!1,"scala.collection.immutable.LazyList",{Er:1,ob:1,U:1,D:1,b:1,z:1,n:1,C:1,o:1,B:1,S:1,J:1,E:1,Q:1,s:1,Fa:1,W:1,ab:1,kn:1,hj:1,Xm:1,ln:1,c:1});function ph(a){this.rc=a}ph.prototype=new dt;ph.prototype.constructor=ph;d=ph.prototype;d.Sg=function(a){return ht(this,a)};d.Fb=function(){return"IndexedSeq"};d.g=function(){return Eq(new Fq,new vt(this.rc))};
+d.ub=function(a){var b=this.rc.length;return b===a?0:be.length||0>c||0>c)throw a=new Ug,xd(a,"Index out of Bound"),a;b=b-0|0;for(var f=0;fg?-g|0:g)|0)|0,this.de(c),a);c=1+c|0}};d.wa=function(){return qe()};function Qt(){}Qt.prototype=new Bt;Qt.prototype.constructor=Qt;function Rt(){}d=Rt.prototype=Qt.prototype;d.Ba=function(a){return on(this,a)};d.Fb=function(){return"IndexedSeq"};d.ub=function(a){var b=this.t();return b===a?0:ba)a=1;else a:for(var b=this,c=0;;){if(c===a){a=b.d()?0:1;break a}if(b.d()){a=-1;break a}c=1+c|0;b=b.l()}return a};
+d.Uh=function(a){for(var b=this;!b.d();){if(a.e(b.m()))return!0;b=b.l()}return!1};d.ja=function(a){for(var b=this;!b.d();){if(F(G(),b.m(),a))return!0;b=b.l()}return!1};d.zc=function(){return"List"};d.Wb=function(){return this};d.r=function(a){var b;if(a instanceof Gi)a:for(b=this;;){if(b===a){b=!0;break a}var c=b.d(),e=a.d();if(c||e||!F(G(),b.m(),a.m())){b=c&&e;break a}b=b.l();a=a.l()}else b=Ls(this,a);return b};d.e=function(a){return jg(this,a|0)};d.cg=function(a){return jo(this,a|0)};
+d.Bi=function(a){a:for(var b=this;;){if(0>=a||b.d())break a;a=-1+a|0;b=b.l()}return b};d.Ba=function(a){for(var b=this,c=null,e=null;b!==K();){for(var f=a.e(b.m()).g();f.i();){var g=new X(f.f(),K());null===e?c=g:e.N=g;e=g}b=b.l()}return null===c?K():c};d.wa=function(){return oe()};function Tt(){this.k=null}Tt.prototype=new Ot;Tt.prototype.constructor=Tt;function Ut(){}Ut.prototype=Tt.prototype;function rr(a){this.Nf=a}rr.prototype=new Rt;rr.prototype.constructor=rr;d=rr.prototype;d.t=function(){return this.Nf.a.length};
+d.v=function(){var a=O();return $e(a,this.Nf,a.xa)};d.r=function(a){if(a instanceof rr){var b=this.Nf;a=a.Nf;return Wb(x(),b,a)}return Qt.prototype.r.call(this,a)};d.g=function(){return new Gr(this.Nf)};d.Mg=function(a){return this.Nf.a[a]};d.e=function(a){return this.Mg(a|0)};d.y=function(a){return this.Mg(a)};d.Qa=function(){return ji()};d.cd=function(){return this.Nf};
+d.$classData=u({Qs:0},!1,"scala.collection.mutable.ArraySeq$ofBoolean",{Qs:1,xe:1,Zc:1,U:1,D:1,b:1,z:1,n:1,C:1,o:1,B:1,S:1,J:1,E:1,Q:1,s:1,ad:1,Oc:1,bd:1,Nc:1,Pb:1,wd:1,X:1,V:1,xd:1,Y:1,L:1,c:1});function pr(a){this.Of=a}pr.prototype=new Rt;pr.prototype.constructor=pr;d=pr.prototype;d.t=function(){return this.Of.a.length};d.Og=function(a){return this.Of.a[a]};d.v=function(){var a=O();return af(a,this.Of,a.xa)};
+d.r=function(a){if(a instanceof pr){var b=this.Of;a=a.Of;return Vb(x(),b,a)}return Qt.prototype.r.call(this,a)};d.g=function(){return new yr(this.Of)};d.e=function(a){return this.Og(a|0)};d.y=function(a){return this.Og(a)};d.Qa=function(){return di()};d.cd=function(){return this.Of};d.$classData=u({Rs:0},!1,"scala.collection.mutable.ArraySeq$ofByte",{Rs:1,xe:1,Zc:1,U:1,D:1,b:1,z:1,n:1,C:1,o:1,B:1,S:1,J:1,E:1,Q:1,s:1,ad:1,Oc:1,bd:1,Nc:1,Pb:1,wd:1,X:1,V:1,xd:1,Y:1,L:1,c:1});
+function or(a){this.Kd=a}or.prototype=new Rt;or.prototype.constructor=or;d=or.prototype;d.t=function(){return this.Kd.a.length};d.Pg=function(a){return this.Kd.a[a]};d.v=function(){var a=O();return bf(a,this.Kd,a.xa)};d.r=function(a){if(a instanceof or){var b=this.Kd;a=a.Kd;return Ub(x(),b,a)}return Qt.prototype.r.call(this,a)};d.g=function(){return new zr(this.Kd)};
+d.yc=function(a,b,c,e){var f=a.dc;0!==b.length&&(f.w=""+f.w+b);b=this.Kd.a.length;if(0!==b)if(""===c)c=this.Kd,c=Tg(Wg(),c,c.a.length),f.w=""+f.w+c;else{f.t();var g=String.fromCharCode(this.Kd.a[0]);f.w=""+f.w+g;for(g=1;g=a.Ze&&Vj(a,a.F.a.length<<1);return Wj(a,b,c,e,e&(-1+a.F.a.length|0))}
+function Uj(a,b,c){(1+a.uc|0)>=a.Ze&&Vj(a,a.F.a.length<<1);var e=M(N(),b);e^=e>>>16|0;Wj(a,b,c,e,e&(-1+a.F.a.length|0))}function Wj(a,b,c,e,f){var g=a.F.a[f];if(null===g)a.F.a[f]=new de(b,e,c,null);else{for(var h=null,k=g;null!==k&&k.ze<=e;){if(k.ze===e&&F(G(),b,k.Ye))return k.tc=c,null;h=k;k=k.Xa}null===h?a.F.a[f]=new de(b,e,c,g):h.Xa=new de(b,e,c,h.Xa)}a.uc=1+a.uc|0;return null}
+function Vj(a,b){if(0>b)throw Ji("new HashMap table size "+b+" exceeds maximum");var c=a.F.a.length;a.Ze=Ka(b*a.si);if(0===a.uc)a.F=new (w(fe).A)(b);else{var e=a.F;a.F=Zb(x(),e,b);e=new de(null,0,null,null);for(var f=new de(null,0,null,null);c>(Math.clz32(a)|0)&a)<<1;return 1073741824>a?a:1073741824}function Rl(a,b,c){a.si=c;a.F=new (w(fe).A)(Wt(b));a.Ze=Ka(a.F.a.length*a.si);a.uc=0;return a}function Ql(){this.si=0;this.F=null;this.uc=this.Ze=0}Ql.prototype=new Mt;Ql.prototype.constructor=Ql;d=Ql.prototype;d.Ba=function(a){return on(this,a)};d.M=function(){return this.uc};
+d.ja=function(a){var b=M(N(),a);b^=b>>>16|0;var c=this.F.a[b&(-1+this.F.a.length|0)];return null!==(null===c?null:ee(c,a,b))};function Xt(a,b){b=Wt(Ka((1+b|0)/a.si));b>a.F.a.length&&Vj(a,b)}
+function Yt(a,b){Xt(a,b.x());if(b instanceof rl)return b.Tb.Ei(new Vl((e,f,g)=>{g|=0;Vt(a,e,f,g^(g>>>16|0))})),a;if(b instanceof Ql){for(b=to(b);b.i();){var c=b.f();Vt(a,c.Ye,c.tc,c.ze)}return a}return b&&b.$classData&&b.$classData.ia.pt?(b.Ad(new Ul((e,f)=>{var g=M(N(),e);return Vt(a,e,f,g^(g>>>16|0))})),a):Eh(a,b)}d.g=function(){return 0===this.uc?I().P:new tr(this)};function to(a){return 0===a.uc?I().P:new ur(a)}
+d.mb=function(a){var b=M(N(),a);b^=b>>>16|0;var c=this.F.a[b&(-1+this.F.a.length|0)];a=null===c?null:ee(c,a,b);return null===a?R():new P(a.tc)};d.e=function(a){var b=M(N(),a);b^=b>>>16|0;var c=this.F.a[b&(-1+this.F.a.length|0)];b=null===c?null:ee(c,a,b);return null===b?Kq(a):b.tc};d.Bc=function(a,b){if(ja(this)!==l(Tj))return Iq(this,a,b);var c=M(N(),a);c^=c>>>16|0;var e=this.F.a[c&(-1+this.F.a.length|0)];a=null===e?null:ee(e,a,c);return null===a?C(b):a.tc};d.x=function(){return this.uc};
+d.d=function(){return 0===this.uc};d.aa=function(a){for(var b=this.F.a.length,c=0;cthis.k.a.length)return new Xo(ae(E(),this.k,a));var b=this.k,c=E().qc,e=new r(1);e.a[0]=a;return new dp(b,32,c,e,33)};d.ce=function(){return 1};d.de=function(){return this.k};d.e=function(a){a|=0;if(0<=a&&a>>5|0,a=this.vd){var c=a-this.vd|0;a=c>>>5|0;c&=31;if(athis.p.a.length)return a=ae(E(),this.p,a),new dp(this.k,this.vd,this.Lc,a,1+this.q|0);if(30>this.Lc.a.length){var b=D(E(),this.Lc,this.p),c=new r(1);c.a[0]=a;return new dp(this.k,this.vd,b,c,1+this.q|0)}b=this.k;c=this.vd;var e=this.Lc,f=this.vd,g=E().Zd,h=this.p,k=new (w(w(v)).A)(1);k.a[0]=h;h=new r(1);h.a[0]=a;return new ep(b,c,e,960+f|0,g,k,h,1+this.q|0)};d.ce=function(){return 3};
+d.de=function(a){switch(a){case 0:return this.k;case 1:return this.Lc;case 2:return this.p;default:throw new L(a);}};d.e=function(a){var b=a|0;if(0<=b&&b>>5|0,b>>10|0;var c=31&(b>>>5|0);b&=31;return a=this.oc?(b=a-this.oc|0,this.Yc.a[b>>>5|0].a[31&b]):this.k.a[a]}throw this.Sa(a);};
+d.Ce=function(a,b){if(0<=a&&a=this.pc){var c=a-this.pc|0,e=c>>>10|0;a=31&(c>>>5|0);c&=31;if(e=
+this.oc)return c=a-this.oc|0,a=c>>>5|0,c&=31,e=this.Yc.j(),f=e.a[a].j(),f.a[c]=b,e.a[a]=f,new ep(this.k,this.oc,e,this.pc,this.Ub,this.Vb,this.p,this.q);c=this.k.j();c.a[a]=b;return new ep(c,this.oc,this.Yc,this.pc,this.Ub,this.Vb,this.p,this.q)}throw this.Sa(a);};
+d.Pd=function(a){if(32>this.p.a.length)return a=ae(E(),this.p,a),new ep(this.k,this.oc,this.Yc,this.pc,this.Ub,this.Vb,a,1+this.q|0);if(31>this.Vb.a.length){var b=D(E(),this.Vb,this.p),c=new r(1);c.a[0]=a;return new ep(this.k,this.oc,this.Yc,this.pc,this.Ub,b,c,1+this.q|0)}if(30>this.Ub.a.length){b=D(E(),this.Ub,D(E(),this.Vb,this.p));c=E().qc;var e=new r(1);e.a[0]=a;return new ep(this.k,this.oc,this.Yc,this.pc,b,c,e,1+this.q|0)}b=this.k;c=this.oc;e=this.Yc;var f=this.pc,g=this.Ub,h=this.pc,k=E().Ag,
+m=D(E(),this.Vb,this.p),n=new (w(w(w(v))).A)(1);n.a[0]=m;m=E().qc;var y=new r(1);y.a[0]=a;return new fp(b,c,e,f,g,30720+h|0,k,n,m,y,1+this.q|0)};d.ce=function(){return 5};d.de=function(a){switch(a){case 0:return this.k;case 1:return this.Yc;case 2:return this.Ub;case 3:return this.Vb;case 4:return this.p;default:throw new L(a);}};
+d.e=function(a){var b=a|0;if(0<=b&&b>>10|0;var c=31&(a>>>5|0);a&=31;return b=this.oc?(a=b-this.oc|0,this.Yc.a[a>>>5|0].a[31&a]):this.k.a[b]}throw this.Sa(b);};d.$classData=u({Bs:0},!1,"scala.collection.immutable.Vector3",{Bs:1,kh:1,zg:1,yg:1,ob:1,U:1,D:1,b:1,z:1,n:1,C:1,o:1,B:1,S:1,J:1,E:1,Q:1,s:1,Fa:1,W:1,ab:1,yb:1,X:1,V:1,Kb:1,zb:1,Y:1,L:1,id:1,c:1});
+function fp(a,b,c,e,f,g,h,k,m,n,y){this.p=this.k=null;this.q=0;this.Lb=b;this.Zb=c;this.Mb=e;this.$b=f;this.Nb=g;this.pb=h;this.rb=k;this.qb=m;Zt(this,a,n,y)}fp.prototype=new $t;fp.prototype.constructor=fp;d=fp.prototype;
+d.y=function(a){if(0<=a&&a>>15|0;var c=31&(b>>>10|0),e=31&(b>>>5|0);b&=31;return a=this.Mb?(b=a-this.Mb|0,this.$b.a[b>>>10|0].a[31&(b>>>5|0)].a[31&b]):a>=this.Lb?(b=a-this.Lb|0,this.Zb.a[b>>>5|0].a[31&b]):this.k.a[a]}throw this.Sa(a);};
+d.Ce=function(a,b){if(0<=a&&a=this.Nb){var c=a-this.Nb|0,e=c>>>15|0,f=31&(c>>>10|0);a=31&(c>>>5|0);c&=31;if(e=this.Mb)return f=a-this.Mb|0,a=f>>>10|0,c=31&(f>>>5|0),f&=31,e=this.$b.j(),g=e.a[a].j(),h=g.a[c].j(),h.a[f]=b,g.a[c]=h,e.a[a]=g,new fp(this.k,this.Lb,this.Zb,this.Mb,e,this.Nb,this.pb,this.rb,this.qb,this.p,this.q);
+if(a>=this.Lb)return c=a-this.Lb|0,a=c>>>5|0,c&=31,f=this.Zb.j(),e=f.a[a].j(),e.a[c]=b,f.a[a]=e,new fp(this.k,this.Lb,f,this.Mb,this.$b,this.Nb,this.pb,this.rb,this.qb,this.p,this.q);c=this.k.j();c.a[a]=b;return new fp(c,this.Lb,this.Zb,this.Mb,this.$b,this.Nb,this.pb,this.rb,this.qb,this.p,this.q)}throw this.Sa(a);};
+d.Pd=function(a){if(32>this.p.a.length)return a=ae(E(),this.p,a),new fp(this.k,this.Lb,this.Zb,this.Mb,this.$b,this.Nb,this.pb,this.rb,this.qb,a,1+this.q|0);if(31>this.qb.a.length){var b=D(E(),this.qb,this.p),c=new r(1);c.a[0]=a;return new fp(this.k,this.Lb,this.Zb,this.Mb,this.$b,this.Nb,this.pb,this.rb,b,c,1+this.q|0)}if(31>this.rb.a.length){b=D(E(),this.rb,D(E(),this.qb,this.p));c=E().qc;var e=new r(1);e.a[0]=a;return new fp(this.k,this.Lb,this.Zb,this.Mb,this.$b,this.Nb,this.pb,b,c,e,1+this.q|
+0)}if(30>this.pb.a.length){b=D(E(),this.pb,D(E(),this.rb,D(E(),this.qb,this.p)));c=E().Zd;e=E().qc;var f=new r(1);f.a[0]=a;return new fp(this.k,this.Lb,this.Zb,this.Mb,this.$b,this.Nb,b,c,e,f,1+this.q|0)}b=this.k;c=this.Lb;e=this.Zb;f=this.Mb;var g=this.$b,h=this.Nb,k=this.pb,m=this.Nb,n=E().tj,y=D(E(),this.rb,D(E(),this.qb,this.p)),Q=new (w(w(w(w(v)))).A)(1);Q.a[0]=y;y=E().Zd;var U=E().qc,J=new r(1);J.a[0]=a;return new gp(b,c,e,f,g,h,k,983040+m|0,n,Q,y,U,J,1+this.q|0)};d.ce=function(){return 7};
+d.de=function(a){switch(a){case 0:return this.k;case 1:return this.Zb;case 2:return this.$b;case 3:return this.pb;case 4:return this.rb;case 5:return this.qb;case 6:return this.p;default:throw new L(a);}};
+d.e=function(a){var b=a|0;if(0<=b&&b>>15|0;var c=31&(a>>>10|0),e=31&(a>>>5|0);a&=31;return b=this.Mb?(a=b-this.Mb|0,this.$b.a[a>>>10|0].a[31&(a>>>5|0)].a[31&a]):b>=this.Lb?(a=b-this.Lb|0,this.Zb.a[a>>>5|0].a[31&a]):this.k.a[b]}throw this.Sa(b);};
+d.$classData=u({Cs:0},!1,"scala.collection.immutable.Vector4",{Cs:1,kh:1,zg:1,yg:1,ob:1,U:1,D:1,b:1,z:1,n:1,C:1,o:1,B:1,S:1,J:1,E:1,Q:1,s:1,Fa:1,W:1,ab:1,yb:1,X:1,V:1,Kb:1,zb:1,Y:1,L:1,id:1,c:1});function gp(a,b,c,e,f,g,h,k,m,n,y,Q,U,J){this.p=this.k=null;this.q=0;this.bb=b;this.Ab=c;this.cb=e;this.Bb=f;this.db=g;this.Cb=h;this.eb=k;this.Ga=m;this.Ja=n;this.Ia=y;this.Ha=Q;Zt(this,a,U,J)}gp.prototype=new $t;gp.prototype.constructor=gp;d=gp.prototype;
+d.y=function(a){if(0<=a&&a>>20|0;var c=31&(b>>>15|0),e=31&(b>>>10|0),f=31&(b>>>5|0);b&=31;return a=this.db?(b=a-this.db|0,this.Cb.a[b>>>15|0].a[31&(b>>>10|0)].a[31&(b>>>5|0)].a[31&b]):a>=this.cb?(b=a-this.cb|0,this.Bb.a[b>>>10|0].a[31&(b>>>5|0)].a[31&b]):a>=this.bb?
+(b=a-this.bb|0,this.Ab.a[b>>>5|0].a[31&b]):this.k.a[a]}throw this.Sa(a);};
+d.Ce=function(a,b){if(0<=a&&a=this.eb){var c=a-this.eb|0,e=c>>>20|0,f=31&(c>>>15|0),g=31&(c>>>10|0);a=31&(c>>>5|0);c&=31;if(e=this.db)return f=a-this.db|0,a=f>>>15|0,c=31&(f>>>10|0),g=31&(f>>>5|0),f&=31,e=this.Cb.j(),h=e.a[a].j(),k=h.a[c].j(),m=k.a[g].j(),m.a[f]=b,k.a[g]=m,h.a[c]=k,e.a[a]=h,new gp(this.k,this.bb,this.Ab,this.cb,this.Bb,this.db,e,this.eb,this.Ga,this.Ja,this.Ia,this.Ha,this.p,this.q);if(a>=this.cb)return g=a-this.cb|0,a=g>>>10|0,c=31&(g>>>5|0),g&=31,f=this.Bb.j(),
+e=f.a[a].j(),h=e.a[c].j(),h.a[g]=b,e.a[c]=h,f.a[a]=e,new gp(this.k,this.bb,this.Ab,this.cb,f,this.db,this.Cb,this.eb,this.Ga,this.Ja,this.Ia,this.Ha,this.p,this.q);if(a>=this.bb)return c=a-this.bb|0,a=c>>>5|0,c&=31,g=this.Ab.j(),f=g.a[a].j(),f.a[c]=b,g.a[a]=f,new gp(this.k,this.bb,g,this.cb,this.Bb,this.db,this.Cb,this.eb,this.Ga,this.Ja,this.Ia,this.Ha,this.p,this.q);c=this.k.j();c.a[a]=b;return new gp(c,this.bb,this.Ab,this.cb,this.Bb,this.db,this.Cb,this.eb,this.Ga,this.Ja,this.Ia,this.Ha,this.p,
+this.q)}throw this.Sa(a);};
+d.Pd=function(a){if(32>this.p.a.length)return a=ae(E(),this.p,a),new gp(this.k,this.bb,this.Ab,this.cb,this.Bb,this.db,this.Cb,this.eb,this.Ga,this.Ja,this.Ia,this.Ha,a,1+this.q|0);if(31>this.Ha.a.length){var b=D(E(),this.Ha,this.p),c=new r(1);c.a[0]=a;return new gp(this.k,this.bb,this.Ab,this.cb,this.Bb,this.db,this.Cb,this.eb,this.Ga,this.Ja,this.Ia,b,c,1+this.q|0)}if(31>this.Ia.a.length){b=D(E(),this.Ia,D(E(),this.Ha,this.p));c=E().qc;var e=new r(1);e.a[0]=a;return new gp(this.k,this.bb,this.Ab,
+this.cb,this.Bb,this.db,this.Cb,this.eb,this.Ga,this.Ja,b,c,e,1+this.q|0)}if(31>this.Ja.a.length){b=D(E(),this.Ja,D(E(),this.Ia,D(E(),this.Ha,this.p)));c=E().Zd;e=E().qc;var f=new r(1);f.a[0]=a;return new gp(this.k,this.bb,this.Ab,this.cb,this.Bb,this.db,this.Cb,this.eb,this.Ga,b,c,e,f,1+this.q|0)}if(30>this.Ga.a.length){b=D(E(),this.Ga,D(E(),this.Ja,D(E(),this.Ia,D(E(),this.Ha,this.p))));c=E().Ag;e=E().Zd;f=E().qc;var g=new r(1);g.a[0]=a;return new gp(this.k,this.bb,this.Ab,this.cb,this.Bb,this.db,
+this.Cb,this.eb,b,c,e,f,g,1+this.q|0)}b=this.k;c=this.bb;e=this.Ab;f=this.cb;g=this.Bb;var h=this.db,k=this.Cb,m=this.eb,n=this.Ga,y=this.eb,Q=E().wn,U=D(E(),this.Ja,D(E(),this.Ia,D(E(),this.Ha,this.p))),J=new (w(w(w(w(w(v))))).A)(1);J.a[0]=U;U=E().Ag;var S=E().Zd,oa=E().qc,Y=new r(1);Y.a[0]=a;return new hp(b,c,e,f,g,h,k,m,n,31457280+y|0,Q,J,U,S,oa,Y,1+this.q|0)};d.ce=function(){return 9};
+d.de=function(a){switch(a){case 0:return this.k;case 1:return this.Ab;case 2:return this.Bb;case 3:return this.Cb;case 4:return this.Ga;case 5:return this.Ja;case 6:return this.Ia;case 7:return this.Ha;case 8:return this.p;default:throw new L(a);}};
+d.e=function(a){var b=a|0;if(0<=b&&b>>20|0;var c=31&(a>>>15|0),e=31&(a>>>10|0),f=31&(a>>>5|0);a&=31;return b=this.db?(a=b-this.db|0,this.Cb.a[a>>>15|0].a[31&(a>>>10|0)].a[31&(a>>>5|0)].a[31&a]):b>=this.cb?(a=b-this.cb|0,this.Bb.a[a>>>10|0].a[31&(a>>>5|0)].a[31&a]):b>=
+this.bb?(a=b-this.bb|0,this.Ab.a[a>>>5|0].a[31&a]):this.k.a[b]}throw this.Sa(b);};d.$classData=u({Ds:0},!1,"scala.collection.immutable.Vector5",{Ds:1,kh:1,zg:1,yg:1,ob:1,U:1,D:1,b:1,z:1,n:1,C:1,o:1,B:1,S:1,J:1,E:1,Q:1,s:1,Fa:1,W:1,ab:1,yb:1,X:1,V:1,Kb:1,zb:1,Y:1,L:1,id:1,c:1});
+function hp(a,b,c,e,f,g,h,k,m,n,y,Q,U,J,S,oa,Y){this.p=this.k=null;this.q=0;this.Ka=b;this.fb=c;this.La=e;this.gb=f;this.Ma=g;this.hb=h;this.Na=k;this.ib=m;this.Wa=n;this.qa=y;this.ua=Q;this.ta=U;this.sa=J;this.ra=S;Zt(this,a,oa,Y)}hp.prototype=new $t;hp.prototype.constructor=hp;d=hp.prototype;
+d.y=function(a){if(0<=a&&a>>25|0;var c=31&(b>>>20|0),e=31&(b>>>15|0),f=31&(b>>>10|0),g=31&(b>>>5|0);b&=31;return a=this.Na?(b=a-this.Na|0,this.ib.a[b>>>20|0].a[31&(b>>>15|0)].a[31&(b>>>10|0)].a[31&(b>>>5|0)].a[31&
+b]):a>=this.Ma?(b=a-this.Ma|0,this.hb.a[b>>>15|0].a[31&(b>>>10|0)].a[31&(b>>>5|0)].a[31&b]):a>=this.La?(b=a-this.La|0,this.gb.a[b>>>10|0].a[31&(b>>>5|0)].a[31&b]):a>=this.Ka?(b=a-this.Ka|0,this.fb.a[b>>>5|0].a[31&b]):this.k.a[a]}throw this.Sa(a);};
+d.Ce=function(a,b){if(0<=a&&a=this.Wa){var c=a-this.Wa|0,e=c>>>25|0,f=31&(c>>>20|0),g=31&(c>>>15|0),h=31&(c>>>10|0);a=31&(c>>>5|0);c&=31;if(e=this.Na)return f=a-this.Na|0,a=f>>>20|0,c=31&(f>>>15|0),h=31&(f>>>10|0),g=31&(f>>>5|0),f&=31,e=this.ib.j(),k=e.a[a].j(),m=k.a[c].j(),n=m.a[h].j(),y=n.a[g].j(),y.a[f]=b,n.a[g]=y,m.a[h]=n,k.a[c]=m,e.a[a]=k,new hp(this.k,this.Ka,this.fb,this.La,this.gb,this.Ma,this.hb,this.Na,e,this.Wa,this.qa,this.ua,this.ta,this.sa,this.ra,this.p,this.q);if(a>=this.Ma)return g=a-this.Ma|0,a=g>>>15|0,c=31&(g>>>10|0),h=31&(g>>>5|0),g&=31,f=this.hb.j(),
+e=f.a[a].j(),k=e.a[c].j(),m=k.a[h].j(),m.a[g]=b,k.a[h]=m,e.a[c]=k,f.a[a]=e,new hp(this.k,this.Ka,this.fb,this.La,this.gb,this.Ma,f,this.Na,this.ib,this.Wa,this.qa,this.ua,this.ta,this.sa,this.ra,this.p,this.q);if(a>=this.La)return h=a-this.La|0,a=h>>>10|0,c=31&(h>>>5|0),h&=31,g=this.gb.j(),f=g.a[a].j(),e=f.a[c].j(),e.a[h]=b,f.a[c]=e,g.a[a]=f,new hp(this.k,this.Ka,this.fb,this.La,g,this.Ma,this.hb,this.Na,this.ib,this.Wa,this.qa,this.ua,this.ta,this.sa,this.ra,this.p,this.q);if(a>=this.Ka)return c=
+a-this.Ka|0,a=c>>>5|0,c&=31,h=this.fb.j(),g=h.a[a].j(),g.a[c]=b,h.a[a]=g,new hp(this.k,this.Ka,h,this.La,this.gb,this.Ma,this.hb,this.Na,this.ib,this.Wa,this.qa,this.ua,this.ta,this.sa,this.ra,this.p,this.q);c=this.k.j();c.a[a]=b;return new hp(c,this.Ka,this.fb,this.La,this.gb,this.Ma,this.hb,this.Na,this.ib,this.Wa,this.qa,this.ua,this.ta,this.sa,this.ra,this.p,this.q)}throw this.Sa(a);};
+d.Pd=function(a){if(32>this.p.a.length)return a=ae(E(),this.p,a),new hp(this.k,this.Ka,this.fb,this.La,this.gb,this.Ma,this.hb,this.Na,this.ib,this.Wa,this.qa,this.ua,this.ta,this.sa,this.ra,a,1+this.q|0);if(31>this.ra.a.length){var b=D(E(),this.ra,this.p),c=new r(1);c.a[0]=a;return new hp(this.k,this.Ka,this.fb,this.La,this.gb,this.Ma,this.hb,this.Na,this.ib,this.Wa,this.qa,this.ua,this.ta,this.sa,b,c,1+this.q|0)}if(31>this.sa.a.length){b=D(E(),this.sa,D(E(),this.ra,this.p));c=E().qc;var e=new r(1);
+e.a[0]=a;return new hp(this.k,this.Ka,this.fb,this.La,this.gb,this.Ma,this.hb,this.Na,this.ib,this.Wa,this.qa,this.ua,this.ta,b,c,e,1+this.q|0)}if(31>this.ta.a.length){b=D(E(),this.ta,D(E(),this.sa,D(E(),this.ra,this.p)));c=E().Zd;e=E().qc;var f=new r(1);f.a[0]=a;return new hp(this.k,this.Ka,this.fb,this.La,this.gb,this.Ma,this.hb,this.Na,this.ib,this.Wa,this.qa,this.ua,b,c,e,f,1+this.q|0)}if(31>this.ua.a.length){b=D(E(),this.ua,D(E(),this.ta,D(E(),this.sa,D(E(),this.ra,this.p))));c=E().Ag;e=E().Zd;
+f=E().qc;var g=new r(1);g.a[0]=a;return new hp(this.k,this.Ka,this.fb,this.La,this.gb,this.Ma,this.hb,this.Na,this.ib,this.Wa,this.qa,b,c,e,f,g,1+this.q|0)}if(62>this.qa.a.length){b=D(E(),this.qa,D(E(),this.ua,D(E(),this.ta,D(E(),this.sa,D(E(),this.ra,this.p)))));c=E().tj;e=E().Ag;f=E().Zd;g=E().qc;var h=new r(1);h.a[0]=a;return new hp(this.k,this.Ka,this.fb,this.La,this.gb,this.Ma,this.hb,this.Na,this.ib,this.Wa,b,c,e,f,g,h,1+this.q|0)}throw mg();};d.ce=function(){return 11};
+d.de=function(a){switch(a){case 0:return this.k;case 1:return this.fb;case 2:return this.gb;case 3:return this.hb;case 4:return this.ib;case 5:return this.qa;case 6:return this.ua;case 7:return this.ta;case 8:return this.sa;case 9:return this.ra;case 10:return this.p;default:throw new L(a);}};
+d.e=function(a){var b=a|0;if(0<=b&&b>>25|0;var c=31&(a>>>20|0),e=31&(a>>>15|0),f=31&(a>>>10|0),g=31&(a>>>5|0);a&=31;return b=this.Na?(a=b-this.Na|0,this.ib.a[a>>>20|0].a[31&(a>>>15|0)].a[31&(a>>>10|0)].a[31&(a>>>
+5|0)].a[31&a]):b>=this.Ma?(a=b-this.Ma|0,this.hb.a[a>>>15|0].a[31&(a>>>10|0)].a[31&(a>>>5|0)].a[31&a]):b>=this.La?(a=b-this.La|0,this.gb.a[a>>>10|0].a[31&(a>>>5|0)].a[31&a]):b>=this.Ka?(a=b-this.Ka|0,this.fb.a[a>>>5|0].a[31&a]):this.k.a[b]}throw this.Sa(b);};d.$classData=u({Es:0},!1,"scala.collection.immutable.Vector6",{Es:1,kh:1,zg:1,yg:1,ob:1,U:1,D:1,b:1,z:1,n:1,C:1,o:1,B:1,S:1,J:1,E:1,Q:1,s:1,Fa:1,W:1,ab:1,yb:1,X:1,V:1,Kb:1,zb:1,Y:1,L:1,id:1,c:1});
+function Uc(){var a=new eu;a.dc=Um(new Vm);return a}function eu(){this.dc=null}eu.prototype=new Bt;eu.prototype.constructor=eu;d=eu.prototype;d.Fb=function(){return"IndexedSeq"};d.g=function(){var a=new bt(this);return Eq(new Fq,a)};d.ub=function(a){var b=this.dc.t();return b===a?0:bthis.Jh))};d.y=function(a){return jg(this.yd,a)};d.t=function(){return this.$c};d.x=function(){return this.$c};d.d=function(){return 0===this.$c};d.Wb=function(){this.Ih=!this.d();return this.yd};function Rf(a,b){a.Jh=1+a.Jh|0;a.Ih&&fu(a);b=new X(b,K());0===a.$c?a.yd=b:a.Ae.N=b;a.Ae=b;a.$c=1+a.$c|0;return a}
+function xp(a,b){b=b.g();if(b.i()){var c=1,e=new X(b.f(),K());for(a.yd=e;b.i();){var f=new X(b.f(),K());e=e.N=f;c=1+c|0}a.$c=c;a.Ae=e}return a}d.Fb=function(){return"ListBuffer"};d.lb=function(a){a=a.g();a.i()&&(a=xp(new Of,a),this.Jh=1+this.Jh|0,this.Ih&&fu(this),0===this.$c?this.yd=a.yd:this.Ae.N=a.yd,this.Ae=a.Ae,this.$c=this.$c+a.$c|0);return this};d.oa=function(a){return Rf(this,a)};d.Ta=function(){return this.Wb()};d.e=function(a){return jg(this.yd,a|0)};d.wa=function(){yp||(yp=new wp);return yp};
+d.$classData=u({nt:0},!1,"scala.collection.mutable.ListBuffer",{nt:1,xn:1,Zc:1,U:1,D:1,b:1,z:1,n:1,C:1,o:1,B:1,S:1,J:1,E:1,Q:1,s:1,ad:1,Oc:1,bd:1,Nc:1,Pb:1,Dn:1,cc:1,bc:1,xj:1,Y:1,L:1,Be:1,sc:1,id:1,c:1});function lp(){var a=new mp,b=new r(16);a.we=0;a.ve=b;a.Oa=0;return a}function mp(){this.we=0;this.ve=null;this.Oa=0}mp.prototype=new Kt;mp.prototype.constructor=mp;d=mp.prototype;d.Ba=function(a){return on(this,a)};d.g=function(){return Op(this).g()};
+d.ub=function(a){var b=this.Oa;return b===a?0:b>31,f=b>>31;b=c+b|0;a.ve=kp(a.ve,a.Oa,new p(b,(-2147483648^b)<(-2147483648^c)?1+(e+f|0)|0:e+f|0))}d.y=function(a){var b=1+a|0;if(0>a)throw Oe(new Pe,a+" is out of bounds (min 0, max "+(-1+this.Oa|0)+")");if(b>this.Oa)throw Oe(new Pe,(-1+b|0)+" is out of bounds (min 0, max "+(-1+this.Oa|0)+")");return this.ve.a[a]};d.t=function(){return this.Oa};
+function Op(a){return new et(a,new T(()=>a.we))}function Np(a,b){a.we=1+a.we|0;gu(a,1);var c=a.Oa;a.Oa=1+c|0;var e=1+c|0;if(0>c)throw Oe(new Pe,c+" is out of bounds (min 0, max "+(-1+a.Oa|0)+")");if(e>a.Oa)throw Oe(new Pe,(-1+e|0)+" is out of bounds (min 0, max "+(-1+a.Oa|0)+")");a.we=1+a.we|0;a.ve.a[c]=b;return a}function np(a,b){if(b instanceof mp){var c=b.Oa;0 0) {
+ for (i = 1, j = 1; i < descriptions.length; i++) {
+ if (descriptions[i - 1] !== descriptions[i]) {
+ descriptions[j] = descriptions[i];
+ j++;
+ }
+ }
+ descriptions.length = j;
+ }
+
+ switch (descriptions.length) {
+ case 1:
+ return descriptions[0];
+
+ case 2:
+ return descriptions[0] + " or " + descriptions[1];
+
+ default:
+ return descriptions.slice(0, -1).join(", ")
+ + ", or "
+ + descriptions[descriptions.length - 1];
+ }
+ }
+
+ function describeFound(found) {
+ return found ? "\"" + literalEscape(found) + "\"" : "end of input";
+ }
+
+ return "Expected " + describeExpected(expected) + " but " + describeFound(found) + " found.";
+};
+
+function peg$parse(input, options) {
+ options = options !== void 0 ? options : {};
+
+ var peg$FAILED = {},
+
+ peg$startRuleFunctions = { Text: peg$parseText },
+ peg$startRuleFunction = peg$parseText,
+
+ peg$c0 = function(k, w, t) { return ""+k+"" + w + t },
+ peg$c1 = function(id, w, t) { return ""+id+"" + w + t },
+ peg$c2 = function(s, w, t) { return ""+s+"" + w + t },
+ peg$c3 = "feature",
+ peg$c4 = peg$literalExpectation("feature", false),
+ peg$c5 = "optional",
+ peg$c6 = peg$literalExpectation("optional", false),
+ peg$c7 = "required",
+ peg$c8 = peg$literalExpectation("required", false),
+ peg$c9 = "requires",
+ peg$c10 = peg$literalExpectation("requires", false),
+ peg$c11 = "excludes",
+ peg$c12 = peg$literalExpectation("excludes", false),
+ peg$c13 = "hasOneOf",
+ peg$c14 = peg$literalExpectation("hasOneOf", false),
+ peg$c15 = "hasSome",
+ peg$c16 = peg$literalExpectation("hasSome", false),
+ peg$c17 = "has",
+ peg$c18 = peg$literalExpectation("has", false),
+ peg$c19 = "[",
+ peg$c20 = peg$literalExpectation("[", false),
+ peg$c21 = "]",
+ peg$c22 = peg$literalExpectation("]", false),
+ peg$c23 = ",",
+ peg$c24 = peg$literalExpectation(",", false),
+ peg$c25 = function() { return ""+text()+""; },
+ peg$c26 = function() { return text(); },
+ peg$c27 = "\"",
+ peg$c28 = peg$literalExpectation("\"", false),
+ peg$c29 = /^[0-9a-zA-Z_\-]/,
+ peg$c30 = peg$classExpectation([["0", "9"], ["a", "z"], ["A", "Z"], "_", "-"], false, false),
+ peg$c31 = /^[\-0-9a-zA-Z_]/,
+ peg$c32 = peg$classExpectation(["-", ["0", "9"], ["a", "z"], ["A", "Z"], "_"], false, false),
+ peg$c33 = peg$otherExpectation("integer"),
+ peg$c34 = /^[0-9]/,
+ peg$c35 = peg$classExpectation([["0", "9"]], false, false),
+ peg$c36 = function() { return parseInt(text(), 10); },
+ peg$c37 = peg$otherExpectation("whitespace"),
+ peg$c38 = /^[ \t\n\r]/,
+ peg$c39 = peg$classExpectation([" ", "\t", "\n", "\r"], false, false),
+
+ peg$currPos = 0,
+ peg$savedPos = 0,
+ peg$posDetailsCache = [{ line: 1, column: 1 }],
+ peg$maxFailPos = 0,
+ peg$maxFailExpected = [],
+ peg$silentFails = 0,
+
+ peg$result;
+
+ if ("startRule" in options) {
+ if (!(options.startRule in peg$startRuleFunctions)) {
+ throw new Error("Can't start parsing from rule \"" + options.startRule + "\".");
+ }
+
+ peg$startRuleFunction = peg$startRuleFunctions[options.startRule];
+ }
+
+ function text() {
+ return input.substring(peg$savedPos, peg$currPos);
+ }
+
+ function location() {
+ return peg$computeLocation(peg$savedPos, peg$currPos);
+ }
+
+ function expected(description, location) {
+ location = location !== void 0 ? location : peg$computeLocation(peg$savedPos, peg$currPos)
+
+ throw peg$buildStructuredError(
+ [peg$otherExpectation(description)],
+ input.substring(peg$savedPos, peg$currPos),
+ location
+ );
+ }
+
+ function error(message, location) {
+ location = location !== void 0 ? location : peg$computeLocation(peg$savedPos, peg$currPos)
+
+ throw peg$buildSimpleError(message, location);
+ }
+
+ function peg$literalExpectation(text, ignoreCase) {
+ return { type: "literal", text: text, ignoreCase: ignoreCase };
+ }
+
+ function peg$classExpectation(parts, inverted, ignoreCase) {
+ return { type: "class", parts: parts, inverted: inverted, ignoreCase: ignoreCase };
+ }
+
+ function peg$anyExpectation() {
+ return { type: "any" };
+ }
+
+ function peg$endExpectation() {
+ return { type: "end" };
+ }
+
+ function peg$otherExpectation(description) {
+ return { type: "other", description: description };
+ }
+
+ function peg$computePosDetails(pos) {
+ var details = peg$posDetailsCache[pos], p;
+
+ if (details) {
+ return details;
+ } else {
+ p = pos - 1;
+ while (!peg$posDetailsCache[p]) {
+ p--;
+ }
+
+ details = peg$posDetailsCache[p];
+ details = {
+ line: details.line,
+ column: details.column
+ };
+
+ while (p < pos) {
+ if (input.charCodeAt(p) === 10) {
+ details.line++;
+ details.column = 1;
+ } else {
+ details.column++;
+ }
+
+ p++;
+ }
+
+ peg$posDetailsCache[pos] = details;
+ return details;
+ }
+ }
+
+ function peg$computeLocation(startPos, endPos) {
+ var startPosDetails = peg$computePosDetails(startPos),
+ endPosDetails = peg$computePosDetails(endPos);
+
+ return {
+ start: {
+ offset: startPos,
+ line: startPosDetails.line,
+ column: startPosDetails.column
+ },
+ end: {
+ offset: endPos,
+ line: endPosDetails.line,
+ column: endPosDetails.column
+ }
+ };
+ }
+
+ function peg$fail(expected) {
+ if (peg$currPos < peg$maxFailPos) { return; }
+
+ if (peg$currPos > peg$maxFailPos) {
+ peg$maxFailPos = peg$currPos;
+ peg$maxFailExpected = [];
+ }
+
+ peg$maxFailExpected.push(expected);
+ }
+
+ function peg$buildSimpleError(message, location) {
+ return new peg$SyntaxError(message, null, null, location);
+ }
+
+ function peg$buildStructuredError(expected, found, location) {
+ return new peg$SyntaxError(
+ peg$SyntaxError.buildMessage(expected, found),
+ expected,
+ found,
+ location
+ );
+ }
+
+ function peg$parseText() {
+ var s0, s1, s2, s3;
+
+ s0 = peg$currPos;
+ s1 = peg$parseKeyword();
+ if (s1 !== peg$FAILED) {
+ s2 = peg$parse_();
+ if (s2 !== peg$FAILED) {
+ s3 = peg$parseText();
+ if (s3 !== peg$FAILED) {
+ peg$savedPos = s0;
+ s1 = peg$c0(s1, s2, s3);
+ s0 = s1;
+ } else {
+ peg$currPos = s0;
+ s0 = peg$FAILED;
+ }
+ } else {
+ peg$currPos = s0;
+ s0 = peg$FAILED;
+ }
+ } else {
+ peg$currPos = s0;
+ s0 = peg$FAILED;
+ }
+ if (s0 === peg$FAILED) {
+ s0 = peg$currPos;
+ s1 = peg$parseIdentifier();
+ if (s1 !== peg$FAILED) {
+ s2 = peg$parse_();
+ if (s2 !== peg$FAILED) {
+ s3 = peg$parseText();
+ if (s3 !== peg$FAILED) {
+ peg$savedPos = s0;
+ s1 = peg$c1(s1, s2, s3);
+ s0 = s1;
+ } else {
+ peg$currPos = s0;
+ s0 = peg$FAILED;
+ }
+ } else {
+ peg$currPos = s0;
+ s0 = peg$FAILED;
+ }
+ } else {
+ peg$currPos = s0;
+ s0 = peg$FAILED;
+ }
+ if (s0 === peg$FAILED) {
+ s0 = peg$currPos;
+ s1 = peg$parseString();
+ if (s1 !== peg$FAILED) {
+ s2 = peg$parse_();
+ if (s2 !== peg$FAILED) {
+ s3 = peg$parseText();
+ if (s3 !== peg$FAILED) {
+ peg$savedPos = s0;
+ s1 = peg$c2(s1, s2, s3);
+ s0 = s1;
+ } else {
+ peg$currPos = s0;
+ s0 = peg$FAILED;
+ }
+ } else {
+ peg$currPos = s0;
+ s0 = peg$FAILED;
+ }
+ } else {
+ peg$currPos = s0;
+ s0 = peg$FAILED;
+ }
+ if (s0 === peg$FAILED) {
+ s0 = peg$parse_();
+ }
+ }
+ }
+
+ return s0;
+ }
+
+ function peg$parseKeyword() {
+ var s0, s1;
+
+ if (input.substr(peg$currPos, 7) === peg$c3) {
+ s0 = peg$c3;
+ peg$currPos += 7;
+ } else {
+ s0 = peg$FAILED;
+ if (peg$silentFails === 0) { peg$fail(peg$c4); }
+ }
+ if (s0 === peg$FAILED) {
+ if (input.substr(peg$currPos, 8) === peg$c5) {
+ s0 = peg$c5;
+ peg$currPos += 8;
+ } else {
+ s0 = peg$FAILED;
+ if (peg$silentFails === 0) { peg$fail(peg$c6); }
+ }
+ if (s0 === peg$FAILED) {
+ if (input.substr(peg$currPos, 8) === peg$c7) {
+ s0 = peg$c7;
+ peg$currPos += 8;
+ } else {
+ s0 = peg$FAILED;
+ if (peg$silentFails === 0) { peg$fail(peg$c8); }
+ }
+ if (s0 === peg$FAILED) {
+ if (input.substr(peg$currPos, 8) === peg$c9) {
+ s0 = peg$c9;
+ peg$currPos += 8;
+ } else {
+ s0 = peg$FAILED;
+ if (peg$silentFails === 0) { peg$fail(peg$c10); }
+ }
+ if (s0 === peg$FAILED) {
+ if (input.substr(peg$currPos, 8) === peg$c11) {
+ s0 = peg$c11;
+ peg$currPos += 8;
+ } else {
+ s0 = peg$FAILED;
+ if (peg$silentFails === 0) { peg$fail(peg$c12); }
+ }
+ if (s0 === peg$FAILED) {
+ if (input.substr(peg$currPos, 8) === peg$c13) {
+ s0 = peg$c13;
+ peg$currPos += 8;
+ } else {
+ s0 = peg$FAILED;
+ if (peg$silentFails === 0) { peg$fail(peg$c14); }
+ }
+ if (s0 === peg$FAILED) {
+ if (input.substr(peg$currPos, 7) === peg$c15) {
+ s0 = peg$c15;
+ peg$currPos += 7;
+ } else {
+ s0 = peg$FAILED;
+ if (peg$silentFails === 0) { peg$fail(peg$c16); }
+ }
+ if (s0 === peg$FAILED) {
+ if (input.substr(peg$currPos, 3) === peg$c17) {
+ s0 = peg$c17;
+ peg$currPos += 3;
+ } else {
+ s0 = peg$FAILED;
+ if (peg$silentFails === 0) { peg$fail(peg$c18); }
+ }
+ if (s0 === peg$FAILED) {
+ if (input.charCodeAt(peg$currPos) === 91) {
+ s0 = peg$c19;
+ peg$currPos++;
+ } else {
+ s0 = peg$FAILED;
+ if (peg$silentFails === 0) { peg$fail(peg$c20); }
+ }
+ if (s0 === peg$FAILED) {
+ if (input.charCodeAt(peg$currPos) === 93) {
+ s0 = peg$c21;
+ peg$currPos++;
+ } else {
+ s0 = peg$FAILED;
+ if (peg$silentFails === 0) { peg$fail(peg$c22); }
+ }
+ if (s0 === peg$FAILED) {
+ s0 = peg$currPos;
+ if (input.charCodeAt(peg$currPos) === 44) {
+ s1 = peg$c23;
+ peg$currPos++;
+ } else {
+ s1 = peg$FAILED;
+ if (peg$silentFails === 0) { peg$fail(peg$c24); }
+ }
+ if (s1 !== peg$FAILED) {
+ peg$savedPos = s0;
+ s1 = peg$c25();
+ }
+ s0 = s1;
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+ }
+
+ return s0;
+ }
+
+ function peg$parseIdentifier() {
+ var s0, s1;
+
+ s0 = peg$currPos;
+ s1 = peg$parseLabel();
+ if (s1 !== peg$FAILED) {
+ peg$savedPos = s0;
+ s1 = peg$c26();
+ }
+ s0 = s1;
+
+ return s0;
+ }
+
+ function peg$parseString() {
+ var s0, s1, s2, s3, s4, s5;
+
+ s0 = peg$currPos;
+ if (input.charCodeAt(peg$currPos) === 34) {
+ s1 = peg$c27;
+ peg$currPos++;
+ } else {
+ s1 = peg$FAILED;
+ if (peg$silentFails === 0) { peg$fail(peg$c28); }
+ }
+ if (s1 !== peg$FAILED) {
+ s2 = [];
+ s3 = peg$currPos;
+ s4 = peg$parseLabel();
+ if (s4 !== peg$FAILED) {
+ s5 = peg$parse_();
+ if (s5 !== peg$FAILED) {
+ s4 = [s4, s5];
+ s3 = s4;
+ } else {
+ peg$currPos = s3;
+ s3 = peg$FAILED;
+ }
+ } else {
+ peg$currPos = s3;
+ s3 = peg$FAILED;
+ }
+ while (s3 !== peg$FAILED) {
+ s2.push(s3);
+ s3 = peg$currPos;
+ s4 = peg$parseLabel();
+ if (s4 !== peg$FAILED) {
+ s5 = peg$parse_();
+ if (s5 !== peg$FAILED) {
+ s4 = [s4, s5];
+ s3 = s4;
+ } else {
+ peg$currPos = s3;
+ s3 = peg$FAILED;
+ }
+ } else {
+ peg$currPos = s3;
+ s3 = peg$FAILED;
+ }
+ }
+ if (s2 !== peg$FAILED) {
+ if (input.charCodeAt(peg$currPos) === 34) {
+ s3 = peg$c27;
+ peg$currPos++;
+ } else {
+ s3 = peg$FAILED;
+ if (peg$silentFails === 0) { peg$fail(peg$c28); }
+ }
+ if (s3 !== peg$FAILED) {
+ peg$savedPos = s0;
+ s1 = peg$c26();
+ s0 = s1;
+ } else {
+ peg$currPos = s0;
+ s0 = peg$FAILED;
+ }
+ } else {
+ peg$currPos = s0;
+ s0 = peg$FAILED;
+ }
+ } else {
+ peg$currPos = s0;
+ s0 = peg$FAILED;
+ }
+
+ return s0;
+ }
+
+ function peg$parseLabel() {
+ var s0, s1, s2, s3;
+
+ s0 = peg$currPos;
+ if (peg$c29.test(input.charAt(peg$currPos))) {
+ s1 = input.charAt(peg$currPos);
+ peg$currPos++;
+ } else {
+ s1 = peg$FAILED;
+ if (peg$silentFails === 0) { peg$fail(peg$c30); }
+ }
+ if (s1 !== peg$FAILED) {
+ s2 = [];
+ if (peg$c31.test(input.charAt(peg$currPos))) {
+ s3 = input.charAt(peg$currPos);
+ peg$currPos++;
+ } else {
+ s3 = peg$FAILED;
+ if (peg$silentFails === 0) { peg$fail(peg$c32); }
+ }
+ while (s3 !== peg$FAILED) {
+ s2.push(s3);
+ if (peg$c31.test(input.charAt(peg$currPos))) {
+ s3 = input.charAt(peg$currPos);
+ peg$currPos++;
+ } else {
+ s3 = peg$FAILED;
+ if (peg$silentFails === 0) { peg$fail(peg$c32); }
+ }
+ }
+ if (s2 !== peg$FAILED) {
+ peg$savedPos = s0;
+ s1 = peg$c26();
+ s0 = s1;
+ } else {
+ peg$currPos = s0;
+ s0 = peg$FAILED;
+ }
+ } else {
+ peg$currPos = s0;
+ s0 = peg$FAILED;
+ }
+
+ return s0;
+ }
+
+ function peg$parseInteger() {
+ var s0, s1, s2, s3;
+
+ peg$silentFails++;
+ s0 = peg$currPos;
+ s1 = peg$parse_();
+ if (s1 !== peg$FAILED) {
+ s2 = [];
+ if (peg$c34.test(input.charAt(peg$currPos))) {
+ s3 = input.charAt(peg$currPos);
+ peg$currPos++;
+ } else {
+ s3 = peg$FAILED;
+ if (peg$silentFails === 0) { peg$fail(peg$c35); }
+ }
+ if (s3 !== peg$FAILED) {
+ while (s3 !== peg$FAILED) {
+ s2.push(s3);
+ if (peg$c34.test(input.charAt(peg$currPos))) {
+ s3 = input.charAt(peg$currPos);
+ peg$currPos++;
+ } else {
+ s3 = peg$FAILED;
+ if (peg$silentFails === 0) { peg$fail(peg$c35); }
+ }
+ }
+ } else {
+ s2 = peg$FAILED;
+ }
+ if (s2 !== peg$FAILED) {
+ peg$savedPos = s0;
+ s1 = peg$c36();
+ s0 = s1;
+ } else {
+ peg$currPos = s0;
+ s0 = peg$FAILED;
+ }
+ } else {
+ peg$currPos = s0;
+ s0 = peg$FAILED;
+ }
+ peg$silentFails--;
+ if (s0 === peg$FAILED) {
+ s1 = peg$FAILED;
+ if (peg$silentFails === 0) { peg$fail(peg$c33); }
+ }
+
+ return s0;
+ }
+
+ function peg$parse_() {
+ var s0, s1, s2;
+
+ peg$silentFails++;
+ s0 = peg$currPos;
+ s1 = [];
+ if (peg$c38.test(input.charAt(peg$currPos))) {
+ s2 = input.charAt(peg$currPos);
+ peg$currPos++;
+ } else {
+ s2 = peg$FAILED;
+ if (peg$silentFails === 0) { peg$fail(peg$c39); }
+ }
+ while (s2 !== peg$FAILED) {
+ s1.push(s2);
+ if (peg$c38.test(input.charAt(peg$currPos))) {
+ s2 = input.charAt(peg$currPos);
+ peg$currPos++;
+ } else {
+ s2 = peg$FAILED;
+ if (peg$silentFails === 0) { peg$fail(peg$c39); }
+ }
+ }
+ if (s1 !== peg$FAILED) {
+ peg$savedPos = s0;
+ s1 = peg$c26();
+ }
+ s0 = s1;
+ peg$silentFails--;
+ if (s0 === peg$FAILED) {
+ s1 = peg$FAILED;
+ if (peg$silentFails === 0) { peg$fail(peg$c37); }
+ }
+
+ return s0;
+ }
+
+ peg$result = peg$startRuleFunction();
+
+ if (peg$result !== peg$FAILED && peg$currPos === input.length) {
+ return peg$result;
+ } else {
+ if (peg$result !== peg$FAILED && peg$currPos < input.length) {
+ peg$fail(peg$endExpectation());
+ }
+
+ throw peg$buildStructuredError(
+ peg$maxFailExpected,
+ peg$maxFailPos < input.length ? input.charAt(peg$maxFailPos) : null,
+ peg$maxFailPos < input.length
+ ? peg$computeLocation(peg$maxFailPos, peg$maxFailPos + 1)
+ : peg$computeLocation(peg$maxFailPos, peg$maxFailPos)
+ );
+ }
+}
+
+module.exports = {
+ SyntaxError: peg$SyntaxError,
+ parse: peg$parse
+};
diff --git a/src/docs/fml/examples/feature.fml1 b/src/docs/fml/examples/feature.fml1
new file mode 100644
index 0000000..6948bea
--- /dev/null
+++ b/src/docs/fml/examples/feature.fml1
@@ -0,0 +1,22 @@
+feature root "Product"
+feature req "Required Feature"
+feature altSub1 "Alternative Sub Feature1"
+feature altSub2 "Alternative Sub Feature2"
+feature opt "Optional Feature"
+feature reqSub "Required Sub Feature"
+feature optSub "Optional Sub Feature"
+feature comb "Combined Feature"
+feature sub1 "Sub Feature1"
+feature sub2 "Sub Feature2"
+
+root has req
+root canHave opt
+root has comb
+opt has reqSub
+opt canHave optSub
+
+req hasOneOf [altSub1, altSub2]
+comb hasSome [sub1, sub2]
+
+sub1 requires optSub
+altSub1 excludes sub2
diff --git a/src/docs/fml/examples/feature.fml2 b/src/docs/fml/examples/feature.fml2
new file mode 100644
index 0000000..160e9d9
--- /dev/null
+++ b/src/docs/fml/examples/feature.fml2
@@ -0,0 +1,16 @@
+root "Product"
+ has
+ req "Required Feature" required
+ hasOneOf
+ altSub1 "Alternative Sub Feature1"
+ excludes sub2
+ altSub2 "Alternative Sub Feature2"
+ opt "Optional Feature" optional
+ has
+ reqSub "Required Sub Feature" required
+ optSub "Optional Sub Feature" optional
+ comb "Combined Feature"
+ hasSome
+ sub1 "Sub Feature1"
+ requires optSub
+ sub2 "Sub Feature2"
diff --git a/src/docs/fml/index.md b/src/docs/fml/index.md
new file mode 100644
index 0000000..19478c5
--- /dev/null
+++ b/src/docs/fml/index.md
@@ -0,0 +1,86 @@
+# FML Documentation
+
+The Feature Modeling Language (FML) is used to represent how features are decomposed in sub-features and which kind of constraints are there between them.
+
+The language comes with two syntaxes: flat (`.fml1`) and nested (`.fml2`).
+
+
+## Flat syntax
+### Syntax
+To create a feature: `feature