blob: 235ca2d7cfbaa97c2c085b29e6a74496188673ef [file] [log] [blame]
// Copyright 2018 The Chromium Authors. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
var $jscomp=$jscomp||{};$jscomp.scope={};$jscomp.ASSUME_ES5=!1;$jscomp.ASSUME_NO_NATIVE_MAP=!1;$jscomp.ASSUME_NO_NATIVE_SET=!1;$jscomp.defineProperty=$jscomp.ASSUME_ES5||"function"==typeof Object.defineProperties?Object.defineProperty:function(g,r,z){g!=Array.prototype&&g!=Object.prototype&&(g[r]=z.value)};$jscomp.getGlobal=function(g){return"undefined"!=typeof window&&window===g?g:"undefined"!=typeof global&&null!=global?global:g};$jscomp.global=$jscomp.getGlobal(this);
$jscomp.polyfill=function(g,r){if(r){var z=$jscomp.global;g=g.split(".");for(var I=0;I<g.length-1;I++){var J=g[I];J in z||(z[J]={});z=z[J]}g=g[g.length-1];I=z[g];r=r(I);r!=I&&null!=r&&$jscomp.defineProperty(z,g,{configurable:!0,writable:!0,value:r})}};$jscomp.polyfill("Math.imul",function(g){return g?g:g=function(g,z){g=Number(g);z=Number(z);var r=g>>>16&65535;g&=65535;var J=z>>>16&65535;z&=65535;r=r*z+g*J<<16>>>0;return g*z+r|0}},"es6","es3");
$jscomp.polyfill("Math.clz32",function(g){return g?g:g=function(g){g=Number(g)>>>0;if(0===g)return 32;var r=0;0===(g&4294901760)&&(g<<=16,r+=16);0===(g&4278190080)&&(g<<=8,r+=8);0===(g&4026531840)&&(g<<=4,r+=4);0===(g&3221225472)&&(g<<=2,r+=2);0===(g&2147483648)&&r++;return r}},"es6","es3");$jscomp.polyfill("Math.trunc",function(g){return g?g:g=function(g){g=Number(g);if(isNaN(g)||Infinity===g||-Infinity===g||0===g)return g;var r=Math.floor(Math.abs(g));return 0>g?-r:r}},"es6","es3");
$jscomp.SYMBOL_PREFIX="jscomp_symbol_";$jscomp.initSymbol=function(){$jscomp.initSymbol=function(){};$jscomp.global.Symbol||($jscomp.global.Symbol=$jscomp.Symbol)};$jscomp.Symbol=function(){function g(g){return $jscomp.SYMBOL_PREFIX+(g||"")+r++}var r=0;return g}();
$jscomp.initSymbolIterator=function(){$jscomp.initSymbol();var g=$jscomp.global.Symbol.iterator;g||(g=$jscomp.global.Symbol.iterator=$jscomp.global.Symbol("iterator"));"function"!=typeof Array.prototype[g]&&$jscomp.defineProperty(Array.prototype,g,{configurable:!0,writable:!0,value:function(){return $jscomp.arrayIterator(this)}});$jscomp.initSymbolIterator=function(){}};$jscomp.arrayIterator=function(g){var r=0;return $jscomp.iteratorPrototype(function(){return r<g.length?{done:!1,value:g[r++]}:{done:!0}})};
$jscomp.iteratorPrototype=function(g){$jscomp.initSymbolIterator();g={next:g};g[$jscomp.global.Symbol.iterator]=function(){return this};return g};$jscomp.makeIterator=function(g){$jscomp.initSymbolIterator();var r=g[Symbol.iterator];return r?r.call(g):$jscomp.arrayIterator(g)};$jscomp.FORCE_POLYFILL_PROMISE=!1;
$jscomp.polyfill("Promise",function(g){function r(){this.batch_=null}function z(g){return g instanceof E?g:new E(function(ia){ia(g)})}if(g&&!$jscomp.FORCE_POLYFILL_PROMISE)return g;r.prototype.asyncExecute=function(g){null==this.batch_&&(this.batch_=[],this.asyncExecuteBatch_());this.batch_.push(g);return this};r.prototype.asyncExecuteBatch_=function(){var g=this;this.asyncExecuteFunction(function(){g.executeBatch_()})};var I=$jscomp.global.setTimeout;r.prototype.asyncExecuteFunction=function(g){I(g,
0)};r.prototype.executeBatch_=function(){for(;this.batch_&&this.batch_.length;){var g=this.batch_;this.batch_=[];for(var r=0;r<g.length;++r){var z=g[r];delete g[r];try{z()}catch(X){this.asyncThrow_(X)}}}this.batch_=null};r.prototype.asyncThrow_=function(g){this.asyncExecuteFunction(function(){throw g;})};var J={PENDING:0,FULFILLED:1,REJECTED:2},E=function(g){this.state_=J.PENDING;this.result_=void 0;this.onSettledCallbacks_=[];var r=this.createResolveAndReject_();try{g(r.resolve,r.reject)}catch(Ha){r.reject(Ha)}};
E.prototype.createResolveAndReject_=function(){function g(g){return function(ia){z||(z=!0,g.call(r,ia))}}var r=this,z=!1;return{resolve:g(this.resolveTo_),reject:g(this.reject_)}};E.prototype.resolveTo_=function(g){if(g===this)this.reject_(new TypeError("A Promise cannot resolve to itself"));else if(g instanceof E)this.settleSameAsPromise_(g);else{a:switch(typeof g){case "object":var r=null!=g;break a;case "function":r=!0;break a;default:r=!1}r?this.resolveToNonPromiseObj_(g):this.fulfill_(g)}};E.prototype.resolveToNonPromiseObj_=
function(g){var r=void 0;try{r=g.then}catch(Ha){this.reject_(Ha);return}"function"==typeof r?this.settleSameAsThenable_(r,g):this.fulfill_(g)};E.prototype.reject_=function(g){this.settle_(J.REJECTED,g)};E.prototype.fulfill_=function(g){this.settle_(J.FULFILLED,g)};E.prototype.settle_=function(g,r){if(this.state_!=J.PENDING)throw Error("Cannot settle("+g+", "+r+"): Promise already settled in state"+this.state_);this.state_=g;this.result_=r;this.executeOnSettledCallbacks_()};E.prototype.executeOnSettledCallbacks_=
function(){if(null!=this.onSettledCallbacks_){for(var g=this.onSettledCallbacks_,r=0;r<g.length;++r)g[r].call(),g[r]=null;this.onSettledCallbacks_=null}};var Sa=new r;E.prototype.settleSameAsPromise_=function(g){var r=this.createResolveAndReject_();g.callWhenSettled_(r.resolve,r.reject)};E.prototype.settleSameAsThenable_=function(g,r){var z=this.createResolveAndReject_();try{g.call(r,z.resolve,z.reject)}catch(X){z.reject(X)}};E.prototype.then=function(g,r){function z(g,r){return"function"==typeof g?
function(r){try{X(g(r))}catch(Y){D(Y)}}:r}var X,D,I=new E(function(g,r){X=g;D=r});this.callWhenSettled_(z(g,X),z(r,D));return I};E.prototype["catch"]=function(g){return this.then(void 0,g)};E.prototype.callWhenSettled_=function(g,r){function z(){switch(E.state_){case J.FULFILLED:g(E.result_);break;case J.REJECTED:r(E.result_);break;default:throw Error("Unexpected state: "+E.state_);}}var E=this;null==this.onSettledCallbacks_?Sa.asyncExecute(z):this.onSettledCallbacks_.push(function(){Sa.asyncExecute(z)})};
E.resolve=z;E.reject=function(g){return new E(function(r,z){z(g)})};E.race=function(g){return new E(function(r,E){for(var I=$jscomp.makeIterator(g),D=I.next();!D.done;D=I.next())z(D.value).callWhenSettled_(r,E)})};E.all=function(g){var r=$jscomp.makeIterator(g),I=r.next();return I.done?z([]):new E(function(g,D){function E(r){return function(z){J[r]=z;R--;0==R&&g(J)}}var J=[],R=0;do J.push(void 0),R++,z(I.value).callWhenSettled_(E(J.length-1),D),I=r.next();while(!I.done)})};return E},"es6","es3");
$jscomp.iteratorFromArray=function(g,r){$jscomp.initSymbolIterator();g instanceof String&&(g+="");var z=0,I={next:function(){if(z<g.length){var J=z++;return{value:r(J,g[J]),done:!1}}I.next=function(){return{done:!0,value:void 0}};return I.next()}};I[Symbol.iterator]=function(){return I};return I};$jscomp.polyfill("Array.prototype.entries",function(g){return g?g:g=function(){return $jscomp.iteratorFromArray(this,function(g,z){return[g,z]})}},"es6","es3");
$jscomp.polyfill("Array.prototype.values",function(g){return g?g:g=function(){return $jscomp.iteratorFromArray(this,function(g,z){return z})}},"es8","es3");
(function(g){var r=arguments;fetch(STATIC_JS_PREFIX+"/glcore_base.wasm",{credentials:"include"}).then(function(g){return g.arrayBuffer()}).then(function(z){function I(a){D(!Tb);var b=W;W=W+a+15&-16;return b}function J(a){D(oa);var b=p[oa>>2];a=b+a+15&-16;p[oa>>2]=a;return a>=pa&&(pb(),a=void 0,!a)?(p[oa>>2]=b,0):b}function E(a,b){b||(b=16);return a=Math.ceil(a/b)*b}function Sa(a){switch(a){case "i1":case "i8":return 1;case "i16":return 2;case "i32":return 4;case "i64":return 8;case "float":return 4;
case "double":return 8;default:return"*"===a[a.length-1]?4:"i"===a[0]?(a=parseInt(a.substr(1)),D(0===a%8),a/8):0}}function ia(a){ia.shown||(ia.shown={});ia.shown[a]||(ia.shown[a]=1,d.printErr(a))}function xc(a){for(var b=0;b<v.length;b++)if(!v[b])return v[b]=a,1+b;throw"Finished up all reserved function pointers. Use a higher value for RESERVED_FUNCTION_POINTERS.";}function Ha(a,b){if(a){D(b);qb[b]||(qb[b]={});var c=qb[b];c[a]||(c[a]=1===b.length?function(){return X(b,a)}:2===b.length?function(c){return X(b,
a,[c])}:function(){return X(b,a,Array.prototype.slice.call(arguments))});return c[a]}}function X(a,b,c){return c&&c.length?d["dynCall_"+a].apply(null,[b].concat(c)):d["dynCall_"+a].call(null,b)}function D(a,b){a||G("Assertion failed: "+b)}function yc(a,b){b=b||"i8";"*"===b.charAt(b.length-1)&&(b="i32");switch(b){case "i1":return M[a>>0];case "i8":return M[a>>0];case "i16":return ja[a>>1];case "i32":return p[a>>2];case "i64":return p[a>>2];case "float":return u[a>>2];case "double":return Ua[a>>3];
default:G("invalid type for getValue: "+b)}return null}function Ta(a,b,c,f){if("number"===typeof a){var m=!0;var d=a}else m=!1,d=a.length;var e="string"===typeof b?b:null;c=4==c?f:["function"===typeof ua?ua:I,zc,I,J][void 0===c?2:c](Math.max(d,e?1:b.length));if(m){f=c;D(0==(c&3));for(a=c+(d&-4);f<a;f+=4)p[f>>2]=0;for(a=c+d;f<a;)M[f++>>0]=0;return c}if("i8"===e)return a.subarray||a.slice?F.set(a,c):F.set(new Uint8Array(a),c),c;f=0;for(var K,h;f<d;){var g=a[f];m=e||b[f];if(0===m)f++;else{"i64"==m&&
(m="i32");var P=c+f,k=m;k=k||"i8";"*"===k.charAt(k.length-1)&&(k="i32");switch(k){case "i1":M[P>>0]=g;break;case "i8":M[P>>0]=g;break;case "i16":ja[P>>1]=g;break;case "i32":p[P>>2]=g;break;case "i64":tempI64=[g>>>0,(tempDouble=g,1<=+Vb(tempDouble)?0<tempDouble?(Wb(+Xb(tempDouble/4294967296),4294967295)|0)>>>0:~~+Yb((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)];p[P>>2]=tempI64[0];p[P+4>>2]=tempI64[1];break;case "float":u[P>>2]=g;break;case "double":Ua[P>>3]=g;break;default:G("invalid type for setValue: "+
k)}h!==m&&(K=Sa(m),h=m);f+=K}}return c}function R(a,b){if(0===b||!a)return"";for(var c=0,f,m=0;;){f=F[a+m>>0];c|=f;if(0==f&&!b)break;m++;if(b&&m==b)break}b||(b=m);f="";if(128>c){for(;0<b;)c=String.fromCharCode.apply(String,F.subarray(a,a+Math.min(b,1024))),f=f?f+c:c,a+=1024,b-=1024;return f}return za(F,a)}function za(a,b){for(var c=b;a[c];)++c;if(16<c-b&&a.subarray&&Zb)return Zb.decode(a.subarray(b,c));for(c="";;){var f=a[b++];if(!f)return c;if(f&128){var m=a[b++]&63;if(192==(f&224))c+=String.fromCharCode((f&
31)<<6|m);else{var d=a[b++]&63;if(224==(f&240))f=(f&15)<<12|m<<6|d;else{var e=a[b++]&63;if(240==(f&248))f=(f&7)<<18|m<<12|d<<6|e;else{var K=a[b++]&63;if(248==(f&252))f=(f&3)<<24|m<<18|d<<12|e<<6|K;else{var h=a[b++]&63;f=(f&1)<<30|m<<24|d<<18|e<<12|K<<6|h}}}65536>f?c+=String.fromCharCode(f):(f-=65536,c+=String.fromCharCode(55296|f>>10,56320|f&1023))}}else c+=String.fromCharCode(f)}}function Y(a,b,c,f){if(!(0<f))return 0;var m=c;f=c+f-1;for(var d=0;d<a.length;++d){var e=a.charCodeAt(d);55296<=e&&57343>=
e&&(e=65536+((e&1023)<<10)|a.charCodeAt(++d)&1023);if(127>=e){if(c>=f)break;b[c++]=e}else{if(2047>=e){if(c+1>=f)break;b[c++]=192|e>>6}else{if(65535>=e){if(c+2>=f)break;b[c++]=224|e>>12}else{if(2097151>=e){if(c+3>=f)break;b[c++]=240|e>>18}else{if(67108863>=e){if(c+4>=f)break;b[c++]=248|e>>24}else{if(c+5>=f)break;b[c++]=252|e>>30;b[c++]=128|e>>24&63}b[c++]=128|e>>18&63}b[c++]=128|e>>12&63}b[c++]=128|e>>6&63}b[c++]=128|e&63}}b[c]=0;return c-m}function Va(a){for(var b=0,c=0;c<a.length;++c){var f=a.charCodeAt(c);
55296<=f&&57343>=f&&(f=65536+((f&1023)<<10)|a.charCodeAt(++c)&1023);127>=f?++b:b=2047>=f?b+2:65535>=f?b+3:2097151>=f?b+4:67108863>=f?b+5:b+6}return b}function Cc(a){var b=/__Z[\w\d_]+/g;return a.replace(b,function(a){var b=a;return a===b?a:a+" ["+b+"]"})}function $b(){d.HEAP8=M=new Int8Array(V);d.HEAP16=ja=new Int16Array(V);d.HEAP32=p=new Int32Array(V);d.HEAPU8=F=new Uint8Array(V);d.HEAPU16=Aa=new Uint16Array(V);d.HEAPU32=S=new Uint32Array(V);d.HEAPF32=u=new Float32Array(V);d.HEAPF64=Ua=new Float64Array(V)}
function pb(){G("Cannot enlarge memory arrays. Either (1) compile with -s TOTAL_MEMORY=X with X higher than the current value "+pa+", (2) compile with -s ALLOW_MEMORY_GROWTH=1 which allows increasing the size at runtime, or (3) if you want malloc to return NULL (0) instead of this abort, compile with -s ABORTING_MALLOC=0 ")}function Dc(){pb()}function Ec(){return pa}function Ia(a){for(;0<a.length;){var b=a.shift();if("function"==typeof b)b();else{var c=b.func;"number"===typeof c?void 0===b.arg?
d.dynCall_v(c):d.dynCall_vi(c,b.arg):c(void 0===b.arg?null:b.arg)}}}function rb(){va++;d.monitorRunDependencies&&d.monitorRunDependencies(va)}function Wa(){va--;d.monitorRunDependencies&&d.monitorRunDependencies(va);if(0==va&&(null!==sb&&(clearInterval(sb),sb=null),Ja)){var a=Ja;Ja=null;a()}}function Xa(a){return String.prototype.startsWith?a.startsWith("data:application/octet-stream;base64,"):0===a.indexOf("data:application/octet-stream;base64,")}function Fc(){function a(){try{if(d.wasmBinary)return new Uint8Array(d.wasmBinary);
if(d.readBinary)return d.readBinary(m);throw"on the web, we need the wasm binary to be preloaded and set on Module['wasmBinary']. emcc.py will do that for you when generating HTML (but not JS)";}catch(P){G(P)}}function b(){return d.wasmBinary||!wa&&!Z||"function"!==typeof fetch?new Promise(function(b){b(a())}):fetch(m,{credentials:"same-origin"}).then(function(a){if(!a.ok)throw"failed to load wasm binary file at '"+m+"'";return a.arrayBuffer()})["catch"](function(){return a()})}function c(a,c){function f(a){K=
a.exports;if(K.memory){a=K.memory;var b=d.buffer;a.byteLength<b.byteLength&&d.printErr("the new buffer in mergeMemory is smaller than the previous one. in native wasm, we should grow memory here");b=new Int8Array(b);var c=new Int8Array(a);c.set(b);d.buffer=V=a;$b()}d.asm=K;d.usingWasm=!0;Wa("wasm-instantiate")}function t(a){f(a.instance,a.module)}function n(a){b().then(function(a){return WebAssembly.instantiate(a,e)}).then(a)["catch"](function(a){d.printErr("failed to asynchronously prepare wasm: "+
a);G(a)})}if("object"!==typeof WebAssembly)return d.printErr("no native wasm support detected"),!1;if(!(d.wasmMemory instanceof WebAssembly.Memory))return d.printErr("no native wasm Memory in use"),!1;c.memory=d.wasmMemory;e.global={NaN:NaN,Infinity:Infinity};e["global.Math"]=Math;e.env=c;rb("wasm-instantiate");if(d.instantiateWasm)try{return d.instantiateWasm(e,f)}catch(Gc){return d.printErr("Module.instantiateWasm callback failed with error: "+Gc),!1}d.wasmBinary||"function"!==typeof WebAssembly.instantiateStreaming||
Xa(m)||"function"!==typeof fetch?n(t):WebAssembly.instantiateStreaming(fetch(m,{credentials:"same-origin"}),e).then(t)["catch"](function(a){d.printErr("wasm streaming compile failed: "+a);d.printErr("falling back to ArrayBuffer instantiation");n(t)});return{}}var f="glcore_base.wast",m="glcore_base.wasm",t="glcore_base.temp.asm.js";"function"===typeof d.locateFile&&(Xa(f)||(f=d.locateFile(f)),Xa(m)||(m=d.locateFile(m)),Xa(t)||(t=d.locateFile(t)));var e={global:null,env:null,asm2wasm:{"f64-rem":function(a,
b){return a%b},"debugger":function(){debugger}},parent:d},K=null;d.asmPreload=d.asm;var h=d.reallocBuffer;d.reallocBuffer=function(a){if("asmjs"===g)var b=h(a);else a:{var c=d.usingWasm?65536:16777216;0<a%c&&(a+=c-a%c);c=d.buffer;c=c.byteLength;if(d.usingWasm)try{var f=d.wasmMemory.grow((a-c)/65536);b=-1!==f?d.buffer=d.wasmMemory.buffer:null;break a}catch(wl){b=null;break a}b=void 0}return b};var g="";d.asm=function(a,b,f){if(!b.table){var m=d.wasmTableSize;void 0===m&&(m=1024);var e=d.wasmMaxTableSize;
b.table="object"===typeof WebAssembly&&"function"===typeof WebAssembly.Table?void 0!==e?new WebAssembly.Table({initial:m,maximum:e,element:"anyfunc"}):new WebAssembly.Table({initial:m,element:"anyfunc"}):Array(m);d.wasmTable=b.table}b.memoryBase||(b.memoryBase=d.STATIC_BASE);b.tableBase||(b.tableBase=0);(a=c(a,b,f))||G("no binaryen method succeeded. consider enabling more options, like interpreting, if you want that: https://github.com/kripken/emscripten/wiki/WebAssembly#binaryen-methods");return a}}
function Hc(a){return Ic[a]()}function Ka(){return!!Ka.uncaught_exception}function Jc(a,b,c,f){G("Assertion failed: "+R(a)+", at: "+[b?R(b):"unknown filename",c,f?R(f):"unknown function"])}function Kc(a){return ua(a)}function Lc(){da=!0;throw"Pure virtual function called!";}function Mc(a,b,c){ka.infos[a]={ptr:a,adjusted:a,type:b,destructor:c,refcount:0,caught:!1,rethrown:!1};ka.last=a;"uncaught_exception"in Ka?Ka.uncaught_exception++:Ka.uncaught_exception=1;throw a+" - Exception catching is disabled, this exception cannot be caught. Compile with -s DISABLE_EXCEPTION_CATCHING=0 or DISABLE_EXCEPTION_CATCHING=2 to catch.";
}function Nc(){}function Ba(a){d.___errno_location&&(p[d.___errno_location()>>2]=a);return a}function Oc(){Ba(q.EPERM);return-1}function Pc(a,b){C.varargs=b;try{var c=C.getStreamFromFD();C.get();var f=C.get(),m=C.get(),d=C.get();a=f;e.llseek(c,a,d);p[m>>2]=c.position;c.getdents&&0===a&&0===d&&(c.getdents=null);return 0}catch(n){return"undefined"!==typeof e&&n instanceof e.ErrnoError||G(n),-n.errno}}function Qc(a,b){C.varargs=b;try{var c=C.getStreamFromFD(),f=C.get(),m=C.get();return C.doReadv(c,f,
m)}catch(t){return"undefined"!==typeof e&&t instanceof e.ErrnoError||G(t),-t.errno}}function Rc(a,b){C.varargs=b;try{var c=C.getStreamFromFD(),f=C.get(),m=C.get();return C.doWritev(c,f,m)}catch(t){return"undefined"!==typeof e&&t instanceof e.ErrnoError||G(t),-t.errno}}function Sc(a,b){C.varargs=b;try{var c=C.getStreamFromFD(),f=C.get();switch(f){case 21509:case 21505:return c.tty?0:-q.ENOTTY;case 21510:case 21511:case 21512:case 21506:case 21507:case 21508:return c.tty?0:-q.ENOTTY;case 21519:if(!c.tty)return-q.ENOTTY;
var m=C.get();return p[m>>2]=0;case 21520:return c.tty?-q.EINVAL:-q.ENOTTY;case 21531:return m=C.get(),e.ioctl(c,f,m);case 21523:return c.tty?0:-q.ENOTTY;default:G("bad ioctl syscall "+f)}}catch(t){return"undefined"!==typeof e&&t instanceof e.ErrnoError||G(t),-t.errno}}function Tc(a,b){C.varargs=b;try{var c=C.getStreamFromFD();e.close(c);return 0}catch(f){return"undefined"!==typeof e&&f instanceof e.ErrnoError||G(f),-f.errno}}function Uc(a,b){C.varargs=b;try{var c=C.get(),f=C.get(),m=C.mappings[c];
if(!m)return 0;if(f===m.len){var d=e.getStream(m.fd);C.doMsync(c,d,f,m.flags);C.mappings[c]=null;m.allocated&&ea(m.malloc)}return 0}catch(n){return"undefined"!==typeof e&&n instanceof e.ErrnoError||G(n),-n.errno}}function Vc(){}function ac(a){if(void 0===a)return"_unknown";a=a.replace(/[^a-zA-Z0-9_]/g,"$");var b=a.charCodeAt(0);return 48<=b&&57>=b?"_"+a:a}function Ya(a,b){a=ac(a);return function(){return b.apply(this,arguments)}}function Wc(){for(var a=0,b=5;b<T.length;++b)void 0!==T[b]&&++a;return a}
function Xc(){for(var a=5;a<T.length;++a)if(void 0!==T[a])return T[a];return null}function aa(a){switch(a){case void 0:return 1;case null:return 2;case !0:return 3;case !1:return 4;default:var b=tb.length?tb.pop():T.length;T[b]={refcount:1,value:a};return b}}function Za(a,b){var c=Ya(b,function(a){this.name=b;this.message=a;a=Error(a).stack;void 0!==a&&(this.stack=this.toString()+"\n"+a.replace(/^Error(:[^\n]*)?\n/,""))});c.prototype=Object.create(a.prototype);c.prototype.constructor=c;c.prototype.toString=
function(){return void 0===this.message?this.name:this.name+": "+this.message};return c}function Yc(){for(var a=Array(256),b=0;256>b;++b)a[b]=String.fromCharCode(b);bc=a}function O(a){for(var b="";F[a];)b+=bc[F[a++]];return b}function Zc(){return Object.keys(la).length}function $c(){var a=[],b;for(b in la)la.hasOwnProperty(b)&&a.push(la[b]);return a}function ub(){for(;La.length;){var a=La.pop();a.$$.deleteScheduled=!1;a["delete"]()}}function ad(a){Ma=a;La.length&&Ma&&Ma(ub)}function B(a){throw new Ca(a);
}function vb(a,b){for(void 0===b&&B("ptr should not be undefined");a.baseClass;)b=a.upcast(b),a=a.baseClass;return b}function ma(a){a||B("Cannot use deleted val. handle = "+a);return T[a].value}function cc(a){a=bd(a);var b=O(a);ea(a);return b}function Na(a,b){var c=xa[a];void 0===c&&B(b+" has unknown type "+cc(a));return c}function cd(a,b,c){a=O(a);b=Na(b,"wrapper");c=ma(c);var f=[].slice,d=b.registeredClass,e=d.instancePrototype;b=d.baseClass;var n=b.instancePrototype,K=d.baseClass.constructor;a=
Ya(a,function(){d.baseClass.pureVirtualFunctions.forEach(function(a){if(this[a]===n[a])throw new dc("Pure virtual function "+a+" must be implemented in JavaScript");}.bind(this));Object.defineProperty(this,"__parent",{value:e});this.__construct.apply(this,f.call(arguments))});e.__construct=function(){this===e&&B("Pass correct 'this' to __construct");var a=K.implement.apply(void 0,[this].concat(f.call(arguments))),b=a.$$;a.notifyOnDestruction();b.preservePointerOnDelete=!0;Object.defineProperties(this,
{$$:{value:b}});a=b.ptr;a=vb(d,a);la.hasOwnProperty(a)?B("Tried to register registered instance: "+a):la[a]=this};e.__destruct=function(){this===e&&B("Pass correct 'this' to __destruct");var a=this.$$.ptr;a=vb(d,a);la.hasOwnProperty(a)?delete la[a]:B("Tried to unregister unregistered instance: "+a)};a.prototype=Object.create(e);for(var h in c)a.prototype[h]=c[h];return aa(a)}function Oa(a){for(;a.length;){var b=a.pop(),c=a.pop();c(b)}}function Pa(a){return this.fromWireType(S[a>>2])}function $a(a){throw new ec(a);
}function ba(a,b,c){function f(b){b=c(b);b.length!==a.length&&$a("Mismatched type converter count");for(var f=0;f<a.length;++f)fa(a[f],b[f])}a.forEach(function(a){ab[a]=b});var d=Array(b.length),e=[],n=0;b.forEach(function(a,b){xa.hasOwnProperty(a)?d[b]=xa[a]:(e.push(a),Da.hasOwnProperty(a)||(Da[a]=[]),Da[a].push(function(){d[b]=xa[a];++n;n===e.length&&f(d)}))});0===e.length&&f(d)}function dd(a){var b=bb[a];delete bb[a];var c=b.elements,f=c.length,d=c.map(function(a){return a.getterReturnType}).concat(c.map(function(a){return a.setterArgumentType})),
e=b.rawConstructor,n=b.rawDestructor;ba([a],d,function(a){c.forEach(function(b,c){var d=a[c],m=b.getter,e=b.getterContext,t=a[c+f],n=b.setter,h=b.setterContext;b.read=function(a){return d.fromWireType(m(e,a))};b.write=function(a,b){var c=[];n(h,a,t.toWireType(c,b));Oa(c)}});return[{name:b.name,fromWireType:function(a){for(var b=Array(f),d=0;d<f;++d)b[d]=c[d].read(a);n(a);return b},toWireType:function(a,d){if(f!==d.length)throw new TypeError("Incorrect number of tuple elements for "+b.name+": expected="+
f+", actual="+d.length);for(var m=e(),t=0;t<f;++t)c[t].write(m,d[t]);null!==a&&a.push(n,m);return m},argPackAdvance:8,readValueFromPointer:Pa,destructorFunction:n}]})}function cb(a){switch(a){case 1:return 0;case 2:return 1;case 4:return 2;case 8:return 3;default:throw new TypeError("Unknown type size: "+a);}}function fa(a,b,c){c=c||{};if(!("argPackAdvance"in b))throw new TypeError("registerType registeredInstance requires argPackAdvance");var f=b.name;a||B('type "'+f+'" must have a positive integer typeid pointer');
if(xa.hasOwnProperty(a)){if(c.ignoreDuplicateRegistrations)return;B("Cannot register type '"+f+"' twice")}xa[a]=b;delete ab[a];Da.hasOwnProperty(a)&&(b=Da[a],delete Da[a],b.forEach(function(a){a()}))}function ed(a,b,c,f,d){var m=cb(c);b=O(b);fa(a,{name:b,fromWireType:function(a){return!!a},toWireType:function(a,b){return b?f:d},argPackAdvance:8,readValueFromPointer:function(a){if(1===c)var f=M;else if(2===c)f=ja;else if(4===c)f=p;else throw new TypeError("Unknown boolean type size: "+b);return this.fromWireType(f[a>>
m])},destructorFunction:null})}function fd(a){if(!(this instanceof qa&&a instanceof qa))return!1;var b=this.$$.ptrType.registeredClass,c=this.$$.ptr,f=a.$$.ptrType.registeredClass;for(a=a.$$.ptr;b.baseClass;)c=b.upcast(c),b=b.baseClass;for(;f.baseClass;)a=f.upcast(a),f=f.baseClass;return b===f&&c===a}function wb(a){B(a.$$.ptrType.registeredClass.name+" instance already deleted")}function gd(){this.$$.ptr||wb(this);if(this.$$.preservePointerOnDelete)return this.$$.count.value+=1,this;var a=this.$$;
a={count:a.count,deleteScheduled:a.deleteScheduled,preservePointerOnDelete:a.preservePointerOnDelete,ptr:a.ptr,ptrType:a.ptrType,smartPtr:a.smartPtr,smartPtrType:a.smartPtrType};a=Object.create(Object.getPrototypeOf(this),{$$:{value:a}});a.$$.count.value+=1;a.$$.deleteScheduled=!1;return a}function hd(){this.$$.ptr||wb(this);this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&B("Object already scheduled for deletion");--this.$$.count.value;var a=0===this.$$.count.value;a&&(a=this.$$,a.smartPtr?
a.smartPtrType.rawDestructor(a.smartPtr):a.ptrType.registeredClass.rawDestructor(a.ptr));this.$$.preservePointerOnDelete||(this.$$.smartPtr=void 0,this.$$.ptr=void 0)}function id(){return!this.$$.ptr}function jd(){this.$$.ptr||wb(this);this.$$.deleteScheduled&&!this.$$.preservePointerOnDelete&&B("Object already scheduled for deletion");La.push(this);1===La.length&&Ma&&Ma(ub);this.$$.deleteScheduled=!0;return this}function qa(){}function xb(a,b,c){if(void 0===a[b].overloadTable){var f=a[b];a[b]=function(){a[b].overloadTable.hasOwnProperty(arguments.length)||
B("Function '"+c+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+a[b].overloadTable+")!");return a[b].overloadTable[arguments.length].apply(this,arguments)};a[b].overloadTable=[];a[b].overloadTable[f.argCount]=f}}function yb(a,b,c){d.hasOwnProperty(a)?((void 0===c||void 0!==d[a].overloadTable&&void 0!==d[a].overloadTable[c])&&B("Cannot register public name '"+a+"' twice"),xb(d,a,a),d.hasOwnProperty(c)&&B("Cannot register multiple overloads of a function with the same number of arguments ("+
c+")!"),d[a].overloadTable[c]=b):(d[a]=b,void 0!==c&&(d[a].numArguments=c))}function kd(a,b,c,f,d,e,n,h){this.name=a;this.constructor=b;this.instancePrototype=c;this.rawDestructor=f;this.baseClass=d;this.getActualType=e;this.upcast=n;this.downcast=h;this.pureVirtualFunctions=[]}function db(a,b,c){for(;b!==c;)b.upcast||B("Expected null or instance of "+c.name+", got an instance of "+b.name),a=b.upcast(a),b=b.baseClass;return a}function ld(a,b){if(null===b)return this.isReference&&B("null is not a valid "+
this.name),0;b.$$||B('Cannot pass "'+Ea(b)+'" as a '+this.name);b.$$.ptr||B("Cannot pass deleted object as a pointer of type "+this.name);a=b.$$.ptrType.registeredClass;return b=db(b.$$.ptr,a,this.registeredClass)}function md(a,b){if(null===b){this.isReference&&B("null is not a valid "+this.name);if(this.isSmartPointer){var c=this.rawConstructor();null!==a&&a.push(this.rawDestructor,c);return c}return 0}b.$$||B('Cannot pass "'+Ea(b)+'" as a '+this.name);b.$$.ptr||B("Cannot pass deleted object as a pointer of type "+
this.name);!this.isConst&&b.$$.ptrType.isConst&&B("Cannot convert argument of type "+(b.$$.smartPtrType?b.$$.smartPtrType.name:b.$$.ptrType.name)+" to parameter type "+this.name);c=b.$$.ptrType.registeredClass;c=db(b.$$.ptr,c,this.registeredClass);if(this.isSmartPointer)switch(void 0===b.$$.smartPtr&&B("Passing raw pointer to smart pointer is illegal"),this.sharingPolicy){case 0:b.$$.smartPtrType===this?c=b.$$.smartPtr:B("Cannot convert argument of type "+(b.$$.smartPtrType?b.$$.smartPtrType.name:
b.$$.ptrType.name)+" to parameter type "+this.name);break;case 1:c=b.$$.smartPtr;break;case 2:if(b.$$.smartPtrType===this)c=b.$$.smartPtr;else{var f=b.clone();c=this.rawShare(c,aa(function(){f["delete"]()}));null!==a&&a.push(this.rawDestructor,c)}break;default:B("Unsupporting sharing policy")}return c}function nd(a,b){if(null===b)return this.isReference&&B("null is not a valid "+this.name),0;b.$$||B('Cannot pass "'+Ea(b)+'" as a '+this.name);b.$$.ptr||B("Cannot pass deleted object as a pointer of type "+
this.name);b.$$.ptrType.isConst&&B("Cannot convert argument of type "+b.$$.ptrType.name+" to parameter type "+this.name);a=b.$$.ptrType.registeredClass;return b=db(b.$$.ptr,a,this.registeredClass)}function od(a){this.rawGetPointee&&(a=this.rawGetPointee(a));return a}function pd(a){this.rawDestructor&&this.rawDestructor(a)}function qd(a){if(null!==a)a["delete"]()}function fc(a,b,c){if(b===c)return a;if(void 0===c.baseClass)return null;a=fc(a,b,c.baseClass);return null===a?null:c.downcast(a)}function rd(a,
b){b=vb(a,b);return la[b]}function eb(a,b){b.ptrType&&b.ptr||$a("makeClassHandle requires ptr and ptrType");var c=!!b.smartPtrType,f=!!b.smartPtr;c!==f&&$a("Both smartPtrType and smartPtr must be specified");b.count={value:1};return Object.create(a,{$$:{value:b}})}function sd(a){function b(){return this.isSmartPointer?eb(this.registeredClass.instancePrototype,{ptrType:this.pointeeType,ptr:c,smartPtrType:this,smartPtr:a}):eb(this.registeredClass.instancePrototype,{ptrType:this,ptr:a})}var c=this.getPointee(a);
if(!c)return this.destructor(a),null;var f=rd(this.registeredClass,c);if(void 0!==f){if(0===f.$$.count.value)return f.$$.ptr=c,f.$$.smartPtr=a,f.clone();f=f.clone();this.destructor(a);return f}f=this.registeredClass.getActualType(c);f=gc[f];if(!f)return b.call(this);f=this.isConst?f.constPointerType:f.pointerType;var d=fc(c,this.registeredClass,f.registeredClass);return null===d?b.call(this):this.isSmartPointer?eb(f.registeredClass.instancePrototype,{ptrType:f,ptr:d,smartPtrType:this,smartPtr:a}):
eb(f.registeredClass.instancePrototype,{ptrType:f,ptr:d})}function na(a,b,c,f,d,e,n,h,g,k,l){this.name=a;this.registeredClass=b;this.isReference=c;this.isConst=f;this.isSmartPointer=d;this.pointeeType=e;this.sharingPolicy=n;this.rawGetPointee=h;this.rawConstructor=g;this.rawShare=k;this.rawDestructor=l;d||void 0!==b.baseClass?this.toWireType=md:(this.toWireType=f?ld:nd,this.destructorFunction=null)}function hc(a,b,c){d.hasOwnProperty(a)||$a("Replacing nonexistant public symbol");void 0!==d[a].overloadTable&&
void 0!==c?d[a].overloadTable[c]=b:(d[a]=b,d[a].argCount=c)}function U(a,b){function c(a){return function(){var c=Array(arguments.length+1);c[0]=b;for(var f=0;f<arguments.length;f++)c[f+1]=arguments[f];return a.apply(null,c)}}a=O(a);if(void 0!==d["FUNCTION_TABLE_"+a])var f=d["FUNCTION_TABLE_"+a][b];else"undefined"!==typeof FUNCTION_TABLE?f=FUNCTION_TABLE[b]:(f=d.asm["dynCall_"+a],void 0===f&&(f=d.asm["dynCall_"+a.replace(/f/g,"d")],void 0===f&&B("No dynCall invoker for signature: "+a)),f=c(f));"function"!==
typeof f&&B("unknown function pointer with signature "+a+": "+b);return f}function ya(a,b){function c(a){d[a]||xa[a]||(ab[a]?ab[a].forEach(c):(f.push(a),d[a]=!0))}var f=[],d={};b.forEach(c);throw new ic(a+": "+f.map(cc).join([", "]));}function td(a,b,c,f,d,e,n,h,g,k,l,p,q){l=O(l);e=U(d,e);h&&(h=U(n,h));k&&(k=U(g,k));q=U(p,q);var m=ac(l);yb(m,function(){ya("Cannot construct "+l+" due to unbound types",[f])});ba([a,b,c],f?[f]:[],function(b){b=b[0];if(f){var c=b.registeredClass;var d=c.instancePrototype}else d=
qa.prototype;b=Ya(m,function(){if(Object.getPrototypeOf(this)!==t)throw new Ca("Use 'new' to construct "+l);if(void 0===n.constructor_body)throw new Ca(l+" has no accessible constructor");var a=n.constructor_body[arguments.length];if(void 0===a)throw new Ca("Tried to invoke ctor of "+l+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(n.constructor_body).toString()+") parameters instead!");return a.apply(this,arguments)});var t=Object.create(d,{constructor:{value:b}});
b.prototype=t;var n=new kd(l,b,t,q,c,e,h,k);c=new na(l,n,!0,!1,!1);d=new na(l+"*",n,!1,!1,!1);var g=new na(l+" const*",n,!1,!0,!1);gc[a]={pointerType:d,constPointerType:g};hc(m,b);return[c,d,g]})}function zb(a,b,c,f,d){var m=b.length;2>m&&B("argTypes array size mismatch! Must at least get return value and 'this' types!");var e=null!==b[1]&&null!==c,h=!1;for(c=1;c<b.length;++c)if(null!==b[c]&&void 0===b[c].destructorFunction){h=!0;break}var g="void"!==b[0].name,k=Array(m-2);return function(){arguments.length!==
m-2&&B("function "+a+" called with "+arguments.length+" arguments, expected "+(m-2)+" args!");var c=h?[]:null,t;e&&(t=b[1].toWireType(c,this));for(var n=0;n<m-2;++n)k[n]=b[n+2].toWireType(c,arguments[n]);n=e?[d,t]:[d];var K=f.apply(null,n.concat(k));if(h)Oa(c);else for(n=e?1:2;n<b.length;n++)c=1===n?t:k[n-2],null!==b[n].destructorFunction&&b[n].destructorFunction(c);if(g)return b[0].fromWireType(K)}}function fb(a,b){for(var c=[],f=0;f<a;f++)c.push(p[(b>>2)+f]);return c}function ud(a,b,c,f,d,e,n){var m=
fb(c,f);b=O(b);e=U(d,e);ba([],[a],function(a){function f(){ya("Cannot call "+d+" due to unbound types",m)}a=a[0];var d=a.name+"."+b,t=a.registeredClass.constructor;void 0===t[b]?(f.argCount=c-1,t[b]=f):(xb(t,b,d),t[b].overloadTable[c-1]=f);ba([],m,function(a){a=[a[0],null].concat(a.slice(1));a=zb(d,a,null,e,n);void 0===t[b].overloadTable?t[b]=a:t[b].overloadTable[c-1]=a;return[]});return[]})}function vd(a,b,c,f,d,e){var m=fb(b,c);d=U(f,d);ba([],[a],function(a){a=a[0];var c="constructor "+a.name;void 0===
a.registeredClass.constructor_body&&(a.registeredClass.constructor_body=[]);if(void 0!==a.registeredClass.constructor_body[b-1])throw new Ca("Cannot register multiple constructors with identical number of parameters ("+(b-1)+") for class '"+a.name+"'! Overload resolution is currently only performed using the parameter count, not actual type info!");a.registeredClass.constructor_body[b-1]=function(){ya("Cannot construct "+a.name+" due to unbound types",m)};ba([],m,function(f){a.registeredClass.constructor_body[b-
1]=function(){arguments.length!==b-1&&B(c+" called with "+arguments.length+" arguments, expected "+(b-1));var a=[],m=Array(b);m[0]=e;for(var t=1;t<b;++t)m[t]=f[t].toWireType(a,arguments[t-1]);m=d.apply(null,m);Oa(a);return f[0].fromWireType(m)};return[]});return[]})}function wd(a,b,c,f,d,e,n,h){var m=fb(c,f);b=O(b);e=U(d,e);ba([],[a],function(a){function f(){ya("Cannot call "+d+" due to unbound types",m)}a=a[0];var d=a.name+"."+b;h&&a.registeredClass.pureVirtualFunctions.push(b);var t=a.registeredClass.instancePrototype,
g=t[b];void 0===g||void 0===g.overloadTable&&g.className!==a.name&&g.argCount===c-2?(f.argCount=c-2,f.className=a.name,t[b]=f):(xb(t,b,d),t[b].overloadTable[c-2]=f);ba([],m,function(f){f=zb(d,f,a,e,n);void 0===t[b].overloadTable?(f.argCount=c-2,t[b]=f):t[b].overloadTable[c-2]=f;return[]});return[]})}function jc(a,b,c){a instanceof Object||B(c+' with invalid "this": '+a);a instanceof b.registeredClass.constructor||B(c+' incompatible with "this" of type '+a.constructor.name);a.$$.ptr||B("cannot call emscripten binding method "+
c+" on deleted object");return db(a.$$.ptr,a.$$.ptrType.registeredClass,b.registeredClass)}function xd(a,b,c,f,d,e,n,h,g,k){b=O(b);d=U(f,d);ba([],[a],function(a){a=a[0];var f=a.name+"."+b,m={get:function(){ya("Cannot access "+f+" due to unbound types",[c,n])},enumerable:!0,configurable:!0};m.set=g?function(){ya("Cannot access "+f+" due to unbound types",[c,n])}:function(){B(f+" is a read-only property")};Object.defineProperty(a.registeredClass.instancePrototype,b,m);ba([],g?[c,n]:[c],function(c){var m=
c[0],t={get:function(){var b=jc(this,a,f+" getter");return m.fromWireType(d(e,b))},enumerable:!0};if(g){g=U(h,g);var n=c[1];t.set=function(b){var c=jc(this,a,f+" setter"),d=[];g(k,c,n.toWireType(d,b));Oa(d)}}Object.defineProperty(a.registeredClass.instancePrototype,b,t);return[]});return[]})}function Ab(a){4<a&&0===--T[a].refcount&&(T[a]=void 0,tb.push(a))}function yd(a,b){b=O(b);fa(a,{name:b,fromWireType:function(a){var b=T[a].value;Ab(a);return b},toWireType:function(a,b){return aa(b)},argPackAdvance:8,
readValueFromPointer:Pa,destructorFunction:null})}function zd(a,b,c){switch(b){case 0:return function(a){var b=c?M:F;return this.fromWireType(b[a])};case 1:return function(a){var b=c?ja:Aa;return this.fromWireType(b[a>>1])};case 2:return function(a){var b=c?p:S;return this.fromWireType(b[a>>2])};default:throw new TypeError("Unknown integer type: "+a);}}function Ad(a,b,c,f){function d(){}c=cb(c);b=O(b);d.values={};fa(a,{name:b,constructor:d,fromWireType:function(a){return this.constructor.values[a]},
toWireType:function(a,b){return b.value},argPackAdvance:8,readValueFromPointer:zd(b,c,f),destructorFunction:null});yb(b,d)}function Bd(a,b,c){var f=Na(a,"enum");b=O(b);a=f.constructor;f=Object.create(f.constructor.prototype,{value:{value:c},constructor:{value:Ya(f.name+"_"+b,function(){})}});a.values[c]=f;a[b]=f}function Ea(a){if(null===a)return"null";var b=typeof a;return"object"===b||"array"===b||"function"===b?a.toString():""+a}function Cd(a,b){switch(b){case 2:return function(a){return this.fromWireType(u[a>>
2])};case 3:return function(a){return this.fromWireType(Ua[a>>3])};default:throw new TypeError("Unknown float type: "+a);}}function Dd(a,b,c){c=cb(c);b=O(b);fa(a,{name:b,fromWireType:function(a){return a},toWireType:function(a,b){if("number"!==typeof b&&"boolean"!==typeof b)throw new TypeError('Cannot convert "'+Ea(b)+'" to '+this.name);return b},argPackAdvance:8,readValueFromPointer:Cd(b,c),destructorFunction:null})}function Ed(a,b,c,f,d,e){var m=fb(b,c);a=O(a);d=U(f,d);yb(a,function(){ya("Cannot call "+
a+" due to unbound types",m)},b-1);ba([],m,function(c){c=[c[0],null].concat(c.slice(1));hc(a,zb(a,c,null,d,e),b-1);return[]})}function Fd(a,b,c){switch(b){case 0:return c?function(a){return M[a]}:function(a){return F[a]};case 1:return c?function(a){return ja[a>>1]}:function(a){return Aa[a>>1]};case 2:return c?function(a){return p[a>>2]}:function(a){return S[a>>2]};default:throw new TypeError("Unknown integer type: "+a);}}function Gd(a,b,c,f,d){b=O(b);-1===d&&(d=4294967295);var m=cb(c),e=function(a){return a};
if(0===f){var h=32-8*c;e=function(a){return a<<h>>>h}}var g=-1!=b.indexOf("unsigned");fa(a,{name:b,fromWireType:e,toWireType:function(a,c){if("number"!==typeof c&&"boolean"!==typeof c)throw new TypeError('Cannot convert "'+Ea(c)+'" to '+this.name);if(c<f||c>d)throw new TypeError('Passing a number "'+Ea(c)+'" from JS side to C/C++ side to an argument of type "'+b+'", which is outside the valid range ['+f+", "+d+"]!");return g?c>>>0:c|0},argPackAdvance:8,readValueFromPointer:Fd(b,m,0!==f),destructorFunction:null})}
function Hd(a,b,c){function f(a){a>>=2;var b=S,c=b[a];a=b[a+1];return new e(b.buffer,a,c)}var d=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array],e=d[b];c=O(c);fa(a,{name:c,fromWireType:f,argPackAdvance:8,readValueFromPointer:f},{ignoreDuplicateRegistrations:!0})}function Id(a,b){b=O(b);fa(a,{name:b,fromWireType:function(a){for(var b=S[a>>2],c=Array(b),d=0;d<b;++d)c[d]=String.fromCharCode(F[a+4+d]);ea(a);return c.join("")},toWireType:function(a,b){function c(a,
b){return a[b]}function f(a,b){return a.charCodeAt(b)}b instanceof ArrayBuffer&&(b=new Uint8Array(b));var d;b instanceof Uint8Array?d=c:b instanceof Uint8ClampedArray?d=c:b instanceof Int8Array?d=c:"string"===typeof b?d=f:B("Cannot pass non-string to std::string");var e=b.length,h=ua(4+e);S[h>>2]=e;for(var g=0;g<e;++g){var k=d(b,g);255<k&&(ea(h),B("String has UTF-16 code units that do not fit in 8 bits"));F[h+4+g]=k}null!==a&&a.push(ea,h);return h},argPackAdvance:8,readValueFromPointer:Pa,destructorFunction:function(a){ea(a)}})}
function Jd(a,b,c){c=O(c);if(2===b){var f=function(){return Aa};var d=1}else 4===b&&(f=function(){return S},d=2);fa(a,{name:c,fromWireType:function(a){for(var b=f(),c=S[a>>2],m=Array(c),e=a+4>>d,t=0;t<c;++t)m[t]=String.fromCharCode(b[e+t]);ea(a);return m.join("")},toWireType:function(a,c){var m=f(),e=c.length,t=ua(4+e*b);S[t>>2]=e;for(var n=t+4>>d,h=0;h<e;++h)m[n+h]=c.charCodeAt(h);null!==a&&a.push(ea,t);return t},argPackAdvance:8,readValueFromPointer:Pa,destructorFunction:function(a){ea(a)}})}function Kd(a,
b,c,f,d,e){bb[a]={name:O(b),rawConstructor:U(c,f),rawDestructor:U(d,e),elements:[]}}function Ld(a,b,c,f,d,e,n,h,g){bb[a].elements.push({getterReturnType:b,getter:U(c,f),getterContext:d,setterArgumentType:e,setter:U(n,h),setterContext:g})}function Md(a,b){b=O(b);fa(a,{isVoid:!0,name:b,argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})}function Nd(a,b,c){a=ma(a);b=Na(b,"emval::as");var f=[],d=aa(f);p[c>>2]=d;return b.toWireType(f,a)}function Od(a){var b=[];p[a>>2]=aa(b);return b}function gb(a){var b=
Pd[a];return void 0===b?O(a):b}function Qd(a,b,c,f,d){a=hb[a];b=ma(b);c=gb(c);return a(b,c,Od(f),d)}function Rd(a,b,c,f){a=hb[a];b=ma(b);c=gb(c);a(b,c,null,f)}function kc(){function a(a){a.$$$embind_global$$$=a;var b="object"===typeof $$$embind_global$$$&&a.$$$embind_global$$$===a;b||delete a.$$$embind_global$$$;return b}if("object"===typeof $$$embind_global$$$)return $$$embind_global$$$;"object"===typeof global&&a(global)?$$$embind_global$$$=global:"object"===typeof g&&a(g)&&($$$embind_global$$$=
g);if("object"===typeof $$$embind_global$$$)return $$$embind_global$$$;throw Error("unable to get global object.");}function Sd(a){if(0===a)return aa(kc());a=gb(a);return aa(kc()[a])}function Td(a){var b=hb.length;hb.push(a);return b}function Ud(a,b){for(var c=Array(a),f=0;f<a;++f)c[f]=Na(p[(b>>2)+f],"parameter "+f);return c}function Vd(a,b){var c=Ud(a,b),f=c[0],d=Array(a-1);b=function(b,m,e,h){for(var t=0,n=0;n<a-1;++n)d[n]=c[n+1].readValueFromPointer(h+t),t+=c[n+1].argPackAdvance;b=b[m].apply(b,
d);for(n=0;n<a-1;++n)c[n+1].deleteObject&&c[n+1].deleteObject(d[n]);if(!f.isVoid)return f.toWireType(e,b)};return Td(b)}function Wd(a,b){a=ma(a);b=ma(b);return aa(a[b])}function Xd(a){4<a&&(T[a].refcount+=1)}function Yd(){return aa([])}function Zd(a){return aa(gb(a))}function $d(a){var b=T[a].value;Oa(b);Ab(a)}function ae(a,b,c){a=ma(a);b=ma(b);c=ma(c);a[b]=c}function be(a,b){a=Na(a,"_emval_take_value");a=a.readValueFromPointer(b);return aa(a)}function ce(){d.abort()}function ib(){G()}function de(){return ca||
"undefined"!==typeof dateNow||(wa||Z)&&self.performance&&self.performance.now}function ee(a,b){if(0===a)a=Date.now();else if(1===a&&de())a=ib();else return Ba(q.EINVAL),-1;p[b>>2]=a/1E3|0;p[b+4>>2]=a%1E3*1E6|0;return 0}function Bb(a,b){l.mainLoop.timingMode=a;l.mainLoop.timingValue=b;if(!l.mainLoop.func)return 1;if(0==a)l.mainLoop.scheduler=function(){var a=Math.max(0,l.mainLoop.tickStartTime+b-ib())|0;setTimeout(l.mainLoop.runner,a)},l.mainLoop.method="timeout";else if(1==a)l.mainLoop.scheduler=
function(){l.requestAnimationFrame(l.mainLoop.runner)},l.mainLoop.method="rAF";else if(2==a){if("undefined"===typeof setImmediate){a=function(a){if("setimmediate"===a.data||"setimmediate"===a.data.target)a.stopPropagation(),c.shift()()};var c=[];addEventListener("message",a,!0);setImmediate=function(a){c.push(a);Z?(void 0===d.setImmediates&&(d.setImmediates=[]),d.setImmediates.push(a),postMessage({target:"setimmediate"})):postMessage("setimmediate","*")}}l.mainLoop.scheduler=function(){setImmediate(l.mainLoop.runner)};
l.mainLoop.method="immediate"}return 0}function fe(a,b,c,f,m){d.noExitRuntime=!0;D(!l.mainLoop.func,"emscripten_set_main_loop: there can only be one main loop function at once: call emscripten_cancel_main_loop to cancel the previous one before setting a new one with different parameters.");l.mainLoop.func=a;l.mainLoop.arg=f;var e="undefined"!==typeof f?function(){d.dynCall_vi(a,f)}:function(){d.dynCall_v(a)};var n=l.mainLoop.currentlyRunningMainloop;l.mainLoop.runner=function(){if(!da)if(0<l.mainLoop.queue.length){var a=
Date.now(),b=l.mainLoop.queue.shift();b.func(b.arg);if(l.mainLoop.remainingBlockers){var c=l.mainLoop.remainingBlockers,f=0==c%1?c-1:Math.floor(c);b.counted?l.mainLoop.remainingBlockers=f:(f+=.5,l.mainLoop.remainingBlockers=(8*c+f)/9)}console.log('main loop blocker "'+b.name+'" took '+(Date.now()-a)+" ms");l.mainLoop.updateStatus();n<l.mainLoop.currentlyRunningMainloop||setTimeout(l.mainLoop.runner,0)}else n<l.mainLoop.currentlyRunningMainloop||(l.mainLoop.currentFrameNumber=l.mainLoop.currentFrameNumber+
1|0,1==l.mainLoop.timingMode&&1<l.mainLoop.timingValue&&0!=l.mainLoop.currentFrameNumber%l.mainLoop.timingValue?l.mainLoop.scheduler():(0==l.mainLoop.timingMode&&(l.mainLoop.tickStartTime=ib()),"timeout"===l.mainLoop.method&&d.ctx&&(d.printErr("Looks like you are rendering without using requestAnimationFrame for the main loop. You should use 0 for the frame rate in emscripten_set_main_loop in order to use requestAnimationFrame, as that can greatly improve your frame rates!"),l.mainLoop.method=""),
l.mainLoop.runIter(e),n<l.mainLoop.currentlyRunningMainloop||("object"===typeof SDL&&SDL.audio&&SDL.audio.queueNewAudioData&&SDL.audio.queueNewAudioData(),l.mainLoop.scheduler())))};m||(b&&0<b?Bb(0,1E3/b):Bb(1,1),l.mainLoop.scheduler());if(c)throw"SimulateInfiniteLoop";}function ge(a,b,c,f,d){return y.chooseConfig(a,b,c,f,d)}function he(a){w.initDisplayMode=a}function ie(){var a={antialias:0!=(w.initDisplayMode&128),depth:0!=(w.initDisplayMode&16),stencil:0!=(w.initDisplayMode&32),alpha:0!=(w.initDisplayMode&
8)};d.ctx=l.createContext(d.canvas,!0,!0,a);return d.ctx?1:0}function je(a,b,c,f){if(62E3!=a)return y.setErrorCode(12296),0;for(a=1;;){b=p[f>>2];if(12440==b)a=p[f+4>>2];else if(12344==b)break;else return y.setErrorCode(12292),0;f+=8}if(2!=a)return y.setErrorCode(12293),0;he(178);y.windowID=ie();if(0!=y.windowID)return y.setErrorCode(12288),62004;y.setErrorCode(12297);return 0}function ke(a,b){if(62E3!=a)return y.setErrorCode(12296),0;if(62002!=b)return y.setErrorCode(12293),0;y.setErrorCode(12288);
return 62006}function le(a,b){if(62E3!=a)return y.setErrorCode(12296),0;if(62004!=b)return y.setErrorCode(12294),0;y.setErrorCode(12288);return 1}function me(a,b){if(62E3!=a)return y.setErrorCode(12296),0;if(62006!=b)return y.setErrorCode(12301),1;y.currentReadSurface==b&&(y.currentReadSurface=0);y.currentDrawSurface==b&&(y.currentDrawSurface=0);y.setErrorCode(12288);return 1}function ne(){return y.currentContext}function oe(){return y.currentContext?62E3:0}function pe(a){if(12378==a)return y.currentReadSurface;
if(12377==a)return y.currentDrawSurface;y.setErrorCode(12300);return 0}function qe(){y.setErrorCode(12288);return 62E3}function re(a){return se(a)}function te(a,b,c){if(62E3==a)return b&&(p[b>>2]=1),c&&(p[c>>2]=4),y.defaultDisplayInitialized=!0,y.setErrorCode(12288),1;y.setErrorCode(12296);return 0}function ue(a,b,c,f){if(62E3!=a)return y.setErrorCode(12296),0;if(0!=f&&62004!=f)return y.setErrorCode(12294),0;if(0!=c&&62006!=c||0!=b&&62006!=b)return y.setErrorCode(12301),0;y.currentContext=f;y.currentDrawSurface=
b;y.currentReadSurface=c;y.setErrorCode(12288);return 1}function ve(){y.currentContext=0;y.currentReadSurface=0;y.currentDrawSurface=0;y.setErrorCode(12288);return 1}function we(){if(y.defaultDisplayInitialized)if(d.ctx)if(d.ctx.isContextLost())y.setErrorCode(12302);else return y.setErrorCode(12288),1;else y.setErrorCode(12290);else y.setErrorCode(12289);return 0}function xe(a,b,c){function f(){Ha(a,"vi")(b)}d.noExitRuntime=!0;0<=c?l.safeSetTimeout(f,c):l.safeRequestAnimationFrame(f)}function ye(a){k.activeTexture(a)}
function ze(a,b){k.attachShader(h.programs[a],h.shaders[b])}function Ae(a,b,c){c=R(c);k.bindAttribLocation(h.programs[a],b,c)}function Be(a,b){var c=b?h.buffers[b]:null;35051==a?k.currentPixelPackBufferBinding=b:35052==a&&(k.currentPixelUnpackBufferBinding=b);k.bindBuffer(a,c)}function Ce(a,b){k.bindFramebuffer(a,b?h.framebuffers[b]:null)}function De(){d.printErr("missing function: emscripten_glBindProgramARB");G(-1)}function Ee(a,b){k.bindRenderbuffer(a,b?h.renderbuffers[b]:null)}function Fe(a,b){k.bindTexture(a,
b?h.textures[b]:null)}function Ge(a){k.bindVertexArray(h.vaos[a])}function He(a,b,c,f){k.blendColor(a,b,c,f)}function Ie(a){k.blendEquation(a)}function Je(a,b){k.blendEquationSeparate(a,b)}function Ke(a,b){k.blendFunc(a,b)}function Le(a,b,c,f){k.blendFuncSeparate(a,b,c,f)}function Me(a,b,c,f,d,e,n,h,g,l){k.blitFramebuffer(a,b,c,f,d,e,n,h,g,l)}function Ne(a,b,c,f){c?h.currentContext.supportsWebGL2EntryPoints?k.bufferData(a,F,f,c,b):k.bufferData(a,F.subarray(c,c+b),f):k.bufferData(a,b,f)}function Oe(a,
b,c,f){h.currentContext.supportsWebGL2EntryPoints?k.bufferSubData(a,b,F,f,c):k.bufferSubData(a,b,F.subarray(f,f+c))}function Pe(a){return k.checkFramebufferStatus(a)}function Qe(a){k.clear(a)}function Re(a,b,c,f){k.clearColor(a,b,c,f)}function Se(a){k.clearDepth(a)}function Te(a){k.clearDepth(a)}function Ue(a){k.clearStencil(a)}function Ve(){d.printErr("missing function: emscripten_glClientActiveTexture");G(-1)}function We(a,b,c,f){k.colorMask(!!a,!!b,!!c,!!f)}function Xe(){d.printErr("missing function: emscripten_glColorPointer");
G(-1)}function Ye(a){k.compileShader(h.shaders[a])}function Ze(a,b,c,f,d,e,n,g){h.currentContext.supportsWebGL2EntryPoints?k.compressedTexImage2D(a,b,c,f,d,e,F,g,n):k.compressedTexImage2D(a,b,c,f,d,e,g?F.subarray(g,g+n):null)}function $e(a,b,c,f,d,e,n,g,l){h.currentContext.supportsWebGL2EntryPoints?k.compressedTexSubImage2D(a,b,c,f,d,e,n,F,l,g):k.compressedTexSubImage2D(a,b,c,f,d,e,n,l?F.subarray(l,l+g):null)}function af(a,b,c,f,d,e,n,h){k.copyTexImage2D(a,b,c,f,d,e,n,h)}function bf(a,b,c,f,d,e,n,
h){k.copyTexSubImage2D(a,b,c,f,d,e,n,h)}function cf(){var a=h.getNewId(h.programs),b=k.createProgram();b.name=a;h.programs[a]=b;return a}function df(a){var b=h.getNewId(h.shaders);h.shaders[b]=k.createShader(a);return b}function ef(a){k.cullFace(a)}function ff(a,b){for(var c=0;c<a;c++){var f=p[b+4*c>>2],d=h.buffers[f];d&&(k.deleteBuffer(d),d.name=0,h.buffers[f]=null,f==h.currArrayBuffer&&(h.currArrayBuffer=0),f==h.currElementArrayBuffer&&(h.currElementArrayBuffer=0))}}function gf(a,b){for(var c=0;c<
a;++c){var f=p[b+4*c>>2],d=h.framebuffers[f];d&&(k.deleteFramebuffer(d),d.name=0,h.framebuffers[f]=null)}}function hf(){d.printErr("missing function: emscripten_glDeleteObjectARB");G(-1)}function jf(a){if(a){var b=h.programs[a];b?(k.deleteProgram(b),b.name=0,h.programs[a]=null,h.programInfos[a]=null):h.recordError(1281)}}function kf(a,b){for(var c=0;c<a;c++){var f=p[b+4*c>>2],d=h.renderbuffers[f];d&&(k.deleteRenderbuffer(d),d.name=0,h.renderbuffers[f]=null)}}function lf(a){if(a){var b=h.shaders[a];
b?(k.deleteShader(b),h.shaders[a]=null):h.recordError(1281)}}function mf(a,b){for(var c=0;c<a;c++){var f=p[b+4*c>>2],d=h.textures[f];d&&(k.deleteTexture(d),d.name=0,h.textures[f]=null)}}function nf(a,b){for(var c=0;c<a;c++){var f=p[b+4*c>>2];k.deleteVertexArray(h.vaos[f]);h.vaos[f]=null}}function of(a){k.depthFunc(a)}function pf(a){k.depthMask(!!a)}function qf(a,b){k.depthRange(a,b)}function rf(a,b){k.depthRange(a,b)}function sf(a,b){k.detachShader(h.programs[a],h.shaders[b])}function tf(a){k.disable(a)}
function uf(a){k.disableVertexAttribArray(a)}function vf(a,b,c){k.drawArrays(a,b,c)}function wf(a,b,c,f){k.drawArraysInstanced(a,b,c,f)}function xf(a,b){for(var c=h.tempFixedLengthArray[a],f=0;f<a;f++)c[f]=p[b+4*f>>2];k.drawBuffers(c)}function lc(a,b,c,f){k.drawElements(a,b,c,f)}function yf(a,b,c,f,d){k.drawElementsInstanced(a,b,c,f,d)}function zf(a,b,c,f,d,e){lc(a,f,d,e);k.drawElements(a,f,d,e)}function Af(a){k.enable(a)}function Bf(){d.printErr("missing function: emscripten_glEnableClientState");
G(-1)}function Cf(a){k.enableVertexAttribArray(a)}function Df(){k.finish()}function Ef(){k.flush()}function Ff(a,b,c,f){k.framebufferRenderbuffer(a,b,c,h.renderbuffers[f])}function Gf(a,b,c,f,d){k.framebufferTexture2D(a,b,c,h.textures[f],d)}function Hf(a){k.frontFace(a)}function If(){d.printErr("missing function: emscripten_glFrustum");G(-1)}function Jf(a,b){for(var c=0;c<a;c++){var f=k.createBuffer();if(!f){for(h.recordError(1282);c<a;)p[b+4*c++>>2]=0;break}var d=h.getNewId(h.buffers);f.name=d;h.buffers[d]=
f;p[b+4*c>>2]=d}}function Kf(a,b){for(var c=0;c<a;++c){var f=k.createFramebuffer();if(!f){for(h.recordError(1282);c<a;)p[b+4*c++>>2]=0;break}var d=h.getNewId(h.framebuffers);f.name=d;h.framebuffers[d]=f;p[b+4*c>>2]=d}}function Lf(a,b){for(var c=0;c<a;c++){var f=k.createRenderbuffer();if(!f){for(h.recordError(1282);c<a;)p[b+4*c++>>2]=0;break}var d=h.getNewId(h.renderbuffers);f.name=d;h.renderbuffers[d]=f;p[b+4*c>>2]=d}}function Mf(a,b){for(var c=0;c<a;c++){var f=k.createTexture();if(!f){for(h.recordError(1282);c<
a;)p[b+4*c++>>2]=0;break}var d=h.getNewId(h.textures);f.name=d;h.textures[d]=f;p[b+4*c>>2]=d}}function Nf(a,b){for(var c=0;c<a;c++){var f=k.createVertexArray();if(!f){for(h.recordError(1282);c<a;)p[b+4*c++>>2]=0;break}var d=h.getNewId(h.vaos);f.name=d;h.vaos[d]=f;p[b+4*c>>2]=d}}function Of(a){k.generateMipmap(a)}function Pf(a,b,c,f,d,e,n){a=h.programs[a];if(a=k.getActiveAttrib(a,b))0<c&&n?(c=Y(a.name,F,n,c),f&&(p[f>>2]=c)):f&&(p[f>>2]=0),d&&(p[d>>2]=a.size),e&&(p[e>>2]=a.type)}function Qf(a,b,c,f,
d,e,n){a=h.programs[a];if(a=k.getActiveUniform(a,b))0<c&&n?(c=Y(a.name,F,n,c),f&&(p[f>>2]=c)):f&&(p[f>>2]=0),d&&(p[d>>2]=a.size),e&&(p[e>>2]=a.type)}function Rf(a,b,c,f){a=k.getAttachedShaders(h.programs[a]);var d=a.length;d>b&&(d=b);p[c>>2]=d;for(b=0;b<d;++b)c=h.shaders.indexOf(a[b]),p[f+4*b>>2]=c}function Sf(a,b){a=h.programs[a];b=R(b);return k.getAttribLocation(a,b)}function Cb(a,b,c){if(b){var f=void 0;switch(a){case 36346:f=1;break;case 36344:"Integer"!==c&&"Integer64"!==c&&h.recordError(1280);
return;case 34814:case 36345:f=0;break;case 34466:f=k.getParameter(34467);f=f.length;break;case 33309:if(2>k.canvas.GLctxObject.version){h.recordError(1282);return}f=k.getSupportedExtensions();f=2*f.length;break;case 33307:case 33308:if(2>k.canvas.GLctxObject.version){h.recordError(1280);return}f=33307==a?3:0}if(void 0===f)switch(f=k.getParameter(a),typeof f){case "number":break;case "boolean":f=f?1:0;break;case "string":h.recordError(1280);return;case "object":if(null===f)switch(a){case 34964:case 35725:case 34965:case 36006:case 36007:case 32873:case 34229:case 35097:case 36389:case 34068:f=
0;break;default:h.recordError(1280);return}else{if(f instanceof Float32Array||f instanceof Uint32Array||f instanceof Int32Array||f instanceof Array){for(a=0;a<f.length;++a)switch(c){case "Integer":p[b+4*a>>2]=f[a];break;case "Float":u[b+4*a>>2]=f[a];break;case "Boolean":M[b+a>>0]=f[a]?1:0;break;default:throw"internal glGet error, bad type: "+c;}return}if(f instanceof WebGLBuffer||f instanceof WebGLProgram||f instanceof WebGLFramebuffer||f instanceof WebGLRenderbuffer||f instanceof WebGLQuery||f instanceof
WebGLSampler||f instanceof WebGLSync||f instanceof WebGLTransformFeedback||f instanceof WebGLVertexArrayObject||f instanceof WebGLTexture)f=f.name|0;else{h.recordError(1280);return}}break;default:h.recordError(1280);return}switch(c){case "Integer64":tempI64=[f>>>0,(tempDouble=f,1<=+Vb(tempDouble)?0<tempDouble?(Wb(+Xb(tempDouble/4294967296),4294967295)|0)>>>0:~~+Yb((tempDouble-+(~~tempDouble>>>0))/4294967296)>>>0:0)];p[b>>2]=tempI64[0];p[b+4>>2]=tempI64[1];break;case "Integer":p[b>>2]=f;break;case "Float":u[b>>
2]=f;break;case "Boolean":M[b>>0]=f?1:0;break;default:throw"internal glGet error, bad type: "+c;}}else h.recordError(1281)}function Tf(a,b){Cb(a,b,"Boolean")}function Uf(a,b,c){c?p[c>>2]=k.getBufferParameter(a,b):h.recordError(1281)}function Vf(){if(h.lastError){var a=h.lastError;h.lastError=0;return a}return k.getError()}function Wf(a,b){Cb(a,b,"Float")}function Xf(a,b,c,f){a=k.getFramebufferAttachmentParameter(a,b,c);p[f>>2]=a}function Yf(){d.printErr("missing function: emscripten_glGetInfoLogARB");
G(-1)}function Zf(a,b){Cb(a,b,"Integer")}function $f(){d.printErr("missing function: emscripten_glGetObjectParameterivARB");G(-1)}function ag(){d.printErr("missing function: emscripten_glGetPointerv");G(-1)}function bg(a,b,c,f){a=k.getProgramInfoLog(h.programs[a]);null===a&&(a="(unknown error)");0<b&&f?(b=Y(a,F,f,b),c&&(p[c>>2]=b)):c&&(p[c>>2]=0)}function cg(a,b,c){if(c)if(a>=h.counter)h.recordError(1281);else{var f=h.programInfos[a];if(f)if(35716==b)a=k.getProgramInfoLog(h.programs[a]),null===a&&
(a="(unknown error)"),p[c>>2]=a.length+1;else if(35719==b)p[c>>2]=f.maxUniformLength;else if(35722==b){if(-1==f.maxAttributeLength){a=h.programs[a];var d=k.getProgramParameter(a,k.ACTIVE_ATTRIBUTES);for(b=f.maxAttributeLength=0;b<d;++b){var e=k.getActiveAttrib(a,b);f.maxAttributeLength=Math.max(f.maxAttributeLength,e.name.length+1)}}p[c>>2]=f.maxAttributeLength}else if(35381==b){if(-1==f.maxUniformBlockNameLength)for(a=h.programs[a],d=k.getProgramParameter(a,k.ACTIVE_UNIFORM_BLOCKS),b=f.maxUniformBlockNameLength=
0;b<d;++b)e=k.getActiveUniformBlockName(a,b),f.maxUniformBlockNameLength=Math.max(f.maxUniformBlockNameLength,e.length+1);p[c>>2]=f.maxUniformBlockNameLength}else p[c>>2]=k.getProgramParameter(h.programs[a],b);else h.recordError(1282)}else h.recordError(1281)}function dg(a,b,c){c?p[c>>2]=k.getRenderbufferParameter(a,b):h.recordError(1281)}function eg(a,b,c,f){a=k.getShaderInfoLog(h.shaders[a]);null===a&&(a="(unknown error)");0<b&&f?(b=Y(a,F,f,b),c&&(p[c>>2]=b)):c&&(p[c>>2]=0)}function fg(a,b,c,f){a=
k.getShaderPrecisionFormat(a,b);p[c>>2]=a.rangeMin;p[c+4>>2]=a.rangeMax;p[f>>2]=a.precision}function gg(a,b,c,f){if(a=k.getShaderSource(h.shaders[a]))0<b&&f?(b=Y(a,F,f,b),c&&(p[c>>2]=b)):c&&(p[c>>2]=0)}function hg(a,b,c){c?35716==b?(a=k.getShaderInfoLog(h.shaders[a]),null===a&&(a="(unknown error)"),p[c>>2]=a.length+1):35720==b?(a=k.getShaderSource(h.shaders[a]),a=null===a||0==a.length?0:a.length+1,p[c>>2]=a):p[c>>2]=k.getShaderParameter(h.shaders[a],b):h.recordError(1281)}function ig(a){if(h.stringCache[a])return h.stringCache[a];
switch(a){case 7936:case 7937:case 37445:case 37446:var b=Ta(ra(k.getParameter(a)),"i8",0);break;case 7938:b=k.getParameter(k.VERSION);b=2<=k.canvas.GLctxObject.version?"OpenGL ES 3.0 ("+b+")":"OpenGL ES 2.0 ("+b+")";b=Ta(ra(b),"i8",0);break;case 7939:b=k.getSupportedExtensions();for(var c=[],f=0;f<b.length;++f)c.push(b[f]),c.push("GL_"+b[f]);b=Ta(ra(c.join(" ")),"i8",0);break;case 35724:b=k.getParameter(k.SHADING_LANGUAGE_VERSION);c=/^WebGL GLSL ES ([0-9]\.[0-9][0-9]?)(?:$| .*)/;c=b.match(c);null!==
c&&(3==c[1].length&&(c[1]+="0"),b="OpenGL ES GLSL ES "+c[1]+" ("+b+")");b=Ta(ra(b),"i8",0);break;default:return h.recordError(1280),0}return h.stringCache[a]=b}function jg(a,b,c){c?u[c>>2]=k.getTexParameter(a,b):h.recordError(1281)}function kg(a,b,c){c?p[c>>2]=k.getTexParameter(a,b):h.recordError(1281)}function lg(a,b){b=R(b);var c=0;if(-1!==b.indexOf("]",b.length-1)){var f=b.lastIndexOf("["),d=b.slice(f+1,-1);if(0<d.length&&(c=parseInt(d),0>c))return-1;b=b.slice(0,f)}a=h.programInfos[a];if(!a)return-1;
a=a.uniforms;return(b=a[b])&&c<b[0]?b[1]+c:-1}function mc(a,b,c,f){if(c)if(a=k.getUniform(h.programs[a],h.uniforms[b]),"number"==typeof a||"boolean"==typeof a)switch(f){case "Integer":p[c>>2]=a;break;case "Float":u[c>>2]=a;break;default:throw"internal emscriptenWebGLGetUniform() error, bad type: "+f;}else for(b=0;b<a.length;b++)switch(f){case "Integer":p[c+4*b>>2]=a[b];break;case "Float":u[c+4*b>>2]=a[b];break;default:throw"internal emscriptenWebGLGetUniform() error, bad type: "+f;}else h.recordError(1281)}
function mg(a,b,c){mc(a,b,c,"Float")}function ng(a,b,c){mc(a,b,c,"Integer")}function og(a,b,c){c?p[c>>2]=k.getVertexAttribOffset(a,b):h.recordError(1281)}function nc(a,b,c,f){if(c)if(a=k.getVertexAttrib(a,b),34975==b)p[c>>2]=a.name;else if("number"==typeof a||"boolean"==typeof a)switch(f){case "Integer":p[c>>2]=a;break;case "Float":u[c>>2]=a;break;case "FloatToInteger":p[c>>2]=Math.fround(a);break;default:throw"internal emscriptenWebGLGetVertexAttrib() error, bad type: "+f;}else for(b=0;b<a.length;b++)switch(f){case "Integer":p[c+
4*b>>2]=a[b];break;case "Float":u[c+4*b>>2]=a[b];break;case "FloatToInteger":p[c+4*b>>2]=Math.fround(a[b]);break;default:throw"internal emscriptenWebGLGetVertexAttrib() error, bad type: "+f;}else h.recordError(1281)}function pg(a,b,c){nc(a,b,c,"Float")}function qg(a,b,c){nc(a,b,c,"FloatToInteger")}function rg(a,b){k.hint(a,b)}function sg(a){return(a=h.buffers[a])?k.isBuffer(a):0}function tg(a){return k.isEnabled(a)}function ug(a){return(a=h.framebuffers[a])?k.isFramebuffer(a):0}function vg(a){return(a=
h.programs[a])?k.isProgram(a):0}function wg(a){return(a=h.renderbuffers[a])?k.isRenderbuffer(a):0}function xg(a){return(a=h.shaders[a])?k.isShader(a):0}function yg(a){return(a=h.textures[a])?k.isTexture(a):0}function zg(a){return(a=h.vaos[a])?k.isVertexArray(a):0}function Ag(a){k.lineWidth(a)}function Bg(a){k.linkProgram(h.programs[a]);h.programInfos[a]=null;h.populateUniformTable(a)}function Cg(){throw"Legacy GL function (glLoadIdentity) called. If you want legacy GL emulation, you need to compile with -s LEGACY_GL_EMULATION=1 to enable legacy GL emulation.";
}function Dg(){d.printErr("missing function: emscripten_glLoadMatrixf");G(-1)}function Eg(){throw"Legacy GL function (glMatrixMode) called. If you want legacy GL emulation, you need to compile with -s LEGACY_GL_EMULATION=1 to enable legacy GL emulation.";}function Fg(){d.printErr("missing function: emscripten_glNormalPointer");G(-1)}function Gg(a,b){3333==a?h.packAlignment=b:3317==a&&(h.unpackAlignment=b);k.pixelStorei(a,b)}function Hg(a,b){k.polygonOffset(a,b)}function Db(a,b,c,f,d){switch(b){case 6406:case 6409:case 6402:case 6403:case 36244:b=
1;break;case 6410:case 33319:case 33320:b=2;break;case 6407:case 35904:case 36248:b=3;break;case 6408:case 35906:case 36249:b=4;break;default:return h.recordError(1280),null}switch(a){case 5121:case 5120:var e=1*b;break;case 5123:case 36193:case 5131:case 5122:e=2*b;break;case 5125:case 5126:case 5124:e=4*b;break;case 34042:case 35902:case 33640:case 35899:case 34042:e=4;break;case 33635:case 32819:case 32820:e=2;break;default:return h.recordError(1280),null}b=h.unpackAlignment;c*=e;b*=Math.floor((c+
b-1)/b);f=0>=f?0:(f-1)*b+c;switch(a){case 5120:return M.subarray(d,d+f);case 5121:return F.subarray(d,d+f);case 5122:return ja.subarray(d>>1,d+f>>1);case 5124:return p.subarray(d>>2,d+f>>2);case 5126:return u.subarray(d>>2,d+f>>2);case 5125:case 34042:case 35902:case 33640:case 35899:case 34042:return S.subarray(d>>2,d+f>>2);case 5123:case 33635:case 32819:case 32820:case 36193:case 5131:return Aa.subarray(d>>1,d+f>>1);default:return h.recordError(1280),null}}function Eb(a){switch(a){case 5120:return M;
case 5121:return F;case 5122:return ja;case 5123:case 33635:case 32819:case 32820:case 36193:case 5131:return Aa;case 5124:return p;case 5125:case 34042:case 35902:case 33640:case 35899:case 34042:return S;case 5126:return u;default:return null}}function Fb(a){switch(a){case 5120:case 5121:return 0;case 5122:case 5123:case 33635:case 32819:case 32820:case 36193:case 5131:return 1;case 5124:case 5126:case 5125:case 34042:case 35902:case 33640:case 35899:case 34042:return 2;default:return 0}}function Ig(a,
b,c,f,d,e,n){h.currentContext.supportsWebGL2EntryPoints?k.currentPixelPackBufferBinding?k.readPixels(a,b,c,f,d,e,n):k.readPixels(a,b,c,f,d,e,Eb(e),n>>Fb(e)):(n=Db(e,d,c,f,n,d))?k.readPixels(a,b,c,f,d,e,n):h.recordError(1280)}function Jg(){}function Kg(a,b,c,f){k.renderbufferStorage(a,b,c,f)}function Lg(a,b,c,f,d){k.renderbufferStorageMultisample(a,b,c,f,d)}function Mg(){d.printErr("missing function: emscripten_glRotatef");G(-1)}function Ng(a,b){k.sampleCoverage(a,!!b)}function Og(a,b,c,f){k.scissor(a,
b,c,f)}function Pg(){h.recordError(1280)}function Qg(a,b,c,f){b=h.getSource(a,b,c,f);k.shaderSource(h.shaders[a],b)}function Rg(a,b,c){k.stencilFunc(a,b,c)}function Sg(a,b,c,f){k.stencilFuncSeparate(a,b,c,f)}function Tg(a){k.stencilMask(a)}function Ug(a,b){k.stencilMaskSeparate(a,b)}function Vg(a,b,c){k.stencilOp(a,b,c)}function Wg(a,b,c,f){k.stencilOpSeparate(a,b,c,f)}function Xg(){d.printErr("missing function: emscripten_glTexCoordPointer");G(-1)}function Yg(a,b,c,f,d,e,n,g,l){if(h.currentContext.supportsWebGL2EntryPoints)k.currentPixelUnpackBufferBinding?
k.texImage2D(a,b,c,f,d,e,n,g,l):0!=l?k.texImage2D(a,b,c,f,d,e,n,g,Eb(g),l>>Fb(g)):k.texImage2D(a,b,c,f,d,e,n,g,null);else{var m=null;l&&(m=Db(g,n,f,d,l,c));k.texImage2D(a,b,c,f,d,e,n,g,m)}}function Zg(a,b,c){k.texParameterf(a,b,c)}function $g(a,b,c){c=u[c>>2];k.texParameterf(a,b,c)}function ah(a,b,c){k.texParameteri(a,b,c)}function bh(a,b,c){c=p[c>>2];k.texParameteri(a,b,c)}function ch(a,b,c,f,d,e,n,g,l){if(h.currentContext.supportsWebGL2EntryPoints)k.currentPixelUnpackBufferBinding?k.texSubImage2D(a,
b,c,f,d,e,n,g,l):0!=l?k.texSubImage2D(a,b,c,f,d,e,n,g,Eb(g),l>>Fb(g)):k.texSubImage2D(a,b,c,f,d,e,n,g,null);else{var m=null;l&&(m=Db(g,n,d,e,l,0));k.texSubImage2D(a,b,c,f,d,e,n,g,m)}}function dh(a,b){k.uniform1f(h.uniforms[a],b)}function eh(a,b,c){if(h.currentContext.supportsWebGL2EntryPoints)k.uniform1fv(h.uniforms[a],u,c>>2,b);else{if(b<=h.MINI_TEMP_BUFFER_SIZE){var f=h.miniTempBufferViews[b-1];for(var d=0;d<b;++d)f[d]=u[c+4*d>>2]}else f=u.subarray(c>>2,c+4*b>>2);k.uniform1fv(h.uniforms[a],f)}}
function fh(a,b){k.uniform1i(h.uniforms[a],b)}function gh(a,b,c){h.currentContext.supportsWebGL2EntryPoints?k.uniform1iv(h.uniforms[a],p,c>>2,b):k.uniform1iv(h.uniforms[a],p.subarray(c>>2,c+4*b>>2))}function hh(a,b,c){k.uniform2f(h.uniforms[a],b,c)}function ih(a,b,c){if(h.currentContext.supportsWebGL2EntryPoints)k.uniform2fv(h.uniforms[a],u,c>>2,2*b);else{if(2*b<=h.MINI_TEMP_BUFFER_SIZE){var f=h.miniTempBufferViews[2*b-1];for(var d=0;d<2*b;d+=2)f[d]=u[c+4*d>>2],f[d+1]=u[c+(4*d+4)>>2]}else f=u.subarray(c>>
2,c+8*b>>2);k.uniform2fv(h.uniforms[a],f)}}function jh(a,b,c){k.uniform2i(h.uniforms[a],b,c)}function kh(a,b,c){h.currentContext.supportsWebGL2EntryPoints?k.uniform2iv(h.uniforms[a],p,c>>2,2*b):k.uniform2iv(h.uniforms[a],p.subarray(c>>2,c+8*b>>2))}function lh(a,b,c,f){k.uniform3f(h.uniforms[a],b,c,f)}function mh(a,b,c){if(h.currentContext.supportsWebGL2EntryPoints)k.uniform3fv(h.uniforms[a],u,c>>2,3*b);else{if(3*b<=h.MINI_TEMP_BUFFER_SIZE){var f=h.miniTempBufferViews[3*b-1];for(var d=0;d<3*b;d+=3)f[d]=
u[c+4*d>>2],f[d+1]=u[c+(4*d+4)>>2],f[d+2]=u[c+(4*d+8)>>2]}else f=u.subarray(c>>2,c+12*b>>2);k.uniform3fv(h.uniforms[a],f)}}function nh(a,b,c,f){k.uniform3i(h.uniforms[a],b,c,f)}function oh(a,b,c){h.currentContext.supportsWebGL2EntryPoints?k.uniform3iv(h.uniforms[a],p,c>>2,3*b):k.uniform3iv(h.uniforms[a],p.subarray(c>>2,c+12*b>>2))}function ph(a,b,c,f,d){k.uniform4f(h.uniforms[a],b,c,f,d)}function qh(a,b,c){if(h.currentContext.supportsWebGL2EntryPoints)k.uniform4fv(h.uniforms[a],u,c>>2,4*b);else{if(4*
b<=h.MINI_TEMP_BUFFER_SIZE){var f=h.miniTempBufferViews[4*b-1];for(var d=0;d<4*b;d+=4)f[d]=u[c+4*d>>2],f[d+1]=u[c+(4*d+4)>>2],f[d+2]=u[c+(4*d+8)>>2],f[d+3]=u[c+(4*d+12)>>2]}else f=u.subarray(c>>2,c+16*b>>2);k.uniform4fv(h.uniforms[a],f)}}function rh(a,b,c,f,d){k.uniform4i(h.uniforms[a],b,c,f,d)}function sh(a,b,c){h.currentContext.supportsWebGL2EntryPoints?k.uniform4iv(h.uniforms[a],p,c>>2,4*b):k.uniform4iv(h.uniforms[a],p.subarray(c>>2,c+16*b>>2))}function th(a,b,c,f){if(h.currentContext.supportsWebGL2EntryPoints)k.uniformMatrix2fv(h.uniforms[a],
!!c,u,f>>2,4*b);else{if(4*b<=h.MINI_TEMP_BUFFER_SIZE){var d=h.miniTempBufferViews[4*b-1];for(var e=0;e<4*b;e+=4)d[e]=u[f+4*e>>2],d[e+1]=u[f+(4*e+4)>>2],d[e+2]=u[f+(4*e+8)>>2],d[e+3]=u[f+(4*e+12)>>2]}else d=u.subarray(f>>2,f+16*b>>2);k.uniformMatrix2fv(h.uniforms[a],!!c,d)}}function uh(a,b,c,f){if(h.currentContext.supportsWebGL2EntryPoints)k.uniformMatrix3fv(h.uniforms[a],!!c,u,f>>2,9*b);else{if(9*b<=h.MINI_TEMP_BUFFER_SIZE){var d=h.miniTempBufferViews[9*b-1];for(var e=0;e<9*b;e+=9)d[e]=u[f+4*e>>2],
d[e+1]=u[f+(4*e+4)>>2],d[e+2]=u[f+(4*e+8)>>2],d[e+3]=u[f+(4*e+12)>>2],d[e+4]=u[f+(4*e+16)>>2],d[e+5]=u[f+(4*e+20)>>2],d[e+6]=u[f+(4*e+24)>>2],d[e+7]=u[f+(4*e+28)>>2],d[e+8]=u[f+(4*e+32)>>2]}else d=u.subarray(f>>2,f+36*b>>2);k.uniformMatrix3fv(h.uniforms[a],!!c,d)}}function vh(a,b,c,f){if(h.currentContext.supportsWebGL2EntryPoints)k.uniformMatrix4fv(h.uniforms[a],!!c,u,f>>2,16*b);else{if(16*b<=h.MINI_TEMP_BUFFER_SIZE){var d=h.miniTempBufferViews[16*b-1];for(var e=0;e<16*b;e+=16)d[e]=u[f+4*e>>2],d[e+
1]=u[f+(4*e+4)>>2],d[e+2]=u[f+(4*e+8)>>2],d[e+3]=u[f+(4*e+12)>>2],d[e+4]=u[f+(4*e+16)>>2],d[e+5]=u[f+(4*e+20)>>2],d[e+6]=u[f+(4*e+24)>>2],d[e+7]=u[f+(4*e+28)>>2],d[e+8]=u[f+(4*e+32)>>2],d[e+9]=u[f+(4*e+36)>>2],d[e+10]=u[f+(4*e+40)>>2],d[e+11]=u[f+(4*e+44)>>2],d[e+12]=u[f+(4*e+48)>>2],d[e+13]=u[f+(4*e+52)>>2],d[e+14]=u[f+(4*e+56)>>2],d[e+15]=u[f+(4*e+60)>>2]}else d=u.subarray(f>>2,f+64*b>>2);k.uniformMatrix4fv(h.uniforms[a],!!c,d)}}function wh(a){k.useProgram(a?h.programs[a]:null)}function xh(a){k.validateProgram(h.programs[a])}
function yh(a,b){k.vertexAttrib1f(a,b)}function zh(a,b){k.vertexAttrib1f(a,u[b>>2])}function Ah(a,b,c){k.vertexAttrib2f(a,b,c)}function Bh(a,b){k.vertexAttrib2f(a,u[b>>2],u[b+4>>2])}function Ch(a,b,c,f){k.vertexAttrib3f(a,b,c,f)}function Dh(a,b){k.vertexAttrib3f(a,u[b>>2],u[b+4>>2],u[b+8>>2])}function Eh(a,b,c,f,d){k.vertexAttrib4f(a,b,c,f,d)}function Fh(a,b){k.vertexAttrib4f(a,u[b>>2],u[b+4>>2],u[b+8>>2],u[b+12>>2])}function Gh(a,b){k.vertexAttribDivisor(a,b)}function Hh(a,b,c,f,d,e){k.vertexAttribPointer(a,
b,c,!!f,d,e)}function Ih(){throw"Legacy GL function (glVertexPointer) called. If you want legacy GL emulation, you need to compile with -s LEGACY_GL_EMULATION=1 to enable legacy GL emulation.";}function Jh(a,b,c,f){k.viewport(a,b,c,f)}function oc(a,b){d.setThrew(a,b||1);throw"longjmp";}function Kh(a,b){oc(a,b)}function Lh(a){d.exit(a)}function Mh(a){Lh(a)}function Gb(a){if(Gb.called){var b=p[pc>>2];var c=p[b>>2]}else Gb.called=!0,ha.USER=ha.LOGNAME="web_user",ha.PATH="/",ha.PWD="/",ha.HOME="/home/web_user",
ha.LANG="C.UTF-8",ha._=d.thisProgram,c=I(1024),b=I(256),p[b>>2]=c,p[pc>>2]=b;var f=[],e=0;for(n in a)if("string"===typeof a[n]){var t=n+"="+a[n];f.push(t);e+=t.length}if(1024<e)throw Error("Environment size exceeded TOTAL_ENV_SIZE!");for(a=0;a<f.length;a++){e=t=f[a];var n=c;for(var g=0;g<e.length;++g)M[n++>>0]=e.charCodeAt(g);M[n>>0]=0;p[b+4*a>>2]=c;c+=t.length+1}p[b+4*f.length>>2]=0}function Qa(a){if(0===a)return 0;a=R(a);if(!ha.hasOwnProperty(a))return 0;Qa.ret&&ea(Qa.ret);a=ha[a];var b=Va(a)+1,
c=ua(b);c&&Y(a,M,c,b);a=c;Qa.ret=a;return Qa.ret}function Nh(a){var b=Date.now();p[a>>2]=b/1E3|0;p[a+4>>2]=b%1E3*1E3|0;return 0}function Oh(a,b,c){F.set(F.subarray(b,b+c),a);return a}function Ph(){return 0}function Qh(a){return Fa[a]||0}function Rh(a){if(0==a)return q.EINVAL;p[a>>2]=Hb;Fa[Hb]=0;Hb++;return 0}function Sh(a){return a in Fa?(delete Fa[a],0):q.EINVAL}function Th(){}function Uh(){}function Vh(a,b){if(!(a in Fa))return q.EINVAL;Fa[a]=b;return 0}function Wh(){return 0}function jb(a){return 0===
a%4&&(0!==a%100||0===a%400)}function Ib(a,b){for(var c=0,f=0;f<=b;c+=a[f++]);return c}function kb(a,b){for(a=new Date(a.getTime());0<b;){var c=jb(a.getFullYear()),f=a.getMonth();c=(c?lb:mb)[f];if(b>c-a.getDate())b-=c-a.getDate()+1,a.setDate(1),11>f?a.setMonth(f+1):(a.setMonth(0),a.setFullYear(a.getFullYear()+1));else{a.setDate(a.getDate()+b);break}}return a}function Xh(a,b,c,f){function d(a,b,c){for(a="number"===typeof a?a.toString():a||"";a.length<b;)a=c[0]+a;return a}function e(a,b){return d(a,
b,"0")}function n(a,b){function c(a){return 0>a?-1:0<a?1:0}var f;0===(f=c(a.getFullYear()-b.getFullYear()))&&0===(f=c(a.getMonth()-b.getMonth()))&&(f=c(a.getDate()-b.getDate()));return f}function g(a){switch(a.getDay()){case 0:return new Date(a.getFullYear()-1,11,29);case 1:return a;case 2:return new Date(a.getFullYear(),0,3);case 3:return new Date(a.getFullYear(),0,2);case 4:return new Date(a.getFullYear(),0,1);case 5:return new Date(a.getFullYear()-1,11,31);case 6:return new Date(a.getFullYear()-
1,11,30)}}function h(a){a=kb(new Date(a.tm_year+1900,0,1),a.tm_yday);var b=new Date(a.getFullYear(),0,4),c=new Date(a.getFullYear()+1,0,4);b=g(b);c=g(c);return 0>=n(b,a)?0>=n(c,a)?a.getFullYear()+1:a.getFullYear():a.getFullYear()-1}var l=p[f+40>>2];f={tm_sec:p[f>>2],tm_min:p[f+4>>2],tm_hour:p[f+8>>2],tm_mday:p[f+12>>2],tm_mon:p[f+16>>2],tm_year:p[f+20>>2],tm_wday:p[f+24>>2],tm_yday:p[f+28>>2],tm_isdst:p[f+32>>2],tm_gmtoff:p[f+36>>2],tm_zone:l?R(l):""};c=R(c);l={"%c":"%a %b %d %H:%M:%S %Y","%D":"%m/%d/%y",
"%F":"%Y-%m-%d","%h":"%b","%r":"%I:%M:%S %p","%R":"%H:%M","%T":"%H:%M:%S","%x":"%m/%d/%y","%X":"%H:%M:%S"};for(var k in l)c=c.replace(new RegExp(k,"g"),l[k]);var q="Sunday Monday Tuesday Wednesday Thursday Friday Saturday".split(" "),r="January February March April May June July August September October November December".split(" ");l={"%a":function(a){return q[a.tm_wday].substring(0,3)},"%A":function(a){return q[a.tm_wday]},"%b":function(a){return r[a.tm_mon].substring(0,3)},"%B":function(a){return r[a.tm_mon]},
"%C":function(a){a=a.tm_year+1900;return e(a/100|0,2)},"%d":function(a){return e(a.tm_mday,2)},"%e":function(a){return d(a.tm_mday,2," ")},"%g":function(a){return h(a).toString().substring(2)},"%G":function(a){return h(a)},"%H":function(a){return e(a.tm_hour,2)},"%I":function(a){a=a.tm_hour;0==a?a=12:12<a&&(a-=12);return e(a,2)},"%j":function(a){return e(a.tm_mday+Ib(jb(a.tm_year+1900)?lb:mb,a.tm_mon-1),3)},"%m":function(a){return e(a.tm_mon+1,2)},"%M":function(a){return e(a.tm_min,2)},"%n":function(){return"\n"},
"%p":function(a){return 0<=a.tm_hour&&12>a.tm_hour?"AM":"PM"},"%S":function(a){return e(a.tm_sec,2)},"%t":function(){return"\t"},"%u":function(a){a=new Date(a.tm_year+1900,a.tm_mon+1,a.tm_mday,0,0,0,0);return a.getDay()||7},"%U":function(a){var b=new Date(a.tm_year+1900,0,1),c=0===b.getDay()?b:kb(b,7-b.getDay());a=new Date(a.tm_year+1900,a.tm_mon,a.tm_mday);return 0>n(c,a)?(b=Ib(jb(a.getFullYear())?lb:mb,a.getMonth()-1)-31,c=31-c.getDate(),c=c+b+a.getDate(),e(Math.ceil(c/7),2)):0===n(c,b)?"01":"00"},
"%V":function(a){var b=new Date(a.tm_year+1900,0,4),c=new Date(a.tm_year+1901,0,4);b=g(b);c=g(c);var f=kb(new Date(a.tm_year+1900,0,1),a.tm_yday);if(0>n(f,b))return"53";if(0>=n(c,f))return"01";a=b.getFullYear()<a.tm_year+1900?a.tm_yday+32-b.getDate():a.tm_yday+1-b.getDate();return e(Math.ceil(a/7),2)},"%w":function(a){a=new Date(a.tm_year+1900,a.tm_mon+1,a.tm_mday,0,0,0,0);return a.getDay()},"%W":function(a){var b=new Date(a.tm_year,0,1),c=1===b.getDay()?b:kb(b,0===b.getDay()?1:7-b.getDay()+1);a=
new Date(a.tm_year+1900,a.tm_mon,a.tm_mday);return 0>n(c,a)?(b=Ib(jb(a.getFullYear())?lb:mb,a.getMonth()-1)-31,c=31-c.getDate(),c=c+b+a.getDate(),e(Math.ceil(c/7),2)):0===n(c,b)?"01":"00"},"%y":function(a){return(a.tm_year+1900).toString().substring(2)},"%Y":function(a){return a.tm_year+1900},"%z":function(a){a=a.tm_gmtoff;var b=0<=a;a=Math.abs(a)/60;a=a/60*100+a%60;return(b?"+":"-")+String("0000"+a).slice(-4)},"%Z":function(a){return a.tm_zone},"%%":function(){return"%"}};for(k in l)0<=c.indexOf(k)&&
(c=c.replace(new RegExp(k,"g"),l[k](f)));k=ra(c,!1);if(k.length>b)return 0;M.set(k,a);return k.length-1}function Yh(a,b,c,f){return Xh(a,b,c,f)}function ra(a,b,c){c=0<c?c:Va(a)+1;c=Array(c);a=Y(a,c,0,c.length);b&&(c.length=a);return c}function Zh(a,b){return v[a](b)}function $h(a,b,c){return v[a](b,c)}function ai(a,b){return v[a](b)}function bi(a,b,c){return v[a](b,c)}function ci(a,b){return v[a](b)}function di(a,b,c){return v[a](b,c)}function ei(a,b,c){return v[a](b,c)}function fi(a,b,c,f,d){return v[a](b,
c,f,d)}function gi(a){return v[a]()}function hi(a,b){try{return d.dynCall_ii(a,b)}catch(c){if("number"!==typeof c&&"longjmp"!==c)throw c;d.setThrew(1,0)}}function ii(a,b){return v[a](b)}function ji(a,b,c){return v[a](b,c)}function ki(a,b,c,f){try{return d.dynCall_iiii(a,b,c,f)}catch(m){if("number"!==typeof m&&"longjmp"!==m)throw m;d.setThrew(1,0)}}function li(a,b,c,f){return v[a](b,c,f)}function mi(a,b,c,f,d){return v[a](b,c,f,d)}function ni(a,b,c,f,d){return v[a](b,c,f,d)}function oi(a,b,c,f,d,e){return v[a](b,
c,f,d,e)}function pi(a,b,c,f,d,e){return v[a](b,c,f,d,e)}function qi(a,b,c,f,d,e,n){return v[a](b,c,f,d,e,n)}function ri(a,b,c,f,d,e,n){return v[a](b,c,f,d,e,n)}function si(a,b,c,f,d,e,n,g){return v[a](b,c,f,d,e,n,g)}function ti(a,b,c,f,d,e,n,g,h){return v[a](b,c,f,d,e,n,g,h)}function ui(a,b,c,f,d,e){return v[a](b,c,f,d,e)}function vi(a,b,c,f){return v[a](b,c,f)}function wi(a,b){return v[a](b)}function xi(a){v[a]()}function yi(a,b){v[a](b)}function zi(a,b,c){v[a](b,c)}function Ai(a,b,c,f,d,e,n){v[a](b,
c,f,d,e,n)}function Bi(a,b){v[a](b)}function Ci(a,b,c){v[a](b,c)}function Di(a,b,c,f,d){v[a](b,c,f,d)}function Ei(a,b,c){v[a](b,c)}function Fi(a,b){try{d.dynCall_vi(a,b)}catch(c){if("number"!==typeof c&&"longjmp"!==c)throw c;d.setThrew(1,0)}}function Gi(a,b){v[a](b)}function Hi(a,b,c){v[a](b,c)}function Ii(a,b,c){v[a](b,c)}function Ji(a,b,c,f){v[a](b,c,f)}function Ki(a,b,c,f,d){v[a](b,c,f,d)}function Li(a,b,c,f,d,e){v[a](b,c,f,d,e)}function Mi(a,b,c,f){v[a](b,c,f)}function Ni(a,b,c){try{d.dynCall_vii(a,
b,c)}catch(f){if("number"!==typeof f&&"longjmp"!==f)throw f;d.setThrew(1,0)}}function Oi(a,b,c){v[a](b,c)}function Pi(a,b,c,f){v[a](b,c,f)}function Qi(a,b,c,f){v[a](b,c,f)}function Ri(a,b,c,f,d,e,n){v[a](b,c,f,d,e,n)}function Si(a,b,c,f){v[a](b,c,f)}function Ti(a,b,c,f,d){v[a](b,c,f,d)}function Ui(a,b,c,f,d,e,n){v[a](b,c,f,d,e,n)}function Vi(a,b,c,f,d,e,n){v[a](b,c,f,d,e,n)}function Wi(a,b,c,f,d,e,n,g){v[a](b,c,f,d,e,n,g)}function Xi(a,b,c,f,d){v[a](b,c,f,d)}function Yi(a,b,c,f,d,e,n,g){v[a](b,c,
f,d,e,n,g)}function Zi(a,b,c,f,d,e,n,g,h,k,l,p){v[a](b,c,f,d,e,n,g,h,k,l,p)}function $i(a,b,c,f,d,e){v[a](b,c,f,d,e)}function aj(a,b,c,f,d,e){v[a](b,c,f,d,e)}function bj(a,b,c,f,d,e,n,g,h){v[a](b,c,f,d,e,n,g,h)}function cj(a,b,c,f,d,e,n,g,h,k,l,p,q){v[a](b,c,f,d,e,n,g,h,k,l,p,q)}function dj(a,b,c,f,d,e,n){v[a](b,c,f,d,e,n)}function ej(a,b,c,f,d,e,n,g){v[a](b,c,f,d,e,n,g)}function fj(a,b,c,f,d,e,n,g,h){v[a](b,c,f,d,e,n,g,h)}function gj(a,b,c,f,d,e,n,g,h,k){v[a](b,c,f,d,e,n,g,h,k)}function hj(a,b,c,
f,d,e,n,g,h,k,l){v[a](b,c,f,d,e,n,g,h,k,l)}function ij(a,b,c,f,d,e){v[a](b,c,f,d,e)}function jj(a,b,c,f,d,e){v[a](b,c,f,d,e)}function kj(a,b,c){v[a](b,c)}function lj(a,b,c,f){v[a](b,c,f)}function Ga(a){this.name="ExitStatus";this.message="Program terminated with exit("+a+")";this.status=a}function Jb(){function a(){if(!d.calledRun&&(d.calledRun=!0,!da)){qc||(qc=!0,Ia(nb));Ia(rc);if(d.onRuntimeInitialized)d.onRuntimeInitialized();if(d.postRun)for("function"==typeof d.postRun&&(d.postRun=[d.postRun]);d.postRun.length;)sc.unshift(d.postRun.shift());
Ia(sc)}}null===tc&&(tc=Date.now());if(!(0<va)){if(d.preRun)for("function"==typeof d.preRun&&(d.preRun=[d.preRun]);d.preRun.length;)uc.unshift(d.preRun.shift());Ia(uc);0<va||d.calledRun||(d.setStatus?(d.setStatus("Running..."),setTimeout(function(){setTimeout(function(){d.setStatus("")},1);a()},1)):a())}}function mj(a,b){if(!b||!d.noExitRuntime||0!==a){if(!d.noExitRuntime&&(da=!0,ob=nj,Ia(Kb),d.onExit))d.onExit(a);ca&&process.exit(a);d.quit(a,new Ga(a))}}function G(a){if(d.onAbort)d.onAbort(a);void 0!==
a?(d.print(a),d.printErr(a),a=JSON.stringify(a)):a="";da=!0;throw"abort("+a+"). Build with -s ASSERTIONS=1 for more info.";}var d=g.Module||{};d.doNotCaptureKeyboard=!0;g.asmjsLoadingDone=!1;d.postRun=d.postRun||[];d.postRun.push(function(){g.asmjsLoadingDone=!0});"undefined"!==typeof z&&(d.wasmBinary=z);d="undefined"!==typeof d?d:{};var Ra={},sa;for(sa in d)d.hasOwnProperty(sa)&&(Ra[sa]=d[sa]);d.arguments=[];d.thisProgram="./this.program";d.quit=function(a,b){throw b;};d.preRun=[];d.postRun=[];var wa=
!1,Z=!1,ca=!1,Lb=!1;if(d.ENVIRONMENT)if("WEB"===d.ENVIRONMENT)wa=!0;else if("WORKER"===d.ENVIRONMENT)Z=!0;else if("NODE"===d.ENVIRONMENT)ca=!0;else if("SHELL"===d.ENVIRONMENT)Lb=!0;else throw Error("Module['ENVIRONMENT'] value is not valid. must be one of: WEB|WORKER|NODE|SHELL.");else wa="object"===typeof g,Z="function"===typeof importScripts,ca="object"===typeof process&&"function"===typeof require&&!wa&&!Z,Lb=!wa&&!ca&&!Z;if(ca){var Mb,Nb;d.read=function(a,b){Mb||(Mb=require("fs"));Nb||(Nb=require("path"));
a=Nb.normalize(a);a=Mb.readFileSync(a);return b?a:a.toString()};d.readBinary=function(a){a=d.read(a,!0);a.buffer||(a=new Uint8Array(a));D(a.buffer);return a};1<process.argv.length&&(d.thisProgram=process.argv[1].replace(/\\/g,"/"));d.arguments=process.argv.slice(2);"undefined"!==typeof module&&(module.exports=d);process.on("uncaughtException",function(a){if(!(a instanceof Ga))throw a;});process.on("unhandledRejection",function(){process.exit(1)});d.inspect=function(){return"[Emscripten Module object]"}}else if(Lb)"undefined"!=
typeof read&&(d.read=function(a){return read(a)}),d.readBinary=function(a){if("function"===typeof readbuffer)return new Uint8Array(readbuffer(a));a=read(a,"binary");D("object"===typeof a);return a},"undefined"!=typeof scriptArgs?d.arguments=scriptArgs:"undefined"!=typeof r&&(d.arguments=r),"function"===typeof quit&&(d.quit=function(a){quit(a)});else if(wa||Z)d.read=function(a){var b=new XMLHttpRequest;b.open("GET",a,!1);b.send(null);return b.responseText},Z&&(d.readBinary=function(a){var b=new XMLHttpRequest;
b.open("GET",a,!1);b.responseType="arraybuffer";b.send(null);return new Uint8Array(b.response)}),d.readAsync=function(a,b,c){var f=new XMLHttpRequest;f.open("GET",a,!0);f.responseType="arraybuffer";f.onload=function(){200==f.status||0==f.status&&f.response?b(f.response):c()};f.onerror=c;f.send(null)},"undefined"!=typeof r&&(d.arguments=r),d.setWindowTitle=function(a){document.title=a};d.print="undefined"!==typeof console?console.log:"undefined"!==typeof print?print:null;d.printErr="undefined"!==typeof printErr?
printErr:"undefined"!==typeof console&&console.warn||d.print;d.print=d.print;d.printErr=d.printErr;for(sa in Ra)Ra.hasOwnProperty(sa)&&(d[sa]=Ra[sa]);Ra=void 0;var v=Array(20),qb={},da=0,Zb="undefined"!==typeof TextDecoder?new TextDecoder("utf8"):void 0;"undefined"!==typeof TextDecoder&&new TextDecoder("utf-16le");var M,F,ja,Aa,p,S,u,Ua,W,Ob,ob,Pb,Qb,oa;var Rb=W=Ob=ob=Pb=Qb=oa=0;var Tb=!1;var Sb=d.TOTAL_STACK||5242880,pa=d.TOTAL_MEMORY||134217728;pa<Sb&&d.printErr("TOTAL_MEMORY should be larger than TOTAL_STACK, was "+
pa+"! (TOTAL_STACK="+Sb+")");if(d.buffer)var V=d.buffer;else"object"===typeof WebAssembly&&"function"===typeof WebAssembly.Memory?(d.wasmMemory=new WebAssembly.Memory({initial:pa/65536,maximum:pa/65536}),V=d.wasmMemory.buffer):V=new ArrayBuffer(pa),d.buffer=V;$b();p[0]=1668509029;ja[1]=25459;if(115!==F[2]||99!==F[3])throw"Runtime error: expected the system to be little-endian!";var uc=[],nb=[],rc=[],Kb=[],sc=[],qc=!1,Vb=Math.abs,Yb=Math.ceil,Xb=Math.floor,Wb=Math.min,va=0,sb=null,Ja=null;d.preloadedImages=
{};d.preloadedAudios={};Fc();var Ic=[function(){return!!d.ctx},function(){}];Rb=1024;W=Rb+184016;nb.push({func:function(){oj()}},{func:function(){pj()}},{func:function(){qj()}},{func:function(){rj()}},{func:function(){sj()}},{func:function(){tj()}},{func:function(){uj()}},{func:function(){vj()}},{func:function(){wj()}},{func:function(){xj()}},{func:function(){yj()}},{func:function(){zj()}},{func:function(){Aj()}},{func:function(){Bj()}},{func:function(){Cj()}},{func:function(){Dj()}},{func:function(){Ej()}},
{func:function(){Fj()}},{func:function(){Gj()}},{func:function(){Hj()}},{func:function(){Ij()}},{func:function(){Jj()}},{func:function(){Kj()}},{func:function(){Lj()}},{func:function(){Mj()}},{func:function(){Nj()}},{func:function(){Oj()}},{func:function(){Pj()}},{func:function(){Qj()}},{func:function(){Rj()}},{func:function(){Sj()}},{func:function(){Tj()}},{func:function(){Uj()}},{func:function(){Vj()}},{func:function(){Wj()}},{func:function(){Xj()}},{func:function(){Yj()}},{func:function(){Zj()}},
{func:function(){ak()}},{func:function(){bk()}},{func:function(){ck()}},{func:function(){dk()}},{func:function(){ek()}},{func:function(){fk()}},{func:function(){gk()}},{func:function(){hk()}},{func:function(){ik()}},{func:function(){jk()}},{func:function(){kk()}},{func:function(){lk()}},{func:function(){mk()}},{func:function(){nk()}},{func:function(){ok()}},{func:function(){pk()}},{func:function(){qk()}},{func:function(){rk()}},{func:function(){sk()}},{func:function(){tk()}},{func:function(){uk()}},
{func:function(){vk()}},{func:function(){wk()}},{func:function(){xk()}},{func:function(){yk()}},{func:function(){zk()}},{func:function(){Ak()}},{func:function(){Bk()}},{func:function(){Ck()}},{func:function(){Dk()}},{func:function(){Ek()}},{func:function(){Fk()}},{func:function(){Gk()}},{func:function(){Hk()}},{func:function(){Ik()}},{func:function(){Jk()}},{func:function(){Kk()}},{func:function(){Lk()}},{func:function(){Mk()}},{func:function(){Nk()}},{func:function(){Ok()}},{func:function(){Pk()}},
{func:function(){Qk()}},{func:function(){Rk()}},{func:function(){Sk()}},{func:function(){Tk()}},{func:function(){Uk()}},{func:function(){Vk()}},{func:function(){Wk()}},{func:function(){Xk()}},{func:function(){Yk()}},{func:function(){Zk()}},{func:function(){$k()}},{func:function(){al()}},{func:function(){bl()}},{func:function(){cl()}},{func:function(){dl()}},{func:function(){el()}},{func:function(){fl()}},{func:function(){gl()}},{func:function(){hl()}},{func:function(){il()}},{func:function(){jl()}},
{func:function(){kl()}},{func:function(){ll()}},{func:function(){ml()}},{func:function(){nl()}},{func:function(){ol()}},{func:function(){pl()}},{func:function(){ql()}},{func:function(){rl()}},{func:function(){sl()}},{func:function(){tl()}});d.STATIC_BASE=Rb;d.STATIC_BUMP=184016;W+=16;var ka={last:0,caught:[],infos:{},deAdjust:function(a){if(!a||ka.infos[a])return a;for(var b in ka.infos){var c=ka.infos[b];if(c.adjusted===a)return b}return a},addRef:function(a){a&&(a=ka.infos[a],a.refcount++)},decRef:function(a){if(a){var b=
ka.infos[a];D(0<b.refcount);b.refcount--;0!==b.refcount||b.rethrown||(b.destructor&&d.dynCall_vi(b.destructor,a),delete ka.infos[a],___cxa_free_exception(a))}},clearRef:function(a){a&&(a=ka.infos[a],a.refcount=0)}},q={EPERM:1,ENOENT:2,ESRCH:3,EINTR:4,EIO:5,ENXIO:6,E2BIG:7,ENOEXEC:8,EBADF:9,ECHILD:10,EAGAIN:11,EWOULDBLOCK:11,ENOMEM:12,EACCES:13,EFAULT:14,ENOTBLK:15,EBUSY:16,EEXIST:17,EXDEV:18,ENODEV:19,ENOTDIR:20,EISDIR:21,EINVAL:22,ENFILE:23,EMFILE:24,ENOTTY:25,ETXTBSY:26,EFBIG:27,ENOSPC:28,ESPIPE:29,
EROFS:30,EMLINK:31,EPIPE:32,EDOM:33,ERANGE:34,ENOMSG:42,EIDRM:43,ECHRNG:44,EL2NSYNC:45,EL3HLT:46,EL3RST:47,ELNRNG:48,EUNATCH:49,ENOCSI:50,EL2HLT:51,EDEADLK:35,ENOLCK:37,EBADE:52,EBADR:53,EXFULL:54,ENOANO:55,EBADRQC:56,EBADSLT:57,EDEADLOCK:35,EBFONT:59,ENOSTR:60,ENODATA:61,ETIME:62,ENOSR:63,ENONET:64,ENOPKG:65,EREMOTE:66,ENOLINK:67,EADV:68,ESRMNT:69,ECOMM:70,EPROTO:71,EMULTIHOP:72,EDOTDOT:73,EBADMSG:74,ENOTUNIQ:76,EBADFD:77,EREMCHG:78,ELIBACC:79,ELIBBAD:80,ELIBSCN:81,ELIBMAX:82,ELIBEXEC:83,ENOSYS:38,
ENOTEMPTY:39,ENAMETOOLONG:36,ELOOP:40,EOPNOTSUPP:95,EPFNOSUPPORT:96,ECONNRESET:104,ENOBUFS:105,EAFNOSUPPORT:97,EPROTOTYPE:91,ENOTSOCK:88,ENOPROTOOPT:92,ESHUTDOWN:108,ECONNREFUSED:111,EADDRINUSE:98,ECONNABORTED:103,ENETUNREACH:101,ENETDOWN:100,ETIMEDOUT:110,EHOSTDOWN:112,EHOSTUNREACH:113,EINPROGRESS:115,EALREADY:114,EDESTADDRREQ:89,EMSGSIZE:90,EPROTONOSUPPORT:93,ESOCKTNOSUPPORT:94,EADDRNOTAVAIL:99,ENETRESET:102,EISCONN:106,ENOTCONN:107,ETOOMANYREFS:109,EUSERS:87,EDQUOT:122,ESTALE:116,ENOTSUP:95,ENOMEDIUM:123,
EILSEQ:84,EOVERFLOW:75,ECANCELED:125,ENOTRECOVERABLE:131,EOWNERDEAD:130,ESTRPIPE:86},ul={0:"Success",1:"Not super-user",2:"No such file or directory",3:"No such process",4:"Interrupted system call",5:"I/O error",6:"No such device or address",7:"Arg list too long",8:"Exec format error",9:"Bad file number",10:"No children",11:"No more processes",12:"Not enough core",13:"Permission denied",14:"Bad address",15:"Block device required",16:"Mount device busy",17:"File exists",18:"Cross-device link",19:"No such device",
20:"Not a directory",21:"Is a directory",22:"Invalid argument",23:"Too many open files in system",24:"Too many open files",25:"Not a typewriter",26:"Text file busy",27:"File too large",28:"No space left on device",29:"Illegal seek",30:"Read only file system",31:"Too many links",32:"Broken pipe",33:"Math arg out of domain of func",34:"Math result not representable",35:"File locking deadlock error",36:"File or path name too long",37:"No record locks available",38:"Function not implemented",39:"Directory not empty",
40:"Too many symbolic links",42:"No message of desired type",43:"Identifier removed",44:"Channel number out of range",45:"Level 2 not synchronized",46:"Level 3 halted",47:"Level 3 reset",48:"Link number out of range",49:"Protocol driver not attached",50:"No CSI structure available",51:"Level 2 halted",52:"Invalid exchange",53:"Invalid request descriptor",54:"Exchange full",55:"No anode",56:"Invalid request code",57:"Invalid slot",59:"Bad font file fmt",60:"Device not a stream",61:"No data (for no delay io)",
62:"Timer expired",63:"Out of streams resources",64:"Machine is not on the network",65:"Package not installed",66:"The object is remote",67:"The link has been severed",68:"Advertise error",69:"Srmount error",70:"Communication error on send",71:"Protocol error",72:"Multihop attempted",73:"Cross mount point (not really error)",74:"Trying to read unreadable message",75:"Value too large for defined data type",76:"Given log. name not unique",77:"f.d. invalid for this operation",78:"Remote address changed",
79:"Can access a needed shared lib",80:"Accessing a corrupted shared lib",81:".lib section in a.out corrupted",82:"Attempting to link in too many libs",83:"Attempting to exec a shared library",84:"Illegal byte sequence",86:"Streams pipe error",87:"Too many users",88:"Socket operation on non-socket",89:"Destination address required",90:"Message too long",91:"Protocol wrong type for socket",92:"Protocol not available",93:"Unknown protocol",94:"Socket type not supported",95:"Not supported",96:"Protocol family not supported",
97:"Address family not supported by protocol family",98:"Address already in use",99:"Address not available",100:"Network interface is not configured",101:"Network is unreachable",102:"Connection reset by network",103:"Connection aborted",104:"Connection reset by peer",105:"No buffer space available",106:"Socket is already connected",107:"Socket is not connected",108:"Can't send after socket shutdown",109:"Too many references",110:"Connection timed out",111:"Connection refused",112:"Host is down",
113:"Host is unreachable",114:"Socket already connected",115:"Connection already in progress",116:"Stale file handle",122:"Quota exceeded",123:"No medium (in tape drive)",125:"Operation canceled",130:"Previous owner died",131:"State not recoverable"},x={splitPath:function(a){var b=/^(\/?|)([\s\S]*?)((?:\.{1,2}|[^\/]+?|)(\.[^.\/]*|))(?:[\/]*)$/;return b.exec(a).slice(1)},normalizeArray:function(a,b){for(var c=0,f=a.length-1;0<=f;f--){var d=a[f];"."===d?a.splice(f,1):".."===d?(a.splice(f,1),c++):c&&
(a.splice(f,1),c--)}if(b)for(;c;c--)a.unshift("..");return a},normalize:function(a){var b="/"===a.charAt(0),c="/"===a.substr(-1);(a=x.normalizeArray(a.split("/").filter(function(a){return!!a}),!b).join("/"))||b||(a=".");a&&c&&(a+="/");return(b?"/":"")+a},dirname:function(a){var b=x.splitPath(a);a=b[0];b=b[1];if(!a&&!b)return".";b&&(b=b.substr(0,b.length-1));return a+b},basename:function(a){if("/"===a)return"/";var b=a.lastIndexOf("/");return-1===b?a:a.substr(b+1)},extname:function(a){return x.splitPath(a)[3]},
join:function(){var a=Array.prototype.slice.call(arguments,0);return x.normalize(a.join("/"))},join2:function(a,b){return x.normalize(a+"/"+b)},resolve:function(){for(var a="",b=!1,c=arguments.length-1;-1<=c&&!b;c--){b=0<=c?arguments[c]:e.cwd();if("string"!==typeof b)throw new TypeError("Arguments to path.resolve must be strings");if(!b)return"";a=b+"/"+a;b="/"===b.charAt(0)}a=x.normalizeArray(a.split("/").filter(function(a){return!!a}),!b).join("/");return(b?"/":"")+a||"."},relative:function(a,b){function c(a){for(var b=
0;b<a.length&&""===a[b];b++);for(var c=a.length-1;0<=c&&""===a[c];c--);return b>c?[]:a.slice(b,c-b+1)}a=x.resolve(a).substr(1);b=x.resolve(b).substr(1);a=c(a.split("/"));b=c(b.split("/"));for(var f=Math.min(a.length,b.length),d=f,e=0;e<f;e++)if(a[e]!==b[e]){d=e;break}f=[];for(e=d;e<a.length;e++)f.push("..");f=f.concat(b.slice(d));return f.join("/")}},ta={ttys:[],init:function(){},shutdown:function(){},register:function(a,b){ta.ttys[a]={input:[],output:[],ops:b};e.registerDevice(a,ta.stream_ops)},
stream_ops:{open:function(a){var b=ta.ttys[a.node.rdev];if(!b)throw new e.ErrnoError(q.ENODEV);a.tty=b;a.seekable=!1},close:function(a){a.tty.ops.flush(a.tty)},flush:function(a){a.tty.ops.flush(a.tty)},read:function(a,b,c,f){if(!a.tty||!a.tty.ops.get_char)throw new e.ErrnoError(q.ENXIO);for(var d=0,g=0;g<f;g++){try{var n=a.tty.ops.get_char(a.tty)}catch(K){throw new e.ErrnoError(q.EIO);}if(void 0===n&&0===d)throw new e.ErrnoError(q.EAGAIN);if(null===n||void 0===n)break;d++;b[c+g]=n}d&&(a.node.timestamp=
Date.now());return d},write:function(a,b,c,d){if(!a.tty||!a.tty.ops.put_char)throw new e.ErrnoError(q.ENXIO);for(var f=0;f<d;f++)try{a.tty.ops.put_char(a.tty,b[c+f])}catch(t){throw new e.ErrnoError(q.EIO);}d&&(a.node.timestamp=Date.now());return f}},default_tty_ops:{get_char:function(a){if(!a.input.length){var b=null;if(ca){b=new Buffer(256);var c=0,d="win32"!=process.platform,e=process.stdin.fd;if(d){var h=!1;try{e=N.openSync("/dev/stdin","r"),h=!0}catch(n){}}try{c=N.readSync(e,b,0,256,null)}catch(n){if(-1!=
n.toString().indexOf("EOF"))c=0;else throw n;}h&&N.closeSync(e);b=0<c?b.slice(0,c).toString("utf-8"):null}else"undefined"!=typeof g&&"function"==typeof g.prompt?(b=g.prompt("Input: "),null!==b&&(b+="\n")):"function"==typeof readline&&(b=readline(),null!==b&&(b+="\n"));if(!b)return null;a.input=ra(b,!0)}return a.input.shift()},put_char:function(a,b){null===b||10===b?(d.print(za(a.output,0)),a.output=[]):0!=b&&a.output.push(b)},flush:function(a){a.output&&0<a.output.length&&(d.print(za(a.output,0)),
a.output=[])}},default_tty1_ops:{put_char:function(a,b){null===b||10===b?(d.printErr(za(a.output,0)),a.output=[]):0!=b&&a.output.push(b)},flush:function(a){a.output&&0<a.output.length&&(d.printErr(za(a.output,0)),a.output=[])}}},A={ops_table:null,mount:function(){return A.createNode(null,"/",16895,0)},createNode:function(a,b,c,d){if(e.isBlkdev(c)||e.isFIFO(c))throw new e.ErrnoError(q.EPERM);A.ops_table||(A.ops_table={dir:{node:{getattr:A.node_ops.getattr,setattr:A.node_ops.setattr,lookup:A.node_ops.lookup,
mknod:A.node_ops.mknod,rename:A.node_ops.rename,unlink:A.node_ops.unlink,rmdir:A.node_ops.rmdir,readdir:A.node_ops.readdir,symlink:A.node_ops.symlink},stream:{llseek:A.stream_ops.llseek}},file:{node:{getattr:A.node_ops.getattr,setattr:A.node_ops.setattr},stream:{llseek:A.stream_ops.llseek,read:A.stream_ops.read,write:A.stream_ops.write,allocate:A.stream_ops.allocate,mmap:A.stream_ops.mmap,msync:A.stream_ops.msync}},link:{node:{getattr:A.node_ops.getattr,setattr:A.node_ops.setattr,readlink:A.node_ops.readlink},
stream:{}},chrdev:{node:{getattr:A.node_ops.getattr,setattr:A.node_ops.setattr},stream:e.chrdev_stream_ops}});c=e.createNode(a,b,c,d);e.isDir(c.mode)?(c.node_ops=A.ops_table.dir.node,c.stream_ops=A.ops_table.dir.stream,c.contents={}):e.isFile(c.mode)?(c.node_ops=A.ops_table.file.node,c.stream_ops=A.ops_table.file.stream,c.usedBytes=0,c.contents=null):e.isLink(c.mode)?(c.node_ops=A.ops_table.link.node,c.stream_ops=A.ops_table.link.stream):e.isChrdev(c.mode)&&(c.node_ops=A.ops_table.chrdev.node,c.stream_ops=
A.ops_table.chrdev.stream);c.timestamp=Date.now();a&&(a.contents[b]=c);return c},getFileDataAsRegularArray:function(a){if(a.contents&&a.contents.subarray){for(var b=[],c=0;c<a.usedBytes;++c)b.push(a.contents[c]);return b}return a.contents},getFileDataAsTypedArray:function(a){return a.contents?a.contents.subarray?a.contents.subarray(0,a.usedBytes):new Uint8Array(a.contents):new Uint8Array},expandFileStorage:function(a,b){a.contents&&a.contents.subarray&&b>a.contents.length&&(a.contents=A.getFileDataAsRegularArray(a),
a.usedBytes=a.contents.length);if(!a.contents||a.contents.subarray){var c=a.contents?a.contents.length:0;c>=b||(b=Math.max(b,c*(1048576>c?2:1.125)|0),0!=c&&(b=Math.max(b,256)),c=a.contents,a.contents=new Uint8Array(b),0<a.usedBytes&&a.contents.set(c.subarray(0,a.usedBytes),0))}else for(!a.contents&&0<b&&(a.contents=[]);a.contents.length<b;)a.contents.push(0)},resizeFileStorage:function(a,b){if(a.usedBytes!=b)if(0==b)a.contents=null,a.usedBytes=0;else{if(!a.contents||a.contents.subarray){var c=a.contents;
a.contents=new Uint8Array(new ArrayBuffer(b));c&&a.contents.set(c.subarray(0,Math.min(b,a.usedBytes)))}else if(a.contents||(a.contents=[]),a.contents.length>b)a.contents.length=b;else for(;a.contents.length<b;)a.contents.push(0);a.usedBytes=b}},node_ops:{getattr:function(a){var b={};b.dev=e.isChrdev(a.mode)?a.id:1;b.ino=a.id;b.mode=a.mode;b.nlink=1;b.uid=0;b.gid=0;b.rdev=a.rdev;e.isDir(a.mode)?b.size=4096:e.isFile(a.mode)?b.size=a.usedBytes:b.size=e.isLink(a.mode)?a.link.length:0;b.atime=new Date(a.timestamp);
b.mtime=new Date(a.timestamp);b.ctime=new Date(a.timestamp);b.blksize=4096;b.blocks=Math.ceil(b.size/b.blksize);return b},setattr:function(a,b){void 0!==b.mode&&(a.mode=b.mode);void 0!==b.timestamp&&(a.timestamp=b.timestamp);void 0!==b.size&&A.resizeFileStorage(a,b.size)},lookup:function(){throw e.genericErrors[q.ENOENT];},mknod:function(a,b,c,d){return A.createNode(a,b,c,d)},rename:function(a,b,c){if(e.isDir(a.mode)){try{var d=e.lookupNode(b,c)}catch(t){}if(d)for(var m in d.contents)throw new e.ErrnoError(q.ENOTEMPTY);
}delete a.parent.contents[a.name];a.name=c;b.contents[c]=a;a.parent=b},unlink:function(a,b){delete a.contents[b]},rmdir:function(a,b){var c=e.lookupNode(a,b),d;for(d in c.contents)throw new e.ErrnoError(q.ENOTEMPTY);delete a.contents[b]},readdir:function(a){var b=[".",".."],c;for(c in a.contents)a.contents.hasOwnProperty(c)&&b.push(c);return b},symlink:function(a,b,c){a=A.createNode(a,b,41471,0);a.link=c;return a},readlink:function(a){if(!e.isLink(a.mode))throw new e.ErrnoError(q.EINVAL);return a.link}},
stream_ops:{read:function(a,b,c,d,e){var f=a.node.contents;if(e>=a.node.usedBytes)return 0;a=Math.min(a.node.usedBytes-e,d);D(0<=a);if(8<a&&f.subarray)b.set(f.subarray(e,e+a),c);else for(d=0;d<a;d++)b[c+d]=f[e+d];return a},write:function(a,b,c,d,e,g){if(!d)return 0;a=a.node;a.timestamp=Date.now();if(b.subarray&&(!a.contents||a.contents.subarray)){if(g)return a.contents=b.subarray(c,c+d),a.usedBytes=d;if(0===a.usedBytes&&0===e)return a.contents=new Uint8Array(b.subarray(c,c+d)),a.usedBytes=d;if(e+
d<=a.usedBytes)return a.contents.set(b.subarray(c,c+d),e),d}A.expandFileStorage(a,e+d);if(a.contents.subarray&&b.subarray)a.contents.set(b.subarray(c,c+d),e);else for(g=0;g<d;g++)a.contents[e+g]=b[c+g];a.usedBytes=Math.max(a.usedBytes,e+d);return d},llseek:function(a,b,c){1===c?b+=a.position:2===c&&e.isFile(a.node.mode)&&(b+=a.node.usedBytes);if(0>b)throw new e.ErrnoError(q.EINVAL);return b},allocate:function(a,b,c){A.expandFileStorage(a.node,b+c);a.node.usedBytes=Math.max(a.node.usedBytes,b+c)},
mmap:function(a,b,c,d,m,g,n){if(!e.isFile(a.node.mode))throw new e.ErrnoError(q.ENODEV);c=a.node.contents;if(n&2||c.buffer!==b&&c.buffer!==b.buffer){if(0<m||m+d<a.node.usedBytes)c=c.subarray?c.subarray(m,m+d):Array.prototype.slice.call(c,m,m+d);a=!0;d=ua(d);if(!d)throw new e.ErrnoError(q.ENOMEM);b.set(c,d)}else a=!1,d=c.byteOffset;return{ptr:d,allocated:a}},msync:function(a,b,c,d,m){if(!e.isFile(a.node.mode))throw new e.ErrnoError(q.ENODEV);if(m&2)return 0;A.stream_ops.write(a,b,0,d,c,!1);return 0}}},
L={dbs:{},indexedDB:function(){if("undefined"!==typeof indexedDB)return indexedDB;var a=null;"object"===typeof g&&(a=g.indexedDB||g.mozIndexedDB||g.webkitIndexedDB||g.msIndexedDB);D(a,"IDBFS used, but indexedDB not supported");return a},DB_VERSION:21,DB_STORE_NAME:"FILE_DATA",mount:function(a){return A.mount.apply(null,arguments)},syncfs:function(a,b,c){L.getLocalSet(a,function(d,e){if(d)return c(d);L.getRemoteSet(a,function(a,d){if(a)return c(a);a=b?d:e;d=b?e:d;L.reconcile(a,d,c)})})},getDB:function(a,
b){var c=L.dbs[a];if(c)return b(null,c);try{var d=L.indexedDB().open(a,L.DB_VERSION)}catch(m){return b(m)}if(!d)return b("Unable to connect to IndexedDB");d.onupgradeneeded=function(a){var b=a.target.result;a=a.target.transaction;b=b.objectStoreNames.contains(L.DB_STORE_NAME)?a.objectStore(L.DB_STORE_NAME):b.createObjectStore(L.DB_STORE_NAME);b.indexNames.contains("timestamp")||b.createIndex("timestamp","timestamp",{unique:!1})};d.onsuccess=function(){c=d.result;L.dbs[a]=c;b(null,c)};d.onerror=function(a){b(this.error);
a.preventDefault()}},getLocalSet:function(a,b){function c(a){return"."!==a&&".."!==a}function d(a){return function(b){return x.join2(a,b)}}var m={};for(a=e.readdir(a.mountpoint).filter(c).map(d(a.mountpoint));a.length;){var g=a.pop();try{var n=e.stat(g)}catch(K){return b(K)}e.isDir(n.mode)&&a.push.apply(a,e.readdir(g).filter(c).map(d(g)));m[g]={timestamp:n.mtime}}return b(null,{type:"local",entries:m})},getRemoteSet:function(a,b){var c={};L.getDB(a.mountpoint,function(a,d){if(a)return b(a);try{var f=
d.transaction([L.DB_STORE_NAME],"readonly");f.onerror=function(a){b(this.error);a.preventDefault()};var e=f.objectStore(L.DB_STORE_NAME),m=e.index("timestamp");m.openKeyCursor().onsuccess=function(a){a=a.target.result;if(!a)return b(null,{type:"remote",db:d,entries:c});c[a.primaryKey]={timestamp:a.key};a["continue"]()}}catch(Ac){return b(Ac)}})},loadLocalEntry:function(a,b){try{var c=e.lookupPath(a);var d=c.node;var m=e.stat(a)}catch(t){return b(t)}return e.isDir(m.mode)?b(null,{timestamp:m.mtime,
mode:m.mode}):e.isFile(m.mode)?(d.contents=A.getFileDataAsTypedArray(d),b(null,{timestamp:m.mtime,mode:m.mode,contents:d.contents})):b(Error("node type not supported"))},storeLocalEntry:function(a,b,c){try{if(e.isDir(b.mode))e.mkdir(a,b.mode);else if(e.isFile(b.mode))e.writeFile(a,b.contents,{canOwn:!0});else return c(Error("node type not supported"));e.chmod(a,b.mode);e.utime(a,b.timestamp,b.timestamp)}catch(f){return c(f)}c(null)},removeLocalEntry:function(a,b){try{e.lookupPath(a);var c=e.stat(a);
e.isDir(c.mode)?e.rmdir(a):e.isFile(c.mode)&&e.unlink(a)}catch(f){return b(f)}b(null)},loadRemoteEntry:function(a,b,c){a=a.get(b);a.onsuccess=function(a){c(null,a.target.result)};a.onerror=function(a){c(this.error);a.preventDefault()}},storeRemoteEntry:function(a,b,c,d){a=a.put(c,b);a.onsuccess=function(){d(null)};a.onerror=function(a){d(this.error);a.preventDefault()}},removeRemoteEntry:function(a,b,c){a=a["delete"](b);a.onsuccess=function(){c(null)};a.onerror=function(a){c(this.error);a.preventDefault()}},
reconcile:function(a,b,c){function d(a){if(a){if(!d.errored)return d.errored=!0,c(a)}else if(++h>=e)return c(null)}var e=0,g=[];Object.keys(a.entries).forEach(function(c){var d=a.entries[c],f=b.entries[c];if(!f||d.timestamp>f.timestamp)g.push(c),e++});var n=[];Object.keys(b.entries).forEach(function(b){var c=a.entries[b];c||(n.push(b),e++)});if(!e)return c(null);var h=0,k="remote"===a.type?a.db:b.db;k=k.transaction([L.DB_STORE_NAME],"readwrite");var l=k.objectStore(L.DB_STORE_NAME);k.onerror=function(a){d(this.error);
a.preventDefault()};g.sort().forEach(function(a){"local"===b.type?L.loadRemoteEntry(l,a,function(b,c){if(b)return d(b);L.storeLocalEntry(a,c,d)}):L.loadLocalEntry(a,function(b,c){if(b)return d(b);L.storeRemoteEntry(l,a,c,d)})});n.sort().reverse().forEach(function(a){"local"===b.type?L.removeLocalEntry(a,d):L.removeRemoteEntry(l,a,d)})}},H={isWindows:!1,staticInit:function(){H.isWindows=!!process.platform.match(/^win/);var a=process.binding("constants");a.fs&&(a=a.fs);H.flagsForNodeMap={1024:a.O_APPEND,
64:a.O_CREAT,128:a.O_EXCL,0:a.O_RDONLY,2:a.O_RDWR,4096:a.O_SYNC,512:a.O_TRUNC,1:a.O_WRONLY}},bufferFrom:function(a){return Buffer.alloc?Buffer.from(a):new Buffer(a)},mount:function(a){D(ca);return H.createNode(null,"/",H.getMode(a.opts.root),0)},createNode:function(a,b,c){if(!e.isDir(c)&&!e.isFile(c)&&!e.isLink(c))throw new e.ErrnoError(q.EINVAL);a=e.createNode(a,b,c);a.node_ops=H.node_ops;a.stream_ops=H.stream_ops;return a},getMode:function(a){try{var b=N.lstatSync(a);H.isWindows&&(b.mode|=(b.mode&
292)>>2)}catch(c){if(!c.code)throw c;throw new e.ErrnoError(q[c.code]);}return b.mode},realPath:function(a){for(var b=[];a.parent!==a;)b.push(a.name),a=a.parent;b.push(a.mount.opts.root);b.reverse();return x.join.apply(null,b)},flagsForNode:function(a){a&=-2097153;a&=-2049;a&=-32769;a&=-524289;var b=0,c;for(c in H.flagsForNodeMap)a&c&&(b|=H.flagsForNodeMap[c],a^=c);if(a)throw new e.ErrnoError(q.EINVAL);return b},node_ops:{getattr:function(a){a=H.realPath(a);try{var b=N.lstatSync(a)}catch(c){if(!c.code)throw c;
throw new e.ErrnoError(q[c.code]);}H.isWindows&&!b.blksize&&(b.blksize=4096);H.isWindows&&!b.blocks&&(b.blocks=(b.size+b.blksize-1)/b.blksize|0);return{dev:b.dev,ino:b.ino,mode:b.mode,nlink:b.nlink,uid:b.uid,gid:b.gid,rdev:b.rdev,size:b.size,atime:b.atime,mtime:b.mtime,ctime:b.ctime,blksize:b.blksize,blocks:b.blocks}},setattr:function(a,b){var c=H.realPath(a);try{void 0!==b.mode&&(N.chmodSync(c,b.mode),a.mode=b.mode);if(void 0!==b.timestamp){var d=new Date(b.timestamp);N.utimesSync(c,d,d)}void 0!==
b.size&&N.truncateSync(c,b.size)}catch(m){if(!m.code)throw m;throw new e.ErrnoError(q[m.code]);}},lookup:function(a,b){var c=x.join2(H.realPath(a),b);c=H.getMode(c);return H.createNode(a,b,c)},mknod:function(a,b,c,d){a=H.createNode(a,b,c,d);b=H.realPath(a);try{e.isDir(a.mode)?N.mkdirSync(b,a.mode):N.writeFileSync(b,"",{mode:a.mode})}catch(m){if(!m.code)throw m;throw new e.ErrnoError(q[m.code]);}return a},rename:function(a,b,c){a=H.realPath(a);b=x.join2(H.realPath(b),c);try{N.renameSync(a,b)}catch(f){if(!f.code)throw f;
throw new e.ErrnoError(q[f.code]);}},unlink:function(a,b){a=x.join2(H.realPath(a),b);try{N.unlinkSync(a)}catch(c){if(!c.code)throw c;throw new e.ErrnoError(q[c.code]);}},rmdir:function(a,b){a=x.join2(H.realPath(a),b);try{N.rmdirSync(a)}catch(c){if(!c.code)throw c;throw new e.ErrnoError(q[c.code]);}},readdir:function(a){a=H.realPath(a);try{return N.readdirSync(a)}catch(b){if(!b.code)throw b;throw new e.ErrnoError(q[b.code]);}},symlink:function(a,b,c){a=x.join2(H.realPath(a),b);try{N.symlinkSync(c,
a)}catch(f){if(!f.code)throw f;throw new e.ErrnoError(q[f.code]);}},readlink:function(a){var b=H.realPath(a);try{return b=N.readlinkSync(b),b=vc.relative(vc.resolve(a.mount.opts.root),b)}catch(c){if(!c.code)throw c;throw new e.ErrnoError(q[c.code]);}}},stream_ops:{open:function(a){var b=H.realPath(a.node);try{e.isFile(a.node.mode)&&(a.nfd=N.openSync(b,H.flagsForNode(a.flags)))}catch(c){if(!c.code)throw c;throw new e.ErrnoError(q[c.code]);}},close:function(a){try{e.isFile(a.node.mode)&&a.nfd&&N.closeSync(a.nfd)}catch(b){if(!b.code)throw b;
throw new e.ErrnoError(q[b.code]);}},read:function(a,b,c,d,m){if(0===d)return 0;try{return N.readSync(a.nfd,H.bufferFrom(b.buffer),c,d,m)}catch(t){throw new e.ErrnoError(q[t.code]);}},write:function(a,b,c,d,m){try{return N.writeSync(a.nfd,H.bufferFrom(b.buffer),c,d,m)}catch(t){throw new e.ErrnoError(q[t.code]);}},llseek:function(a,b,c){if(1===c)b+=a.position;else if(2===c&&e.isFile(a.node.mode))try{var d=N.fstatSync(a.nfd);b+=d.size}catch(m){throw new e.ErrnoError(q[m.code]);}if(0>b)throw new e.ErrnoError(q.EINVAL);
return b}}},Q={DIR_MODE:16895,FILE_MODE:33279,reader:null,mount:function(a){function b(a){a=a.split("/");for(var b=d,c=0;c<a.length-1;c++){var f=a.slice(0,c+1).join("/");e[f]||(e[f]=Q.createNode(b,a[c],Q.DIR_MODE,0));b=e[f]}return b}function c(a){a=a.split("/");return a[a.length-1]}D(Z);Q.reader||(Q.reader=new FileReaderSync);var d=Q.createNode(null,"/",Q.DIR_MODE,0),e={};Array.prototype.forEach.call(a.opts.files||[],function(a){Q.createNode(b(a.name),c(a.name),Q.FILE_MODE,0,a,a.lastModifiedDate)});
(a.opts.blobs||[]).forEach(function(a){Q.createNode(b(a.name),c(a.name),Q.FILE_MODE,0,a.data)});(a.opts.packages||[]).forEach(function(a){a.metadata.files.forEach(function(d){var f=d.filename.substr(1);Q.createNode(b(f),c(f),Q.FILE_MODE,0,a.blob.slice(d.start,d.end))})});return d},createNode:function(a,b,c,d,m,g){d=e.createNode(a,b,c);d.mode=c;d.node_ops=Q.node_ops;d.stream_ops=Q.stream_ops;d.timestamp=(g||new Date).getTime();D(Q.FILE_MODE!==Q.DIR_MODE);c===Q.FILE_MODE?(d.size=m.size,d.contents=m):
(d.size=4096,d.contents={});a&&(a.contents[b]=d);return d},node_ops:{getattr:function(a){return{dev:1,ino:void 0,mode:a.mode,nlink:1,uid:0,gid:0,rdev:void 0,size:a.size,atime:new Date(a.timestamp),mtime:new Date(a.timestamp),ctime:new Date(a.timestamp),blksize:4096,blocks:Math.ceil(a.size/4096)}},setattr:function(a,b){void 0!==b.mode&&(a.mode=b.mode);void 0!==b.timestamp&&(a.timestamp=b.timestamp)},lookup:function(){throw new e.ErrnoError(q.ENOENT);},mknod:function(){throw new e.ErrnoError(q.EPERM);
},rename:function(){throw new e.ErrnoError(q.EPERM);},unlink:function(){throw new e.ErrnoError(q.EPERM);},rmdir:function(){throw new e.ErrnoError(q.EPERM);},readdir:function(a){var b=[".",".."],c;for(c in a.contents)a.contents.hasOwnProperty(c)&&b.push(c);return b},symlink:function(){throw new e.ErrnoError(q.EPERM);},readlink:function(){throw new e.ErrnoError(q.EPERM);}},stream_ops:{read:function(a,b,c,d,e){if(e>=a.node.size)return 0;a=a.node.contents.slice(e,e+d);d=Q.reader.readAsArrayBuffer(a);
b.set(new Uint8Array(d),c);return a.size},write:function(){throw new e.ErrnoError(q.EIO);},llseek:function(a,b,c){1===c?b+=a.position:2===c&&e.isFile(a.node.mode)&&(b+=a.node.size);if(0>b)throw new e.ErrnoError(q.EINVAL);return b}}};W+=16;W+=16;W+=16;var e={root:null,mounts:[],devices:{},streams:[],nextInode:1,nameTable:null,currentPath:"/",initialized:!1,ignorePermissions:!0,trackingDelegate:{},tracking:{openFlags:{READ:1,WRITE:2}},ErrnoError:null,genericErrors:{},filesystems:null,syncFSRequests:0,
handleFSError:function(a){if(!(a instanceof e.ErrnoError)){a:{var b=Error();if(!b.stack){try{throw Error(0);}catch(c){b=c}if(!b.stack){b="(no stack trace available)";break a}}b=b.stack.toString()}d.extraStackTrace&&(b+="\n"+d.extraStackTrace());b=Cc(b);throw a+" : "+b;}return Ba(a.errno)},lookupPath:function(a,b){a=x.resolve(e.cwd(),a);b=b||{};if(!a)return{path:"",node:null};var c={follow_mount:!0,recurse_count:0},d;for(d in c)void 0===b[d]&&(b[d]=c[d]);if(8<b.recurse_count)throw new e.ErrnoError(q.ELOOP);
a=x.normalizeArray(a.split("/").filter(function(a){return!!a}),!1);var m=e.root;c="/";for(d=0;d<a.length;d++){var g=d===a.length-1;if(g&&b.parent)break;m=e.lookupNode(m,a[d]);c=x.join2(c,a[d]);e.isMountpoint(m)&&(!g||g&&b.follow_mount)&&(m=m.mounted.root);if(!g||b.follow)for(g=0;e.isLink(m.mode);)if(m=e.readlink(c),c=x.resolve(x.dirname(c),m),m=e.lookupPath(c,{recurse_count:b.recurse_count}),m=m.node,40<g++)throw new e.ErrnoError(q.ELOOP);}return{path:c,node:m}},getPath:function(a){for(var b;;){if(e.isRoot(a))return a=
a.mount.mountpoint,b?"/"!==a[a.length-1]?a+"/"+b:a+b:a;b=b?a.name+"/"+b:a.name;a=a.parent}},hashName:function(a,b){for(var c=0,d=0;d<b.length;d++)c=(c<<5)-c+b.charCodeAt(d)|0;return(a+c>>>0)%e.nameTable.length},hashAddNode:function(a){var b=e.hashName(a.parent.id,a.name);a.name_next=e.nameTable[b];e.nameTable[b]=a},hashRemoveNode:function(a){var b=e.hashName(a.parent.id,a.name);if(e.nameTable[b]===a)e.nameTable[b]=a.name_next;else for(b=e.nameTable[b];b;){if(b.name_next===a){b.name_next=a.name_next;
break}b=b.name_next}},lookupNode:function(a,b){var c=e.mayLookup(a);if(c)throw new e.ErrnoError(c,a);c=e.hashName(a.id,b);for(c=e.nameTable[c];c;c=c.name_next){var d=c.name;if(c.parent.id===a.id&&d===b)return c}return e.lookup(a,b)},createNode:function(a,b,c,d){e.FSNode||(e.FSNode=function(a,b,c,d){a||(a=this);this.parent=a;this.mount=a.mount;this.mounted=null;this.id=e.nextInode++;this.name=b;this.mode=c;this.node_ops={};this.stream_ops={};this.rdev=d},e.FSNode.prototype={},Object.defineProperties(e.FSNode.prototype,
{read:{get:function(){return 365===(this.mode&365)},set:function(a){a?this.mode|=365:this.mode&=-366}},write:{get:function(){return 146===(this.mode&146)},set:function(a){a?this.mode|=146:this.mode&=-147}},isFolder:{get:function(){return e.isDir(this.mode)}},isDevice:{get:function(){return e.isChrdev(this.mode)}}}));a=new e.FSNode(a,b,c,d);e.hashAddNode(a);return a},destroyNode:function(a){e.hashRemoveNode(a)},isRoot:function(a){return a===a.parent},isMountpoint:function(a){return!!a.mounted},isFile:function(a){return 32768===
(a&61440)},isDir:function(a){return 16384===(a&61440)},isLink:function(a){return 40960===(a&61440)},isChrdev:function(a){return 8192===(a&61440)},isBlkdev:function(a){return 24576===(a&61440)},isFIFO:function(a){return 4096===(a&61440)},isSocket:function(a){return 49152===(a&49152)},flagModes:{r:0,rs:1052672,"r+":2,w:577,wx:705,xw:705,"w+":578,"wx+":706,"xw+":706,a:1089,ax:1217,xa:1217,"a+":1090,"ax+":1218,"xa+":1218},modeStringToFlags:function(a){var b=e.flagModes[a];if("undefined"===typeof b)throw Error("Unknown file open mode: "+
a);return b},flagsToPermissionString:function(a){var b=["r","w","rw"][a&3];a&512&&(b+="w");return b},nodePermissions:function(a,b){if(e.ignorePermissions)return 0;if(-1===b.indexOf("r")||a.mode&292){if(-1!==b.indexOf("w")&&!(a.mode&146)||-1!==b.indexOf("x")&&!(a.mode&73))return q.EACCES}else return q.EACCES;return 0},mayLookup:function(a){var b=e.nodePermissions(a,"x");return b?b:a.node_ops.lookup?0:q.EACCES},mayCreate:function(a,b){try{return e.lookupNode(a,b),q.EEXIST}catch(c){}return e.nodePermissions(a,
"wx")},mayDelete:function(a,b,c){try{var d=e.lookupNode(a,b)}catch(m){return m.errno}if(a=e.nodePermissions(a,"wx"))return a;if(c){if(!e.isDir(d.mode))return q.ENOTDIR;if(e.isRoot(d)||e.getPath(d)===e.cwd())return q.EBUSY}else if(e.isDir(d.mode))return q.EISDIR;return 0},mayOpen:function(a,b){return a?e.isLink(a.mode)?q.ELOOP:e.isDir(a.mode)&&("r"!==e.flagsToPermissionString(b)||b&512)?q.EISDIR:e.nodePermissions(a,e.flagsToPermissionString(b)):q.ENOENT},MAX_OPEN_FDS:4096,nextfd:function(a,b){a=a||
0;for(b=b||e.MAX_OPEN_FDS;a<=b;a++)if(!e.streams[a])return a;throw new e.ErrnoError(q.EMFILE);},getStream:function(a){return e.streams[a]},createStream:function(a,b,c){e.FSStream||(e.FSStream=function(){},e.FSStream.prototype={},Object.defineProperties(e.FSStream.prototype,{object:{get:function(){return this.node},set:function(a){this.node=a}}}));var d=new e.FSStream,m;for(m in a)d[m]=a[m];a=d;b=e.nextfd(b,c);a.fd=b;return e.streams[b]=a},closeStream:function(a){e.streams[a]=null},chrdev_stream_ops:{open:function(a){var b=
e.getDevice(a.node.rdev);a.stream_ops=b.stream_ops;a.stream_ops.open&&a.stream_ops.open(a)},llseek:function(){throw new e.ErrnoError(q.ESPIPE);}},major:function(a){return a>>8},minor:function(a){return a&255},makedev:function(a,b){return a<<8|b},registerDevice:function(a,b){e.devices[a]={stream_ops:b}},getDevice:function(a){return e.devices[a]},getMounts:function(a){var b=[];for(a=[a];a.length;){var c=a.pop();b.push(c);a.push.apply(a,c.mounts)}return b},syncfs:function(a,b){function c(a){D(0<e.syncFSRequests);
e.syncFSRequests--;return b(a)}function d(a){if(a){if(!d.errored)return d.errored=!0,c(a)}else++g>=m.length&&c(null)}"function"===typeof a&&(b=a,a=!1);e.syncFSRequests++;1<e.syncFSRequests&&console.log("warning: "+e.syncFSRequests+" FS.syncfs operations in flight at once, probably just doing extra work");var m=e.getMounts(e.root.mount),g=0;m.forEach(function(b){if(!b.type.syncfs)return d(null);b.type.syncfs(b,a,d)})},mount:function(a,b,c){var d="/"===c,m=!c;if(d&&e.root)throw new e.ErrnoError(q.EBUSY);
if(!d&&!m){var g=e.lookupPath(c,{follow_mount:!1});c=g.path;g=g.node;if(e.isMountpoint(g))throw new e.ErrnoError(q.EBUSY);if(!e.isDir(g.mode))throw new e.ErrnoError(q.ENOTDIR);}b={type:a,opts:b,mountpoint:c,mounts:[]};a=a.mount(b);a.mount=b;b.root=a;d?e.root=a:g&&(g.mounted=b,g.mount&&g.mount.mounts.push(b));return a},unmount:function(a){a=e.lookupPath(a,{follow_mount:!1});if(!e.isMountpoint(a.node))throw new e.ErrnoError(q.EINVAL);a=a.node;var b=a.mounted,c=e.getMounts(b);Object.keys(e.nameTable).forEach(function(a){for(a=
e.nameTable[a];a;){var b=a.name_next;-1!==c.indexOf(a.mount)&&e.destroyNode(a);a=b}});a.mounted=null;b=a.mount.mounts.indexOf(b);D(-1!==b);a.mount.mounts.splice(b,1)},lookup:function(a,b){return a.node_ops.lookup(a,b)},mknod:function(a,b,c){var d=e.lookupPath(a,{parent:!0});d=d.node;a=x.basename(a);if(!a||"."===a||".."===a)throw new e.ErrnoError(q.EINVAL);var g=e.mayCreate(d,a);if(g)throw new e.ErrnoError(g);if(!d.node_ops.mknod)throw new e.ErrnoError(q.EPERM);return d.node_ops.mknod(d,a,b,c)},create:function(a,
b){b=void 0!==b?b:438;b&=4095;b|=32768;return e.mknod(a,b,0)},mkdir:function(a,b){b=void 0!==b?b:511;b&=1023;b|=16384;return e.mknod(a,b,0)},mkdirTree:function(a,b){a=a.split("/");for(var c="",d=0;d<a.length;++d)if(a[d]){c+="/"+a[d];try{e.mkdir(c,b)}catch(m){if(m.errno!=q.EEXIST)throw m;}}},mkdev:function(a,b,c){"undefined"===typeof c&&(c=b,b=438);b|=8192;return e.mknod(a,b,c)},symlink:function(a,b){if(!x.resolve(a))throw new e.ErrnoError(q.ENOENT);var c=e.lookupPath(b,{parent:!0});c=c.node;if(!c)throw new e.ErrnoError(q.ENOENT);
b=x.basename(b);var d=e.mayCreate(c,b);if(d)throw new e.ErrnoError(d);if(!c.node_ops.symlink)throw new e.ErrnoError(q.EPERM);return c.node_ops.symlink(c,b,a)},rename:function(a,b){var c=x.dirname(a),d=x.dirname(b),g=x.basename(a),h=x.basename(b);try{var n=e.lookupPath(a,{parent:!0});var k=n.node;n=e.lookupPath(b,{parent:!0});var l=n.node}catch(P){throw new e.ErrnoError(q.EBUSY);}if(!k||!l)throw new e.ErrnoError(q.ENOENT);if(k.mount!==l.mount)throw new e.ErrnoError(q.EXDEV);n=e.lookupNode(k,g);d=x.relative(a,
d);if("."!==d.charAt(0))throw new e.ErrnoError(q.EINVAL);d=x.relative(b,c);if("."!==d.charAt(0))throw new e.ErrnoError(q.ENOTEMPTY);try{var p=e.lookupNode(l,h)}catch(P){}if(n!==p){c=e.isDir(n.mode);if(g=e.mayDelete(k,g,c))throw new e.ErrnoError(g);if(g=p?e.mayDelete(l,h,c):e.mayCreate(l,h))throw new e.ErrnoError(g);if(!k.node_ops.rename)throw new e.ErrnoError(q.EPERM);if(e.isMountpoint(n)||p&&e.isMountpoint(p))throw new e.ErrnoError(q.EBUSY);if(l!==k&&(g=e.nodePermissions(k,"w")))throw new e.ErrnoError(g);
try{e.trackingDelegate.willMovePath&&e.trackingDelegate.willMovePath(a,b)}catch(P){console.log("FS.trackingDelegate['willMovePath']('"+a+"', '"+b+"') threw an exception: "+P.message)}e.hashRemoveNode(n);try{k.node_ops.rename(n,l,h)}catch(P){throw P;}finally{e.hashAddNode(n)}try{if(e.trackingDelegate.onMovePath)e.trackingDelegate.onMovePath(a,b)}catch(P){console.log("FS.trackingDelegate['onMovePath']('"+a+"', '"+b+"') threw an exception: "+P.message)}}},rmdir:function(a){var b=e.lookupPath(a,{parent:!0});
b=b.node;var c=x.basename(a),d=e.lookupNode(b,c),g=e.mayDelete(b,c,!0);if(g)throw new e.ErrnoError(g);if(!b.node_ops.rmdir)throw new e.ErrnoError(q.EPERM);if(e.isMountpoint(d))throw new e.ErrnoError(q.EBUSY);try{e.trackingDelegate.willDeletePath&&e.trackingDelegate.willDeletePath(a)}catch(t){console.log("FS.trackingDelegate['willDeletePath']('"+a+"') threw an exception: "+t.message)}b.node_ops.rmdir(b,c);e.destroyNode(d);try{if(e.trackingDelegate.onDeletePath)e.trackingDelegate.onDeletePath(a)}catch(t){console.log("FS.trackingDelegate['onDeletePath']('"+
a+"') threw an exception: "+t.message)}},readdir:function(a){a=e.lookupPath(a,{follow:!0});a=a.node;if(!a.node_ops.readdir)throw new e.ErrnoError(q.ENOTDIR);return a.node_ops.readdir(a)},unlink:function(a){var b=e.lookupPath(a,{parent:!0});b=b.node;var c=x.basename(a),d=e.lookupNode(b,c),g=e.mayDelete(b,c,!1);if(g)throw new e.ErrnoError(g);if(!b.node_ops.unlink)throw new e.ErrnoError(q.EPERM);if(e.isMountpoint(d))throw new e.ErrnoError(q.EBUSY);try{e.trackingDelegate.willDeletePath&&e.trackingDelegate.willDeletePath(a)}catch(t){console.log("FS.trackingDelegate['willDeletePath']('"+
a+"') threw an exception: "+t.message)}b.node_ops.unlink(b,c);e.destroyNode(d);try{if(e.trackingDelegate.onDeletePath)e.trackingDelegate.onDeletePath(a)}catch(t){console.log("FS.trackingDelegate['onDeletePath']('"+a+"') threw an exception: "+t.message)}},readlink:function(a){a=e.lookupPath(a);a=a.node;if(!a)throw new e.ErrnoError(q.ENOENT);if(!a.node_ops.readlink)throw new e.ErrnoError(q.EINVAL);return x.resolve(e.getPath(a.parent),a.node_ops.readlink(a))},stat:function(a,b){a=e.lookupPath(a,{follow:!b});
a=a.node;if(!a)throw new e.ErrnoError(q.ENOENT);if(!a.node_ops.getattr)throw new e.ErrnoError(q.EPERM);return a.node_ops.getattr(a)},lstat:function(a){return e.stat(a,!0)},chmod:function(a,b,c){"string"===typeof a&&(a=e.lookupPath(a,{follow:!c}),a=a.node);if(!a.node_ops.setattr)throw new e.ErrnoError(q.EPERM);a.node_ops.setattr(a,{mode:b&4095|a.mode&-4096,timestamp:Date.now()})},lchmod:function(a,b){e.chmod(a,b,!0)},fchmod:function(a,b){a=e.getStream(a);if(!a)throw new e.ErrnoError(q.EBADF);e.chmod(a.node,
b)},chown:function(a,b,c,d){"string"===typeof a&&(a=e.lookupPath(a,{follow:!d}),a=a.node);if(!a.node_ops.setattr)throw new e.ErrnoError(q.EPERM);a.node_ops.setattr(a,{timestamp:Date.now()})},lchown:function(a,b,c){e.chown(a,b,c,!0)},fchown:function(a,b,c){a=e.getStream(a);if(!a)throw new e.ErrnoError(q.EBADF);e.chown(a.node,b,c)},truncate:function(a,b){if(0>b)throw new e.ErrnoError(q.EINVAL);"string"===typeof a&&(a=e.lookupPath(a,{follow:!0}),a=a.node);if(!a.node_ops.setattr)throw new e.ErrnoError(q.EPERM);
if(e.isDir(a.mode))throw new e.ErrnoError(q.EISDIR);if(!e.isFile(a.mode))throw new e.ErrnoError(q.EINVAL);var c=e.nodePermissions(a,"w");if(c)throw new e.ErrnoError(c);a.node_ops.setattr(a,{size:b,timestamp:Date.now()})},ftruncate:function(a,b){a=e.getStream(a);if(!a)throw new e.ErrnoError(q.EBADF);if(0===(a.flags&2097155))throw new e.ErrnoError(q.EINVAL);e.truncate(a.node,b)},utime:function(a,b,c){a=e.lookupPath(a,{follow:!0});a=a.node;a.node_ops.setattr(a,{timestamp:Math.max(b,c)})},open:function(a,
b,c,f,g){if(""===a)throw new e.ErrnoError(q.ENOENT);b="string"===typeof b?e.modeStringToFlags(b):b;c="undefined"===typeof c?438:c;c=b&64?c&4095|32768:0;if("object"===typeof a)var m=a;else{a=x.normalize(a);try{var h=e.lookupPath(a,{follow:!(b&131072)});m=h.node}catch(K){}}h=!1;if(b&64)if(m){if(b&128)throw new e.ErrnoError(q.EEXIST);}else m=e.mknod(a,c,0),h=!0;if(!m)throw new e.ErrnoError(q.ENOENT);e.isChrdev(m.mode)&&(b&=-513);if(b&65536&&!e.isDir(m.mode))throw new e.ErrnoError(q.ENOTDIR);if(!h&&(c=
e.mayOpen(m,b)))throw new e.ErrnoError(c);b&512&&e.truncate(m,0);b&=-641;f=e.createStream({node:m,path:e.getPath(m),flags:b,seekable:!0,position:0,stream_ops:m.stream_ops,ungotten:[],error:!1},f,g);f.stream_ops.open&&f.stream_ops.open(f);!d.logReadFiles||b&1||(e.readFiles||(e.readFiles={}),a in e.readFiles||(e.readFiles[a]=1,d.printErr("read file: "+a)));try{e.trackingDelegate.onOpenFile&&(g=0,1!==(b&2097155)&&(g|=e.tracking.openFlags.READ),0!==(b&2097155)&&(g|=e.tracking.openFlags.WRITE),e.trackingDelegate.onOpenFile(a,
g))}catch(K){console.log("FS.trackingDelegate['onOpenFile']('"+a+"', flags) threw an exception: "+K.message)}return f},close:function(a){a.getdents&&(a.getdents=null);try{a.stream_ops.close&&a.stream_ops.close(a)}catch(b){throw b;}finally{e.closeStream(a.fd)}},llseek:function(a,b,c){if(!a.seekable||!a.stream_ops.llseek)throw new e.ErrnoError(q.ESPIPE);a.position=a.stream_ops.llseek(a,b,c);a.ungotten=[];return a.position},read:function(a,b,c,d,g){if(0>d||0>g)throw new e.ErrnoError(q.EINVAL);if(1===
(a.flags&2097155))throw new e.ErrnoError(q.EBADF);if(e.isDir(a.node.mode))throw new e.ErrnoError(q.EISDIR);if(!a.stream_ops.read)throw new e.ErrnoError(q.EINVAL);var f=!0;if("undefined"===typeof g)g=a.position,f=!1;else if(!a.seekable)throw new e.ErrnoError(q.ESPIPE);b=a.stream_ops.read(a,b,c,d,g);f||(a.position+=b);return b},write:function(a,b,c,d,g,h){if(0>d||0>g)throw new e.ErrnoError(q.EINVAL);if(0===(a.flags&2097155))throw new e.ErrnoError(q.EBADF);if(e.isDir(a.node.mode))throw new e.ErrnoError(q.EISDIR);
if(!a.stream_ops.write)throw new e.ErrnoError(q.EINVAL);a.flags&1024&&(g=e.llseek(a,0,2));var f=!0;if("undefined"===typeof g)g=a.position,f=!1;else if(!a.seekable)throw new e.ErrnoError(q.ESPIPE);b=a.stream_ops.write(a,b,c,d,g,h);f||(a.position+=b);try{if(a.path&&e.trackingDelegate.onWriteToFile)e.trackingDelegate.onWriteToFile(a.path)}catch(K){console.log("FS.trackingDelegate['onWriteToFile']('"+path+"') threw an exception: "+K.message)}return b},allocate:function(a,b,c){if(0>b||0>=c)throw new e.ErrnoError(q.EINVAL);
if(0===(a.flags&2097155))throw new e.ErrnoError(q.EBADF);if(!e.isFile(a.node.mode)&&!e.isDir(a.node.mode))throw new e.ErrnoError(q.ENODEV);if(!a.stream_ops.allocate)throw new e.ErrnoError(q.EOPNOTSUPP);a.stream_ops.allocate(a,b,c)},mmap:function(a,b,c,d,g,h,n){if(1===(a.flags&2097155))throw new e.ErrnoError(q.EACCES);if(!a.stream_ops.mmap)throw new e.ErrnoError(q.ENODEV);return a.stream_ops.mmap(a,b,c,d,g,h,n)},msync:function(a,b,c,d,e){return a&&a.stream_ops.msync?a.stream_ops.msync(a,b,c,d,e):0},
munmap:function(){return 0},ioctl:function(a,b,c){if(!a.stream_ops.ioctl)throw new e.ErrnoError(q.ENOTTY);return a.stream_ops.ioctl(a,b,c)},readFile:function(a,b){b=b||{};b.flags=b.flags||"r";b.encoding=b.encoding||"binary";if("utf8"!==b.encoding&&"binary"!==b.encoding)throw Error('Invalid encoding type "'+b.encoding+'"');var c,d=e.open(a,b.flags);a=e.stat(a);a=a.size;var g=new Uint8Array(a);e.read(d,g,0,a,0);"utf8"===b.encoding?c=za(g,0):"binary"===b.encoding&&(c=g);e.close(d);return c},writeFile:function(a,
b,c){c=c||{};c.flags=c.flags||"w";a=e.open(a,c.flags,c.mode);if("string"===typeof b){var d=new Uint8Array(Va(b)+1);b=Y(b,d,0,d.length);e.write(a,d,0,b,0,c.canOwn)}else if(ArrayBuffer.isView(b))e.write(a,b,0,b.byteLength,0,c.canOwn);else throw Error("Unsupported data type");e.close(a)},cwd:function(){return e.currentPath},chdir:function(a){a=e.lookupPath(a,{follow:!0});if(null===a.node)throw new e.ErrnoError(q.ENOENT);if(!e.isDir(a.node.mode))throw new e.ErrnoError(q.ENOTDIR);var b=e.nodePermissions(a.node,
"x");if(b)throw new e.ErrnoError(b);e.currentPath=a.path},createDefaultDirectories:function(){e.mkdir("/tmp");e.mkdir("/home");e.mkdir("/home/web_user")},createDefaultDevices:function(){e.mkdir("/dev");e.registerDevice(e.makedev(1,3),{read:function(){return 0},write:function(a,b,d,e){return e}});e.mkdev("/dev/null",e.makedev(1,3));ta.register(e.makedev(5,0),ta.default_tty_ops);ta.register(e.makedev(6,0),ta.default_tty1_ops);e.mkdev("/dev/tty",e.makedev(5,0));e.mkdev("/dev/tty1",e.makedev(6,0));if("undefined"!==
typeof crypto){var a=new Uint8Array(1);var b=function(){crypto.getRandomValues(a);return a[0]}}else b=ca?function(){return require("crypto").randomBytes(1)[0]}:function(){return 256*Math.random()|0};e.createDevice("/dev","random",b);e.createDevice("/dev","urandom",b);e.mkdir("/dev/shm");e.mkdir("/dev/shm/tmp")},createSpecialDirectories:function(){e.mkdir("/proc");e.mkdir("/proc/self");e.mkdir("/proc/self/fd");e.mount({mount:function(){var a=e.createNode("/proc/self","fd",16895,73);a.node_ops={lookup:function(a,
c){a=+c;var b=e.getStream(a);if(!b)throw new e.ErrnoError(q.EBADF);a={parent:null,mount:{mountpoint:"fake"},node_ops:{readlink:function(){return b.path}}};return a.parent=a}};return a}},{},"/proc/self/fd")},createStandardStreams:function(){d.stdin?e.createDevice("/dev","stdin",d.stdin):e.symlink("/dev/tty","/dev/stdin");d.stdout?e.createDevice("/dev","stdout",null,d.stdout):e.symlink("/dev/tty","/dev/stdout");d.stderr?e.createDevice("/dev","stderr",null,d.stderr):e.symlink("/dev/tty1","/dev/stderr");
var a=e.open("/dev/stdin","r");D(0===a.fd,"invalid handle for stdin ("+a.fd+")");a=e.open("/dev/stdout","w");D(1===a.fd,"invalid handle for stdout ("+a.fd+")");a=e.open("/dev/stderr","w");D(2===a.fd,"invalid handle for stderr ("+a.fd+")")},ensureErrnoError:function(){e.ErrnoError||(e.ErrnoError=function(a,b){this.node=b;this.setErrno=function(a){this.errno=a;for(var b in q)if(q[b]===a){this.code=b;break}};this.setErrno(a);this.message=ul[a];this.stack&&Object.defineProperty(this,"stack",{value:Error().stack,
writable:!0})},e.ErrnoError.prototype=Error(),e.ErrnoError.prototype.constructor=e.ErrnoError,[q.ENOENT].forEach(function(a){e.genericErrors[a]=new e.ErrnoError(a);e.genericErrors[a].stack="<generic error, no stack>"}))},staticInit:function(){e.ensureErrnoError();e.nameTable=Array(4096);e.mount(A,{},"/");e.createDefaultDirectories();e.createDefaultDevices();e.createSpecialDirectories();e.filesystems={MEMFS:A,IDBFS:L,NODEFS:H,WORKERFS:Q}},init:function(a,b,c){D(!e.init.initialized,"FS.init was previously called. If you want to initialize later with custom parameters, remove any earlier calls (note that one is automatically added to the generated code)");
e.init.initialized=!0;e.ensureErrnoError();d.stdin=a||d.stdin;d.stdout=b||d.stdout;d.stderr=c||d.stderr;e.createStandardStreams()},quit:function(){e.init.initialized=!1;var a=d._fflush;a&&a(0);for(a=0;a<e.streams.length;a++){var b=e.streams[a];b&&e.close(b)}},getMode:function(a,b){var c=0;a&&(c|=365);b&&(c|=146);return c},joinPath:function(a,b){a=x.join.apply(null,a);b&&"/"==a[0]&&(a=a.substr(1));return a},absolutePath:function(a,b){return x.resolve(b,a)},standardizePath:function(a){return x.normalize(a)},
findObject:function(a,b){a=e.analyzePath(a,b);if(a.exists)return a.object;Ba(a.error);return null},analyzePath:function(a,b){try{var c=e.lookupPath(a,{follow:!b});a=c.path}catch(m){}var d={isRoot:!1,exists:!1,error:0,name:null,path:null,object:null,parentExists:!1,parentPath:null,parentObject:null};try{c=e.lookupPath(a,{parent:!0}),d.parentExists=!0,d.parentPath=c.path,d.parentObject=c.node,d.name=x.basename(a),c=e.lookupPath(a,{follow:!b}),d.exists=!0,d.path=c.path,d.object=c.node,d.name=c.node.name,
d.isRoot="/"===c.path}catch(m){d.error=m.errno}return d},createFolder:function(a,b,c,d){a=x.join2("string"===typeof a?a:e.getPath(a),b);c=e.getMode(c,d);return e.mkdir(a,c)},createPath:function(a,b){a="string"===typeof a?a:e.getPath(a);for(b=b.split("/").reverse();b.length;){var c=b.pop();if(c){var d=x.join2(a,c);try{e.mkdir(d)}catch(m){}a=d}}return d},createFile:function(a,b,c,d,g){a=x.join2("string"===typeof a?a:e.getPath(a),b);d=e.getMode(d,g);return e.create(a,d)},createDataFile:function(a,b,
c,d,g,h){a=b?x.join2("string"===typeof a?a:e.getPath(a),b):a;d=e.getMode(d,g);g=e.create(a,d);if(c){if("string"===typeof c){a=Array(c.length);b=0;for(var f=c.length;b<f;++b)a[b]=c.charCodeAt(b);c=a}e.chmod(g,d|146);a=e.open(g,"w");e.write(a,c,0,c.length,0,h);e.close(a);e.chmod(g,d)}return g},createDevice:function(a,b,c,d){a=x.join2("string"===typeof a?a:e.getPath(a),b);b=e.getMode(!!c,!!d);e.createDevice.major||(e.createDevice.major=64);var f=e.makedev(e.createDevice.major++,0);e.registerDevice(f,
{open:function(a){a.seekable=!1},close:function(){d&&d.buffer&&d.buffer.length&&d(10)},read:function(a,b,d,f){for(var g=0,h=0;h<f;h++){try{var m=c()}catch(vl){throw new e.ErrnoError(q.EIO);}if(void 0===m&&0===g)throw new e.ErrnoError(q.EAGAIN);if(null===m||void 0===m)break;g++;b[d+h]=m}g&&(a.node.timestamp=Date.now());return g},write:function(a,b,c,f){for(var g=0;g<f;g++)try{d(b[c+g])}catch(P){throw new e.ErrnoError(q.EIO);}f&&(a.node.timestamp=Date.now());return g}});return e.mkdev(a,b,f)},createLink:function(a,
b,c){a=x.join2("string"===typeof a?a:e.getPath(a),b);return e.symlink(c,a)},forceLoadFile:function(a){if(a.isDevice||a.isFolder||a.link||a.contents)return!0;var b=!0;if("undefined"!==typeof XMLHttpRequest)throw Error("Lazy loading should have been performed (contents set) in createLazyFile, but it was not. Lazy loading only works in web workers. Use --embed-file or --preload-file in emcc on the main thread.");if(d.read)try{a.contents=ra(d.read(a.url),!0),a.usedBytes=a.contents.length}catch(c){b=!1}else throw Error("Cannot load without read() or XMLHttpRequest.");
b||Ba(q.EIO);return b},createLazyFile:function(a,b,c,d,g){function f(){this.lengthKnown=!1;this.chunks=[]}f.prototype.get=function(a){if(!(a>this.length-1||0>a)){var b=a%this.chunkSize;a=a/this.chunkSize|0;return this.getter(a)[b]}};f.prototype.setDataGetter=function(a){this.getter=a};f.prototype.cacheLength=function(){var a=new XMLHttpRequest;a.open("HEAD",c,!1);a.send(null);if(!(200<=a.status&&300>a.status||304===a.status))throw Error("Couldn't load "+c+". Status: "+a.status);var b=Number(a.getResponseHeader("Content-length")),
d,f=(d=a.getResponseHeader("Accept-Ranges"))&&"bytes"===d;a=(d=a.getResponseHeader("Content-Encoding"))&&"gzip"===d;var e=1048576;f||(e=b);var g=this;g.setDataGetter(function(a){var d=a*e,f=(a+1)*e-1;f=Math.min(f,b-1);if("undefined"===typeof g.chunks[a]){var h=g.chunks;if(d>f)throw Error("invalid range ("+d+", "+f+") or no bytes requested!");if(f>b-1)throw Error("only "+b+" bytes available! programmer error!");var m=new XMLHttpRequest;m.open("GET",c,!1);b!==e&&m.setRequestHeader("Range","bytes="+
d+"-"+f);"undefined"!=typeof Uint8Array&&(m.responseType="arraybuffer");m.overrideMimeType&&m.overrideMimeType("text/plain; charset=x-user-defined");m.send(null);if(!(200<=m.status&&300>m.status||304===m.status))throw Error("Couldn't load "+c+". Status: "+m.status);d=void 0!==m.response?new Uint8Array(m.response||[]):ra(m.responseText||"",!0);h[a]=d}if("undefined"===typeof g.chunks[a])throw Error("doXHR failed!");return g.chunks[a]});if(a||!b)e=b=1,e=b=this.getter(0).length,console.log("LazyFiles on gzip forces download of the whole file when length is accessed");
this._length=b;this._chunkSize=e;this.lengthKnown=!0};if("undefined"!==typeof XMLHttpRequest){if(!Z)throw"Cannot do synchronous binary XHRs outside webworkers in modern browsers. Use --embed-file or --preload-file in emcc";var h=new f;Object.defineProperties(h,{length:{get:function(){this.lengthKnown||this.cacheLength();return this._length}},chunkSize:{get:function(){this.lengthKnown||this.cacheLength();return this._chunkSize}}});h={isDevice:!1,contents:h}}else h={isDevice:!1,url:c};var m=e.createFile(a,
b,h,d,g);h.contents?m.contents=h.contents:h.url&&(m.contents=null,m.url=h.url);Object.defineProperties(m,{usedBytes:{get:function(){return this.contents.length}}});var k={};a=Object.keys(m.stream_ops);a.forEach(function(a){var b=m.stream_ops[a];k[a]=function(){if(!e.forceLoadFile(m))throw new e.ErrnoError(q.EIO);return b.apply(null,arguments)}});k.read=function(a,b,c,d,f){if(!e.forceLoadFile(m))throw new e.ErrnoError(q.EIO);a=a.node.contents;if(f>=a.length)return 0;d=Math.min(a.length-f,d);D(0<=d);
if(a.slice)for(var g=0;g<d;g++)b[c+g]=a[f+g];else for(g=0;g<d;g++)b[c+g]=a.get(f+g);return d};m.stream_ops=k;return m},createPreloadedFile:function(a,b,c,f,g,h,n,k,p,q){function m(c){function m(c){q&&q();k||e.createDataFile(a,b,c,f,g,p);h&&h();Wa(r)}var l=!1;d.preloadPlugins.forEach(function(a){!l&&a.canHandle(t)&&(a.handle(c,t,m,function(){n&&n();Wa(r)}),l=!0)});l||m(c)}l.init();var t=b?x.resolve(x.join2(a,b)):a,r="cp "+t;rb(r);"string"==typeof c?l.asyncLoad(c,function(a){m(a)},n):m(c)},indexedDB:function(){return g.indexedDB||
g.mozIndexedDB||g.webkitIndexedDB||g.msIndexedDB},DB_NAME:function(){return"EM_FS_"+g.location.pathname},DB_VERSION:20,DB_STORE_NAME:"FILE_DATA",saveFilesToDB:function(a,b,c){b=b||function(){};c=c||function(){};var d=e.indexedDB();try{var g=d.open(e.DB_NAME(),e.DB_VERSION)}catch(t){return c(t)}g.onupgradeneeded=function(){console.log("creating db");var a=g.result;a.createObjectStore(e.DB_STORE_NAME)};g.onsuccess=function(){var d=g.result;d=d.transaction([e.DB_STORE_NAME],"readwrite");var f=d.objectStore(e.DB_STORE_NAME),
h=0,m=0,k=a.length;a.forEach(function(a){a=f.put(e.analyzePath(a).object.contents,a);a.onsuccess=function(){h++;h+m==k&&(0==m?b():c())};a.onerror=function(){m++;h+m==k&&(0==m?b():c())}});d.onerror=c};g.onerror=c},loadFilesFromDB:function(a,b,c){b=b||function(){};c=c||function(){};var d=e.indexedDB();try{var g=d.open(e.DB_NAME(),e.DB_VERSION)}catch(t){return c(t)}g.onupgradeneeded=c;g.onsuccess=function(){var d=g.result;try{var f=d.transaction([e.DB_STORE_NAME],"readonly")}catch(Ub){c(Ub);return}var h=
f.objectStore(e.DB_STORE_NAME),m=0,k=0,l=a.length;a.forEach(function(a){var d=h.get(a);d.onsuccess=function(){e.analyzePath(a).exists&&e.unlink(a);e.createDataFile(x.dirname(a),x.basename(a),d.result,!0,!0,!0);m++;m+k==l&&(0==k?b():c())};d.onerror=function(){k++;m+k==l&&(0==k?b():c())}});f.onerror=c};g.onerror=c}},C={DEFAULT_POLLMASK:5,mappings:{},umask:511,calculateAt:function(a,b){if("/"!==b[0]){if(-100===a)a=e.cwd();else{a=e.getStream(a);if(!a)throw new e.ErrnoError(q.EBADF);a=a.path}b=x.join2(a,
b)}return b},doStat:function(a,b,c){try{var d=a(b)}catch(m){if(m&&m.node&&x.normalize(b)!==x.normalize(e.getPath(m.node)))return-q.ENOTDIR;throw m;}p[c>>2]=d.dev;p[c+4>>2]=0;p[c+8>>2]=d.ino;p[c+12>>2]=d.mode;p[c+16>>2]=d.nlink;p[c+20>>2]=d.uid;p[c+24>>2]=d.gid;p[c+28>>2]=d.rdev;p[c+32>>2]=0;p[c+36>>2]=d.size;p[c+40>>2]=4096;p[c+44>>2]=d.blocks;p[c+48>>2]=d.atime.getTime()/1E3|0;p[c+52>>2]=0;p[c+56>>2]=d.mtime.getTime()/1E3|0;p[c+60>>2]=0;p[c+64>>2]=d.ctime.getTime()/1E3|0;p[c+68>>2]=0;p[c+72>>2]=
d.ino;return 0},doMsync:function(a,b,c,d){a=new Uint8Array(F.subarray(a,a+c));e.msync(b,a,0,c,d)},doMkdir:function(a,b){a=x.normalize(a);"/"===a[a.length-1]&&(a=a.substr(0,a.length-1));e.mkdir(a,b,0);return 0},doMknod:function(a,b,c){switch(b&61440){case 32768:case 8192:case 24576:case 4096:case 49152:break;default:return-q.EINVAL}e.mknod(a,b,c);return 0},doReadlink:function(a,b,c){if(0>=c)return-q.EINVAL;a=e.readlink(a);var d=Math.min(c,Va(a)),g=M[b+d];Y(a,F,b,c+1);M[b+d]=g;return d},doAccess:function(a,
b){if(b&-8)return-q.EINVAL;a=e.lookupPath(a,{follow:!0});a=a.node;var c="";b&4&&(c+="r");b&2&&(c+="w");b&1&&(c+="x");return c&&e.nodePermissions(a,c)?-q.EACCES:0},doDup:function(a,b,c){var d=e.getStream(c);d&&e.close(d);return e.open(a,b,0,c,c).fd},doReadv:function(a,b,c,d){for(var f=0,g=0;g<c;g++){var h=p[b+8*g>>2],k=p[b+(8*g+4)>>2];h=e.read(a,M,h,k,d);if(0>h)return-1;f+=h;if(h<k)break}return f},doWritev:function(a,b,c,d){for(var f=0,g=0;g<c;g++){var h=p[b+8*g>>2],k=p[b+(8*g+4)>>2];h=e.write(a,M,
h,k,d);if(0>h)return-1;f+=h}return f},varargs:0,get:function(){C.varargs+=4;var a=p[C.varargs-4>>2];return a},getStr:function(){var a=R(C.get());return a},getStreamFromFD:function(){var a=e.getStream(C.get());if(!a)throw new e.ErrnoError(q.EBADF);return a},getSocketFromFD:function(){var a=SOCKFS.getSocket(C.get());if(!a)throw new e.ErrnoError(q.EBADF);return a},getSocketAddress:function(a){var b=C.get(),c=C.get();if(a&&0===b)return null;a=__read_sockaddr(b,c);if(a.errno)throw new e.ErrnoError(a.errno);
a.addr=DNS.lookup_addr(a.addr)||a.addr;return a},get64:function(){var a=C.get(),b=C.get();0<=a?D(0===b):D(-1===b);return a},getZero:function(){D(0===C.get())}},tb=[],T=[{},{value:void 0},{value:null},{value:!0},{value:!1}],dc=void 0,bc=void 0,La=[],Ma=void 0,la={},Ca=void 0,xa={},bb={},Da={},ab={},ec=void 0,gc={},ic=void 0,Pd={},hb=[],l={mainLoop:{scheduler:null,method:"",currentlyRunningMainloop:0,func:null,arg:0,timingMode:0,timingValue:0,currentFrameNumber:0,queue:[],pause:function(){l.mainLoop.scheduler=
null;l.mainLoop.currentlyRunningMainloop++},resume:function(){l.mainLoop.currentlyRunningMainloop++;var a=l.mainLoop.timingMode,b=l.mainLoop.timingValue,c=l.mainLoop.func;l.mainLoop.func=null;fe(c,0,!1,l.mainLoop.arg,!0);Bb(a,b);l.mainLoop.scheduler()},updateStatus:function(){if(d.setStatus){var a=d.statusMessage||"Please wait...",b=l.mainLoop.remainingBlockers,c=l.mainLoop.expectedBlockers;b?b<c?d.setStatus(a+" ("+(c-b)+"/"+c+")"):d.setStatus(a):d.setStatus("")}},runIter:function(a){if(!da){if(d.preMainLoop){var b=
d.preMainLoop();if(!1===b)return}try{a()}catch(c){if(c instanceof Ga)return;c&&"object"===typeof c&&c.stack&&d.printErr("exception thrown: "+[c,c.stack]);throw c;}d.postMainLoop&&d.postMainLoop()}}},isFullscreen:!1,pointerLock:!1,moduleContextCreatedCallbacks:[],workers:[],init:function(){function a(){l.pointerLock=document.pointerLockElement===d.canvas||document.mozPointerLockElement===d.canvas||document.webkitPointerLockElement===d.canvas||document.msPointerLockElement===d.canvas}d.preloadPlugins||
(d.preloadPlugins=[]);if(!l.initted){l.initted=!0;try{l.hasBlobConstructor=!0}catch(c){l.hasBlobConstructor=!1,console.log("warning: no blob constructor, cannot create blobs with mimetypes")}l.BlobBuilder="undefined"!=typeof MozBlobBuilder?MozBlobBuilder:"undefined"!=typeof WebKitBlobBuilder?WebKitBlobBuilder:l.hasBlobConstructor?null:console.log("warning: no BlobBuilder");l.URLObject="undefined"!=typeof g?g.URL?g.URL:g.webkitURL:void 0;d.noImageDecoding||"undefined"!==typeof l.URLObject||(console.log("warning: Browser does not support creating object URLs. Built-in browser image decoding will not be available."),
d.noImageDecoding=!0);var b={canHandle:function(a){return!d.noImageDecoding&&/\.(jpg|jpeg|png|bmp)$/i.test(a)},handle:function(a,b,e,g){var c=null;if(l.hasBlobConstructor)try{c=new Blob([a],{type:l.getMimetype(b)}),c.size!==a.length&&(c=new Blob([(new Uint8Array(a)).buffer],{type:l.getMimetype(b)}))}catch(Bc){ia("Blob constructor present but fails: "+Bc+"; falling back to blob builder")}c||(c=new l.BlobBuilder,c.append((new Uint8Array(a)).buffer),c=c.getBlob());var f=l.URLObject.createObjectURL(c),
h=new Image;h.onload=function(){D(h.complete,"Image "+b+" could not be decoded");var c=document.createElement("canvas");c.width=h.width;c.height=h.height;var g=c.getContext("2d");g.drawImage(h,0,0);d.preloadedImages[b]=c;l.URLObject.revokeObjectURL(f);e&&e(a)};h.onerror=function(){console.log("Image "+f+" could not be decoded");g&&g()};h.src=f}};d.preloadPlugins.push(b);b={canHandle:function(a){return!d.noAudioDecoding&&a.substr(-4)in{".ogg":1,".wav":1,".mp3":1}},handle:function(a,b,e,g){function c(c){h||
(h=!0,d.preloadedAudios[b]=c,e&&e(a))}function f(){h||(h=!0,d.preloadedAudios[b]=new Audio,g&&g())}var h=!1;if(l.hasBlobConstructor){try{var m=new Blob([a],{type:l.getMimetype(b)})}catch(Ub){return f()}m=l.URLObject.createObjectURL(m);var k=new Audio;k.addEventListener("canplaythrough",function(){c(k)},!1);k.onerror=function(){if(!h){console.log("warning: browser could not fully decode audio "+b+", trying slower base64 approach");var d="";for(var f=0,e=0,g=0;g<a.length;g++)for(f=f<<8|a[g],e+=8;6<=
e;){var m=f>>e-6&63;e-=6;d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[m]}2==e?(d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[(f&3)<<4],d+="=="):4==e&&(d+="ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/"[(f&15)<<2],d+="=");k.src="data:audio/x-"+b.substr(-3)+";base64,"+d;c(k)}};k.src=m;l.safeSetTimeout(function(){c(k)},1E4)}else return f()}};d.preloadPlugins.push(b);if(b=d.canvas)b.requestPointerLock=b.requestPointerLock||b.mozRequestPointerLock||
b.webkitRequestPointerLock||b.msRequestPointerLock||function(){},b.exitPointerLock=document.exitPointerLock||document.mozExitPointerLock||document.webkitExitPointerLock||document.msExitPointerLock||function(){},b.exitPointerLock=b.exitPointerLock.bind(document),document.addEventListener("pointerlockchange",a,!1),document.addEventListener("mozpointerlockchange",a,!1),document.addEventListener("webkitpointerlockchange",a,!1),document.addEventListener("mspointerlockchange",a,!1),d.elementPointerLock&&
b.addEventListener("click",function(a){!l.pointerLock&&d.canvas.requestPointerLock&&(d.canvas.requestPointerLock(),a.preventDefault())},!1)}},createContext:function(a,b,c,f){if(b&&d.ctx&&a==d.canvas)return d.ctx;if(b){var e={antialias:!1,alpha:!1};if(f)for(var g in f)e[g]=f[g];if(e=h.createContext(a,e))var n=h.getContext(e).GLctx}else n=a.getContext("2d");if(!n)return null;c&&(b||D("undefined"===typeof k,"cannot set in module if GLctx is used, but we are a non-GL context that would replace it"),d.ctx=
n,b&&h.makeContextCurrent(e),d.useWebGL=b,l.moduleContextCreatedCallbacks.forEach(function(a){a()}),l.init());return n},destroyContext:function(){},fullscreenHandlersInstalled:!1,lockPointer:void 0,resizeCanvas:void 0,requestFullscreen:function(a,b,c){function f(){l.isFullscreen=!1;var a=e.parentNode;(document.fullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.webkitFullscreenElement||document.webkitCurrentFullScreenElement)===a?(e.exitFullscreen=document.exitFullscreen||
document.cancelFullScreen||document.mozCancelFullScreen||document.msExitFullscreen||document.webkitCancelFullScreen||function(){},e.exitFullscreen=e.exitFullscreen.bind(document),l.lockPointer&&e.requestPointerLock(),l.isFullscreen=!0,l.resizeCanvas&&l.setFullscreenCanvasSize()):(a.parentNode.insertBefore(e,a),a.parentNode.removeChild(a),l.resizeCanvas&&l.setWindowedCanvasSize());if(d.onFullScreen)d.onFullScreen(l.isFullscreen);if(d.onFullscreen)d.onFullscreen(l.isFullscreen);l.updateCanvasDimensions(e)}
l.lockPointer=a;l.resizeCanvas=b;l.vrDevice=c;"undefined"===typeof l.lockPointer&&(l.lockPointer=!0);"undefined"===typeof l.resizeCanvas&&(l.resizeCanvas=!1);"undefined"===typeof l.vrDevice&&(l.vrDevice=null);var e=d.canvas;l.fullscreenHandlersInstalled||(l.fullscreenHandlersInstalled=!0,document.addEventListener("fullscreenchange",f,!1),document.addEventListener("mozfullscreenchange",f,!1),document.addEventListener("webkitfullscreenchange",f,!1),document.addEventListener("MSFullscreenChange",f,!1));
var g=document.createElement("div");e.parentNode.insertBefore(g,e);g.appendChild(e);g.requestFullscreen=g.requestFullscreen||g.mozRequestFullScreen||g.msRequestFullscreen||(g.webkitRequestFullscreen?function(){g.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT)}:null)||(g.webkitRequestFullScreen?function(){g.webkitRequestFullScreen(Element.ALLOW_KEYBOARD_INPUT)}:null);c?g.requestFullscreen({vrDisplay:c}):g.requestFullscreen()},requestFullScreen:function(a,b,c){d.printErr("Browser.requestFullScreen() is deprecated. Please call Browser.requestFullscreen instead.");
l.requestFullScreen=function(a,b,c){return l.requestFullscreen(a,b,c)};return l.requestFullscreen(a,b,c)},nextRAF:0,fakeRequestAnimationFrame:function(a){var b=Date.now();if(0===l.nextRAF)l.nextRAF=b+1E3/60;else for(;b+2>=l.nextRAF;)l.nextRAF+=1E3/60;b=Math.max(l.nextRAF-b,0);setTimeout(a,b)},requestAnimationFrame:function(a){"undefined"===typeof g?l.fakeRequestAnimationFrame(a):(g.requestAnimationFrame||(g.requestAnimationFrame=g.requestAnimationFrame||g.mozRequestAnimationFrame||g.webkitRequestAnimationFrame||
g.msRequestAnimationFrame||g.oRequestAnimationFrame||l.fakeRequestAnimationFrame),g.requestAnimationFrame(a))},safeCallback:function(a){return function(){if(!da)return a.apply(null,arguments)}},allowAsyncCallbacks:!0,queuedAsyncCallbacks:[],pauseAsyncCallbacks:function(){l.allowAsyncCallbacks=!1},resumeAsyncCallbacks:function(){l.allowAsyncCallbacks=!0;if(0<l.queuedAsyncCallbacks.length){var a=l.queuedAsyncCallbacks;l.queuedAsyncCallbacks=[];a.forEach(function(a){a()})}},safeRequestAnimationFrame:function(a){return l.requestAnimationFrame(function(){da||
(l.allowAsyncCallbacks?a():l.queuedAsyncCallbacks.push(a))})},safeSetTimeout:function(a,b){d.noExitRuntime=!0;return setTimeout(function(){da||(l.allowAsyncCallbacks?a():l.queuedAsyncCallbacks.push(a))},b)},safeSetInterval:function(a,b){d.noExitRuntime=!0;return setInterval(function(){da||l.allowAsyncCallbacks&&a()},b)},getMimetype:function(a){return{jpg:"image/jpeg",jpeg:"image/jpeg",png:"image/png",bmp:"image/bmp",ogg:"audio/ogg",wav:"audio/wav",mp3:"audio/mpeg"}[a.substr(a.lastIndexOf(".")+1)]},
getUserMedia:function(a){g.getUserMedia||(g.getUserMedia=navigator.getUserMedia||navigator.mozGetUserMedia);g.getUserMedia(a)},getMovementX:function(a){return a.movementX||a.mozMovementX||a.webkitMovementX||0},getMovementY:function(a){return a.movementY||a.mozMovementY||a.webkitMovementY||0},getMouseWheelDelta:function(a){switch(a.type){case "DOMMouseScroll":a=a.detail;break;case "mousewheel":a=a.wheelDelta;break;case "wheel":a=a.deltaY;break;default:throw"unrecognized mouse wheel event: "+a.type;
}return a},mouseX:0,mouseY:0,mouseMovementX:0,mouseMovementY:0,touches:{},lastTouches:{},calculateMouseEvent:function(a){if(l.pointerLock)"mousemove"!=a.type&&"mozMovementX"in a?l.mouseMovementX=l.mouseMovementY=0:(l.mouseMovementX=l.getMovementX(a),l.mouseMovementY=l.getMovementY(a)),"undefined"!=typeof SDL?(l.mouseX=SDL.mouseX+l.mouseMovementX,l.mouseY=SDL.mouseY+l.mouseMovementY):(l.mouseX+=l.mouseMovementX,l.mouseY+=l.mouseMovementY);else{var b=d.canvas.getBoundingClientRect(),c=d.canvas.width,
f=d.canvas.height,e="undefined"!==typeof g.scrollX?g.scrollX:g.pageXOffset,h="undefined"!==typeof g.scrollY?g.scrollY:g.pageYOffset;if("touchstart"===a.type||"touchend"===a.type||"touchmove"===a.type){var k=a.touch;if(void 0!==k)if(e=k.pageX-(e+b.left),h=k.pageY-(h+b.top),e*=c/b.width,h*=f/b.height,b={x:e,y:h},"touchstart"===a.type)l.lastTouches[k.identifier]=b,l.touches[k.identifier]=b;else if("touchend"===a.type||"touchmove"===a.type)(a=l.touches[k.identifier])||(a=b),l.lastTouches[k.identifier]=
a,l.touches[k.identifier]=b}else k=a.pageX-(e+b.left),a=a.pageY-(h+b.top),k*=c/b.width,a*=f/b.height,l.mouseMovementX=k-l.mouseX,l.mouseMovementY=a-l.mouseY,l.mouseX=k,l.mouseY=a}},asyncLoad:function(a,b,c,f){var e=f?"":"al "+a;d.readAsync(a,function(c){D(c,'Loading data file "'+a+'" failed (no arrayBuffer).');b(new Uint8Array(c));e&&Wa(e)},function(){if(c)c();else throw'Loading data file "'+a+'" failed.';});e&&rb(e)},resizeListeners:[],updateResizeListeners:function(){var a=d.canvas;l.resizeListeners.forEach(function(b){b(a.width,
a.height)})},setCanvasSize:function(a,b,c){var f=d.canvas;l.updateCanvasDimensions(f,a,b);c||l.updateResizeListeners()},windowedWidth:0,windowedHeight:0,setFullscreenCanvasSize:function(){if("undefined"!=typeof SDL){var a=S[SDL.screen>>2];a|=8388608;p[SDL.screen>>2]=a}l.updateResizeListeners()},setWindowedCanvasSize:function(){if("undefined"!=typeof SDL){var a=S[SDL.screen>>2];a&=-8388609;p[SDL.screen>>2]=a}l.updateResizeListeners()},updateCanvasDimensions:function(a,b,c){b&&c?(a.widthNative=b,a.heightNative=
c):(b=a.widthNative,c=a.heightNative);var f=b,e=c;d.forcedAspectRatio&&0<d.forcedAspectRatio&&(f/e<d.forcedAspectRatio?f=Math.round(e*d.forcedAspectRatio):e=Math.round(f/d.forcedAspectRatio));if((document.fullscreenElement||document.mozFullScreenElement||document.msFullscreenElement||document.webkitFullscreenElement||document.webkitCurrentFullScreenElement)===a.parentNode&&"undefined"!=typeof screen){var g=Math.min(screen.width/f,screen.height/e);f=Math.round(f*g);e=Math.round(e*g)}l.resizeCanvas?
(a.width!=f&&(a.width=f),a.height!=e&&(a.height=e),"undefined"!=typeof a.style&&(a.style.removeProperty("width"),a.style.removeProperty("height"))):(a.width!=b&&(a.width=b),a.height!=c&&(a.height=c),"undefined"!=typeof a.style&&(f!=b||e!=c?(a.style.setProperty("width",f+"px","important"),a.style.setProperty("height",e+"px","important")):(a.style.removeProperty("width"),a.style.removeProperty("height"))))},wgetRequests:{},nextWgetRequestHandle:0,getNextWgetRequestHandle:function(){var a=l.nextWgetRequestHandle;
l.nextWgetRequestHandle++;return a}},y={errorCode:12288,defaultDisplayInitialized:!1,currentContext:0,currentReadSurface:0,currentDrawSurface:0,stringCache:{},setErrorCode:function(a){y.errorCode=a},chooseConfig:function(a,b,c,d,e){if(62E3!=a)return y.setErrorCode(12296),0;if(!(c&&d||e))return y.setErrorCode(12300),0;e&&(p[e>>2]=1);c&&0<d&&(p[c>>2]=62002);y.setErrorCode(12288);return 1}},w={initTime:null,idleFunc:null,displayFunc:null,keyboardFunc:null,keyboardUpFunc:null,specialFunc:null,specialUpFunc:null,
reshapeFunc:null,motionFunc:null,passiveMotionFunc:null,mouseFunc:null,buttons:0,modifiers:0,initWindowWidth:256,initWindowHeight:256,initDisplayMode:18,windowX:0,windowY:0,windowWidth:0,windowHeight:0,requestedAnimationFrame:!1,saveModifiers:function(a){w.modifiers=0;a.shiftKey&&(w.modifiers+=1);a.ctrlKey&&(w.modifiers+=2);a.altKey&&(w.modifiers+=4)},onMousemove:function(a){var b=l.mouseX,c=l.mouseY;l.calculateMouseEvent(a);var e=l.mouseX,g=l.mouseY;if(e!=b||g!=c)0==w.buttons&&a.target==d.canvas&&
w.passiveMotionFunc?(a.preventDefault(),w.saveModifiers(a),d.dynCall_vii(w.passiveMotionFunc,b,c)):0!=w.buttons&&w.motionFunc&&(a.preventDefault(),w.saveModifiers(a),d.dynCall_vii(w.motionFunc,b,c))},getSpecialKey:function(a){var b=null;switch(a){case 8:b=120;break;case 46:b=111;break;case 112:b=1;break;case 113:b=2;break;case 114:b=3;break;case 115:b=4;break;case 116:b=5;break;case 117:b=6;break;case 118:b=7;break;case 119:b=8;break;case 120:b=9;break;case 121:b=10;break;case 122:b=11;break;case 123:b=
12;break;case 37:b=100;break;case 38:b=101;break;case 39:b=102;break;case 40:b=103;break;case 33:b=104;break;case 34:b=105;break;case 36:b=106;break;case 35:b=107;break;case 45:b=108;break;case 16:case 5:b=112;break;case 6:b=113;break;case 17:case 3:b=114;break;case 4:b=115;break;case 18:case 2:b=116;break;case 1:b=117}return b},getASCIIKey:function(a){if(a.ctrlKey||a.altKey||a.metaKey)return null;var b=a.keyCode;if(48<=b&&57>=b)return b;if(65<=b&&90>=b)return a.shiftKey?b:b+32;if(96<=b&&105>=b)return b-
48;if(106<=b&&111>=b)return b-106+42;switch(b){case 9:case 13:case 27:case 32:case 61:return b}a=a.shiftKey;switch(b){case 186:return a?58:59;case 187:return a?43:61;case 188:return a?60:44;case 189:return a?95:45;case 190:return a?62:46;case 191:return a?63:47;case 219:return a?123:91;case 220:return a?124:47;case 221:return a?125:93;case 222:return a?34:39}return null},onKeydown:function(a){if(w.specialFunc||w.keyboardFunc){var b=w.getSpecialKey(a.keyCode);null!==b?w.specialFunc&&(a.preventDefault(),
w.saveModifiers(a),d.dynCall_viii(w.specialFunc,b,l.mouseX,l.mouseY)):(b=w.getASCIIKey(a),null!==b&&w.keyboardFunc&&(a.preventDefault(),w.saveModifiers(a),d.dynCall_viii(w.keyboardFunc,b,l.mouseX,l.mouseY)))}},onKeyup:function(a){if(w.specialUpFunc||w.keyboardUpFunc){var b=w.getSpecialKey(a.keyCode);null!==b?w.specialUpFunc&&(a.preventDefault(),w.saveModifiers(a),d.dynCall_viii(w.specialUpFunc,b,l.mouseX,l.mouseY)):(b=w.getASCIIKey(a),null!==b&&w.keyboardUpFunc&&(a.preventDefault(),w.saveModifiers(a),
d.dynCall_viii(w.keyboardUpFunc,b,l.mouseX,l.mouseY)))}},touchHandler:function(a){if(a.target==d.canvas){var b=a.changedTouches;b=b[0];switch(a.type){case "touchstart":var c="mousedown";break;case "touchmove":c="mousemove";break;case "touchend":c="mouseup";break;default:return}var e=document.createEvent("MouseEvent");e.initMouseEvent(c,!0,!0,g,1,b.screenX,b.screenY,b.clientX,b.clientY,!1,!1,!1,!1,0,null);b.target.dispatchEvent(e);a.preventDefault()}},onMouseButtonDown:function(a){l.calculateMouseEvent(a);
w.buttons|=1<<a.button;if(a.target==d.canvas&&w.mouseFunc){try{a.target.setCapture()}catch(b){}a.preventDefault();w.saveModifiers(a);d.dynCall_viiii(w.mouseFunc,a.button,0,l.mouseX,l.mouseY)}},onMouseButtonUp:function(a){l.calculateMouseEvent(a);w.buttons&=~(1<<a.button);w.mouseFunc&&(a.preventDefault(),w.saveModifiers(a),d.dynCall_viiii(w.mouseFunc,a.button,1,l.mouseX,l.mouseY))},onMouseWheel:function(a){l.calculateMouseEvent(a);var b=-l.getMouseWheelDelta(a);b=0==b?0:0<b?Math.max(b,1):Math.min(b,
-1);var c=3;0>b&&(c=4);w.mouseFunc&&(a.preventDefault(),w.saveModifiers(a),d.dynCall_viiii(w.mouseFunc,c,0,l.mouseX,l.mouseY))},onFullscreenEventChange:function(){if(document.fullscreen||document.fullScreen||document.mozFullScreen||document.webkitIsFullScreen){var a=screen.width;var b=screen.height}else a=w.windowWidth,b=w.windowHeight,document.removeEventListener("fullscreenchange",w.onFullscreenEventChange,!0),document.removeEventListener("mozfullscreenchange",w.onFullscreenEventChange,!0),document.removeEventListener("webkitfullscreenchange",
w.onFullscreenEventChange,!0);l.setCanvasSize(a,b);w.reshapeFunc&&d.dynCall_vii(w.reshapeFunc,a,b);_glutPostRedisplay()},requestFullscreen:function(){l.requestFullscreen(!1,!1)},requestFullScreen:function(){d.printErr("GLUT.requestFullScreen() is deprecated. Please call GLUT.requestFullscreen instead.");w.requestFullScreen=function(){return w.requestFullscreen()};return w.requestFullscreen()},exitFullscreen:function(){var a=document.exitFullscreen||document.cancelFullScreen||document.mozCancelFullScreen||
document.webkitCancelFullScreen||function(){};a.apply(document,[])},cancelFullScreen:function(){d.printErr("GLUT.cancelFullScreen() is deprecated. Please call GLUT.exitFullscreen instead.");w.cancelFullScreen=function(){return w.exitFullscreen()};return w.exitFullscreen()}},h={counter:1,lastError:0,buffers:[],mappedBuffers:{},programs:[],framebuffers:[],renderbuffers:[],textures:[],uniforms:[],shaders:[],vaos:[],contexts:[],currentContext:null,offscreenCanvases:{},timerQueriesEXT:[],queries:[],samplers:[],
transformFeedbacks:[],syncs:[],byteSizeByTypeRoot:5120,byteSizeByType:[1,1,2,2,4,4,4,2,3,4,8],programInfos:{},stringCache:{},stringiCache:{},tempFixedLengthArray:[],packAlignment:4,unpackAlignment:4,init:function(){h.miniTempBuffer=new Float32Array(h.MINI_TEMP_BUFFER_SIZE);for(var a=0;a<h.MINI_TEMP_BUFFER_SIZE;a++)h.miniTempBufferViews[a]=h.miniTempBuffer.subarray(0,a+1);for(a=0;32>a;a++)h.tempFixedLengthArray.push(Array(a))},recordError:function(a){h.lastError||(h.lastError=a)},getNewId:function(a){for(var b=
h.counter++,c=a.length;c<b;c++)a[c]=null;return b},MINI_TEMP_BUFFER_SIZE:256,miniTempBuffer:null,miniTempBufferViews:[0],getSource:function(a,b,c,d){a="";for(var e=0;e<b;++e){if(d){var f=p[d+4*e>>2];f=0>f?R(p[c+4*e>>2]):R(p[c+4*e>>2],f)}else f=R(p[c+4*e>>2]);a+=f}return a},createContext:function(a,b){function c(a){e=a.statusMessage||e}"undefined"===typeof b.majorVersion&&"undefined"===typeof b.minorVersion&&(b.majorVersion="undefined"!==typeof WebGL2RenderingContext?2:1,b.minorVersion=0);var e="?";
try{a.addEventListener("webglcontextcreationerror",c,!1);try{if(1==b.majorVersion&&0==b.minorVersion)var g=a.getContext("webgl",b)||a.getContext("experimental-webgl",b);else if(2==b.majorVersion&&0==b.minorVersion)g=a.getContext("webgl2",b);else throw"Unsupported WebGL context version "+majorVersion+"."+minorVersion+"!";}finally{a.removeEventListener("webglcontextcreationerror",c,!1)}if(!g)throw":(";}catch(t){return d.print("Could not create canvas: "+[e,t,JSON.stringify(b)]),0}return g?a=h.registerContext(g,
b):0},registerContext:function(a,b){function c(){var a=navigator.userAgent.match(/Chrom(e|ium)\/([0-9]+)\./);return a?parseInt(a[2],10):!1}var d=h.getNewId(h.contexts),e={handle:d,attributes:b,version:b.majorVersion,GLctx:a};e.supportsWebGL2EntryPoints=2<=e.version&&(!1===c()||58<=c());a.canvas&&(a.canvas.GLctxObject=e);h.contexts[d]=e;("undefined"===typeof b.enableExtensionsByDefault||b.enableExtensionsByDefault)&&h.initExtensions(e);return d},makeContextCurrent:function(a){a=h.contexts[a];if(!a)return!1;
k=d.ctx=a.GLctx;h.currentContext=a;return!0},getContext:function(a){return h.contexts[a]},deleteContext:function(a){h.currentContext===h.contexts[a]&&(h.currentContext=null);"object"===typeof JSEvents&&JSEvents.removeAllHandlersOnTarget(h.contexts[a].GLctx.canvas);h.contexts[a]&&h.contexts[a].GLctx.canvas&&(h.contexts[a].GLctx.canvas.GLctxObject=void 0);h.contexts[a]=null},initExtensions:function(a){a||(a=h.currentContext);if(!a.initExtensionsDone){a.initExtensionsDone=!0;var b=a.GLctx;a.maxVertexAttribs=
b.getParameter(b.MAX_VERTEX_ATTRIBS);if(2>a.version){var c=b.getExtension("ANGLE_instanced_arrays");c&&(b.vertexAttribDivisor=function(a,b){c.vertexAttribDivisorANGLE(a,b)},b.drawArraysInstanced=function(a,b,d,e){c.drawArraysInstancedANGLE(a,b,d,e)},b.drawElementsInstanced=function(a,b,d,e,f){c.drawElementsInstancedANGLE(a,b,d,e,f)});var d=b.getExtension("OES_vertex_array_object");d&&(b.createVertexArray=function(){return d.createVertexArrayOES()},b.deleteVertexArray=function(a){d.deleteVertexArrayOES(a)},
b.bindVertexArray=function(a){d.bindVertexArrayOES(a)},b.isVertexArray=function(a){return d.isVertexArrayOES(a)});var e=b.getExtension("WEBGL_draw_buffers");e&&(b.drawBuffers=function(a,b){e.drawBuffersWEBGL(a,b)})}b.disjointTimerQueryExt=b.getExtension("EXT_disjoint_timer_query");var g="OES_texture_float OES_texture_half_float OES_standard_derivatives OES_vertex_array_object WEBGL_compressed_texture_s3tc WEBGL_depth_texture OES_element_index_uint EXT_texture_filter_anisotropic ANGLE_instanced_arrays OES_texture_float_linear OES_texture_half_float_linear WEBGL_compressed_texture_atc WEBKIT_WEBGL_compressed_texture_pvrtc WEBGL_compressed_texture_pvrtc EXT_color_buffer_half_float WEBGL_color_buffer_float EXT_frag_depth EXT_sRGB WEBGL_draw_buffers WEBGL_shared_resources EXT_shader_texture_lod EXT_color_buffer_float".split(" ");
(a=b.getSupportedExtensions())&&0<a.length&&b.getSupportedExtensions().forEach(function(a){-1!=g.indexOf(a)&&b.getExtension(a)})}},populateUniformTable:function(a){var b=h.programs[a];h.programInfos[a]={uniforms:{},maxUniformLength:0,maxAttributeLength:-1,maxUniformBlockNameLength:-1};a=h.programInfos[a];for(var c=a.uniforms,d=k.getProgramParameter(b,k.ACTIVE_UNIFORMS),e=0;e<d;++e){var g=k.getActiveUniform(b,e),l=g.name;a.maxUniformLength=Math.max(a.maxUniformLength,l.length+1);if(-1!==l.indexOf("]",
l.length-1)){var p=l.lastIndexOf("[");l=l.slice(0,p)}var q=k.getUniformLocation(b,l);if(null!=q){var r=h.getNewId(h.uniforms);c[l]=[g.size,r];h.uniforms[r]=q;for(p=1;p<g.size;++p)q=l+"["+p+"]",q=k.getUniformLocation(b,q),r=h.getNewId(h.uniforms),h.uniforms[r]=q}}}},pc=W;W+=16;var ha={},Fa={},Hb=1,lb=[31,29,31,30,31,30,31,31,30,31,30,31],mb=[31,28,31,30,31,30,31,31,30,31,30,31];e.staticInit();nb.unshift(function(){d.noFSInit||e.init.initialized||e.init()});rc.push(function(){e.ignorePermissions=!1});
Kb.push(function(){e.quit()});nb.unshift(function(){ta.init()});Kb.push(function(){});if(ca){var N=require("fs"),vc=require("path");H.staticInit()}d.count_emval_handles=Wc;d.get_first_emval=Xc;dc=d.PureVirtualError=Za(Error,"PureVirtualError");Yc();d.getInheritedInstanceCount=Zc;d.getLiveInheritedInstances=$c;d.flushPendingDeletes=ub;d.setDelayFunction=ad;Ca=d.BindingError=Za(Error,"BindingError");ec=d.InternalError=Za(Error,"InternalError");qa.prototype.isAliasOf=fd;qa.prototype.clone=gd;qa.prototype["delete"]=
hd;qa.prototype.isDeleted=id;qa.prototype.deleteLater=jd;na.prototype.getPointee=od;na.prototype.destructor=pd;na.prototype.argPackAdvance=8;na.prototype.readValueFromPointer=Pa;na.prototype.deleteObject=qd;na.prototype.fromWireType=sd;ic=d.UnboundTypeError=Za(Error,"UnboundTypeError");ib=ca?function(){var a=process.hrtime();return 1E3*a[0]+a[1]/1E6}:"undefined"!==typeof dateNow?dateNow:"object"===typeof self&&self.performance&&"function"===typeof self.performance.now?function(){return self.performance.now()}:
"object"===typeof performance&&"function"===typeof performance.now?function(){return performance.now()}:Date.now;d.requestFullScreen=function(a,b,c){d.printErr("Module.requestFullScreen is deprecated. Please call Module.requestFullscreen instead.");d.requestFullScreen=d.requestFullscreen;l.requestFullScreen(a,b,c)};d.requestFullscreen=function(a,b,c){l.requestFullscreen(a,b,c)};d.requestAnimationFrame=function(a){l.requestAnimationFrame(a)};d.setCanvasSize=function(a,b,c){l.setCanvasSize(a,b,c)};
d.pauseMainLoop=function(){l.mainLoop.pause()};d.resumeMainLoop=function(){l.mainLoop.resume()};d.getUserMedia=function(){l.getUserMedia()};d.createContext=function(a,b,c,d){return l.createContext(a,b,c,d)};var k;h.init();Gb(ha);oa=I(4);Ob=ob=E(W);Pb=Ob+Sb;Qb=E(Pb);p[oa>>2]=Qb;Tb=!0;d.wasmTableSize=7616;d.wasmMaxTableSize=7616;d.asmGlobalArg={};d.asmLibraryArg={abort:G,enlargeMemory:Dc,getTotalMemory:Ec,abortOnCannotGrowMemory:pb,jsCall_di:Zh,jsCall_dii:$h,jsCall_ff:ai,jsCall_fff:bi,jsCall_fi:ci,
jsCall_fif:di,jsCall_fii:ei,jsCall_fiiif:fi,jsCall_i:gi,invoke_ii:hi,jsCall_ii:ii,jsCall_iii:ji,invoke_iiii:ki,jsCall_iiii:li,jsCall_iiiid:mi,jsCall_iiiii:ni,jsCall_iiiiid:oi,jsCall_iiiiii:pi,jsCall_iiiiiid:qi,jsCall_iiiiiii:ri,jsCall_iiiiiiii:si,jsCall_iiiiiiiii:ti,jsCall_iiiiij:ui,jsCall_iijj:vi,jsCall_ji:wi,jsCall_v:xi,jsCall_vd:yi,jsCall_vdd:zi,jsCall_vdddddd:Ai,jsCall_vf:Bi,jsCall_vff:Ci,jsCall_vffff:Di,jsCall_vfi:Ei,invoke_vi:Fi,jsCall_vi:Gi,jsCall_vid:Hi,jsCall_vif:Ii,jsCall_viff:Ji,jsCall_vifff:Ki,
jsCall_viffff:Li,jsCall_vifi:Mi,invoke_vii:Ni,jsCall_vii:Oi,jsCall_viid:Pi,jsCall_viif:Qi,jsCall_viifiii:Ri,jsCall_viii:Si,jsCall_viiid:Ti,jsCall_viiifif:Ui,jsCall_viiifii:Vi,jsCall_viiifiii:Wi,jsCall_viiii:Xi,jsCall_viiiidff:Yi,jsCall_viiiidffffff:Zi,jsCall_viiiif:$i,jsCall_viiiii:aj,jsCall_viiiiidff:bj,jsCall_viiiiidffffff:cj,jsCall_viiiiii:dj,jsCall_viiiiiii:ej,jsCall_viiiiiiii:fj,jsCall_viiiiiiiii:gj,jsCall_viiiiiiiiii:hj,jsCall_viiiij:ij,jsCall_viijii:jj,jsCall_vij:kj,jsCall_viji:lj,__ZSt18uncaught_exceptionv:Ka,
___assert_fail:Jc,___cxa_allocate_exception:Kc,___cxa_pure_virtual:Lc,___cxa_throw:Mc,___lock:Nc,___map_file:Oc,___setErrNo:Ba,___syscall140:Pc,___syscall145:Qc,___syscall146:Rc,___syscall54:Sc,___syscall6:Tc,___syscall91:Uc,___unlock:Vc,__embind_create_inheriting_constructor:cd,__embind_finalize_value_array:dd,__embind_register_bool:ed,__embind_register_class:td,__embind_register_class_class_function:ud,__embind_register_class_constructor:vd,__embind_register_class_function:wd,__embind_register_class_property:xd,
__embind_register_emval:yd,__embind_register_enum:Ad,__embind_register_enum_value:Bd,__embind_register_float:Dd,__embind_register_function:Ed,__embind_register_integer:Gd,__embind_register_memory_view:Hd,__embind_register_std_string:Id,__embind_register_std_wstring:Jd,__embind_register_value_array:Kd,__embind_register_value_array_element:Ld,__embind_register_void:Md,__emval_as:Nd,__emval_call_method:Qd,__emval_call_void_method:Rd,__emval_decref:Ab,__emval_get_global:Sd,__emval_get_method_caller:Vd,
__emval_get_property:Wd,__emval_incref:Xd,__emval_new_array:Yd,__emval_new_cstring:Zd,__emval_run_destructors:$d,__emval_set_property:ae,__emval_take_value:be,_abort:ce,_clock_gettime:ee,_eglChooseConfig:ge,_eglCreateContext:je,_eglCreateWindowSurface:ke,_eglDestroyContext:le,_eglDestroySurface:me,_eglGetCurrentContext:ne,_eglGetCurrentDisplay:oe,_eglGetCurrentSurface:pe,_eglGetDisplay:qe,_eglGetProcAddress:re,_eglInitialize:te,_eglMakeCurrent:ue,_eglReleaseThread:ve,_eglSwapBuffers:we,_emscripten_asm_const_i:Hc,
_emscripten_async_call:xe,_emscripten_glActiveTexture:ye,_emscripten_glAttachShader:ze,_emscripten_glBindAttribLocation:Ae,_emscripten_glBindBuffer:Be,_emscripten_glBindFramebuffer:Ce,_emscripten_glBindProgramARB:De,_emscripten_glBindRenderbuffer:Ee,_emscripten_glBindTexture:Fe,_emscripten_glBindVertexArray:Ge,_emscripten_glBlendColor:He,_emscripten_glBlendEquation:Ie,_emscripten_glBlendEquationSeparate:Je,_emscripten_glBlendFunc:Ke,_emscripten_glBlendFuncSeparate:Le,_emscripten_glBlitFramebuffer:Me,
_emscripten_glBufferData:Ne,_emscripten_glBufferSubData:Oe,_emscripten_glCheckFramebufferStatus:Pe,_emscripten_glClear:Qe,_emscripten_glClearColor:Re,_emscripten_glClearDepth:Se,_emscripten_glClearDepthf:Te,_emscripten_glClearStencil:Ue,_emscripten_glClientActiveTexture:Ve,_emscripten_glColorMask:We,_emscripten_glColorPointer:Xe,_emscripten_glCompileShader:Ye,_emscripten_glCompressedTexImage2D:Ze,_emscripten_glCompressedTexSubImage2D:$e,_emscripten_glCopyTexImage2D:af,_emscripten_glCopyTexSubImage2D:bf,
_emscripten_glCreateProgram:cf,_emscripten_glCreateShader:df,_emscripten_glCullFace:ef,_emscripten_glDeleteBuffers:ff,_emscripten_glDeleteFramebuffers:gf,_emscripten_glDeleteObjectARB:hf,_emscripten_glDeleteProgram:jf,_emscripten_glDeleteRenderbuffers:kf,_emscripten_glDeleteShader:lf,_emscripten_glDeleteTextures:mf,_emscripten_glDeleteVertexArrays:nf,_emscripten_glDepthFunc:of,_emscripten_glDepthMask:pf,_emscripten_glDepthRange:qf,_emscripten_glDepthRangef:rf,_emscripten_glDetachShader:sf,_emscripten_glDisable:tf,
_emscripten_glDisableVertexAttribArray:uf,_emscripten_glDrawArrays:vf,_emscripten_glDrawArraysInstanced:wf,_emscripten_glDrawBuffers:xf,_emscripten_glDrawElements:lc,_emscripten_glDrawElementsInstanced:yf,_emscripten_glDrawRangeElements:zf,_emscripten_glEnable:Af,_emscripten_glEnableClientState:Bf,_emscripten_glEnableVertexAttribArray:Cf,_emscripten_glFinish:Df,_emscripten_glFlush:Ef,_emscripten_glFramebufferRenderbuffer:Ff,_emscripten_glFramebufferTexture2D:Gf,_emscripten_glFrontFace:Hf,_emscripten_glFrustum:If,
_emscripten_glGenBuffers:Jf,_emscripten_glGenFramebuffers:Kf,_emscripten_glGenRenderbuffers:Lf,_emscripten_glGenTextures:Mf,_emscripten_glGenVertexArrays:Nf,_emscripten_glGenerateMipmap:Of,_emscripten_glGetActiveAttrib:Pf,_emscripten_glGetActiveUniform:Qf,_emscripten_glGetAttachedShaders:Rf,_emscripten_glGetAttribLocation:Sf,_emscripten_glGetBooleanv:Tf,_emscripten_glGetBufferParameteriv:Uf,_emscripten_glGetError:Vf,_emscripten_glGetFloatv:Wf,_emscripten_glGetFramebufferAttachmentParameteriv:Xf,_emscripten_glGetInfoLogARB:Yf,
_emscripten_glGetIntegerv:Zf,_emscripten_glGetObjectParameterivARB:$f,_emscripten_glGetPointerv:ag,_emscripten_glGetProgramInfoLog:bg,_emscripten_glGetProgramiv:cg,_emscripten_glGetRenderbufferParameteriv:dg,_emscripten_glGetShaderInfoLog:eg,_emscripten_glGetShaderPrecisionFormat:fg,_emscripten_glGetShaderSource:gg,_emscripten_glGetShaderiv:hg,_emscripten_glGetString:ig,_emscripten_glGetTexParameterfv:jg,_emscripten_glGetTexParameteriv:kg,_emscripten_glGetUniformLocation:lg,_emscripten_glGetUniformfv:mg,
_emscripten_glGetUniformiv:ng,_emscripten_glGetVertexAttribPointerv:og,_emscripten_glGetVertexAttribfv:pg,_emscripten_glGetVertexAttribiv:qg,_emscripten_glHint:rg,_emscripten_glIsBuffer:sg,_emscripten_glIsEnabled:tg,_emscripten_glIsFramebuffer:ug,_emscripten_glIsProgram:vg,_emscripten_glIsRenderbuffer:wg,_emscripten_glIsShader:xg,_emscripten_glIsTexture:yg,_emscripten_glIsVertexArray:zg,_emscripten_glLineWidth:Ag,_emscripten_glLinkProgram:Bg,_emscripten_glLoadIdentity:Cg,_emscripten_glLoadMatrixf:Dg,
_emscripten_glMatrixMode:Eg,_emscripten_glNormalPointer:Fg,_emscripten_glPixelStorei:Gg,_emscripten_glPolygonOffset:Hg,_emscripten_glReadPixels:Ig,_emscripten_glReleaseShaderCompiler:Jg,_emscripten_glRenderbufferStorage:Kg,_emscripten_glRenderbufferStorageMultisample:Lg,_emscripten_glRotatef:Mg,_emscripten_glSampleCoverage:Ng,_emscripten_glScissor:Og,_emscripten_glShaderBinary:Pg,_emscripten_glShaderSource:Qg,_emscripten_glStencilFunc:Rg,_emscripten_glStencilFuncSeparate:Sg,_emscripten_glStencilMask:Tg,
_emscripten_glStencilMaskSeparate:Ug,_emscripten_glStencilOp:Vg,_emscripten_glStencilOpSeparate:Wg,_emscripten_glTexCoordPointer:Xg,_emscripten_glTexImage2D:Yg,_emscripten_glTexParameterf:Zg,_emscripten_glTexParameterfv:$g,_emscripten_glTexParameteri:ah,_emscripten_glTexParameteriv:bh,_emscripten_glTexSubImage2D:ch,_emscripten_glUniform1f:dh,_emscripten_glUniform1fv:eh,_emscripten_glUniform1i:fh,_emscripten_glUniform1iv:gh,_emscripten_glUniform2f:hh,_emscripten_glUniform2fv:ih,_emscripten_glUniform2i:jh,
_emscripten_glUniform2iv:kh,_emscripten_glUniform3f:lh,_emscripten_glUniform3fv:mh,_emscripten_glUniform3i:nh,_emscripten_glUniform3iv:oh,_emscripten_glUniform4f:ph,_emscripten_glUniform4fv:qh,_emscripten_glUniform4i:rh,_emscripten_glUniform4iv:sh,_emscripten_glUniformMatrix2fv:th,_emscripten_glUniformMatrix3fv:uh,_emscripten_glUniformMatrix4fv:vh,_emscripten_glUseProgram:wh,_emscripten_glValidateProgram:xh,_emscripten_glVertexAttrib1f:yh,_emscripten_glVertexAttrib1fv:zh,_emscripten_glVertexAttrib2f:Ah,
_emscripten_glVertexAttrib2fv:Bh,_emscripten_glVertexAttrib3f:Ch,_emscripten_glVertexAttrib3fv:Dh,_emscripten_glVertexAttrib4f:Eh,_emscripten_glVertexAttrib4fv:Fh,_emscripten_glVertexAttribDivisor:Gh,_emscripten_glVertexAttribPointer:Hh,_emscripten_glVertexPointer:Ih,_emscripten_glViewport:Jh,_emscripten_longjmp:Kh,_emscripten_memcpy_big:Oh,_exit:Mh,_getenv:Qa,_gettimeofday:Nh,_longjmp:oc,_pthread_cond_wait:Ph,_pthread_getspecific:Qh,_pthread_key_create:Rh,_pthread_key_delete:Sh,_pthread_mutex_destroy:Th,
_pthread_mutex_init:Uh,_pthread_setspecific:Vh,_sched_yield:Wh,_strftime_l:Yh,DYNAMICTOP_PTR:oa,STACKTOP:ob};var wc=d.asm(d.asmGlobalArg,d.asmLibraryArg,V);d.asm=wc;var oj=d.__GLOBAL__I_000101=function(){return d.asm.__GLOBAL__I_000101.apply(null,arguments)},dk=d.__GLOBAL__sub_I_animation_controller_cc=function(){return d.asm.__GLOBAL__sub_I_animation_controller_cc.apply(null,arguments)},Nj=d.__GLOBAL__sub_I_background_renderer_cc=function(){return d.asm.__GLOBAL__sub_I_background_renderer_cc.apply(null,
arguments)},ik=d.__GLOBAL__sub_I_background_state_cc=function(){return d.asm.__GLOBAL__sub_I_background_state_cc.apply(null,arguments)},Xk=d.__GLOBAL__sub_I_ballpoint_cc=function(){return d.asm.__GLOBAL__sub_I_ballpoint_cc.apply(null,arguments)},Mk=d.__GLOBAL__sub_I_bezier_path_converter_cc=function(){return d.asm.__GLOBAL__sub_I_bezier_path_converter_cc.apply(null,arguments)},Tj=d.__GLOBAL__sub_I_bind_cpp=function(){return d.asm.__GLOBAL__sub_I_bind_cpp.apply(null,arguments)},Tk=d.__GLOBAL__sub_I_builddata_globals_cc=
function(){return d.asm.__GLOBAL__sub_I_builddata_globals_cc.apply(null,arguments)},Nk=d.__GLOBAL__sub_I_bundle_proto_converter_cc=function(){return d.asm.__GLOBAL__sub_I_bundle_proto_converter_cc.apply(null,arguments)},al=d.__GLOBAL__sub_I_camera_controller_cc=function(){return d.asm.__GLOBAL__sub_I_camera_controller_cc.apply(null,arguments)},bl=d.__GLOBAL__sub_I_camera_movement_constraint_cc=function(){return d.asm.__GLOBAL__sub_I_camera_movement_constraint_cc.apply(null,arguments)},jl=d.__GLOBAL__sub_I_crop_controller_cc=
function(){return d.asm.__GLOBAL__sub_I_crop_controller_cc.apply(null,arguments)},tk=d.__GLOBAL__sub_I_crop_mode_cc=function(){return d.asm.__GLOBAL__sub_I_crop_mode_cc.apply(null,arguments)},kl=d.__GLOBAL__sub_I_crop_tool_cc=function(){return d.asm.__GLOBAL__sub_I_crop_tool_cc.apply(null,arguments)},rk=d.__GLOBAL__sub_I_dbg_helper_cc=function(){return d.asm.__GLOBAL__sub_I_dbg_helper_cc.apply(null,arguments)},Oj=d.__GLOBAL__sub_I_dbrender_target_cc=function(){return d.asm.__GLOBAL__sub_I_dbrender_target_cc.apply(null,
arguments)},vk=d.__GLOBAL__sub_I_default_services_cc=function(){return d.asm.__GLOBAL__sub_I_default_services_cc.apply(null,arguments)},fk=d.__GLOBAL__sub_I_direct_renderer_cc=function(){return d.asm.__GLOBAL__sub_I_direct_renderer_cc.apply(null,arguments)},Yj=d.__GLOBAL__sub_I_document_cc=function(){return d.asm.__GLOBAL__sub_I_document_cc.apply(null,arguments)},wk=d.__GLOBAL__sub_I_document_storage_cc=function(){return d.asm.__GLOBAL__sub_I_document_storage_cc.apply(null,arguments)},$k=d.__GLOBAL__sub_I_drag_reco_cc=
function(){return d.asm.__GLOBAL__sub_I_drag_reco_cc.apply(null,arguments)},il=d.__GLOBAL__sub_I_edit_tool_cc=function(){return d.asm.__GLOBAL__sub_I_edit_tool_cc.apply(null,arguments)},Hj=d.__GLOBAL__sub_I_element_animation_cc=function(){return d.asm.__GLOBAL__sub_I_element_animation_cc.apply(null,arguments)},Ej=d.__GLOBAL__sub_I_element_bundle_cc=function(){return d.asm.__GLOBAL__sub_I_element_bundle_cc.apply(null,arguments)},gl=d.__GLOBAL__sub_I_element_manipulation_tool_cc=function(){return d.asm.__GLOBAL__sub_I_element_manipulation_tool_cc.apply(null,
arguments)},fl=d.__GLOBAL__sub_I_element_manipulation_tool_renderer_cc=function(){return d.asm.__GLOBAL__sub_I_element_manipulation_tool_renderer_cc.apply(null,arguments)},wj=d.__GLOBAL__sub_I_element_notifier_cc=function(){return d.asm.__GLOBAL__sub_I_element_notifier_cc.apply(null,arguments)},Mj=d.__GLOBAL__sub_I_element_renderer_cc=function(){return d.asm.__GLOBAL__sub_I_element_renderer_cc.apply(null,arguments)},hl=d.__GLOBAL__sub_I_embind_cc=function(){return d.asm.__GLOBAL__sub_I_embind_cc.apply(null,
arguments)},Rk=d.__GLOBAL__sub_I_extension_defaults_cc=function(){return d.asm.__GLOBAL__sub_I_extension_defaults_cc.apply(null,arguments)},Ik=d.__GLOBAL__sub_I_filter_chooser_tool_cc=function(){return d.asm.__GLOBAL__sub_I_filter_chooser_tool_cc.apply(null,arguments)},Zj=d.__GLOBAL__sub_I_flags_cc=function(){return d.asm.__GLOBAL__sub_I_flags_cc.apply(null,arguments)},ck=d.__GLOBAL__sub_I_frame_state_cc=function(){return d.asm.__GLOBAL__sub_I_frame_state_cc.apply(null,arguments)},jk=d.__GLOBAL__sub_I_gl_resource_manager_cc=
function(){return d.asm.__GLOBAL__sub_I_gl_resource_manager_cc.apply(null,arguments)},tl=d.__GLOBAL__sub_I_grid_manager_cc=function(){return d.asm.__GLOBAL__sub_I_grid_manager_cc.apply(null,arguments)},Wk=d.__GLOBAL__sub_I_highlighter_cc=function(){return d.asm.__GLOBAL__sub_I_highlighter_cc.apply(null,arguments)},pk=d.__GLOBAL__sub_I_id_map_cc=function(){return d.asm.__GLOBAL__sub_I_id_map_cc.apply(null,arguments)},Bk=d.__GLOBAL__sub_I_image_exporter_cc=function(){return d.asm.__GLOBAL__sub_I_image_exporter_cc.apply(null,
arguments)},xk=d.__GLOBAL__sub_I_in_memory_storage_cc=function(){return d.asm.__GLOBAL__sub_I_in_memory_storage_cc.apply(null,arguments)},bk=d.__GLOBAL__sub_I_input_dispatch_cc=function(){return d.asm.__GLOBAL__sub_I_input_dispatch_cc.apply(null,arguments)},ak=d.__GLOBAL__sub_I_input_handler_cc=function(){return d.asm.__GLOBAL__sub_I_input_handler_cc.apply(null,arguments)},kk=d.__GLOBAL__sub_I_interleaved_attribute_set_cc=function(){return d.asm.__GLOBAL__sub_I_interleaved_attribute_set_cc.apply(null,
arguments)},Sj=d.__GLOBAL__sub_I_iostream_cpp=function(){return d.asm.__GLOBAL__sub_I_iostream_cpp.apply(null,arguments)},Vk=d.__GLOBAL__sub_I_line_animation_cc=function(){return d.asm.__GLOBAL__sub_I_line_animation_cc.apply(null,arguments)},sk=d.__GLOBAL__sub_I_line_builder_cc=function(){return d.asm.__GLOBAL__sub_I_line_builder_cc.apply(null,arguments)},ql=d.__GLOBAL__sub_I_line_converter_cc=function(){return d.asm.__GLOBAL__sub_I_line_converter_cc.apply(null,arguments)},Zk=d.__GLOBAL__sub_I_line_modifier_cc=
function(){return d.asm.__GLOBAL__sub_I_line_modifier_cc.apply(null,arguments)},Yk=d.__GLOBAL__sub_I_line_modifier_factory_cc=function(){return d.asm.__GLOBAL__sub_I_line_modifier_factory_cc.apply(null,arguments)},Hk=d.__GLOBAL__sub_I_line_tool_cc=function(){return d.asm.__GLOBAL__sub_I_line_tool_cc.apply(null,arguments)},rl=d.__GLOBAL__sub_I_line_tool_data_sink_cc=function(){return d.asm.__GLOBAL__sub_I_line_tool_data_sink_cc.apply(null,arguments)},Uj=d.__GLOBAL__sub_I_logging_cc=function(){return d.asm.__GLOBAL__sub_I_logging_cc.apply(null,
arguments)},ml=d.__GLOBAL__sub_I_magic_eraser_cc=function(){return d.asm.__GLOBAL__sub_I_magic_eraser_cc.apply(null,arguments)},nl=d.__GLOBAL__sub_I_magic_eraser_stylus_handler_cc=function(){return d.asm.__GLOBAL__sub_I_magic_eraser_stylus_handler_cc.apply(null,arguments)},Kk=d.__GLOBAL__sub_I_mesh_converter_cc=function(){return d.asm.__GLOBAL__sub_I_mesh_converter_cc.apply(null,arguments)},qk=d.__GLOBAL__sub_I_mesh_renderer_cc=function(){return d.asm.__GLOBAL__sub_I_mesh_renderer_cc.apply(null,arguments)},
rj=d.__GLOBAL__sub_I_mesh_serializer_provider_cc=function(){return d.asm.__GLOBAL__sub_I_mesh_serializer_provider_cc.apply(null,arguments)},ok=d.__GLOBAL__sub_I_mesh_shader_cc=function(){return d.asm.__GLOBAL__sub_I_mesh_shader_cc.apply(null,arguments)},Cj=d.__GLOBAL__sub_I_msaa_cc=function(){return d.asm.__GLOBAL__sub_I_msaa_cc.apply(null,arguments)},zj=d.__GLOBAL__sub_I_msaa_shim_cc=function(){return d.asm.__GLOBAL__sub_I_msaa_shim_cc.apply(null,arguments)},Sk=d.__GLOBAL__sub_I_mutations_cc=function(){return d.asm.__GLOBAL__sub_I_mutations_cc.apply(null,
arguments)},nk=d.__GLOBAL__sub_I_packed_mesh_shaders_cc=function(){return d.asm.__GLOBAL__sub_I_packed_mesh_shaders_cc.apply(null,arguments)},Gj=d.__GLOBAL__sub_I_page_border_cc=function(){return d.asm.__GLOBAL__sub_I_page_border_cc.apply(null,arguments)},Fj=d.__GLOBAL__sub_I_page_manager_cc=function(){return d.asm.__GLOBAL__sub_I_page_manager_cc.apply(null,arguments)},cl=d.__GLOBAL__sub_I_pan_handler_cc=function(){return d.asm.__GLOBAL__sub_I_pan_handler_cc.apply(null,arguments)},Fk=d.__GLOBAL__sub_I_particle_builder_cc=
function(){return d.asm.__GLOBAL__sub_I_particle_builder_cc.apply(null,arguments)},sl=d.__GLOBAL__sub_I_particle_manager_cc=function(){return d.asm.__GLOBAL__sub_I_particle_manager_cc.apply(null,arguments)},uj=d.__GLOBAL__sub_I_poly_store_cc=function(){return d.asm.__GLOBAL__sub_I_poly_store_cc.apply(null,arguments)},sj=d.__GLOBAL__sub_I_processed_element_cc=function(){return d.asm.__GLOBAL__sub_I_processed_element_cc.apply(null,arguments)},Xj=d.__GLOBAL__sub_I_proto_validators_cc=function(){return d.asm.__GLOBAL__sub_I_proto_validators_cc.apply(null,
arguments)},vj=d.__GLOBAL__sub_I_public_events_cc=function(){return d.asm.__GLOBAL__sub_I_public_events_cc.apply(null,arguments)},el=d.__GLOBAL__sub_I_pusher_selector_cc=function(){return d.asm.__GLOBAL__sub_I_pusher_selector_cc.apply(null,arguments)},Dk=d.__GLOBAL__sub_I_pusher_tool_cc=function(){return d.asm.__GLOBAL__sub_I_pusher_tool_cc.apply(null,arguments)},Ck=d.__GLOBAL__sub_I_query_tool_cc=function(){return d.asm.__GLOBAL__sub_I_query_tool_cc.apply(null,arguments)},Rj=d.__GLOBAL__sub_I_rand_funcs_cc=
function(){return d.asm.__GLOBAL__sub_I_rand_funcs_cc.apply(null,arguments)},Uk=d.__GLOBAL__sub_I_rect_selection_tool_cc=function(){return d.asm.__GLOBAL__sub_I_rect_selection_tool_cc.apply(null,arguments)},dl=d.__GLOBAL__sub_I_rect_selector_cc=function(){return d.asm.__GLOBAL__sub_I_rect_selector_cc.apply(null,arguments)},yj=d.__GLOBAL__sub_I_region_query_cc=function(){return d.asm.__GLOBAL__sub_I_region_query_cc.apply(null,arguments)},Bj=d.__GLOBAL__sub_I_render_target_cc=function(){return d.asm.__GLOBAL__sub_I_render_target_cc.apply(null,
arguments)},Pk=d.__GLOBAL__sub_I_root_controller_cc=function(){return d.asm.__GLOBAL__sub_I_root_controller_cc.apply(null,arguments)},Gk=d.__GLOBAL__sub_I_root_renderer_cc=function(){return d.asm.__GLOBAL__sub_I_root_renderer_cc.apply(null,arguments)},ol=d.__GLOBAL__sub_I_scene_drawable_cc=function(){return d.asm.__GLOBAL__sub_I_scene_drawable_cc.apply(null,arguments)},pl=d.__GLOBAL__sub_I_scene_element_adder_cc=function(){return d.asm.__GLOBAL__sub_I_scene_element_adder_cc.apply(null,arguments)},
xj=d.__GLOBAL__sub_I_scene_graph_cc=function(){return d.asm.__GLOBAL__sub_I_scene_graph_cc.apply(null,arguments)},Qk=d.__GLOBAL__sub_I_sengine_cc=function(){return d.asm.__GLOBAL__sub_I_sengine_cc.apply(null,arguments)},Jk=d.__GLOBAL__sub_I_sequence_point_task_cc=function(){return d.asm.__GLOBAL__sub_I_sequence_point_task_cc.apply(null,arguments)},tj=d.__GLOBAL__sub_I_serialized_element_cc=function(){return d.asm.__GLOBAL__sub_I_serialized_element_cc.apply(null,arguments)},mk=d.__GLOBAL__sub_I_shader_cc=
function(){return d.asm.__GLOBAL__sub_I_shader_cc.apply(null,arguments)},Kj=d.__GLOBAL__sub_I_shape_cc=function(){return d.asm.__GLOBAL__sub_I_shape_cc.apply(null,arguments)},Lj=d.__GLOBAL__sub_I_shape_renderer_cc=function(){return d.asm.__GLOBAL__sub_I_shape_renderer_cc.apply(null,arguments)},Qj=d.__GLOBAL__sub_I_single_partition_renderer_cc=function(){return d.asm.__GLOBAL__sub_I_single_partition_renderer_cc.apply(null,arguments)},Ak=d.__GLOBAL__sub_I_single_user_document_cc=function(){return d.asm.__GLOBAL__sub_I_single_user_document_cc.apply(null,
arguments)},pj=d.__GLOBAL__sub_I_spatial_index_factory_cc=function(){return d.asm.__GLOBAL__sub_I_spatial_index_factory_cc.apply(null,arguments)},Vj=d.__GLOBAL__sub_I_status_cc=function(){return d.asm.__GLOBAL__sub_I_status_cc.apply(null,arguments)},zk=d.__GLOBAL__sub_I_storage_action_cc=function(){return d.asm.__GLOBAL__sub_I_storage_action_cc.apply(null,arguments)},qj=d.__GLOBAL__sub_I_stroke_cc=function(){return d.asm.__GLOBAL__sub_I_stroke_cc.apply(null,arguments)},Lk=d.__GLOBAL__sub_I_stroke_outline_converter_cc=
function(){return d.asm.__GLOBAL__sub_I_stroke_outline_converter_cc.apply(null,arguments)},Ek=d.__GLOBAL__sub_I_tessellated_line_cc=function(){return d.asm.__GLOBAL__sub_I_tessellated_line_cc.apply(null,arguments)},Ij=d.__GLOBAL__sub_I_text_cc=function(){return d.asm.__GLOBAL__sub_I_text_cc.apply(null,arguments)},Jj=d.__GLOBAL__sub_I_text_texture_provider_cc=function(){return d.asm.__GLOBAL__sub_I_text_texture_provider_cc.apply(null,arguments)},hk=d.__GLOBAL__sub_I_texture_manager_cc=function(){return d.asm.__GLOBAL__sub_I_texture_manager_cc.apply(null,
arguments)},Dj=d.__GLOBAL__sub_I_texture_rtree_creator_cc=function(){return d.asm.__GLOBAL__sub_I_texture_rtree_creator_cc.apply(null,arguments)},Aj=d.__GLOBAL__sub_I_textured_quad_renderer_cc=function(){return d.asm.__GLOBAL__sub_I_textured_quad_renderer_cc.apply(null,arguments)},lk=d.__GLOBAL__sub_I_textured_shader_cc=function(){return d.asm.__GLOBAL__sub_I_textured_shader_cc.apply(null,arguments)},ll=d.__GLOBAL__sub_I_tool_controller_cc=function(){return d.asm.__GLOBAL__sub_I_tool_controller_cc.apply(null,
arguments)},Pj=d.__GLOBAL__sub_I_triple_buffered_renderer_cc=function(){return d.asm.__GLOBAL__sub_I_triple_buffered_renderer_cc.apply(null,arguments)},yk=d.__GLOBAL__sub_I_undo_manager_cc=function(){return d.asm.__GLOBAL__sub_I_undo_manager_cc.apply(null,arguments)},Ok=d.__GLOBAL__sub_I_unsafe_scene_helper_cc=function(){return d.asm.__GLOBAL__sub_I_unsafe_scene_helper_cc.apply(null,arguments)},uk=d.__GLOBAL__sub_I_update_loop_cc=function(){return d.asm.__GLOBAL__sub_I_update_loop_cc.apply(null,arguments)},
Wj=d.__GLOBAL__sub_I_uuid_cc=function(){return d.asm.__GLOBAL__sub_I_uuid_cc.apply(null,arguments)},ek=d.__GLOBAL__sub_I_uuid_generator_cc=function(){return d.asm.__GLOBAL__sub_I_uuid_generator_cc.apply(null,arguments)},gk=d.__GLOBAL__sub_I_web_task_runner_cc=function(){return d.asm.__GLOBAL__sub_I_web_task_runner_cc.apply(null,arguments)};d.___errno_location=function(){return d.asm.___errno_location.apply(null,arguments)};var bd=d.___getTypeName=function(){return d.asm.___getTypeName.apply(null,
arguments)},se=d._emscripten_GetProcAddress=function(){return d.asm._emscripten_GetProcAddress.apply(null,arguments)},ea=d._free=function(){return d.asm._free.apply(null,arguments)},ua=d._malloc=function(){return d.asm._malloc.apply(null,arguments)};d.setThrew=function(){return d.asm.setThrew.apply(null,arguments)};var zc=d.stackAlloc=function(){return d.asm.stackAlloc.apply(null,arguments)};d.dynCall_di=function(){return d.asm.dynCall_di.apply(null,arguments)};d.dynCall_dii=function(){return d.asm.dynCall_dii.apply(null,
arguments)};d.dynCall_ff=function(){return d.asm.dynCall_ff.apply(null,arguments)};d.dynCall_fff=function(){return d.asm.dynCall_fff.apply(null,arguments)};d.dynCall_fi=function(){return d.asm.dynCall_fi.apply(null,arguments)};d.dynCall_fif=function(){return d.asm.dynCall_fif.apply(null,arguments)};d.dynCall_fii=function(){return d.asm.dynCall_fii.apply(null,arguments)};d.dynCall_fiiif=function(){return d.asm.dynCall_fiiif.apply(null,arguments)};d.dynCall_i=function(){return d.asm.dynCall_i.apply(null,
arguments)};d.dynCall_ii=function(){return d.asm.dynCall_ii.apply(null,arguments)};d.dynCall_iii=function(){return d.asm.dynCall_iii.apply(null,arguments)};d.dynCall_iiii=function(){return d.asm.dynCall_iiii.apply(null,arguments)};d.dynCall_iiiid=function(){return d.asm.dynCall_iiiid.apply(null,arguments)};d.dynCall_iiiii=function(){return d.asm.dynCall_iiiii.apply(null,arguments)};d.dynCall_iiiiid=function(){return d.asm.dynCall_iiiiid.apply(null,arguments)};d.dynCall_iiiiii=function(){return d.asm.dynCall_iiiiii.apply(null,
arguments)};d.dynCall_iiiiiid=function(){return d.asm.dynCall_iiiiiid.apply(null,arguments)};d.dynCall_iiiiiii=function(){return d.asm.dynCall_iiiiiii.apply(null,arguments)};d.dynCall_iiiiiiii=function(){return d.asm.dynCall_iiiiiiii.apply(null,arguments)};d.dynCall_iiiiiiiii=function(){return d.asm.dynCall_iiiiiiiii.apply(null,arguments)};d.dynCall_iiiiij=function(){return d.asm.dynCall_iiiiij.apply(null,arguments)};d.dynCall_iijj=function(){return d.asm.dynCall_iijj.apply(null,arguments)};d.dynCall_ji=
function(){return d.asm.dynCall_ji.apply(null,arguments)};d.dynCall_v=function(){return d.asm.dynCall_v.apply(null,arguments)};d.dynCall_vd=function(){return d.asm.dynCall_vd.apply(null,arguments)};d.dynCall_vdd=function(){return d.asm.dynCall_vdd.apply(null,arguments)};d.dynCall_vdddddd=function(){return d.asm.dynCall_vdddddd.apply(null,arguments)};d.dynCall_vf=function(){return d.asm.dynCall_vf.apply(null,arguments)};d.dynCall_vff=function(){return d.asm.dynCall_vff.apply(null,arguments)};d.dynCall_vffff=
function(){return d.asm.dynCall_vffff.apply(null,arguments)};d.dynCall_vfi=function(){return d.asm.dynCall_vfi.apply(null,arguments)};d.dynCall_vi=function(){return d.asm.dynCall_vi.apply(null,arguments)};d.dynCall_vid=function(){return d.asm.dynCall_vid.apply(null,arguments)};d.dynCall_vif=function(){return d.asm.dynCall_vif.apply(null,arguments)};d.dynCall_viff=function(){return d.asm.dynCall_viff.apply(null,arguments)};d.dynCall_vifff=function(){return d.asm.dynCall_vifff.apply(null,arguments)};
d.dynCall_viffff=function(){return d.asm.dynCall_viffff.apply(null,arguments)};d.dynCall_vifi=function(){return d.asm.dynCall_vifi.apply(null,arguments)};d.dynCall_vii=function(){return d.asm.dynCall_vii.apply(null,arguments)};d.dynCall_viid=function(){return d.asm.dynCall_viid.apply(null,arguments)};d.dynCall_viif=function(){return d.asm.dynCall_viif.apply(null,arguments)};d.dynCall_viifiii=function(){return d.asm.dynCall_viifiii.apply(null,arguments)};d.dynCall_viii=function(){return d.asm.dynCall_viii.apply(null,
arguments)};d.dynCall_viiid=function(){return d.asm.dynCall_viiid.apply(null,arguments)};d.dynCall_viiifif=function(){return d.asm.dynCall_viiifif.apply(null,arguments)};d.dynCall_viiifii=function(){return d.asm.dynCall_viiifii.apply(null,arguments)};d.dynCall_viiifiii=function(){return d.asm.dynCall_viiifiii.apply(null,arguments)};d.dynCall_viiii=function(){return d.asm.dynCall_viiii.apply(null,arguments)};d.dynCall_viiiidff=function(){return d.asm.dynCall_viiiidff.apply(null,arguments)};d.dynCall_viiiidffffff=
function(){return d.asm.dynCall_viiiidffffff.apply(null,arguments)};d.dynCall_viiiif=function(){return d.asm.dynCall_viiiif.apply(null,arguments)};d.dynCall_viiiii=function(){return d.asm.dynCall_viiiii.apply(null,arguments)};d.dynCall_viiiiidff=function(){return d.asm.dynCall_viiiiidff.apply(null,arguments)};d.dynCall_viiiiidffffff=function(){return d.asm.dynCall_viiiiidffffff.apply(null,arguments)};d.dynCall_viiiiii=function(){return d.asm.dynCall_viiiiii.apply(null,arguments)};d.dynCall_viiiiiii=
function(){return d.asm.dynCall_viiiiiii.apply(null,arguments)};d.dynCall_viiiiiiii=function(){return d.asm.dynCall_viiiiiiii.apply(null,arguments)};d.dynCall_viiiiiiiii=function(){return d.asm.dynCall_viiiiiiiii.apply(null,arguments)};d.dynCall_viiiiiiiiii=function(){return d.asm.dynCall_viiiiiiiiii.apply(null,arguments)};d.dynCall_viiiij=function(){return d.asm.dynCall_viiiij.apply(null,arguments)};d.dynCall_viijii=function(){return d.asm.dynCall_viijii.apply(null,arguments)};d.dynCall_vij=function(){return d.asm.dynCall_vij.apply(null,
arguments)};d.dynCall_viji=function(){return d.asm.dynCall_viji.apply(null,arguments)};d.asm=wc;d.getValue=yc;d.Pointer_stringify=R;d.addFunction=xc;Ga.prototype=Error();Ga.prototype.constructor=Ga;var nj,tc=null;Ja=function b(){d.calledRun||Jb();d.calledRun||(Ja=b)};d.run=Jb;d.exit=mj;d.abort=G;if(d.preInit)for("function"==typeof d.preInit&&(d.preInit=[d.preInit]);0<d.preInit.length;)d.preInit.pop()();d.noExitRuntime=!0;Jb();g.Module=d;g.Browser=l})})(window);
var h,aa="function"==typeof Object.defineProperties?Object.defineProperty:function(a,b,c){a!=Array.prototype&&a!=Object.prototype&&(a[b]=c.value)},ba="undefined"!=typeof window&&window===this?this:"undefined"!=typeof global&&null!=global?global:this,ca=function(){ca=function(){};ba.Symbol||(ba.Symbol=da)},da=function(){var a=0;return function(b){return"jscomp_symbol_"+(b||"")+a++}}(),fa=function(){ca();var a=ba.Symbol.iterator;a||(a=ba.Symbol.iterator=ba.Symbol("iterator"));"function"!=typeof Array.prototype[a]&&
aa(Array.prototype,a,{configurable:!0,writable:!0,value:function(){return ea(this)}});fa=function(){}},ea=function(a){var b=0;return ha(function(){return b<a.length?{done:!1,value:a[b++]}:{done:!0}})},ha=function(a){fa();a={next:a};a[ba.Symbol.iterator]=function(){return this};return a},ia=function(a){fa();var b=a[Symbol.iterator];return b?b.call(a):ea(a)},ja=function(a,b){if(b){var c=ba;a=a.split(".");for(var d=0;d<a.length-1;d++){var e=a[d];e in c||(c[e]={});c=c[e]}a=a[a.length-1];d=c[a];b=b(d);
b!=d&&null!=b&&aa(c,a,{configurable:!0,writable:!0,value:b})}};ja("Array.prototype.find",function(a){return a?a:function(a,c){a:{var b=this;b instanceof String&&(b=String(b));for(var e=b.length,f=0;f<e;f++){var g=b[f];if(a.call(c,g,f,b)){a=g;break a}}a=void 0}return a}});var k=function(a,b){return Object.prototype.hasOwnProperty.call(a,b)};ja("Object.entries",function(a){return a?a:function(a){var b=[],d;for(d in a)k(a,d)&&b.push([d,a[d]]);return b}});
ja("WeakMap",function(a){function b(a){k(a,d)||aa(a,d,{value:{}})}function c(a){var c=Object[a];c&&(Object[a]=function(a){b(a);return c(a)})}if(function(){if(!a||!Object.seal)return!1;try{var b=Object.seal({}),c=Object.seal({}),d=new a([[b,2],[c,3]]);if(2!=d.get(b)||3!=d.get(c))return!1;d.delete(b);d.set(c,4);return!d.has(b)&&4==d.get(c)}catch(u){return!1}}())return a;var d="$jscomp_hidden_"+Math.random();c("freeze");c("preventExtensions");c("seal");var e=0,f=function(a){this.a=(e+=Math.random()+
1).toString();if(a){ca();fa();a=ia(a);for(var b;!(b=a.next()).done;)b=b.value,this.set(b[0],b[1])}};f.prototype.set=function(a,c){b(a);if(!k(a,d))throw Error("WeakMap key fail: "+a);a[d][this.a]=c;return this};f.prototype.get=function(a){return k(a,d)?a[d][this.a]:void 0};f.prototype.has=function(a){return k(a,d)&&k(a[d],this.a)};f.prototype.delete=function(a){return k(a,d)&&k(a[d],this.a)?delete a[d][this.a]:!1};return f});
ja("Map",function(a){if(function(){if(!a||"function"!=typeof a||!a.prototype.entries||"function"!=typeof Object.seal)return!1;try{var b=Object.seal({x:4}),c=new a(ia([[b,"s"]]));if("s"!=c.get(b)||1!=c.size||c.get({x:4})||c.set({x:4},"t")!=c||2!=c.size)return!1;var d=c.entries(),e=d.next();if(e.done||e.value[0]!=b||"s"!=e.value[1])return!1;e=d.next();return e.done||4!=e.value[0].x||"t"!=e.value[1]||!d.next().done?!1:!0}catch(O){return!1}}())return a;ca();fa();var b=new WeakMap,c=function(a){this.a=
{};this.b=f();this.size=0;if(a){a=ia(a);for(var b;!(b=a.next()).done;)b=b.value,this.set(b[0],b[1])}};c.prototype.set=function(a,b){var c=d(this,a);c.list||(c.list=this.a[c.id]=[]);c.u?c.u.value=b:(c.u={next:this.b,G:this.b.G,head:this.b,key:a,value:b},c.list.push(c.u),this.b.G.next=c.u,this.b.G=c.u,this.size++);return this};c.prototype.delete=function(a){a=d(this,a);return a.u&&a.list?(a.list.splice(a.index,1),a.list.length||delete this.a[a.id],a.u.G.next=a.u.next,a.u.next.G=a.u.G,a.u.head=null,
this.size--,!0):!1};c.prototype.clear=function(){this.a={};this.b=this.b.G=f();this.size=0};c.prototype.has=function(a){return!!d(this,a).u};c.prototype.get=function(a){return(a=d(this,a).u)&&a.value};c.prototype.entries=function(){return e(this,function(a){return[a.key,a.value]})};c.prototype.keys=function(){return e(this,function(a){return a.key})};c.prototype.values=function(){return e(this,function(a){return a.value})};c.prototype.forEach=function(a,b){for(var c=this.entries(),d;!(d=c.next()).done;)d=
d.value,a.call(b,d[1],d[0],this)};c.prototype[Symbol.iterator]=c.prototype.entries;var d=function(a,c){var d=c&&typeof c;"object"==d||"function"==d?b.has(c)?d=b.get(c):(d=""+ ++g,b.set(c,d)):d="p_"+c;var e=a.a[d];if(e&&k(a.a,d))for(a=0;a<e.length;a++){var f=e[a];if(c!==c&&f.key!==f.key||c===f.key)return{id:d,list:e,index:a,u:f}}return{id:d,list:e,index:-1,u:void 0}},e=function(a,b){var c=a.b;return ha(function(){if(c){for(;c.head!=a.b;)c=c.G;for(;c.next!=c.head;)return c=c.next,{done:!1,value:b(c)};
c=null}return{done:!0,value:void 0}})},f=function(){var a={};return a.G=a.next=a.head=a},g=0;return c});
ja("Set",function(a){if(function(){if(!a||"function"!=typeof a||!a.prototype.entries||"function"!=typeof Object.seal)return!1;try{var b=Object.seal({x:4}),d=new a(ia([b]));if(!d.has(b)||1!=d.size||d.add(b)!=d||1!=d.size||d.add({x:4})!=d||2!=d.size)return!1;var e=d.entries(),f=e.next();if(f.done||f.value[0]!=b||f.value[1]!=b)return!1;f=e.next();return f.done||f.value[0]==b||4!=f.value[0].x||f.value[1]!=f.value[0]?!1:e.next().done}catch(g){return!1}}())return a;ca();fa();var b=function(a){this.a=new Map;
if(a){a=ia(a);for(var b;!(b=a.next()).done;)this.add(b.value)}this.size=this.a.size};b.prototype.add=function(a){this.a.set(a,a);this.size=this.a.size;return this};b.prototype.delete=function(a){a=this.a.delete(a);this.size=this.a.size;return a};b.prototype.clear=function(){this.a.clear();this.size=0};b.prototype.has=function(a){return this.a.has(a)};b.prototype.entries=function(){return this.a.entries()};b.prototype.values=function(){return this.a.values()};b.prototype.keys=b.prototype.values;b.prototype[Symbol.iterator]=
b.prototype.values;b.prototype.forEach=function(a,b){var c=this;this.a.forEach(function(d){return a.call(b,d,d,c)})};return b});
var l=this,n=function(a){return void 0!==a},q=function(a){return"string"==typeof a},ka=function(){},la=function(a){a.ha=void 0;a.w=function(){return a.ha?a.ha:a.ha=new a}},ma=function(a){var b=typeof a;if("object"==b)if(a){if(a instanceof Array)return"array";if(a instanceof Object)return b;var c=Object.prototype.toString.call(a);if("[object Window]"==c)return"object";if("[object Array]"==c||"number"==typeof a.length&&"undefined"!=typeof a.splice&&"undefined"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable("splice"))return"array";
if("[object Function]"==c||"undefined"!=typeof a.call&&"undefined"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable("call"))return"function"}else return"null";else if("function"==b&&"undefined"==typeof a.call)return"object";return b},na=function(a){return"array"==ma(a)},oa=function(a){var b=typeof a;return"object"==b&&null!=a||"function"==b},pa="closure_uid_"+(1E9*Math.random()>>>0),qa=0,ra=function(a,b,c){return a.call.apply(a.bind,arguments)},sa=function(a,b,c){if(!a)throw Error();if(2<arguments.length){var d=
Array.prototype.slice.call(arguments,2);return function(){var c=Array.prototype.slice.call(arguments);Array.prototype.unshift.apply(c,d);return a.apply(b,c)}}return function(){return a.apply(b,arguments)}},r=function(a,b,c){Function.prototype.bind&&-1!=Function.prototype.bind.toString().indexOf("native code")?r=ra:r=sa;return r.apply(null,arguments)},ta=function(a,b){a=a.split(".");var c=l;a[0]in c||"undefined"==typeof c.execScript||c.execScript("var "+a[0]);for(var d;a.length&&(d=a.shift());)!a.length&&
n(b)?c[d]=b:c[d]&&c[d]!==Object.prototype[d]?c=c[d]:c=c[d]={}},t=function(a,b){function c(){}c.prototype=b.prototype;a.S=b.prototype;a.prototype=new c;a.prototype.constructor=a;a.bd=function(a,c,f){for(var d=Array(arguments.length-2),e=2;e<arguments.length;e++)d[e-2]=arguments[e];return b.prototype[c].apply(a,d)}};var ua=function(a){if(Error.captureStackTrace)Error.captureStackTrace(this,ua);else{var b=Error().stack;b&&(this.stack=b)}a&&(this.message=String(a))};t(ua,Error);ua.prototype.name="CustomError";var va;var wa=function(a,b){a=a.split("%s");for(var c="",d=a.length-1,e=0;e<d;e++)c+=a[e]+(e<b.length?b[e]:"%s");ua.call(this,c+a[d])};t(wa,ua);wa.prototype.name="AssertionError";
var xa=function(a,b,c,d){var e="Assertion failed";if(c){e+=": "+c;var f=d}else a&&(e+=": "+a,f=b);throw new wa(""+e,f||[]);},v=function(a,b,c){a||xa("",null,b,Array.prototype.slice.call(arguments,2));return a},ya=function(a,b){throw new wa("Failure"+(a?": "+a:""),Array.prototype.slice.call(arguments,1));},za=function(a,b,c){"number"==typeof a||xa("Expected number but got %s: %s.",[ma(a),a],b,Array.prototype.slice.call(arguments,2))},Aa=function(a,b,c){q(a)||xa("Expected string but got %s: %s.",[ma(a),
a],b,Array.prototype.slice.call(arguments,2));return a},Ba=function(a,b,c){oa(a)||xa("Expected object but got %s: %s.",[ma(a),a],b,Array.prototype.slice.call(arguments,2))};var Ca=Array.prototype.indexOf?function(a,b){v(null!=a.length);return Array.prototype.indexOf.call(a,b,void 0)}:function(a,b){if(q(a))return q(b)&&1==b.length?a.indexOf(b,0):-1;for(var c=0;c<a.length;c++)if(c in a&&a[c]===b)return c;return-1},Da=Array.prototype.forEach?function(a,b,c){v(null!=a.length);Array.prototype.forEach.call(a,b,c)}:function(a,b,c){for(var d=a.length,e=q(a)?a.split(""):a,f=0;f<d;f++)f in e&&b.call(c,e[f],f,a)},Ea=Array.prototype.filter?function(a,b){v(null!=a.length);return Array.prototype.filter.call(a,
b,void 0)}:function(a,b){for(var c=a.length,d=[],e=0,f=q(a)?a.split(""):a,g=0;g<c;g++)if(g in f){var m=f[g];b.call(void 0,m,g,a)&&(d[e++]=m)}return d},Fa=Array.prototype.reduce?function(a,b,c){v(null!=a.length);return Array.prototype.reduce.call(a,b,c)}:function(a,b,c){var d=c;Da(a,function(c,f){d=b.call(void 0,d,c,f,a)});return d},Ha=function(a,b){b=Ca(a,b);var c;(c=0<=b)&&Ga(a,b);return c},Ga=function(a,b){v(null!=a.length);Array.prototype.splice.call(a,b,1)},Ia=function(a,b){for(var c=1;c<arguments.length;c++){var d=
arguments[c],e=d,f=ma(e);if("array"==f||"object"==f&&"number"==typeof e.length){e=a.length||0;f=d.length||0;a.length=e+f;for(var g=0;g<f;g++)a[e+g]=d[g]}else a.push(d)}},Ka=function(a,b,c,d){v(null!=a.length);Array.prototype.splice.apply(a,Ja(arguments,1))},Ja=function(a,b,c){v(null!=a.length);return 2>=arguments.length?Array.prototype.slice.call(a,b):Array.prototype.slice.call(a,b,c)},Ma=function(a,b){a.sort(b||La)},La=function(a,b){return a>b?1:a<b?-1:0};var Na=String.prototype.trim?function(a){return a.trim()}:function(a){return/^[\s\xa0]*([\s\S]*?)[\s\xa0]*$/.exec(a)[1]},Va=function(a){if(!Oa.test(a))return a;-1!=a.indexOf("&")&&(a=a.replace(Pa,"&amp;"));-1!=a.indexOf("<")&&(a=a.replace(Qa,"&lt;"));-1!=a.indexOf(">")&&(a=a.replace(Ra,"&gt;"));-1!=a.indexOf('"')&&(a=a.replace(Sa,"&quot;"));-1!=a.indexOf("'")&&(a=a.replace(Ta,"&#39;"));-1!=a.indexOf("\x00")&&(a=a.replace(Ua,"&#0;"));return a},Pa=/&/g,Qa=/</g,Ra=/>/g,Sa=/"/g,Ta=/'/g,Ua=/\x00/g,Oa=
/[\x00&<>"']/,Xa=function(a,b){var c=0;a=Na(String(a)).split(".");b=Na(String(b)).split(".");for(var d=Math.max(a.length,b.length),e=0;0==c&&e<d;e++){var f=a[e]||"",g=b[e]||"";do{f=/(\d*)(\D*)(.*)/.exec(f)||["","","",""];g=/(\d*)(\D*)(.*)/.exec(g)||["","","",""];if(0==f[0].length&&0==g[0].length)break;c=Wa(0==f[1].length?0:parseInt(f[1],10),0==g[1].length?0:parseInt(g[1],10))||Wa(0==f[2].length,0==g[2].length)||Wa(f[2],g[2]);f=f[3];g=g[3]}while(0==c)}return c},Wa=function(a,b){return a<b?-1:a>b?1:
0};var Ya;a:{var Za=l.navigator;if(Za){var $a=Za.userAgent;if($a){Ya=$a;break a}}Ya=""}var w=function(a){return-1!=Ya.indexOf(a)};var ab=function(a){var b=[],c=0,d;for(d in a)b[c++]=a[d];return b},bb="constructor hasOwnProperty isPrototypeOf propertyIsEnumerable toLocaleString toString valueOf".split(" "),cb=function(a,b){for(var c,d,e=1;e<arguments.length;e++){d=arguments[e];for(c in d)a[c]=d[c];for(var f=0;f<bb.length;f++)c=bb[f],Object.prototype.hasOwnProperty.call(d,c)&&(a[c]=d[c])}};var db=function(a){db[" "](a);return a};db[" "]=ka;var eb=function(a,b,c){return Object.prototype.hasOwnProperty.call(a,b)?a[b]:a[b]=c(b)};var fb=w("Opera"),gb=w("Trident")||w("MSIE"),hb=w("Edge"),ib=w("Gecko")&&!(-1!=Ya.toLowerCase().indexOf("webkit")&&!w("Edge"))&&!(w("Trident")||w("MSIE"))&&!w("Edge"),jb=-1!=Ya.toLowerCase().indexOf("webkit")&&!w("Edge"),kb=w("Macintosh"),lb=function(){var a=l.document;return a?a.documentMode:void 0},mb;
a:{var nb="",ob=function(){var a=Ya;if(ib)return/rv:([^\);]+)(\)|;)/.exec(a);if(hb)return/Edge\/([\d\.]+)/.exec(a);if(gb)return/\b(?:MSIE|rv)[: ]([^\);]+)(\)|;)/.exec(a);if(jb)return/WebKit\/(\S+)/.exec(a);if(fb)return/(?:Version)[ \/]?(\S+)/.exec(a)}();ob&&(nb=ob?ob[1]:"");if(gb){var pb=lb();if(null!=pb&&pb>parseFloat(nb)){mb=String(pb);break a}}mb=nb}var qb=mb,rb={},sb=function(a){return eb(rb,a,function(){return 0<=Xa(qb,a)})},tb;var ub=l.document;
tb=ub&&gb?lb()||("CSS1Compat"==ub.compatMode?parseInt(qb,10):5):void 0;var vb=Object.freeze||function(a){return a};var wb=function(){};var xb=function(a){if(a.classList)return a.classList;a=a.className;return q(a)&&a.match(/\S+/g)||[]},yb=function(a){a.classList?a=a.classList.contains("fullscreen"):(a=xb(a),a=0<=Ca(a,"fullscreen"));return a},zb=function(a){a.classList?a.classList.remove("fullscreen"):yb(a)&&(a.className=Ea(xb(a),function(a){return"fullscreen"!=a}).join(" "))};var Ab=function(){this.a=""};Ab.prototype.toString=function(){return"SafeUrl{"+this.a+"}"};
var Bb=/^(?:audio\/(?:3gpp|3gpp2|aac|midi|mp4|mpeg|ogg|x-m4a|x-wav|webm)|image\/(?:bmp|gif|jpeg|jpg|png|tiff|webp)|text\/csv|video\/(?:mpeg|mp4|ogg|webm|quicktime))$/i,Db=function(a){if(Bb.test(a.type)){var b=n(l.URL)&&n(l.URL.createObjectURL)?l.URL:n(l.webkitURL)&&n(l.webkitURL.createObjectURL)?l.webkitURL:n(l.createObjectURL)?l:null;if(null==b)throw Error("This browser doesn't seem to support blob URLs");a=b.createObjectURL(a)}else a="about:invalid#zClosurez";return Cb(a)},Eb=/^data:([^;,]*);base64,[a-z0-9+\/]+=*$/i,
Fb=function(a){var b=a.match(Eb);b=b&&Bb.test(b[1]);return Cb(b?a:"about:invalid#zClosurez")},Cb=function(a){var b=new Ab;b.a=a;return b};Cb("about:blank");var Gb=function(a){return Fa(arguments,function(a,c){return a+c},0)},Hb=function(a){return Gb.apply(null,arguments)/arguments.length};var Ib=function(a,b){this.x=n(a)?a:0;this.a=n(b)?b:0};h=Ib.prototype;h.clone=function(){return new Ib(this.x,this.a)};h.toString=function(){return"("+this.x+", "+this.a+")"};h.s=function(a){return a instanceof Ib&&(this==a?!0:this&&a?this.x==a.x&&this.a==a.a:!1)};h.ceil=function(){this.x=Math.ceil(this.x);this.a=Math.ceil(this.a);return this};h.floor=function(){this.x=Math.floor(this.x);this.a=Math.floor(this.a);return this};h.round=function(){this.x=Math.round(this.x);this.a=Math.round(this.a);return this};var Jb=function(a,b){this.width=a;this.height=b};h=Jb.prototype;h.clone=function(){return new Jb(this.width,this.height)};h.toString=function(){return"("+this.width+" x "+this.height+")"};h.za=function(){return this.width*this.height};h.aspectRatio=function(){return this.width/this.height};h.ceil=function(){this.width=Math.ceil(this.width);this.height=Math.ceil(this.height);return this};h.floor=function(){this.width=Math.floor(this.width);this.height=Math.floor(this.height);return this};
h.round=function(){this.width=Math.round(this.width);this.height=Math.round(this.height);return this};var Mb=function(a){return a?new Kb(Lb(a)):va||(va=new Kb)},Ob=function(a){return q(a)?document.getElementById(a):a},Lb=function(a){v(a,"Node cannot be null or undefined.");return 9==a.nodeType?a:a.ownerDocument||a.document},Qb=function(){var a=window;return n(a.devicePixelRatio)?a.devicePixelRatio:a.matchMedia?Pb(3)||Pb(2)||Pb(1.5)||Pb(1)||.75:1},Pb=function(a){return window.matchMedia("(min-resolution: "+a+"dppx),(min--moz-device-pixel-ratio: "+a+"),(min-resolution: "+96*a+"dpi)").matches?a:0},Kb=
function(a){this.a=a||l.document||document};Kb.prototype.F=function(){return q(void 0)?this.a.getElementById(void 0):void 0};var Rb=!gb||9<=Number(tb),Sb=gb&&!sb("9"),Tb=function(){if(!l.addEventListener||!Object.defineProperty)return!1;var a=!1,b=Object.defineProperty({},"passive",{get:function(){a=!0}});l.addEventListener("test",ka,b);l.removeEventListener("test",ka,b);return a}();var x=function(a,b){this.type=a;this.a=this.target=b;this.b=!1;this.ra=!0};x.prototype.preventDefault=function(){this.b=!0;this.ra=!1};var Ub=function(a,b){x.call(this,a?a.type:"");this.relatedTarget=this.a=this.target=null;this.button=this.screenY=this.screenX=this.clientY=this.clientX=0;this.key="";this.metaKey=this.shiftKey=this.altKey=this.ctrlKey=!1;this.pointerId=0;this.pointerType="";this.g=null;a&&this.init(a,b)};t(Ub,x);var Vb=vb({2:"touch",3:"pen",4:"mouse"});
Ub.prototype.init=function(a,b){var c=this.type=a.type,d=a.changedTouches?a.changedTouches[0]:null;this.target=a.target||a.srcElement;this.a=b;if(b=a.relatedTarget){if(ib){a:{try{db(b.nodeName);var e=!0;break a}catch(f){}e=!1}e||(b=null)}}else"mouseover"==c?b=a.fromElement:"mouseout"==c&&(b=a.toElement);this.relatedTarget=b;null===d?(this.clientX=void 0!==a.clientX?a.clientX:a.pageX,this.clientY=void 0!==a.clientY?a.clientY:a.pageY,this.screenX=a.screenX||0,this.screenY=a.screenY||0):(this.clientX=
void 0!==d.clientX?d.clientX:d.pageX,this.clientY=void 0!==d.clientY?d.clientY:d.pageY,this.screenX=d.screenX||0,this.screenY=d.screenY||0);this.button=a.button;this.key=a.key||"";this.ctrlKey=a.ctrlKey;this.altKey=a.altKey;this.shiftKey=a.shiftKey;this.metaKey=a.metaKey;this.pointerId=a.pointerId||0;this.pointerType=q(a.pointerType)?a.pointerType:Vb[a.pointerType]||"";this.g=a;a.defaultPrevented&&this.preventDefault()};
Ub.prototype.preventDefault=function(){Ub.S.preventDefault.call(this);var a=this.g;if(a.preventDefault)a.preventDefault();else if(a.returnValue=!1,Sb)try{if(a.ctrlKey||112<=a.keyCode&&123>=a.keyCode)a.keyCode=-1}catch(b){}};var Wb="closure_listenable_"+(1E6*Math.random()|0),Xb=0;var Yb=function(a,b,c,d,e){this.listener=a;this.a=null;this.src=b;this.type=c;this.capture=!!d;this.$=e;this.key=++Xb;this.R=this.X=!1},Zb=function(a){a.R=!0;a.listener=null;a.a=null;a.src=null;a.$=null};var $b=function(a){this.src=a;this.a={};this.b=0};$b.prototype.add=function(a,b,c,d,e){var f=a.toString();a=this.a[f];a||(a=this.a[f]=[],this.b++);var g=ac(a,b,d,e);-1<g?(b=a[g],c||(b.X=!1)):(b=new Yb(b,this.src,f,!!d,e),b.X=c,a.push(b));return b};var bc=function(a,b){var c=b.type;c in a.a&&Ha(a.a[c],b)&&(Zb(b),0==a.a[c].length&&(delete a.a[c],a.b--))},ac=function(a,b,c,d){for(var e=0;e<a.length;++e){var f=a[e];if(!f.R&&f.listener==b&&f.capture==!!c&&f.$==d)return e}return-1};var cc="closure_lm_"+(1E6*Math.random()|0),dc={},ec=0,gc=function(a,b,c,d,e){if(d&&d.once)return fc(a,b,c,d,e);if(na(b)){for(var f=0;f<b.length;f++)gc(a,b[f],c,d,e);return null}c=hc(c);a&&a[Wb]?(d=oa(d)?!!d.capture:!!d,ic(a),a=a.P.add(String(b),c,!1,d,e)):a=jc(a,b,c,!1,d,e);return a},jc=function(a,b,c,d,e,f){if(!b)throw Error("Invalid event type");var g=oa(e)?!!e.capture:!!e,m=kc(a);m||(a[cc]=m=new $b(a));c=m.add(b,c,d,g,f);if(c.a)return c;d=lc();c.a=d;d.src=a;d.listener=c;if(a.addEventListener)Tb||
(e=g),void 0===e&&(e=!1),a.addEventListener(b.toString(),d,e);else if(a.attachEvent)a.attachEvent(mc(b.toString()),d);else if(a.addListener&&a.removeListener)v("change"===b,"MediaQueryList only has a change event"),a.addListener(d);else throw Error("addEventListener and attachEvent are unavailable.");ec++;return c},lc=function(){var a=nc,b=Rb?function(c){return a.call(b.src,b.listener,c)}:function(c){c=a.call(b.src,b.listener,c);if(!c)return c};return b},fc=function(a,b,c,d,e){if(na(b)){for(var f=
0;f<b.length;f++)fc(a,b[f],c,d,e);return null}c=hc(c);return a&&a[Wb]?a.P.add(String(b),c,!0,oa(d)?!!d.capture:!!d,e):jc(a,b,c,!0,d,e)},oc=function(a,b,c,d,e){if(na(b))for(var f=0;f<b.length;f++)oc(a,b[f],c,d,e);else(d=oa(d)?!!d.capture:!!d,c=hc(c),a&&a[Wb])?(a=a.P,b=String(b).toString(),b in a.a&&(f=a.a[b],c=ac(f,c,d,e),-1<c&&(Zb(f[c]),Ga(f,c),0==f.length&&(delete a.a[b],a.b--)))):a&&(a=kc(a))&&(b=a.a[b.toString()],a=-1,b&&(a=ac(b,c,d,e)),(c=-1<a?b[a]:null)&&pc(c))},pc=function(a){if("number"!=typeof a&&
a&&!a.R){var b=a.src;if(b&&b[Wb])bc(b.P,a);else{var c=a.type,d=a.a;b.removeEventListener?b.removeEventListener(c,d,a.capture):b.detachEvent?b.detachEvent(mc(c),d):b.addListener&&b.removeListener&&b.removeListener(d);ec--;(c=kc(b))?(bc(c,a),0==c.b&&(c.src=null,b[cc]=null)):Zb(a)}}},mc=function(a){return a in dc?dc[a]:dc[a]="on"+a},rc=function(a,b,c,d){var e=!0;if(a=kc(a))if(b=a.a[b.toString()])for(b=b.concat(),a=0;a<b.length;a++){var f=b[a];f&&f.capture==c&&!f.R&&(f=qc(f,d),e=e&&!1!==f)}return e},
qc=function(a,b){var c=a.listener,d=a.$||a.src;a.X&&pc(a);return c.call(d,b)},nc=function(a,b){if(a.R)return!0;if(!Rb){if(!b)a:{b=["window","event"];for(var c=l,d=0;d<b.length;d++)if(c=c[b[d]],null==c){b=null;break a}b=c}d=b;b=new Ub(d,this);c=!0;if(!(0>d.keyCode||void 0!=d.returnValue)){a:{var e=!1;if(0==d.keyCode)try{d.keyCode=-1;break a}catch(g){e=!0}if(e||void 0==d.returnValue)d.returnValue=!0}d=[];for(e=b.a;e;e=e.parentNode)d.push(e);a=a.type;for(e=d.length-1;0<=e;e--){b.a=d[e];var f=rc(d[e],
a,!0,b);c=c&&f}for(e=0;e<d.length;e++)b.a=d[e],f=rc(d[e],a,!1,b),c=c&&f}return c}return qc(a,new Ub(b,this))},kc=function(a){a=a[cc];return a instanceof $b?a:null},sc="__closure_events_fn_"+(1E9*Math.random()>>>0),hc=function(a){v(a,"Listener can not be null.");if("function"==ma(a))return a;v(a.handleEvent,"An object listener must have handleEvent method.");a[sc]||(a[sc]=function(b){return a.handleEvent(b)});return a[sc]};var tc=function(a){this.a=a;this.b={}};t(tc,wb);var uc=[],vc=function(a,b,c,d){na(c)||(c&&(uc[0]=c.toString()),c=uc);for(var e=0;e<c.length;e++){var f=gc(b,c[e],d||a.handleEvent,!1,a.a||a);if(!f)break;a.b[f.key]=f}},xc=function(a,b,c){wc(a,b,"p",c,void 0)},wc=function(a,b,c,d,e,f){if(na(c))for(var g=0;g<c.length;g++)wc(a,b,c[g],d,e,f);else(b=fc(b,c,d||a.handleEvent,e,f||a.a||a))&&(a.b[b.key]=b)};tc.prototype.handleEvent=function(){throw Error("EventHandler.handleEvent not implemented");};var y=function(){this.P=new $b(this);this.sa=this;this.T=null};t(y,wb);y.prototype[Wb]=!0;y.prototype.W=function(a){this.T=a};y.prototype.removeEventListener=function(a,b,c,d){oc(this,a,b,c,d)};
var A=function(a,b){ic(a);var c=a.T;if(c){var d=[];for(var e=1;c;c=c.T)d.push(c),v(1E3>++e,"infinite loop")}a=a.sa;c=b.type||b;q(b)?b=new x(b,a):b instanceof x?b.target=b.target||a:(e=b,b=new x(c,a),cb(b,e));e=!0;if(d)for(var f=d.length-1;0<=f;f--){var g=b.a=d[f];e=yc(g,c,!0,b)&&e}g=b.a=a;e=yc(g,c,!0,b)&&e;e=yc(g,c,!1,b)&&e;if(d)for(f=0;f<d.length;f++)g=b.a=d[f],e=yc(g,c,!1,b)&&e;return e},yc=function(a,b,c,d){b=a.P.a[String(b)];if(!b)return!0;b=b.concat();for(var e=!0,f=0;f<b.length;++f){var g=b[f];
if(g&&!g.R&&g.capture==c){var m=g.listener,p=g.$||g.src;g.X&&bc(a.P,g);e=!1!==m.call(p,d)&&e}}return e&&0!=d.ra},ic=function(a){v(a.P,"Event target is not initialized. Did you call the superclass (goog.events.EventTarget) constructor?")};var B=function(a,b){this.a=a|0;this.b=b|0},zc={},Bc={},C=function(a){return eb(zc,a,function(a){return new B(a,0>a?-1:0)})},Cc=function(a){var b=a|0;v(a===b,"value should be a 32-bit integer");return-128<=b&&128>b?C(b):new B(b,0>b?-1:0)},F=function(a){return isNaN(a)?C(0):a<=-Dc?D():a+1>=Dc?Ec():0>a?E(F(-a)):new B(a%4294967296|0,a/4294967296|0)},G=function(a,b){return new B(a,b)},Fc=function(a,b){if(0==a.length)throw Error("number format error: empty string");b=b||10;if(2>b||36<b)throw Error("radix out of range: "+
b);if("-"==a.charAt(0))return E(Fc(a.substring(1),b));if(0<=a.indexOf("-"))throw Error('number format error: interior "-" character: '+a);for(var c=F(Math.pow(b,8)),d=C(0),e=0;e<a.length;e+=8){var f=Math.min(8,a.length-e),g=parseInt(a.substring(e,e+f),b);8>f?(f=F(Math.pow(b,f)),d=H(d,f).add(F(g))):(d=H(d,c),d=d.add(F(g)))}return d},Dc=4294967296*4294967296/2,Ec=function(){return eb(Bc,1,function(){return G(-1,2147483647)})},D=function(){return eb(Bc,2,function(){return G(0,-2147483648)})},Gc=function(){return eb(Bc,
6,function(){return Cc(16777216)})};B.prototype.toString=function(a){a=a||10;if(2>a||36<a)throw Error("radix out of range: "+a);if(Hc(this))return"0";if(0>this.b){if(this.s(D())){var b=F(a),c=Ic(this,b);b=Jc(H(c,b),this);return c.toString(a)+b.a.toString(a)}return"-"+E(this).toString(a)}c=F(Math.pow(a,6));b=this;for(var d="";;){var e=Ic(b,c),f=(Jc(b,H(e,c)).a>>>0).toString(a);b=e;if(Hc(b))return f+d;for(;6>f.length;)f="0"+f;d=""+f+d}};
var Kc=function(a){return 0<=a.a?a.a:4294967296+a.a},Hc=function(a){return 0==a.b&&0==a.a};B.prototype.s=function(a){return this.b==a.b&&this.a==a.a};var Mc=function(a){var b=Gc();return 0>Lc(a,b)},Lc=function(a,b){if(a.s(b))return 0;var c=0>a.b,d=0>b.b;return c&&!d?-1:!c&&d?1:0>Jc(a,b).b?-1:1},E=function(a){return a.s(D())?D():G(~a.a,~a.b).add(C(1))};
B.prototype.add=function(a){var b=this.b>>>16,c=this.b&65535,d=this.a>>>16,e=a.b>>>16,f=a.b&65535,g=a.a>>>16;a=(this.a&65535)+(a.a&65535);g=(a>>>16)+(d+g);d=g>>>16;d+=c+f;b=(d>>>16)+(b+e)&65535;return G((g&65535)<<16|a&65535,b<<16|d&65535)};
var Jc=function(a,b){return a.add(E(b))},H=function(a,b){if(Hc(a)||Hc(b))return C(0);if(a.s(D()))return 1==(b.a&1)?D():C(0);if(b.s(D()))return 1==(a.a&1)?D():C(0);if(0>a.b)return 0>b.b?H(E(a),E(b)):E(H(E(a),b));if(0>b.b)return E(H(a,E(b)));if(Mc(a)&&Mc(b))return F((4294967296*a.b+Kc(a))*(4294967296*b.b+Kc(b)));var c=a.b>>>16,d=a.b&65535,e=a.a>>>16;a=a.a&65535;var f=b.b>>>16,g=b.b&65535,m=b.a>>>16;b=b.a&65535;var p=a*b;var u=(p>>>16)+e*b;var z=u>>>16;u=(u&65535)+a*m;z+=u>>>16;z+=d*b;var O=z>>>16;z=
(z&65535)+e*m;O+=z>>>16;z=(z&65535)+a*g;O=O+(z>>>16)+(c*b+d*m+e*g+a*f)&65535;return G((u&65535)<<16|p&65535,O<<16|z&65535)},Ic=function(a,b){if(Hc(b))throw Error("division by zero");if(Hc(a))return C(0);if(a.s(D())){if(b.s(C(1))||b.s(C(-1)))return D();if(b.s(D()))return C(1);var c=1;if(0==c)c=a;else{var d=a.b;c=32>c?G(a.a>>>c|d<<32-c,d>>c):G(d>>c-32,0<=d?0:-1)}c=Nc(Ic(c,b),1);if(c.s(C(0)))return 0>b.b?C(1):C(-1);a=Jc(a,H(b,c));return c.add(Ic(a,b))}if(b.s(D()))return C(0);if(0>a.b)return 0>b.b?Ic(E(a),
E(b)):E(Ic(E(a),b));if(0>b.b)return E(Ic(a,E(b)));for(d=C(0);0<=Lc(a,b);){c=Math.max(1,Math.floor((4294967296*a.b+Kc(a))/(4294967296*b.b+Kc(b))));var e=Math.ceil(Math.log(c)/Math.LN2);e=48>=e?1:Math.pow(2,e-48);for(var f=F(c),g=H(f,b);0>g.b||0<Lc(g,a);)c-=e,f=F(c),g=H(f,b);Hc(f)&&(f=C(1));d=d.add(f);a=Jc(a,g)}return d};B.prototype.and=function(a){return G(this.a&a.a,this.b&a.b)};B.prototype.or=function(a){return G(this.a|a.a,this.b|a.b)};B.prototype.xor=function(a){return G(this.a^a.a,this.b^a.b)};
var Nc=function(a,b){b&=63;if(0==b)return a;var c=a.a;return 32>b?G(c<<b,a.b<<b|c>>>32-b):G(0,c<<b-32)},Oc=function(a,b){b&=63;if(0==b)return a;var c=a.b;return 32>b?G(a.a>>>b|c<<32-b,c>>>b):32==b?G(c,0):G(c>>>b-32,0)};var Pc=function(a,b){this.ia=a;this.a={};for(a=0;a<b.length;a++){var c=b[a];this.a[c.a]=c}},Qc=function(a){a=ab(a.a);Ma(a,function(a,c){return a.a-c.a});return a},Rc=function(a,b){v(!/[^0-9]/.test(b));return a.a[parseInt(b,10)]||null};var Sc=function(a,b,c){this.i=a;v(!/[^0-9]/.test(b));this.a=b;this.o=!!c.ja;this.g=!!c.m;this.b=c.c;this.h=c.type;this.l=!1;switch(this.b){case 3:case 4:case 6:case 16:case 18:case 2:case 1:this.l=!0}},Tc=function(a){return 11==a.b||10==a.b};var I=function(){this.A={};this.b=this.f().a;this.a=null};I.prototype.has=function(a){v(a.i.prototype.f()==this.f(),"The current message does not contain the given field");return null!=this.A[a.a]};var Uc=function(a,b){v(b.i.prototype.f()==a.f(),"The current message does not contain the given field");b=b.a;return a.b[b].g?null!=a.A[b]?a.A[b].length:0:null!=a.A[b]?1:0};
I.prototype.get=function(a,b){v(a.i.prototype.f()==this.f(),"The current message does not contain the given field");return Vc(this,a.a,b)};I.prototype.set=function(a,b){v(a.i.prototype.f()==this.f(),"The current message does not contain the given field");J(this,a.a,b)};I.prototype.add=function(a,b){v(a.i.prototype.f()==this.f(),"The current message does not contain the given field");Wc(this,a.a,b)};
I.prototype.s=function(a){if(!a||this.constructor!=a.constructor)return!1;for(var b=Qc(this.f()),c=0;c<b.length;c++){var d=b[c],e=d.a;if(null!=this.A[e]!=(null!=a.A[e]))return!1;if(null!=this.A[e]){var f=Tc(d),g=Xc(this,e);e=Xc(a,e);if(d.g){if(g.length!=e.length)return!1;for(d=0;d<g.length;d++){var m=g[d],p=e[d];if(f?!m.s(p):m!=p)return!1}}else if(f?!g.s(e):g!=e)return!1}}return!0};
var Yc=function(a,b){v(a.constructor==b.constructor,"The source message must have the same type.");for(var c=Qc(a.f()),d=0;d<c.length;d++){var e=c[d],f=e.a;if(null!=b.A[f]){a.a&&delete a.a[e.a];var g=Tc(e);if(e.g){e=Xc(b,f)||[];for(var m=0;m<e.length;m++)Wc(a,f,g?e[m].clone():e[m])}else e=Xc(b,f),g?(g=Xc(a,f))?Yc(g,e):J(a,f,e.clone()):J(a,f,e)}}};
I.prototype.clone=function(){var a=new this.constructor;v(a.constructor==this.constructor,"The source message must have the same type.");a!=this&&(a.A={},a.a&&(a.a={}),Yc(a,this));return a};
var Xc=function(a,b){a=a.A[b];return null==a?null:a},Vc=function(a,b,c){var d=Xc(a,b);return a.b[b].g?(a=c||0,v(0<=a&&a<d.length,"Given index %s is out of bounds. Repeated field length: %s",a,d.length),d[a]):d},J=function(a,b,c){var d=a.b[b];14==d.b?za(c):v(Object(c).constructor==d.h);a.A[b]=c;a.a&&(a.a[b]=c)},Wc=function(a,b,c){var d=a.b[b];14==d.b?za(c):v(Object(c).constructor==d.h);a.A[b]||(a.A[b]=[]);a.A[b].push(c);a.a&&delete a.a[b]},K=function(a,b){var c=[],d;for(d in b)0!=d&&c.push(new Sc(a,
d,b[d]));return new Pc(a,c)};var Zc=function(){};Zc.prototype.h=function(a,b){Tc(a)&&this.i(b)};Zc.prototype.g=function(a,b){if(Tc(a))return b instanceof I||(a=new (a.h.prototype.f().ia),this.l(a,b),v(a instanceof I),b=a),b;if(14==a.b)return q(b)&&$c.test(b)&&(a=Number(b),0<a)?a:b;if(!a.l)return b;a=a.h;if(a===String){if("number"==typeof b)return String(b)}else if(a===Number&&q(b)&&("Infinity"===b||"-Infinity"===b||"NaN"===b||$c.test(b)))return Number(b);return b};var $c=/^-?[0-9]+$/;var ad={dd:!0},bd={ed:!0},cd=function(){throw Error("Do not instantiate directly");};cd.prototype.a=null;cd.prototype.toString=function(){return this.Y};var dd=function(){cd.call(this)};t(dd,cd);dd.prototype.ga=ad;var hd=function(a){v(a,"Soy template may not be null.");var b=a(ed,void 0,void 0);a=Mb().a.createElement("DIV");b=fd(b);var c=b.match(gd);v(!c,"This template starts with a %s, which cannot be a child of a <div>, as required by soy internals. Consider using goog.soy.renderElement instead.\nTemplate output: %s",c&&c[0],b);a.innerHTML=b;1==a.childNodes.length&&(b=a.firstChild,1==b.nodeType&&(a=b));return a},fd=function(a){if(!oa(a))return String(a);if(a instanceof cd){if(a.ga===ad)return Aa(a.Y);if(a.ga===
bd)return Va(a.Y)}ya("Soy template output is unsafe for use as HTML: "+a);return"zSoyz"},gd=/^<(body|caption|col|colgroup|head|html|tr|td|th|tbody|thead|tfoot)>/i,ed={};var id=function(a){try{var b=a.getBoundingClientRect()}catch(c){return{left:0,top:0,right:0,bottom:0}}gb&&a.ownerDocument.body&&(a=a.ownerDocument,b.left-=a.documentElement.clientLeft+a.body.clientLeft,b.top-=a.documentElement.clientTop+a.body.clientTop);return b},kd=function(a){var b=jd;a:{var c=Lb(a);if(c.defaultView&&c.defaultView.getComputedStyle&&(c=c.defaultView.getComputedStyle(a,null))){c=c.display||c.getPropertyValue("display")||"";break a}c=""}c||(c=a.currentStyle?a.currentStyle.display:
null);if("none"!=(c||a.style&&a.style.display))return b(a);c=a.style;var d=c.display,e=c.visibility,f=c.position;c.visibility="hidden";c.position="absolute";c.display="inline";a=b(a);c.display=d;c.position=f;c.visibility=e;return a},jd=function(a){var b=a.offsetWidth,c=a.offsetHeight,d=jb&&!b&&!c;return n(b)&&!d||!a.getBoundingClientRect?new Jb(b,c):(a=id(a),new Jb(a.right-a.left,a.bottom-a.top))};var ld=function(){};la(ld);ld.prototype.a=0;var L=function(a){y.call(this);this.V=a||Mb();this.K=null;this.D=!1;this.i=null;this.ba=void 0;this.J=this.o=this.v=null};t(L,y);L.prototype.la=ld.w();L.prototype.F=function(){return this.i};
var md=function(a){a=a.i;v(a,"Can not call getElementStrict before rendering/decorating.");return a},nd=function(a){a.ba||(a.ba=new tc(a));return v(a.ba)},od=function(a,b){if(a==b)throw Error("Unable to set parent component");var c;if(c=b&&a.v&&a.K){var d=a.v;c=a.K;d.J&&c?(d=d.J,c=(null!==d&&c in d?d[c]:void 0)||null):c=null}if(c&&a.v!=b)throw Error("Unable to set parent component");a.v=b;L.S.W.call(a,b)};
L.prototype.W=function(a){if(this.v&&this.v!=a)throw Error("Method not supported");L.S.W.call(this,a)};L.prototype.Z=function(){this.i=this.V.a.createElement("DIV")};L.prototype.render=function(a){if(this.D)throw Error("Component already rendered");this.i||this.Z();a?a.insertBefore(this.i,null):this.V.a.body.appendChild(this.i);this.v&&!this.v.D||this.C()};L.prototype.C=function(){this.D=!0;pd(this,function(a){!a.D&&a.F()&&a.C()})};
var qd=function(a,b){var c=a.o?a.o.length:0;v(!!b,"Provided element must not be null.");if(b.D&&!a.D)throw Error("Component already rendered");if(0>c||c>(a.o?a.o.length:0))throw Error("Child component index out of bounds");a.J&&a.o||(a.J={},a.o=[]);if(b.v==a){var d=b.K||(b.K=":"+(b.la.a++).toString(36));a.J[d]=b;Ha(a.o,b)}else{d=a.J;var e=b.K||(b.K=":"+(b.la.a++).toString(36));if(null!==d&&e in d)throw Error('The object already contains the key "'+e+'"');d[e]=b}od(b,a);Ka(a.o,c,0,b);b.D&&a.D&&b.v==
a?(a=a.i,c=a.childNodes[c]||null,c!=b.F()&&a.insertBefore(b.F(),c)):a.D&&!b.D&&b.i&&b.i.parentNode&&1==b.i.parentNode.nodeType&&b.C()},pd=function(a,b){a.o&&Da(a.o,b,void 0)};var rd=function(a){function b(a){this.Y=a}b.prototype=a.prototype;return function(a,d){a=new b(String(a));void 0!==d&&(a.a=d);return a}}(dd),sd={"\x00":"&#0;","\t":"&#9;","\n":"&#10;","\x0B":"&#11;","\f":"&#12;","\r":"&#13;"," ":"&#32;",'"':"&quot;","&":"&amp;","'":"&#39;","-":"&#45;","/":"&#47;","<":"&lt;","=":"&#61;",">":"&gt;","`":"&#96;","\u0085":"&#133;","\u00a0":"&#160;","\u2028":"&#8232;","\u2029":"&#8233;"},td=function(a){return sd[a]},ud=/[\x00\x22\x27\x3c\x3e]/g,vd=/<(?:!|\/?([a-zA-Z][a-zA-Z0-9:\-]*))(?:[^>'"]|"[^"]*"|'[^']*')*>/g,
wd=/</g;var M=function(){I.call(this)};t(M,I);var xd=null,yd={Vc:0,dc:1,KEEP:2,Hb:3,cc:4},zd={Yc:0,Wb:1,Kc:2,Zb:3,ec:4},N=function(){I.call(this)};t(N,I);var Ad=null,Bd={Sc:0,Rb:1,OPENED:2,sc:3,kc:4,rc:5,Db:6,Qc:7,vc:8,Kb:9,Ac:10,Bb:11,bc:12},Cd=function(){I.call(this)};t(Cd,I);var Dd=null,Ed=function(){I.call(this)};t(Ed,I);var Fd=null,Gd=function(){I.call(this)};t(Gd,I);var Hd=null,Id=function(){I.call(this)};t(Id,I);var Jd=null,Kd=function(){I.call(this)};t(Kd,I);var Ld=null,Md=function(){I.call(this)};
t(Md,I);var Nd=null,Od={Wc:0,Lc:1,Mc:2,Jc:3,Pc:4,Nc:5,Oc:6,Ib:7,zc:8},Pd={Xc:0,Yb:1,Fb:2,pc:3,jc:4,oc:5},Qd={Uc:0,yc:1,Xb:2,ac:3},Rd=function(){I.call(this)};t(Rd,I);var Sd=null,Td={Tc:0,nc:1,uc:2},Ud=function(){I.call(this)};t(Ud,I);var Vd=null,Wd={Mb:0,Lb:1,Dc:2};
M.prototype.f=function(){var a=xd;a||(xd=a=K(M,{0:{name:"InkEvent",j:"logs.proto.research.ink.InkEvent"},1:{name:"host",c:14,defaultValue:0,type:yd},2:{name:"event_type",c:14,defaultValue:0,type:zd},3:{name:"document_event",c:11,type:N},4:{name:"toolbar_event",c:11,type:Md},5:{name:"engine_event",c:11,type:Rd},6:{name:"gms_event",c:11,type:Ud}}));return a};M.f=M.prototype.f;
N.prototype.f=function(){var a=Ad;a||(Ad=a=K(N,{0:{name:"DocumentEvent",I:M,j:"logs.proto.research.ink.InkEvent.DocumentEvent"},1:{name:"event_type",c:14,defaultValue:0,type:Bd},2:{name:"opened_event",c:11,type:Cd},3:{name:"open_cancelled_event",c:11,type:Ed},4:{name:"error_code",c:3,type:String},5:{name:"brix_error_code",c:3,type:String},6:{name:"collaborator_joined_event",c:11,type:Gd},7:{name:"document_state",c:11,type:Id}}));return a};N.f=N.prototype.f;
Cd.prototype.f=function(){var a=Dd;a||(Dd=a=K(Cd,{0:{name:"OpenedEvent",I:N,j:"logs.proto.research.ink.InkEvent.DocumentEvent.OpenedEvent"},1:{name:"millis_until_first_byte_loaded",c:3,type:String},2:{name:"millis_until_editable",c:3,type:String},3:{name:"missing_document_bounds",c:8,type:Boolean},4:{name:"was_opened_by_cosmoid",c:8,type:Boolean},5:{name:"active_users",c:3,type:String}}));return a};Cd.f=Cd.prototype.f;
Ed.prototype.f=function(){var a=Fd;a||(Fd=a=K(Ed,{0:{name:"OpenCancelledEvent",I:N,j:"logs.proto.research.ink.InkEvent.DocumentEvent.OpenCancelledEvent"},1:{name:"time_until_cancelled",c:3,type:String}}));return a};Ed.f=Ed.prototype.f;Gd.prototype.f=function(){var a=Hd;a||(Hd=a=K(Gd,{0:{name:"CollaboratorJoined",I:N,j:"logs.proto.research.ink.InkEvent.DocumentEvent.CollaboratorJoined"},1:{name:"is_me",c:8,type:Boolean}}));return a};Gd.f=Gd.prototype.f;
Id.prototype.f=function(){var a=Jd;a||(Jd=a=K(Id,{0:{name:"DocumentState",I:N,j:"logs.proto.research.ink.InkEvent.DocumentEvent.DocumentState"},1:{name:"stroke_count",c:3,type:String},2:{name:"text_field",m:!0,c:11,type:Kd},3:{name:"sticker_count",c:3,type:String}}));return a};Id.f=Id.prototype.f;
Kd.prototype.f=function(){var a=Ld;a||(Ld=a=K(Kd,{0:{name:"TextField",I:Id,j:"logs.proto.research.ink.InkEvent.DocumentEvent.DocumentState.TextField"},1:{name:"character_count",c:3,type:String},2:{name:"line_count",c:3,type:String}}));return a};Kd.f=Kd.prototype.f;
Md.prototype.f=function(){var a=Nd;a||(Nd=a=K(Md,{0:{name:"ToolbarEvent",I:M,j:"logs.proto.research.ink.InkEvent.ToolbarEvent"},1:{name:"tool_event_type",c:14,defaultValue:0,type:Od},2:{name:"tool_type",c:14,defaultValue:0,type:Pd},3:{name:"expand_method",c:14,defaultValue:0,type:Qd},4:{name:"color",c:5,type:Number}}));return a};Md.f=Md.prototype.f;
Rd.prototype.f=function(){var a=Sd;a||(Sd=a=K(Rd,{0:{name:"EngineEvent",I:M,j:"logs.proto.research.ink.InkEvent.EngineEvent"},1:{name:"engine_event_type",c:14,defaultValue:0,type:Td},2:{name:"error_code",c:3,type:String}}));return a};Rd.f=Rd.prototype.f;
Ud.prototype.f=function(){var a=Vd;a||(Vd=a=K(Ud,{0:{name:"GmsEvent",I:M,j:"logs.proto.research.ink.InkEvent.GmsEvent"},1:{name:"gms_event_type",c:14,defaultValue:0,type:Wd},2:{name:"time_since_connect_start",c:3,type:String},3:{name:"failure_has_resolution",c:8,type:Boolean},4:{name:"gms_error_code",c:3,type:String}}));return a};Ud.f=Ud.prototype.f;var P=function(){this.a=[];this.o={value:0,length:0};this.v={value:C(0),length:0};this.b=new DataView(new ArrayBuffer(8))};t(P,Zc);
P.prototype.i=function(a){if(null==a)return[];this.a=[];for(var b=Qc(a.f()),c=0;c<b.length;c++){var d=b[c];if(a.has(d))if(d.g)if(d.o){var e=a,f=d;d=this.a;Q(this,f.a<<3|2);for(var g=d.length,m=0,p=Uc(e,f);m<p;m++){var u=e.get(f,m);this.h(f,u,!0)}e=d.splice(g,d.length-g);Q(this,e.length);d.splice.apply(d,[d.length,0].concat(e))}else for(e=0,f=Uc(a,d);e<f;e++)g=a.get(d,e),this.h(d,g);else this.h(d,a.get(d))}return this.a};
P.prototype.h=function(a,b,c){if(c=!c){a:{switch(a.b){default:c=!1;break a;case 17:case 18:case 8:case 3:case 14:case 5:case 13:case 4:c=0;break;case 6:case 16:case 1:c=1;break;case 9:case 12:case 11:c=2;break;case 10:c=3;break;case 7:case 15:case 2:c=5}Q(this,a.a<<3|c);c=!0}c=!c}if(!c)switch(a.b){default:throw Error("Unknown field type "+a.b);case 17:Q(this,b<<1^-(b>>>31));break;case 18:a=Fc(b);a=Nc(a,1).xor(E(Oc(a,63)));Xd(this,a);break;case 8:Q(this,b?1:0);break;case 5:0<b?Q(this,b):Xd(this,Cc(b));
break;case 3:case 4:Xd(this,Fc(b));break;case 14:case 13:Q(this,b);break;case 6:case 16:Yd(this,Fc(b),8);break;case 1:this.b.setFloat64(0,b,!0);for(a=0;8>a;a++)this.a.push(this.b.getUint8(a));break;case 9:if(null!=b)for(a=unescape(encodeURIComponent(b)),Q(this,a.length),b=0;b<a.length;b++)this.a.push(a.charCodeAt(b));break;case 12:if(null!=b)for(Q(this,b.length),a=0;a<b.length;a++)this.a.push(b.charCodeAt(a));break;case 10:b=(new P).i(b);Ia(this.a,b);Q(this,a.a<<3|4);break;case 11:b=(new P).i(b);
Q(this,b.length);Ia(this.a,b);break;case 7:Yd(this,F(b),4);break;case 15:Yd(this,Cc(b),4);break;case 2:for(this.b.setFloat32(0,b,!0),a=0;4>a;a++)this.a.push(this.b.getUint8(a))}};
P.prototype.l=function(a,b){if(null==b)return b;b instanceof ArrayBuffer&&(b=new Uint8Array(b));for(var c=a.f(),d=0;d<b.length;){var e=Zd(this,b.subarray(d)),f=e.value,g=f>>3;f&=7;d+=e.length;if(e=Rc(c,g))if(e.o)for(g=Zd(this,b.subarray(d)),f=g.value,d+=g.length;0<f&&d<b.length;){g=this.g(e,b.subarray(d));if(!g)throw Error("Expected "+e.b);a.add(e,g.value);d+=g.length;f-=g.length}else{f=this.g(e,b.subarray(d));if(!f)throw Error("Expected "+e.b);d+=f.length;e.g?a.add(e,f.value):a.set(e,f.value)}else{e=
d;d=b.subarray(d);g=0;switch(f){case 0:g=$d(this,d).length;break;case 1:g=8;break;case 2:d=$d(this,d);g=d.length+d.value.a;break;case 3:case 4:ya("Error deserializing group");break;case 5:g=4}d=e+g}}};
P.prototype.g=function(a,b){var c=null,d=a.b,e=$d(this,b),f=e.length;switch(d){case 17:a=e.value.a;c=a>>>1^-(a&1);break;case 18:a=e.value;c=Oc(a,1).xor(E(a.and(C(1)))).toString();break;case 8:c=e.value.s(C(1));break;case 3:case 4:c=e.value.toString();break;case 5:c=e.value.a;break;case 14:case 13:c=Kc(e.value);break;case 6:case 16:a=b.subarray(0,8);c=(new B(ae(a.subarray(0,4),!0),ae(a.subarray(4,8),!0))).toString();f=8;break;case 1:a=b.subarray(0,8);for(c=0;8>c;c++)this.b.setUint8(c,a[c]);c=this.b.getFloat64(0,
!0);f=8;break;case 9:a=b.subarray(e.length,e.length+e.value.a);a=be(a);c=decodeURIComponent(escape(a));f=e.length+e.value.a;break;case 12:a=b.subarray(e.length,e.length+e.value.a);c=be(a);f=e.length+e.value.a;break;case 10:f=c=new (a.h.prototype.f().ia);e=b;d=f.f();for(var g=0;;){var m=Zd(this,e),p=m.value;m=m.length;var u=p>>3;if(4==(p&7))break;g+=m;p={value:void 0,length:0};(u=Rc(d,u))&&(p=this.g(u,e.subarray(m)))&&null!==p.value&&(u.g?f.add(u,p.value):f.set(u,p.value));g+=p.length;if(e.length<
m+p.length)break;e=e.subarray(m+p.length)}f=g;b=$d(this,b.subarray(f));v(b.value.a==(a.a<<3|4),"Error deserializing group");f+=b.length;break;case 11:f=e.length+e.value.a;b=b.subarray(e.length,f);c=new (a.h.prototype.f().ia);this.l(c,b);break;case 7:case 15:c=ae(b.subarray(0,4),15==d);f=4;break;case 2:a=b.subarray(0,4);for(c=0;4>c;c++)this.b.setUint8(c,a[c]);c=this.b.getFloat32(0,!0);f=4}return{value:c,length:f}};
var Q=function(a,b){do{var c=b&127;b>>>=7;0<b&&(c|=128);a.a.push(c)}while(0<b)},Xd=function(a,b){var c=Cc(127);do{var d=b.and(c).a;b=Oc(b,7);0<Lc(b,C(0))&&(d|=128);a.a.push(d)}while(0<Lc(b,C(0)))},$d=function(a,b){a=a.v;for(var c=F(0),d=0;d<b.length;d++){var e=Nc(Cc(b[d]&127),7*d);c=c.or(e);if(0==(b[d]&128))break}a.value=c;a.length=d+1;return a},Zd=function(a,b){a=a.o;for(var c=0,d=0;d<b.length&&(c|=(b[d]&127)<<7*d,0!=(b[d]&128));d++);a.value=c;a.length=d+1;return a},Yd=function(a,b,c){for(var d=
Cc(255),e=0;e<c;e++){var f=b.and(d).a;a.a.push(f);b=Oc(b,8)}},ae=function(a,b){for(var c=0,d=0;d<a.length;d++)c|=a[d]<<8*d;b||(c>>>=0);return c},be=function(a){var b="";a=new Uint16Array(a);for(var c=0;c<a.length;c+=65536)b+=String.fromCharCode.apply(null,a.subarray(c,c+Math.min(65536,a.length-c)));return b};var ce=function(a){for(var b=a.T;b;)a=b,b=a.T;return a},de=function(a,b){var c=document.createElement("CANVAS"),d=document.createElement("IMG");d.setAttribute("style","position:absolute;visibility:hidden;top:-1000px;left:-1000px;");d.crossOrigin="Anonymous";fc(d,"load",function(){var a=d.width,f=d.height;c.width=a;c.height=f;var g=c.getContext("2d");g.drawImage(d,0,0);g=g.getImageData(0,0,a,f);document.body.removeChild(d);b(g.data,new Jb(a,f))});d.setAttribute("src",a);document.body.appendChild(d)},
ee=function(a,b){var c=new M;J(c,1,a);J(c,2,1);a=new N;J(a,1,b);J(c,3,a);return c};var fe=function(a){x.call(this,"b");this.enabled=a};t(fe,x);var ge=function(){x.call(this,"d")};t(ge,x);var he=function(){x.call(this,"e")};t(he,x);var ie=function(){x.call(this,"f")};t(ie,x);var je=function(a){x.call(this,"g");this.callback=a};t(je,x);var ke=function(){x.call(this,"h")};t(ke,x);var le=function(){x.call(this,"l")};t(le,x);var me=function(){I.call(this)};t(me,I);var ne=null,R=function(){I.call(this)};t(R,I);var oe=null;me.prototype.f=function(){var a=ne;a||(ne=a=K(me,{0:{name:"Point",j:"sketchology.proto.Point"},1:{name:"x",c:2,type:Number},2:{name:"y",c:2,type:Number}}));return a};me.f=me.prototype.f;
R.prototype.f=function(){var a=oe;a||(oe=a=K(R,{0:{name:"Rect",j:"sketchology.proto.Rect"},1:{name:"xlow",c:2,type:Number},2:{name:"xhigh",c:2,type:Number},3:{name:"ylow",c:2,type:Number},4:{name:"yhigh",c:2,type:Number}}));return a};R.f=R.prototype.f;var pe={Vb:0,ic:1,hc:2,fc:3,gc:4,Qb:5,Pb:6,Nb:7,Ob:8,Ic:9,Hc:10,Fc:11,Gc:12,Ec:13},qe={Ub:0,lc:1,Gb:2,wc:3},re=function(){I.call(this)};t(re,I);var se=null,te=function(){I.call(this)};t(te,I);var ue=null;re.prototype.f=function(){var a=se;a||(se=a=K(re,{0:{name:"Font",j:"sketchology.proto.text.Font"},1:{name:"postscript_font",c:14,defaultValue:0,type:pe},2:{name:"name",c:9,type:String},3:{name:"asset_id",c:9,type:String},4:{name:"resource_id",c:13,type:Number}}));return a};re.f=re.prototype.f;
te.prototype.f=function(){var a=ue;a||(ue=a=K(te,{0:{name:"Text",j:"sketchology.proto.text.Text"},1:{name:"text",c:9,type:String},2:{name:"bounds_world",c:11,type:R},3:{name:"font",c:11,type:re},4:{name:"font_size_world",c:2,defaultValue:24,type:Number},5:{name:"rgba",c:13,defaultValue:255,type:Number},6:{name:"alignment",c:14,defaultValue:0,type:qe}}));return a};te.f=te.prototype.f;var ve={NONE:0,Zc:1,Bc:2,$b:3,$c:4},we=function(){I.call(this)};t(we,I);var xe=null,ye=function(){I.call(this)};t(ye,I);var ze=null,Ae=function(){I.call(this)};t(Ae,I);var Be=null,Ce=function(){I.call(this)};t(Ce,I);var De=null,Ee=function(){I.call(this)};t(Ee,I);var Fe=null,Ge=function(){I.call(this)};t(Ge,I);var He=null,S=function(){I.call(this)};t(S,I);var Ie=null,Je=function(){I.call(this)};t(Je,I);var Ke=null,Le=function(){I.call(this)};t(Le,I);var Me=null,Ne=function(){I.call(this)};t(Ne,I);
var Oe=null,T=function(){I.call(this)};t(T,I);var Pe=null;T.prototype.F=function(){return Vc(this,2)};var Qe=function(){I.call(this)};t(Qe,I);var Re=null,Se={Rc:0,qc:1,mc:2,Sb:3,tc:4,Jb:5},Te={Eb:1,xc:2,Cc:3};we.prototype.f=function(){var a=xe;a||(xe=a=K(we,{0:{name:"BackgroundImageInfo",j:"sketchology.proto.BackgroundImageInfo"},1:{name:"uri",c:9,type:String},3:{name:"bounds",c:11,type:R}}));return a};we.f=we.prototype.f;
ye.prototype.f=function(){var a=ze;a||(ze=a=K(ye,{0:{name:"Border",j:"sketchology.proto.Border"},1:{name:"uri",c:9,type:String},2:{name:"scale",c:2,defaultValue:1,type:Number}}));return a};ye.f=ye.prototype.f;Ae.prototype.f=function(){var a=Be;a||(Be=a=K(Ae,{0:{name:"GridInfo",j:"sketchology.proto.GridInfo"},1:{name:"uri",c:9,type:String},2:{name:"rgba_multiplier",c:13,defaultValue:4294967295,type:Number},3:{name:"size_world",c:2,defaultValue:50,type:Number},4:{name:"origin",c:11,type:me}}));return a};
Ae.f=Ae.prototype.f;Ce.prototype.f=function(){var a=De;a||(De=a=K(Ce,{0:{name:"LOD",j:"sketchology.proto.LOD"},1:{name:"max_coverage",c:2,type:Number},2:{name:"ctm_blob",c:12,type:String}}));return a};Ce.f=Ce.prototype.f;
Ee.prototype.f=function(){var a=Fe;a||(Fe=a=K(Ee,{0:{name:"Stroke",j:"sketchology.proto.Stroke"},1:{name:"shader_type",c:14,defaultValue:0,type:ve},3:{name:"lod",m:!0,c:11,type:Ce},4:{name:"abgr",c:13,type:Number},5:{name:"point_x",m:!0,ja:!0,c:17,type:Number},6:{name:"point_y",m:!0,ja:!0,c:17,type:Number},7:{name:"point_t_ms",m:!0,ja:!0,c:13,type:Number},8:{name:"deprecated_transform",c:11,type:S},9:{name:"start_time_ms",c:4,type:String}}));return a};Ee.f=Ee.prototype.f;
Ge.prototype.f=function(){var a=He;a||(He=a=K(Ge,{0:{name:"UncompressedStroke",j:"sketchology.proto.UncompressedStroke"},1:{name:"outline",m:!0,c:11,type:me},2:{name:"rgba",c:13,type:Number}}));return a};Ge.f=Ge.prototype.f;
S.prototype.f=function(){var a=Ie;a||(Ie=a=K(S,{0:{name:"AffineTransform",j:"sketchology.proto.AffineTransform"},1:{name:"tx",c:2,type:Number},2:{name:"ty",c:2,type:Number},3:{name:"scale_x",c:2,defaultValue:1,type:Number},4:{name:"scale_y",c:2,defaultValue:1,type:Number},5:{name:"rotation_radians",c:2,type:Number}}));return a};S.f=S.prototype.f;
Je.prototype.f=function(){var a=Ke;a||(Ke=a=K(Je,{0:{name:"Element",j:"sketchology.proto.Element"},4:{name:"deprecated_uuid",c:9,type:String},5:{name:"minimum_serializer_version",c:13,type:Number},6:{name:"stroke",c:11,type:Ee},9:{name:"path",c:11,type:Qe},10:{name:"attributes",c:11,type:Le},11:{name:"text",c:11,type:te}}));return a};Je.f=Je.prototype.f;
Le.prototype.f=function(){var a=Me;a||(Me=a=K(Le,{0:{name:"ElementAttributes",j:"sketchology.proto.ElementAttributes"},1:{name:"selectable",c:8,defaultValue:!0,type:Boolean},2:{name:"magic_erasable",c:8,defaultValue:!0,type:Boolean},3:{name:"is_sticker",c:8,defaultValue:!1,type:Boolean},4:{name:"is_text",c:8,defaultValue:!1,type:Boolean},5:{name:"is_group",c:8,defaultValue:!1,type:Boolean}}));return a};Le.f=Le.prototype.f;
Ne.prototype.f=function(){var a=Oe;a||(Oe=a=K(Ne,{0:{name:"UncompressedElement",j:"sketchology.proto.UncompressedElement"},1:{name:"uncompressed_stroke",c:11,type:Ge}}));return a};Ne.f=Ne.prototype.f;T.prototype.f=function(){var a=Pe;a||(Pe=a=K(T,{0:{name:"ElementBundle",j:"sketchology.proto.ElementBundle"},1:{name:"uuid",c:9,type:String},2:{name:"element",c:11,type:Je},3:{name:"transform",c:11,type:S},4:{name:"uncompressed_element",c:11,type:Ne},5:{name:"group_uuid",c:9,type:String}}));return a};
T.f=T.prototype.f;Qe.prototype.f=function(){var a=Re;a||(Re=a=K(Qe,{0:{name:"Path",j:"sketchology.proto.Path"},1:{name:"segment_types",m:!0,c:14,defaultValue:0,type:Se},2:{name:"segment_counts",m:!0,c:13,type:Number},3:{name:"segment_args",m:!0,c:1,type:Number},4:{name:"radius",c:1,defaultValue:1,type:Number},5:{name:"rgba",c:13,type:Number},6:{name:"end_cap",c:14,defaultValue:2,type:Te},7:{name:"fill_rgba",c:13,type:Number}}));return a};Qe.f=Qe.prototype.f;var Ue={Cb:1,Tb:2},Ve=function(){I.call(this)};t(Ve,I);var We=null,Xe=function(){I.call(this)};t(Xe,I);var Ye=null,Ze=function(){I.call(this)};t(Ze,I);var $e=null,af=function(){I.call(this)};t(af,I);var bf=null,cf=function(){I.call(this)};t(cf,I);var df=null,ef=function(){I.call(this)};t(ef,I);var ff=null,gf=function(){I.call(this)};t(gf,I);var hf=null,jf=function(){I.call(this)};t(jf,I);var kf=null,lf=function(){I.call(this)};t(lf,I);var mf=null,nf=function(){I.call(this)};t(nf,I);
var of=null,U=function(){I.call(this)};t(U,I);var pf=null;U.prototype.F=function(){return Vc(this,2,void 0)};var qf=function(){I.call(this)};t(qf,I);var rf=null;qf.prototype.F=function(){return Vc(this,2,void 0)};Ve.prototype.f=function(){var a=We;a||(We=a=K(Ve,{0:{name:"Color",j:"sketchology.proto.Color"},1:{name:"argb",c:13,type:Number}}));return a};Ve.f=Ve.prototype.f;
Xe.prototype.f=function(){var a=Ye;a||(Ye=a=K(Xe,{0:{name:"PageProperties",j:"sketchology.proto.PageProperties"},1:{name:"background_color",c:11,type:Ve},2:{name:"background_image",c:11,type:we},3:{name:"bounds",c:11,type:R},4:{name:"border",c:11,type:ye},5:{name:"grid_info",c:11,type:Ae}}));return a};Xe.f=Xe.prototype.f;
Ze.prototype.f=function(){var a=$e;a||($e=a=K(Ze,{0:{name:"PerPageProperties",j:"sketchology.proto.PerPageProperties"},1:{name:"uuid",c:9,type:String},2:{name:"width",c:2,type:Number},3:{name:"height",c:2,type:Number}}));return a};Ze.f=Ze.prototype.f;af.prototype.f=function(){var a=bf;a||(bf=a=K(af,{0:{name:"AddAction",j:"sketchology.proto.AddAction"},1:{name:"uuid",c:9,type:String},2:{name:"below_element_with_uuid",c:9,type:String}}));return a};af.f=af.prototype.f;
cf.prototype.f=function(){var a=df;a||(df=a=K(cf,{0:{name:"RemoveAction",j:"sketchology.proto.RemoveAction"},1:{name:"uuid",m:!0,c:9,type:String},2:{name:"was_below_uuid",m:!0,c:9,type:String}}));return a};cf.f=cf.prototype.f;ef.prototype.f=function(){var a=ff;a||(ff=a=K(ef,{0:{name:"ClearAction",j:"sketchology.proto.ClearAction"},1:{name:"uuid",m:!0,c:9,type:String}}));return a};ef.f=ef.prototype.f;
gf.prototype.f=function(){var a=hf;a||(hf=a=K(gf,{0:{name:"ReplaceAction",j:"sketchology.proto.ReplaceAction"},1:{name:"uuid_add",m:!0,c:9,type:String},2:{name:"below_element_with_uuid",c:9,type:String},3:{name:"uuid_remove",m:!0,c:9,type:String},4:{name:"was_below_uuid",m:!0,c:9,type:String}}));return a};gf.f=gf.prototype.f;
jf.prototype.f=function(){var a=kf;a||(kf=a=K(jf,{0:{name:"SetTransformAction",j:"sketchology.proto.SetTransformAction"},1:{name:"uuid",m:!0,c:9,type:String},2:{name:"from_transform",m:!0,c:11,type:S},3:{name:"to_transform",m:!0,c:11,type:S}}));return a};jf.f=jf.prototype.f;lf.prototype.f=function(){var a=mf;a||(mf=a=K(lf,{0:{name:"SetPageBoundsAction",j:"sketchology.proto.SetPageBoundsAction"},1:{name:"old_bounds",c:11,type:R},2:{name:"new_bounds",c:11,type:R}}));return a};lf.f=lf.prototype.f;
nf.prototype.f=function(){var a=of;a||(of=a=K(nf,{0:{name:"StorageAction",j:"sketchology.proto.StorageAction"},1:{name:"add_action",c:11,type:af},2:{name:"remove_action",c:11,type:cf},3:{name:"clear_action",c:11,type:ef},4:{name:"replace_action",c:11,type:gf},5:{name:"set_transform_action",c:11,type:jf},6:{name:"set_page_bounds_action",c:11,type:lf}}));return a};nf.f=nf.prototype.f;
U.prototype.f=function(){var a=pf;a||(pf=a=K(U,{0:{name:"Snapshot",j:"sketchology.proto.Snapshot"},1:{name:"page_properties",c:11,type:Xe},8:{name:"per_page_properties",m:!0,c:11,type:Ze},2:{name:"element",m:!0,c:11,type:T},3:{name:"dead_element",m:!0,c:11,type:T},4:{name:"undo_action",m:!0,c:11,type:nf},5:{name:"redo_action",m:!0,c:11,type:nf},6:{name:"element_state_index",m:!0,c:14,defaultValue:1,type:Ue},7:{name:"fingerprint",c:4,type:String}}));return a};U.f=U.prototype.f;
qf.prototype.f=function(){var a=rf;a||(rf=a=K(qf,{0:{name:"MutationPacket",j:"sketchology.proto.MutationPacket"},1:{name:"mutation",m:!0,c:11,type:nf},2:{name:"element",m:!0,c:11,type:T}}));return a};qf.f=qf.prototype.f;var sf=function(){I.call(this)};t(sf,I);var tf=null;sf.prototype.f=function(){var a=tf;a||(tf=a=K(sf,{0:{name:"ImageExport",j:"sketchology.proto.ImageExport"},1:{name:"max_dimension_px",c:13,defaultValue:1024,type:Number},2:{name:"should_draw_background",c:8,defaultValue:!0,type:Boolean}}));return a};sf.f=sf.prototype.f;var uf=function(){y.call(this)};t(uf,y);var vf="ink_model_instances_"+Math.random();var V=function(){y.call(this);this.b="#000000";this.h=.6;this.g=!1;this.a=this.i=1;this.l="CALLIGRAPHY"};t(V,uf);(function(a){a.w=function(b){Ba(b);var c=ce(b);(b=c[vf])||(c[vf]=b={});var d=a[pa]||(a[pa]=++qa),e=b[d];e?b=e:(c=new a(c),b=b[d]=c);return b}})(V);var wf={CALLIGRAPHY:1,EDIT:2,ERASER:1,HIGHLIGHTER:1,INKPEN:1,MAGIC_ERASE:3,MARKER:1,PENCIL:1,BALLPOINT:1,BALLPOINT_IN_PEN_MODE_ELSE_MARKER:1,QUERY:4},xf={CALLIGRAPHY:1,ERASER:6,HIGHLIGHTER:8,INKPEN:2,MARKER:3,BALLPOINT:4,BALLPOINT_IN_PEN_MODE_ELSE_MARKER:11};
h=V.prototype;h.Oa=function(a){this.b=a;A(this,"m")};h.zb=function(a){this.h=a;A(this,"m")};h.xb=function(a){this.g=a;A(this,"m")};h.yb=function(a){this.i=wf[a];this.a=void 0!==xf[a]?xf[a]:this.a;this.l=a;A(this,"m")};h.Ga=function(){return this.l};h.Ma=function(){return this.b};h.oa=function(){return this.g?"#FFFFFF":this.b};h.pa=function(){return parseInt(this.oa().substring(1),16)};h.Ha=function(){return this.h};h.Da=function(){return this.g};h.Ba=function(){return this.a};h.Na=function(){return this.i};var Cf=function(a){this.h=yf(a);this.g=zf(a);this.b=Af(a);this.a=Bf(a)},Df=function(a){return"rgb("+[a.g,a.b,a.a].join()+")"},Ef=function(a){return new Uint32Array([a.g<<24|a.b<<16|a.a<<8|a.h])},Ff=function(a){return function(b){return b>>>a&255}},yf=Ff(24),zf=Ff(16),Af=Ff(8),Bf=Ff(0),Gf=new Cf(4278190080),Hf=new Cf(4294967295),If=new Cf(4294638330);var Jf={},Kf=(Jf.dots="sketchology://grid_dots_0",Jf.rules="sketchology://grid_rules_0",Jf.square="sketchology://grid_square_0",Jf),Lf={},Mf=(Lf.none="",Lf.dots="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAQAAAAEACAQAAAD2e2DtAAACoElEQVR4Ae3SsW0iQABE0Y0ogJC+iC0XAy0ANdAF9IFAQrTxL7wLbAuQLlm/eSXMH32/W2MKXPp2PwVwbjCF03sB7BpMYfdeAOsGU1i/E8C9ZYMpLLu+HsC2wTQ2rwbwaNVgGquurwXw0WAqn68EcGgwnf2zARxbNJjOouMzAezdP3ECh58DuPbZYGofPb4O4NqmVYPprdp2/xvApVO71i0bvwbL1u06dxv9aoz+IwSAABAAAkAACAABIAAEgAAQAAJAAAgAASAABIAAEAACQAAIAAEgAASAABAAAkAACAABIAAEgAAQAAJAAAgAASAABIAAEAACQAAIAAEgAASAABAAAkAACIARAkAACAABIAAEgAAQAAJAAAgAASAABIAAEAACQAAIAAEgAASAABAAAkAACAABIAAEgAAQAAJAAAgAASAABIAAEAACQAAIAAEgAASAABAAAkAACAABIAAEgAAQAAJAAAgAASAABIAAEAACQAAIAAEgAASAABAAAkAACAABIAAEgAAQAAJAAAgAASAAASAABIAAEAACQAAIAAEgAASAABAAAkAACAABIAAEgAAQAAJAAAgAASAABIAAEAACQAAIAAEgAASAABAAAkAACAABIAAEgAAQAAJAAAgAASAABIAAEAACQAAIAAEgAASAABAAAkAACAABIAAEgAAQAAJAAAgAASAABIAAEAACQAAIAAEgAASAABAAAhDArXO71i0b/BrL1u06dRlVVd3btmpMj1WbrlVVo3/36KMxNT67Vn0dQNWhRYMpLdpX/RxAHSUwpUXHeiaA2jeYzqGeDaA+G0zlo14J4NqqwTRWPV4LoDYNprGtVwO4tmwwhWX31wOodYMprOudAHYNprB7L4BTgymc3wvg0mAKt77dH6BiW7h7b3psAAAAAElFTkSuQmCC",
Lf.rules="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABAAQMAAACQp+OdAAAABlBMVEX///////9VfPVsAAAAAnRSTlP/AOW3MEoAAAAUSURBVHgBY4CD/1BAmDHKGGXAAAD0xe4gqLTwJgAAAABJRU5ErkJggg==",Lf.square="data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAEAAAABAAQMAAACQp+OdAAAABlBMVEX///////9VfPVsAAAAAnRSTlP/AOW3MEoAAAAWSURBVHgBY4CD+v9g8I8wY5QxyoABAGFRzuKVnN1rAAAAAElFTkSuQmCC",Lf),Nf=function(a){return(Object.entries(Kf).find(function(b){return b[1]==a})||["none",""])[0]};var Of=function(){this.a=l.Module;v(this.a);new P;this.g=this.a.HEAPU8;this.h=r(this.a._malloc,this.a);this.b=r(this.a._free,this.a)};la(Of);var Pf=function(a,b,c){return a.a[b]&&a.a[b].extend?a.a[b].extend(b,c):null};var W=function(a,b,c){var d=Pf(Of.w(),"ClientBitmap",W.prototype);return d?(W=d,new W(a,b,c)):null};W.prototype.i=function(a,b,c){this.__parent.__construct.call(this,[b.width,b.height],c);this.a=a;this.b=void 0};W.prototype.g=function(){this.b&&Of.w().b(this.b);this.__parent.__destruct.call(this)};W.prototype.h=function(){if(!this.b){var a=Of.w();this.b=a.h(this.a.length*this.a.BYTES_PER_ELEMENT);a.g.set(this.a,this.b)}return this.b};ta("ink.ClientBitmap",W);W.prototype.__construct=W.prototype.i;
W.prototype.__destruct=W.prototype.g;W.prototype.imageByteData=W.prototype.h;var Qf=function(){x.call(this,"n")};t(Qf,x);var Rf=function(){y.call(this);this.a=null;this.i=r(this.K,this);this.v=this.o=0;this.g=[];this.b=this.h=60;this.l=1/60};t(Rf,y);Rf.prototype.start=function(){this.a||(this.a=requestAnimationFrame(this.i))};Rf.prototype.B=function(a){var b=this.b;this.b=a;this.l=1/a;0==b&&0<a&&this.start()};Rf.prototype.J=function(){return this.b};var Sf=function(a){0==a.b&&a.B(60)};
Rf.prototype.K=function(a){if(0==this.b)this.a=null,this.h=0;else{this.a=requestAnimationFrame(this.i);if(l.SHOW_FPS){var b=a-this.v;this.v=a;this.g.push(b);5<this.g.length&&(b=Hb.apply(null,this.g),this.h=Math.round(1E3/b),this.g=[],window.console.log("FPS:",this.h))}b=Math.round(a-this.o);60!==this.b&&b<Math.round(1E3*this.l)||(A(this,"o"),this.o=a)}};var Tf=function(){this.a=[];this.g=[];this.b=[];this.h=!1;this.i=r(Tf.prototype.l,this)};la(Tf);var Uf=function(a,b,c){var d=a.a.indexOf(b);-1===d?(a.a.push(b),a.g.push([c]),a.b.push(kd(b))):a.g[d].push(c);a.h||(a.h=!0,window.requestAnimationFrame(a.i))};Tf.prototype.l=function(){for(var a=0,b=this.a.length;a<b;a++){var c=this.a[a],d=this.g[a],e=this.b[a],f=kd(c);if(!(e==f||e&&f&&e.width==f.width&&e.height==f.height)){this.b[a]=f;e=0;for(var g=d.length;e<g;e++)d[e](c,f)}}this.h&&window.requestAnimationFrame(this.i)};var Vf=function(){return rd('<canvas id="ink-engine"></canvas>')};Vf.a="ink.soy.asm.canvasHTML";var X=function(a,b,c,d,e,f,g,m,p){var u=Pf(Of.w(),"Host",X.prototype);if(u)return X=u,new X(a,b,c,d,e,f,g,m,p);throw Error("Bindings are uninitialized.");};h=X.prototype;h.Pa=function(a,b,c,d,e,f,g,m,p){this.__parent.__construct.call(this);this.g=a;this.L=b;this.i=c;this.a=d;this.b=e;this.h=f;this.da=g;this.ca=m;this.U=p};h.Ia=function(){return this.a()};h.Ab=function(a){this.i(a)};h.Aa=function(){var a=Of.w().a.ctx;a.bindFramebuffer(a.FRAMEBUFFER,null)};h.vb=function(a){this.U(a)};
h.Ja=function(a,b,c){var d=this.L;d.l.add(a);A(d,new ge(a,b,c))};h.Ka=function(a,b){A(this.L,new he(a,b))};h.La=function(a){A(this.L,new ie(a))};h.sb=function(a,b,c){this.b(a,b,new Uint8ClampedArray(c.buffer,c.byteOffset,c.byteLength))};
h.Fa=function(){var a;if(!(a=!this.g)&&(a=w("Macintosh"))){a=Ya;var b="";w("Windows")?(b=/Windows (?:NT|Phone) ([0-9.]+)/,b=(a=b.exec(a))?a[1]:"0.0"):w("iPhone")&&!w("iPod")&&!w("iPad")||w("iPad")||w("iPod")?(b=/(?:iPhone|iPod|iPad|CPU)\s+OS\s+(\S+)/,b=(a=b.exec(a))&&a[1].replace(/_/g,".")):w("Macintosh")?(b=/Mac OS X ([0-9_.]+)/,b=(a=b.exec(a))?a[1].replace(/_/g,"."):"10"):w("Android")?(b=/Android\s+([^\);]+)(\)|;)/,b=(a=b.exec(a))&&a[1]):w("CrOS")&&(b=/(?:CrOS\s+(?:i686|x86_64)\s+([0-9.]+))/,b=
(a=b.exec(a))&&a[1]);a=!(0<=Xa(b||"","10.12.5"))}return"asmjs/webgl"+(a?1:2)};h.tb=function(a){this.ca(a)};h.rb=function(a,b){this.h(a,b)};h.ub=function(a,b){this.da(a,b)};ta("ink.HostController",X);X.prototype.__construct=X.prototype.Pa;X.prototype.setTargetFPS=X.prototype.Ab;X.prototype.getTargetFPS=X.prototype.Ia;X.prototype.bindScreen=X.prototype.Aa;X.prototype.requestImage=X.prototype.vb;X.prototype.handleElementCreated=X.prototype.Ja;X.prototype.handleElementsMutated=X.prototype.Ka;
X.prototype.handleElementsRemoved=X.prototype.La;X.prototype.onImageExportComplete=X.prototype.sb;X.prototype.getPlatformId=X.prototype.Fa;X.prototype.onSequencePointReached=X.prototype.tb;X.prototype.onFlagChanged=X.prototype.rb;X.prototype.onUndoRedoStateChanged=X.prototype.ub;P.prototype.serialize=P.prototype.i;P.prototype.deserializeTo=P.prototype.l;var Y=function(a,b,c,d,e){var f=this;L.call(this);this.b=null;this.h=new P;this.L=b;this.xa=c;this.U=e;this.H=0;this.O=600;this.N=800;this.M=0;this.g=Qb();this.B=null;this.ea=!1;this.l=new Rf;this.l.W(this);vc(nd(this),this.l,"o",r(this.ua,this));ta("ink.SketchologyEngineWrapper.exit",function(){A(f,"q");var a=f.l;null!==a.a&&(cancelAnimationFrame(a.a),a.a=null);f.a=null});this.ya=d;this.fa={};this.na=this.ma=0};t(Y,L);
Y.prototype.Z=function(){this.i=hd(Vf)};Y.prototype.C=function(){var a=r(function(){setTimeout(r(this.wa,this),0)},this);l.asmjsLoadingDone?a():(l.Module=l.Module||{},l.Module.postRun=l.Module.postRun||[],l.Module.postRun.push(a));V.w(this);vc(nd(this),md(this),"webglcontextlost",this.ka)};var Wf=function(a){x.call(this,"r");this.enabled=a};t(Wf,x);Y.prototype.ka=function(){A(this,"q")};
Y.prototype.wa=function(){var a=this;this.b=Of.w();var b=md(this);Xf(this);var c=!!b.getContext("webgl2"),d={antialias:!0,majorVersion:c?2:1,minorVersion:0};l.Module.canvas=b;if(d=l.Browser.createContext(b,!0,!0,d)){d.clearColor(1,1,1,1);c=new X(c,this.L,r(this.l.B,this.l),r(this.l.J,this.l),this.xa,function(b,c){5==b&&A(a,new Wf(c))},r(this.da,this),r(this.ca,this),this.U);d=Math.floor(Math.random()*Math.pow(2,52));var e=Yf(this);try{this.a=Module[this.ya](c,e,d)}finally{e["delete"]()}Zf(this,this.H,
this.O,this.N,this.M);Uf(Tf.w(),b,r(this.va,this));c=l.PointerEvent?["pointerdown","pointerup","pointercancel","pointermove","wheel"]:"mousedown mouseup mousemove wheel touchstart touchend touchmove touchcancel".split(" ");d=r(this.aa,this);for(e=0;e<c.length;e++)b.addEventListener(c[e],d,{passive:!1});l.window.addEventListener("mouseup",d);l.PointerEvent&&l.window.addEventListener("pointerup",function(b){"mouse"==b.pointerType&&a.aa(b)});gc(b,"contextmenu",function(a){a.preventDefault()});this.l.start();
A(this,"p")}else this.ka()};var Yf=function(a){var b=new (Of.w().a.ViewportProto);b.width=md(a).width||800*a.g;b.height=md(a).height||600*a.g;b.ppi=96*a.g;return b};Y.prototype.va=function(a,b){Xf(this,b);if(b.za()){a=Yf(this);try{this.a.setViewport(a)}finally{a["delete"]()}}};
var Xf=function(a,b){var c=md(a);b=b||kd(c);c.width=b.width*a.g;c.height=b.height*a.g},$f=function(a,b,c,d,e){try{var f=new W(b,c,Module.ImageFormat.RGBA_8888),g=new a.b.a.ImageInfoProto;g.uri=d;g.asset_type=Module.AssetType.values[e];a.a.addImageData(g,f)}finally{if(f)f["delete"]();if(g)g["delete"]()}},ag=function(a,b){try{var c=new a.b.a.BackgroundColorProto;c.rgba=Ef(b)[0];a.a.document().SetBackgroundColor(c)}finally{if(c)c["delete"]()}};Y.prototype.ua=function(){this.a.draw()};
Y.prototype.aa=function(a){var b=bg(a.type);if(l.PointerEvent&&a instanceof PointerEvent){if(PointerEvent.prototype.getCoalescedEvents){var c=a.getCoalescedEvents();if(1<c.length){a=ia(c);for(b=a.next();!b.done;b=a.next())this.aa(b.value);return}}if("pen"==a.pointerType)"pointerdown"!=a.type&&!this.ea||a.buttons&2||("pointerdown"==a.type&&(this.ea=!0),"pointerup"==a.type&&(this.ea=!1),c=cg()/1E3,a.buttons&32&&b.push(Module.InputFlag.ERASER),b=dg(b),this.a.dispatchInputFull(Module.InputType.PEN,a.pointerId,
b,c,a.offsetX*this.g,a.offsetY*this.g,0,a.pressure,0,0));else if("touch"==a.pointerType)eg(this,b,a.pointerId,a.offsetX,a.offsetY);else if("mouse"==a.pointerType)switch(a.type){case "pointerdown":fg(this,b,a);break;case "pointerup":gg(this,b,a);break;case "pointermove":hg(this,b,a)}}else if(l.TouchEvent&&a instanceof TouchEvent)for(var d=c=null,e=0;e<a.changedTouches.length;e++){var f=a.changedTouches[e],g=f.target;if(c===g)var m=d;else{var p=Lb(g);Ba(g,"Parameter is required");m=new Ib(0,0);var u=
p?Lb(p):document;u=!gb||9<=Number(tb)||"CSS1Compat"==Mb(u).a.compatMode?u.documentElement:u.body;if(g!=u){u=id(g);var z=Mb(p).a;p=z.scrollingElement?z.scrollingElement:jb||"CSS1Compat"!=z.compatMode?z.body||z.documentElement:z.documentElement;z=z.parentWindow||z.defaultView;p=gb&&sb("10")&&z.pageYOffset!=p.scrollTop?new Ib(p.scrollLeft,p.scrollTop):new Ib(z.pageXOffset||p.scrollLeft,z.pageYOffset||p.scrollTop);m.x=u.left+p.x;m.a=u.top+p.a}}c!=g&&(c=g,d=m);eg(this,b,f.identifier,f.pageX-m.x,f.pageY-
m.a)}else if(a instanceof WheelEvent)c=a.wheelDeltaY?a.wheelDeltaY:1===a.deltaMode?-40*a.deltaY:-a.deltaY,0!=c&&(0<c?(d=Module.MouseIds.MOUSEWHEELUP,b.push(Module.InputFlag.WHEELUP)):(d=Module.MouseIds.MOUSEWHEELDOWN,b.push(Module.InputFlag.WHEELDOWN)),e=cg()/1E3,b=dg(b),this.a.dispatchInputFull(Module.InputType.MOUSE,d.value,b,e,a.offsetX*this.g,a.offsetY*this.g,c,-1,0,0),a.preventDefault());else if(a instanceof MouseEvent)switch(a.type){case "mousedown":fg(this,b,a);break;case "mouseup":gg(this,
b,a);break;case "mousemove":hg(this,b,a)}};
var bg=function(a){switch(a){case "pointerdown":case "mousedown":case "touchstart":return[Module.InputFlag.TDOWN,Module.InputFlag.INCONTACT];case "pointerup":case "mouseup":case "touchend":return[Module.InputFlag.TUP];case "pointermove":case "mousemove":case "touchmove":return[Module.InputFlag.INCONTACT];case "pointercancel":case "touchcancel":return[Module.InputFlag.TUP,Module.InputFlag.CANCEL]}return[0]},dg=function(a){var b=0;Da(a,function(a){b|=a.value});return b},cg=function(){return window.performance&&
Math.floor(window.performance.now())||Date.now()},eg=function(a,b,c,d,e){var f=cg()/1E3;b=dg(b);a.a.dispatchInput(Module.InputType.TOUCH,c,b,f,d*a.g,e*a.g)},fg=function(a,b,c){if(0!=c.button||jb&&kb&&c.ctrlKey){var d=Module.MouseIds.MOUSERIGHT;b.push(Module.InputFlag.RIGHT)}else d=Module.MouseIds.MOUSELEFT,b.push(Module.InputFlag.LEFT);if(null==a.B){a.B=d;var e=cg()/1E3;b=dg(b);a.a.dispatchInput(Module.InputType.MOUSE,d.value,b,e,c.offsetX*a.g,c.offsetY*a.g);l.PointerEvent||c.preventDefault()}},gg=
function(a,b,c){if(0!=c.button||jb&&kb&&c.ctrlKey){var d=Module.MouseIds.MOUSERIGHT;b.push(Module.InputFlag.RIGHT)}else d=Module.MouseIds.MOUSELEFT,b.push(Module.InputFlag.LEFT);if(null!=a.B&&a.B===d){a.B=null;var e=cg()/1E3;b=dg(b);a.a.dispatchInput(Module.InputType.MOUSE,d.value,b,e,c.offsetX*a.g,c.offsetY*a.g);l.PointerEvent||c.preventDefault()}},hg=function(a,b,c){var d=Module.MouseIds.MOUSEHOVER;if(1==(c.buttons&1)&&!(jb&&kb&&c.ctrlKey))d=Module.MouseIds.MOUSELEFT,b.push(Module.InputFlag.LEFT);
else if(2==(c.buttons&2)||1==(c.buttons&1)&&jb&&kb&&c.ctrlKey)d=Module.MouseIds.MOUSERIGHT,b.push(Module.InputFlag.RIGHT);if(null!=a.B&&a.B===d){var e=cg()/1E3;b=dg(b);a.a.dispatchInput(Module.InputType.MOUSE,d.value,b,e,c.offsetX*a.g,c.offsetY*a.g);l.PointerEvent||c.preventDefault()}},Zf=function(a,b,c,d,e){a.H=b;a.O=c;a.N=d;a.M=e;b=new a.b.a.RectProto;try{b.xlow=a.H,b.ylow=a.M,b.xhigh=a.N,b.yhigh=a.O,a.a.document().SetPageBounds(b)}finally{b["delete"]()}};
Y.prototype.da=function(a,b){A(this,new Qf(a,b))};
var ig=function(a,b){var c=a.a.document().GetSnapshot(Module.SnapshotQuery.INCLUDE_UNDO_STACK),d=new U;c.copyToJs(d,a.h);setTimeout(function(){b(d)})},jg=function(a,b){var c=new U,d=null.cd(),e=d.get("pages").get(0);if(!e)throw Error("unable to get page from brix document.");e=e.get("elements").ad();for(var f=0;f<e.length;f++)try{var g=new a.b.a.ElementBundleProto,m=e[f];if(!Module.brixElementToElementBundle(m.get("id"),m.get("proto"),m.get("transform"),g))throw Error("Unable to convert brix element to element bundle.");
var p=new T;g.copyToJs(p,a.h);Wc(c,2,p)}finally{g["delete"]()}g=new Xe;m=new R;d=d.get("bounds");J(m,2,d.fd||0);J(m,1,d.gd||0);J(m,4,d.hd||0);J(m,3,d.jd||0);J(g,3,m);J(c,1,g);try{var u=new a.b.a.SnapshotProto;u.initFromJs(c,a.h);Module.SetFingerprint(u);c=new U;u.copyToJs(c,a.h)}finally{u["delete"]()}setTimeout(function(){b(c)})},kg=function(a,b,c){try{var d=new a.b.a.SnapshotProto;d.initFromJs(b,a.h);var e=Module.SnapshotHasPendingMutations(d)}finally{d["delete"]()}setTimeout(function(){c(!!e)})},
lg=function(a,b,c){try{var d=new a.b.a.SnapshotProto;d.initFromJs(b,a.h);var e=new a.b.a.MutationPacketProto;if(!Module.ExtractMutationPacket(d,e))throw setTimeout(function(){c(null)}),Error("Unable to extract mutation packet");var f=new qf;e.copyToJs(f,a.h)}finally{if(d["delete"](),e)e["delete"]()}setTimeout(function(){c(f)})},mg=function(a,b,c){try{var d=new a.b.a.SnapshotProto;d.initFromJs(b,a.h);var e=new a.b.a.SnapshotProto;if(!Module.ClearPendingMutations(d,e))throw setTimeout(function(){c(null)}),
Error("Unable to clear pending mutations");var f=new U;e.copyToJs(f,a.h)}finally{if(d["delete"](),e)e["delete"]()}setTimeout(function(){c(f)})};Y.prototype.flush=function(a){this.fa[this.ma]=a;try{var b=new this.b.a.SequencePointProto;b.id=this.ma++;this.a.addSequencePoint(b)}finally{b["delete"]()}};Y.prototype.ca=function(a){var b=this.fa[a];delete this.fa[a];b()};var og=function(a,b){var c=this;L.call(this);this.b=null;this.a=new Y(a,this,r(this.O,this),b,r(this.U,this));qd(this,this.a);xc(nd(this),this.a,r(function(){this.B();ng(this);A(this,"c")},this));vc(nd(this),this.a,"q",this.L);vc(nd(this),this.a,"r",function(a){A(c,new fe(a.enabled))});this.g=[];this.l=new Set;this.H=this.N=0;this.h=null;this.M=!1};t(og,L);og.prototype.C=function(){og.S.C.call(this);this.a.render(this.F());var a=nd(this);v(a);this.b=V.w(this);vc(a,this.b,"m",this.B)};
og.prototype.O=function(a,b,c){var d=this;if(this.h){try{var e=new ImageData(c,a,b),f=document.createElement("canvas"),g=f.getContext("2d");f.width=a;f.height=b;g.putImageData(e,0,0)}catch(m){this.L(m);return}this.M?(a=function(a){d.h(Db(a))},f.msToBlob?f.msToBlob(a,"image/png"):f.toBlob(a,"image/png")):this.h(Fb(f.toDataURL()))}};og.prototype.U=function(a){var b=this,c=Nf(a);"none"!=c&&de(Mf[c],function(c,e){$f(b.a,c,e,a,3)})};
var pg=function(a,b,c,d){d=d||{};var e="sketchology://background_"+a.H;a.H++;var f=new we;J(f,1,e);if("none"!=d.bounds){d=d.bounds||{xlow:0,ylow:0,xhigh:c.width,yhigh:c.height};var g=new R;J(g,1,d.xlow);J(g,3,d.ylow);J(g,2,d.xhigh);J(g,4,d.yhigh);J(f,3,g)}a=a.a;try{$f(a,b,c,e,0);var m=new a.b.a.BackgroundImageInfoProto;m.initFromJs(f,a.h);a.a.document().SetBackgroundImage(m)}finally{if(m)m["delete"]()}};
og.prototype.B=function(){v(this.b);var a=this.b.i,b=this.b.a,c=this.b.h,d=new Cf(parseInt(this.b.b.substring(1),16));d.h=255;var e=this.a;d=Ef(d);try{var f=new e.b.a.ToolParamsProto;f.tool=Module.ToolType.values[a];1==a&&(f.brush_type=Module.BrushType.values[b],f.rgba=d[0],f.mutable_line_size().stroke_width=c,f.mutable_line_size().use_web_sizes=!0,f.mutable_line_size().units=Module.BrushSizeType.PERCENT_WORLD);e.a.setToolParams(f)}finally{if(f)f["delete"]()}};
var ng=function(a){var b=new ye;J(b,1,"sketchology://border0");J(b,2,1);de("data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAFgAAABYCAYAAABxlTA0AAAABmJLR0QA/wD/AP+gvaeTAAAACXBIWXMAAAsTAAALEwEAmpwYAAAAB3RJTUUH4AgPEBYrHoEFUgAAAw1JREFUeNrt3b9uE0EQBvBvZvd8LURUkVwEkEDAm9AgQYOQKHgZWloqUMoUaVJSpAivQBEhJGhSWiAlKXz7JwXey9nE9vrOgHT3fZKVFM5F/mUyN5tIY8F2EtG/yNYucnZ21keg/57d3V1RMvzdEJjABGYITGACM+1iNz5RxGGPzCIbnT+i3RA1AjgFcADgR4zRDwTVABjHGF8AeJwOaDnYNgd29jGGED6JyMvxeDwZYvVOJpN3FxcXH0TkWfMovQpac6p39jgdMi4A7Ozs/HLOvQkhfEkurW9yDVh47+GcOxgybsre3t5P59y+937OqHUFhxAQQkBVVd85E/yOc+5bcuk0pqWLeO/hvQ+krV289x45yLqqPSRk5xym0yllZ5lOp6iqCiGEtW3C5lZwzq/DUOK9h4jUwK3GtGYFz1oEZa97cA2crJaNapozoiVk5rqCm+2h898ihn487uKiWPMPy2arYG7G7TQHM91CYAITmCEwgQnMEJjABGYITGCGwAQmMENgAhOYITCBCUwCAhOYITCBCcwQmMAEZghMYIbABCYwQ2ACE5ghMIEJzBCYwAyBCUxghsAEJjBDYAIzBP63wFkLcUX4lhAp3nu79Qr23t8lbZ37WwNuLFx7fnJycnvossfHx7dijK+WGLWrYBFBjPHh5eXl/tHR0Z0h41ZV9T7G+EREum/AThcREaiqqOpTAJ8PDw8/VlX11TnnhgArIrYsy3vn5+evy7J8NLNADrJd1xpUFcaY9BBVfSAib2foAPq7GTAZGGNSkcFaC2stjDH161+BLGsrOAEXRYGyLOsNgKqK5hbovgIng/T6R6MRiqKogVtVcPqi5k+tKIo5XOfcYICNMbDWYjQaoSzLP4BXtYqVFayqiDHCWlsjJnDnXPYG0j5UcCqy9LDWtq/gZcipHxVFMbfitec3uMX70FwP7nyTW2zyaSt236v3pipO7UJVs9pDVgU3p4n0jZqwQwBeHFlzYLPn4MXPb4Lt+5i2CJ1zgsuu4GUX2vBNk3qJnvX8jOdwv3h7O1wBYIqaD5lCtYoAAAAASUVORK5CYII=",
function(c,d){var e=a.a;try{var f=new e.b.a.OutOfBoundsColorProto;f.rgba=3873892095;e.a.setOutOfBoundsColor(f);$f(e,c,d,"sketchology://border0",1);var g=new e.b.a.BorderProto;g.initFromJs(b,e.h);e.a.document().SetPageBorder(g)}finally{if(f)f["delete"]();if(g)g["delete"]()}})};og.prototype.L=function(a){if(A(this,new le(a)))throw a||Error("Unhandled fatal ink error");};og.prototype.flush=function(a){this.a.flush(a)};var qg=function(){L.call(this);this.a=null};t(qg,L);qg.prototype.C=function(){qg.S.C.call(this);this.a=V.w(this);var a=nd(this);vc(a,this.a,"m",this.b);vc(a,ce(this),"a",this.g)};qg.prototype.g=function(a){a.g?this.F().style.cursor="":this.b()};
qg.prototype.b=function(){var a=this.a.pa(),b=8,c=document.createElement("canvas"),d=c.getContext("2d");a=new Cf(a|4278190080);b=Math.max(b,2);var e=Math.ceil(2*b);c.width=e;c.height=e;d.fillStyle=Df(127<.5*(Math.max(a.g,a.b,a.a)+Math.min(a.g,a.b,a.a))?Gf:Hf);d.beginPath();d.arc(b,b,b,0,2*Math.PI);d.closePath();d.fill();d.fillStyle=Df(a);d.beginPath();d.arc(b,b,b-1,0,2*Math.PI);d.closePath();d.fill();b="url("+c.toDataURL()+")8 8, auto";this.F().style.cursor=b};var rg=function(a,b,c){(b=c||b)&&b.ta?(a=b&&b.ta,null!=a&&a.ga===ad?(v(a.constructor===dd),a=String(a.Y).replace(vd,"").replace(wd,"&lt;"),a=String(a).replace(ud,td)):a=Va(String(a)),a=' nonce="'+a+'"'):a="";return rd('<div id="canvas-parent"><style'+a+'>\n #canvas-parent {\n height: 100%;\n position: relative;\n width: 100%;\n }\n #layer-container {\n height: 100%;\n position: relative;\n width: 100%;\n }\n #ink-engine {\n height: 100%;\n left: 0;\n position: absolute;\n top: 0;\n width: 100%;\n touch-action: none;\n }\n .above-ink-canvas {\n display: none;\n }\n </style><div class="above-ink-canvas"></div><div id="layer-container"></div><div class="below-ink-canvas"></div></div>')};
rg.a="ink.soy.embedContent";var Z=function(a,b){L.call(this);this.b=a;this.g=new qg;qd(this,this.g);this.a=new og(a.g,a.b);qd(this,this.a);this.h=b};t(Z,L);h=Z.prototype;h.Ta=function(){var a=new x("k");A(this,a);a.b||this.a.a.a.document().RemoveAll()};h.qb=function(){var a=new x("i");A(this,a);a.b||this.a.a.a.document().Undo();a=ee(this.b.a,7);A(this,new ke(a))};h.eb=function(){var a=new x("j");A(this,a);a.b||this.a.a.a.document().Redo();a=ee(this.b.a,8);A(this,new ke(a))};
h.ib=function(a,b){var c=this;de(a,function(a,e){pg(c.a,a,e);b&&b()})};h.mb=function(a,b){var c=this;de(a,function(a,e){pg(c.a,a,e,{bounds:"none"});b&&b()})};h.hb=function(a){ag(this.a.a,a)};
h.lb=function(a,b,c,d,e,f){var g=this;if("none"==a)this.qa();else{var m=Kf[a];de(Mf[a],function(a,u){var p=g.a,O=new Ae;J(O,1,m);J(O,2,Ef(b)[0]);J(O,3,c);var Ac=new me;J(Ac,1,d);J(Ac,2,e);J(O,4,Ac);p=p.a;try{$f(p,a,u,m,3);var Nb=new p.b.a.GridInfoProto;Nb.initFromJs(O,p.h);p.a.setGrid(Nb)}finally{if(Nb)Nb["delete"]()}f&&f()})}};h.qa=function(){this.a.a.a.clearGrid()};
h.Xa=function(a,b,c,d){var e=this.a;e.h=c;e.M=!!d;c=new sf;J(c,1,a);J(c,2,b);a=e.a;try{var f=new a.b.a.ImageExportProto;f.initFromJs(c,a.h);a.a.startImageExport(f)}finally{if(f)f["delete"]()}};h.jb=function(a){var b=this.a.a;try{var c=new b.b.a.SetCallbackFlagsProto;c.initFromJs(a,b.h);b.a.setCallbackFlags(c)}finally{c["delete"]()}};h.nb=function(a,b,c,d){Zf(this.a.a,a,b,c,d)};h.Wa=function(){this.a.a.a.deselectAll()};h.Z=function(){this.i=hd(rg)};
h.C=function(){Z.S.C.call(this);var a=Ob("layer-container");this.a.render(a);var b=this.g;if(b.D)throw Error("Component already rendered");if(a){var c=Lb(a);b.V&&b.V.a==c||(b.V=Mb(a));b.i=a;b.C()}else throw Error("Invalid element to decorate");vc(nd(this),this.a,"c",r(this.h,this,this))};h.wb=function(a){var b=Ob("canvas-parent");a?b.classList?b.classList.add("fullscreen"):yb(b)||(b.className+=0<b.className.length?" fullscreen":"fullscreen"):zb(b)};
h.Qa=function(a,b){var c=this.a;a.id||(a.id="local-"+c.N++);var d=a.id;Ka(c.g,b,0,d);c.l.has(d)?c.l.delete(d):b<c.g.length-1?(d=c.a,b=c.g[b+1],v(a),v(d.a),Module.addBrixElementToEngineBelow(d.a,a.id,a.proto,a.transform,b)):(b=c.a,v(a),v(b.a),Module.addBrixElementToEngine(b.a,a.id,a.proto,a.transform));Sf(c.a.l)};
h.fb=function(a,b){for(var c=this.a,d=0;d<b;d++){var e=void 0,f=c.a,g=c.g[a];v(f.a);try{e=new f.b.a.VectorString,e.push_back(g),f.a.document().Remove(e)}finally{if(e)e["delete"]()}Ga(c.g,a)}Sf(c.a.l)};h.gb=function(){var a=this.a;a.a.a.clear();ag(a.a,If);a.a.a.clearGrid();a.l.clear();a.g=[];Sf(a.a.l)};h.ob=function(a){this.a.a.a.assignFlag(Module.Flag.values[1],!!a)};
h.kb=function(a,b){var c=this.a.a;v(c.a);if(a.length!==b.length)throw Error("mismatch in transform array lengths");var d=new c.b.a.VectorString;try{var e=new c.b.a.VectorString;try{for(var f=0;f<a.length;f++)d.push_back(a[f]),e.push_back(b[f]);Module.sendBrixMutationToEngine(c.a,d,e)}finally{e["delete"]()}}finally{d["delete"]()}};h.bb=function(a){var b=new je(a);A(this,b);b.b||a(void 0)};h.Ca=function(){var a=md(this.a).querySelector("canvas,embed");return new Jb(a.clientWidth,a.clientHeight)};
h.Ea=function(){return this.b.a};h.Sa=function(a,b){this.a.a.a.assignFlag(Module.Flag.values[a],!!b)};h.$a=function(a){if("makeSEngineInMemory"!==this.b.b)throw Error("Can't getSnapshot without sengineType IN_MEMORY.");ig(this.a.a,a)};h.cb=function(a){if("makeSEngineInMemory"!==this.b.b)throw Error("Can't loadFromSnapshot without sengineType IN_MEMORY.");var b=this.a.a;try{var c=new b.b.a.SnapshotProto;c.initFromJs(a,b.h);Module.loadFromSnapshot(b.a,c)}finally{if(c)c["delete"]()}};
h.ab=function(a){var b=this.a.a;try{var c=new b.b.a.CommandProto;c.initFromJs(a,b.h);b.a.handleCommand(c)}finally{if(c)c["delete"]()}};h.Za=function(){return this.a.a.a};h.Va=function(a,b){jg(this.a.a,b)};h.pb=function(a,b){kg(this.a.a,a,b)};h.Ya=function(a,b){lg(this.a.a,a,b)};h.Ua=function(a,b){mg(this.a.a,a,b)};h.flush=function(a){this.a.flush(a)};
h.Ra=function(a,b){var c=this;de(a,function(a,e){var d=c.a.a;try{var g="sketchology://sticker_"+d.na;d.na++;$f(d,a,e,g,2);var m=new d.b.a.ImageRectProto,p=m.mutable_rect();p.xlow=(d.N-d.H-e.width)/2;p.xhigh=(d.N-d.H+e.width)/2;p.ylow=(d.O-d.M-e.width)/2;p.yhigh=(d.O-d.M+e.width)/2;m.bitmap_uri=g;m.mutable_attributes().is_sticker=!0;d.a.addImageRect(m)}finally{if(m)m["delete"]()}b&&b()})};ta("ink.embed.Config",function(a){a=a||{};this.i=a.parentEl||null;this.h=a.parentComponent||null;this.g=a.nativeClientManifestUrl||null;this.a=a.logsHost||0;this.b=a.sengineType||"makeSEnginePassthroughDocument"});ta("ink.embed.EmbedComponent",Z);Z.execute=function(a,b){b=new Z(a,b);od(b,a.h);b.render(a.i)};Z.prototype.clear=Z.prototype.Ta;Z.prototype.undo=Z.prototype.qb;Z.prototype.redo=Z.prototype.eb;Z.prototype.setBackgroundImage=Z.prototype.ib;Z.prototype.setImageToUseForPageBackground=Z.prototype.mb;
Z.prototype.setBackgroundColor=Z.prototype.hb;Z.prototype.setGrid=Z.prototype.lb;Z.prototype.clearGrid=Z.prototype.qa;Z.prototype.exportPng=Z.prototype.Xa;Z.prototype.setCallbackFlags=Z.prototype.jb;Z.prototype.setPageBounds=Z.prototype.nb;Z.prototype.deselectAll=Z.prototype.Wa;Z.prototype.createDom=Z.prototype.Z;Z.prototype.enterDocument=Z.prototype.C;Z.prototype.setFullscreen=Z.prototype.wb;Z.prototype.addElement=Z.prototype.Qa;Z.prototype.removeElements=Z.prototype.fb;Z.prototype.resetCanvas=Z.prototype.gb;
Z.prototype.setReadOnly=Z.prototype.ob;Z.prototype.setElementTransforms=Z.prototype.kb;Z.prototype.isEmpty=Z.prototype.bb;Z.prototype.getCanvasDimensions=Z.prototype.Ca;Z.prototype.getLogsHost=Z.prototype.Ea;Z.prototype.assignFlag=Z.prototype.Sa;Z.prototype.getSnapshot=Z.prototype.$a;Z.prototype.loadFromSnapshot=Z.prototype.cb;Z.prototype.handleCommand=Z.prototype.ab;Z.prototype.getRawEngineObject=Z.prototype.Za;Z.prototype.convertBrixDocumentToSnapshot=Z.prototype.Va;
Z.prototype.snapshotHasPendingMutations=Z.prototype.pb;Z.prototype.extractMutationPacket=Z.prototype.Ya;Z.prototype.clearPendingMutations=Z.prototype.Ua;Z.prototype.flush=Z.prototype.flush;Z.prototype.addSticker=Z.prototype.Ra;ta("ink.BrushModel",V);V.getInstance=V.w;V.prototype.setColor=V.prototype.Oa;V.prototype.setStrokeWidth=V.prototype.zb;V.prototype.setIsErasing=V.prototype.xb;V.prototype.setShape=V.prototype.yb;V.prototype.getShape=V.prototype.Ga;V.prototype.getColor=V.prototype.Ma;
V.prototype.getActiveColor=V.prototype.oa;V.prototype.getActiveColorNumericRbg=V.prototype.pa;V.prototype.getStrokeWidth=V.prototype.Ha;V.prototype.getIsErasing=V.prototype.Da;V.prototype.getBrushType=V.prototype.Ba;V.prototype.getToolType=V.prototype.Na;