updated to wasmm 0.2.0
diff --git a/package.json b/package.json
index cac1b71..d89d46a 100644
--- a/package.json
+++ b/package.json
@@ -40,6 +40,6 @@
   },
   "license": "MIT",
   "dependencies": {
-    "experimental-pathkit-wasm": "^0.1.7"
+    "experimental-pathkit-wasm": "^0.2.0"
   }
 }
diff --git a/player/js/modules/pathkit.js b/player/js/modules/pathkit.js
index 266f387..f5498fc 100644
--- a/player/js/modules/pathkit.js
+++ b/player/js/modules/pathkit.js
@@ -1,89 +1,94 @@
 var PathKitInit = function(PathKitInit) {
   PathKitInit = PathKitInit || {};
 
-var c;c||(c=typeof PathKitInit !== 'undefined' ? PathKitInit : {});(function(a){var b={};a.loadCmdsTypedArray=function(d){for(var e=0,f=0;f<d.length;f++)e+=d[f].length;if(b[e])var g=b[e];else g=new Float32Array(e),b[e]=g;var h=0;for(f=0;f<d.length;f++)for(var k=0;k<d[f].length;k++){var l=d[f][k];"string"===typeof l&&(l=a.SkBits2FloatUnsigned(parseInt(l)));g[h]=l;h++}d=a._malloc(g.length*g.BYTES_PER_ELEMENT);a.HEAPF32.set(g,d/g.BYTES_PER_ELEMENT);return[d,e]}})(c);var n={},q;
-for(q in c)c.hasOwnProperty(q)&&(n[q]=c[q]);c.arguments=[];c.thisProgram="./this.program";c.quit=function(a,b){throw b;};c.preRun=[];c.postRun=[];var r=!1,t=!1,u=!1,aa=!1;
-if(c.ENVIRONMENT)if("WEB"===c.ENVIRONMENT)r=!0;else if("WORKER"===c.ENVIRONMENT)t=!0;else if("NODE"===c.ENVIRONMENT)u=!0;else if("SHELL"===c.ENVIRONMENT)aa=!0;else throw Error("Module['ENVIRONMENT'] value is not valid. must be one of: WEB|WORKER|NODE|SHELL.");else r="object"===typeof window,t="function"===typeof importScripts,u="object"===typeof process&&"function"===typeof require&&!r&&!t,aa=!r&&!u&&!t;
-if(u){var ba,ca;c.read=function(a,b){ba||(ba=require("fs"));ca||(ca=require("path"));a=ca.normalize(a);a=ba.readFileSync(a);return b?a:a.toString()};c.readBinary=function(a){a=c.read(a,!0);a.buffer||(a=new Uint8Array(a));assert(a.buffer);return a};1<process.argv.length&&(c.thisProgram=process.argv[1].replace(/\\/g,"/"));c.arguments=process.argv.slice(2);process.on("uncaughtException",function(a){if(!(a instanceof w))throw a;});process.on("unhandledRejection",function(){process.exit(1)});c.inspect=
-function(){return"[Emscripten Module object]"}}else if(aa)"undefined"!=typeof read&&(c.read=function(a){return read(a)}),c.readBinary=function(a){if("function"===typeof readbuffer)return new Uint8Array(readbuffer(a));a=read(a,"binary");assert("object"===typeof a);return a},"undefined"!=typeof scriptArgs?c.arguments=scriptArgs:"undefined"!=typeof arguments&&(c.arguments=arguments),"function"===typeof quit&&(c.quit=function(a){quit(a)});else if(r||t)c.read=function(a){var b=new XMLHttpRequest;b.open("GET",
-a,!1);b.send(null);return b.responseText},t&&(c.readBinary=function(a){var b=new XMLHttpRequest;b.open("GET",a,!1);b.responseType="arraybuffer";b.send(null);return new Uint8Array(b.response)}),c.readAsync=function(a,b,d){var e=new XMLHttpRequest;e.open("GET",a,!0);e.responseType="arraybuffer";e.onload=function(){200==e.status||0==e.status&&e.response?b(e.response):d()};e.onerror=d;e.send(null)},c.setWindowTitle=function(a){document.title=a};else throw Error("not compiled for this environment");
-c.print="undefined"!==typeof console?console.log.bind(console):"undefined"!==typeof print?print:null;c.printErr="undefined"!==typeof printErr?printErr:"undefined"!==typeof console&&console.warn.bind(console)||c.print;c.print=c.print;c.printErr=c.printErr;for(q in n)n.hasOwnProperty(q)&&(c[q]=n[q]);n=void 0;function da(a){var b;b||(b=16);return Math.ceil(a/b)*b}var ea={"f64-rem":function(a,b){return a%b},"debugger":function(){debugger}},fa=0;function assert(a,b){a||x("Assertion failed: "+b)}
-var ha="undefined"!==typeof TextDecoder?new TextDecoder("utf8"):void 0;"undefined"!==typeof TextDecoder&&new TextDecoder("utf-16le");var buffer,ia,y,z,ja,A,C,ka,la;function ma(){c.HEAP8=ia=new Int8Array(buffer);c.HEAP16=z=new Int16Array(buffer);c.HEAP32=A=new Int32Array(buffer);c.HEAPU8=y=new Uint8Array(buffer);c.HEAPU16=ja=new Uint16Array(buffer);c.HEAPU32=C=new Uint32Array(buffer);c.HEAPF32=ka=new Float32Array(buffer);c.HEAPF64=la=new Float64Array(buffer)}var na,D,oa,pa,qa,ra,sa,ta;
-na=D=pa=qa=ra=sa=ta=0;oa=!1;function ua(){x("Cannot enlarge memory arrays. Either (1) compile with  -s TOTAL_MEMORY=X  with X higher than the current value "+E+", (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 ")}var va=c.TOTAL_STACK||5242880,E=c.TOTAL_MEMORY||16777216;
-E<va&&c.printErr("TOTAL_MEMORY should be larger than TOTAL_STACK, was "+E+"! (TOTAL_STACK="+va+")");c.buffer?buffer=c.buffer:("object"===typeof WebAssembly&&"function"===typeof WebAssembly.Memory?(c.wasmMemory=new WebAssembly.Memory({initial:E/65536,maximum:E/65536}),buffer=c.wasmMemory.buffer):buffer=new ArrayBuffer(E),c.buffer=buffer);ma();A[0]=1668509029;z[1]=25459;if(115!==y[2]||99!==y[3])throw"Runtime error: expected the system to be little-endian!";
-function F(a){for(;0<a.length;){var b=a.shift();if("function"==typeof b)b();else{var d=b.N;"number"===typeof d?void 0===b.D?c.dynCall_v(d):c.dynCall_vi(d,b.D):d(void 0===b.D?null:b.D)}}}var wa=[],xa=[],ya=[],za=[],Aa=[],Ba=!1;function Ca(){var a=c.preRun.shift();wa.unshift(a)}var G=0,Da=null,H=null;c.preloadedImages={};c.preloadedAudios={};
+var d;d||(d=typeof PathKitInit !== 'undefined' ? PathKitInit : {});(function(a){var b={};a.loadCmdsTypedArray=function(c){for(var e=0,f=0;f<c.length;f++)e+=c[f].length;if(b[e])var g=b[e];else g=new Float32Array(e),b[e]=g;var h=0;for(f=0;f<c.length;f++)for(var k=0;k<c[f].length;k++){var l=c[f][k];"string"===typeof l&&(l=a.SkBits2FloatUnsigned(parseInt(l)));g[h]=l;h++}c=a._malloc(g.length*g.BYTES_PER_ELEMENT);a.HEAPF32.set(g,c/g.BYTES_PER_ELEMENT);return[c,e]}})(d);
+(function(a){a.onRuntimeInitialized=function(){a.SkPath.prototype.addPath=function(){if(1===arguments.length)this._addPath(arguments[0],1,0,0,0,1,0,0,0,1);else if(2===arguments.length){var a=arguments[1];this._addPath(arguments[0],a.a,a.c,a.e,a.b,a.d,a.f,0,0,1)}else if(7===arguments.length)a=arguments,this._addPath(arguments[0],a[1],a[3],a[5],a[2],a[4],a[6],0,0,1);else if(10===arguments.length)a=arguments,this._addPath(arguments[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8],a[9]);else return console.H("addPath expected to take 1, 2, 7, or 10 args. Got "+
+arguments.length),null;return this};a.SkPath.prototype.arc=function(a,c,e,f,g,h){this._arc(a,c,e,f,g,!!h);return this};a.SkPath.prototype.arcTo=function(a,c,e,f,g){this._arcTo(a,c,e,f,g);return this};a.SkPath.prototype.bezierCurveTo=function(a,c,e,f,g,h){this._cubicTo(a,c,e,f,g,h);return this};a.SkPath.prototype.close=function(){this._close();return this};a.SkPath.prototype.closePath=function(){this._close();return this};a.SkPath.prototype.conicTo=function(a,c,e,f,g){this._conicTo(a,c,e,f,g);return this};
+a.SkPath.prototype.cubicTo=function(a,c,e,f,g,h){this._cubicTo(a,c,e,f,g,h);return this};a.SkPath.prototype.dash=function(a,c,e){return this._dash(a,c,e)?this:null};a.SkPath.prototype.ellipse=function(a,c,e,f,g,h,k,l){this._ellipse(a,c,e,f,g,h,k,!!l);return this};a.SkPath.prototype.lineTo=function(a,c){this._lineTo(a,c);return this};a.SkPath.prototype.moveTo=function(a,c){this._moveTo(a,c);return this};a.SkPath.prototype.op=function(a,c){return this._op(a,c)?this:null};a.SkPath.prototype.quadraticCurveTo=
+function(a,c,e,f){this._quadTo(a,c,e,f);return this};a.SkPath.prototype.quadTo=function(a,c,e,f){this._quadTo(a,c,e,f);return this};a.SkPath.prototype.rect=function(a,c,e,f){this._rect(a,c,e,f);return this};a.SkPath.prototype.simplify=function(){return this._simplify()?this:null};a.SkPath.prototype.stroke=function(b){b=b||{};b.width=b.width||1;b.miter_limit=b.miter_limit||4;b.cap=b.cap||a.StrokeCap.BUTT;b.join=b.join||a.StrokeJoin.MITER;return this._stroke(b)?this:null};a.SkPath.prototype.transform=
+function(){if(1===arguments.length)this._transform(arguments[0]);else if(9===arguments.length){var a=arguments;this._transform(a[0],a[1],a[2],a[3],a[4],a[5],a[6],a[7],a[8])}else return console.H("transform expected to take 1 or 9 arguments. Got "+arguments.length),null;return this};a.SkPath.prototype.trim=function(a,c,e){return this._trim(a,c,!!e)?this:null}}})(d);var n={},q;for(q in d)d.hasOwnProperty(q)&&(n[q]=d[q]);d.arguments=[];d.thisProgram="./this.program";d.quit=function(a,b){throw b;};
+d.preRun=[];d.postRun=[];var r=!1,t=!1,u=!1,aa=!1;if(d.ENVIRONMENT)if("WEB"===d.ENVIRONMENT)r=!0;else if("WORKER"===d.ENVIRONMENT)t=!0;else if("NODE"===d.ENVIRONMENT)u=!0;else if("SHELL"===d.ENVIRONMENT)aa=!0;else throw Error("Module['ENVIRONMENT'] value is not valid. must be one of: WEB|WORKER|NODE|SHELL.");else r="object"===typeof window,t="function"===typeof importScripts,u="object"===typeof process&&"function"===typeof require&&!r&&!t,aa=!r&&!u&&!t;
+if(u){var ba,ca;d.read=function(a,b){ba||(ba=require("fs"));ca||(ca=require("path"));a=ca.normalize(a);a=ba.readFileSync(a);return b?a:a.toString()};d.readBinary=function(a){a=d.read(a,!0);a.buffer||(a=new Uint8Array(a));assert(a.buffer);return a};1<process.argv.length&&(d.thisProgram=process.argv[1].replace(/\\/g,"/"));d.arguments=process.argv.slice(2);process.on("uncaughtException",function(a){if(!(a instanceof v))throw a;});process.on("unhandledRejection",function(){process.exit(1)});d.inspect=
+function(){return"[Emscripten Module object]"}}else if(aa)"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");assert("object"===typeof a);return a},"undefined"!=typeof scriptArgs?d.arguments=scriptArgs:"undefined"!=typeof arguments&&(d.arguments=arguments),"function"===typeof quit&&(d.quit=function(a){quit(a)});else if(r||t)d.read=function(a){var b=new XMLHttpRequest;b.open("GET",
+a,!1);b.send(null);return b.responseText},t&&(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 e=new XMLHttpRequest;e.open("GET",a,!0);e.responseType="arraybuffer";e.onload=function(){200==e.status||0==e.status&&e.response?b(e.response):c()};e.onerror=c;e.send(null)},d.setWindowTitle=function(a){document.title=a};else throw Error("not compiled for this environment");
+d.print="undefined"!==typeof console?console.log.bind(console):"undefined"!==typeof print?print:null;d.printErr="undefined"!==typeof printErr?printErr:"undefined"!==typeof console&&console.warn.bind(console)||d.print;d.print=d.print;d.printErr=d.printErr;for(q in n)n.hasOwnProperty(q)&&(d[q]=n[q]);n=void 0;function da(a){var b;b||(b=16);return Math.ceil(a/b)*b}var ea={"f64-rem":function(a,b){return a%b},"debugger":function(){debugger}},fa=0;function assert(a,b){a||x("Assertion failed: "+b)}
+var ha="undefined"!==typeof TextDecoder?new TextDecoder("utf8"):void 0;"undefined"!==typeof TextDecoder&&new TextDecoder("utf-16le");var buffer,ia,y,z,ja,B,C,ka,la;function ma(){d.HEAP8=ia=new Int8Array(buffer);d.HEAP16=z=new Int16Array(buffer);d.HEAP32=B=new Int32Array(buffer);d.HEAPU8=y=new Uint8Array(buffer);d.HEAPU16=ja=new Uint16Array(buffer);d.HEAPU32=C=new Uint32Array(buffer);d.HEAPF32=ka=new Float32Array(buffer);d.HEAPF64=la=new Float64Array(buffer)}var na,D,oa,pa,qa,ra,sa,ta;
+na=D=pa=qa=ra=sa=ta=0;oa=!1;function ua(){x("Cannot enlarge memory arrays. Either (1) compile with  -s TOTAL_MEMORY=X  with X higher than the current value "+E+", (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 ")}var va=d.TOTAL_STACK||5242880,E=d.TOTAL_MEMORY||16777216;
+E<va&&d.printErr("TOTAL_MEMORY should be larger than TOTAL_STACK, was "+E+"! (TOTAL_STACK="+va+")");d.buffer?buffer=d.buffer:("object"===typeof WebAssembly&&"function"===typeof WebAssembly.Memory?(d.wasmMemory=new WebAssembly.Memory({initial:E/65536,maximum:E/65536}),buffer=d.wasmMemory.buffer):buffer=new ArrayBuffer(E),d.buffer=buffer);ma();B[0]=1668509029;z[1]=25459;if(115!==y[2]||99!==y[3])throw"Runtime error: expected the system to be little-endian!";
+function F(a){for(;0<a.length;){var b=a.shift();if("function"==typeof b)b();else{var c=b.Y;"number"===typeof c?void 0===b.K?d.dynCall_v(c):d.dynCall_vi(c,b.K):c(void 0===b.K?null:b.K)}}}var wa=[],xa=[],ya=[],za=[],Aa=[],Ba=!1;function Ca(){var a=d.preRun.shift();wa.unshift(a)}var G=0,Da=null,H=null;d.preloadedImages={};d.preloadedAudios={};
 function Ea(a){return String.prototype.startsWith?a.startsWith("data:application/octet-stream;base64,"):0===a.indexOf("data:application/octet-stream;base64,")}
-(function(){function a(){try{if(c.wasmBinary)return new Uint8Array(c.wasmBinary);if(c.readBinary)return c.readBinary(f);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){x(p)}}function b(){return c.wasmBinary||!r&&!t||"function"!==typeof fetch?new Promise(function(b){b(a())}):fetch(f,{credentials:"same-origin"}).then(function(a){if(!a.ok)throw"failed to load wasm binary file at '"+f+
-"'";return a.arrayBuffer()}).catch(function(){return a()})}function d(a){function d(a){k=a.exports;if(k.memory){a=k.memory;var b=c.buffer;a.byteLength<b.byteLength&&c.printErr("the new buffer in mergeMemory is smaller than the previous one. in native wasm, we should grow memory here");b=new Int8Array(b);(new Int8Array(a)).set(b);c.buffer=buffer=a;ma()}c.asm=k;c.usingWasm=!0;G--;c.monitorRunDependencies&&c.monitorRunDependencies(G);0==G&&(null!==Da&&(clearInterval(Da),Da=null),H&&(a=H,H=null,a()))}
-function e(a){d(a.instance)}function g(a){b().then(function(a){return WebAssembly.instantiate(a,h)}).then(a).catch(function(a){c.printErr("failed to asynchronously prepare wasm: "+a);x(a)})}if("object"!==typeof WebAssembly)return c.printErr("no native wasm support detected"),!1;if(!(c.wasmMemory instanceof WebAssembly.Memory))return c.printErr("no native wasm Memory in use"),!1;a.memory=c.wasmMemory;h.global={NaN:NaN,Infinity:Infinity};h["global.Math"]=Math;h.env=a;G++;c.monitorRunDependencies&&c.monitorRunDependencies(G);
-if(c.instantiateWasm)try{return c.instantiateWasm(h,d)}catch(ub){return c.printErr("Module.instantiateWasm callback failed with error: "+ub),!1}c.wasmBinary||"function"!==typeof WebAssembly.instantiateStreaming||Ea(f)||"function"!==typeof fetch?g(e):WebAssembly.instantiateStreaming(fetch(f,{credentials:"same-origin"}),h).then(e).catch(function(a){c.printErr("wasm streaming compile failed: "+a);c.printErr("falling back to ArrayBuffer instantiation");g(e)});return{}}var e="pathkit.wast",f="pathkit.wasm",
-g="pathkit.temp.asm.js";"function"===typeof c.locateFile&&(Ea(e)||(e=c.locateFile(e)),Ea(f)||(f=c.locateFile(f)),Ea(g)||(g=c.locateFile(g)));var h={global:null,env:null,asm2wasm:ea,parent:c},k=null;c.asmPreload=c.asm;var l=c.reallocBuffer;c.reallocBuffer=function(a){if("asmjs"===m)var b=l(a);else a:{var d=c.usingWasm?65536:16777216;0<a%d&&(a+=d-a%d);d=c.buffer.byteLength;if(c.usingWasm)try{b=-1!==c.wasmMemory.grow((a-d)/65536)?c.buffer=c.wasmMemory.buffer:null;break a}catch(B){b=null;break a}b=void 0}return b};
-var m="";c.asm=function(a,b){if(!b.table){a=c.wasmTableSize;void 0===a&&(a=1024);var e=c.wasmMaxTableSize;b.table="object"===typeof WebAssembly&&"function"===typeof WebAssembly.Table?void 0!==e?new WebAssembly.Table({initial:a,maximum:e,element:"anyfunc"}):new WebAssembly.Table({initial:a,element:"anyfunc"}):Array(a);c.wasmTable=b.table}b.memoryBase||(b.memoryBase=c.STATIC_BASE);b.tableBase||(b.tableBase=0);b=d(b);assert(b,"no binaryen method succeeded.");return b}})();na=1024;D=na+30112;
-xa.push({N:function(){Fa()}},{N:function(){Ha()}});c.STATIC_BASE=na;c.STATIC_BUMP=30112;D+=16;var I=0;function J(){I+=4;return A[I-4>>2]}var Ia={};
-function K(a,b){I=b;try{var d=J(),e=J(),f=J();a=0;K.J||(K.J=[null,[],[]],K.S=function(a,b){var d=K.J[a];assert(d);if(0===b||10===b){a=1===a?c.print:c.printErr;a:{for(var e=b=0;d[e];)++e;if(16<e-b&&d.subarray&&ha)b=ha.decode(d.subarray(b,e));else for(e="";;){var f=d[b++];if(!f){b=e;break a}if(f&128){var g=d[b++]&63;if(192==(f&224))e+=String.fromCharCode((f&31)<<6|g);else{var k=d[b++]&63;if(224==(f&240))f=(f&15)<<12|g<<6|k;else{var h=d[b++]&63;if(240==(f&248))f=(f&7)<<18|g<<12|k<<6|h;else{var l=d[b++]&
-63;if(248==(f&252))f=(f&3)<<24|g<<18|k<<12|h<<6|l;else{var m=d[b++]&63;f=(f&1)<<30|g<<24|k<<18|h<<12|l<<6|m}}}65536>f?e+=String.fromCharCode(f):(f-=65536,e+=String.fromCharCode(55296|f>>10,56320|f&1023))}}else e+=String.fromCharCode(f)}}a(b);d.length=0}else d.push(b)});for(b=0;b<f;b++){for(var g=A[e+8*b>>2],h=A[e+(8*b+4)>>2],k=0;k<h;k++)K.S(d,y[g+k]);a+=h}return a}catch(l){return"undefined"!==typeof FS&&l instanceof FS.I||x(l),-l.L}}var Ja={};
+(function(){function a(){try{if(d.wasmBinary)return new Uint8Array(d.wasmBinary);if(d.readBinary)return d.readBinary(f);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){x(p)}}function b(){return d.wasmBinary||!r&&!t||"function"!==typeof fetch?new Promise(function(b){b(a())}):fetch(f,{credentials:"same-origin"}).then(function(a){if(!a.ok)throw"failed to load wasm binary file at '"+f+
+"'";return a.arrayBuffer()}).catch(function(){return a()})}function c(a){function c(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);(new Int8Array(a)).set(b);d.buffer=buffer=a;ma()}d.asm=k;d.usingWasm=!0;G--;d.monitorRunDependencies&&d.monitorRunDependencies(G);0==G&&(null!==Da&&(clearInterval(Da),Da=null),H&&(a=H,H=null,a()))}
+function e(a){c(a.instance)}function g(a){b().then(function(a){return WebAssembly.instantiate(a,h)}).then(a).catch(function(a){d.printErr("failed to asynchronously prepare wasm: "+a);x(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;a.memory=d.wasmMemory;h.global={NaN:NaN,Infinity:Infinity};h["global.Math"]=Math;h.env=a;G++;d.monitorRunDependencies&&d.monitorRunDependencies(G);
+if(d.instantiateWasm)try{return d.instantiateWasm(h,c)}catch(vb){return d.printErr("Module.instantiateWasm callback failed with error: "+vb),!1}d.wasmBinary||"function"!==typeof WebAssembly.instantiateStreaming||Ea(f)||"function"!==typeof fetch?g(e):WebAssembly.instantiateStreaming(fetch(f,{credentials:"same-origin"}),h).then(e).catch(function(a){d.printErr("wasm streaming compile failed: "+a);d.printErr("falling back to ArrayBuffer instantiation");g(e)});return{}}var e="pathkit.wast",f="pathkit.wasm",
+g="pathkit.temp.asm.js";"function"===typeof d.locateFile&&(Ea(e)||(e=d.locateFile(e)),Ea(f)||(f=d.locateFile(f)),Ea(g)||(g=d.locateFile(g)));var h={global:null,env:null,asm2wasm:ea,parent:d},k=null;d.asmPreload=d.asm;var l=d.reallocBuffer;d.reallocBuffer=function(a){if("asmjs"===m)var b=l(a);else a:{var c=d.usingWasm?65536:16777216;0<a%c&&(a+=c-a%c);c=d.buffer.byteLength;if(d.usingWasm)try{b=-1!==d.wasmMemory.grow((a-c)/65536)?d.buffer=d.wasmMemory.buffer:null;break a}catch(A){b=null;break a}b=void 0}return b};
+var m="";d.asm=function(a,b){if(!b.table){a=d.wasmTableSize;void 0===a&&(a=1024);var e=d.wasmMaxTableSize;b.table="object"===typeof WebAssembly&&"function"===typeof WebAssembly.Table?void 0!==e?new WebAssembly.Table({initial:a,maximum:e,element:"anyfunc"}):new WebAssembly.Table({initial:a,element:"anyfunc"}):Array(a);d.wasmTable=b.table}b.memoryBase||(b.memoryBase=d.STATIC_BASE);b.tableBase||(b.tableBase=0);b=c(b);assert(b,"no binaryen method succeeded.");return b}})();na=1024;D=na+30208;
+xa.push({Y:function(){Fa()}},{Y:function(){Ha()}});d.STATIC_BASE=na;d.STATIC_BUMP=30208;D+=16;var I=0;function J(){I+=4;return B[I-4>>2]}var Ia={};
+function K(a,b){I=b;try{var c=J(),e=J(),f=J();a=0;K.H||(K.H=[null,[],[]],K.ja=function(a,b){var c=K.H[a];assert(c);if(0===b||10===b){a=1===a?d.print:d.printErr;a:{for(var e=b=0;c[e];)++e;if(16<e-b&&c.subarray&&ha)b=ha.decode(c.subarray(b,e));else for(e="";;){var f=c[b++];if(!f){b=e;break a}if(f&128){var g=c[b++]&63;if(192==(f&224))e+=String.fromCharCode((f&31)<<6|g);else{var k=c[b++]&63;if(224==(f&240))f=(f&15)<<12|g<<6|k;else{var h=c[b++]&63;if(240==(f&248))f=(f&7)<<18|g<<12|k<<6|h;else{var l=c[b++]&
+63;if(248==(f&252))f=(f&3)<<24|g<<18|k<<12|h<<6|l;else{var m=c[b++]&63;f=(f&1)<<30|g<<24|k<<18|h<<12|l<<6|m}}}65536>f?e+=String.fromCharCode(f):(f-=65536,e+=String.fromCharCode(55296|f>>10,56320|f&1023))}}else e+=String.fromCharCode(f)}}a(b);c.length=0}else c.push(b)});for(b=0;b<f;b++){for(var g=B[e+8*b>>2],h=B[e+(8*b+4)>>2],k=0;k<h;k++)K.ja(c,y[g+k]);a+=h}return a}catch(l){return"undefined"!==typeof FS&&l instanceof FS.U||x(l),-l.W}}var Ja={};
 function Ka(a){for(;a.length;){var b=a.pop();a.pop()(b)}}function L(a){return this.fromWireType(C[a>>2])}var M={},N={},La={};function Ma(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 Na(a,b){a=Ma(a);return(new Function("body","return function "+a+'() {\n    "use strict";    return body.apply(this, arguments);\n};\n'))(b)}
-function Oa(a){var b=Error,d=Na(a,function(b){this.name=a;this.message=b;b=Error(b).stack;void 0!==b&&(this.stack=this.toString()+"\n"+b.replace(/^Error(:[^\n]*)?\n/,""))});d.prototype=Object.create(b.prototype);d.prototype.constructor=d;d.prototype.toString=function(){return void 0===this.message?this.name:this.name+": "+this.message};return d}var Pa=void 0;function Qa(a){throw new Pa(a);}
-function O(a,b,d){function e(b){b=d(b);b.length!==a.length&&Qa("Mismatched type converter count");for(var e=0;e<a.length;++e)P(a[e],b[e])}a.forEach(function(a){La[a]=b});var f=Array(b.length),g=[],h=0;b.forEach(function(a,b){N.hasOwnProperty(a)?f[b]=N[a]:(g.push(a),M.hasOwnProperty(a)||(M[a]=[]),M[a].push(function(){f[b]=N[a];++h;h===g.length&&e(f)}))});0===g.length&&e(f)}
-function Ra(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);}}var Sa=void 0;function Q(a){for(var b="";y[a];)b+=Sa[y[a++]];return b}var R=void 0;function S(a){throw new R(a);}
-function P(a,b,d){d=d||{};if(!("argPackAdvance"in b))throw new TypeError("registerType registeredInstance requires argPackAdvance");var e=b.name;a||S('type "'+e+'" must have a positive integer typeid pointer');if(N.hasOwnProperty(a)){if(d.da)return;S("Cannot register type '"+e+"' twice")}N[a]=b;delete La[a];M.hasOwnProperty(a)&&(b=M[a],delete M[a],b.forEach(function(a){a()}))}function Ta(a){S(a.a.f.b.name+" instance already deleted")}var Ua=void 0,Va=[];
-function Wa(){for(;Va.length;){var a=Va.pop();a.a.s=!1;a["delete"]()}}function T(){}var Xa={};function Ya(a,b,d){if(void 0===a[b].g){var e=a[b];a[b]=function(){a[b].g.hasOwnProperty(arguments.length)||S("Function '"+d+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+a[b].g+")!");return a[b].g[arguments.length].apply(this,arguments)};a[b].g=[];a[b].g[e.A]=e}}
-function Za(a,b,d){c.hasOwnProperty(a)?((void 0===d||void 0!==c[a].g&&void 0!==c[a].g[d])&&S("Cannot register public name '"+a+"' twice"),Ya(c,a,a),c.hasOwnProperty(d)&&S("Cannot register multiple overloads of a function with the same number of arguments ("+d+")!"),c[a].g[d]=b):(c[a]=b,void 0!==d&&(c[a].na=d))}function $a(a,b,d,e,f,g,h,k){this.name=a;this.constructor=b;this.u=d;this.m=e;this.l=f;this.W=g;this.w=h;this.U=k;this.ga=[]}
-function ab(a,b,d){for(;b!==d;)b.w||S("Expected null or instance of "+d.name+", got an instance of "+b.name),a=b.w(a),b=b.l;return a}function bb(a,b){if(null===b)return this.F&&S("null is not a valid "+this.name),0;b.a||S('Cannot pass "'+U(b)+'" as a '+this.name);b.a.c||S("Cannot pass deleted object as a pointer of type "+this.name);return ab(b.a.c,b.a.f.b,this.b)}
-function cb(a,b){if(null===b){this.F&&S("null is not a valid "+this.name);if(this.C){var d=this.G();null!==a&&a.push(this.m,d);return d}return 0}b.a||S('Cannot pass "'+U(b)+'" as a '+this.name);b.a.c||S("Cannot pass deleted object as a pointer of type "+this.name);!this.B&&b.a.f.B&&S("Cannot convert argument of type "+(b.a.j?b.a.j.name:b.a.f.name)+" to parameter type "+this.name);d=ab(b.a.c,b.a.f.b,this.b);if(this.C)switch(void 0===b.a.h&&S("Passing raw pointer to smart pointer is illegal"),this.la){case 0:b.a.j===
-this?d=b.a.h:S("Cannot convert argument of type "+(b.a.j?b.a.j.name:b.a.f.name)+" to parameter type "+this.name);break;case 1:d=b.a.h;break;case 2:if(b.a.j===this)d=b.a.h;else{var e=b.clone();d=this.ha(d,V(function(){e["delete"]()}));null!==a&&a.push(this.m,d)}break;default:S("Unsupporting sharing policy")}return d}
-function db(a,b){if(null===b)return this.F&&S("null is not a valid "+this.name),0;b.a||S('Cannot pass "'+U(b)+'" as a '+this.name);b.a.c||S("Cannot pass deleted object as a pointer of type "+this.name);b.a.f.B&&S("Cannot convert argument of type "+b.a.f.name+" to parameter type "+this.name);return ab(b.a.c,b.a.f.b,this.b)}function eb(a,b,d){if(b===d)return a;if(void 0===d.l)return null;a=eb(a,b,d.l);return null===a?null:d.U(a)}var fb={};
-function gb(a,b){for(void 0===b&&S("ptr should not be undefined");a.l;)b=a.w(b),a=a.l;return fb[b]}function hb(a,b){b.f&&b.c||Qa("makeClassHandle requires ptr and ptrType");!!b.j!==!!b.h&&Qa("Both smartPtrType and smartPtr must be specified");b.count={value:1};return Object.create(a,{a:{value:b}})}
-function W(a,b,d,e,f,g,h,k,l,m,p){this.name=a;this.b=b;this.F=d;this.B=e;this.C=f;this.fa=g;this.la=h;this.O=k;this.G=l;this.ha=m;this.m=p;f||void 0!==b.l?this.toWireType=cb:(this.toWireType=e?bb:db,this.i=null)}function ib(a,b,d){c.hasOwnProperty(a)||Qa("Replacing nonexistant public symbol");void 0!==c[a].g&&void 0!==d?c[a].g[d]=b:(c[a]=b,c[a].A=d)}
-function X(a,b){a=Q(a);if(void 0!==c["FUNCTION_TABLE_"+a])var d=c["FUNCTION_TABLE_"+a][b];else if("undefined"!==typeof FUNCTION_TABLE)d=FUNCTION_TABLE[b];else{d=c.asm["dynCall_"+a];void 0===d&&(d=c.asm["dynCall_"+a.replace(/f/g,"d")],void 0===d&&S("No dynCall invoker for signature: "+a));for(var e=[],f=1;f<a.length;++f)e.push("a"+f);f="return function "+("dynCall_"+a+"_"+b)+"("+e.join(", ")+") {\n";f+="    return dynCall(rawFunction"+(e.length?", ":"")+e.join(", ")+");\n";d=(new Function("dynCall",
-"rawFunction",f+"};\n"))(d,b)}"function"!==typeof d&&S("unknown function pointer with signature "+a+": "+b);return d}var jb=void 0;function kb(a){a=lb(a);var b=Q(a);Y(a);return b}function mb(a,b){function d(a){f[a]||N[a]||(La[a]?La[a].forEach(d):(e.push(a),f[a]=!0))}var e=[],f={};b.forEach(d);throw new jb(a+": "+e.map(kb).join([", "]));}function nb(a,b){for(var d=[],e=0;e<a;e++)d.push(A[(b>>2)+e]);return d}
-function ob(a){var b=Function;if(!(b instanceof Function))throw new TypeError("new_ called with constructor type "+typeof b+" which is not a function");var d=Na(b.name||"unknownFunctionName",function(){});d.prototype=b.prototype;d=new d;a=b.apply(d,a);return a instanceof Object?a:d}
-function pb(a,b,d,e,f){var g=b.length;2>g&&S("argTypes array size mismatch! Must at least get return value and 'this' types!");var h=null!==b[1]&&null!==d,k=!1;for(d=1;d<b.length;++d)if(null!==b[d]&&void 0===b[d].i){k=!0;break}var l="void"!==b[0].name,m="",p="";for(d=0;d<g-2;++d)m+=(0!==d?", ":"")+"arg"+d,p+=(0!==d?", ":"")+"arg"+d+"Wired";a="return function "+Ma(a)+"("+m+") {\nif (arguments.length !== "+(g-2)+") {\nthrowBindingError('function "+a+" called with ' + arguments.length + ' arguments, expected "+
-(g-2)+" args!');\n}\n";k&&(a+="var destructors = [];\n");var v=k?"destructors":"null";m="throwBindingError invoker fn runDestructors retType classParam".split(" ");e=[S,e,f,Ka,b[0],b[1]];h&&(a+="var thisWired = classParam.toWireType("+v+", this);\n");for(d=0;d<g-2;++d)a+="var arg"+d+"Wired = argType"+d+".toWireType("+v+", arg"+d+"); // "+b[d+2].name+"\n",m.push("argType"+d),e.push(b[d+2]);h&&(p="thisWired"+(0<p.length?", ":"")+p);a+=(l?"var rv = ":"")+"invoker(fn"+(0<p.length?", ":"")+p+");\n";if(k)a+=
-"runDestructors(destructors);\n";else for(d=h?1:2;d<b.length;++d)g=1===d?"thisWired":"arg"+(d-2)+"Wired",null!==b[d].i&&(a+=g+"_dtor("+g+"); // "+b[d].name+"\n",m.push(g+"_dtor"),e.push(b[d].i));l&&(a+="var ret = retType.fromWireType(rv);\nreturn ret;\n");m.push(a+"}\n");return ob(m).apply(null,e)}var qb=[],Z=[{},{value:void 0},{value:null},{value:!0},{value:!1}];function rb(a){4<a&&0===--Z[a].H&&(Z[a]=void 0,qb.push(a))}
-function V(a){switch(a){case void 0:return 1;case null:return 2;case !0:return 3;case !1:return 4;default:var b=qb.length?qb.pop():Z.length;Z[b]={H:1,value:a};return b}}function sb(a,b,d){switch(b){case 0:return function(a){return this.fromWireType((d?ia:y)[a])};case 1:return function(a){return this.fromWireType((d?z:ja)[a>>1])};case 2:return function(a){return this.fromWireType((d?A:C)[a>>2])};default:throw new TypeError("Unknown integer type: "+a);}}
-function tb(a,b){var d=N[a];void 0===d&&S(b+" has unknown type "+kb(a));return d}function U(a){if(null===a)return"null";var b=typeof a;return"object"===b||"array"===b||"function"===b?a.toString():""+a}function wb(a,b){switch(b){case 2:return function(a){return this.fromWireType(ka[a>>2])};case 3:return function(a){return this.fromWireType(la[a>>3])};default:throw new TypeError("Unknown float type: "+a);}}
-function xb(a,b,d){switch(b){case 0:return d?function(a){return ia[a]}:function(a){return y[a]};case 1:return d?function(a){return z[a>>1]}:function(a){return ja[a>>1]};case 2:return d?function(a){return A[a>>2]}:function(a){return C[a>>2]};default:throw new TypeError("Unknown integer type: "+a);}}function yb(a){a||S("Cannot use deleted val. handle = "+a);return Z[a].value}var zb={};function Ab(a){var b=zb[a];return void 0===b?Q(a):b}var Bb=[];function Cb(a){var b=Bb.length;Bb.push(a);return b}
-function Db(a,b){for(var d=Array(a),e=0;e<a;++e)d[e]=tb(A[(b>>2)+e],"parameter "+e);return d}var Eb={};Pa=c.InternalError=Oa("InternalError");for(var Fb=Array(256),Gb=0;256>Gb;++Gb)Fb[Gb]=String.fromCharCode(Gb);Sa=Fb;R=c.BindingError=Oa("BindingError");T.prototype.isAliasOf=function(a){if(!(this instanceof T&&a instanceof T))return!1;var b=this.a.f.b,d=this.a.c,e=a.a.f.b;for(a=a.a.c;b.l;)d=b.w(d),b=b.l;for(;e.l;)a=e.w(a),e=e.l;return b===e&&d===a};
-T.prototype.clone=function(){this.a.c||Ta(this);if(this.a.v)return this.a.count.value+=1,this;var a=this.a;a=Object.create(Object.getPrototypeOf(this),{a:{value:{count:a.count,s:a.s,v:a.v,c:a.c,f:a.f,h:a.h,j:a.j}}});a.a.count.value+=1;a.a.s=!1;return a};T.prototype["delete"]=function(){this.a.c||Ta(this);this.a.s&&!this.a.v&&S("Object already scheduled for deletion");--this.a.count.value;if(0===this.a.count.value){var a=this.a;a.h?a.j.m(a.h):a.f.b.m(a.c)}this.a.v||(this.a.h=void 0,this.a.c=void 0)};
-T.prototype.isDeleted=function(){return!this.a.c};T.prototype.deleteLater=function(){this.a.c||Ta(this);this.a.s&&!this.a.v&&S("Object already scheduled for deletion");Va.push(this);1===Va.length&&Ua&&Ua(Wa);this.a.s=!0;return this};W.prototype.X=function(a){this.O&&(a=this.O(a));return a};W.prototype.K=function(a){this.m&&this.m(a)};W.prototype.argPackAdvance=8;W.prototype.readValueFromPointer=L;W.prototype.deleteObject=function(a){if(null!==a)a["delete"]()};
-W.prototype.fromWireType=function(a){function b(){return this.C?hb(this.b.u,{f:this.fa,c:d,j:this,h:a}):hb(this.b.u,{f:this,c:a})}var d=this.X(a);if(!d)return this.K(a),null;var e=gb(this.b,d);if(void 0!==e){if(0===e.a.count.value)return e.a.c=d,e.a.h=a,e.clone();e=e.clone();this.K(a);return e}e=this.b.W(d);e=Xa[e];if(!e)return b.call(this);e=this.B?e.T:e.pointerType;var f=eb(d,this.b,e.b);return null===f?b.call(this):this.C?hb(e.b.u,{f:e,c:f,j:this,h:a}):hb(e.b.u,{f:e,c:f})};
-c.getInheritedInstanceCount=function(){return Object.keys(fb).length};c.getLiveInheritedInstances=function(){var a=[],b;for(b in fb)fb.hasOwnProperty(b)&&a.push(fb[b]);return a};c.flushPendingDeletes=Wa;c.setDelayFunction=function(a){Ua=a;Va.length&&Ua&&Ua(Wa)};jb=c.UnboundTypeError=Oa("UnboundTypeError");c.count_emval_handles=function(){for(var a=0,b=5;b<Z.length;++b)void 0!==Z[b]&&++a;return a};c.get_first_emval=function(){for(var a=5;a<Z.length;++a)if(void 0!==Z[a])return Z[a];return null};assert(!oa);
-var Hb=D;D=D+4+15&-16;ta=Hb;pa=qa=da(D);ra=pa+va;sa=da(ra);A[ta>>2]=sa;oa=!0;c.wasmTableSize=339;c.wasmMaxTableSize=339;c.P={};
-c.R={abort:x,enlargeMemory:function(){ua()},getTotalMemory:function(){return E},abortOnCannotGrowMemory:ua,___cxa_pure_virtual:function(){fa=!0;throw"Pure virtual function called!";},___setErrNo:function(a){c.___errno_location&&(A[c.___errno_location()>>2]=a);return a},___syscall140:function(a,b){I=b;try{var d=Ia.Y();J();var e=J(),f=J(),g=J();FS.ma(d,e,g);A[f>>2]=d.position;d.Z&&0===e&&0===g&&(d.Z=null);return 0}catch(h){return"undefined"!==typeof FS&&h instanceof FS.I||x(h),-h.L}},___syscall146:K,
-___syscall6:function(a,b){I=b;try{var d=Ia.Y();FS.close(d);return 0}catch(e){return"undefined"!==typeof FS&&e instanceof FS.I||x(e),-e.L}},__embind_finalize_value_object:function(a){var b=Ja[a];delete Ja[a];var d=b.G,e=b.m,f=b.M,g=f.map(function(a){return a.ba}).concat(f.map(function(a){return a.ja}));O([a],g,function(a){var g={};f.forEach(function(b,d){var e=a[d],k=b.$,h=b.aa,m=a[d+f.length],l=b.ia,vb=b.ka;g[b.V]={read:function(a){return e.fromWireType(k(h,a))},write:function(a,b){var d=[];l(vb,
-a,m.toWireType(d,b));Ka(d)}}});return[{name:b.name,fromWireType:function(a){var b={},d;for(d in g)b[d]=g[d].read(a);e(a);return b},toWireType:function(a,b){for(var f in g)if(!(f in b))throw new TypeError("Missing field");var k=d();for(f in g)g[f].write(k,b[f]);null!==a&&a.push(e,k);return k},argPackAdvance:8,readValueFromPointer:L,i:e}]})},__embind_register_bool:function(a,b,d,e,f){var g=Ra(d);b=Q(b);P(a,{name:b,fromWireType:function(a){return!!a},toWireType:function(a,b){return b?e:f},argPackAdvance:8,
-readValueFromPointer:function(a){if(1===d)var e=ia;else if(2===d)e=z;else if(4===d)e=A;else throw new TypeError("Unknown boolean type size: "+b);return this.fromWireType(e[a>>g])},i:null})},__embind_register_class:function(a,b,d,e,f,g,h,k,l,m,p,v,Ga){p=Q(p);g=X(f,g);k&&(k=X(h,k));m&&(m=X(l,m));Ga=X(v,Ga);var B=Ma(p);Za(B,function(){mb("Cannot construct "+p+" due to unbound types",[e])});O([a,b,d],e?[e]:[],function(b){b=b[0];if(e){var d=b.b;var f=d.u}else f=T.prototype;b=Na(B,function(){if(Object.getPrototypeOf(this)!==
-h)throw new R("Use 'new' to construct "+p);if(void 0===l.o)throw new R(p+" has no accessible constructor");var a=l.o[arguments.length];if(void 0===a)throw new R("Tried to invoke ctor of "+p+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(l.o).toString()+") parameters instead!");return a.apply(this,arguments)});var h=Object.create(f,{constructor:{value:b}});b.prototype=h;var l=new $a(p,b,h,Ga,d,g,k,m);d=new W(p,l,!0,!1,!1);f=new W(p+"*",l,!1,!1,!1);var v=new W(p+
-" const*",l,!1,!0,!1);Xa[a]={pointerType:f,T:v};ib(B,b);return[d,f,v]})},__embind_register_class_constructor:function(a,b,d,e,f,g){var h=nb(b,d);f=X(e,f);O([],[a],function(a){a=a[0];var d="constructor "+a.name;void 0===a.b.o&&(a.b.o=[]);if(void 0!==a.b.o[b-1])throw new R("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.b.o[b-1]=function(){mb("Cannot construct "+
-a.name+" due to unbound types",h)};O([],h,function(e){a.b.o[b-1]=function(){arguments.length!==b-1&&S(d+" called with "+arguments.length+" arguments, expected "+(b-1));var a=[],k=Array(b);k[0]=g;for(var h=1;h<b;++h)k[h]=e[h].toWireType(a,arguments[h-1]);k=f.apply(null,k);Ka(a);return e[0].fromWireType(k)};return[]});return[]})},__embind_register_class_function:function(a,b,d,e,f,g,h,k){var l=nb(d,e);b=Q(b);g=X(f,g);O([],[a],function(a){function e(){mb("Cannot call "+f+" due to unbound types",l)}a=
-a[0];var f=a.name+"."+b;k&&a.b.ga.push(b);var m=a.b.u,B=m[b];void 0===B||void 0===B.g&&B.className!==a.name&&B.A===d-2?(e.A=d-2,e.className=a.name,m[b]=e):(Ya(m,b,f),m[b].g[d-2]=e);O([],l,function(e){e=pb(f,e,a,g,h);void 0===m[b].g?(e.A=d-2,m[b]=e):m[b].g[d-2]=e;return[]});return[]})},__embind_register_constant:function(a,b,d){a=Q(a);O([],[b],function(b){b=b[0];c[a]=b.fromWireType(d);return[]})},__embind_register_emval:function(a,b){b=Q(b);P(a,{name:b,fromWireType:function(a){var b=Z[a].value;rb(a);
-return b},toWireType:function(a,b){return V(b)},argPackAdvance:8,readValueFromPointer:L,i:null})},__embind_register_enum:function(a,b,d,e){function f(){}d=Ra(d);b=Q(b);f.values={};P(a,{name:b,constructor:f,fromWireType:function(a){return this.constructor.values[a]},toWireType:function(a,b){return b.value},argPackAdvance:8,readValueFromPointer:sb(b,d,e),i:null});Za(b,f)},__embind_register_enum_value:function(a,b,d){var e=tb(a,"enum");b=Q(b);a=e.constructor;e=Object.create(e.constructor.prototype,{value:{value:d},
-constructor:{value:Na(e.name+"_"+b,function(){})}});a.values[d]=e;a[b]=e},__embind_register_float:function(a,b,d){d=Ra(d);b=Q(b);P(a,{name:b,fromWireType:function(a){return a},toWireType:function(a,b){if("number"!==typeof b&&"boolean"!==typeof b)throw new TypeError('Cannot convert "'+U(b)+'" to '+this.name);return b},argPackAdvance:8,readValueFromPointer:wb(b,d),i:null})},__embind_register_function:function(a,b,d,e,f,g){var h=nb(b,d);a=Q(a);f=X(e,f);Za(a,function(){mb("Cannot call "+a+" due to unbound types",
-h)},b-1);O([],h,function(d){d=[d[0],null].concat(d.slice(1));ib(a,pb(a,d,null,f,g),b-1);return[]})},__embind_register_integer:function(a,b,d,e,f){function g(a){return a}b=Q(b);-1===f&&(f=4294967295);var h=Ra(d);if(0===e){var k=32-8*d;g=function(a){return a<<k>>>k}}var l=-1!=b.indexOf("unsigned");P(a,{name:b,fromWireType:g,toWireType:function(a,d){if("number"!==typeof d&&"boolean"!==typeof d)throw new TypeError('Cannot convert "'+U(d)+'" to '+this.name);if(d<e||d>f)throw new TypeError('Passing a number "'+
-U(d)+'" from JS side to C/C++ side to an argument of type "'+b+'", which is outside the valid range ['+e+", "+f+"]!");return l?d>>>0:d|0},argPackAdvance:8,readValueFromPointer:xb(b,h,0!==e),i:null})},__embind_register_memory_view:function(a,b,d){function e(a){a>>=2;var b=C;return new f(b.buffer,b[a+1],b[a])}var f=[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][b];d=Q(d);P(a,{name:d,fromWireType:e,argPackAdvance:8,readValueFromPointer:e},{da:!0})},__embind_register_std_string:function(a,
-b){b=Q(b);P(a,{name:b,fromWireType:function(a){for(var b=C[a>>2],d=Array(b),g=0;g<b;++g)d[g]=String.fromCharCode(y[a+4+g]);Y(a);return d.join("")},toWireType:function(a,b){function d(a,b){return a[b]}function e(a,b){return a.charCodeAt(b)}b instanceof ArrayBuffer&&(b=new Uint8Array(b));var h;b instanceof Uint8Array?h=d:b instanceof Uint8ClampedArray?h=d:b instanceof Int8Array?h=d:"string"===typeof b?h=e:S("Cannot pass non-string to std::string");var k=b.length,l=Ib(4+k);C[l>>2]=k;for(var m=0;m<k;++m){var p=
-h(b,m);255<p&&(Y(l),S("String has UTF-16 code units that do not fit in 8 bits"));y[l+4+m]=p}null!==a&&a.push(Y,l);return l},argPackAdvance:8,readValueFromPointer:L,i:function(a){Y(a)}})},__embind_register_std_wstring:function(a,b,d){d=Q(d);if(2===b){var e=function(){return ja};var f=1}else 4===b&&(e=function(){return C},f=2);P(a,{name:d,fromWireType:function(a){for(var b=e(),d=C[a>>2],g=Array(d),m=a+4>>f,p=0;p<d;++p)g[p]=String.fromCharCode(b[m+p]);Y(a);return g.join("")},toWireType:function(a,d){var g=
-e(),h=d.length,m=Ib(4+h*b);C[m>>2]=h;for(var p=m+4>>f,v=0;v<h;++v)g[p+v]=d.charCodeAt(v);null!==a&&a.push(Y,m);return m},argPackAdvance:8,readValueFromPointer:L,i:function(a){Y(a)}})},__embind_register_value_object:function(a,b,d,e,f,g){Ja[a]={name:Q(b),G:X(d,e),m:X(f,g),M:[]}},__embind_register_value_object_field:function(a,b,d,e,f,g,h,k,l,m){Ja[a].M.push({V:Q(b),ba:d,$:X(e,f),aa:g,ja:h,ia:X(k,l),ka:m})},__embind_register_void:function(a,b){b=Q(b);P(a,{ea:!0,name:b,argPackAdvance:0,fromWireType:function(){},
-toWireType:function(){}})},__emval_as:function(a,b,d){a=yb(a);b=tb(b,"emval::as");var e=[],f=V(e);A[d>>2]=f;return b.toWireType(e,a)},__emval_call_void_method:function(a,b,d,e){a=Bb[a];b=yb(b);d=Ab(d);a(b,d,null,e)},__emval_decref:rb,__emval_get_global:function(a){if(0===a)return V(Function("return this")());a=Ab(a);return V(Function("return this")()[a])},__emval_get_method_caller:function(a,b){b=Db(a,b);for(var d=b[0],e=d.name+"_$"+b.slice(1).map(function(a){return a.name}).join("_")+"$",f=["retType"],
-g=[d],h="",k=0;k<a-1;++k)h+=(0!==k?", ":"")+"arg"+k,f.push("argType"+k),g.push(b[1+k]);e="return function "+Ma("methodCaller_"+e)+"(handle, name, destructors, args) {\n";var l=0;for(k=0;k<a-1;++k)e+="    var arg"+k+" = argType"+k+".readValueFromPointer(args"+(l?"+"+l:"")+");\n",l+=b[k+1].argPackAdvance;e+="    var rv = handle[name]("+h+");\n";for(k=0;k<a-1;++k)b[k+1].deleteObject&&(e+="    argType"+k+".deleteObject(arg"+k+");\n");d.ea||(e+="    return retType.toWireType(destructors, rv);\n");f.push(e+
-"};\n");a=ob(f).apply(null,g);return Cb(a)},__emval_get_property:function(a,b){a=yb(a);b=yb(b);return V(a[b])},__emval_incref:function(a){4<a&&(Z[a].H+=1)},__emval_new:function(a,b,d,e){a=yb(a);var f=Eb[b];if(!f){f="";for(var g=0;g<b;++g)f+=(0!==g?", ":"")+"arg"+g;var h="return function emval_allocator_"+b+"(constructor, argTypes, args) {\n";for(g=0;g<b;++g)h+="var argType"+g+" = requireRegisteredType(HEAP32[(argTypes >> 2) + "+g+'], "parameter '+g+'");\nvar arg'+g+" = argType"+g+".readValueFromPointer(args);\nargs += argType"+
-g+"['argPackAdvance'];\n";f=(new Function("requireRegisteredType","HEAP32","__emval_register",h+("var obj = new constructor("+f+");\nreturn __emval_register(obj);\n}\n")))(tb,A,V);Eb[b]=f}return f(a,d,e)},__emval_new_array:function(){return V([])},__emval_new_cstring:function(a){return V(Ab(a))},__emval_run_destructors:function(a){Ka(Z[a].value);rb(a)},__emval_take_value:function(a,b){a=tb(a,"_emval_take_value");a=a.readValueFromPointer(b);return V(a)},_abort:function(){c.abort()},_emscripten_memcpy_big:function(a,
-b,d){y.set(y.subarray(b,b+d),a);return a},_llvm_trap:function(){x("trap!")},DYNAMICTOP_PTR:ta,STACKTOP:qa};var Jb=c.asm(c.P,c.R,buffer);c.asm=Jb;var Ha=c.__GLOBAL__sub_I_bind_cpp=function(){return c.asm.__GLOBAL__sub_I_bind_cpp.apply(null,arguments)},Fa=c.__GLOBAL__sub_I_pathkit_wasm_bindings_cpp=function(){return c.asm.__GLOBAL__sub_I_pathkit_wasm_bindings_cpp.apply(null,arguments)};c.__Z11ApplyPathOpRK6SkPathS1_8SkPathOp=function(){return c.asm.__Z11ApplyPathOpRK6SkPathS1_8SkPathOp.apply(null,arguments)};
-c.__Z11ToSVGStringRK6SkPath=function(){return c.asm.__Z11ToSVGStringRK6SkPath.apply(null,arguments)};c.__Z12SimplifyPathRK6SkPath=function(){return c.asm.__Z12SimplifyPathRK6SkPath.apply(null,arguments)};c.__Z13FromSVGStringNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEE=function(){return c.asm.__Z13FromSVGStringNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEE.apply(null,arguments)};
-c.__Z14ResolveBuilderR11SkOpBuilder=function(){return c.asm.__Z14ResolveBuilderR11SkOpBuilder.apply(null,arguments)};c.__Z6ToCmdsRK6SkPath=function(){return c.asm.__Z6ToCmdsRK6SkPath.apply(null,arguments)};c.__Z7NewPathv=function(){return c.asm.__Z7NewPathv.apply(null,arguments)};c.__Z8FromCmdsji=function(){return c.asm.__Z8FromCmdsji.apply(null,arguments)};c.__Z8ToCanvasRK6SkPathN10emscripten3valE=function(){return c.asm.__Z8ToCanvasRK6SkPathN10emscripten3valE.apply(null,arguments)};
-c.__Z8ToPath2DRK6SkPath=function(){return c.asm.__Z8ToPath2DRK6SkPath.apply(null,arguments)};var lb=c.___getTypeName=function(){return c.asm.___getTypeName.apply(null,arguments)},Y=c._free=function(){return c.asm._free.apply(null,arguments)},Ib=c._malloc=function(){return c.asm._malloc.apply(null,arguments)};c.dynCall_fi=function(){return c.asm.dynCall_fi.apply(null,arguments)};c.dynCall_fii=function(){return c.asm.dynCall_fii.apply(null,arguments)};
-c.dynCall_i=function(){return c.asm.dynCall_i.apply(null,arguments)};c.dynCall_ii=function(){return c.asm.dynCall_ii.apply(null,arguments)};c.dynCall_iiffff=function(){return c.asm.dynCall_iiffff.apply(null,arguments)};c.dynCall_iiffi=function(){return c.asm.dynCall_iiffi.apply(null,arguments)};c.dynCall_iii=function(){return c.asm.dynCall_iii.apply(null,arguments)};c.dynCall_iiiff=function(){return c.asm.dynCall_iiiff.apply(null,arguments)};
-c.dynCall_iiifff=function(){return c.asm.dynCall_iiifff.apply(null,arguments)};c.dynCall_iiiffi=function(){return c.asm.dynCall_iiiffi.apply(null,arguments)};c.dynCall_iiifii=function(){return c.asm.dynCall_iiifii.apply(null,arguments)};c.dynCall_iiii=function(){return c.asm.dynCall_iiii.apply(null,arguments)};c.dynCall_iiiii=function(){return c.asm.dynCall_iiiii.apply(null,arguments)};c.dynCall_iiiiii=function(){return c.asm.dynCall_iiiiii.apply(null,arguments)};
-c.dynCall_iiiiiii=function(){return c.asm.dynCall_iiiiiii.apply(null,arguments)};c.dynCall_v=function(){return c.asm.dynCall_v.apply(null,arguments)};c.dynCall_vi=function(){return c.asm.dynCall_vi.apply(null,arguments)};c.dynCall_vif=function(){return c.asm.dynCall_vif.apply(null,arguments)};c.dynCall_viff=function(){return c.asm.dynCall_viff.apply(null,arguments)};c.dynCall_viffff=function(){return c.asm.dynCall_viffff.apply(null,arguments)};
-c.dynCall_vifffff=function(){return c.asm.dynCall_vifffff.apply(null,arguments)};c.dynCall_viffffff=function(){return c.asm.dynCall_viffffff.apply(null,arguments)};c.dynCall_vifffffff=function(){return c.asm.dynCall_vifffffff.apply(null,arguments)};c.dynCall_vifffffffi=function(){return c.asm.dynCall_vifffffffi.apply(null,arguments)};c.dynCall_vifffffi=function(){return c.asm.dynCall_vifffffi.apply(null,arguments)};c.dynCall_viffi=function(){return c.asm.dynCall_viffi.apply(null,arguments)};
-c.dynCall_vifii=function(){return c.asm.dynCall_vifii.apply(null,arguments)};c.dynCall_vii=function(){return c.asm.dynCall_vii.apply(null,arguments)};c.dynCall_viid=function(){return c.asm.dynCall_viid.apply(null,arguments)};c.dynCall_viif=function(){return c.asm.dynCall_viif.apply(null,arguments)};c.dynCall_viifd=function(){return c.asm.dynCall_viifd.apply(null,arguments)};c.dynCall_viiff=function(){return c.asm.dynCall_viiff.apply(null,arguments)};
-c.dynCall_viifff=function(){return c.asm.dynCall_viifff.apply(null,arguments)};c.dynCall_viiffff=function(){return c.asm.dynCall_viiffff.apply(null,arguments)};c.dynCall_viifffff=function(){return c.asm.dynCall_viifffff.apply(null,arguments)};c.dynCall_viiffffff=function(){return c.asm.dynCall_viiffffff.apply(null,arguments)};c.dynCall_viifffffff=function(){return c.asm.dynCall_viifffffff.apply(null,arguments)};c.dynCall_viifffffffff=function(){return c.asm.dynCall_viifffffffff.apply(null,arguments)};
-c.dynCall_viifffffffi=function(){return c.asm.dynCall_viifffffffi.apply(null,arguments)};c.dynCall_viifffffi=function(){return c.asm.dynCall_viifffffi.apply(null,arguments)};c.dynCall_viiffi=function(){return c.asm.dynCall_viiffi.apply(null,arguments)};c.dynCall_viifii=function(){return c.asm.dynCall_viifii.apply(null,arguments)};c.dynCall_viii=function(){return c.asm.dynCall_viii.apply(null,arguments)};c.dynCall_viiiffffff=function(){return c.asm.dynCall_viiiffffff.apply(null,arguments)};
-c.dynCall_viiifffffffff=function(){return c.asm.dynCall_viiifffffffff.apply(null,arguments)};c.dynCall_viiii=function(){return c.asm.dynCall_viiii.apply(null,arguments)};c.dynCall_viiiii=function(){return c.asm.dynCall_viiiii.apply(null,arguments)};c.dynCall_viiiiiffii=function(){return c.asm.dynCall_viiiiiffii.apply(null,arguments)};c.asm=Jb;c.then=function(a){if(c.calledRun)a(c);else{var b=c.onRuntimeInitialized;c.onRuntimeInitialized=function(){b&&b();a(c)}}return c};
-function w(a){this.name="ExitStatus";this.message="Program terminated with exit("+a+")";this.status=a}w.prototype=Error();w.prototype.constructor=w;H=function Kb(){c.calledRun||Lb();c.calledRun||(H=Kb)};
-function Lb(){function a(){if(!c.calledRun&&(c.calledRun=!0,!fa)){Ba||(Ba=!0,F(xa));F(ya);if(c.onRuntimeInitialized)c.onRuntimeInitialized();if(c.postRun)for("function"==typeof c.postRun&&(c.postRun=[c.postRun]);c.postRun.length;){var a=c.postRun.shift();Aa.unshift(a)}F(Aa)}}if(!(0<G)){if(c.preRun)for("function"==typeof c.preRun&&(c.preRun=[c.preRun]);c.preRun.length;)Ca();F(wa);0<G||c.calledRun||(c.setStatus?(c.setStatus("Running..."),setTimeout(function(){setTimeout(function(){c.setStatus("")},
-1);a()},1)):a())}}c.run=Lb;c.exit=function(a,b){if(!b||!c.noExitRuntime||0!==a){if(!c.noExitRuntime&&(fa=!0,qa=void 0,F(za),c.onExit))c.onExit(a);u&&process.exit(a);c.quit(a,new w(a))}};function x(a){if(c.onAbort)c.onAbort(a);void 0!==a?(c.print(a),c.printErr(a),a=JSON.stringify(a)):a="";fa=!0;throw"abort("+a+"). Build with -s ASSERTIONS=1 for more info.";}c.abort=x;if(c.preInit)for("function"==typeof c.preInit&&(c.preInit=[c.preInit]);0<c.preInit.length;)c.preInit.pop()();c.noExitRuntime=!0;Lb();
+function Oa(a){var b=Error,c=Na(a,function(b){this.name=a;this.message=b;b=Error(b).stack;void 0!==b&&(this.stack=this.toString()+"\n"+b.replace(/^Error(:[^\n]*)?\n/,""))});c.prototype=Object.create(b.prototype);c.prototype.constructor=c;c.prototype.toString=function(){return void 0===this.message?this.name:this.name+": "+this.message};return c}var Pa=void 0;function Qa(a){throw new Pa(a);}
+function O(a,b,c){function e(b){b=c(b);b.length!==a.length&&Qa("Mismatched type converter count");for(var e=0;e<a.length;++e)P(a[e],b[e])}a.forEach(function(a){La[a]=b});var f=Array(b.length),g=[],h=0;b.forEach(function(a,b){N.hasOwnProperty(a)?f[b]=N[a]:(g.push(a),M.hasOwnProperty(a)||(M[a]=[]),M[a].push(function(){f[b]=N[a];++h;h===g.length&&e(f)}))});0===g.length&&e(f)}var Ra={};
+function Sa(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);}}var Ta=void 0;function Q(a){for(var b="";y[a];)b+=Ta[y[a++]];return b}var R=void 0;function S(a){throw new R(a);}
+function P(a,b,c){c=c||{};if(!("argPackAdvance"in b))throw new TypeError("registerType registeredInstance requires argPackAdvance");var e=b.name;a||S('type "'+e+'" must have a positive integer typeid pointer');if(N.hasOwnProperty(a)){if(c.ka)return;S("Cannot register type '"+e+"' twice")}N[a]=b;delete La[a];M.hasOwnProperty(a)&&(b=M[a],delete M[a],b.forEach(function(a){a()}))}function Ua(a){S(a.g.j.h.name+" instance already deleted")}var Va=void 0,Wa=[];
+function Xa(){for(;Wa.length;){var a=Wa.pop();a.g.A=!1;a["delete"]()}}function T(){}var Ya={};function Za(a,b,c){if(void 0===a[b].l){var e=a[b];a[b]=function(){a[b].l.hasOwnProperty(arguments.length)||S("Function '"+c+"' called with an invalid number of arguments ("+arguments.length+") - expects one of ("+a[b].l+")!");return a[b].l[arguments.length].apply(this,arguments)};a[b].l=[];a[b].l[e.G]=e}}
+function $a(a,b,c){d.hasOwnProperty(a)?((void 0===c||void 0!==d[a].l&&void 0!==d[a].l[c])&&S("Cannot register public name '"+a+"' twice"),Za(d,a,a),d.hasOwnProperty(c)&&S("Cannot register multiple overloads of a function with the same number of arguments ("+c+")!"),d[a].l[c]=b):(d[a]=b,void 0!==c&&(d[a].ra=c))}function ab(a,b,c,e,f,g,h,k){this.name=a;this.constructor=b;this.B=c;this.s=e;this.v=f;this.fa=g;this.F=h;this.da=k;this.na=[]}
+function bb(a,b,c){for(;b!==c;)b.F||S("Expected null or instance of "+c.name+", got an instance of "+b.name),a=b.F(a),b=b.v;return a}function cb(a,b){if(null===b)return this.O&&S("null is not a valid "+this.name),0;b.g||S('Cannot pass "'+U(b)+'" as a '+this.name);b.g.i||S("Cannot pass deleted object as a pointer of type "+this.name);return bb(b.g.i,b.g.j.h,this.h)}
+function db(a,b){if(null===b){this.O&&S("null is not a valid "+this.name);if(this.J){var c=this.D();null!==a&&a.push(this.s,c);return c}return 0}b.g||S('Cannot pass "'+U(b)+'" as a '+this.name);b.g.i||S("Cannot pass deleted object as a pointer of type "+this.name);!this.I&&b.g.j.I&&S("Cannot convert argument of type "+(b.g.u?b.g.u.name:b.g.j.name)+" to parameter type "+this.name);c=bb(b.g.i,b.g.j.h,this.h);if(this.J)switch(void 0===b.g.o&&S("Passing raw pointer to smart pointer is illegal"),this.pa){case 0:b.g.u===
+this?c=b.g.o:S("Cannot convert argument of type "+(b.g.u?b.g.u.name:b.g.j.name)+" to parameter type "+this.name);break;case 1:c=b.g.o;break;case 2:if(b.g.u===this)c=b.g.o;else{var e=b.clone();c=this.oa(c,V(function(){e["delete"]()}));null!==a&&a.push(this.s,c)}break;default:S("Unsupporting sharing policy")}return c}
+function eb(a,b){if(null===b)return this.O&&S("null is not a valid "+this.name),0;b.g||S('Cannot pass "'+U(b)+'" as a '+this.name);b.g.i||S("Cannot pass deleted object as a pointer of type "+this.name);b.g.j.I&&S("Cannot convert argument of type "+b.g.j.name+" to parameter type "+this.name);return bb(b.g.i,b.g.j.h,this.h)}function fb(a,b,c){if(b===c)return a;if(void 0===c.v)return null;a=fb(a,b,c.v);return null===a?null:c.da(a)}var gb={};
+function hb(a,b){for(void 0===b&&S("ptr should not be undefined");a.v;)b=a.F(b),a=a.v;return gb[b]}function ib(a,b){b.j&&b.i||Qa("makeClassHandle requires ptr and ptrType");!!b.u!==!!b.o&&Qa("Both smartPtrType and smartPtr must be specified");b.count={value:1};return Object.create(a,{g:{value:b}})}
+function W(a,b,c,e,f,g,h,k,l,m,p){this.name=a;this.h=b;this.O=c;this.I=e;this.J=f;this.ma=g;this.pa=h;this.Z=k;this.D=l;this.oa=m;this.s=p;f||void 0!==b.v?this.toWireType=db:(this.toWireType=e?cb:eb,this.m=null)}function jb(a,b,c){d.hasOwnProperty(a)||Qa("Replacing nonexistant public symbol");void 0!==d[a].l&&void 0!==c?d[a].l[c]=b:(d[a]=b,d[a].G=c)}
+function X(a,b){a=Q(a);if(void 0!==d["FUNCTION_TABLE_"+a])var c=d["FUNCTION_TABLE_"+a][b];else if("undefined"!==typeof FUNCTION_TABLE)c=FUNCTION_TABLE[b];else{c=d.asm["dynCall_"+a];void 0===c&&(c=d.asm["dynCall_"+a.replace(/f/g,"d")],void 0===c&&S("No dynCall invoker for signature: "+a));for(var e=[],f=1;f<a.length;++f)e.push("a"+f);f="return function "+("dynCall_"+a+"_"+b)+"("+e.join(", ")+") {\n";f+="    return dynCall(rawFunction"+(e.length?", ":"")+e.join(", ")+");\n";c=(new Function("dynCall",
+"rawFunction",f+"};\n"))(c,b)}"function"!==typeof c&&S("unknown function pointer with signature "+a+": "+b);return c}var kb=void 0;function lb(a){a=mb(a);var b=Q(a);Y(a);return b}function nb(a,b){function c(a){f[a]||N[a]||(La[a]?La[a].forEach(c):(e.push(a),f[a]=!0))}var e=[],f={};b.forEach(c);throw new kb(a+": "+e.map(lb).join([", "]));}function ob(a,b){for(var c=[],e=0;e<a;e++)c.push(B[(b>>2)+e]);return c}
+function pb(a){var b=Function;if(!(b instanceof Function))throw new TypeError("new_ called with constructor type "+typeof b+" which is not a function");var c=Na(b.name||"unknownFunctionName",function(){});c.prototype=b.prototype;c=new c;a=b.apply(c,a);return a instanceof Object?a:c}
+function qb(a,b,c,e,f){var g=b.length;2>g&&S("argTypes array size mismatch! Must at least get return value and 'this' types!");var h=null!==b[1]&&null!==c,k=!1;for(c=1;c<b.length;++c)if(null!==b[c]&&void 0===b[c].m){k=!0;break}var l="void"!==b[0].name,m="",p="";for(c=0;c<g-2;++c)m+=(0!==c?", ":"")+"arg"+c,p+=(0!==c?", ":"")+"arg"+c+"Wired";a="return function "+Ma(a)+"("+m+") {\nif (arguments.length !== "+(g-2)+") {\nthrowBindingError('function "+a+" called with ' + arguments.length + ' arguments, expected "+
+(g-2)+" args!');\n}\n";k&&(a+="var destructors = [];\n");var w=k?"destructors":"null";m="throwBindingError invoker fn runDestructors retType classParam".split(" ");e=[S,e,f,Ka,b[0],b[1]];h&&(a+="var thisWired = classParam.toWireType("+w+", this);\n");for(c=0;c<g-2;++c)a+="var arg"+c+"Wired = argType"+c+".toWireType("+w+", arg"+c+"); // "+b[c+2].name+"\n",m.push("argType"+c),e.push(b[c+2]);h&&(p="thisWired"+(0<p.length?", ":"")+p);a+=(l?"var rv = ":"")+"invoker(fn"+(0<p.length?", ":"")+p+");\n";if(k)a+=
+"runDestructors(destructors);\n";else for(c=h?1:2;c<b.length;++c)g=1===c?"thisWired":"arg"+(c-2)+"Wired",null!==b[c].m&&(a+=g+"_dtor("+g+"); // "+b[c].name+"\n",m.push(g+"_dtor"),e.push(b[c].m));l&&(a+="var ret = retType.fromWireType(rv);\nreturn ret;\n");m.push(a+"}\n");return pb(m).apply(null,e)}var rb=[],Z=[{},{value:void 0},{value:null},{value:!0},{value:!1}];function sb(a){4<a&&0===--Z[a].P&&(Z[a]=void 0,rb.push(a))}
+function V(a){switch(a){case void 0:return 1;case null:return 2;case !0:return 3;case !1:return 4;default:var b=rb.length?rb.pop():Z.length;Z[b]={P:1,value:a};return b}}function tb(a,b,c){switch(b){case 0:return function(a){return this.fromWireType((c?ia:y)[a])};case 1:return function(a){return this.fromWireType((c?z:ja)[a>>1])};case 2:return function(a){return this.fromWireType((c?B:C)[a>>2])};default:throw new TypeError("Unknown integer type: "+a);}}
+function ub(a,b){var c=N[a];void 0===c&&S(b+" has unknown type "+lb(a));return c}function U(a){if(null===a)return"null";var b=typeof a;return"object"===b||"array"===b||"function"===b?a.toString():""+a}function xb(a,b){switch(b){case 2:return function(a){return this.fromWireType(ka[a>>2])};case 3:return function(a){return this.fromWireType(la[a>>3])};default:throw new TypeError("Unknown float type: "+a);}}
+function yb(a,b,c){switch(b){case 0:return c?function(a){return ia[a]}:function(a){return y[a]};case 1:return c?function(a){return z[a>>1]}:function(a){return ja[a>>1]};case 2:return c?function(a){return B[a>>2]}:function(a){return C[a>>2]};default:throw new TypeError("Unknown integer type: "+a);}}var zb={};function Ab(a){var b=zb[a];return void 0===b?Q(a):b}var Bb=[];function Cb(a){a||S("Cannot use deleted val. handle = "+a);return Z[a].value}function Db(a){var b=Bb.length;Bb.push(a);return b}
+function Eb(a,b){for(var c=Array(a),e=0;e<a;++e)c[e]=ub(B[(b>>2)+e],"parameter "+e);return c}var Fb={};Pa=d.InternalError=Oa("InternalError");for(var Gb=Array(256),Hb=0;256>Hb;++Hb)Gb[Hb]=String.fromCharCode(Hb);Ta=Gb;R=d.BindingError=Oa("BindingError");T.prototype.isAliasOf=function(a){if(!(this instanceof T&&a instanceof T))return!1;var b=this.g.j.h,c=this.g.i,e=a.g.j.h;for(a=a.g.i;b.v;)c=b.F(c),b=b.v;for(;e.v;)a=e.F(a),e=e.v;return b===e&&c===a};
+T.prototype.clone=function(){this.g.i||Ua(this);if(this.g.C)return this.g.count.value+=1,this;var a=this.g;a=Object.create(Object.getPrototypeOf(this),{g:{value:{count:a.count,A:a.A,C:a.C,i:a.i,j:a.j,o:a.o,u:a.u}}});a.g.count.value+=1;a.g.A=!1;return a};T.prototype["delete"]=function(){this.g.i||Ua(this);this.g.A&&!this.g.C&&S("Object already scheduled for deletion");--this.g.count.value;if(0===this.g.count.value){var a=this.g;a.o?a.u.s(a.o):a.j.h.s(a.i)}this.g.C||(this.g.o=void 0,this.g.i=void 0)};
+T.prototype.isDeleted=function(){return!this.g.i};T.prototype.deleteLater=function(){this.g.i||Ua(this);this.g.A&&!this.g.C&&S("Object already scheduled for deletion");Wa.push(this);1===Wa.length&&Va&&Va(Xa);this.g.A=!0;return this};W.prototype.ga=function(a){this.Z&&(a=this.Z(a));return a};W.prototype.V=function(a){this.s&&this.s(a)};W.prototype.argPackAdvance=8;W.prototype.readValueFromPointer=L;W.prototype.deleteObject=function(a){if(null!==a)a["delete"]()};
+W.prototype.fromWireType=function(a){function b(){return this.J?ib(this.h.B,{j:this.ma,i:c,u:this,o:a}):ib(this.h.B,{j:this,i:a})}var c=this.ga(a);if(!c)return this.V(a),null;var e=hb(this.h,c);if(void 0!==e){if(0===e.g.count.value)return e.g.i=c,e.g.o=a,e.clone();e=e.clone();this.V(a);return e}e=this.h.fa(c);e=Ya[e];if(!e)return b.call(this);e=this.I?e.ba:e.pointerType;var f=fb(c,this.h,e.h);return null===f?b.call(this):this.J?ib(e.h.B,{j:e,i:f,u:this,o:a}):ib(e.h.B,{j:e,i:f})};
+d.getInheritedInstanceCount=function(){return Object.keys(gb).length};d.getLiveInheritedInstances=function(){var a=[],b;for(b in gb)gb.hasOwnProperty(b)&&a.push(gb[b]);return a};d.flushPendingDeletes=Xa;d.setDelayFunction=function(a){Va=a;Wa.length&&Va&&Va(Xa)};kb=d.UnboundTypeError=Oa("UnboundTypeError");d.count_emval_handles=function(){for(var a=0,b=5;b<Z.length;++b)void 0!==Z[b]&&++a;return a};d.get_first_emval=function(){for(var a=5;a<Z.length;++a)if(void 0!==Z[a])return Z[a];return null};assert(!oa);
+var Ib=D;D=D+4+15&-16;ta=Ib;pa=qa=da(D);ra=pa+va;sa=da(ra);B[ta>>2]=sa;oa=!0;d.wasmTableSize=363;d.wasmMaxTableSize=363;d.$={};
+d.aa={abort:x,enlargeMemory:function(){ua()},getTotalMemory:function(){return E},abortOnCannotGrowMemory:ua,___cxa_pure_virtual:function(){fa=!0;throw"Pure virtual function called!";},___setErrNo:function(a){d.___errno_location&&(B[d.___errno_location()>>2]=a);return a},___syscall140:function(a,b){I=b;try{var c=Ia.ha();J();var e=J(),f=J(),g=J();FS.qa(c,e,g);B[f>>2]=c.position;c.ia&&0===e&&0===g&&(c.ia=null);return 0}catch(h){return"undefined"!==typeof FS&&h instanceof FS.U||x(h),-h.W}},___syscall146:K,
+___syscall6:function(a,b){I=b;try{var c=Ia.ha();FS.close(c);return 0}catch(e){return"undefined"!==typeof FS&&e instanceof FS.U||x(e),-e.W}},__embind_finalize_value_array:function(a){var b=Ja[a];delete Ja[a];var c=b.elements,e=c.length,f=c.map(function(a){return a.N}).concat(c.map(function(a){return a.S})),g=b.D,h=b.s;O([a],f,function(a){c.forEach(function(b,c){var f=a[c],g=b.L,k=b.M,h=a[c+e],l=b.R,m=b.T;b.read=function(a){return f.fromWireType(g(k,a))};b.write=function(a,b){var c=[];l(m,a,h.toWireType(c,
+b));Ka(c)}});return[{name:b.name,fromWireType:function(a){for(var b=Array(e),f=0;f<e;++f)b[f]=c[f].read(a);h(a);return b},toWireType:function(a,f){if(e!==f.length)throw new TypeError("Incorrect number of tuple elements for "+b.name+": expected="+e+", actual="+f.length);for(var k=g(),l=0;l<e;++l)c[l].write(k,f[l]);null!==a&&a.push(h,k);return k},argPackAdvance:8,readValueFromPointer:L,m:h}]})},__embind_finalize_value_object:function(a){var b=Ra[a];delete Ra[a];var c=b.D,e=b.s,f=b.X,g=f.map(function(a){return a.N}).concat(f.map(function(a){return a.S}));
+O([a],g,function(a){var g={};f.forEach(function(b,c){var e=a[c],k=b.L,h=b.M,l=a[c+f.length],m=b.R,wb=b.T;g[b.ea]={read:function(a){return e.fromWireType(k(h,a))},write:function(a,b){var c=[];m(wb,a,l.toWireType(c,b));Ka(c)}}});return[{name:b.name,fromWireType:function(a){var b={},c;for(c in g)b[c]=g[c].read(a);e(a);return b},toWireType:function(a,b){for(var f in g)if(!(f in b))throw new TypeError("Missing field");var k=c();for(f in g)g[f].write(k,b[f]);null!==a&&a.push(e,k);return k},argPackAdvance:8,
+readValueFromPointer:L,m:e}]})},__embind_register_bool:function(a,b,c,e,f){var g=Sa(c);b=Q(b);P(a,{name:b,fromWireType:function(a){return!!a},toWireType:function(a,b){return b?e:f},argPackAdvance:8,readValueFromPointer:function(a){if(1===c)var e=ia;else if(2===c)e=z;else if(4===c)e=B;else throw new TypeError("Unknown boolean type size: "+b);return this.fromWireType(e[a>>g])},m:null})},__embind_register_class:function(a,b,c,e,f,g,h,k,l,m,p,w,Ga){p=Q(p);g=X(f,g);k&&(k=X(h,k));m&&(m=X(l,m));Ga=X(w,Ga);
+var A=Ma(p);$a(A,function(){nb("Cannot construct "+p+" due to unbound types",[e])});O([a,b,c],e?[e]:[],function(b){b=b[0];if(e){var c=b.h;var f=c.B}else f=T.prototype;b=Na(A,function(){if(Object.getPrototypeOf(this)!==h)throw new R("Use 'new' to construct "+p);if(void 0===l.w)throw new R(p+" has no accessible constructor");var a=l.w[arguments.length];if(void 0===a)throw new R("Tried to invoke ctor of "+p+" with invalid number of parameters ("+arguments.length+") - expected ("+Object.keys(l.w).toString()+
+") parameters instead!");return a.apply(this,arguments)});var h=Object.create(f,{constructor:{value:b}});b.prototype=h;var l=new ab(p,b,h,Ga,c,g,k,m);c=new W(p,l,!0,!1,!1);f=new W(p+"*",l,!1,!1,!1);var w=new W(p+" const*",l,!1,!0,!1);Ya[a]={pointerType:f,ba:w};jb(A,b);return[c,f,w]})},__embind_register_class_constructor:function(a,b,c,e,f,g){var h=ob(b,c);f=X(e,f);O([],[a],function(a){a=a[0];var c="constructor "+a.name;void 0===a.h.w&&(a.h.w=[]);if(void 0!==a.h.w[b-1])throw new R("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.h.w[b-1]=function(){nb("Cannot construct "+a.name+" due to unbound types",h)};O([],h,function(e){a.h.w[b-1]=function(){arguments.length!==b-1&&S(c+" called with "+arguments.length+" arguments, expected "+(b-1));var a=[],h=Array(b);h[0]=g;for(var k=1;k<b;++k)h[k]=e[k].toWireType(a,arguments[k-1]);h=f.apply(null,h);Ka(a);return e[0].fromWireType(h)};return[]});return[]})},
+__embind_register_class_function:function(a,b,c,e,f,g,h,k){var l=ob(c,e);b=Q(b);g=X(f,g);O([],[a],function(a){function e(){nb("Cannot call "+f+" due to unbound types",l)}a=a[0];var f=a.name+"."+b;k&&a.h.na.push(b);var m=a.h.B,A=m[b];void 0===A||void 0===A.l&&A.className!==a.name&&A.G===c-2?(e.G=c-2,e.className=a.name,m[b]=e):(Za(m,b,f),m[b].l[c-2]=e);O([],l,function(e){e=qb(f,e,a,g,h);void 0===m[b].l?(e.G=c-2,m[b]=e):m[b].l[c-2]=e;return[]});return[]})},__embind_register_constant:function(a,b,c){a=
+Q(a);O([],[b],function(b){b=b[0];d[a]=b.fromWireType(c);return[]})},__embind_register_emval:function(a,b){b=Q(b);P(a,{name:b,fromWireType:function(a){var b=Z[a].value;sb(a);return b},toWireType:function(a,b){return V(b)},argPackAdvance:8,readValueFromPointer:L,m:null})},__embind_register_enum:function(a,b,c,e){function f(){}c=Sa(c);b=Q(b);f.values={};P(a,{name:b,constructor:f,fromWireType:function(a){return this.constructor.values[a]},toWireType:function(a,b){return b.value},argPackAdvance:8,readValueFromPointer:tb(b,
+c,e),m:null});$a(b,f)},__embind_register_enum_value:function(a,b,c){var e=ub(a,"enum");b=Q(b);a=e.constructor;e=Object.create(e.constructor.prototype,{value:{value:c},constructor:{value:Na(e.name+"_"+b,function(){})}});a.values[c]=e;a[b]=e},__embind_register_float:function(a,b,c){c=Sa(c);b=Q(b);P(a,{name:b,fromWireType:function(a){return a},toWireType:function(a,b){if("number"!==typeof b&&"boolean"!==typeof b)throw new TypeError('Cannot convert "'+U(b)+'" to '+this.name);return b},argPackAdvance:8,
+readValueFromPointer:xb(b,c),m:null})},__embind_register_function:function(a,b,c,e,f,g){var h=ob(b,c);a=Q(a);f=X(e,f);$a(a,function(){nb("Cannot call "+a+" due to unbound types",h)},b-1);O([],h,function(c){c=[c[0],null].concat(c.slice(1));jb(a,qb(a,c,null,f,g),b-1);return[]})},__embind_register_integer:function(a,b,c,e,f){function g(a){return a}b=Q(b);-1===f&&(f=4294967295);var h=Sa(c);if(0===e){var k=32-8*c;g=function(a){return a<<k>>>k}}var l=-1!=b.indexOf("unsigned");P(a,{name:b,fromWireType:g,
+toWireType:function(a,c){if("number"!==typeof c&&"boolean"!==typeof c)throw new TypeError('Cannot convert "'+U(c)+'" to '+this.name);if(c<e||c>f)throw new TypeError('Passing a number "'+U(c)+'" from JS side to C/C++ side to an argument of type "'+b+'", which is outside the valid range ['+e+", "+f+"]!");return l?c>>>0:c|0},argPackAdvance:8,readValueFromPointer:yb(b,h,0!==e),m:null})},__embind_register_memory_view:function(a,b,c){function e(a){a>>=2;var b=C;return new f(b.buffer,b[a+1],b[a])}var f=
+[Int8Array,Uint8Array,Int16Array,Uint16Array,Int32Array,Uint32Array,Float32Array,Float64Array][b];c=Q(c);P(a,{name:c,fromWireType:e,argPackAdvance:8,readValueFromPointer:e},{ka:!0})},__embind_register_std_string:function(a,b){b=Q(b);P(a,{name:b,fromWireType:function(a){for(var b=C[a>>2],c=Array(b),g=0;g<b;++g)c[g]=String.fromCharCode(y[a+4+g]);Y(a);return c.join("")},toWireType:function(a,b){function c(a,b){return a[b]}function e(a,b){return a.charCodeAt(b)}b instanceof ArrayBuffer&&(b=new Uint8Array(b));
+var h;b instanceof Uint8Array?h=c:b instanceof Uint8ClampedArray?h=c:b instanceof Int8Array?h=c:"string"===typeof b?h=e:S("Cannot pass non-string to std::string");var k=b.length,l=Jb(4+k);C[l>>2]=k;for(var m=0;m<k;++m){var p=h(b,m);255<p&&(Y(l),S("String has UTF-16 code units that do not fit in 8 bits"));y[l+4+m]=p}null!==a&&a.push(Y,l);return l},argPackAdvance:8,readValueFromPointer:L,m:function(a){Y(a)}})},__embind_register_std_wstring:function(a,b,c){c=Q(c);if(2===b){var e=function(){return ja};
+var f=1}else 4===b&&(e=function(){return C},f=2);P(a,{name:c,fromWireType:function(a){for(var b=e(),c=C[a>>2],g=Array(c),m=a+4>>f,p=0;p<c;++p)g[p]=String.fromCharCode(b[m+p]);Y(a);return g.join("")},toWireType:function(a,c){var g=e(),h=c.length,m=Jb(4+h*b);C[m>>2]=h;for(var p=m+4>>f,w=0;w<h;++w)g[p+w]=c.charCodeAt(w);null!==a&&a.push(Y,m);return m},argPackAdvance:8,readValueFromPointer:L,m:function(a){Y(a)}})},__embind_register_value_array:function(a,b,c,e,f,g){Ja[a]={name:Q(b),D:X(c,e),s:X(f,g),
+elements:[]}},__embind_register_value_array_element:function(a,b,c,e,f,g,h,k,l){Ja[a].elements.push({N:b,L:X(c,e),M:f,S:g,R:X(h,k),T:l})},__embind_register_value_object:function(a,b,c,e,f,g){Ra[a]={name:Q(b),D:X(c,e),s:X(f,g),X:[]}},__embind_register_value_object_field:function(a,b,c,e,f,g,h,k,l,m){Ra[a].X.push({ea:Q(b),N:c,L:X(e,f),M:g,S:h,R:X(k,l),T:m})},__embind_register_void:function(a,b){b=Q(b);P(a,{la:!0,name:b,argPackAdvance:0,fromWireType:function(){},toWireType:function(){}})},__emval_call_void_method:function(a,
+b,c,e){a=Bb[a];b=Cb(b);c=Ab(c);a(b,c,null,e)},__emval_decref:sb,__emval_get_global:function(a){if(0===a)return V(Function("return this")());a=Ab(a);return V(Function("return this")()[a])},__emval_get_method_caller:function(a,b){b=Eb(a,b);for(var c=b[0],e=c.name+"_$"+b.slice(1).map(function(a){return a.name}).join("_")+"$",f=["retType"],g=[c],h="",k=0;k<a-1;++k)h+=(0!==k?", ":"")+"arg"+k,f.push("argType"+k),g.push(b[1+k]);e="return function "+Ma("methodCaller_"+e)+"(handle, name, destructors, args) {\n";
+var l=0;for(k=0;k<a-1;++k)e+="    var arg"+k+" = argType"+k+".readValueFromPointer(args"+(l?"+"+l:"")+");\n",l+=b[k+1].argPackAdvance;e+="    var rv = handle[name]("+h+");\n";for(k=0;k<a-1;++k)b[k+1].deleteObject&&(e+="    argType"+k+".deleteObject(arg"+k+");\n");c.la||(e+="    return retType.toWireType(destructors, rv);\n");f.push(e+"};\n");a=pb(f).apply(null,g);return Db(a)},__emval_incref:function(a){4<a&&(Z[a].P+=1)},__emval_new:function(a,b,c,e){a=Cb(a);var f=Fb[b];if(!f){f="";for(var g=0;g<
+b;++g)f+=(0!==g?", ":"")+"arg"+g;var h="return function emval_allocator_"+b+"(constructor, argTypes, args) {\n";for(g=0;g<b;++g)h+="var argType"+g+" = requireRegisteredType(HEAP32[(argTypes >> 2) + "+g+'], "parameter '+g+'");\nvar arg'+g+" = argType"+g+".readValueFromPointer(args);\nargs += argType"+g+"['argPackAdvance'];\n";f=(new Function("requireRegisteredType","HEAP32","__emval_register",h+("var obj = new constructor("+f+");\nreturn __emval_register(obj);\n}\n")))(ub,B,V);Fb[b]=f}return f(a,c,
+e)},__emval_new_array:function(){return V([])},__emval_new_cstring:function(a){return V(Ab(a))},__emval_take_value:function(a,b){a=ub(a,"_emval_take_value");a=a.readValueFromPointer(b);return V(a)},_abort:function(){d.abort()},_emscripten_memcpy_big:function(a,b,c){y.set(y.subarray(b,b+c),a);return a},_llvm_trap:function(){x("trap!")},DYNAMICTOP_PTR:ta,STACKTOP:qa};var Kb=d.asm(d.$,d.aa,buffer);d.asm=Kb;
+var Ha=d.__GLOBAL__sub_I_bind_cpp=function(){return d.asm.__GLOBAL__sub_I_bind_cpp.apply(null,arguments)},Fa=d.__GLOBAL__sub_I_pathkit_wasm_bindings_cpp=function(){return d.asm.__GLOBAL__sub_I_pathkit_wasm_bindings_cpp.apply(null,arguments)};d.__Z11ApplyPathOpR6SkPathRKS_8SkPathOp=function(){return d.asm.__Z11ApplyPathOpR6SkPathRKS_8SkPathOp.apply(null,arguments)};d.__Z11ToSVGStringRK6SkPath=function(){return d.asm.__Z11ToSVGStringRK6SkPath.apply(null,arguments)};
+d.__Z13ApplySimplifyR6SkPath=function(){return d.asm.__Z13ApplySimplifyR6SkPath.apply(null,arguments)};d.__Z13FromSVGStringNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEE=function(){return d.asm.__Z13FromSVGStringNSt3__212basic_stringIcNS_11char_traitsIcEENS_9allocatorIcEEEE.apply(null,arguments)};d.__Z14ResolveBuilderR11SkOpBuilder=function(){return d.asm.__Z14ResolveBuilderR11SkOpBuilder.apply(null,arguments)};
+d.__Z6EqualsRK6SkPathS1_=function(){return d.asm.__Z6EqualsRK6SkPathS1_.apply(null,arguments)};d.__Z6ToCmdsRK6SkPath=function(){return d.asm.__Z6ToCmdsRK6SkPath.apply(null,arguments)};d.__Z7NewPathv=function(){return d.asm.__Z7NewPathv.apply(null,arguments)};d.__Z8CopyPathRK6SkPath=function(){return d.asm.__Z8CopyPathRK6SkPath.apply(null,arguments)};d.__Z8FromCmdsji=function(){return d.asm.__Z8FromCmdsji.apply(null,arguments)};
+d.__Z8ToCanvasRK6SkPathN10emscripten3valE=function(){return d.asm.__Z8ToCanvasRK6SkPathN10emscripten3valE.apply(null,arguments)};d.__Z8ToPath2DRK6SkPath=function(){return d.asm.__Z8ToPath2DRK6SkPath.apply(null,arguments)};var mb=d.___getTypeName=function(){return d.asm.___getTypeName.apply(null,arguments)},Y=d._free=function(){return d.asm._free.apply(null,arguments)},Jb=d._malloc=function(){return d.asm._malloc.apply(null,arguments)};d.dynCall_fi=function(){return d.asm.dynCall_fi.apply(null,arguments)};
+d.dynCall_fii=function(){return d.asm.dynCall_fii.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_iifff=function(){return d.asm.dynCall_iifff.apply(null,arguments)};d.dynCall_iiffff=function(){return d.asm.dynCall_iiffff.apply(null,arguments)};d.dynCall_iiffi=function(){return d.asm.dynCall_iiffi.apply(null,arguments)};
+d.dynCall_iii=function(){return d.asm.dynCall_iii.apply(null,arguments)};d.dynCall_iiifff=function(){return d.asm.dynCall_iiifff.apply(null,arguments)};d.dynCall_iiiffi=function(){return d.asm.dynCall_iiiffi.apply(null,arguments)};d.dynCall_iiii=function(){return d.asm.dynCall_iiii.apply(null,arguments)};d.dynCall_iiiii=function(){return d.asm.dynCall_iiiii.apply(null,arguments)};d.dynCall_iiiiii=function(){return d.asm.dynCall_iiiiii.apply(null,arguments)};
+d.dynCall_iiiiiii=function(){return d.asm.dynCall_iiiiiii.apply(null,arguments)};d.dynCall_v=function(){return d.asm.dynCall_v.apply(null,arguments)};d.dynCall_vi=function(){return d.asm.dynCall_vi.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_viffff=function(){return d.asm.dynCall_viffff.apply(null,arguments)};
+d.dynCall_vifffff=function(){return d.asm.dynCall_vifffff.apply(null,arguments)};d.dynCall_viffffff=function(){return d.asm.dynCall_viffffff.apply(null,arguments)};d.dynCall_vifffffffff=function(){return d.asm.dynCall_vifffffffff.apply(null,arguments)};d.dynCall_vifffffffi=function(){return d.asm.dynCall_vifffffffi.apply(null,arguments)};d.dynCall_vifffffi=function(){return d.asm.dynCall_vifffffi.apply(null,arguments)};d.dynCall_viffi=function(){return d.asm.dynCall_viffi.apply(null,arguments)};
+d.dynCall_vifii=function(){return d.asm.dynCall_vifii.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_viifd=function(){return d.asm.dynCall_viifd.apply(null,arguments)};d.dynCall_viiff=function(){return d.asm.dynCall_viiff.apply(null,arguments)};
+d.dynCall_viiffff=function(){return d.asm.dynCall_viiffff.apply(null,arguments)};d.dynCall_viifffff=function(){return d.asm.dynCall_viifffff.apply(null,arguments)};d.dynCall_viiffffff=function(){return d.asm.dynCall_viiffffff.apply(null,arguments)};d.dynCall_viifffffffff=function(){return d.asm.dynCall_viifffffffff.apply(null,arguments)};d.dynCall_viifffffffi=function(){return d.asm.dynCall_viifffffffi.apply(null,arguments)};
+d.dynCall_viifffffi=function(){return d.asm.dynCall_viifffffi.apply(null,arguments)};d.dynCall_viii=function(){return d.asm.dynCall_viii.apply(null,arguments)};d.dynCall_viiifffffffff=function(){return d.asm.dynCall_viiifffffffff.apply(null,arguments)};d.dynCall_viiii=function(){return d.asm.dynCall_viiii.apply(null,arguments)};d.dynCall_viiiii=function(){return d.asm.dynCall_viiiii.apply(null,arguments)};d.dynCall_viiiiiffii=function(){return d.asm.dynCall_viiiiiffii.apply(null,arguments)};
+d.asm=Kb;d.then=function(a){if(d.calledRun)a(d);else{var b=d.onRuntimeInitialized;d.onRuntimeInitialized=function(){b&&b();a(d)}}return d};function v(a){this.name="ExitStatus";this.message="Program terminated with exit("+a+")";this.status=a}v.prototype=Error();v.prototype.constructor=v;H=function Lb(){d.calledRun||Mb();d.calledRun||(H=Lb)};
+function Mb(){function a(){if(!d.calledRun&&(d.calledRun=!0,!fa)){Ba||(Ba=!0,F(xa));F(ya);if(d.onRuntimeInitialized)d.onRuntimeInitialized();if(d.postRun)for("function"==typeof d.postRun&&(d.postRun=[d.postRun]);d.postRun.length;){var a=d.postRun.shift();Aa.unshift(a)}F(Aa)}}if(!(0<G)){if(d.preRun)for("function"==typeof d.preRun&&(d.preRun=[d.preRun]);d.preRun.length;)Ca();F(wa);0<G||d.calledRun||(d.setStatus?(d.setStatus("Running..."),setTimeout(function(){setTimeout(function(){d.setStatus("")},
+1);a()},1)):a())}}d.run=Mb;d.exit=function(a,b){if(!b||!d.noExitRuntime||0!==a){if(!d.noExitRuntime&&(fa=!0,qa=void 0,F(za),d.onExit))d.onExit(a);u&&process.exit(a);d.quit(a,new v(a))}};function x(a){if(d.onAbort)d.onAbort(a);void 0!==a?(d.print(a),d.printErr(a),a=JSON.stringify(a)):a="";fa=!0;throw"abort("+a+"). Build with -s ASSERTIONS=1 for more info.";}d.abort=x;if(d.preInit)for("function"==typeof d.preInit&&(d.preInit=[d.preInit]);0<d.preInit.length;)d.preInit.pop()();d.noExitRuntime=!0;Mb();
 
 
   return PathKitInit;
diff --git a/player/js/modules/pathkit.wasm b/player/js/modules/pathkit.wasm
index fbde8e9..5bac27a 100644
--- a/player/js/modules/pathkit.wasm
+++ b/player/js/modules/pathkit.wasm
Binary files differ
diff --git a/player/js/utils/helpers/skpaths.js b/player/js/utils/helpers/skpaths.js
index a1eddf9..5439c29 100644
--- a/player/js/utils/helpers/skpaths.js
+++ b/player/js/utils/helpers/skpaths.js
@@ -9,7 +9,7 @@
 		var len = typedArrayFrom2D[1];
 		var path = Module.FromCmds(cmd, len);
 		Module._free(cmd);
-		return new WASMPath(path);
+		return path;
 	}
 
 	function floatTypedArrayFrom2D(arr) {
diff --git a/player/js/utils/shapes/OffsetPathModifier.js b/player/js/utils/shapes/OffsetPathModifier.js
index 74b29a3..9602108 100644
--- a/player/js/utils/shapes/OffsetPathModifier.js
+++ b/player/js/utils/shapes/OffsetPathModifier.js
@@ -81,7 +81,7 @@
 
 			skPath = skpaths_factory.createFromCommands(commands);
 			if(amount < 0) {
-				skPath = skPath.opAndReplace(Module.PathOp.UNION);
+				skPath = skPath.op(skPath, Module.PathOp.UNION);
 				// skPath = skpaths_factory.replaceFromBooleanOperation(skPath, skPath, Module.PathOp.UNION);
 			}
 			var joinType, strokeCap;
@@ -96,19 +96,22 @@
 				break;
 			}
 			if(commands[commands.length - 1][0] === 5) {
-				offsettedSkPath = skPath.stroke(Math.abs(amount) * 2, joinType, strokeCap);
+				var clonedSkPath = skpaths_factory.createFromCommands(skPath.toCmds());
+				skPath = skPath.stroke({width: Math.abs(amount) * 2, join: joinType, cap: strokeCap});
 				let operation = amount < 0 ? Module.PathOp.REVERSE_DIFFERENCE : Module.PathOp.UNION;
-				skPath = offsettedSkPath
-					.opAndReplace(operation, skPath)
-					.simplifyAndReplace();
+				skPath = skPath
+					.op(clonedSkPath, operation)
+					.simplify();
+				clonedSkPath.delete();
 			} else {
 				skPath = skPath
-				.strokeAndReplace(Math.abs(amount) * 2, joinType, strokeCap)
-				// .opAndReplace(Module.PathOp.UNION)
-				.setFillType(Module.FillType.EVENODD)
-				.simplifyAndReplace();
+				.stroke({width: Math.abs(amount) * 2, join: joinType, cap: strokeCap})
+				// .op(Module.PathOp.UNION)
+				skPath.setFillType(Module.FillType.EVENODD);
+				skPath = skPath.simplify();
 			}
 		  	commands = skPath.toCmds();
+			skPath.delete();
 		  	// commands.length = 44;
 			//skPath.destroy();
 	        localShapeCollection = shapeData.localShapeCollection;